YARE开发记录(2)

/*
------------------------------------------------------------------------------------------------------------

 Copyright (c) 2006 YanLiang

 CSkeleton对象代表骨骼动画的数据和操作.包括:

 骨骼数据信息.

 动画(作)信息.

 -------------------------------
 
 骨骼数据信息     是构成该骨骼动画所需骨(bone)的集合.如:行走动画(作)中的人体骨的集合.
 
 骨(bone)之间或者独立,或者存在依赖关系. 存在依赖关系的bone, 处于parent地位的bone的运动会影响到它的child bone,
 
 所有直接或间接相连的bone构成了一个骨骼树, 独立的bone则不会,它变换时,不会受其它bone影响, 也不会影响其它bone.

 
 bone是CNode类的实例, CNode具有添加和储存child CNode的方法. 所有的bone储存在m_BonesMap中, 以bone name作索引.
 
 存储完成后, 遍历所有bone完成非独立bone的连接ParentAddChild(CNode* parent, CNode* child), 构成bone树.

 所有独立的bone(可将其视为深度为1的树的根部的bone)和位于bone树根部的bone都被视为主骨(root bone), 存储在m_RootBonesList中.
 
 
 以后的遍历,可视为bone森林的遍历. 所有的根bone都可以在m_RootBonesList中找到. 可以实现多主骨骨胳动画.

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

 动画(作)信息 是与骨骼有关的Animation的集合.

 Animation存储在m_AnimationMap中, 以Animation name为索引.

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


 特别需要注意的: 在骨骼动画(作)中bone的运动是由 Animation的成员AnimationTrack的方法驱动的,
 
 AnimationTrack计算出某一时刻的变换,并将变换直接赋值给相关联的bone. 该bone应是CSkeleton对象中的某一bone.

 须将其连接. 否则动画(作)不会影响骨骼. CSkeleton对象将不会有实际意义.

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


 CSkeleton对象需要有名称,以便于数据保存,加载及查询检索时使用,大多数情况下CSkeleton名称是键值.

 

-------------------------------------------------------------------------------------------------------------
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值