UnrealEngineのEndless Runnerチュートリアルで障害物が動くようにしようとした話
UnrealEngineのEndless Runnerチュートリアルをやった。えらい。
チュートリアルの内容だけじゃあれなのでちょっとオリジナルな内容を入れようと障害物スポーンのブループリントの部分を走る鹿ちゃんに変えてみることにした。
動かない・・・。
何故動かないのかわからない・・・。
スポーンにChild Actor Componentを使っているのがだめなのか・・・?
と思い色々調べてSpawn AIFrom Classに変えてみたり・・・そしたらスポーンしなくなったり・・・。
鹿ちゃんが悪いのか・・・?と思い配置して確認したり・・・そもそもスポーンがきちんと出来るのか確認したり・・・。
Child Actor Componentで同じことをやると同じ場所に無限に鹿ちゃんが重なりながら沸き続ける。ちなみに上の画像の消えない鹿ちゃんの理由は知らないです。
一応それぞれMAPに置いてみてシュミレートするとスポーンして動く。
調べて触ってなんとなーく大量スポーンはChild Actor Component、特別な唯一無二の存在はSpawn AIFrom Classくらいで覚えとくことにした。
スポーンさせる関数の話になってきてたので本来の目的に戻って・・・
いつスポーンさせてるのかと思いブループリントを見ているとConstruction Scriptに書いてることに気づいた。
Construction Scriptはレベルエディタでオブジェクトを配置した時に処理される特殊なスクリプトらしい。
もしかして配置処理だけでオブジェクトに対してcontrollerなどの実行はできてない・・・?Spawn AIFrom ClassだとスポーンしなくてChild Actor Componentだとオブジェクトの配置だけも出来るからスポーンできた・・・?
なんて賢いこと考えないでボケーっとConstruction Scriptの内容をEventBeginPlayに繋いでConstruction Scriptの方を切ってみるとあら不思議。
これを切って
ここに繋げる
鹿ちゃんが走った!!!!6時間以上かけてやっと走った!!!
どうもこの部分が原因だったらしい。上記に書いた理由なのかはよくわかってない。
ただConstruction ScriptでもProjectile Movementを鹿ちゃんに書いておくと動きはするのでConstruction Scriptでもできるのかもしれない。
多分弾丸とかはConstruction Scriptに書いてProjectile Movementなどでモデルに対して動的な指示を書いておけばいいが、AIcontrollerなどはダメなんだと思った。