PavilionDV7の雑多なやつ

Qiitaから移行しました。UE4に関する記事から興味のあることまで色々書きます。

【UE5】Projectile Movement Componentを再アクティブ化したときに動かない問題

問題のブループリント

Set ActiveでFalseを渡すことで非アクティブ化しComponentのTickも停止させている。その後、逆の手順で再アクティブ化している。

しかしタイトルの通り、この手順ではProjectile Movement Componentは正しく動かない。

解決策

幸いにも同じ問題についてコミュニティフォーラムに回答があった。

Make a projectile move again after it comes to a stop - Blueprint - Epic Developer Community Forums

解決するには次の2点が必要。

  • Projectile Movement ComponentからSet Updated Componentを呼び出す
  • Projectile Movement ComponentのVelocityを再設定する

修正したブループリントは次の通り。


非アクティブ化した時点でProjectile Movement ComponentのVelocityは0になってしまう。そのため、Set Updated Componentを呼び出しても実際には移動しない(Velocityが0だから)。なので明示的にProjectile Movement ComponentにVelocityを再設定する必要がある。 このときVelocityには「方向 x Speed」の値を設定しなければならない(Initial Speedは再アクティブ化のときには参照されない)。

参考

Make a projectile move again after it comes to a stop - Blueprint - Epic Developer Community Forums