Animation Blending and transitioning
来源:互联网 发布:阿里云输入法apk 编辑:程序博客网 时间:2024/06/03 18:36
在魔兽世界中,在人物奔跑的同时,使用挥手等表情命令,人物会在奔跑的同时作出其他动作,这是骨骼动作混合.
猎人中奔跑时开始拉弓时,身体会过渡到拉弓的动作,而不是瞬间变换为拉弓姿势,这是骨骼动作transitioning.
骨骼动作混合是作动作过渡的技术基础,目前看到有两种方案,一种简单,一种复杂.
简单的方案应该是起源于Quake,魔兽世界亦采用该方案,即,在骨架数据中预先标识某ID骨骼为上半身的根骨骼,依此标识下半身的根骨骼,手臂的根骨骼,腿的根骨骼.
使用骨骼动画架构可以很容易地,让奔跑的动作帧数据只作用于下本身的骨骼层次,即只作用于整个骨骼层次的子骨骼体系.让挥手或开枪的动作只作用上本身骨骼,最终的结果形成了动作混合.
复杂的方案是Weighted animation blending,为每个动作的每根骨骼标识它的权重,即标识每根骨骼在每个动作中的重要性,可以用1.0标识腿部骨骼在奔跑动作中的权重,用0.0标识上半身在奔跑动作中的权重.
与另一动作混合时,两个动作骨骼分别计算自身当前的骨骼帧运动数据,然后依据动作权重进行插值混合两者的运动数据,Jupiter,Nebula使用了该方案.其复杂不在程序上,而在美工制作上,程序代码上更优雅简单.
奔跑时拉弓就要让下半身保持奔跑动作,上本身从奔跑时的姿势过渡到拉弓姿势.Animation transitioning是要解决两个骨架姿势之间的过渡问题,从一个姿势过渡到另一个姿势,即从一个骨架数据渐转到另一个骨架数据,即在过渡间的人物骨架姿势由两个动作的骨架数据混合而成,一个数据渐增0->1,一个数据渐减1->0,这里的权重作用于整个骨架,称Weighted animation blending.这样的过渡是数据计算出来的,而不是美工设计出来的,有时会有变形出现.
这些方案都基于骨架层次体系,适合组合任意个骨骼动作.帧数据插值混合时,若姿势间相差过大,旋转超过180度,slerp计算会出现混乱.
- Animation Blending and transitioning
- FBO and blending issue
- Blending and Bagging
- Blending
- Unity3D教程:动画合成教程(Animation Blending)
- FBO - Render to Texture and Blending
- Alpha-blending and the Z-buffer.
- 机器学习笔记-Blending and Bagging
- 机器学习技法-Blending and Bagging
- Unity Shaders and Effects Cookbook 中的Packing and blending textures
- MMX and SSE asm routines for per-pixel alpha-blending
- 《机器学习技法》第七讲:Blending and Bagging
- 机器学习技法课程学习笔记7 -- Blending and Bagging
- Fragment and Animation
- Animation and Animate.
- Android:Animator and Animation
- Animation and Graphics-- overview
- Animation and Graphics Overview
- 运用 applet,object 以及 embed 标签
- 深入PHP编译缓存
- MOSS中对列表的一些操作
- [VC++] 一些常用数据类型的使用
- UDP-Connections within the emul
- Animation Blending and transitioning
- 以struct和union为线索来观察信号量
- sql server 2005中如何使用指针循环读取数据
- ASP.NET页面的CheckBoxList组件
- VC操作INI文件
- 谈一下SOCKET
- 在WEB应用程序中如何正确使用数字证书?
- 各种移动通信协议标准(链接)
- VC++几个操作文件的API函数