|
|
Max中有一个汽车模型,模型中有一个前车灯Mesh,在Max中,前车灯是位于汽车正前方的。
我在OGRE中使用了关键帧动画,使得车灯做“抬起/放下”的旋转运动,结果车灯可以执行这样的动作,但是车灯的位置不对了:跑到了驾驶座的上方。
关键帧动画部分的代码如下:
// "gt4 ref body lights front"为车灯节点的名称
SceneNode* pLightNode = mSceneMgr->getSceneNode("gt4 ref body lights front");
Animation* anim = mSceneMgr->createAnimation("LightTrack", 3.0);
anim->setInterpolationMode(Animation::IM_LINEAR);
NodeAnimationTrack* track = anim->createNodeTrack(0, pLightNode);
TransformKeyFrame* key = track->createNodeKeyFrame(0);
key = track->createNodeKeyFrame(0.5);
key->setRotation(Ogre: uaternion(Degree( -30 ), Vector3::UNIT_X));
key = track->createNodeKeyFrame(1.0);
key->setRotation(Ogre::Quaternion(Degree( -60 ), Vector3::UNIT_X));
key = track->createNodeKeyFrame(1.5);
key->setRotation(Ogre::Quaternion(Degree( -90 ), Vector3::UNIT_X));
key = track->createNodeKeyFrame(2.0);
key->setRotation(Ogre::Quaternion(Degree( -60 ), Vector3::UNIT_X));
key = track->createNodeKeyFrame(2.5);
key->setRotation(Ogre::Quaternion(Degree( -30 ), Vector3::UNIT_X));
key = track->createNodeKeyFrame(3.0);
key->setRotation(Ogre::Quaternion(Degree( 0 ), Vector3::UNIT_X));
mAnimState = mSceneMgr->createAnimationState("LightTrack");
mAnimState->setEnabled(true);
请问为什么车灯位置不对?该怎样修改?谢谢! |
-
|