unity如何实现图片透视_FPS透视自瞄从入门到入狱

导语

本文仅限于技术交流,旨在阐述ESP与AimBot的原理,帮助更多游戏开发者学习防范ESP与AimBot的方法。

前言

自从1993年的FPS神作——毁灭战士发行以来至今,FPS(第一人称射击)游戏的热度从未衰减。随着网络游戏的飞速发展,FPS多人在线游戏的代表——绝地求生、Apex等大逃杀类游戏在吸引到越来越多玩家。由于FPS游戏的安全性问题,这类游戏也受到了黑色产业的“青睐”,Extra Sensual Perception(简称ESP,意为透视)与AimBot(自动瞄准)便是这其中的产物。

 ESP和AimBot两种功能从实现细节上有很大差别,前者是3D坐标与2D坐标的变换问题,后者只涉及到简单的角度计算。当然,这些知识对于游戏相关专业的同学来说,应该早已驾轻就熟了,笔者就不费太多篇幅来论述了。本文完全以初等数学的知识为基础,向读者阐述ESP和AimBot的原理。

1.AimBot(自动瞄准)原理及实现

AimBot,通俗来讲,就是使发射器(通常为枪械)精确地瞄准要射击的目标(通常为人类,载具等可攻击对象)。即,使弹道穿过要射击的目标(在忽略重力等因素的理想情况下)。

所以,要使发射器精确地瞄准要射击的目标,就需要修改游戏内存中的弹道数据。

要达到目的,需要解决两个问题:

1.      弹道在游戏内存中的表现形式是怎样的?

2.      如何计算正确的弹道?

2.FPS射击弹道的表现形式

弹道,即子弹飞行的轨迹,在早期的FPS游戏中弹道就是一条直线。但是,在一些追求真实感的军事模拟游戏中,弹道受到重力影响从而由直线变成弧线。在目前大多数网游FPS中,弹道仍然是一条直线。

在一些经典的游戏引擎中,如Source引擎,用欧拉角(Euler Angles)来表示弹道。许多新一代游戏引擎,如Unity,用四元数(Quarternion)来表示弹道。在某些游戏公司自主研发的游戏引擎中,弹道用弧度或向量来表示。

欧拉角和四元数在游戏中是用来表示角度或向量等信息,四元数可以通过欧拉角计算而得。四元数弥补了欧拉角的局限性,解决万向节死锁 (Gimbal Lock)的问题。相比四元数,欧拉角在表示和运算上更为直观。 

3.计算正确的弹道

81d9e7f657dfc5b0e094b523e3eaf773.png

 图1

观察图1,假设这样一个场景,你将要使用一把7.62mm口径的AKM自动步枪去射击一个僵尸,蓝色箭头Z代表AKM的弹道。

假设AKM的位置固定,忽略重力等因素,要使AKM的弹道穿过僵尸,需要以下两个步骤:

1.     

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值