目次
はじめに
注意
UE5Preview1の現在の情報です。
今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。
今回は前回作成したアクタをブループリントにして様々な機能を追加していきます。
解説
①アクタのブループリント化
前回の記事ではレベルブループリントから作成したアクタの位置を変更しました。
これはいうなれば、子供が積み木を移動させているようなもので
積み木(アクタ)自身に移動するという機能は持っていません。
そこで積み木自身に機能を持たせる(ブループリント化)を行い
子供(レベルブループリント)から操作をされなくても積み木自身が移動できるようにしていきます。
TargetCubeを選択した状態で詳細ウィンドウからブループリントクラスに変換するを押します。
作成用のウィンドウが出てきますので、
名前をブループリントの頭文字のBP_を付けておきます。
選択を押しましょう。
するとBP_TargetCubeに飛びます。
ココに必要な機能を追加していくことになります。
レベルのタブに戻りアウトライナーから確認すると
TargetCubeがBP_TargetCubeに変換されていることが確認できます。
作成したブループリントを編集する場合はアウトライナー上のタイプから~を編集を押すか、作成時に指定したコンテンツブラウザ上のブループリントのアイコンをダブルクリックしましょう。
②ブループリントに機能を追加する
前回作成したレベルブループリントを開きます。
すると不明と書かれたノードがあるのが確認できます。
これはタイプがStaticMeshActorだったTargetCubeがブループリント化したことで別物になってしまったためこのようなエラーノードになってしまいます。
不明ノードを削除し、それ以外のノードを範囲選択してコピーしましょう。
左クリック押しながら囲むと範囲選択。
ノード上で右クリック>コピーまたはCTRL+C
レベルブループリント上では何もしないのですべてのノードを消しておきましょう。
ブループリントに変更が加わると左上のコンパイルアイコンが?になります。
クリックして✔になるように変更しましょう。
コンパイルすることでブループリント内のノードが読み込まれゲーム内で動作します。
ブループリントにミスがあったりするとコンパイルに失敗するので
その場合はエラー箇所を見直しましょう。
BP_TargetCubeに戻りイベントグラフを開きます。
イベントグラフではレベルブループリントのようにロジックを書くところです。
CTRL+Vでノードを貼り付けます。
コンパイルしたらレベルタブに戻り実行してみましょう。
レベルブループリントで動かしたときと同じ動きをするはずです。
③インスタンスとは何か?
レベルブループリントとの違いは動くアクタ自身に動く処理が入っていることです。
試しにコンテンツブラウザからBP_TargetCubeをレベルビューにいくつかドラッグアンドドロップしてみましょう。
実行すると置いたアクタすべてが上に移動します。
これをレベルブループリントで行うには動かすアクタすべてを設定する必要があるためアクタ自身をブループリント化することは非常に理にかなっています。
また、このように同じブループリントをもとに作成されたアクタをインスタンスと呼びます。Unityなどのゲームエンジンに例えると作成されたブループリントはプレハブに相当します。
インスタンスの説明でよくたとえられるのはクッキーの型とクッキー本体です。
クッキーの型(ブループリント)があれば大量のクッキー(アクタ)が作ることができます。クッキーの型が違う形になれば、その型から作成されるクッキーの形も同じように変わります。
試しにクッキーの型(BP_TargetCube)の形を変更してみましょう。
BP_TargetCubeを開きタブをビューポートに変更します。
コンポーネントウィンドウからStaticMeshComponentを選択しましょう。
StaticMeshComponentは静的(ボーンがない)メッシュ(見た目)を追加するコンポーネントです。
詳細ウィンドウを見ると
スタティックメッシュという項目があります。
ここに設定されているCubeをSphereに変更します。
出てこない場合はプルダウン時の歯車アイコンから
エンジンのコンテンツを表示にチェックを入れます。
形状が変わりました。
コンパイルしてレベルに戻りましょう。
すると箱型だったアクタが丸くなっています。
これが型(ブループリント)を変えるとその型から作られたインスタンスが変わるということです。
ふわぁ~
インスタンスについてもう少し知りたいぜっという方は
こちらのサイトが分かりやすいので見てみてくださいね!
https://wa3.i-3-i.info/word1118.html
最後に
UE4やUE5向けの記事を書いています。
皆様の応援が投稿のモチベーションになりますので
コメントやTwitterのフォローなどしていただけるとありがたいです。
それではよきゲーム開発を。