OGRE 中創(chuàng)建和實施軌跡動畫的步驟大致如下:
1. 在主程序類的 Application :: createScene ( ) 場景創(chuàng)建方法中進行以下工作:
Animation * Ogre::SceneManager::createAnimation (
const String & name, // 動畫名稱
Real length // 動畫長度(秒)
) [virtual]
(2) 使用 createTrack 方法為動畫創(chuàng)建軌跡動畫:
AnimationTrack * Ogre::Animation::createTrack (
unsigned short handle, // 分配給軌跡動畫的索引句柄,用于以后可能的調用
Node * node // 指定要沿著這條軌跡運動的節(jié)點
)
(3) 使用 createKeyFrame 方法為軌跡動畫創(chuàng)建一系列關鍵幀:
KeyFrame * Ogre::AnimationTrack::createKeyFrame (
Real timePos // 時間位置
)
(4) 使用 setTranslate 、 setScale 、 setRotation 三個方法來設置關鍵幀每個時間位置上節(jié)點的位置、縮放、旋轉屬性:
void Ogre::KeyFrame::setTranslate ( const Vector3 & trans )
void Ogre::KeyFrame::setScale ( const Vector3 & scale )
void Ogre::KeyFrame::setRotation ( const Quaternion & rot )
(5) 使用 createAnimationState 方法創(chuàng)建一個動畫狀態(tài)來追蹤這個軌跡:
AnimationState * Ogre::SceneManager::createAnimationState ( const String & animName ) [virtual]
(6) 使用 setEnabled 方法來激活動畫狀態(tài):
void Ogre::AnimationState::setEnabled ( bool enabled )
2. 在接收器類的 Listener::frameStarted(const FrameEvent& evt) 方法中刷新動畫狀態(tài):
void Ogre::AnimationState::addTime ( Real offset )