目录

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

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

一,自瞄
基于所有的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就行。

FPS游戏的方框透视+自瞄原理相关推荐

  1. c语言游戏call调用,C语言-植物大战僵尸-刷僵尸call;fps游戏CS-方框透视(矩阵+传统)...

    C语言-植物大战僵尸-刷僵尸call:fps游戏CS-方框透视(矩阵+传统)前言:大家好,我是向上先生,嘿嘿~最近在学习逆向.反汇编等等,首先我在非常感谢52pojie这个平台,差不多很多学习资源都是 ...

  2. FPS 游戏实现D3D透视

    FPS游戏可以说一直都比较热门,典型的代表有反恐精英,穿越火线,绝地求生等,基本上只要是FPS游戏都会有透视挂的存在,而透视挂还分为很多种类型,常见的有D3D透视,方框透视,还有一些比较高端的显卡透视 ...

  3. Ai实现FPS游戏自动瞄准 yolov5fps自瞄

    大家好 我是毕加锁 (锁!) 今天来分享一个Yolov5 FPS跟枪的源码解析和原理讲解.代码比较粗糙 各位有什么优化的方式可以留言指出,可以一起交流学习. 需要了解的东西和可能会遇到的问题 1.xy ...

  4. 基于yolov7的FPS游戏(csgo,cf,cfhd)自瞄开发

    1.训练yolo识别人物导出pt文件 链接: yolov7训练自己的数据集-gpu版 2.使用win32进行屏幕截图和鼠标移动 3.使用导出的pt文件进行推理(pt文件将在完善后发出) 屏幕截图获取屏 ...

  5. 基于yolov5实现FPS游戏自瞄,理论上通杀所有射击游戏

    1.参考大佬细致教学:Python Apex YOLO V5 6.2 目标检测 全过程记录_mrathena的博客-CSDN博客 [Yolov5]使用Ai实现FPS游戏自动瞄准 yolov5fps自瞄 ...

  6. FPS游戏:视角 4*4 矩阵的特点

    在前面的FPS游戏实现GDI透视中,我们通过三角函数,并配合坐标计算出了敌人的位置,该方法时比较笨的一种方式,但却很通用,基本上,只要是FPS类游戏,稍微修改一下代码中的基地址,就可以通用,本次我们将 ...

  7. 任鸟飞在线课程之FPS游戏自瞄爆头飞天透视画框

    0.FPS游戏自瞄展示 1.FPS游戏自瞄透视之模块动态加载 2.FPS游戏自瞄透视之玩转堆栈 3.FPS游戏自瞄透视之遍历周围所有目标 4.FPS游戏自瞄透视之目标需要的属性总结 5.FPS游戏自瞄 ...

  8. 【游戏逆向】FPS游戏自瞄透视之堆栈分析

    我们想做FPS游戏的自瞄透视功能,最基础的数据就是周围所有目标的坐标值只有确定了所有目标的位置,我们才能用算法写出自瞄和透视. 首先我们拿自身的血量当突破口,找出周围所有目标的遍历. 竞技场血量不好找 ...

  9. FPS游戏自瞄爆头原理

    众所周知只要是射击类FPS类游戏都有自瞄爆头的功能有的人会说,既然大家都知道,游戏公司也必然知道那么为什么不把这个BUG修复掉呢实际上并不是不修复,而是这个根本不算是BUG 为什么这么说呢?原因很简单 ...

  10. FPS 游戏自瞄原理

    了解FPS游戏自瞄漏洞 经常玩游戏的朋友,应该知道FPS游戏,例如:穿越火线,逆战等等,他们的特点就是以第一人称视角进行操作人物,屏幕中间会有一个准星,通过准星瞄准敌人进行攻击以达到击杀效果和游戏体验 ...

最新文章

  1. 关于Visual C++ 2008中wprintf和wprintf_s输出中文乱码问题
  2. OVS vxlan(二十八)
  3. git设置忽略文件和目录
  4. Oracle 监听配置详解(转载)
  5. python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法
  6. OpenGL ES 纹理设置
  7. 图论 —— 生成树 —— 最小瓶颈生成树
  8. MSDN Visual系列:在MOSS中创建一个BDC实体
  9. 私有镜像仓库的部署与使用方法
  10. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xff in position 0: illegal multibyte sequence
  11. 计算机英语词汇汇总,计算机英语词汇汇总
  12. 油相CdSe/ZnS量子点溶液 硒化镉/硫化锌量子点介绍及阐述
  13. 快手短视频产品分析报告-小白文
  14. SQL Server 2016 COMPRESS 和 DECOMPRESS 函数
  15. 怎么用计算机按反三角函数的导数,反三角函数求导过程
  16. 粉碎机无法粉碎文件_粉碎站点地图
  17. IOS 文本操作笔记——CHARACTERSET
  18. Focusing Attention Network(FAN)自然图像文本识别 学习笔记
  19. 辐射度算法(radiosity)原理
  20. 感叹游戏行业的飞速发展

热门文章

  1. 我也来开发2048之终极奥义
  2. 计算机课怎么管纪律,作为班主任,班级纪律应该怎么管?丨班级圆桌派
  3. AT89S52单片机之定时器/计数器
  4. Windows系统口令扫描之——使用NTScan扫描Windows口令
  5. 中小计算机机房管理制度,酒店计算机机房管理制度|计算机机房管理制度
  6. 循环冗余校验码解法简析
  7. OCP 创建可插拔数据库PDB
  8. win10更新后没有计算机了,win10更新后 ,没有处理器电源管理怎么办?
  9. 网络正常,QQ无法登录,一直显示登录中
  10. ROS Bridge 笔记(02)— carla_ros_bridge 功能包(准备 ROS环境、运行 ROS Bridge、配置 CARLA 参数、同步模式下使用 ROS Bridge、主车辆控制)