Ogre中动态绑定骨骼动画

来源:互联网 发布:java注解有什么用 编辑:程序博客网 时间:2024/05/17 06:26

Ogre中动态绑定骨骼动画

Ogre中的骨骼动画通常是一个代表角色skin的多边形网格.mesh和一个代表bones运动轨迹的.skeleton(一个角色的所有动作如walk、wave、swim、和dance等都包含在这个.skeleton中)。通常Ogre在加载.mesh的时候,会自动把和.mesh关联的.skeleton进行绑定。

但是,很多时候,一个mesh只对应一个skeleton是不方便的,因为不同的角色常会使用同样的骨骼动画,如果让一个mesh对应多个skeleton和让多个mesh可以对应同一个skeleton那么就比较方便了。

可以这样组织文件:

mesh方面:角色1.mesh 角色2.mesh

Skeleton方面,把每个动作分开放到各自的.skeleton文件中:walk.skeleton/wave.skeleton/swim.skeleton/dance.skeleton

在代码中进行动态绑定skeleton的代码:

AvatarEntity = SceneManager->createEntity("Avatar_entity", “角色1.mesh”);

if (AvatarEntity->hasSkeleton())

{

Ogre::SkeletonInstance *skeleton = AvatarEntity->getSkeleton();

skeleton –>addLinkedSkeletonAnimationSource(“walk.skeleton”);

skeleton->refreshAvailableAnimationState();

}

原创粉丝点击