Blenderのmmd_toolsにてポーズ読み込みでエラーが出る場合の対処法。
問題の概要:
Blender の新しめのバージョンでmmd_toolsでポーズ読み込みしようとすると、
「 AttributeError: Calling operator "bpy.ops.poselib.pose_add" error, could not be found」
とエラーが発生する
原因:
Blender 4.0以降でポーズライブラリの操作方法が変更された
mmd_toolsのコードが新しいBlenderのバージョンに対応していない
解決方法
mmd_toolsのインストールフォルダ内のimporter.pyファイルを修正する。
パス:
C:\Users\ユーザーネーム\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\mmd_tools\core\vpd\importer.py
(ユーザーネームのところをwindowsのネームにしてね!)
をこのファイルで置き換えてください。
変更点:
ポーズライブラリの扱い方の変更:
旧バージョン:bpy.ops.poselib.pose_add()を使用してポーズを追加。
新バージョン:直接アクションとポーズマーカーを操作してポーズを保存。
アニメーションデータの取り扱い:
新しいコードでは、アニメーションデータが存在しない場合に明示的に作成。
アクションが存在しない場合、新しいアクションを作成し割り当て。
ポーズの保存方法:
新しいポーズマーカーを作成し、現在のフレーム番号を設定。
各ボーンの位置、回転、スケールを個別にキーフレームとして保存。
エラーハンドリング:
bpy.ops.poselib.pose_add()の使用によるエラーを回避。
Blender 4.0以降との互換性:
新しいポーズライブラリシステムに対応したコードになっている。
柔軟性の向上:
新しい方法は、より低レベルの操作を行うため、将来のBlenderの変更にも適応しやすい可能性がある。
これらの変更により、Blender 4.0以降でのVPDファイルのインポートが可能になり、エラーが解消されます。同時に、新しいBlenderのポーズライブラリシステムとの互換性が確保されます。
追記:
初めて本格的なノートを書いてみたので、何か不備があるかもしれません。もし何かご不備があった場合は、気軽に著者のTwitterとかに連絡してください!!
最後まで読んでいただきありがとうございました。