BoneDataImport - trzr/Blender-CM3D2-BoneUtil GitHub Wiki
この機能で、Armatureからボーン情報をCM3D2向けのカスタムプロパティ(BoneData)に取込む事ができます。
ArmatureかMeshのどちらを選択するかは、Converterのエクスポート時にどちらの値を使用するかによります。
また、取込み対象のボーンは、以下から選択することができます。(詳細は後述)
- 選択ボーン+子孫ボーン
- 選択ボーンのみ
- 全ボーン
- 設定先: Armatureオブジェクトの データ->カスタムプロパティ
-
参照元: 選択されたArmatureのボーン
- 設定先: Mesh上のオブジェクト->カスタムプロパティ
-
参照元: 親オブジェクト(Armature)のボーン
-
頂点グループ に関する設定
Meshオブジェクトの場合は、ボーンに合わせて頂点グループを追加するか設定できます。
選択項目 | 説明 |
---|---|
追加 | ボーンに合わせて頂点グループを追加 |
既存のみ使用 | 頂点グループにないボーンはLocalBoneDataに取り込まない |
BoneData取り込み画面
- ターゲット で取り込むボーンを選択できます。
項目 | 説明 |
---|---|
選択ボーン+子孫ボーン | 選択ボーンとその子孫ノードを取り込み |
選択ボーン | 選択ボーンのみ取り込み |
全ボーン | 全ボーンを取り込み |
-
取り込み対象 (デフォルト:オン)
取り込むデータとして 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で取り込んだデータは未サポートとなります。
以下に、「選択ボーン」の使用例と、「選択ボーン+子孫ボーン」の使用例のイメージを示します。
- ボーンの変更を行うモデルは、 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へ取込む値に誤差が生じています。
-
* 四元数の符号が反転することがありますが、オイラー角は同一です。