|
本帖最后由 江上星 于 2013-5-29 22:08 编辑
事实上这不是一个新话题了,前一阵子学习这方面知识,翻看了星星大人、四夕水大人和小彬大人等前辈的一些教程,收益颇多,尤其是小彬大人的手把手教程,写的很详细。在拜服之后,有一个疑问一直存在,就是:他们的演示都是使用的准确旋转,但是准确旋转演算体自己是不能实现动态转动的,小彬大人给的演示是触发器,想必效率是不会很高的。于是来论坛求助了一下,有幸得到头目和小彬的回复,都是说:触发器只是接口,可以直接使用演算体消息的。但是显然,在演算体中预置消息很麻烦,如果要很细腻的表现出来,就要写N多消息的,尽管小彬大人给了计算器出来,但是这个活还是很费力呀。然后继续翻阅这方面的帖子,发现星星大人某些演示使用了“旋转体”演算体,可以直接定义旋转轴、旋转速度、初始角度,更妙的是:它直接使用局部坐标,从而很好的适应需要转身的情况。然后详细研究了一下,以下是研究笔记:
1.旋转轴及旋转方向。指定旋转轴的数据在“演算体:本地”字段,这个字段是一个点的坐标,我们从原点向该指定点的方向做一条假想的射线,这条射线就是旋转轴,那么如何知道朝那个方向旋转呢,可以用“右手螺旋定则”来直观描述:右手握住这条射线,拇指伸开,指向射线的方向,则其余四指指向的方向就是演算体旋转的方向。
2.旋转速度。这个在“演算体:比率”字段指定,比如填写180,就表示每秒旋转180度(游戏时间)。
3.初始角度。就是“演算体:初始角度”字段,没设么好解释的。
另外需要说明的是如果想做动态旋转,“演算体:类型”字段要选择“累计和设定旋转”。
下面说说常见用法。
1.绕自身某一条坐标轴旋转,可以做出水平转圈、侧滚或者翻跟头的效果。这个最简单,只需要在某一个坐标上填写一个数即可,只能区分正数、0和负数,因为在指定点坐标轴上。比如(0,0.5,0)和(0,1,0)指定的射线是同一条。如果填负数,则方向就反过去了,所以旋转轴还是那个,但是根据“右手螺旋定则”,旋转方向就跟着反过来了。举例说明:如果想迎面看过去(即模型朝向观察者),模型沿顺时针旋转,只要在Y坐标上指定一个正数即可(因为模型面向自身坐标系的Y轴负方向,参看四夕水大人的教程)。
2.绕自身任意轴旋转,可以做出晃头效果,但是单独参看任意一个点,仍然是绕旋转轴做圆形运动。这种旋转方式指定两个以上的坐标即可,至于旋转轴的朝向,可以参考小彬大人的教程,里边详细描述了空间向量的意义,结合本篇提到的“右手螺旋定则”,很容易想到旋转方向的。
3.同时绕两个或3个方向旋转,就像迪厅里哪种滚球彩灯一样。这个和上边提到的不一样,因为看某一点,它的轨迹是有两个或三个圆合成在一起形成的,直接看起来是不规则的。这种需要做两个或三个旋转轴不同的“旋转体”类演算体,然后依次引用它们即可,貌似没有顺序问题(但是如果有其他位置操作演算体,比如局部偏移,则应当和这些演算体分好顺序,不同的顺序会变得不同)。
4.改变姿态的旋转,比如头向上翘30度,然后做侧向翻滚动作,或者做盘旋动作。在理解上边三种方式之后,配合精确旋转演算体和局部偏移演算体等就可以了,需要说明的是,其他演算体和旋转演算体的顺序不同,效果也不同,开始制作是有些迷糊,但是用熟练了就好多了。
下边附带一个盘旋的演示。貌似有人问过如何做。
盘旋演示.SC2Map
(9.82 KB, 下载次数: 32)
|
评分
-
查看全部评分
|