.Xの階層メッシュアニメーションの構造

それでは、中身をメモ帳で見てみます。
例によってテンプレート部分は除去しています。

xof 0302txt 0032

Header {
 1;
 0;
 1;
}

Frame obj1 {
  Mesh Mesh_obj1 {
   8;
    -0.737684;0.370641;-1.270489;,
    -0.737684;-0.370641;-1.270489;,
    0.737684;0.370641;-1.270489;,
    0.737684;-0.370641;-1.270489;,
    0.737684;0.370641;1.270489;,
    0.737684;-0.370641;1.270489;,
    -0.737684;0.370641;1.270489;,
    -0.737684;-0.370641;1.270489;,

   6;
   4;0,2,3,1;,
   4;2,4,5,3;,
   4;4,6,7,5;,
   4;6,0,1,7;,
   4;6,4,2,0;,
   4;1,3,5,7;,

   MeshNormals {
    8;
    -0.434438;0.864659;-0.252248;,
    -0.434438;-0.864659;-0.252248;,
    0.434438;0.864659;-0.252248;,
    0.434438;-0.864659;-0.252248;,
    0.434438;0.864659;0.252248;,
    0.434438;-0.864659;0.252248;,
    -0.434438;0.864659;0.252248;,
    -0.434438;-0.864659;0.252248;,

    6;
    4;0,2,3,1;,
    4;2,4,5,3;,
    4;4,6,7,5;,
    4;6,0,1,7;,
    4;6,4,2,0;,
    4;1,3,5,7;,
   }

   MeshMaterialList {
    1;
    6;
    0,
    0,
    0,
    0,
    0,
    0,
    Material {
     0.000000;0.599200;0.135200;1.000000;;
     5.000000;
     0.000000;0.000000;0.000000;;
     0.000000;0.000000;0.000000;;
    }
   }

  }
Frame obj2 {
  Mesh Mesh_obj2 {
   58;
    0.000000;0.997358;-0.000000;,
    0.000000;0.957951;-0.198116;,
    0.140089;0.957951;-0.140089;,
    0.198116;0.957951;0.000000;,
    0.140089;0.957951;0.140089;,
    -0.000000;0.957951;0.198116;,
    -0.140089;0.957951;0.140089;,
    -0.198116;0.957951;-0.000000;,
    -0.140089;0.957951;-0.140089;,
    0.000000;0.845727;-0.366070;,
    0.258850;0.845727;-0.258850;,
    0.366070;0.845727;0.000000;,
    0.258850;0.845727;0.258850;,
    -0.000000;0.845727;0.366070;,
    -0.258850;0.845727;0.258850;,
    -0.366070;0.845727;-0.000000;,
    -0.258850;0.845727;-0.258850;,
    0.000000;0.677773;-0.478293;,
    0.338204;0.677773;-0.338204;,
    0.478293;0.677773;0.000000;,
    0.338204;0.677773;0.338204;,
    -0.000000;0.677773;0.478293;,
    -0.338204;0.677773;0.338204;,
    -0.478293;0.677773;-0.000000;,
    -0.338204;0.677773;-0.338204;,
    0.000000;0.479657;-0.517701;,
    0.366070;0.479657;-0.366070;,
    0.517701;0.479657;0.000000;,
    0.366070;0.479657;0.366070;,
    -0.000000;0.479657;0.517701;,
    -0.366070;0.479657;0.366070;,
    -0.517701;0.479657;-0.000000;,
    -0.366070;0.479657;-0.366070;,
    0.000000;0.281542;-0.478293;,
    0.338204;0.281542;-0.338204;,
    0.478293;0.281542;0.000000;,
    0.338204;0.281542;0.338204;,
    -0.000000;0.281542;0.478293;,
    -0.338204;0.281542;0.338204;,
    -0.478293;0.281542;-0.000000;,
    -0.338204;0.281542;-0.338204;,
    0.000000;0.113587;-0.366070;,
    0.258850;0.113587;-0.258850;,
    0.366070;0.113587;0.000000;,
    0.258850;0.113587;0.258850;,
    -0.000000;0.113587;0.366070;,
    -0.258850;0.113587;0.258850;,
    -0.366070;0.113587;-0.000000;,
    -0.258850;0.113587;-0.258850;,
    0.000000;0.001364;-0.198116;,
    0.140089;0.001364;-0.140089;,
    0.198116;0.001364;0.000000;,
    0.140089;0.001364;0.140089;,
    -0.000000;0.001364;0.198116;,
    -0.140089;0.001364;0.140089;,
    -0.198116;0.001364;-0.000000;,
    -0.140089;0.001364;-0.140089;,
    0.000000;-0.038044;-0.000000;,

   64;
   3;0,2,1;,
   3;0,3,2;,
   3;0,4,3;,
   3;0,5,4;,
   3;0,6,5;,
   3;0,7,6;,
   3;0,8,7;,
   3;0,1,8;,
   4;1,2,10,9;,
   4;2,3,11,10;,
   4;3,4,12,11;,
   4;4,5,13,12;,
   4;5,6,14,13;,
   4;6,7,15,14;,
   4;7,8,16,15;,
   4;8,1,9,16;,
   4;9,10,18,17;,
   4;10,11,19,18;,
   4;11,12,20,19;,
   4;12,13,21,20;,
   4;13,14,22,21;,
   4;14,15,23,22;,
   4;15,16,24,23;,
   4;16,9,17,24;,
   4;17,18,26,25;,
   4;18,19,27,26;,
   4;19,20,28,27;,
   4;20,21,29,28;,
   4;21,22,30,29;,
   4;22,23,31,30;,
   4;23,24,32,31;,
   4;24,17,25,32;,
   4;25,26,34,33;,
   4;26,27,35,34;,
   4;27,28,36,35;,
   4;28,29,37,36;,
   4;29,30,38,37;,
   4;30,31,39,38;,
   4;31,32,40,39;,
   4;32,25,33,40;,
   4;33,34,42,41;,
   4;34,35,43,42;,
   4;35,36,44,43;,
   4;36,37,45,44;,
   4;37,38,46,45;,
   4;38,39,47,46;,
   4;39,40,48,47;,
   4;40,33,41,48;,
   4;41,42,50,49;,
   4;42,43,51,50;,
   4;43,44,52,51;,
   4;44,45,53,52;,
   4;45,46,54,53;,
   4;46,47,55,54;,
   4;47,48,56,55;,
   4;48,41,49,56;,
   3;49,50,57;,
   3;50,51,57;,
   3;51,52,57;,
   3;52,53,57;,
   3;53,54,57;,
   3;54,55,57;,
   3;55,56,57;,
   3;56,49,57;,

   MeshNormals {
    58;
    -0.000000;1.000000;0.000000;,
    -0.000000;0.923880;-0.382683;,
    0.270598;0.923879;-0.270598;,
    0.382683;0.923880;0.000000;,
    0.270598;0.923879;0.270598;,
    -0.000000;0.923880;0.382683;,
    -0.270598;0.923879;0.270598;,
    -0.382683;0.923880;0.000000;,
    -0.270598;0.923879;-0.270598;,
    -0.000000;0.664072;-0.747669;,
    0.528682;0.664071;-0.528682;,
    0.747669;0.664072;0.000000;,
    0.528682;0.664071;0.528682;,
    -0.000000;0.664072;0.747669;,
    -0.528682;0.664071;0.528682;,
    -0.747669;0.664072;0.000000;,
    -0.528682;0.664071;-0.528682;,
    -0.000000;0.358135;-0.933670;,
    0.660205;0.358134;-0.660204;,
    0.933670;0.358135;0.000000;,
    0.660204;0.358134;0.660205;,
    -0.000000;0.358135;0.933670;,
    -0.660205;0.358134;0.660204;,
    -0.933670;0.358135;0.000000;,
    -0.660204;0.358134;-0.660205;,
    -0.000000;-0.007870;-0.999969;,
    0.707085;-0.007870;-0.707085;,
    0.999969;-0.007870;0.000000;,
    0.707085;-0.007870;0.707085;,
    -0.000000;-0.007870;0.999969;,
    -0.707085;-0.007870;0.707085;,
    -0.999969;-0.007870;0.000000;,
    -0.707085;-0.007870;-0.707085;,
    -0.000000;-0.375401;-0.926862;,
    0.655391;-0.375401;-0.655391;,
    0.926862;-0.375401;0.000000;,
    0.655391;-0.375401;0.655391;,
    -0.000000;-0.375401;0.926862;,
    -0.655391;-0.375401;0.655391;,
    -0.926862;-0.375401;0.000000;,
    -0.655391;-0.375401;-0.655391;,
    -0.000000;-0.688171;-0.725548;,
    0.513040;-0.688171;-0.513040;,
    0.725548;-0.688171;0.000000;,
    0.513040;-0.688171;0.513040;,
    -0.000000;-0.688171;0.725548;,
    -0.513040;-0.688171;0.513040;,
    -0.725548;-0.688171;0.000000;,
    -0.513040;-0.688171;-0.513040;,
    -0.000000;-0.899643;-0.436625;,
    0.308741;-0.899643;-0.308741;,
    0.436625;-0.899643;0.000000;,
    0.308741;-0.899643;0.308741;,
    -0.000000;-0.899643;0.436625;,
    -0.308741;-0.899643;0.308741;,
    -0.436625;-0.899643;0.000000;,
    -0.308741;-0.899643;-0.308741;,
    0.000000;-1.000000;-0.000000;,

    64;
    3;0,2,1;,
    3;0,3,2;,
    3;0,4,3;,
    3;0,5,4;,
    3;0,6,5;,
    3;0,7,6;,
    3;0,8,7;,
    3;0,1,8;,
    4;1,2,10,9;,
    4;2,3,11,10;,
    4;3,4,12,11;,
    4;4,5,13,12;,
    4;5,6,14,13;,
    4;6,7,15,14;,
    4;7,8,16,15;,
    4;8,1,9,16;,
    4;9,10,18,17;,
    4;10,11,19,18;,
    4;11,12,20,19;,
    4;12,13,21,20;,
    4;13,14,22,21;,
    4;14,15,23,22;,
    4;15,16,24,23;,
    4;16,9,17,24;,
    4;17,18,26,25;,
    4;18,19,27,26;,
    4;19,20,28,27;,
    4;20,21,29,28;,
    4;21,22,30,29;,
    4;22,23,31,30;,
    4;23,24,32,31;,
    4;24,17,25,32;,
    4;25,26,34,33;,
    4;26,27,35,34;,
    4;27,28,36,35;,
    4;28,29,37,36;,
    4;29,30,38,37;,
    4;30,31,39,38;,
    4;31,32,40,39;,
    4;32,25,33,40;,
    4;33,34,42,41;,
    4;34,35,43,42;,
    4;35,36,44,43;,
    4;36,37,45,44;,
    4;37,38,46,45;,
    4;38,39,47,46;,
    4;39,40,48,47;,
    4;40,33,41,48;,
    4;41,42,50,49;,
    4;42,43,51,50;,
    4;43,44,52,51;,
    4;44,45,53,52;,
    4;45,46,54,53;,
    4;46,47,55,54;,
    4;47,48,56,55;,
    4;48,41,49,56;,
    3;49,50,57;,
    3;50,51,57;,
    3;51,52,57;,
    3;52,53,57;,
    3;53,54,57;,
    3;54,55,57;,
    3;55,56,57;,
    3;56,49,57;,
   }

   MeshMaterialList {
    1;
    64;
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Material {
     0.000000;0.000000;0.800000;1.000000;;
     5.000000;
     0.000000;0.000000;0.000000;;
     0.000000;0.000000;0.000000;;
    }
   }

  }
Frame obj3 {
  Mesh Mesh_obj3 {
   18;
    0.000000;0.722594;-0.200378;,
    0.000000;0.877437;-0.200378;,
    0.109491;0.832085;-0.200378;,
    0.154843;0.722594;-0.200378;,
    0.109491;0.613104;-0.200378;,
    -0.000000;0.567751;-0.200378;,
    -0.109491;0.613104;-0.200378;,
    -0.154843;0.722594;-0.200378;,
    -0.109491;0.832085;-0.200378;,
    0.000000;0.877437;-0.945364;,
    0.109491;0.832085;-0.945364;,
    0.154843;0.722594;-0.945364;,
    0.109491;0.613104;-0.945364;,
    -0.000000;0.567751;-0.945364;,
    -0.109491;0.613104;-0.945364;,
    -0.154843;0.722594;-0.945364;,
    -0.109491;0.832085;-0.945364;,
    0.000000;0.722594;-0.945364;,

   24;
   4;1,2,10,9;,
   4;2,3,11,10;,
   4;3,4,12,11;,
   4;4,5,13,12;,
   4;5,6,14,13;,
   4;6,7,15,14;,
   4;7,8,16,15;,
   4;8,1,9,16;,
   3;0,2,1;,
   3;0,3,2;,
   3;0,4,3;,
   3;0,5,4;,
   3;0,6,5;,
   3;0,7,6;,
   3;0,8,7;,
   3;0,1,8;,
   3;17,9,10;,
   3;17,10,11;,
   3;17,11,12;,
   3;17,12,13;,
   3;17,13,14;,
   3;17,14,15;,
   3;17,15,16;,
   3;17,16,9;,

   MeshNormals {
    18;
    -0.000000;-0.000000;1.000000;,
    -0.000000;0.979075;0.203498;,
    0.692311;0.692311;0.203499;,
    0.979075;-0.000000;0.203498;,
    0.692311;-0.692311;0.203498;,
    -0.000000;-0.979075;0.203498;,
    -0.692311;-0.692311;0.203498;,
    -0.979075;-0.000000;0.203498;,
    -0.692311;0.692311;0.203499;,
    -0.000000;0.979075;-0.203498;,
    0.692311;0.692311;-0.203499;,
    0.979075;-0.000000;-0.203498;,
    0.692311;-0.692311;-0.203498;,
    -0.000000;-0.979075;-0.203498;,
    -0.692311;-0.692311;-0.203498;,
    -0.979075;-0.000000;-0.203498;,
    -0.692311;0.692311;-0.203499;,
    -0.000000;-0.000000;-1.000000;,

    24;
    4;1,2,10,9;,
    4;2,3,11,10;,
    4;3,4,12,11;,
    4;4,5,13,12;,
    4;5,6,14,13;,
    4;6,7,15,14;,
    4;7,8,16,15;,
    4;8,1,9,16;,
    3;0,2,1;,
    3;0,3,2;,
    3;0,4,3;,
    3;0,5,4;,
    3;0,6,5;,
    3;0,7,6;,
    3;0,8,7;,
    3;0,1,8;,
    3;17,9,10;,
    3;17,10,11;,
    3;17,11,12;,
    3;17,12,13;,
    3;17,13,14;,
    3;17,14,15;,
    3;17,15,16;,
    3;17,16,9;,
   }

   MeshMaterialList {
    1;
    24;
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Material {
     0.800000;0.800000;0.000000;1.000000;;
     5.000000;
     0.000000;0.000000;0.000000;;
     0.000000;0.000000;0.000000;;
    }
   }

  }
}
}
}

AnimationSet {

 Animation {
  AnimationKey {
   0;
   5;
   0; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   1500; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   2250; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   3000; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   4500; 4; 0.350207, 0.000000, 0.936672, -0.000000;;,
  }
  AnimationKey {
   2;
   5;
   0; 3; 0.070000, 0.020000, -0.000000;;,
   1500; 3; 0.070000, 0.020000, -1.300000;;,
   2250; 3; 0.070000, 0.020000, -1.300000;;,
   3000; 3; 0.070000, 0.020000, -1.300000;;,
   4500; 3; 0.070000, 0.020000, -1.300000;;,
  }
  { obj1 }
 }

 Animation {
  AnimationKey {
   0;
   5;
   0; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   1500; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   2250; 4; 0.746106, -0.065276, 0.660099, -0.057751;;,
   3000; 4; 0.746106, -0.065276, 0.660099, -0.057751;;,
   4500; 4; 0.746106, -0.065276, 0.660099, -0.057751;;,
  }
  AnimationKey {
   2;
   5;
   0; 3; 0.000000, 0.000000, -0.000000;;,
   1500; 3; 0.000000, 0.000000, -0.000000;;,
   2250; 3; 0.000000, 0.000000, -0.000000;;,
   3000; 3; 0.000000, 0.000000, -0.000000;;,
   4500; 3; 0.000000, 0.000000, -0.000000;;,
  }
  { obj2 }
 }

 Animation {
  AnimationKey {
   0;
   5;
   0; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   1500; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   2250; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
   3000; 4; 0.902176, -0.118774, 0.411145, -0.054128;;,
   4500; 4; 0.993540, 0.095667, 0.060767, 0.005851;;,
  }
  AnimationKey {
   2;
   5;
   0; 3; 0.000000, 0.000000, -0.000000;;,
   1500; 3; 0.000000, 0.000000, -0.000000;;,
   2250; 3; 0.000000, 0.000000, -0.000000;;,
   3000; 3; 0.000000, 0.000000, -0.000000;;,
   4500; 3; 0.000000, 0.000000, -0.000000;;,
  }
  { obj3 }
 }
}
 

スタティックメッシュの時との違いは Frame で Mesh と (子階層の)Frame が、
入れ子構造になっていて後付けで Animation 関連が記述されている事です。

一番、外側の Frame が親で、中に入っていくほど、子階層になります。

アニメーションが一つの時は、AnimationSet は一つです。
複数アニメーションがある時は、アニメーションの数だけ AnimationSet があります。

obj1のアニメーション部分を抜き出して解説すると

Animation {
 AnimationKey {
  0; //キータイプ
  5; //キーの数
  0; 4; 1.000000, 0.000000, 0.000000, -0.000000;;, //キーの位置;データの数;データ
  1500; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
  2250; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
  3000; 4; 1.000000, 0.000000, 0.000000, -0.000000;;,
  4500; 4; 0.350207, 0.000000, 0.936672, -0.000000;;,
 }
 AnimationKey {
  2;
  5;
  0; 3; 0.070000, 0.020000, -0.000000;;,
  1500; 3; 0.070000, 0.020000, -1.300000;;,
  2250; 3; 0.070000, 0.020000, -1.300000;;,
  3000; 3; 0.070000, 0.020000, -1.300000;;,
  4500; 3; 0.070000, 0.020000, -1.300000;;,
 }
 { obj1 }
}

のようになります。
キータイプとデータの格納方法は
0…回転  w,x,y,zの順にクォータニオンデータ
1…拡大縮小 x,y,zの順に拡大縮小データ
2…平行移動 x,y,zの順に平行移動データ
4…合成行列 回転、拡大縮小、平行移動行列が掛け合わされた4×4行列データ
となっています。

 

最終更新:2011年05月21日 11:28