はじめに
Mixamoは大量の3Dモデルのアニメーションが無料で利用できるサイトです。
またMixamo公式からControl Rig(IK)を設定するBlenderアドオンが公開されており、
簡単にアニメーションを作成できます。
今回はMixamoアニメーションを自作のモデルに適用し、
Blenderでアニメーションを調整し、
Unityでアニメーションを読み込む方法を説明します。
手順概要
以下のような例で手順を説明します。手順2まではすでに終わっているものとし、
手順3から説明します。
- Blenderで自作モデルを作成
- Unityで自作モデルををセットアップ
- Mixamoセットアップ ← ここから説明
- Mixamoから「歩く、振り返る」アニメーションをダウンロード
- Blenderでアニメーションをインポート
- Blenderでアニメーションを「歩く→振り返る」に合成
- Blenderでアニメーションをエクスポート
- Unityでアニメーションをインポート
- Unityでモデルにアニメーションを適用
前提知識
- BlenderでFBXモデルをエクスポートしUnityでインポートできる
- BlenderでNonlinear Animationを使い既存のアニメーションを合成できる
- Unityで既存のアニメーションクリップを使いモデルにアニメーションを適用できる
手順
開始状態
以下のように自作Unity用モデルがセットアップされた状態で始めます。
今回は受付嬢さんを使用します。
ボーン名は次のようにUnityの名前に合わせます。
Blender : アドオンのインストール
以下2つのアドオンをインストールします
- https://substance3d.adobe.com/plugins/mixamo-in-blender/
- https://github.com/hide00310/blender_pybone_convertor
Blender : Mixamo元モデルのダウンロード
Unity用モデルをMixamoモデルに変換するため、
Mixamoから元モデルをダウンロードします。
- https://www.mixamo.com/
- Charactersタブ
- 適当なキャラクターを選択
- DOWNLOAD
Blender : Mixamoアップロード用モデルに変換
Mixamoにアップロードするためのモデルを作成します
- Armatureを複製します。ここではArm_MixamoUploadとします
- Mixamo元モデルをインポートします。ここではArm_MixamoOrgとします
- Miscタブ > PyBone Convertor から以下設定でConvertします
Arm_MixamoUploadのボーンがMixamo用に変換されます
- Arm_MixamoUploadのアーマチュアだけをArm_MixamoUpload.fbxとしてエクスポートします。設定はUnityと同じです
Mixamo : アニメーションのダウンロード
- Mixamoサイト > UPLOAD CHARACTER でArm_MixamoUpload.fbxをアップロードします
- Animationタブで検索し、WalkingとRight Turnをダウンロードします
Blender : Control Rigの作成
Control Rigを適用したモデルを作成します
- 自作モデルのArmatureとメッシュを複製します。ここではArm_MixamoCtrlとします
- Miscタブ > PyBone Convertor から以下設定でConvertします
- Arm_MixamoCtrlを選択
- Script :
${.}/unity_to_mixamo.py
- Source Armature : Arm_MixamoOrg
- Align Roll : Check
- Add not existing bones : Check
- Mixamoタブ > Control Rig > Create Control Rig でControl Rigを作成します
Blender : アニメーションの合成
アニメーション作成
- WalkingとRight Turnをインポートします
- 分かりやすいようにアーマチュアとアニメーションをOrgWalking, OrgTurnにリネームします
- Arm_MixamoCtrlを選択します
- Mixamoタブ
- Source Skeleton : Arm_OrgWalking
- Apply Animation to Control Rig
- Animation Workspace > Nonlinear Animation からArm_MixamoCtrlのActionをPush Downします
- OrgTurnも同様に行います
- Unityで取り込むために1フレーム目にTPoseアニメーションを作成します
- Poseモード
- Armature > Clear Tramsformする
- 全ボーンを選択
- Iキーでキーを挿入
- ActionをPush Down
- Nonlinear AnimationでWalkingとTurnを合成します
アニメーションベイク
- Pose Modeにします
- ボーンを全選択解除します
- Object Data Property > Layers で2番目を選択します
- ボーンを全選択します
- Nonlinear Animation > Edit > Bake Action で以下をチェックしてベイクします
- Only Selected Bones
- Visual Keying
- Clean Curves
- Action名を分かりやすいものに変えます。ここではWalkingTurnとします
- Arm_MixamoCtrlのアーマチュアだけをArm_MixamoCtrl.fbxとしてエクスポートします
Unity : アニメーションのインポート
- Arm_MixamoCtrl.fbxを選択します
- Rig
- Animation Type : Humanoid
- Apply
- Arm_MixamoCtrl.fbxの中からArm_MixamoCtrl|WalkingTurnアニメーションクリップを選択します
- Ctrl+Dでアニメーションクリップを複製します
- 複製後はArm_MixamoCtrl.fbxを削除しても問題ありません
- Arm_MixamoCtrl_WalkingTurnアニメーションクリップの設定を以下のようにします
- Root Transform Rotation/Position(Y)/Position(XY)
- Bake into Pose : Check
- Based Upon(at Start) : Original
- Root Transform Rotation/Position(Y)/Position(XY)
- AnimatorにArm_MixamoCtrl_WalkingTurnを設定して完了です
- 使用モデル : 有坂みと様,ぷらすわん様 受付嬢さん https://booth.pm/ja/items/1568317