<前文>
今週は、お盆なので軽くやります。
<本文>
<目的>
「Unreal Engine4.xを使用してRPGを作成する」の5章キャラクタースタティスティクスとの橋渡しをする(Bridging Character Statistics)を勉強します。
キャラクタースタティスティクス(Character Statistics)とは何だったんでしょう?何を指すのか今一覚えていません。キャラクターの持つ属性の事でしょうか?兎に角やって行きましょう。
<方法と結果>
<Step.0>
取りあえず、サンプルコードの5章を解凍しました。解凍後、特に問題なく起動しました。ビルドも成功しました。
今までと同じようにCh2を使用していきます。
<Step.1>
この章では、キャラクタースタティスティクス(Character Statistics)をポーズメニューにどのようにリンクするかを学びます。
<Step.2>
キャラクターのデータを得る(Getting character data)
4章で作成したポーズメニュー内のEditable_Soldier_HPにキャラクターからのHPのデータを表示します。
流石にこの手順か明白なので、その結果だけ表示します。
キャラクターターゲットのデファルトが指定されていません。後から指定するのでしょうか?
<Step.3>
プレイヤーのインスタンスを得る(Getting player instances)
キャラクターターゲットを指定します。
- 正しいキャラクターターゲットをBP内で簡単にセット出来る。
- ただしパーティメンバーをBPに公開しないで、キャラクターのデータをアサイン(assign)する事は出来ない。
- ので、最初にhで現状のゲームのデータをBPで公開出来る様にコードを改良します。
しました。
試しにビルドしてみます。
普通に成功しました。
- 作成されたもしくは追加された如何なるパーティメンバーをBP内に呼ぶ事が出来ます。
- FieldPlayerBPから呼び出します。
教科書に書かれている通りに作成しました。
Party Memberの配列の最初の要素がSoldierなので0を指定した場合、Soldierの値が取得出来るとありました。そこだけがちょっと設計に不安が残る部分です。
<Step.4>
ステータスの表示(Displaying stats)
- いつ、CastToRPGGameInstanceを実行すべきでしょうか?
- ポーズスクリーンが作成された直後が最もふさわしいと考えられます。
教科書通りにCastToRPGGameInstanceを繋げます。
<Step.5>
テストします。
しっかり表示されました。
<Step.6>
今度は、MPをセットします。やり方はHPと全く同じだそうです。
一応、サンプルコードで確認します。
全く同じですね。それではMPを作成します。
テストします。
成功しました。
<Step.7>
次は名前を変更します。
上記のように作成しました。
テストします。
成功しました。
<Step.8>
次はPause Inventoryをやります。
取りあえず、上記の内容のブループリントは作成しましたが、Character Targetがアサイン(assign)されていません。このウィジェットが作成されるPause_Main内でアサイン(assign)するのが最も適切かなと思いサンプルコードで確認してみると
しっかりそこで、Character Targetがアサイン(assign)されていました。その通りに作成します。
同様に作成しました。
テストします。
出来ました。
他の部分も同様に作成しテストします。
成功のようですね。
<Step.9>
Pause_Equipmentをします。
やり方は今までと全く同じなので、以下にテストの結果のみを示します。
出来ているようですね。
<考察>
今回も非常に簡単でした。唯一気を付けなければならない事があるとすれば、前回の考察に基づいて考えると今回の作業は、プログラマーが担当すべき個所であると言う事です。