ゲーム作りが大好きな人のブログ

ゲームを作るのが大好きな人のブログ。UE4とBlender、MAYA(LT)、3DCoatを使用しています!

緊急回避の実装。UE4ネタはDestroyActor周り

f:id:toofu0:20150527094348p:plain緊急回避モーションの実装。

モーションブラーのせいで凄い絵になってる。

 

性能としては打撃等の全てのアクションをキャンセルして出せる回避技で

長時間の無敵時間を持つ反面、短時間で3回以上連続で出せないといった

デメリットを持つ技にしようかと思ってます。

まぁ、知っている人なら分かるアレですが。

 

◆ UE4あれこれ

※めっちゃ調べているわけではないので間違いの可能性もあります

 

・DestroyActorは直接呼ばない方がいいんじゃない?

ぷちコンの時も思ったんですが、DestroyActorは破棄するアクターの

Tick内で呼ばない方がいいと思います。

 

前調べた時はDestroyActorを読んだ瞬間に各コンポーネントの破棄が走り

DestroyActor以降の処理でコンポーネントを参照している所があれば

それがInvalidとなり、エラーを吐くといった物でした。

 

継承関係をよく利用していた作りだったので、基底クラスで

破棄フラグが立ったからDestroyしたら、残りのクラスの処理が走って

エラーが発生するといった流れでした。

 

現在はこれを対策するために破棄したいアクターは

gamemodeにあるアクターの配列に登録し

gamemodeのTickで登録されたアクターを破棄してやるようにしています。

(これもコンポーネント化させました)

 

ブループリントの流れは分かりませんが

もしアクターが所持するコンポーネントの処理の流れが並列でないのであれば

アクターに破棄を管理するコンポーネントをもたせ

それを利用して自身を破棄するようにすればいいかもしれません。

 

うーん、並列かどうかはもう少し調べないと分からないので

また分かり次第なんか書きます。