Avaturn アバターに Mixamo 歩行アニメーションをリターゲット:Blender CLI から Three.js ランタイムまで
はじめに Avaturn は写真から 3D アバターを生成できるサービスです。生成されたアバターは GLB 形式でダウンロードでき、Idle(待機)アニメーション付きのモデルも取得できます。 しかし 歩行アニメーションは含まれていません。VR 空間でアバターを歩かせたい場合、別途アニメーションを用意する必要があります。 この記事では、既存の Mixamo 歩行アニメーションを Avaturn アバターに適用(リターゲット)する過程を記録します。3つのアプローチを試しました: Blender 5.0 CLI でオフライン変換 Node.js で結果を比較検証 Three.js ランタイムでブラウザ内リターゲット 前提知識 ボーン名の対応 Avaturn と Mixamo は同じ骨格構造(Humanoid)を使いますが、ボーン名が異なります: Mixamo Avaturn mixamorig:Hips Hips mixamorig:LeftArm LeftArm mixamorig:Head Head mixamorig: プレフィックスを外すだけで名前が一致します。 Rest Pose の違い ボーン名が一致しても、rest pose(初期姿勢)のボーン回転が微妙に異なる場合があります。アニメーションのクォータニオン値は rest pose 基準なので、そのまま適用すると姿勢が崩れます。 アプローチ 1: Blender 5.0 CLI Blender 5.0 の Layered Action API Blender 5.0 でアニメーション API が大幅に変わりました。従来の action.fcurves は使えなくなり、レイヤー構造になっています。 # Blender 4.x(旧) fcurves = action.fcurves # Blender 5.0(新) fcurves = action.layers[0].strips[0].channelbags[0].fcurves キーフレームの一括挿入も insert() ではなく foreach_set() + update() を使う必要があります: ...