游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4675|回复: 3

一些对骨骼动画的研究

[复制链接]

2

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2006-5-6 12:28:00 | 显示全部楼层 |阅读模式
用了6天时间研究骨骼动画,有了点心得。
光线引擎好象还不支持 动作合成 和 独立的骨骼 控制吧。希望我的这些心得能帮你完善你的引擎。

动作合成

所谓动作合成就是把两个不同的数据施加到一个模型上,使其产生不同的动作组合。
还要明白为什么要动作合成?
比如上半身有20个动作,下半身有30个动作,那么如果想要把全部的动作都表现出来那就要做20X30=600个动作文件。数据量很大。所以我们需要动作合成。
把两个不同的动作合成到一个骨骼系统中去。

下面谈谈实现方法。
如果要合成两个动作,必须先定义动作矩阵所对应的骨骼段。比如扔手雷的动作所控制的是20-40号骨骼,那么就把这段骨骼应用扔手雷的动作矩阵。跑步的动作是第1号到19号,那没就把这段骨骼应用跑步的动作矩阵。还要注意,骨骼应用动作矩阵的顺序。必须从骨骼根节点开始向子节点应用。



骨骼的单独控制  

在游戏里有许多简单动作可以通过即时演算来解决,比如车轮的旋转角度,以及偏转的。如果为每个这样的动作做独立的动画文件,明显是浪费资源。下面我说说自己的大体的实现方法。
为每一个模型分配一个与其骨骼相对应的矩阵(暂时叫 附加矩阵)
然后在计算骨骼矩阵的时候 把这个附加矩阵也计算进去。
想要控制哪个骨头,就只要变换其对应的附加矩阵就可以了。
效果还不错。这里关键就是那个附加矩阵。

下面是我的实现的效果图一张







sf_200656122748.jpg

27

主题

409

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
QQ
发表于 2006-5-9 19:33:00 | 显示全部楼层

Re:一些对骨骼动画的研究

非常感谢你的心得!

20

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2006-5-14 23:38:00 | 显示全部楼层

Re:一些对骨骼动画的研究

合成还可以,但那个单独控制有点不太明白,希望成补充一下

2

主题

95

帖子

99

积分

注册会员

Rank: 2

积分
99
发表于 2006-6-4 22:14:00 | 显示全部楼层

Re:一些对骨骼动画的研究

虽然不知道你说了什么,但我还是觉得你好厉害
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-2 05:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表