动画创作家园  动画人最专业的动画理论网站。
高级搜索
维爱迪-动画创作家园 >> 动画理论 >> 3D游戏角色动画

3D游戏角色动画

维爱迪-动画创作家园 出处: 作者:迷糊小亚 日期:2007-5-31 14:00:30 3D MAX 动画制作教程 | 推荐下载:原动画基础教程 | 动画片《大闹天宫》文学剧本 | Photoshop入门与进阶实例

 

3D游戏角色动画

1 介绍微软的X文件

   制作3D游戏角色动画需要与之相关的“动画容器”。这个“容器”中储存着动画的数据。微软的X文件正是这样的一种容器。由于微软的影响力,它们公司设计的X文件也广为流传。X文件是一套基于模版定义的文件,理论上它能够容纳任何数据。也就意味着不仅仅是3D模型文件,任何用于游戏引擎加载的外部资源都可以被包含于X文件之中。下面我们详细的介绍下X文件。为了得到一个直观的印象,我们首先浏览下它的全貌。

xof 0302txt 0032

template Header {

<3D82AB43-62DA-11cf-AB39-0020AF71E433>

DWORD major;

DWORD minor;

DWORD flags;

}

template Frame {

<3D82AB46-62DA-11cf-AB39-0020AF71E433>

[FrameTransformMatrix]

[Mesh]

}

Header {

1;

0;

1;

}

Frame Scene_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;;

                     }

Frame Pyramid_Frame {

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 PyramidMesh {

5;

0.00000;10.00000;0.00000;,

-10.00000;0.00000;10.00000;,

10.00000;0.00000;10.00000;,

-10.00000;0.00000;-10.00000;,

10.00000;0.00000;-10.00000;;

6;

3;0,1,2;,

3;0,2,3;,

3;0,3,4;,

3;0,4,1;,

3;2,1,4;,

3;2,4,3;;

MeshMaterialList {

1;

6;

0,0,0,0,0,0;;

Material Material0 {

1.000000; 1.000000; 1.000000; 1.000000;;

0.000000; 

0.050000; 0.050000; 0.050000;;

0.000000; 0.000000; 0.000000;;

                   }

                 }

                 }

                    }

}

首先看头文件xof 0302txt 0032。xof表示这是一个真正的X文件。0302txt表示通知程序使用Directx的X文件,版本为3.2的模版,其中txt表示此文件为文本文件,可读,并非是一个2进制文件。0032表示一个浮点数的位数为32,如果想要用64位的浮点数,可以写成0064。

下面我们将按照以下七个步骤进行介绍和说明。

第一,声明一个模版:

假设声明 template ContactEntry ,首先需要用guidgen.exe产生一个GUID。产生的GUID如下:

// {4C9D055B-C64D-4bfe-A7D9-981F507E45FF}

DEFINE_GUID(<<name>>,

0x4c9d055b, 0xc64d, 0x4bfe, 0xa7, 0xd9, 0x98, \

0x1f, 0x50, 0x7e, 0x45, 0xff);

之后需要在程序代码中加入:

#include "initguid.h"

// At beginning of source code file - add DEFINE_GUIDs

DEFINE_GUID(ContactEntry, \

0x4c9d055b, 0xc64d, 0x4bfe, 0xa7, 0xd9, 0x98, \

0x1f, 0x50, 0x7e, 0x45, 0xff);

还要在X文件中加入:

template ContactEntry {

<4C9D055B-C64D-4bfe-A7D9-981F507E45FF>}

这里介绍下声明模版用到的数据类型:

关键字       描述

WORD         16-bit value (short)

DWORD        32-bit value (32-bit int or long)

FLOAT        IEEE float value (float)

DOUBLE       64-bit floating-point value (double)

CHAR         8-bit signed value (signed char)

UCHAR        8-bit unsigned value (unsigned char)

BYTE         8-bit unsigned value (unsigned char)

STRING       A NULL-terminated string (char[]))

array        Signifies an array of following data type to follow ([])

使用数据类型的举例:

DWORD Value;  

array STRING Text[20];//定义一个名为Text的数组,类型为STRING,大小为20。

DWORD ArraySize; array STRING Names[ArraySize]; //可以将大小设置为变量。

现在,我们声明一个ContactEntry模版:

template ContactEntry {

<4C9D055B-C64D-4bfe-A7D9-981F507E45FF>

STRING Name; // The contact's name

STRING PhoneNumber; // The contact's phone number

DWORD Age; // The contact's age

}

实例化一个模版对象:

ContactEntry JimsEntry {

"Jim Adams";

"(800) 555-1212";

30;

}

{JimsEntry} 可以用这样的形式引用一个数据对象。例如,在一个animation sequence template中引用一个Frame data object做为其内嵌数据对象。也可以利用引用表示一个数据对象的副本,没有必要重复书写这个数据对象。

第一页上一页123456789下一页尾页
责任编辑: brahma 参与评论 H网电影院 超爽动漫 电影 | 推荐下载:原动画基础教程 | 动画片《大闹天宫》文学剧本 | 超低价图书
复制本文地址给好友 -
相关文章
原创动画与漫画受关注不平衡 中国动漫产业陷误区[05-31]
T&Y系列动画:《相遇》在线欣赏[05-31]
广州原创动画达人 T&Y WORKSHOP《相遇》记[05-31]
最新3D动画片[Egg story]欣赏[05-30]
动画片[Marco和他的球]欣赏[05-30]
迪士尼将拍动画巨片[宝玉][05-30]
最新文章
原创动画与漫画受关注不平衡 中国动漫产业陷误区[05-31]
T&Y系列动画:《相遇》在线欣赏[05-31]
广州原创动画达人 T&Y WORKSHOP《相遇》记[05-31]
[LAprodco和Argyle兄弟摔跤]欣赏[05-30]
丧尸袭击苹果专卖店视觉欣赏[05-30]
最新3D动画片[Egg story]欣赏[05-30]
动画创作家园QQ群①:2444514(满) QQ群②:15363563(满) QQ群③:48533909(满) QQ群④:44832229 (满) QQ群⑤:43100861 (满) QQ群⑥: 48773990 最佳分辨率 1024×768
维爱迪动画创作家园 冀ICP备19004920号-4
如果您感觉动画创作家园不错,别忘了告诉您的朋友哦,朋友会感谢您的^_^