アクターじゃないクラスを生成する方法
「AIの仕組みをUE4のブループリントで実装してみようと思ったんだけど、その前段階としてちょっと困ったことがあったんで、今日はそれのやり方を調査してた」
妹「困ったこと?」
「なんというか、アクターをスポーンさせるのは普通に出来るし、やり方も色んな所に書いてあるんだけど、アクターじゃないクラスを生成する方法というのが謎だった。というか昔のUE4だとブループリントだけじゃ出来なかったらしい」
「クラス作成の時に、ActorやActorを継承したクラスじゃなく、Objectを継承すると、アクターじゃないクラスは作れる」
妹「それスポーンさせたらいいのでは?」
「Actor以外のクラスにはスポーンノード使えないんだよ。Objectは位置とか回転とかも持ってないし、BeginPlayとかTickとかのイベントもないから、無理にActorとして扱おうとしてもバグってしまう」
「それでどうやらクラスからオブジェクトを構成というノードを使えば、スポーンノードの代わりに使えるらしいことがわかった。紫のピンで、どのクラスの実体(インスタンス)を作るかを指定出来る」
「無事にカスタムイベントの呼び出しが出来た。ので、とりあえず成功してるみたい」
妹「クラスを指定するのはわかるけど、Outerというのはいったい?」
「そこはわからない。(なし)のままだとコンパイル出来ないけど、なにか入れればコンパイル出来るし、結果も同じ。多分それが必要な状況にならなければ、なんでも良さそうな気がする。よくわからんけど」
妹「曖昧だ……というか見えないアクターみたいな物なんだったら、そもそも見えないアクターとして作っちゃえばいいのでは? 非表示のアクターとか色々あったし」
「それでもいいんだけど、明らかにActorの機能を必要としてないのに、位置を指定してスポーンとか、どうも無駄がある。あとアクターだとエディタのアウトライナに出てきちゃうという問題もある。数が少ない場合にはこのへんの欠点は目立たないから、アクターとして作っても問題はないはず」
※兄が寝違えたので翌日分の記事はお休みします