最近ちょっとしたゲームを作っていまして宝箱が欲しかったんですよ。
でも3Dモデルが見つからなかったので、Blenderで作ってUnityで使ってみました。
上の動画の箱が開くアニメーションなんですが、これはUnityで制御しているわけではなく、Blenderで設定したアニメーションをそのまま再生しているだけです。
この記事ではBlenderからUnityでアニメーションを再生する方法についてご紹介していきたいと思います。
Blenderでアニメーションを設定する
Keyingを使ってアニメーションを設定しました。
宝箱の蓋は移動できるように分離しておきます。
閉じている時(0フレーム目)

空いている時(20フレーム目)
蓋を選んで移動と回転をして空いている状態を作ってからKeying登録します。

全体のフレームは40にしています。
これでアニメーションの設定は完了です。
Unity
Unityにエキスポートすると、、、なぜかアニメーションが2つありました。

まぁ、使うのはCoverの方だけなので、スルーしましょう。
アニメーションを再生するには、アニメーションとスクリプトを宝箱にアタッチします。

スクリプトでは以下のコードを実行すると、アニメーションを再生します。
GetComponent<Animation>().Play();
「The AnimationClip ‘xxxx’ used by the Animation component ‘xxxxx’ must be marked as Legacy.」エラーが出た
なんかアニメーションをレガシーにせよ!と怒られました。
これの対処方法はとしては、以下の通り。
- アニメーションを複製する。(複製したアニメーションは宝箱の外に出ます。)
- 複製したアニメーションのレガシーにチェックを入れる
右上のメニューでDebugを選択します。

Legacyにチェックをします。

これで終了です。
お疲れ様でした。
参考
https://heppokoprogramer.seesaa.net/article/417421703.html