BlenderからUnityへアニメーションをエクスポートする

BlenderからUnityへモデル・アニメーションをエクスポートしてみる 3Dモデル関連
スポンサーリンク

この記事ではBlenderで作成したアニメーションをエクスポートしてUnityで使用する方法について紹介します。
※アニメーションについての説明がメインの記事です。
 Unityで使えるように作られているモデルデータを使用しているため、エクスポートしたモデルがUnity上でうまく表示されない場合などの説明については省略していますのでご了承ください。

以下のバージョンを使用しています。
・Blender:3.1.2
・Unity:2022.1.1f1

使用データについて

無料で使える人型のモデルをダウンロードできる「Renderpeople」というサイトがあったのでこちらからモデルをお借りしています。
https://renderpeople.com/free-3d-people/

今回は「3D RIGGED PEOPLE」のモデルをダウンロードします。
「3D RIGGED PEOPLE」の下にある[FREE DOWNLOAD]ボタンをクリックし、FBX形式でダウンロードします。

Renderpeopleからダウンロードする手順の画像
他にもポーズをとっているモデルやアニメーション付きのモデルがあります

ダウンロードできたら解凍し、中に入っているfbxファイルをBlenderでインポートします。

fbxファイルをインポートする画像
「ファイル > インポート > FBX」を選択します

「rp_claudia_rigged_002_u3d.fbx」をインポートしてみました。

インポートした画像
おそらく「u3d」は「Unity 3D」のことだと思います

マテリアルを設定します。
メッシュを選択してマテリアルプロパティを開き、新しいマテリアルを追加します。
追加したマテリアルのベースカラー横の丸をクリックし、画像テクスチャを選択します。

マテリアルのベースカラーで画像テクスチャを選択する画像
画像テクスチャを選択します

「開く」を選択し、テクスチャ画像を選択して画像を開きます。
テクスチャ画像は、解凍したモデルデータのフォルダの「tex」フォルダ内に入っています。

テクスチャ画像を開く手順の画像
今回は「rp_claudia_rigged_002_dif」を選択しました

マテリアルプレビューに変えると、テクスチャがついたことが分かります。

テクスチャ付きモデルの画像
リアルな女性のモデルになりました

アニメーションを作成します。
試しに歩くアニメーションを作ってみました。
(手と足しか動かしていないので不自然ですが気にしないでください)

歩くアニメーションのgif
Unityで動くか確認するだけなのでどんなアニメーションでも大丈夫です

FBX形式でUnityにエクスポート

アニメーションも作成できたので、Unityにモデルとアニメーションをエクスポートしてみます。
FBX形式でエクスポートをします。

fbx形式でエクスポートする画像
「ファイル > エクスポート > FBX」を選択します

エクスポートの設定です。
オブジェクトタイプは必要なものだけ選択します。
今回はアーマチュアとメッシュを選択しました。
Shiftキーを押しながらクリックで複数選択ができます。
また、下の方にある「アニメーションをベイク」のチェックを入れておきます。

エクスポート設定の画像
そのほかの設定は省略します

エクスポートしたファイルをUnityで開きます。
マテリアルの設定で画像テクスチャに指定したテクスチャとFBXファイルの2つをドラッグアンドドロップします。

テクスチャとFBXファイルをUnityで読み込ませた画像
テクスチャを入れると自動でモデルに反映されます

アニメーションを動かすためにAnimator Controllerを追加します。
Projectウィンドウで右クリックし、「Create > Animator Controller」を選択します。

Animator Controllerを追加する画像
Animator Controllerを選択します

Animator ControllerをダブルクリックするとAnimatorビューが表示されます。
このAnimatorビューに、Blenderからモデルと一緒に持ってきたアニメーションを追加します。

アニメーションをAnimatorへドラッグアンドドロップする画像
ドラッグアンドドロップすると、画像のようにアニメーションがビューに追加されます

Hierarchyウィンドウにモデルをドラッグアンドドロップしてオブジェクトを作成します。
このオブジェクトにAnimatorコンポーネントを追加し、Controllerには先ほど作成したAnimator Controllerを指定します。

オブジェクト追加とAnimatorコンポーネント設定の画像
AnimatorコンポーネントにAnimator Controllerを設定することで
Animatorビューに追加したアニメーションが再生されるようになります

今の状態だと再生してもアニメーションがループしないので、ループさせるように設定を変更します。
アニメーションを選択して、Inspectorウィンドウの[Edit]をクリックします。

アニメーションのEditを開く画像
右上の方にある[Edit…]をクリックします

真ん中あたりに「Loop Time」があるので、チェックを入れて[Apply]ボタンをクリックします。

Loop Timeにチェックを入れて適用する画像
Loop TimeをONにするとアニメーションがループ再生されるようになります

設定後、実行してみると歩くアニメーションが再生されました。

Unityでアニメーション再生したgif
ちゃんとループしています

アニメーションだけをUnityに取り込みたい場合は?

上で紹介した方法だとFBXファイルの中にモデルとアニメーションが一緒に格納されていました。
しかし後からBlenderで新しくアニメーションを追加した場合、もうモデルのデータはUnity側にあるのでいりませんよね。
アニメーションだけをUnityに取り込む場合の手順についても紹介します。

Blenderで手を挙げるアニメーションを追加しました。

手を挙げるアニメーションのgif
新規アニメーションを作成します

「ファイル > エクスポート > FBX」を選択し、エクスポート設定を行います。
アニメーションのみの場合、オブジェクトタイプはアーマチュアのみ選択します。

アニメーションのみエクスポートする設定の画像
そのほかは特に設定していません

Unityに取り込むと、最初の歩くアニメーションと先ほど作成した手を挙げるアニメーションの2つが入っています。

アニメーションをUnityに取り込んだ画像
アニメーションのみ取り出せました

持ってきたアニメーションをクリックし、InspectorウィンドウのRigタブで設定を以下のように変更します。
・Animation Type:Generic
・Avatar Definition:Create From This Model
・Root node:root
変更したら[Apply]をクリックします。

アニメーションのインポート設定をする画像
画像のように設定して適用します

適用するとAvatarが追加されました。

Avatarが追加された画像
アニメーションのところにAvatarが追加されています

このAvatarをオブジェクトにしたモデルのAnimatorコンポーネントへ設定します。
Avatarを選択できる場所があるのでこちらにセットします。

AnimatorコンポーネントにAvatarを設定した画像
Avatarを設定します

Animatorビューにアニメーションを追加します。
歩くアニメーションを外して手を挙げるアニメーションに入れ替えました。
実行するとアニメーションが正常に再生されています。

手を挙げるアニメーションが再生された画像
これで好きなアニメーションを後から追加できるようになりましたね

まとめ:エクスポート設定を変えればアニメーションだけの出力もできる!

Blenderでモデルとアニメーションを一緒にエクスポートする場合は「アーマチュア」と「メッシュ」、アニメーションのみをエクスポートする場合は「アーマチュア」のみ選択してFBX出力すれば可能です。
あとはアニメーションのみの場合にUnity側でインポート設定をしてAvatarを作れば好きなだけアニメーションを追加できますね!
今回は省略していますがモデルのみを出力することもできるので、「モデルのみ出力」をして「アニメーションのみ出力」するのが一番きれいなやり方になりそうですね。

コメント

タイトルとURLをコピーしました