※この記事は、 Unreal Engine 4 (UE4) #2 Advent Calendar 2019 の11日目の記事となります。
どうもTeamKRAMA代表のXaiです!
普段はCi-enにてゲーム仕様の公開をしておりますが今回初めてAdventCalenderに参加させていただくことになり、公式HPにてその記事を作成してみようと思います。
今回実装をご紹介するのは・・・こちら!!
このバイト(噛みつき)してキャッチ(捕縛)して ☆ パラダイス(連れ回す)という一連の仕様をUE4にてどのように実装したかを説明したいと思います。
UE4にはゲームの仕様を制作する機能としてブループリントと呼ばれるノードで仕様を組むことが出来ます。
今回の仕様はそのブループリントを活用して実装しています。
少しでもUE4を知る、仕様作る際の参考となれば幸いです。
登場キャラの紹介
ヒカリ
Crawler
仕様のかんたんな流れ
- ヒカリが近づくとAIがバイト攻撃を実行
- バイト攻撃が成功した場合、ヒカリのAIを止め、ヒカリをワームにアタッチし、捕縛モーションに遷移する
- 捕縛したまま逃走行動を実行し、自身が死亡するかヒカリが死亡するまでそれを実行し続ける
仕様詳細
ヒカリが近づくとAIがバイト攻撃を実行
各AIの制御はAIBehaviorToolKitというアセットを使ってます。
扱いやすく、行動設定も簡単にできる上に汎用性が高いのでRPG,FPSなどジャンル問わず使えるのが便利です。(以降AIBT)
行動条件が満たされた場合、バイト攻撃のタスクを実行します。
ちょっと駆け足の紹介でしたがこんな流れで攻撃が実行されます。
バイト攻撃が成功した場合、ヒカリのAIを止め、ヒカリをワームにアタッチし、捕縛モーションに遷移する
ここからはちょっとだけ丁寧に・・・
ここで女性と男性とで遷移が分岐します。
男には怒りのApplyDamageとImpulseで吹き飛ばし効果を与え、女性には専用アニメーションに切り替え、その後の捕縛状態に移行させるという愛を持った接し方をします。
関数名が一部伏せられているのは色々とお察しくださいませ・・・
ここからはアタッチに関する処理です。
見た目上(ワームの口にヒカリがくっついている状態)はAttachToComponentで、ActorそのものはAttachActorToActorでくっつけています。
あとの処理は音出したりFX出したりする処理になります。
捕縛したまま逃走行動を実行し、自身が死亡するかヒカリが死亡するまでそれを実行し続ける
逃走行動の実行はAIBehaviorTreeを使って切り替えています。
敵が死亡した場合は捕まえた時の真逆の処理を順番に実行していきます。
最後ヒカリが再出現する場所は地面の中にめり込むことがあったためZ値を補正してたりします。
こんな感じで先程のアクションを実装してみました。
もっと効率的な方法とかもあると思うので是非皆さんも色々試してみてください。
本ゲーム「Seed of the Dead2」は今月末に体験版を公開予定です!
公開先は
- Ci-en (国内向け支援者サイト)
- Patreon (国外向け支援者サイト)
- コミケC97 12/31(火) 南3モ17a (DLカードでの頒布・特典付き)
を予定しています!
お待ちしていますー!
引き続きUnreal Engine 4 (UE4) #2 Advent Calendar 2019をお楽しみください!