2014年6月14日土曜日

[Unreal Engine 4] TextRenderComponentで徐々に文字を表示するBlueprint

まず,UE4のTextRenderComponentで日本語を表示するまで,の手順でTextRenderComponentで日本語表示ができる状態になっているとします.

コンテンツブラウザで,Blueprintを追加します.


クラスはアクタを選択します.


追加したBlueprintには,BP_ScriptRenderという名前をつけました.



追加したBlueprintをダブルクリックし,コンポーネントの追加からTextRenderを選びます.


TextRenderの名前をTargetにし,フォントの設定で作成した日本語用のフォントとマテリアルを使うように変更します.日本語が出ることを確認するため,Textを日本語のメッセージに変えておきましょう.


保存してから,通常の画面に戻り,Blueprintをドラッグアンドドロップし,配置しましょう.
裏面からは見えなかったりするので,画面に映る状態に調整しましょう.


調整が終わったら,Blueprintに戻り,イベントグラフの編集に移ります.
まずは,float型の変数を追加し,Counterという名前にします.


Begin Playイベントを追加し,ゲーム起動時に色々初期化するようにします.
まず,マイブループリントからTargetを選び,ドラッグアンドドロップでイベントグラフに配置します.


ピンから線を引っ張って話すと,コンポーネントの追加ができるので,Set Textを入力して検索し,追加しましょう.


デフォルトでは空文字列を設定するようになっているので,Begin PlayイベントをSet TextにつないでやればOKです.同時に,Counterにも0をセットするように追加しておきましょう.次の図のようになります.


次に,Tickイベントを使って,Counterを更新するようにします.TickイベントからDelta secondsを取得し,Counterの値に追加し,それをCounterにセットする,という流れです.


次に,表示する文字列を入れておくための変数を追加します.変数の種類はTextにします.


Get Substringというコンポーネントを使うと,文字列の一部を取り出すことができるので,これを使ってテキストの開始からCounter番目の文字までを取り出します.Source StringにScriptをつなぎます.(Textからstringに変換するコンポーネントが自動的に追加されます).更に,Length(取り出す文字列の長さ)にCounterをつなぎます.(floatからintegerに変換するコンポーネントが自動的に追加されます).Start indexは,文字列をどこから取り出すか(0が最初の文字),なので0にしておきます.できたものが次の図のようになります.


最後に,Counterの更新からTickイベントを受け取って,TargetのSet Textコンポーネントに取り出した文字列を設定するようにします.


これで,再生すると1秒に1文字ずつ表示されます.

0 件のコメント:

コメントを投稿