游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3343|回复: 1

OGRE骨骼动画例子问题

[复制链接]

36

主题

109

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2008-7-23 15:25:00 | 显示全部楼层 |阅读模式
它在listener的framestarted中有这样一段代码

Quaternion rot(mAnimationRotation, Vector3::UNIT_Y);
Vector3 startoffset = mSceneNode->getOrientation() * -mSneakStartOffset;
Vector3 endoffset = mSneakEndOffset;
Vector3 offset = rot * startoffset;
Vector3 currEnd = mSceneNode->getOrientation() * endoffset + mSceneNode->getPosition();
mSceneNode->setPosition(currEnd + offset);
mSceneNode->rotate(rot);

大致意思我明白,因为动画是位移动画,所以移动后我们要重新改变节点的位置,因为动画第一帧开始又跳回了最初位置,所以得想办法把节点移动到合适的位置,这个位置正好让开始帧所处位置和动画最后一帧位置处相同,并且这个代码同时还旋转了角色的方向。
这里的数学运算实在看不懂,尤其是mSceneNode->setPosition(currEnd + offset);这句的+offset如何理解,还有这句,mSceneNode->rotate(rot);这句和刚才的那句应该是有关联的,他们是如何互相作用的。
这个东西把握折磨很久了,痛苦中。 [em4]

36

主题

109

帖子

111

积分

注册会员

Rank: 2

积分
111
 楼主| 发表于 2008-7-23 15:27:00 | 显示全部楼层

Re:OGRE骨骼动画例子问题

如果这个角色的中心点就在原点应该就没这么麻烦啦,关键是角色以开始就有一个偏移量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 22:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表