本日は MRTK の小ネタ枠です。
MRTKで半透明の球体オブジェクトが弾けて消えるアニメーションを作成してみたので記事にします。
MRTKStandardShader
MRTK の StandardShader を利用すると様々なアニメーションをシェーダのプロパティから実行することができます。
Samples パッケージの MaterialGallery で利用例を確認することができます。
今回は Vertex Extrusion のサンプルを参考に球が弾けるアニメーションを作成しました。
モデルの作成
MaterialGallery で使用されている Model_Bucky プレハブを取得し、シーンに配置します。
Vertex Extrusion の効果を利用するためには、[Vertex Extrusion]にチェックを入れた MRTKStandardShader を利用します。
Model_Bucky プレハブにも以下のマテリアルが設定されています。
今回は透過したオブジェクトで効果を実現したいので、マテリアルを編集します。
[RenderingMode]を[additive]に変更し、[Albedo]のカラーに透過色を設定します。
この状態でシーンを再生し、アニメーションを確認します。
Vertex Extrusion のサンプルアニメーションは一定の変化量で広がって戻るを繰り返します。
アニメーションの編集
今回はそのまま弾けて消えるアニメーションにしたいので anim ファイルを複製して編集します。
元の形に戻るアニメーションキーを[右クリック-> Delete Key]で削除し、広がるアニメーションキーの値を大きめに設定します。
またアニメーションをループさせないように、Inspector ビューから[Loop Time]のチェックを外しておきます。
アニメーションを確認して形状が元に戻らないことを確認します。
アニメーションコントローラを複製した場合は参照の差し替えを行っておきます。
ただし[Vertex Extrusion]は頂点位置を押し出すだけのものなので、値をどれだけ大きくしても破片が残ります。
プロパティの追加
最終的にモデルを消失させるため Transform の Scale 値を変化させることでモデルを消失させます。
アニメーションのプロパティを追加するには anim ファイルを再び開き、編集対象の Platonic オブジェクトを選択状態にします。
この状態で[Add Property]ボタンをクリックすると対象のプロパティを選択できます。
[Transform -> Scale]の[+]ボタンをクリックします。
アニメーションの終わりで[Scale]が 0 になるようにキーを設定します。
再びシーンを再生して確認します。
球体オブジェクトが弾けて消えるアニメーションが再生されれば成功です。