代码改变世界

最近犯了写论文懒惰症 (骨骼动画的自动生成)

2010-05-29 16:39  六水  阅读(1314)  评论(2编辑  收藏  举报

[ 2008-06-06 ]

最近在研究的东西,效果图(本来是一串连续实时的动画):

 images/mtn.jpg


最近和朋友一起搞些研究,写些论文。很佩服我朋友说一两天就能把论文写完。我的论文咋写了很久
都还没写完,总觉得怎么表达都不满意的样子,总是不愿意很快把它写完的样子。也许是毫无紧迫感的原因吧?
有时候还在问自己,我为什么要写论文阿,闲着事干么。后来又想,要是不写论文,那怎能系统地,清楚地把自己
的想法与别人交流呢?要是不写,我还能干嘛呢。。。。
可能还有另外一个问题吧,最近写的是骨骼动画自动生成方面的东西,这东西还是比较复杂,有些概
念我也许还不是非常清楚。。。还是给自己加油吧。希望以后我能习惯写论文吧。。


附:关于骨骼动画自动生成的一些介绍

一,介绍,就是介绍

貌似网上对骨骼动画感兴趣的人还挺多的,我也在这凑凑热闹好了。
总的来说,骨骼动画的渲染(譬如d3d里的skin mesh 那个demo)还是比较简单的。美工制作好骨骼动画之后,
输出文件,递交给程序去渲染。
而我感兴趣的东西,是在于骨骼动画的生成,就是说,要代替美工的工作(骨骼biped的搭建,动画,蒙皮生成等)
其好处是显而易见的。当然,现在的游戏里貌似还不会完全地使用这样的方法的,毕竟程序生成的动画,比较缺乏
个性,同时,真实程度也是有限的。不过我还是贼感兴趣去做,呵呵。

二,简单地说说流程与技术吧,真的是简单地,千万别全信

1.目标
需求是这样的,有一个人站在A点,然后给你一个目标点(B),你给我生成这个人从A运动到B的动画来。
运动的期间,则是根据场景信息确定的,不一定是行走,还可能是跑,跨,跳,等等,这些东西,你都给我按照人类
的行为习惯,生成具体的,连续的动画。

2.流程
显然,首先需要通过A*等ai算法,生成行走的路径。
有了路径之后,结合人指定的步伐长度,步态,生成具体的footprint,驱动 人体下肢。
最后,结合人体平衡的计算,生成人体上肢的运动。

3.动画的生成
其实说白了就是运动控制器的设计。就是说,怎么驱动人体的每根骨骼。
考虑到控制器的自由程度,目标约束的准确度,以及运行效率,我们使用IK来计算咯,具体的IK计算则使用CCD算法。
显然直接使用CCD是毫无创意的,实际上也是无法达到我们的目标的。我们需要改进。

附二 :蒙皮的生成

这个本来不属于运动的生成,但也顺便介绍一下吧。
不明白蒙皮概念的人,请去用3dsmax软件做做,理解理解。
蒙皮的分两部分,一是权重的计算,也就是我们现在讨论的“蒙皮的生成”,这是离线过程。
第二就是皮肤位置的计算,这是实时过程。
我当时做的时候,其实就是使用了常用的sub-space算法来计算权重。实时渲染得时候,使用的点绑定算法
计算皮肤(就是顶点集合)的最终位置(这也就是我们现在常用的方法)。这个算法很简单,效率也很高,但效果
不好,运动剧烈的时候会发生皮肤塌陷的结果。
我们也需要改进它。或者干脆使用效果好的方法,如骨粒串绑定算法骨骼绑定算法
蒙皮的效果图我就不贴出来了,因为是在用保密的模型。等我以后自己做了其他模型,再贴吧。

详细的东西我就不在这吹了,吹多了没益。。。。欢迎砖头。

最新更新

http://www.cnblogs.com/sixwater/archive/2010/06/15/1758840.html