UnrealEngine4で2Dゲームを作ろう! その9 BPでのインスタンス(オブジェクト)生成
BPで各種インスタンス(オブジェクト)の生成についてのまとめです。
newとかプログラマになじみのある用語は使われておらず、調べるのにちょっと苦労したので備忘かねてます。
Actor(を継承したクラス)は、「Spawn Actor from Class」
生成と同時にLevelに配置されます。
LevelやActor(を継承したクラス)上でしか呼び出すことができません。
サウンドやパーティクルなど、専用のSpawnノードが用意されてるシステムもあります。
破壊は、DesytroyActorノードになります。
Componentは、「Add *** Component」
ComponentはBPエディタなどで固定でつけることが多いと思いますが、上記のノードで指定したActorに追加されます。
破壊は、「Desytroy ***」ノードです。
Object継承クラス(Actor以外のクラス)は、「Construct from Class」
4.9から、Actorを継承しないクラス、つまりObjectを継承したクラスもBPでインスタンス生成ができるようになりました。(前バージョンまではC++を介す必要がありました)
Object継承クラスは、構造体では物足りない機能を持ったデータクラスを作るなどに利用します。
現在、個別に破壊するノードはなさそうですので、リファレンスを外してGCに任せるだけになるみたいです。
Actorを継承していないクラスのハマりポイントとしては、使用することのできるノードに一部制限が掛かることです。SpawnActorなどLevelに関するノードが使うことができません。ソースをざっと見ると、Actorが持っている情報を暗黙に使っているためのようです。他にもあるかもしれませんが、自分が一番ハマったのはそこでした。
それ以外
Widget/Materialは、「Create ***」あたり。