如何实现自动瞄准/自动瞄准

我们都知道自动瞄准自动瞄准在游戏中的作用。

现在,我需要find如何在我的游戏中实现它。

实际上我应该在UDK中实现它,如果有人给我更具体的UDK解释,我会很高兴。 但概念上的解释也是愉快的,我会按照自己的方式来实现它。

据我所知,自动瞄准只是在屏幕上看一个特定的坐标,这是与玩家的观点相关联的,子弹从屏幕中心(十字准线)相对移动。

对于像Quake和CS这样的多人FPS游戏来说,模型下面有骨骼结构,所有的目标机器人都在指定哪个跟踪。

在您的相机脚本或播放器控制器或其他内容(不知道UDK如何处理所有内容)中,为了自动穿过墙壁和所有内容(最残忍的方式),您只需要:

  • 扫描周围find你想要自动定位的对象。 它可以像foreach循环遍历所有特定types的游戏对象一样简单,也可以简单地foreach所有游戏对象。
  • find距离玩家最近的对象,locking它。 locking部分可以通过一个简单的Camera LookAt调用完成。 而且,如果与玩家联系在一起,就完成了。 如果不是,则必须将相机转轴坐标转换为播放器。

这是基本的,你可以添加一个额外的味道,如:只select(循环)只有可见的对象; 只select一定距离内的物体; 只有当玩家的目标在目标范围之内(屏幕上,你需要一些mathalgorithm)才能应用自动定位。

这是未经格式化的原始概念。

我从来没有实现过,所以我会保持相当模糊。 但是你必须做的是testing你喜欢的游戏的自动目标,并分几步进行分解,然后执行就变得非常简单。

例如,在伪代码中,对于reticule magnetism ,这就是你可以在更新函数中使用的东西:

 If the crosshair is close to an enemy And if the pad's right stick is close to its center position Then start auto-aim to enemy If auto-aim is started If the pad's right stick is still close to its center position Move view point towards the enemy Else Stop auto-aim 

然后testing很多,有其他人testing它,看看是否符合你的参考游戏。 如果没有,调整你的algorithm,冲洗,然后重复。 经过几次迭代,你应该对结果满意。