Blend Shape Pose Animation
Ogre中实现Blend Shape / Pose Animation
Blend shape通常用于人脸动画,Ogre例子Facial Animation就是这样实现的,不过换了种说法,叫做Pose Animation。而这个例子中混杂了Pose Animation和一般的Animation,不容易看清具体是怎样实现的Blend shape。因此,我打算简化它的实现步骤,只保留最有用的代码。当然前提是读一读Maya的形状融合变形器Blend Shape,了解了怎样在Maya中实现Blend Shape,然后通过Ogre-Maya Exporter导出Blend shape,也就是Ogre中所谓的Pose。
代码如下:
- #ifndef __BlendShape_H__
- #define __BlendShape_H__
- #include "BaseApplication.h"
- class BlendShape : public BaseApplication
- {
- public:
- BlendShape(void);
- virtual ~BlendShape(void);
- protected:
- virtual void createScene(void);
- virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);
- // OgreBites
- void setupControls();
- void sliderMoved(OgreBites::Slider * slider);
- private:
- Ogre::MeshPtr mHeadMesh;
- Ogre::AnimationState* mManualAnimState;
- Ogre::VertexPoseKeyFrame* mManualKeyFrame;
- OgreBites::WidgetList mBlendShapes;
- };
- #endif // __BlendShape_H__