MRが楽しい

MRやVRについて学習したことを書き残す

MRTKで球体オブジェクトが弾けて消えるアニメーションを作成する

本日は MRTK の小ネタ枠です。
MRTKで半透明の球体オブジェクトが弾けて消えるアニメーションを作成してみたので記事にします。
f:id:bluebirdofoz:20210709233738j:plain

MRTKStandardShader

MRTK の StandardShader を利用すると様々なアニメーションをシェーダのプロパティから実行することができます。
Samples パッケージの MaterialGallery で利用例を確認することができます。
f:id:bluebirdofoz:20210709233754j:plain

今回は Vertex Extrusion のサンプルを参考に球が弾けるアニメーションを作成しました。
f:id:bluebirdofoz:20210709233809j:plain

モデルの作成

MaterialGallery で使用されている Model_Bucky プレハブを取得し、シーンに配置します。
f:id:bluebirdofoz:20210709233821j:plain

Vertex Extrusion の効果を利用するためには、[Vertex Extrusion]にチェックを入れた MRTKStandardShader を利用します。
Model_Bucky プレハブにも以下のマテリアルが設定されています。
f:id:bluebirdofoz:20210709233835j:plain

今回は透過したオブジェクトで効果を実現したいので、マテリアルを編集します。
[RenderingMode]を[additive]に変更し、[Albedo]のカラーに透過色を設定します。
f:id:bluebirdofoz:20210709233902j:plain

この状態でシーンを再生し、アニメーションを確認します。
Vertex Extrusion のサンプルアニメーションは一定の変化量で広がって戻るを繰り返します。
f:id:bluebirdofoz:20210709233912j:plain

アニメーションの編集

今回はそのまま弾けて消えるアニメーションにしたいので anim ファイルを複製して編集します。
f:id:bluebirdofoz:20210709233924j:plain

元の形に戻るアニメーションキーを[右クリック-> Delete Key]で削除し、広がるアニメーションキーの値を大きめに設定します。
f:id:bluebirdofoz:20210709233936j:plain

またアニメーションをループさせないように、Inspector ビューから[Loop Time]のチェックを外しておきます。
f:id:bluebirdofoz:20210709233948j:plain

アニメーションを確認して形状が元に戻らないことを確認します。
アニメーションコントローラを複製した場合は参照の差し替えを行っておきます。
f:id:bluebirdofoz:20210709234001j:plain

ただし[Vertex Extrusion]は頂点位置を押し出すだけのものなので、値をどれだけ大きくしても破片が残ります。
f:id:bluebirdofoz:20210709234014j:plain

プロパティの追加

最終的にモデルを消失させるため Transform の Scale 値を変化させることでモデルを消失させます。
アニメーションのプロパティを追加するには anim ファイルを再び開き、編集対象の Platonic オブジェクトを選択状態にします。
f:id:bluebirdofoz:20210709234024j:plain

この状態で[Add Property]ボタンをクリックすると対象のプロパティを選択できます。
[Transform -> Scale]の[+]ボタンをクリックします。
f:id:bluebirdofoz:20210709234035j:plain

アニメーションの終わりで[Scale]が 0 になるようにキーを設定します。
f:id:bluebirdofoz:20210709234046j:plain

再びシーンを再生して確認します。
球体オブジェクトが弾けて消えるアニメーションが再生されれば成功です。
f:id:bluebirdofoz:20210709234057j:plain