ogre Animation Track

轨迹动画(Animation Track),是 OGRE 所支持的几种动画模式(包括骨骼动画)中的一种。通过让节点(node)沿着一条预设了关键帧(Key Frame)的轨迹移动来实现节点的动画。

OGRE 中创建和实施轨迹动画的步骤大致如下:

1. 在主程序类的 Application :: createScene ( ) 场景创建方法中进行以下工作:

Animation * Ogre::SceneManager::createAnimation (
const String & name, // 动画名称
Real length // 动画长度(秒)
) [virtual]

(2) 使用 createTrack 方法为动画创建轨迹动画:
AnimationTrack * Ogre::Animation::createTrack (
unsigned short handle, // 分配给轨迹动画的索引句柄,用于以后可能的调用
Node * node // 指定要沿着这条轨迹运动的节点
)

(3) 使用 createKeyFrame 方法为轨迹动画创建一系列关键帧:
KeyFrame * Ogre::AnimationTrack::createKeyFrame (
Real timePos // 时间位置

 
(4) 使用 setTranslate 、 setScale 、 setRotation 三个方法来设置关键帧每个时间位置上节点的位置、缩放、旋转属性:
void Ogre::KeyFrame::setTranslate ( const Vector3 & trans ) 
void Ogre::KeyFrame::setScale ( const Vector3 & scale ) 
void Ogre::KeyFrame::setRotation ( const Quaternion & rot ) 
 
(5) 使用 createAnimationState 方法创建一个动画状态来追踪这个轨迹:
AnimationState * Ogre::SceneManager::createAnimationState ( const String & animName ) [virtual] 
 
(6) 使用 setEnabled 方法来激活动画状态:
void Ogre::AnimationState::setEnabled ( bool enabled )

2. 在接收器类的 Listener::frameStarted(const FrameEvent& evt) 方法中刷新动画状态:
void Ogre::AnimationState::addTime ( Real offset )

转载于:https://www.cnblogs.com/minggoddess/archive/2010/12/15/1907183.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值