ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【ゼロからアンリアルエンジン5】⑦ブループリントの変数の作成と編集

目次

 

はじめに

注意

UE5Preview1の現在の情報です。

今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。

変数はその名の通り変化する数です。

中学校や高校で習ったXやYなどのことです。

ゲームでも頻繁に変数が使用されています。

キャラクターの名前や年齢、HPなどの変化するものはほぼ変数です。

解説

①変数の追加

前回のプロジェクトから、BP_TargetCubeのブループリントを開きましょう。

f:id:namiton:20220304151107p:plain

前回マップ上に配置したインスタンスはすべて同じように上昇する動きをしました。

今回はこの”動き”を変数にすることで。インスタンス側でどの動きをするかを決定できるようにしましょう。

移動量を足しているノードのピンからドラッグすると変数へ昇格という項目があります。出ない場合は状況に合わせた表示にチェックを入れましょう。

f:id:namiton:20220304151415p:plain

右下のマイブループリントの変数に新しい変数が追加されます。

名前を変更できるのでaddVelocityと名前を変更しましょう。

f:id:namiton:20220304151541p:plain

ノードを選択した状態で詳細を見ると

デフォルト値を変更することができます。

今回は動いてほしくないのですべて0,0,0にしておきましょう。

f:id:namiton:20220304151831p:plain

コンパイルしてレベルのタブに戻り実行すると

動かずにその場にいることが確認できます。

f:id:namiton:20220304151939p:plain

 

②変数の公開と編集

ブループリントに戻り、変数の詳細を見ましょう。

インスタンス編集可能という欄があります。

チェックを入れましょう。

f:id:namiton:20220304152120p:plain

またはマイブループリントの変数の一番右にある

目のアイコンを押すことで編集可能にすることもできます。

f:id:namiton:20220304152253p:plain

コンパイルしてレベルのタブに戻りレベル上のBP_TargetCubeを選択してみましょう。

詳細の欄に作成したAddVelocityが編集できるようになっています。

f:id:namiton:20220304152350p:plain

インスタンスすべてに異なる値を入れて実行すると

同じブループリントでも異なる動きをさせることができます。

f:id:namiton:20220304152541p:plain

 

③変数の説明と種類

変数には様々な種類があり、ユーザーが作成したブループリントもまた変数として利用可能です。

変数は基本的に同じ変数のピン同士でないと接続できません。

イベントグラフで特定のピンからノードを作成するときに出てくる状況に合わせた表示は、ピンの変数にあったノードを一覧で出すようにフィルタリングされています。

f:id:namiton:20220304152856p:plain

例えば先ほど作成した

AddVelocityノードの型をクリックすると

変数の種類を変更することができます。

f:id:namiton:20220304153153p:plain

試しにBoolean型に変更してみます。

Booleanは正しいか?正しくないか?の2種類の値を返す変数です。

コンパイルするとエラーになってしまいました。

これはX,Y,Zの位置情報などで使用するVector型の変数に正しいか?正しくないか?を判定するBoolean型に無理やりつながってしまっているからです。

このようにピン同士の型にあったつなぎ方をしないとゲームはうまく動きません。

f:id:namiton:20220304153345p:plain

Vector型に戻しておきましょう。 

f:id:namiton:20220304153748p:plain

 

最後によく使う変数を紹介します。

f:id:namiton:20220304154615p:plain

 

範囲選択+Cでコメントを付けるとができます。

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。