前回の続き。サムネ用に画像を貼り付けしておきます。
ぜひ基礎編を開きながらご覧ください。
お約束 | |
---|---|
この記事作成にあたって使用した(主な)UE4バージョン | 4.26.1 |
このtoolkitのバージョン | v3.0 (live 12.12.20) |
本日のゴール
現在のターン数を画面に表示する
原理
このアセットにおいて、ターンに関係するところは大体「BP_TurnManager」が司ります。
「BP_TurnManager」の「Current Turn」という変数がターン数を表すので、これをUIに送ってやれば、基本的には終わりです。
ただし
じつはCurrent Turnに1が足されるのは、敵が動き出すタイミングなのです。(なんでや…)
これをなんとかできないか?と作者にDiscordを使って質問したら、回答が返ってきたので、記事にしました。(素晴らしいですね)
イベントディスパッチャーを使って、味方キャラが動き出すタイミングで、UIにターン数をアップデートするように命令するというやり方です。
最終形
「BP_TurnManager」
「TurnNumberHUD (新規作成)」
やり方(準備編)
ここまで来たら、コンパイルして(エラーが出るけど無視)、一回先程作ったブループリント「BP_Action_NewTurn」の、イベントグラフを開きます。
これに何をつなぐかというと、そう。イベントディスパッチャーです。
「BP_TurnManager」のさっき作ったイベントディスパッチャーを、今触っていたブループリントにドラッグ・アンド・ドロップしてください。
一番上の呼び出し(だったっけ?)を選択。
これをEvent Play Actionにつないだ後、Targetから伸ばして「BP_TurnManager」をGetしてつなぎます。
この変数に対して、インスタンスで編集可と、スポーン時に公開、をチェックします。
イベントディスパッチャー呼び出しの後にEndActionをつなぎます。
コンパイルしたら、また「BP_TurnManager」に戻ってきます。
こっちでもコンパイルをすると、こんな感じでエラーが出たままですが、
「Current Turn Display」という入力が増えています。
ここにCurrent Turnをつないであげましょう。で、コンパイルしてもエラーが出続けるので、対応します。
どうやらSpawn Transformがこのままだといけないらしいので、Spawn Transformを右クリックしてピンを分割します。(分割すれば座標の値とかに勝手に0が入るからですね)
これでコンパイルが通ります。
これで準備完了です!!
やり方(UI編)
UIを作成します。どこかのフォルダで右クリックして、「エディターユティリティウィジェット」
編集画面で、「text」を2個ドラッグ・アンド・ドロップします。
どちらもフォントを72くらいに
グラフを開きます
さて、このイベントグラフに再び「BP_TurnManager」からイベントディスパッチャーをドラッグ・アンド・ドロップします。ただし今度は「バインド」を選択します。
これをEvent Constructにつないであげて、その後Eventからノードを引っ張って、「カスタムイベントを追加」をクリックしましょう。
名前は何でもいいですが、「UpdateTurn」とでもしましょうか。
忘れずに、真ん中には、TurnManagerを繋がないと動きませんのでつないであげます。
次に、TextBlockを引っ張ってきてGetしましょう。このTextBlockというのは先程我々が作ったやつです。人によっては少し名前が違うかもしれません。
このTextBlockからノードを伸ばして、「set text」を調べましょう。
この作ったノードを、「Update Turn」につなげます。
Set textはテキストブロックに文字をセットするノードですが、何をセットするのかといえばそりゃターン数です。ターン数は先程のUpdate Turnが持ってましたので、これをつないであげます。すると最終的にこうなります。
これで完成!!コンパイルします。
さてこれだけだと、UI作っただけなので、実行時に表示されません。Create Widgetして、viewportに追加しないといけません。レベルブループリントでもどこでもいいんですが、今回はターンマネージャーに追加してみましょう。
「BP_TurnManager」を開き、Event Begin Playを右クリックして呼び出してあげて、ここにCreate Widgetを使って先程作ったUI「TurnNumberHUD」を呼び出してあげます。これにAdd to Viewportをつないであげればいっちょ上がりです。
コンパイルして実行しましょう。
ちゃんと自キャラが動く時にターン数が増えるようになりました!!成功ですね。
次回
未定。ワープの作成をする予定ではあります。(苦戦中)
0 件のコメント:
コメントを投稿