FPS游戏的方框透视+自瞄原理

14 篇文章 25 订阅
14 篇文章 6 订阅

目录

一,自瞄
准备工作:
计算工作:

二,方框透视
准备工作:
计算工作:

一,自瞄
基于所有的FPS游戏,都有一个人物结构,包含人物在地图上的三维坐标,人物的准心数据。
而实现内存自瞄就是通过查找自己和敌人之前的三维坐标数据,将三维坐标数据转换为二维的准心数据。

准备工作:
1.查找人物的三维坐标数据:
以CS为例子,进入游戏搜索未知的初始值,一般找一个有箱子或者地势有高低差的位置,先查找Z坐标数据(在游戏中一般X,Y,Z坐标是挨着一起的+0,+4,+8的关系),跳到箱子上或走向更高的位置,搜索增加的数值,减少高度搜索减少的数值(浮点型),重复最后找到坐标的基址。
2.查找鼠标的准心坐标数据:
一般游戏鼠标准心Y坐标向上会减少,游戏鼠标准心向下会增加,这样就可以搜索到鼠标的准心Y坐标,-4一般就是X坐标。
3.游戏的俯仰角,偏转角,翻滚角:
俯仰角:用CS举例就是抬头或者低头的时候角度变换,转换到游戏的准心数据就是准心Y,一般游戏为-90° — 90°的范围
偏转角:CS中就是人物视角转动,比如打转,这个便是游戏的准心数据的X,一般游戏是0° — 360°
翻滚角:这个举例就是吃鸡里面的左右摇头角度变换

计算工作:
计算出敌我的X差值 X,以及Y和Z的差值Y,Z。
1.计算出准心的X偏转角度:
通过arctan(Y / X)就可以计算出角α的大小,这里可能会想到α的角度在一三和二四象相的tan都一样的情况:
那么在2象相:
用反正切函数计算出的角度是一个负数,这个时候就应该加上一个180°,得到正确的角度值。
同样在三象限得到的α值是一个整数,但是应该加上180°才能得到β的正确角度。
2.计算出准心的Y 偏转角度:
因为这是一个三维空间,所以就拿正方体求斜边一样,要先求到二维距离(sqrt(x²+y²))在根据z求到角度值:
通过arctan(Z / 二维距离)可以求得α角大小,这个时候要判断游戏向上俯仰角是减少还是增加,在CS中向上为负数,向下为整数,所以这个α就是一个负的角度
3.移动鼠标准心
求得了以上的两个角度数据之后,修改准心数据为求得的角度数据,就可以实现自瞄。

二,方框透视
方框透视同样需要敌人与自己的坐标数据以及准心数据,只是将这些数据进行转换为二维的屏幕坐标数据。

准备工作:
1,摄像机视角概念:
在3D游戏中摄像机视角:

游戏中摄像机的作用就是移动将摄像机视角中的三维空间中的内容投影到一个平面上,然后显示给玩家观看。
2,FOV视场角:
就是摄像机和屏幕的夹角,为FOV,视场角,我们比如CS游戏中准心在屏幕中心起始就是在FOV角的一半位置。
而摄像机对应的屏幕大小就是显示给我们的分辨率大小,比如1024*768就是长和宽的大小,而当FOV为90°时候,准心中间与屏幕的垂线构成等边45°直接三角形,这个时候摄像机到屏幕的距离就是一半屏幕长度的大小,要实现方框透视就要将求得的X,Y,Z坐标数据以及准心数据转换为在屏幕上的坐标,从而实现画方框。

计算工作:
1,计算出在屏幕上的方框X坐标:
由图分析可以知道:
X / B = Y / A ----》 B = X / Y * A
而 X / Y就是tan α 的值,A就是一半屏幕长度的值 * 90 / fov,所以重点就是求α。
α角是鼠标准心X角度和自己和敌人的夹角β的差值(在fov的左边应该为负数,这样算出来的tan才是负数,最后加上一半距离才是正确的屏幕坐标X),这个很容易就求得。最后还应该加上屏幕的另一部分,结果就是在屏幕上的X坐标,最后的公式如下:
X_POS = tan α * (屏幕坐标长度一半)* (90° / fov)

1,计算出在屏幕上的方框Y坐标:
α角就是鼠标的Y角度数据,这里要和游戏中的相反,向上应该是正,因为这里要求长度。
A还是摄像机和屏幕的距离:
则有:(C+Z) / high = C / tan α / A + 一半的屏幕高度 ( A就是一半屏幕长度的值 * 90 / fov )
最后可以求得:
坐标Y = (tan α + tan β)* A + 一半屏幕的高度
通俗一点的理解就是:
坐标Y = (tan 鼠标Y角度(向上为正,向下为负) + tan 敌我Y夹角)* 一半屏幕长度 * 90 / fov + 一半屏幕高度

最后:
求得了屏幕的X,Y坐标,就能绘制三角形了,至于方框缩放问题,距离越远方框越小,所以我用反函数来实现,自己游戏中取两组三维距离和方框长度匹配的数据,计算一下K就行。

  • 12
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: FPS游戏中的AI自瞄源码是指计算机程序的源代码,能够让虚拟角色自动瞄准在游戏中出现的敌人角色。这种程序常常被用于电子竞技等游戏中,但也有一些游戏开发者认为这种程序会破坏游戏的平衡性和公正性。 AI自瞄源码的实现需要具备一定的编程技术和数学算法知识,可以通过计算目标角色的速度,方向和剩余血量等因素来准确瞄准敌人角色。但是由于游戏物理引擎,键鼠输入等因素的影响,自瞄程序的准确性和稳定性并不是完美的。 此外,在某些游戏中使用AI自瞄程序是被禁止的。如果一旦被发现,玩家可能面临游戏账号封禁,被禁止参加比赛等惩罚。因此,开发者们应该明辨是非,遵循游戏规则,以诚实公正的态度去玩游戏。 ### 回答2: FPS游戏AI自瞄源码是一种利用人工智能技术实现自动瞄准的程序代码,能够大幅提高玩家在FPS游戏中的命中率和胜率,从而获得更好的游戏体验。 在FPS游戏中,AI自瞄可以通过计算玩家与敌人的距离、目标移动方向和速度等信息,自动调整瞄准角度和时间,以达到快速、准确地击中敌人的目的。这需要程序员利用复杂的算法和计算模型,通过代码实现机器学习和深度学习等先进技术,实现自动瞄准的功能。 一些知名FPS游戏,如《使命召唤》和《反恐精英》,引入了AI自瞄技术,成为了吸引玩家的重要卖点。这些游戏的AI自瞄源码也成为了开发者研究和学习的重要资源。通过研究AI自瞄源码,开发者可以学习到最新的人工智能技术,了解这些技术如何应用于FPS游戏中,从而提高自己的编程能力和工作效率。 然而,需要注意的是,AI自瞄源码存在一定的道德和法律问题。一方面,使用AI自瞄软件不仅削弱了游戏的挑战性和可玩度,还可能破坏游戏的公平性和竞技性。另一方面,AI自瞄软件的开发和使用也可能违反游戏开发者的版权和用户协议,甚至触犯国家有关法律法规。因此,开发和使用AI自瞄软件需谨慎,必须遵守游戏规则和法律法规,维护游戏的公平和健康环境。 ### 回答3: FPS游戏AI自瞄源码是一个用于改进FPS游戏中的人工智能(AI)自瞄系统的源代码。FPS游戏是指射击游戏,玩家需要在游戏中控制一个虚拟角色,利用枪械等武器击败敌人。在大多数FPS游戏中,玩家需要手动瞄准并开枪打击敌人。 然而,一些FPS游戏玩家发现了一些可以让自己的角色自动瞄准并开枪的方式,这种通过第三方软件进行外挂的行为被称为“外挂自瞄”。为了打击这种作弊行为,游戏开发者开始加强游戏的安全性,并且开发了AI自瞄系统,让游戏自动瞄准。 FPS游戏AI自瞄源码是这些AI自瞄系统的核心,包括了一系列算法和代码,可以让游戏自动锁定目标并进行射击。这样不仅可以避免作弊,还可以提升游戏公平性和娱乐性。 但是,开发FPS游戏AI自瞄源码也存在一些问题。首先,很难确保AI自瞄系统的准确性,因为游戏中存在着许多变量和因素,如距离、速度、瞬间方向变化等等,这些都会影响到AI自瞄系统的准确性。其次,如果游戏开发者直接公开AI自瞄源码,那么外挂制作者也有可能通过破解源代码来制作更高效的作弊软件,从而产生更多的作弊行为。 总之,FPS游戏AI自瞄源码是一项非常有用和具有挑战的技术,但同时也需要开发者们不断地改进和加强。只有这样才能够让FPS游戏更加公平和有趣。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值