BoneDataImport - trzr/Blender-CM3D2-BoneUtil GitHub Wiki

◆BoneData取り込み

◇ 概要

この機能で、Armatureからボーン情報をCM3D2向けのカスタムプロパティ(BoneData)に取込む事ができます。
ArmatureかMeshのどちらを選択するかは、Converterのエクスポート時にどちらの値を使用するかによります。
また、取込み対象のボーンは、以下から選択することができます。(詳細は後述)

  • 選択ボーン+子孫ボーン
  • 選択ボーンのみ
  • 全ボーン

◇ Armatureオブジェクトへの取り込みの場合

  • 設定先: Armatureオブジェクトの データ->カスタムプロパティ
  • 参照元: 選択されたArmatureのボーン bdimp_arm

◇ Meshオブジェクトへの取り込みの場合

  • 設定先: Mesh上のオブジェクト->カスタムプロパティ
  • 参照元: 親オブジェクト(Armature)のボーン bdimp_mesh
  • 頂点グループ に関する設定
    Meshオブジェクトの場合は、ボーンに合わせて頂点グループを追加するか設定できます。
選択項目 説明
追加 ボーンに合わせて頂点グループを追加
既存のみ使用 頂点グループにないボーンはLocalBoneDataに取り込まない



◇共通

BoneData取り込み画面

dialog

  • ターゲット で取り込むボーンを選択できます。
項目 説明
選択ボーン+子孫ボーン 選択ボーンとその子孫ノードを取り込み
選択ボーン 選択ボーンのみ取り込み
全ボーン 全ボーンを取り込み
  • 取り込み対象 (デフォルト:オン)
    取り込むデータとして BoneData、LocalBoneDataを選択可能

  • 存在しないボーンのBoneData削除 (デフォルト:オフ)
     ボーンが存在しないBoneDataをカスタムプロパティから削除します

  • 子がないノードは、末端ノードとして_nubを自動で追加します
    ただし、名前の末尾がnubのボーンや長さが基準サイズのボーンはnubを作成しません

  • IKボーンは削除しない (デフォルト:オン)
    オンにすると、IKボーンを削除しません
    (IKボーン = ボーン名に_IK_が含まれるもの)

  • 動作モード
    CM3D2 Converterのバージョン(0.423以降)で取り込んだデータは、
    アーマチュアの生成処理が変わっているため、動作モードを切り替える必要があります。

項目 説明
通常動作 CM3D2 Converterの新しいバージョン(0.423以降)で取り込んだデータが対象
自動判定 ボーンの長さで旧版か否かを判定(完全ではない)
旧版動作 CM3D2 Converterの古いバージョン(0.414以前)で取り込んだデータが対象

※ バージョン0.415~0.422で取り込んだデータは未サポートとなります。

以下に、「選択ボーン」の使用例と、「選択ボーン+子孫ボーン」の使用例のイメージを示します。 selectbone



■ 推奨

○ modelインポート

  • ボーンの変更を行うモデルは、 CM3D2 Converterのインポート時に 「不要なボーンを削除」オプションは オフ を推奨
    ∵ skirtなど、頂点グループに割り当てられていないがBoneDataに設定されているボーンを残すことができます。
    また、オフ にすることでインポート時にnubボーンを残せます。

■ 制限

  • BoneData取込み機能
    • ボーン名 (その1)
      この機能では、ボーン名はBlenderではなくCM3D2向けの命名規則になっている事を前提としています。
      このため、BoneDataを取込む際には、CM3D2 Converterのボーン名変換機能を使って、
      「Blender→CM3D2」の変換を行っておいてください。

    • ボーン名 (その2)
      末尾にnubがつくボーンは末端ノードとして判定してしまうため、注意してください。

    • BoneDataの誤差について
      pythonのfloat型は本来、倍精度程度の有効桁数を持っていますが、
      Blenderで使用されているmathutilsは内部的にCのfloat型にマッピングされているため、
      有効数字が6桁程度になっています。
      この影響で、BoneDataへ取込む値に誤差が生じています。

 * 四元数の符号が反転することがありますが、オイラー角は同一です。

⚠️ **GitHub.com Fallback** ⚠️