通りすがりの記憶

ただのメモかも知れない

MMDのモデルデータ(PMD)形式 めも5 (ボーンリスト)

2009-06-06 23:25:32 | MMD
PMD形式めも
・ボーンリスト
WORD bone_count; // ボーン数
t_bone bone[bone_count]; // ボーンデータ(39Bytes/bone)

・t_bone
char bone_name[20]; // ボーン名
WORD parent_bone_index; // 親ボーン番号(ない場合は0xFFFF)
WORD tail_pos_bone_index; // tail位置のボーン番号(チェーン末端の場合は0xFFFF 0 →補足2) // 親:子は1:多なので、主に位置決め用
BYTE bone_type; // ボーンの種類
WORD ik_parent_bone_index; // IKボーン番号(影響IKボーン。ない場合は0)
float bone_head_pos[3]; // x, y, z // ボーンのヘッドの位置

・ボーンの種類
0:回転 1:回転と移動 2:IK 3:不明 4:IK影響下 5:回転影響下 6:IK接続先 7:非表示

・ボーンの種類 (MMD 4.0~)
8:捻り 9:回転運動

補足:
1モデルあたりのボーン数の実質的な限界が変わったようです。(MMD6.x~)
実験結果:
MMD6.02、6.08
約500本x1(テストに使ったデータは513本)→落ちない
約2000本x1(テストに使ったデータは2599本)→落ちる
約500本x10→落ちない
MMD5.22
約500本x1→落ちない
約2000本x1→落ちない

補足2:
MMD 7.39dot前後のアップデートに伴い、
チェーン末端のtail位置のボーン番号(子ボーン番号)は0になりました。
(旧バージョンでも使用可)

非表示ボーン(「~~先」など)のtail位置のボーン番号を0xFFFFとした場合、
tail位置が画面左上端付近のボーンとして表示されます。
実験結果:
MMD 7.30までは、問題ないようです。(通常の非表示ボーンと同様、ボーンは表示されません。)
MMD 7.37~7.39では、MMD本体が落ちるようです。
MMD 7.39dot(~8.03)では、
・数回に一度、MMD本体が落ちます。
・MMD本体が落ちなかった場合は、左上に伸びるボーンとして表示されます。
 稀に、エンジン状態(数方向の繰り返し)となる場合もあります。
 (通常の非表示ボーンと同様、ボーンは表示されない場合もあります。)
・読込後しばらく経ってからMMD本体が落ちる事があります。
・2回目のモデル読込時に落ちる事が多いようです。
・画面左下の操作部(local, X, Y, Z等表示されているエリア)付近を通過してpmdファイルをドラッグした場合に落ちる事が多いようです。
・32bit版、64bit版ともに、MMD本体が落ちる場合があります。
(あくまで実験結果なので、落ちるのは0xFFFF以外の原因かもしれません。)

MMD 7.30の場合


MMD 8.03(64bit版)の場合



最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。