見出し画像

【cluster】アニメーションからCreate Item Gimmickを呼び出す

この記事では,アニメーションからCreate Item Gimmickを作動させて、新規のアイテムを生成する方法を紹介します。例として、移動と攻撃を繰り返す敵の動きを、アニメーションを使って作る方法を解説します。

動作の要素

実際に作ってみると以下のようになります。仕掛けはそこまで目新しい技術を使っているわけではありません。一瞬見える白い立方体が肝です。

実装方法

まず、ヒエラルキーは以下のように構成されています。MainオブジェクトとAttackCreatorオブジェクトはItemです。それらをEnemyオブジェクトの下にまとめることで、一緒に動きます。

直接のコピー (3)

まず、Mainオブジェクトには、Create Item Gimmickをアタッチします。また、Rigidbodyをアタッチして他のオブジェクトとの衝突判定を有効化します。

画像3

次に、AttackCreatorはMainと接触する位置に配置して、衝突判定用のコライダーをアタッチします。また、On Collide Item Triggerで、他のオブジェクトとの衝突が生じた際は、その対象にSignalを渡すように設定します。最初は非アクティブです。

画像4

最後に、Enemyオブジェクトにはアニメーターをアタッチします。ステートマシンは以下のようになっています。移動と攻撃(アイテム生成)を交互に繰り返します。

スクリーンショット 2021-09-05 201608

アイテムを生成するためのAttackアニメーションは、非アクティブな状態のAttackCreatorをアクティブに切り替えています。この瞬間、AttackCreatorとMainの間で衝突が発生→AttackCreatorのOn Collide Item Triggerが呼ばれる→接触対象のMainにSignal送信→Signalを受信したMainのCreate Item Gimmickでアイテム生成、という処理が行われます。最後にAttackCreatorを再度非アクティブにしておけば、次にアクティブにしたときも同様に衝突判定が行われます。

画像5

一定時間ごとにアイテムを生成する方法としては、Timerを使う方法がありますが、生成の時間間隔やほかの動きとの組み合わせを柔軟に変更できるようにするためには、現状これが最適だと思われます。

Cluster GAMEJAM 2021 in SUMMERでは、実際にこの方法を使って、ある時間的なパターンで移動と攻撃を繰り返す敵の挙動を、アニメーションで制御しました。攻撃の間隔や移動速度などをまとめてアニメーターで変更できるので、色々な種類の敵を作るのも楽でした。


この記事が気に入ったらサポートをしてみませんか?