僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

UE4:構造体 実装メモ

2週間前に構造体のテストをしていざ実際にゲームに実装するぞ!ってなったらすっかり忘れていたのでブログにまとめて起きます。

 

今回実装するのは

1.TriggerBoxをレベルに配置しそこに入るとHealthが+30される

2.ジャンプするとBooleanがTrueになる。着地しているときはfalseになる

3.ActorをクリックするとCheckがTrueになる

 

動画ではこちら

 

 

 

準備

まずBluePrintから構造体BP(名前がTestKouzoutai)を作成します。

中身を見ると、変数を宣言出来る場所があるので以下のようにしました。

f:id:Bussan_dayo:20150921210052p:plain

 

次にCharacter側のBluePrintのイベントグラフに移り変数を宣言します。変数のタイプを先ほど作った構造体にします。

f:id:Bussan_dayo:20150921212404p:plain

 

表示

構造体の状態をPrintStringでゲーム上に表示させたいのでCharacterBPに以下のようにノードを組みます。Appendによって何がTrueかなどを判断できるようにしました。

f:id:Bussan_dayo:20150921215307p:plain

 

 

1の実装について

レベル上にボックストリガーを設置します。HiddenInGameのチェックを外しています。(Play時にボックスが見えるようにするため

 

レベルブループリントにOverlapイベントを設置してキャラクターにキャストします。そこから先ほど作った変数を呼び出し構造体の解除と作成を出し変数に入れるようにします。

 

今回は入ったらHPが30あがるようにしたいのでHealthから+ノードをだし30を入れ作成側のHealthにつなぎます。

f:id:Bussan_dayo:20150921215408p:plain

 

 

2の実装について

次にジャンプしているかどうかを判断します。

CharacterのBPのイベントグラフを開きCharacterMovementを出しそこから[is Falling]ノードを出します。これで飛んでいるかどうかを判断できます。

 

先ほど作成した構造体の変数を出し、解除作成を出します。Air?に先後どの[is Falling]をつなげます。そして変数に入れます。

f:id:Bussan_dayo:20150921215914p:plain

(EventTickに繋いであります。)

 

3の実装について

動画ではスコープが実装されていますが、そこは以前作ったものなので割愛・・・(FPSテンプレートを使うといいかもです。

 

スコープを表示した後にアクターをクリックするとアクターが消えCheckがTrueになるようにする。

 

BluePrintinterfaceを用います。

作成の仕方は以下の動画から

 

 

次にアクターを作成し、以下のようにノードを構成します。関数名をStructureTestにしました。

f:id:Bussan_dayo:20150921230923p:plain

 

 

以上になります。

お気づきになっておると思いますが、一応LevelBluePrintとCharacterとBlluePrint間の3つの実装を書きましたがほぼ同じなんですよね・・・。まあこれで忘れないはず・・・。

 

何かこうしたほうがいいなどのアドバイスがありましたらツイッターのDMでお願いします~

 

以上