??? 添加Animation數據到test.x中,全內容如下:
xof?0303txt?0032
Frame?Root?{
????FrameTransformMatrix?{
????1.000000,?0.000000,?0.000000,?0.000000,
????0.000000,?1.000000,?0.000000,?0.000000,
????0.000000,?0.000000,?1.000000,?0.000000,
????0.000000,?0.000000,?0.000000,?1.000000;;
????}
????Mesh?MeshObj?{
????????12;
????????0.000000;?0.000000;?1.000000;,
????????1.000000;?0.000000;?1.000000;,
????????1.000000;?1.000000;?1.000000;,
????????0.000000;?1.000000;?1.000000;,
????????0.000000;?0.000000;?0.000000;,
????????1.000000;?0.000000;?0.000000;,
????????1.000000;?1.000000;?0.000000;,
????????0.000000;?1.000000;?0.000000;,
????????0.000000;?0.000000;?-1.000000;,
????????1.000000;?0.000000;?-1.000000;,
????????1.000000;?1.000000;?-1.000000;,
????????0.000000;?1.000000;?-1.000000;;
????????
????????20;
????????3;?0,?4,?1;,
????????3;?4,?5,?1;,
????????3;?1,?2,?0;,
????????3;?2,?3,?0;,
????????3;?6,?2,?5;,
????????3;?2,?1,?5;,
????????3;?3,?2,?7;,
????????3;?2,?6,?7;,
????????3;?7,?4,?3;,
????????3;?4,?0,?3;,
????????3;?4,?8,?5;,
????????3;?5,?8,?9;,
????????3;?5,?9,?6;,
????????3;?9,?10,?6;,
????????3;?6,?10,?11;,
????????3;?7,?6,?11;,
????????3;?7,?11,?8;,
????????3;?4,?7,?8;,
????????3;?8,?10,?9;,
????????3;8,?11,?10;;
????????
????????MeshNormals?{
????????????12;
????????????-0.333333;?-0.333333;?0.333333;,
????????????0.333333;?-0.333333;?0.333333;,
????????????0.333333;?0.333333;?0.333333;,
????????????-0.333333;?0.333333;?0.333333;,
????????????-0.500000;?-0.500000;?0.000000;,
????????????0.500000;?-0.500000;?0.000000;,
????????????0.500000;?0.500000;?0.000000;,
????????????-0.500000;?0.500000;?0.000000;,
????????????-0.333333;?-0.333333;?-0.333333;,
????????????0.333333;?-0.333333;?-0.333333;,
????????????0.333333;?0.333333;?-0.333333;,
????????????-0.333333;?0.333333;?-0.333333;,
????????????
????????????20;
????????????3;?0,?4,?1;,
????????????3;?4,?5,?1;,
????????????3;?1,?2,?0;,
????????????3;?2,?3,?0;,
????????????3;?6,?2,?5;,
????????????3;?2,?1,?5;,
????????????3;?3,?2,?7;,
????????????3;?2,?6,?7;,
????????????3;?7,?4,?3;,
????????????3;?4,?0,?3;,
????????????3;?4,?8,?5;,
????????????3;?5,?8,?9;,
????????????3;?5,?9,?6;,
????????????3;?9,?10,?6;,
????????????3;?6,?10,?11;,
????????????3;?7,?6,?11;,
????????????3;?7,?11,?8;,
????????????3;?4,?7,?8;,
????????????3;?8,?10,?9;,
????????????3;?8,?11,?10;;
????????}
????????
????????XSkinMeshHeader?{
????????????1;
????????????3;
????????????4;
????????}
????????SkinWeights?{
????????????"bone1";
????????????1;
????????????0;
????????????1.000000;
??????????? 1.000000,?0.000000,?0.000000,?0.000000,
????????????0.000000, 1.000000,?0.000000,?0.000000,
????????????0.000000,?0.000000, 1.000000,?0.000000,
????????????0.000000,?0.000000,?0.000000, 1.000000;;????????????
????????}????????
????????SkinWeights?{
????????????"bone2";
????????????1;
????????????1;
????????????1.000000;
????????????1.000000,?0.000000,?0.000000,?0.000000,
????????????0.000000,?1.000000,?0.000000,?0.000000,
????????????0.000000,?0.000000,?1.000000,?0.000000,
????????????0.000000,?0.000000,?0.000000,?1.000000;;????????????
????????}
????????SkinWeights?{
????????????"bone3";
????????????1;
????????????2;
????????????1.000000;
????????????1.000000,?0.000000,?0.000000,?0.000000,
????????????0.000000,?1.000000,?0.000000,?0.000000,
????????????0.000000,?0.000000,?1.000000,?0.000000,
????????????0.000000,?0.000000,?0.000000,?1.000000;;????????????
????????}
????????SkinWeights?{
????????????"bone4";
????????????1;
????????????3;
????????????1.000000;
????????????1.000000,?0.000000,?0.000000,?0.000000,
????????????0.000000,?1.000000,?0.000000,?0.000000,
????????????0.000000,?0.000000,?1.000000,?0.000000,
????????????0.000000,?0.000000,?0.000000,?1.000000;;????????????
????????}????????
????}
}
AnimationSet?{
????Animation?{
????????{?bone1?}????
????????AnimationKey?{
?????????2;
?????????2;
?????????0;
?????????3;
?????????0.000000,0.000000,0.000000;;,
?????????2;
?????????3;
?????????-1.000000,-1.000000,0.000000;;;
????????}
????}
}
AnimationSet?{
????Animation?{
????????{?bone2?}????
????????AnimationKey?{
?????????2;
?????????2;
?????????0;
?????????3;
?????????0.000000,0.000000,0.000000;;,
?????????4;
?????????3;
?????????1.000000,-1.000000,0.000000;;;
????????}
????}
}
AnimationSet?{
????Animation?{
????????{?bone3?}????
????????AnimationKey?{
?????????2;
?????????2;
?????????0;
?????????3;
?????????0.000000,0.000000,0.000000;;,
?????????6;
?????????3;
?????????1.000000,1.000000,0.000000;;;
????????}
????}
}
AnimationSet?{
????Animation?{
????????{?bone4?}????
????????AnimationKey?{
?????????2;
?????????2;
?????????0;
?????????3;
?????????0.000000,0.000000,0.000000;;,
?????????8;
?????????3;
?????????-1.000000,1.000000,0.000000;;;
????????}
????}
}
??? .x的Animation內容是讓立方體上部的4個vertex每隔兩幀向外延對角平移一個vertex, 通過DE顯示效果如下:

??? 這里說明一下.x部分內容:
????????XSkinMeshHeader?{
????????????1;
????????????3;
????????????4;//有四個vertex需要單獨移動,因此需要定義四個“bone”(姑且稱為bone吧)
????????}
????????SkinWeights?{
????????????"bone1";
????????????1;//bone作用與一個vertex
????????????0;//被作用的vertex的索引為0
????????????1.000000;//bone對指定vertex的作用力大小,或稱為“權重”,用于當多個bone作用于同一vertex時,進行力度分配。例如,如果是0.5,則此bone的作用力減半;
??????????? 1.000000,?0.000000,?0.000000,?0.000000,
????????????0.000000, 1.000000,?0.000000,?0.000000,
????????????0.000000,?0.000000, 1.000000,?0.000000,
????????????0.000000,?0.000000,?0.000000, 1.000000;; //bone初始Matrix,作用還不清楚;
????????}????????
AnimationSet?{
????Animation?{
????????{?bone1?}??? //指定作用的bone
????????AnimationKey?{
?????????2;//指定動作類型,這里是平移:這里說明下,這個段叫做KeyType,在Directx的SDK(2008.11)中說:
?????????? //keyType - Specifies whether the keys are rotation, scale, position, or matrix
keys (using the integers 0, 1, 2, or 3, respectively).
????????? //但實際使用中的值卻是0,1,2,4,很奇怪;
?????????2;//指定有幾個幀
?????????0;//起始幀
?????????3;
?????????0.000000,0.000000,0.000000;;,
?????????2;//終止幀
?????????3;
?????????-1.000000,-1.000000,0.000000;;;//平移變化量
????????}
????}
}
??? 詳細說明請參考:
??????????????????????????? 1.
http://www.shnenglu.com/lovedday/archive/2008/05/27/51278.html??????????????????????????? 2.
http://blog.csdn.net/linber214/archive/2008/10/16/3082490.aspx