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

3D游戏角色动画

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

第二,修改和更新骨骼层级:

加载完骨骼层级之后,你可以操作它,更改骨骼的方位。你需要创建一个递归函数,按照名字找到相应的Frame数据对象。这个函数如下:

D3DXFRAME_EX *FindFrame(D3DXFRAME_EX *Frame, char *Name)

{

if(Frame && Frame−>Name && Name) {

// 如果名字找到,返回一个Frame指针

if(!strcmp(Frame−>Name, Name)) // strcmp函数比较两个字符串,如果两个字符串相等,返回0

return Frame;

}

// 在sibling frames找匹配的名字

if(Frame && Frame−>pFrameSibling) {

D3DXFRAME_EX *FramePtr = \

FindFrame((D3DXFRAME_EX*)Frame−>pFrameSibling, \

Name);

if(FramePtr)

return FramePtr;

}

// 在child frames找匹配的名字

if(Frame && Frame−>pFrameFirstChild) {

D3DXFRAME_EX *FramePtr = \

FindFrame((D3DXFRAME_EX*)Frame−>pFrameFirstChild, \

Name);

if(FramePtr)

return FramePtr;

}

// 如果没有找到,返回 NULL

return NULL;

}

如果你想找到一个叫“Leg”的Frame,可以把“Leg”传入FindFrame函数,并且提供指向RootFrame的指针:

// pRootframe 为D3DXFRAME_EX root frame 指针

D3DXFRAME_EX *Frame = FindFrame(pRootFrame, "Leg");

if(Frame) {

// 可以在这里做一些处理,比如旋转操作

// 你在这里可以稍微的旋转这个骨头

D3DXMatrixRotationY(&Frame−>TransformationMatrix, 1.57f);

}

一旦你修改变换骨头,你需要更新整个骨骼层级,也就是把变换的组合矩阵存入D3DXFRAME_EX结构的matCombined成员中,用于后面的渲染。下面的函数应该增加到D3DXFRAME_EX结构中,如下:

void UpdateHierarchy(D3DXMATRIX *matTransformation = NULL)

 {

    D3DXFRAME_EX *pFramePtr;

    D3DXMATRIX matIdentity;

    // 如果为空,用一个全同矩阵

    if(!matTransformation) {

      D3DXMatrixIdentity(&matIdentity);

      matTransformation = &matIdentity;

    }

    // 把变换矩阵组合到matCombined中

    matCombined = TransformationMatrix * (*matTransformation);

    // 更新兄弟层级

    if((pFramePtr = (D3DXFRAME_EX*)pFrameSibling))

      pFramePtr->UpdateHierarchy(matTransformation);

    // 更新孩子层级

    if((pFramePtr = (D3DXFRAME_EX*)pFrameFirstChild))

      pFramePtr->UpdateHierarchy(&matCombined);

 }

    现在matCombined储存着每个骨骼相对于原点的变换矩阵,然后只要把各个顶点附在相应的骨骼上,就能渲染了。

第一页上一页234567891011下一页尾页
责任编辑: 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
如果您感觉动画创作家园不错,别忘了告诉您的朋友哦,朋友会感谢您的^_^