アズマ
107 views
タグを編集する

テキストメッシュプロでラノベゲームの文章アニメーション作る

前日譚

2024年/11月
自宅にて

「あぁーF◯teStayN◯g◯tオモシロイんじゃー」
( _˘ω˘)_[PC]

「そういやC++でプログラムしてた時ラノベゲームの会話シーン作るのマジできつかったんだよなぁ・・」
( _´ω`)_[PC]

「Unityならもっと簡単にできるんじゃね・・?」
(_ ゚д゚)_[PC]

アズマ「お・・!これは簡単そう・・・!やってみるか・・・。」

というわけで遊びの始まりはじまり~

挨拶

はい。なんて茶番でした。
どうもアズマです。

まぁこんな感じで遊び半分でやったので記録として残しておこうかなと思います。

やること

ラノベゲームの会話シーンに使われる奴を作ろう!
ドラクエのコレですコレ。

image

今回はテキストメッシュプロというクッソ便利な物を使っているので技術的な情報は期待しないでね
ということでいってみよー!

テキストメッシュプロの導入

必要ねぇぜ!!

はい、キレないキレない。
これ実はUnityでデフォルトで入ってるんですよね。

使い方は簡単、ヒエラルキーウィンドウから

UI/Text-TextMeshPro

を選択する
image

こんなウィンドウが出てくるので[InportTmpEssentials]を押す
image

すると必要な素材がインポートされて完了
image

ね?超簡単でしょう?w
これで導入が完了しました。

ただ、注意しないといけないのが、コイツデフォルトだとアスキーコードをつかってるので日本語が読み込めないんですよ。

なので、日本語を使用するなら、Googleのフォントをダウンロードしてきてフォントを自作するか、配布されているフォントを使いましょう

自作は今回省きます。

作るぞ♡

はい作りますわよー
完成形はコレを目標にします。(拾い画像)

image

この記事を見るに人は基本Unityの最低限の知識はあると思うのでそこそこ端折ります。結果的には

・アニメーション処理を行うスクリプトを文字につける

ただそれだけです。

スクリプト内容文

メモなので今回はネットにある処理をそのままコピペして説明だけ記載します
image

説明

・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);
で何フレーム待機(中断)するのかを返していおり、この処理があることでゆったり文字が表示されるわけです。

と、内容をさらっと記載したわけですが、ここまで記載すれば目標のような動きが出来ていると思います。

以上!あ、最後に参考サイト乗せておきますので良ければどうぞ
(ぶっちゃけこっちのがわかりやすい)

参考リンク1
参考リンク2

この記事はどうでしたか?
👍&ツイートをお願いします!

コメント

コメントにはログインが必要です

アズマ
35 投稿

冒険者ギルド物語2

ゲーム紹介
前作

データ

アイテム
モンスター
スキル
種族
魔造生物
職業
個性

セクレタリについて

セクレタリとは
記事構文一覧

最新の5件

メニュー
読み込み中