Blender 2.82a
Unity 2020.2.7f1
BlendファイルはUnityのAssets配下に置いても良いが基本的にはFBX出力したモデルを使うのでどこでもよい。
Characters.blend
└┬─Collection 1
│ ├─CharaA Armature
│ ├─CharaA BodyMesh
│ ├─CharaA Wepon1Mesh
│ └─CharaA Wepon2Mesh
└─Collection 2
├─CharaB Armature
├─CharaB BodyMesh
├─CharaB Wepon1Mesh
└─CharaB Wepon2Mesh
Actionは各キャラクターのArmatureオブジェクトにリンクさせている。
(ArmatureオブジェクトにActionがリンクされているかどうかはNonlinear Animationビューの表示で確認できる)
BlenderでのActionの名前被りを避けるためキャラ名アクション名
という命名規則にしている。
Nonlinear Animationビューの表示例
CharaA Armature
└┬─[Action Stash] CharaASit
├─[Action Stash] CharaAWalk
└─[Action Stash] CharaAAttack
CharaB Armature
└┬─[Action Stash] CharaBSit
├─[Action Stash] CharaBWalk
└─[Action Stash] CharaBAttack
FBX出力する際、Collectionの有効無効を切り替えることで任意のコレクション内のモデル毎に出力する。
FBXエクスポート設定例
下3つのGeometry、Armature、Bake Animation項目はデフォルトのまま。
コレクションごとに「CharaA.fbx」「CharaB.fbx」といったファイルを出力してUnityに取り込む。
取り込んだモデルとアニメーションをそのまま使う。
この構成のメリットは色々あるけど、長年の試行錯誤と経験から他の構成より安定するという点で採用している。
他の構成の例
- キャラごとに.blendファイルを分けて.blendファイルをUnityに直接読み込ませる
- 2キャラの連携アニメーションを作る時に.blendファイルのままだと難しかったので断念
- キャラごとにアーマチュアとメッシュだけの.blendファイルを作り、アニメーション用の.blendファイルからLink&Proxyを張る
- アニメーション作ってUnityに出力した時にLinkオブジェクトの名前に勝手に「_L」と付いてドライバで制御するシェイプキーだけがうまく動かなかったり、元データのモデル編集後にリロードしても新規追加したシェイプキーやボーンコンストレイントが読み込まれずに結局LinkとProxyを削除して再度Link&Proxyする面倒臭さに負けて断念