从子弹而不是照相机中射出子弹,但保持相对于标线的准确性


14

我正在开发第一人称游戏,但遇到了问题。在我的游戏中,正在渲染玩家的枪支,并在屏幕中央放置一个标线片,如下所示:

在此处输入图片说明

首先,让我们想象一下没有渲染枪模型。然后发射子弹很容易-您只需将子弹精确地产生在玩家“眼睛”所在的位置,然后使用trig来根据玩家所看的方向计算速度。

但是现在,当我们添加枪支模型时……我们不能只是在子弹眼所在的地方产生子弹,我们就必须在枪的尖端产生子弹(对吗?)。因此,您可以这样做,但是然后...如何将子弹移动到标线指向的位置?

请记住,我的游戏中的子弹(在这种情况下实际上是火箭)将移动得足够慢,以至于看不到它的运动,因此,如果子弹太快而无法观察到的话,一些通常无法解决的解决方法将不起作用。例如,如果您没有生成它,使其看起来好像是从枪尖中出来的,那么玩家肯定会注意到这一点。


1
您的问题的答案是,Raycasting =)
灰色

都是烟雾和镜子。任何渲染的子弹都与子弹的实际路径或射线无关。
congusbongus

@congusbongus我的意思是,OFC不必使子弹本身与数学完全一致,但是如果您在某种程度上不这样做,它看起来会很糟糕,这就是我要坚持的地方。
亚伦2014年

Answers:


20

从相机通过中心/标线片向外界发射光线。找出它在世界上的流行。此时从枪口中发射子弹,而不是直接从枪中射出。

奖励点用于使手和枪具有动画效果,使其在瞄准时指向该方向,因此,子弹看起来仍然像是从枪口中直接发射,而不是成角度地出来。

如果执行动画,则可以始终直接从枪口发射子弹。只要尽力使枪对准标线片瞄准的点就可以了。以自然方式显示玩家试图瞄准的屏幕中心和枪支实际瞄准的点的方式来设置两个十字线也是有帮助的。

或者,您可以显示一个标线,该标线是在完成动画后枪对准的目标,并朝该方向发射子弹,而不是枪当前在其动画中瞄准的位置。这样,标线总是显示出玩家实际上会击中什么,但不会假装您可以例如在摄像头看到枪支无法执行的操作时向墙壁开火。

所有这些都已在真实游戏中使用。您更喜欢哪种游戏取决于您制作的游戏风格,模拟和目标游戏之间的权衡,是否为多人游戏等等。


许多游戏甚至不使用模型作为子弹,而只是像上面提到的那样发射光线以检查碰撞,您可以做的是向其他玩家显示不同于当前玩家视图中显示的枪模型,并将其与子弹对齐角色似乎正瞄准目标而被开除
Matthew Pigram

Counter-Strike Source使用这种方法(具有视图,玩家和世界模型)
Matthew Pigram 2014年

-1

摆脱光罩怎么办?然后,子弹可以像实际一样从枪上沿直线走。瞄准瞄准具将意味着更多,因为您将目标与枪管对准(在玩家模型上减去几英寸)。


尽管很多游戏都这样做,但这是一个非常广泛的设计决策,对游戏的整体节奏和战斗力都有影响。
Katana314 2014年

对我来说,这更多的是避免问题,然后实际解决问题。
亚伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.