游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9656|回复: 31

求教!骨骼动画的大运算量吃掉了很大一部分帧数,但为

[复制链接]

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2006-10-8 21:20:00 | 显示全部楼层 |阅读模式

现在,骨骼动画已经完全取代了关键帧动画,现在的3D游戏都是骨骼动画,比如天堂2,WoW等等,但是我有一个东西没有闹明白,骨骼动画在每一帧生成新的顶点和法线数据时,运算量可以说是巨大,如果场景中有15个左右的人物还可以,如果要想做那种由很多人物组成的大规模场景,往往在视锥剔除之后,剩下的可见人物还是有三四十个左右,结果帧数可以说是惨不忍睹,只有4帧左右;

可是如果是关键帧动画的模型,几十人也能保持不错的帧数。



所以,我有一点搞不明白,到底骨骼动画有什么压倒性的优势?能够使他取代了关键帧动画?
我只知道骨骼动画除了文件小,节省空间,其他没有显著的优势,但是缺点确实很明显的,他的大计算量严重的限制了模型的顶点数量和游戏场景中动态模型的数量。难道是为了减轻美工的负担?


真心请教大家,为什么在3D游戏这个“一切为了帧数”口号的领域,还会让骨骼动画这个“吃帧数”的技术成为主流?

27

主题

179

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2006-10-9 00:05:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

摘自<Focus On 3D Models>

The first, and most visible to the game’s players is increased realism.
Skeletally animated characters tend to move much more realistically,
and often appear to interact better with their surroundings than
traditional models. The reason models tend to move more realistically
Vertex animation requires you to move every vertex, whereas
skeletal animation enables you to move only the bones within the model; the
vertices will follow.

if they are skeletally animated is simple. In traditional keyframe animation,
the game will linearly interpolate between two poses. However, in
this case, the joints do not actually rotate, which can be a problem
because living organisms move in rotational ways.
Not quite as noticeable to the users, but very important to the programmers,
is that such animations take up less storage space. Instead
of storing a new set of vertices for each frame, all that needs to be
stored is the rotation and translation of the bone. That can amount to
a huge savings, even after you add the initial increased storage of the
bones and vertex-bone attachment information.
This extra bit of storage space can be used to store a more detailed
model, add extra animation frames, or even just be left for other parts
of the game that you want to improve. You could add more detail to
the game world, improve the A.I. to provide for a more exciting game,
or even add some cool extras or Easter eggs that you wouldn’t have
added otherwise, due to space concerns.
Yet another advantage lies with the artists who create the 3D content for
your games. A good skeletal animation system will cut the time the artists
need to animate their models. Almost every good animation program uses
skeletal animation already to ensure a smoother transition of the models
from the artists tothe programmer, to the game, and ultimately to the
player. This speeds up the creation of content for the game, and ensures
that no animations or features are lost when the models are exported into
whatever format your game is using.
A fourth advantage is another one for the programmer (it just gets
better and better, doesn’t it?). Because of the nature of the bones, it is
possible to reposition them in real-time if you want, allowing needed
animations to be created during runtime. This provides a much more
diverse library of possible animations. You can even let the game control
the way a body acts when it collides with an object, or slides down a
slope. This kind of technology is just recently coming into play, a notable
example being Unreal Tournament 2003’s Physics system (http://
www.epicgames.com). Characters and models react realistically with the
environment, including sliding down slopes and draping over edges.
The one disadvantage is that skeletal animation can be harder to
understand and implement than traditional keyframed animation.

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-10-9 09:40:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

............
不知道你是帅哥还是美女,

游戏是有帧数的,一般60帧来说,你在游戏LOAD时用骨骼动画数据生成60帧的帧动画数据不就好了。

像有很多游戏都有个几何精度,比如MU。当你将精度调到最低时,人物的挥剑动作产生的光线轨迹是个3角形,而当你调到最大时,轨迹就会是一个圆。

而且在网络游戏中,你可以将离你近的用高的精度,远的用低的精度。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-9 09:48:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

大家都很幽默。
我就不说什么了。

34

主题

629

帖子

629

积分

高级会员

Rank: 4

积分
629
发表于 2006-10-9 09:54:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

计算量不算大,节省的空间却相当多
而且并没有取代关键桢动画,有些地方比如morph还是在用关键桢,只不过它记录的是偏移,这样会起到压缩数据的作用

0

主题

114

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2006-10-9 10:06:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

读罢此帖,我对大虾们是佩服得五体投地阿,赞一个。
不过我没能明白一点,Load的时候计算60F/S的动画,那为什么要再Load的时候处理,而不是在Export的阶段就处理好呢。。还有如果角色需要换装,是否应该把所有的服装套所有动作都计算好呢?我不会算,显存开销大致多少呢?还有貌似挥剑的刀光没有人用Model来做的吧。。那样未免动作也太多了,资源管理也过于繁杂了点。我不过是提出点个人的疑惑哈,别拍我,我胆小。。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-9 10:08:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

同楼上。我胆更小。所以我连话都不敢说了。

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2006-10-9 10:22:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

不知道你是帅哥还是美女,

游戏是有帧数的,一般60帧来说,你在游戏LOAD时用骨骼动画数据生成60帧的帧动画数据不就好了。

-------------------------------------------

啊!!!!!你的意思是把骨骼动画文件在Loading的时候转化成关键帧动画的数据????

这样做确实是不用在游戏中每帧都重新计算顶点和法线数据了,但是,骨骼动画的意义不就失去了吗?那干脆使用关键帧动画不是更好?何必这样再费一回事。

狂晕!!!!!!!!!

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-9 10:29:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

。。。。。。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2006-10-9 10:35:00 | 显示全部楼层

Re:求教!骨骼动画的大运算量吃掉了很大一部分帧数,但

楼上的很空啊。

关键帧动画是什么?是不是顶点动画?

顶点动画比之故骨骼动画的主要问题是:
1:内存容量开销大
2:不够灵活,没办法实现动态的角色姿势。

而且由于可编程管线的流行,骨骼动画的开销可以忽略不计。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 14:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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