游戏开发论坛

 找回密码
 立即注册
搜索
楼主: xxforget

如何实现这种效果?就是把导弹的模型加在机翼的下边~~

[复制链接]

82

主题

782

帖子

798

积分

高级会员

Rank: 4

积分
798
发表于 2008-3-6 22:54:00 | 显示全部楼层

Re:如何实现这种效果?就是把导弹的模型加在机翼的下边

我告诉你一下原理,或许对你有用。

一,读出飞机的矩阵[Matrix],这个矩阵信息包括飞机的Position, Rotation, Scaling。
二,设置导弹的父矩阵[Parent Matrix]为飞机的矩阵[Matrix]

这样,导弹就成了飞机的一部分了,飞机怎么动,导弹就怎么动,不过这个时候,导弹的Position是飞机的Position为原点的相对位置,导弹的Scale也要受飞机的Scale影响。

当你要发射导弹的时候,思路如下:
一,读出导弹的转换矩阵[Translation Matrix],就是导弹受飞机矩阵影响后的矩阵。
二,设置导弹的父矩阵为空(这个时候,导弹的矩阵就不受飞机的矩阵影响了)
三,把你读出的转换矩阵设置为导弹的当前矩阵。(完美来说,只需要从转换矩阵里面读出两个Vector,一个是Position,一个是Rotation。Scale用你试验室后保存的导弹Scale)
四,根据你的逻辑,给导弹的Position与向量相加,使导弹向前飞去。

思考:
一,程序读入导弹模型后,你应该测试一下正常显示时候的状态,就是Scale应该都是多大,保存到变量里面,以备脱离飞机矩阵后保持正常导弹大小。因为导弹矩阵设定父矩阵后,导弹的大小0Scale]是相对于父矩阵的Scale的相对值,你也需要测试后得到。
二,如果你希望做很智能的导弹攻击路径,需要采用三度空间的A*寻路算法,效果比较好,不过要给导弹物体的寻路增加一个衰减值,不然导弹飞出去后,就跟鬼魂一样,无论目标怎么跑,就一直跟在后面。

重点:
一,3D游戏很多时候都是矩阵运算,所以要多读读DXSDK相关文档,了解矩阵运算(不太难,有空间想象力,都能明白)
二,做好各种数据的保存工作,例如导弹初始化矩阵,和加入飞机矩阵后应该设定的相对矩阵。
三,要善用Truevision3D引擎所带的场景编辑器和其他工具,这样你可以很方便地得到原始矩阵信息。
四,三度空间的A*寻路需要研究,会给你的游戏产生更好的效果。
五,游戏开发不要拘泥于已有的思考和知识,多开动脑筋,就会发现其乐无穷。

以上,由于本人精力有限,只能帮你分析这么多,希望能够起到投石问路的作用。祝你在游戏开发的路上顺利。
[em16]

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
发表于 2008-3-7 16:18:00 | 显示全部楼层

Re:如何实现这种效果?就是把导弹的模型加在机翼的下边

圆的坐标公式
X=COS(弧度)*半径+圆心X
Y=SIN(弧度)*半径+圆心Y

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2008-3-8 00:05:00 | 显示全部楼层

Re:如何实现这种效果?就是把导弹的模型加在机翼的下边

这个其实是个基础问题,即物体的旋转问题。其实原理就是将物体的旋转中心改变,比如让导弹的旋转中心和飞机重合,这样就可以让导弹随飞机旋转了。涉及到具体实现的话就是一点点线代和几何知识。

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-3-8 09:22:00 | 显示全部楼层

Re: Re:如何实现这种效果?就是把导弹的模型加在机翼的

sandy_zc_1: Re:如何实现这种效果?就是把导弹的模型加在机翼的下边~~

这个其实是个基础问题,即物体的旋转问题。其实原理就是将物体的旋转中心改变,比如让导弹的旋转中心和飞机重合,这样就可以让导弹随飞机旋转了。涉及到具体实现的话就是一点点线代和几何知识。


这个你就错了, 恐怕你还没有进入3D游戏的开发, 不是所有的模型都是以中心轴旋转的, 比如一个模型是1-100, 正确的是50的位置为中心, 偏偏有些模型是以1的位置旋转的, 用程序改不了, 当初我做五星勋章的时候也用软件转过模型, 转了格式后转轴就不在中心了.

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2008-3-8 10:44:00 | 显示全部楼层

Re: Re: Re:如何实现这种效果?就是把导弹的模型加在机翼

游戏之家站长: Re: Re:如何实现这种效果?就是把导弹的模型加在机翼的下边~~


这个你就错了, 恐怕你还没有进入3D游戏的开发, 不是所有的模型都是以中心轴旋转的, 比如一个模型是1-100, 正确的是50的位置为中心, 偏偏有些模型是以1的位置旋转的, 用程序改不了, 当初我做五星勋章的时候也用软件转过模型, 转了格式后转轴就不在中心了.



这个你就错了,恐怕你还没有研究过图像几何方面的知识,或者说你根本没有看明白我的话。每个物体(不管是2D还是3D的)在旋转的时候都有一个旋转中心,用一个向量表示,对其的旋转可以看作对其进行的矩阵变换。就算程序中不能直接设定旋转中心,但再烂的3D图像引擎也会支持对对象进行矩阵变换吧?另外我貌似没有说过物体的旋转中心和它的物理中心重合之类的话吧?

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-3-8 17:22:00 | 显示全部楼层

Re: Re: Re: Re:如何实现这种效果?就是把导弹的模型加在机

sandy_zc_1: Re: Re: Re:如何实现这种效果?就是把导弹的模型加在机翼的下边~~

这个你就错了,恐怕你还没有研究过图像几何方面的知识,或者说你根本没有看明白我的话。每个物体(不...


任何理论都需要经过实践的考验, 你学的再多几何学有用吗? 你没应用过, 就算你以前开发的游戏也是用多张画面组成的动画, 这个已经落后了....
实际游戏开发中, 有一种模型转轴不在中心, 这些我都研究过,
因为楼主用的模型并不是他自己设计的, 所以那个模型我判断中心轴不在模型中间,
对于商业游戏MDL模型来讲中心轴确实是在模型的中心, 但.X的模型或3DS的不一定在
中心, 这些都是我实际开发游戏中的体会.
我试过把CS的AK47转成.X的模型, 中心轴不在中心, 这个代码我现在还有, 因为这个问题我还咨询过搞3D的人, 为什么我的模型不能正确显示? 原因是中心轴不对.

还有你搞清楚楼主是做什么程序, 是TV3D.

82

主题

782

帖子

798

积分

高级会员

Rank: 4

积分
798
发表于 2008-3-9 13:31:00 | 显示全部楼层

Re:如何实现这种效果?就是把导弹的模型加在机翼的下边

转贴一个来自星河霸业官方网站的3D游戏美工制作标准:

美工制作标准:
1,在场景,模型制作工具中(例如Max),模型的正方向一定在Front视图中朝里,就是与制作者面朝方向相一致 [注意]。
2,当作为个体单独导出的时候,导出模型的中心点和重心必须一致,并且必须在max标准坐标系的世界中心点上。
3,尽量采用低模建模。
4,模型的UV要设置好。
5,模型按照导出个体为主,每个个体必须有自己的中心,导出之前必须物体中心与世界中心对齐。
6,模型贴图保存为DDS文件结构。
7,模型中组成部分的个体命名一定要有规范。
命名规范为:例如坦克模型
(1)整体模型名
(2)子模型名
例如:t001_body.x  (坦克001,坦克车身模型)
8,模型使用的贴图命名:
(1)模型名称代号。
(2)贴图性质名。(T:普通贴图,N:凹凸贴图)
(3)贴图LOD级别。(全部显示为0级,然后是LOD1级,2级)
(4)贴图尺寸(以最大尺寸为主)
例如:t001T01024.dds (坦克001的普通贴图,LOD0级,1024尺寸)
暂时定这个标准。

2

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2008-3-13 20:49:00 | 显示全部楼层

Re:如何实现这种效果?就是把导弹的模型加在机翼的下边

呵呵,最近这几天adsl停了,所以没能来回复,实在是不好意思 ……-0^
我要的那种效果我已经实现。

非常感谢proman给我的提示,我现在正卡在让导弹追踪飞机那里呢~(不能上网查资料真的是不方便 - -!)

现在疯狂找A*寻路 的资料 ,希望自己能够解决~~

吐血彻夜研究中 !!!

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2008-3-13 23:02:00 | 显示全部楼层

Re:如何实现这种效果?就是把导弹的模型加在机翼的下边

A*寻路是策略游戏用的……和导弹跟踪飞机完全没关系……

82

主题

782

帖子

798

积分

高级会员

Rank: 4

积分
798
发表于 2008-3-14 17:35:00 | 显示全部楼层

Re:如何实现这种效果?就是把导弹的模型加在机翼的下边

看来楼上不会活用,A*寻路就是一个算法,你用在什么地方都可以。主要的特点就是可以算出来绕过障碍物的路线,例如大石头,地面的坑,或者让飞弹穿过废墟的窗户。

多想想,A*用出很广的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 14:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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