軌跡動畫(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 )
posted on 2007-03-02 17:36
清源游民 閱讀(2791)
評論(0) 編輯 收藏 引用 所屬分類:
OGRE