松原骨骼动画的驱动制作介绍及案例父子骨骼变

松原骨骼动画的驱动制作介绍及案例父子骨骼变换火系
第3章 角色始27 图3.3 人体骨骼组织结构图矩阵,借以更新全局变换矩阵。最终,通过该结构中的数据来更新皮 肤顶点信息,实现动画效果。 针对骨骼动画所涉及的每块骨骼,需要保存其关键帧数据,每个关键帧数据的内容包括:该帧的 编号,该帧中骨骼相对于父骨骼的平移信息以及旋转信息。由于此类信息上文中已经做出总结,这里 就不再多加讨论。
动画数据多种多样,比如在一个典型的高尔夫游戏中,其中一个角色,可能需要他的各种动画, 比如走动、击球、推杆、捡球、庆祝动作等。对于个人角色扮演类的游戏应用,需要的动作更多,如 果每个动画对应于一个文件,那么就需要很多个文件来保存动画数据。对于这些数据,选择适当的时 机对其进行载人是一个重要的问题。因为一款游戏可能有许多不同的角色,如果是在应用程序启动的 时候一次装载所有的数据,那么会造成比较慢的启动速度,更致命的是,它们将会占用大量的内存, 导致内存开销过大,而有些角色可能从前到后都没有使用过,造成内存资源的浪费。因此,在合适的 时间内对数据进行载人显得极为关键。
比如在游戏应用中,一般会有人物选择界面,可以根据用户的 选择动态地载入角色的全部动画或者部分动画。3.2.6 骨骼动画的驱动 在应用程序播放某一具体的动画过程中,骨骼动画引擎需要动态地根据指定的动画播放速度正常 驱动动画效果的产生。骨骼动画的驱动过程就是骨骼动画实时计算的过程。在交互式应用中,一般是 在用户输入某些控制命令后,角色模型开始完成相应动画。这就要求应用程序在接受命令后,需要动 态实时地完成这些工作。 当动画确定之后,一个具体的动画,在某一具体的时刻,其驱动步骤分述如下。 8 丧flash动画创作与后期视频处理技术*
1)对骨骼局部变换信息进行更新 确定动画在该时刻的两个插值关键帧,即找到该时刻之前之后的两个关键帧。然后按照时间对这 两个关键帧进行插值(应用中使用最多的是对其进行线性插值),从而确定每一块骨骼该时刻在父骨 骼坐标系下的变换信息(平移和旋转信息)。
2)对骨骼全局变换信息进行更新 对骨架层次结构进行遍历,从根骨骼开始,计算每一块骨骼相对于身体坐标的全局变换信息(一 般是用矩阵形式来表示),这一步骤是基于上一步骤完成的,由于第一步巾已经得出丁每一块骨骼的 相对变换信息,本步骤中只需从根进行递归遍历即可。
3)对网格顶点进行更新 对于皮肤网格中的所有顶点,计算其在身体坐标系下的位置和法线信息。根据每个顶点所关联的 骨骼以及对应的权值,就可以利用每块骨骼的全局变换信息对顶点进行变换。 每根骨骼存在两个相关的变换矩阵:局部变换矩阵和全局变换矩阵。局部变换矩阵记录了该骨骼 在父骨骼坐标系空间中的位置和朝向。全局变换矩阵用来决定该骨骼在整个角色空间中的位置和朝向 。在骨骼动画文件中存储的是骨骼的局部变换矩阵序列,骨骼的全局变换矩阵则需要通过额外的计算 来获得。由于骨骼的运动实现是通过层次结构互相影响的,所以全局变换矩阵不能一步获得。
下面举例说明全局变换矩阵的生成,如图3.4所示。首先看旋转变换,在图中有两块骨骼,左边的 父骨骼和右边的子骨骼,目标是获得两个骨骼的全局变换矩阵来更新皮肤顶点。于骨骼的局部变换矩 阵保存的是它相对于父骨骼旋转信息,但其父骨骼也有自己的变换信息,也做了旋转。因此,子骨骼 对于整个角色的全局变换矩阵,需要将其局部变换矩阵与父骨骼的变换矩阵相乘。如果矩阵中加入了 平移变换,可以执行同样的过程。 从例子中可以了解到父骨骼的局部变换矩阵不仅会影响到自身,而且还会影响到它的于骨骼。而 在根骨骼节点,它的全局变换矩阵就等于其自身的局部变换矩阵。这样旋转、平移变┏━━━━━━ ━━━━━━━━━━━━━━━━━━━━━┓┃ 九 ┃┣━━━━━━━━━━━━━━━━━━━━━━━━━━━┫┃厂,’V………一厂 T\r………— ┃┣━━━━━━━━━━━━━━━━━━━━━━━━ ━━━┫┃\,。1 - - - - - - - - - - - -\i.4_- - - - - -- -. ┃┣━━━━━━━━━━ ━━━━━━━━━━━━━━━━━┫┃ 儿 ┃┣━━━━━━━━━━━━━━━━━━━━━━━━━━━┫┃《八+ ┃┣━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃\:i ┃┗━━━━━━━━━━━━━━ ━━━━━━━━━━━━━┛图3.,1 父子骨骼变换火系 转载请注明:松原flash动画制作公司:http://www.flash520.com/city98/







案例 北京 上海 广州 深圳 天津 杭州 南京 济南 重庆 青岛 大连 宁波 厦门 成都 武汉 沈阳 西安 长春 长沙 福州 郑州 苏州 佛山 东莞 无锡 烟台 太原 合肥 南昌 南宁 昆明 温州 淄博 唐山 贵阳 海口 兰州 银川 西宁 泉州 包头 南通 大庆 徐州 潍坊 常州 绍兴 济宁 盐城 邯郸 临沂 洛阳 东营 扬州 台州 嘉兴 沧州 榆林 泰州 镇江 昆山 江阴 义乌 金华 保定 鞍山 泰安 宜昌 襄阳 中山 惠州 南阳 威海 德州 岳阳 聊城 常德 漳州 滨州 茂名 淮安 江门 芜湖 湛江 廊坊 菏泽 柳州 宝鸡 珠海 绵阳 株洲 枣庄 许昌 通辽 湖州 新乡 咸阳 松原 安阳 周口 焦作 赤峰 邢台 郴州 宿迁 赣州 桂林 肇庆 曲靖 九江 商丘 汕头 信阳 营口 揭阳 龙岩 安庆 日照 遵义 三明 长治 湘潭 德阳 南充 乐山 达州 盘锦 延安 上饶 锦州 宜春 宜宾 吕梁 抚顺 临汾 渭南 开封 莆田 荆州 黄冈 四平 承德 本溪 玉林 孝感 荆门 宁德 运城 绥化 永州 怀化 黄石 泸州 清远 邵阳 衡水 益阳 丹东 铁岭 晋城 朔州 吉安 娄底 玉溪 辽阳 南平 濮阳 晋中 资阳 衢州 内江 滁州 阜阳 十堰 大同 朝阳 六安 宿州 通化 蚌埠 韶关 丽水 自贡 阳江 毕节 拉萨 昌吉 哈密 伊宁 喀什 晋江 增城 诸暨 丹阳 玉环 常熟 崇明 余姚 奉化 海宁 浏阳 大理 丽江 普洱 保山 邵通 西昌 雅安 广安 广元 巴中 遂宁 天水 酒泉 武威 张掖 北海 百色 桐城 哈尔滨 石家庄 乌鲁木齐 呼和浩特 鄂尔多斯 张家港 连云港 平顶山 驻马店 呼伦贝尔 张家口 马鞍山 齐齐哈尔 三门峡 秦皇岛 牡丹江 都江堰 攀枝花 克拉玛依 库尔勒 阿克苏 石河子 嘉峪关 石嘴山
备案号:皖ICP备17011723号-1    松原flash动画制作公司
返回首页   |   电话咨询   |   微信咨询