UE4 リスポーンとイベントディスパッチャー

今回はリスポーンとイベントディスパッチャーについて説明したいなと思います。

まず、動画を見てください。


bandicam 2016 11 25 12 24 49 752

動画で行っている処理の流れは、デバッグ用のボタン(キーボードPボタン)を押すかプレイヤー(青髪の男の子)が足場から落ちてしますと死亡。その後、リスポーン回数(おじいちゃんの顔)を減少させてから、リスポーン(destroyActorされてから数秒後にリスポーン)する流れとなっています。

 

実際にリスポーンをしているBPを見てみましょう。

まず、実際に操作しているPlayerのBPに死亡の処理を描いています。

f:id:kenta-sasaki-76:20161125112413p:plain

 

先ほど軽く説明しますたが、Pボタンはデバック用です。イベントDestroyedはこのアクターがdestroyしたとき呼ばれるイベントです。このイベントを使うときに注意しなくてはいけない点は、Delayで次の処理を遅らせようとしても次の処理が呼ばれない点です。

 

今回はリスポーンまでに一定時間の間隔をあけたかったので、playerのBPにはリスポーン処理がかけませんでした。そこで使ったのが、イベントディスパッチャーです。

イベントディスパッチャーとは呼び出しを行うと、その呼び出しとバインドしている処理を実行することができるものです。

 

今回はPlayerが死んだ時に、イベントディスパッチャーのDestroy_Playerを呼び出しています。何処でその呼び出しとバインドしているかというと、別のアクターのBP内で呼び出しています。

PLayer_Respawnという別アクターでリスポーンを操作してあげることによって、アクターがdestroyした後の処理を遅らせることなど、拡張性の高いことができるつくりになっています。

f:id:kenta-sasaki-76:20161125121452p:plain

 バインドする事でバインドとつながっている、イベントが実行されます。それによりリスポーンできます。リスポーン地点も変更や指定がが楽なのでおススメです。