Blender→Unityのアニメーションの実装
目次
はじめに
こんにちは!3D課のMegです!
皆さんはBlenderでアニメーションを作ったことはあるでしょうか?
また、Blenderで作ったアニメーションをUnityへ持っていきたい…そう思ったことはありませんか?
そこでBlenderからUnityへのアニメーションの移行方法をまとめていきます。今回は一番簡単な移行法である、ボーンを使わないタイプの移行法について書いていきます。
今回この記事を読むのに向いている人は……
・BlenderとUnity初心者!
・物が崩れるなどの簡単なアニメーションをUnityで実装したい!
といった人です
あくまで超超超・超基本的なアニメーションの実装を行っていくので、ボーンなどを使った複雑なアニメーションを作りたい!と言う人は、次回ボーンを使ったアニメーションの記事を予定していますのでお楽しみください。
今回作っていくもの
今回作っていくのは、立方体を動かすアニメーションを作っていきます。簡単なアニメーションなのでご安心ください!使用するのはBlender3.6とUnity2022.3.11f1です。(Unity勉強したてなので表記間違ってたらごめんなさい)
制作の流れ
1 Blenderでアニメーションを作成
2 アニメーションが入ったFBXファイルを作成
3 Unityに持っていき、アニメーションを適用させる
4 Unityの中で動かす
1 アニメーションの作成
まずはBlenderを開きます。今回はカメラやライトは使用しないのでXで消去しておきましょう。
これからアニメーションを作っていくのですが、ここで一つ注意点があります。
それは上の画像の赤で囲まれた部分の、立方体の「トランスフォーム」です。ここが、画像のように0mや0°とスケール1.0という元の状態になっていないと、Unityに持って行ったときに変な動きになってしまうので注意が必要です。ちなみにずれている場合は、直したいメッシュを選択した状態でCtrl+Aをs押し、「全トランスフォーム」を選ぶと直せます。
そして次にレイアウト画面と再生ボタンがあるところの境目にカーソルを持っていき、ドラッグするとアニメーション部分を上に伸ばすことができるので、伸ばしておきます。
ここからアニメーションを作っていきます。まず、下画面のタイプがタイムラインになっていることを確認し、秒数が1秒のところにめもりを合わせます。ここまでの行程が終わると下のようになります。
次に上の画面にカーソルを持っていき、立方体を選択した状態でIキーを押すと「キーフレーム挿入メニュー」が出てきます。ここでは「位置」を選択しましょう。これを行うと下の図のようにタイムラインのところに黄色いしるしが付きます。これはアニメーションの中で、「1秒の時にどの場所にいるのか」という情報が入ったことになります。ちなみにこの操作をキーフレーム挿入と言います。なお、他の選択肢を選ぶと、角度やスケールなどの情報も保存することができるので、やりたいアニメーションによってその都度変えましょう。
ひとつキーフレームの挿入が終わったら二つ目のキーフレームを挿入します。タイムラインの秒数をずらした後に(今回は10に合わせる)、立方体をオブジェクトモードの状態でGキーで適当に動かします。その後、前行程で行ったのと同じようにIキーでキーフレーム挿入します。今回は6個分キーフレームを挿入し、下のようなアニメーションを作成しました。
2 FBXファイルの作成(Blender)
次にFBXファイルという形式でアニメーションを書き出していきま……と行きたいところですが、少しやることがあります。
実はこのままではFBXファイルにアニメーションが乗らないので、少し作業が必要です。
まずは、先ほどのタイムラインの画面を二つに増やします。そして3つある画面の内の真ん中を「タイムライン」から「ノンリニアアニメーション」に変更します。下の画面はドープシートに変更します。変更すると下の画像のような画面になります。
次に、ドープシートのモードを「ドープシート」から「アクション」に変更します。ちなみにこのモードは、下の画像の赤線で示すところで変更できます。
そして、ドープシートの点が選択されていることを確認し(黄色になっていたら良い)、真ん中のストリップ化を押します。ここで上のノンリニアアニメーションの画面が、下の画像のようにオレンジ色になっていれば成功しています。これをすることによってアニメーションが出力できます。
ここからFBXファイルを出力していきます。
まず、出力する立方体を選択した状態で、Blender画面左上のファイルからエクスポート→FBXと択択します。そうするとファイルプレビューが出てきます。プレビューの左側でどのように出力するかを設定するのですが、ここでは下の画像のように設定しました。特に、下の方にある「アニメーションをベイク」は忘れないようにしましょう。
そして保存したい場所を設定し、「FBXをエクスポート」を押すとFBXファイルが出力できます。
アニメーションの適応(Unity)
まず、Unityを開いたらAssetのところに先ほど作ったFBXファイルを追加しておきます。
ここで、追加したアセットの中にアニメーションが入っていることを確認しましょう。アニメーションが入っていれば下の画像で示しているように、水色のアイコンのものが入っています。入っていなければ正しくアニメーションが書き込めていないので前工程の1,2を再確認しましょう。(ストリップ化、エクスポートの設定ミスなど)
そして、先ほど追加した立方体をシーンの方にドラッグして入れます。マテリアルの設定が必要であればここでしておきましょう。
ここでAssetの中にフォルダーを作ります。名前は’Prefab’とここではしておきます。ヒエラルキーの中の立方体をこのPrefabフォルダーにドラッグします。こうすることによって下の画像のようにヒエラルキー内のアイコンが少し変わったと思います。これをプレハブ化と言います。今回の作業では必要ありませんが、Unityでよく使う機能の一つなので覚えておきましょう。
ここからアニメーションを立方体に付けていきます。
まずは、Asset内にCreateからAnimation Controllerを追加します。名前は何でも良いのですが、ここでは’cubeAnimation’としておきます。ダブルクリックすると、シーンの画面がアニメーションの構成画面になります。そして、下の画像で示しているように立方体のアニメーションをドラッグして持っていきます。
次にヒエラルキー内の立方体をクリックし、右側にあるInspectorにあるAdd ComponentからAnimatorを追加します。そして下の画像のように、AnimatorのControllerに先ほど作ったAnimation Controller(cubeAnimation)をドラッグなどで入れます。
これでアニメーションが適用できました!!
アニメーションを動かす(Unity)
ここまで来たら後は簡単です。
再生ボタンを押して結果を確かめましょう!!
結果はこのようになりました!!
補足
ちなみにこの方法には欠点があります。
それは……
アニメーションを作りづらい!! ということです
なぜかと言うと、アニメーションを作る時はオブジェクトモードでGキーやRキーなどを使って動かします。なので、メッシュの原点を使った移動になり、Rキーの使い勝手が悪くなります。それだけでなく、回転をこの方法で入れると挙動がおかしくなることが多いです。
よって、一つのオブジェクトのアニメーションを取る分には困りませんが、複数のオブジェクト(特に組み合わせが複雑なモノ)に関してはこの方法は苦手になります。
それらを踏まえ上で適切な方法でアニメーションを作るようにしましょう。
終わり
いかがだったでしょうか!今回書いた記事が制作の助けになれば幸いです。
今後も記事を書く機会があればよろしくお願いしますm(_ _)m