前日譚
2024年/11月
自宅にて
「あぁーF◯teStayN◯g◯tオモシロイんじゃー」
( _˘ω˘)_[PC]
「そういやC++でプログラムしてた時ラノベゲームの会話シーン作るのマジできつかったんだよなぁ・・」
( _´ω`)_[PC]
「Unityならもっと簡単にできるんじゃね・・?」
(_ ゚д゚)_[PC]
アズマ「お・・!これは簡単そう・・・!やってみるか・・・。」
というわけで遊びの始まりはじまり~
挨拶
はい。なんて茶番でした。
どうもアズマです。
まぁこんな感じで遊び半分でやったので記録として残しておこうかなと思います。
やること
ラノベゲームの会話シーンに使われる奴を作ろう!
ドラクエのコレですコレ。
今回はテキストメッシュプロというクッソ便利な物を使っているので技術的な情報は期待しないでね
ということでいってみよー!
テキストメッシュプロの導入
必要ねぇぜ!!
はい、キレないキレない。
これ実はUnityでデフォルトで入ってるんですよね。
使い方は簡単、ヒエラルキーウィンドウから
UI/Text-TextMeshPro
を選択する
こんなウィンドウが出てくるので[InportTmpEssentials]を押す
すると必要な素材がインポートされて完了
ね?超簡単でしょう?w
これで導入が完了しました。
ただ、注意しないといけないのが、コイツデフォルトだとアスキーコードをつかってるので日本語が読み込めないんですよ。
なので、日本語を使用するなら、Googleのフォントをダウンロードしてきてフォントを自作するか、配布されているフォントを使いましょう。
自作は今回省きます。
作るぞ♡
はい作りますわよー
完成形はコレを目標にします。(拾い画像)
この記事を見るに人は基本Unityの最低限の知識はあると思うのでそこそこ端折ります。結果的には
・アニメーション処理を行うスクリプトを文字につける
ただそれだけです。
スクリプト内容文
メモなので今回はネットにある処理をそのままコピペして説明だけ記載します
説明
・using TMPro;
こいつが無いとテキストメッシュプロの処理を呼び出せません。
簡単に言うとファイルのアクセス処理を自動的に終了してくれる便利な機能
まぁとりあえずアクセス用だと思ってください。
・[SerializeField] private TMP_Text tmpText;
TMP_Text型、つまりは文字テクスチャとその文章の受取り型です。
今回は1文だけ表示する関係上[SerializeField]でオブジェクトを受け取っていますが、複数文章を作るならtmpText.textの中身を入れ替えてやると良いでしょう。
・StartCoroutine(Simple());
コルーチンの再生処理です。
コルーチンとは中断と再開可能な関数のこと。つまりSimple関数を呼び出しています。
IEnumeratorはコルーチンの作成時に使用されるものですのでSimpleはコルーチンとして作成されていることになります。
・ private IEnumerator Simple()とその中身
長く書くとゲッソリすると思うので簡単に説明すると、
tmpTextに含まれている文字の数だけ処理を行い、一文字づつ表示する文字を増やしています。
・yield return new WaitForSeconds(0.2f);
で何フレーム待機(中断)するのかを返していおり、この処理があることでゆったり文字が表示されるわけです。
と、内容をさらっと記載したわけですが、ここまで記載すれば目標のような動きが出来ていると思います。
以上!あ、最後に参考サイト乗せておきますので良ければどうぞ
(ぶっちゃけこっちのがわかりやすい)
コメント
コメントにはログインが必要です