ゲーム開発備忘録

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

【ゼロからアンリアルエンジン5】⑥モノに機能を持たせる(アクタのブループリント化)とインスタンス

目次

 

はじめに

注意

UE5Preview1の現在の情報です。

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

今回は前回作成したアクタをブループリントにして様々な機能を追加していきます。

解説

①アクタのブループリント化

前回の記事ではレベルブループリントから作成したアクタの位置を変更しました。

これはいうなれば、子供が積み木を移動させているようなもの

積み木(アクタ)自身に移動するという機能は持っていません。

そこで積み木自身に機能を持たせる(ブループリント化)を行い

子供(レベルブループリント)から操作をされなくても積み木自身が移動できるようにしていきます。

 

TargetCubeを選択した状態で詳細ウィンドウからブループリントクラスに変換するを押します。

f:id:namiton:20220303121955p:plain

作成用のウィンドウが出てきますので、

名前をブループリントの頭文字のBP_を付けておきます。

選択を押しましょう。

f:id:namiton:20220303122232p:plain

するとBP_TargetCubeに飛びます。

ココに必要な機能を追加していくことになります。

f:id:namiton:20220303122422p:plain

レベルのタブに戻りアウトライナーから確認すると

TargetCubeがBP_TargetCubeに変換されていることが確認できます。

f:id:namiton:20220303122728p:plain

作成したブループリントを編集する場合はアウトライナー上のタイプから~を編集を押すか、作成時に指定したコンテンツブラウザ上のブループリントのアイコンをダブルクリックしましょう。

f:id:namiton:20220303123039p:plain

②ブループリントに機能を追加する

前回作成したレベルブループリントを開きます。

すると不明と書かれたノードがあるのが確認できます。

これはタイプがStaticMeshActorだったTargetCubeがブループリント化したことで別物になってしまったためこのようなエラーノードになってしまいます。

f:id:namiton:20220303123223p:plain

不明ノードを削除し、それ以外のノードを範囲選択してコピーしましょう。

左クリック押しながら囲むと範囲選択。

ノード上で右クリック>コピーまたはCTRL+C

f:id:namiton:20220303123549p:plain

レベルブループリント上では何もしないのですべてのノードを消しておきましょう

ブループリントに変更が加わると左上のコンパイルアイコンが?になります。

クリックして✔になるように変更しましょう。

f:id:namiton:20220303123825p:plain

コンパイルすることでブループリント内のノードが読み込まれゲーム内で動作します。

ブループリントにミスがあったりするとコンパイルに失敗するので

その場合はエラー箇所を見直しましょう。

f:id:namiton:20220303124018p:plain

 

BP_TargetCubeに戻りイベントグラフを開きます。

イベントグラフではレベルブループリントのようにロジックを書くところです。

f:id:namiton:20220303124316p:plain

CTRL+Vでノードを貼り付けます。

f:id:namiton:20220303124549p:plain

コンパイルしたらレベルタブに戻り実行してみましょう。

レベルブループリントで動かしたときと同じ動きをするはずです。

f:id:namiton:20220302205037p:plain

 

インスタンスとは何か?

レベルブループリントとの違いは動くアクタ自身に動く処理が入っていることです。

試しにコンテンツブラウザからBP_TargetCubeをレベルビューにいくつかドラッグアンドドロップしてみましょう。

f:id:namiton:20220303125037p:plain

実行すると置いたアクタすべてが上に移動します。

これをレベルブループリントで行うには動かすアクタすべてを設定する必要があるためアクタ自身をブループリント化することは非常に理にかなっています。

f:id:namiton:20220303125121p:plain

また、このように同じブループリントをもとに作成されたアクタをインスタンスと呼びます。Unityなどのゲームエンジンに例えると作成されたブループリントはプレハブに相当します。

インスタンスの説明でよくたとえられるのはクッキーの型とクッキー本体です。

クッキーの型(ブループリント)があれば大量のクッキー(アクタ)が作ることができます。クッキーの型が違う形になれば、その型から作成されるクッキーの形も同じように変わります。

 

試しにクッキーの型(BP_TargetCube)の形を変更してみましょう。

BP_TargetCubeを開きタブをビューポートに変更します。

f:id:namiton:20220303125947p:plain

コンポーネントウィンドウからStaticMeshComponentを選択しましょう。

StaticMeshComponentは静的(ボーンがない)メッシュ(見た目)を追加するコンポーネントです。

f:id:namiton:20220303130204p:plain

詳細ウィンドウを見ると

スタティックメッシュという項目があります。

f:id:namiton:20220303130239p:plain

ここに設定されているCubeをSphereに変更します。

出てこない場合はプルダウン時の歯車アイコンから

エンジンのコンテンツを表示にチェックを入れます。

f:id:namiton:20220303130524p:plain

形状が変わりました。

f:id:namiton:20220303130626p:plain

コンパイルしてレベルに戻りましょう。

すると箱型だったアクタが丸くなっています。

これが型(ブループリント)を変えるとその型から作られたインスタンスが変わるということです。

f:id:namiton:20220303130804p:plain

ふわぁ~

f:id:namiton:20220303131035p:plain

インスタンスについてもう少し知りたいぜっという方は

こちらのサイトが分かりやすいので見てみてくださいね!

https://wa3.i-3-i.info/word1118.html

最後に

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

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

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

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