i-school - 3Dトップビューアクション 手順19
 武器の動きに合わせてトレイル(軌道)をつける演出を行います。


<実装動画>
動画ファイルへのリンク



手順19 ー攻撃演出の実装ー

 ・Trail Renderer コンポーネント
 ・パーティクル用マテリアルの流用



1.設計


 トレイルとは軌跡の意味です。

 Unity には Trail Renderer コンポーネントが用意されており、これをゲームオブジェクトにアタッチすることにより、
そのゲームオブジェクトの軌道上に合わせた軌跡を生成することが出来ます。

参考サイト
Unity 公式マニュアル
Trail Renderer コンポーネント


 このトレイル機能を利用して、攻撃時の武器の軌道に合わせた軌跡を表示させる演出を追加します。


2.パーティクルの素材


 Trail Renderer コンポーネントにはマテリアルを登録することで、任意のトレイルを生成出来ます。
演出上、パーティクルシステムを利用して作られているエフェクト系のアセットを活用しましょう。
これらに利用されているマテリアルを流用することが最もイメージに近いトレイルが生成されます。

 アセットストアから任意のパーティクルシステムを使ったエフェクトのアセットをインポートし、その中に含まれているマテリアルをトレイルとして利用するようにしましょう。


Asset Storeの[Particle Free]での検索結果
https://assetstore.unity.com/publishers/37183?q=Pa...



 この教材では下記のアセット内のマテリアルを利用しています。
他のものでも構いませんので、自分の気に入ったものを利用してください。


Cartoon FX Remaster Free
https://assetstore.unity.com/packages/vfx/particle...





3.武器のゲームオブジェクトに子オブジェクトを作成し、Trail Renderer コンポーネントをアタッチして設定を行う


 プレイヤーのゲームオブジェクト内にある武器のゲームオブジェクトを選択し、右クリックしてメニューを開き、Create Empty を選択します。
新しいゲームオブジェクトが作成されますので、名前を Trail に変更します。

 インスペクターより Add Component ボタンを押して、Trail Renderer コンポーネントをアタッチします。


ヒエラルキー画像



インスペクター画像




 では Trail ゲームオブジェクトの設定を行います。

 まず Transform コンポーネントの Positon の設定を行います。

 トレイルという演出上、武器よりも後方位置にあった方が雰囲気が出ます。

 任意の位置に調整してみてください。
これは、実際にトレイルが生成されてから調整しても問題ありません。



 続いて、TrailRenderer コンポーネントの設定を行います。

 最初に TrailRenderer コンポーネントのスイッチはオフにしておきます。
スイッチが入っていると常にトレイルが表示されてしまうためです。

 次に、Materials の Element 0 に、先ほどインポートしたエフェクト・アセットにあるマテリアルを1つ選択して、
ドラッグアンドドロップしてアサインしてください。

 これが生成されたトレイルの表面に適用されます。


マテリアルのパス
Assets/JMO Assets/Cartoon FX/Materials/Fire/CFX3_FireSparkle ADD.mat


フォルダ



インスペクター画像




 合わせて Color の設定も任意に行ってみてください。

 トレイルの色味を変更することが出来ます。



 完成した際のインスペクターの例です。


インスペクター画像


 以上で設定は完了です。


4.AttackPlayer スクリプトを修正する


 今回はこの Trail Renderer のオン/オフの切り替えをスクリプトを利用して制御します。

 攻撃開始のタイミングに合わせてスイッチをオンにしてトレイルを表示します。
そして攻撃終了のタイミングに合わせてスイッチをオフにしてトレイルを非表示します。

 この機能制御についても、前回実装している AnimationEvent を活用します。

 別途メソッドを用意してもよいですが、今回は、AnimationEvent で実行されている SwitchWeaponCollider メソッド内に処理を追記する形で実装します。
コンポーネントを制御するためには、そのコンポーネントの情報が必要になります。
繰り返し命令を出す想定ですので、メンバ変数を用意して、それを利用して命令を出すようにします。
 
 TrailRenderer コンポーネントがアタッチされているゲームオブジェクトはネストが深いため、
SerializeField属性を利用して、事前にアサインしてメンバ変数に情報を登録しておくようにします。


 <= クリックすると開きます


 スクリプトを修正したら、セーブします。



5.ゲームを実行して動作を確認する


 Trail Renderer の制御処理を AnimationEvent に連動する形式にしました。
そのため、武器による攻撃を行うことで、それに合わせてトレイルが生成されるようになります。

 どのような挙動になるかをイメージした上でゲームを実行し、動作を確認してください。


<実装動画>
動画ファイルへのリンク


 デバッグを繰り返し行って、よいトレイルになるように、位置やマテリアルなどを調整してください。



 以上でこの手順は終了です。

 => 次は 手順20 −− です。