游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2307|回复: 6

求救.X文件专家,急!!!

[复制链接]

14

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2007-9-15 23:32:00 | 显示全部楼层 |阅读模式
在X文件中对于下面的四元数对象
  AnimationKey {
   0;
   21;
   0;4;-0.500000,-0.500000,0.500000,-0.500000;;,
   5;4;-0.540921,-0.540921,0.455417,-0.455417;;,
   10;4;-0.582325,-0.582326,0.401120,-0.401120;;,
   15;4;-0.620443,-0.620443,0.339190,-0.339190;;,
   20;4;-0.652428,-0.652428,0.272649,-0.272649;;,
   25;4;-0.676659,-0.676659,0.205262,-0.205262;;,
   30;4;-0.692862,-0.692862,0.141216,-0.141216;;,
   35;4;-0.702008,-0.702008,0.084766,-0.084766;;,
   40;4;-0.705977,-0.705977,0.039965,-0.039965;;,
   45;4;-0.707028,-0.707028,0.010551,-0.010551;;,
   50;4;-0.707107,-0.707107,0.000000,-0.000000;;,
   55;4;-0.707028,-0.707028,0.010551,-0.010551;;,
   60;4;-0.705977,-0.705977,0.039965,-0.039965;;,
   65;4;-0.702008,-0.702008,0.084766,-0.084766;;,
   70;4;-0.692862,-0.692862,0.141216,-0.141216;;,
   75;4;-0.676659,-0.676659,0.205262,-0.205262;;,
   80;4;-0.652428,-0.652428,0.272649,-0.272649;;,
   85;4;-0.620443,-0.620443,0.339190,-0.339190;;,
   90;4;-0.582326,-0.582325,0.401120,-0.401120;;,
   95;4;-0.540921,-0.540921,0.455417,-0.455417;;,
   100;4;0.500000,0.500000,-0.500000,0.500000;;;
  }

到底从左到右哪个是W,哪3个是旋转轴的X,Y,Z坐标,谢谢!
从X文件中读出的四元数还需要归一化旋转轴么?

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2007-9-16 13:38:00 | 显示全部楼层

Re:求救.X文件专家,急!!!

X File Reference (Legacy)

AnimationKey

--------------------------------------------------------------------------------

Defines a set of animation keys. A matrix key is useful for sets of animation data that need to be represented as transformation matrices.

        template AnimationKey
        {
            < 10DD46A8-775B-11CF-8F52-0040333594A3 >
            DWORD keyType;
            DWORD nKeys;
            array TimedFloatKeys keys[nKeys];
        }

Where:

keyType - Specifies whether the keys are rotation, scale, position, or matrix keys (using the integers 0, 1, 2, or 3, respectively).
nKeys - Number of keys.
keys - An array of keys. See TimedFloatKeys.



大致可以看出来你的问题不是问题。

14

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
 楼主| 发表于 2007-9-16 15:01:00 | 显示全部楼层

Re: 求救.X文件专家,急!!!

楼上的这为仁兄还是没有解决我的问题,SDK中的这段话仅仅是说明了0代表了旋转1代表缩放2代表平移4代表矩阵变换,对于FloatKeys的部分还是没有进行介绍。现在我很想知道从那4个旋转四元数中转换到左手坐标系的确切顺序。目前我只知道第一个数是W值,但后面的3个数的X,Y,Z的排列方式却被打乱掉了。如果你曾经试图用X文件的数据来制作动画,就会知道这的确是一个严重问题

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2007-9-16 18:16:00 | 显示全部楼层

Re:求救.X文件专家,急!!!

抱歉,我看错了。

X文件是W X Y Z

14

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
 楼主| 发表于 2007-9-16 23:51:00 | 显示全部楼层

Re: 求救.X文件专家,急!!!

恩,问题总算解决了,非常感谢楼上的朋友提供的重要线索,不过您的回答也不完全正确,正确的顺序应该是W,-X,-Y,-Z,应当注意旋转坐标轴的值是被反转了的,不知道为何X文件的设计者要这样安排(难道是MS的小小恶作剧?)。

14

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
 楼主| 发表于 2007-9-16 23:59:00 | 显示全部楼层

Re: 求救.X文件专家,急!!!

最后还需要再补充下,-W,X,Y,Z和W,-X,-Y,-Z都能得到相同的结果,原因是反转旋转轴和反转旋转角度是等效的,但是这两者之一必须有一者被反转,原因到目前为止还不明!

3

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2007-9-17 20:46:00 | 显示全部楼层

Re:求救.X文件专家,急!!!

是四元数?我怎么觉着是矩阵啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-21 21:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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