見出し画像

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()を使用してポーズを追加。

  • 新バージョン:直接アクションとポーズマーカーを操作してポーズを保存。

  1. アニメーションデータの取り扱い:

    • 新しいコードでは、アニメーションデータが存在しない場合に明示的に作成。

    • アクションが存在しない場合、新しいアクションを作成し割り当て。

  2. ポーズの保存方法:

    • 新しいポーズマーカーを作成し、現在のフレーム番号を設定。

    • 各ボーンの位置、回転、スケールを個別にキーフレームとして保存。

  3. エラーハンドリング:

    • bpy.ops.poselib.pose_add()の使用によるエラーを回避。

  4. Blender 4.0以降との互換性:

    • 新しいポーズライブラリシステムに対応したコードになっている。

  5. 柔軟性の向上:

    • 新しい方法は、より低レベルの操作を行うため、将来のBlenderの変更にも適応しやすい可能性がある。

これらの変更により、Blender 4.0以降でのVPDファイルのインポートが可能になり、エラーが解消されます。同時に、新しいBlenderのポーズライブラリシステムとの互換性が確保されます。

追記:

初めて本格的なノートを書いてみたので、何か不備があるかもしれません。もし何かご不備があった場合は、気軽に著者のTwitterとかに連絡してください!!
最後まで読んでいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?