技术讨论,黑盒语音的“黑神话悟空”的内置地图是如何实现的

查看 66|回复 10
作者:jtacm   
试用了下黑盒语音的“黑神话悟空”的内置地图国内,发现它可以:
[ol]
  • 实时判断当前方位和朝向,且对地图各个上各个宝物/怪物点进行了标注,可筛选。
  • 内置地图悬挂在游戏内,体验很 native 。
    [/ol]
    难道它读到了“黑神话悟空”的游戏进程的内存数据?貌似它不仅读到了,还准确判断到了各个数据结构的起始地址,并 deserialize 出来了。这个是怎么做到的?别家的游戏内存数据结构都是不对外公开的呀,而且有的还是加密的,好奇黑盒语音是怎么做到的,那位有经验的 V 友们能分析下。
  • naythefirst01   
    就是 mod 开发的过程,其中会用到 Unreal Engine Dump 之类的技术
    laommmm   
    玩过 3D 的大致都知道怎么做吧,转向一般都有 controller 控制,读取系统 controller 就行了,然后每秒更新转向指向,地图标注的话,只是把模型缩小,打悬浮就行。过滤的话,只是更新标注显示隐藏。
    jtacm
    OP
      
    @laommmm 感谢感谢。 那当前定位(在地图中的位置)是如何获取的?
    laommmm   
    @jtacm 模型都是同一个,只是缩小了或者简化了变成右上角小地图地图。位置都是同一个,所以不存在获取位置问题,大地图在什么位置,缩小后或者简化后的小地图就在什么位置。3D 里面一般获取当前相机位置就可以。
    zlkent   
    @laommmm #4 黑盒那个应该不是模型缩小,是后期人工绘制的地图。因为走到某些隐藏关卡,会显示当前区域暂无地图。
    jtacm
    OP
      
    @laommmm 游戏 默认是没有提供任何地图和位置信息在 UI 上的,那这个工具是如何获取大地图上当前角色的位置的呢? 是否要读取内存数据,获取当前相机位置?
    fenfire   
    对 steam 版本的黑猴需要管理员运行黑盒语音,应该是会读内存吧
    rnv   
    玩家一般有坐标信息,这个决定位置。还有相机矩阵,通过这个可以判断朝向。拿到这些之后我认为比较简单的方法就是坐标系变换后在小地图里更新位置。小地图可以 hook 画图方法进行绘制
    laommmm   
    @jtacm #6 我感觉你的猜测是对的,应该是从内存拿的。
    @zlkent 手绘的话成本确实有点高啊,需要人把所有地图都熟悉一遍,走一遍。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部