Universal Modder:Minecraft 穿入 GTA V 的 passthrough 方案——共享内存、WebSocket 与 ReShade 深度合成全解析
【免费下载链接】universal-modderPoint Claude at any game. Skills, tools and the fal MCP that let Claude Code mod almost any PC game you own: recon, reverse engineering, fal-generated art/3D/audio, in-game testing, showcase videos.项目地址https://gitcode.com/gh_mirrors/un/universal-modder点击查看免费下载本文基于 universal-modder 仓库的知识条目knowledge/games/gta-v/minecraft-passthrough.md展开真实的 Minecraft Java 26.3 与 GTA V 故事模式并排运行GTA 的相机驱动 Minecraft 的相机Minecraft 的世界色深度帧被合成进 GTA 的帧里并参与深度测试两侧的游戏事件TNT、箭矢、怪物、下界传送门互相镜像。读完后你将掌握passthrough 这类双游戏互穿mod 的完整架构ScriptHookV 脚本 Fabric 插件 ReShade 插件/shader 三件套、跨进程帧共享的共享内存布局、延迟重投影的数学原理以及 20 余个真实的工程陷阱与修复方式。全部代码位于 examples/minecraft-gta5-passthrough。整体架构为什么选择 passthrough 路线仓库知识条目把该案例归类为passthrough 路线两个未修改的游戏并排运行各装一个 mod 交换状态。文档给出了当时被否掉的三个替代方案及理由在 GTA 里重实现 Minecraft工作量太大而且永远没有真 Minecraft 的手感走 FiveMGTA 多人平台需要 Cfx.re 的 key 和服务器且可能屏蔽 ReShade 插件把 Minecraft 渲染成扁平覆盖层无法被 GTA 的建筑遮挡卖相不行。最终的设计是三条通道各司其职GTA V 故事模式 Minecraft 26.3 Fabric MCPassthrough.asi (ScriptHookV 脚本) -- WebSocket 127.0.0.1:25599 -- 相机 / 地面 / 按键 / 栏位 / 命令 -------------------------------- 爆炸、箭/烟花命中、怪物事件 ReShade 插件合成器 -- 命名共享内存 Local\MCPassthroughFrame -- 世界 RGBA 深度、手持物/HUD 覆盖层 MCPassthrough.fx与 GTA 的反转 Z 深度做深度测试覆盖层置顶三条通道的分工WebSocketMinecraft → GTAMinecraft 侧是一个监听127.0.0.1:25599的 WebSocket serverHostLink.javaGTA 侧的 ScriptHookV 脚本连过来发送相机姿态、地面柱体、输入与导演命令。命名共享内存Minecraft → GTA 进程内 ReShade 插件高吞吐的图像数据不走网络而是走 Win32 命名文件映射Local\MCPassthroughFrame。反向 WebSocketGTA → MinecraftGTA 里发生的事件爆炸、命中、怪物伤害经同一条 socket 回传由 Fabric 插件在 Minecraft 侧演出。环境与版本前提以当前仓库为准均为 2026 年 9 月的验证环境GTA VLegacySteam appid 271590游戏 build 3889故事模式 ScriptHookV 3889.0 其 ASI loaderReShade6.8.0带 add-on 支持以ReShade64.asi方式由 ASI loader 加载Minecraft Java26.3 Fabric Loader Fabric API用 Loom 在JDK 25下构建MSVCVisual Studio Build Tools构建 ASIWindows Python 用于 host 测试工具与视频导演单台 Windows PC NVIDIA GPU开发时 Agent 在 WSL2 中工作双游戏同开没有问题。适用边界知识条目的 Verification 一节明确写了未验证项——其他 GTA 构建Enhanced 版、非 NVIDIA GPU、以及除所用比例外的超宽屏均不在已验证范围内。GTA 侧ScriptHookV 脚本做了什么GTA 侧的核心是 gta/src/script.cpp约 2270 行职责包括每帧把 GTA 渲染所用的相机发给 Minecraft、向 Minecraft 喂地面、转发鼠标输入、隐藏 GTA 自己的玩家与 HUD、把 Minecraft 的爆炸变成 GTA 爆炸、执行导演 op以及怪物/警察互战与下界的演出逻辑。坐标换算1 GTA 米 1 方块文档给出的是精确的换算公式script.cpp 头部注释与之一致位置GTA(x, y, z)→ Minecraft(x, z yOffset, −y)角度Minecraftyaw 180 − GTA headingpitch −pitchyOffset的选取使得玩家脚下地面恰好落在整方块边界上有 F8 手动 re-level 键且在玩家附近没有建造物时会自动 re-level。地面同步双向碰撞桥GTA 地面 → Minecraft脚本每 tick 在玩家周围探测 GTA 地面从源码结构看探测半径 40 格、每帧 160 个探针见 script.cpp L30-L33 的kGroundRadius/kGroundProbesPerTick寻地探针在室内也有效以**屏障方块柱barrier blocks**形式发给 Minecraft于是 Steve 会撞在 GTA 世界上方块、怪物、物品都能搁在 GTA 地面上。Minecraft 方块 → GTA你放置/破坏的方块以不可见 GTA 碰撞 prop回传行人和车会停在你的墙外。源码与 README 都给出了工程上限prop 最多约 400 个因为 GTA 在约 1500 个脚本对象时会崩溃——这是为什么不能无限盖楼的硬性答案。输入转发与武器策略GTA 持有窗口焦点脚本把鼠标按键、滚轮与数字键转发给 Minecraft 并阻止 GTA 响应它们Minecraft 拥有鼠标时GTA 自己的攻击/瞄准/武器轮盘等控制会被禁用script.cpp L136-L137 的kGunControls列表。关于Steve 拿枪文档给出了明确的取舍让 Steve 持 GTA 枪看起来不对GTA 的瞄准相机、手部与动画都不适配方块模型。真正可行的是Minecraft 武器 GTA 特效插件把 Minecraft 的箭矢、弩箭烟花、末影珍珠逐段射线追踪穿过 GTA 世界Projectile结构按实体 id 跟踪见 script.cpp L40-L47然后烟花命中 → GTA 火箭爆炸箭命中行人或车 → GTA 子弹挥剑 → 行人 ragdoll、车辆被推开末影珍珠 → 移动 GTA 玩家。Tab 键可进入实验性枪模式让 GTA 的卡宾/加特林/RPG 显示在 Steve 手里再切回 Minecraft。Minecraft 侧Fabric 插件与消息协议Minecraft 侧是mc/下的 Fabric modJava 25Loom 构建核心类及职责组件职责HostLink.javaWebSocket server127.0.0.1:25599端口可用-Dpassthrough.port覆盖协议收发FrameExporter.java SharedMemory.java每帧导出世界 RGBA深度与覆盖层到共享内存PlayerSync / HostState把 GTA 相机姿态套到 Minecraft 相机上、记录每帧 poseWorldBridge.java屏障方块、方块同步、爆炸、投射物MobWar.javaMinecraft 怪物 ↔ GTA 行人的双向互战Nether.java下界传送门与周围地面改造WebSocket 消息协议HostLink.java 的 Javadoc 与onMessage的 switch 分支给出了完整协议值得完整列出HostGTA 插件→ MinecraftJSONMinecraft 坐标系{t:cam,f:帧号,p:[x,y,z],r:[yaw,pitch,roll],fov:垂直度,fp:第一人称,pl:[脚x,y,z],h:身体yaw}— 相机姿态{t:ground,c:[x,z,yBottom,yTop,...]}— 实心柱体屏障方块{t:clear}— 清除已放置的屏障{t:cmd,c:time set noon}— 服务器命令{t:key,k:use|attack|pick|inventory|drop|swap|escape,down:bool}— 按键{t:slot,n:0-8}、{t:scroll,d:±1}、{t:hud,hidden:bool}、{t:view,w:px,h:px}— 栏位、滚动、HUD、视口尺寸另有blocksync方块同步默认半径 48、projhit投射物命中点含 stick 标记、pedsGTA 行人列表、mobdmg怪物受伤、spawnmobs/mobsclear刷怪/清怪含数量、半径区间、朝向等参数、portal在指定点建传送门、netheroff/nethersync下界开关/重同步、glide鞘翅滑翔状态与速度。Minecraft → Host连接时的hello携带共享内存名与 pidexplosion位置半径。透传消息gta导演命令转发给 host 插件、gtastate等原样广播给其他客户端。共享内存帧布局逐字段的二进制契约这是整个项目信息密度最高的部分。FrameExporter.java 的 Javadoc 定义了Local\MCPassthroughFrame的完整布局小端header4096 字节 0 int magic MCPT 4 int 版本(1) 8 int header 字节数(4096) 12 int 槽位数(3) 16 long 槽 stride 24 int 最大宽 28 int 最大高 32 long 发布计数器 40 int 最新槽(-1: 尚无) 44 int Minecraft pid 256 128*i槽 i 的描述0 起 0 long seq写入中为奇数 8 long Minecraft 帧号 16 long host 帧号 24 int 宽 28 int 高 32 float near 36 float far 40 float 垂直 fov度 44 int flags: 1深度在[0,1]、2行自底向上、4反转Z(1近,0远/空) 48/56/64 double 相机 x/y/z 72 float yaw 76 pitch 80 roll 84 int 第一人称 88 long 采样时间(System.nanoTime) 96 long 发布时间 槽 i 数据在 4096 i*stride每层 width*height*4 字节 世界颜色 RGBA8预乘 alpha、世界深度 float32、覆盖层 RGBA8手持HUD预乘 alpha几个实现要点写入协议用 seq 奇偶做写栅栏publish()先把 seq 置奇数写入三层数据与描述字段VarHandle.fullFence()之后置偶数最后再更新 header 的最新槽与发布计数器。ReShade 侧的 compositor.cpp 读到奇数 seq 直接跳过拷贝中途若 seq 变化Minecraft 重写了该槽则放弃本帧等下一帧。异步 GPU 读回FrameExporter维护一个 3 个 GPU buffer 的 ringRING 3captureWorld在手持物绘制前拷贝世界颜色深度并清颜色后续的手、屏幕特效、GUI 自然形成覆盖层captureOverlay在帧末拷覆盖层GPU fence 通过后才发布最坏滞后一帧。超过 3840x2160 的窗口拒绝导出MAX_W/MAX_H。共享内存的创建用 FFM APISharedMemory.java 通过java.lang.foreign直接调kernel32!CreateFileMappingW/MapViewOfFile页面文件支撑、不落盘GTA 进程按名字只读打开。槽 stride 按最大分辨率预留3840*2160*4*3约 91 MB 级映射实际每帧只写当前分辨率的数据。怪物互战与下界Mobs vs 警察双方交换位置与命中peds/mobs/mobhit/mobdmg消息。GTA 侧为每个 Minecraft 怪物生成一个不可见的冻结影子行人MobDouble上限 48 个见 script.cpp L49-L72警察真的朝它开枪影子的掉血回传怪物Minecraft 侧为 GTA 行人生成不可见代理实体proxy供怪物索敌怪物命中回传为对真人行的伤害伤害换算系数在源码中为g_mobHitScale 12.0、g_mobDmgScale 0.125。导演 op 可搭一道警车路障把战斗圈在镜头里。下界走过点亮的传送门周围地面变成下界下界怪物涌出GTA 天空变红、时钟快进至午夜站在熔岩/火上的 GTA 行人与车辆会着火hot_tick/hell_tick见 script.cpp L1213、L1351。帧合成ReShade 插件与 MCPassthrough.fxcompositor.cpp上传帧并驱动重投影compositor.cpp 是 ReShade 插件与.asi同一模块核心逻辑open_mapping()L72-L103每 1 秒重试打开Local\MCPassthroughFrame校验 magic MCPT 后整段映射upload()L136-L192把最新已发布帧的三层数据update_texture_region到MCWORLD/MCDEPTH/MCOVERLAY三张纹理r8g8b8a8_unorm、r32_float、r8g8b8a8_unorm并解析出 Minecraft 渲染时的 near/far/flags 与完整相机 pose重投影矩阵camera_rotation按 Minecraft 的方式构造Ry(π−yaw)·Rx(−pitch)·Rz(roll)相机朝 −zwarp_matrix计算R_mcᵀ·R_host——把 GTA 相机空间的一条视线射线转到 Minecraft 相机空间WarpT则是 GTA 相机相对 Minecraft 相机位置的平移。这些矩阵作为WarpRow0/1/2、WarpT、WarpTanGTA/MC 的 tan(fov/2) 与 MC 的宽高比uniform 传给 shaderpose lag脚本读到的是 GTA 即将渲染下一帧的相机而屏幕上呈现的是上一帧渲染的画面。插件保留最近 4 个 GTA poseg_hostPoses[4]环形缓冲按g_poseLag由实测标定注释写明measure: 0 matches best而文档层面描述为 1 帧姿态滞后取用旧 pose 作为重投影目标L39-L43。MCPassthrough.fx四 pass 合成管线gta/shaders/MCPassthrough.fx 定义了 techniqueMCPassthrough的四个 passLightGTA 画面 1/4 尺寸mips作为环境光代理→Composite深度测试合成→BrightMinecraft 亮部提取1/4 尺寸mips供辉光→Final抖动、柔边、接触阴影、辉光、传送门扭曲、覆盖层置顶。深度测试PS_CompositeL137-L227两边深度都线性化为米GTA 用反转 Z见host_linear的HostReversedZ分支Minecraft 距离比 GTA 表面更近allow以内才可见allow DepthBias SlopeBias·|ddy(zh)|掠射角处深度变化快给额外偏置上限MaxBias。于是街灯柱能正确遮住 Minecraft 房子的一部分房子又能遮住后面的车。重投影是延迟补偿的关键开启Reproject时对每个 GTA 像素把该像素在当前 GTA 相机下的视线射线从近到远对数间隔走 24 步L153-L201每步用WarpRow/WarpT把点变换到 Minecraft 渲染时的相机空间采样 MC 深度第一个穿进 Minecraft 表面的点做 3 次定点迭代收敛后取色。这对应文档描述的先旋转、后完整 6-DoF 的光线步进重投影——strafe 和第三人称甩头不会让方块游动、也不会让 Steve 消失。PosePredictionuniform 允许在重投影前把 GTA 相机姿态外推若干帧。观感融合relight与PS_Final重光照把 Minecraft 颜色当 albedo用 GTA 画面模糊后的亮度做增益LightMatch、LightReference、用其色相做染色LightTint——夜街道会把方块整体调暗调冷调色匹配GTA 整幅画面的平均色作为 grade 乘到 Minecraft 上GradeMatch让红色的下界之夜橙色日落也影响 Minecraft高亮物火、熔岩、传送门被排除在 grade 之外雾感远处 Minecraft 指数衰减地融进周围 GTA 画面HazeStart/HazeDistance/HazeStrength后处理边缘柔化GTA 的抗锯齿没见过 Minecraft、接触阴影金色角螺旋采样 Minecraft 深度、Minecraft 亮部辉光BloomStrength/BloomThreshold、传送门紫色扭曲PortalWarp、爆炸抖动ShakeGTA 与 Minecraft 一起抖覆盖层手持物HUD 是屏幕空间PS_Final最后以预乘 alpha 置顶合成不受抖动与传送门扭曲影响。主要 uniform 的默认值可直接复制微调uniform默认作用DepthBias0.04 mMinecraft 可显示在 GTA 表面之后的最大距离方块贴地的余量SlopeBias/MaxBias0.0 / 3.0 m掠射角附加深度偏置及其上限HostDepthScale1.0GTA 线性化深度的标定乘子LightMatch/LightReference/LightTint/LightBlur0.8 / 0.42 / 0.55 / 3.2重光照强度、中性亮度基准、染色强度、光采样 mipGradeMatch0.55GTA 整画调色匹配强度HazeStart/HazeDistance/HazeStrength15 / 160 / 0.85远处融入 GTA 画面EdgeSoftness/ContactShadow/ContactRadius1.0 / 0.5 / 0.7 m边缘柔化 / 接触阴影BloomStrength/BloomThreshold0.55 / 0.62Minecraft 辉光Reproject/PosePredictiontrue / 0.0重投影开关与姿态外推帧数shader 文件变更会被插件按 1 秒粒度监视并热重载watch_effect_file调参不需要重启 GTA。关键 gotchaMcActive门控而非切换 technique文档陷阱 #6 在源码里有直接注释compositor.cpp L272-L275从 begin-effects 回调内部切换 technique 会崩溃 ReShade。因此 technique 常开由McActiveuniform 门控没有已上传的 Minecraft 帧时 GTA 原样通过。这是所有 ReShade 插件开发的通用教训。构建、安装与运行环境路径全部来自环境变量见 README.md 的变量表主要项变量默认用途PASSTHROUGH_WIN_DIRC:\dev\passthroughWindows 工作目录mc/gta 构建镜像、jdk25、pyenv、mcgame、takes、shots 等PASSTHROUGH_JDKwin dir\jdk25gradle.shPASSTHROUGH_MC_DIRwin dir\mcgameMinecraft 启动器 profile 的游戏目录GTA_DIRSteam app 271590 所在库gta/install.shRUNTIME/BUILDgta/third_party/runtime/win dir\gta\build运行时 DLL 与构建输出VCVARS最新版带 C 工具的 VSvswheregta/build.batPASSTHROUGH_PYwin dir\pyenv\Scripts\python.exe导演与 host 工具用的 Windows PythonUM_FFMPEG_WINum 的下载或 PATH 上的 ffmpegvideo/record.pyMC_CLIENT_JARLoom 缓存的客户端 jarvideo/titles.pyMinecraft 字体Minecraft 侧cd mc ./gradlew buildJDK 25产出mc/build/libs/passthrough-0.1.0.jar放入 passthrough profile 的mods/与 Fabric API 同目录。必须给这个 profile 独立的游戏目录——插件会修改选项关云、关视角摇摆、120 fps 上限、失焦继续运行并自动创建名为passthrough的虚空创造世界。MS Store 版的 Fabric installer 加 profile 会失败需手动编辑launcher_profiles.json先备份。GTA 侧从 WSLgta/fetch_deps.sh # 下载 ScriptHookV SDK ReShade 头文件到 gta/third_party/运行时 DLL 到 third_party/runtime/ gta/build.sh # 镜像 gta/ 到 Windows 并用 MSVC 构建 build\MCPassthrough.asi gta/install.sh # 把产物装进 GTA V 目录install.sh会写入ScriptHookV.dll、dinput8.dllASI loader、MCPassthrough.asi、args.txt-nobattleye -noBE与以ReShade64.asi形式存在的 ReShade并生成ReShade.ini/ReShadePreset.ini与reshade-shaders\Shaders\下的 shader 文件遇到非本项目的dinput8.dll/ReShade64.asi/args.txt会停下而非覆盖FORCE1可强制install.sh --remove精确卸载。运行顺序两步可互换插件会自动重连Steam 启动 GTA VBattlEye 关闭args.txt的-nobattleye或 Rockstar Launcher 开关手动进入故事模式落地页要点两次从 passthrough profile 启动 Minecraft它自己打开虚空创造世界GTA 里按F7开关 passthrough。连接成功时提示 Minecraft passthrough connected插件把 Minecraft 窗口调整到 GTA 的实际 backbuffer 尺寸上限 1080p 像素量kMaxMinecraftPixels 1920*1080并开始发送地面。GTA 内建议设置与 demo 一致窗口化 1920x1080、失焦暂停关闭、景深关闭、后期特效调低——景深和重特效只会模糊 GTA 的画面而模糊不了 Minecraft破坏合成效果。没有 GTA 时的测试这是该项目最值得借鉴的工程实践——大部分工作在游戏 125 GB 装完之前就完成了host/fakehost.pypython host\fakehost.py [秒数] [输出目录] [fp|tp]只连 Minecraft驱动相机绕测试方块飞行并给平地把导出帧合成到同一姿态渲染的合成场景棋盘格一根只有host侧有的红柱上PNG 输出直接检验对齐与遮挡gta/tests/fakegta.cpp除 GTA 原生函数外完整的GTA 半区——D3D11 窗口、反转 Z 深度缓冲、GTA 相机约定内置合成器与 WebSocket 客户端gta/build.sh tests构建tests\fakegta.exe普通程序能加载同目录的dxgi.dll版 ReShadeGTA 不行配好ReShade.ini/ReShadePreset.ini/三个 shader 后fakegta.exe [秒数] 1可快速甩镜看延迟python video\director.py shoot video\fake_steps.json可像真实插件一样驱动它的替身玩家gta/tests/ws_test.cpp对运行中的 mod 做 WebSocket 握手、60 Hz 相机、地面柱、TNT 命令与爆炸事件回传的回归测试host/tnt_test.py、host/place_test.py是 Python 版同类检查host/mcframe.py读共享内存、host/cmd.py执行 Minecraft 命令如python host\cmd.py give a minecraft:obsidian 64。验证方法文档 Verification 一节的验证层次值得保留装 GTA 之前fakehost.py验证对齐Minecraft 方块落在已知几何体上fakegta.cpp用合成反转 Z 深度缓冲跑真实合成器与 shader带快速甩镜模式与 host 侧绘制的方块描边相机同步在真机里搭了金墙仅 Minecraft对天际线仅 GTA的测量场景逐帧量两者偏移正是这个场景找到了 1 帧姿态提前量并验证了修复真机所有功能都在故事模式里用导演脚本镜头检查、录像、逐帧复查。导演与视频管线可重复的视频 take由 JSON 镜头列表 video/director.py 驱动用 Windows Python因为链路在 Windows 的 127.0.0.1 上{t:gta,op:...}op 经 mod 透传给 GTA 插件执行teleport、walk、face、view、look、time、weather、ped可带场景或循环动画、car、explode、drive/armdrive飞行、flylook、cops/mobfit怪物 vs 警察、police警星等级、pose-lag 标定等op 总表见 script.cpp 的 handle_directorL1467 起Minecraft 输入栏位、点击与命令走 mod 直发镜头列表即仓库内现成 JSONvideo/elytra_cfg.json、video/mobwar_cfg.json、video/nether_cfg.json 与 fakegta 干跑配置坐标用 GTA 坐标系或相对原点朝向单 op 调试director.py op op {json}侦察截图director.py scout [x y z]TakeWSL 下python3 video/take.py 名字 video/mobwar_cfg.json录 GTA 窗口游戏内音频音频经仓库um/ps1/ProcLoopback分别从 GTA 与 Minecraft 两个进程取输出win dir\takes\名字.*附事件日志Cutvideo/cut.py与video/cut_segments.py把 take 剪成 1080p 并加 Minecraft 字体的一行标题字体 sheet 属 Mojangtitles.py从你自己的 Minecraft jar 读取辅助video/go.py等 GTA 与链路、装 save 并备份旧 save、侦察、video/backup_rec.py录到出现 STOP 文件、video/mobwar_live.py边玩边持续刷怪与来警察录制需要带 gfxcapture 的 Windows ffmpegum win setup会下载。陷阱全集21 个真实踩坑与修复知识条目最有价值的是 Gotchas 一节这里完整继承含原因与修法帧与渲染层深度读回后颜色读回全是垃圾Minecraft 26.3GL 后端的深度copyTextureToBuffer把读 FBO 的 read buffer 设为GL_NONE且从不恢复用 GL command encoder 上的 mixin 在拷贝后恢复 read buffer。HUD 被压扁、角度歪斜Minecraft 窗口跟随了 32:9 显示器帧被塞进 GTA 的 16:9修法是把 Minecraft 窗口设成 GTA 的真实 backbuffer 尺寸且调整前先还原取消最大化。方块比 GTA 画面快 1 帧爆炸抖动停不掉脚本读的是 GTA 准备渲染那帧的相机而非屏上画面GTA 的爆炸 shake 不被IS_GAMEPLAY_CAM_SHAKING报告STOP_GAMEPLAY_CAM_SHAKING无法取消它修法是在合成器里对上一帧 pose 重投影pose-lag用金墙场景量化验证。切效果先闪一下再崩溃不能在 begin-effects 回调内切换 technique用McActiveuniform 门控。最后 Minecraft 帧残留在 GTA 地图上GTA 暂停菜单会停掉 ScriptHookV 脚本无人清覆盖层当前解法是后期剪掉真正的修法脚本外检测暂停并清 overlay尚未实现。Minecraft 实体/网络层入场的 setup 命令a匹配不到人Fabric 的ServerPlayConnectionEvents.JOIN在玩家进玩家列表之前触发延迟 10 tick 再执行。代理实体变可见Minecraft 26.3 会在实体首次网络同步时重置 Invisible 标记除非它有特效给 proxy 一个隐藏且无限期的 INVISIBILITY 特效。怪物不理代理实体无敌实体永远不能被索敌且索敌目标测试隐身与视线让 proxy 保持可受伤、用hurtServermixin 取消其伤害索敌目标去掉隐身/视线测试。鞘翅滑翔被取消俯冲实为自由落体noPhysics下 Minecraft 的onGround不更新、可能粘在 true服务端因此取消每次滑翔飞行模式强制setOnGround(false)。Steve 的脸占满全屏GTA 靠墙时会把相机往内拉使 Minecraft 相机钻进了 Steve 的头里相机太近时隐藏 Steve。重启后 Steve 滑翔进虚空上次飞行中关闭了 Minecraft入场时剥掉鞘翅死亡用keep_inventory自动重生。怪物刷怪孵化爬行者或用spawnmobs刷波次。GTA 行为层追拍相机抖计时用了GetTickCount16 ms 步进或 Windows 上 Python 的sleep一切计时改用 Minecraft 的System.nanoTime与QueryPerformanceCounter同一时钟。影子的冻结替身行人仍挨警察的枪SetEntityVisible(false)不等于免疫伤害把不可见替身挪出火力线。Maze Bank 楼顶走下沿是滑而不是掉塔侧是斜玻璃用 Space 起飞。GTA 的电影感闲置相机会在 take 中途切入约 30 秒无输入后启动每帧调用INVALIDATE_IDLE_CAM。工具链/安装层fabric-installer -launcher microsoft_store失败launcher_profiles_microsoft_store.json不存在手动往launcher_profiles.json加 profile先备份并给它独立gameDir。脚本下载 ScriptHookV 失败dev-c.com 拒绝无浏览器头的客户端发浏览器 User-Agent/Acceptfetch_deps.sh已处理。ReShade 代理 DLL 在 GTA 里永不加载GTA 会先于同目录代理加载系统dxgi.dll改用 ASI loader 加载 ReShade。故事模式要点两次落地页第一次点击只是高亮。安全红线不要在人碰键盘时自动点击 GTA 落地页开发期一次事故——Agent 的点击脚本在用户于其他应用打字时聚焦并点击了 GTA按键落在 GTA 落地页上弹出ALERT: attempting to access GTA Online servers with an altered version。ScriptHookV 挡住了、会话未开始但对账号是险招。规则仅在确认人类离开时自动点击um win drive --proc GTA5 idle检查否则请人工点 Story Mode并始终关 BattlEye 使 Online 根本无法启动。安全边界与未决问题只做故事模式绝不碰 GTA OnlineBattlEye 保护 Online本方案全程 BattlEye 关闭这也使 Online 无法启动ScriptHookV 在试图上线时会直接关游戏。网络面链路只监听127.0.0.1:25599且无 token同机任何程序都能发命令——用完记得关 Minecraft。游戏目录install.sh打印其添加清单、不替换他人 mod 的 loader 或 ReShade、--remove完整卸载go.py save替换存档前先.bak脚本按精确 PID 而非名称模式杀 GTA。资产没有生成任何 AI 资产Steve 用经典皮肤host 连接期间demo 标题用 Minecraft 字体视频走仓库的 director/recorder 管线与um video。成本约两天 Agent 会话Claude Code, Opus 5.5加一人负责点击与导演fake host 与 fake GTA 让大部分工作在游戏装完前完成。未决Enhanced 版DX12需要另一条 ReShade/合成器路径Minecraft 多人理论上可行只是又一个客户端但未测若让 Minecraft 渲染在预测姿态上重投影就只是后备手段。参考路径路径内容knowledge/games/gta-v/minecraft-passthrough.md本文对应的仓库知识条目结论、陷阱全集examples/minecraft-gta5-passthrough/README.md完整构建/安装/运行/变量/控制键说明gta/src/script.cppScriptHookV 脚本相机、地面、输入、爆炸、导演、飞行、怪物战、下界gta/src/compositor.cppReShade 插件帧上传、warp 矩阵、pose laggta/shaders/MCPassthrough.fx深度测试、重投影、重光照、雾、辉光、覆盖层mc/.../client/HostLink.javaWebSocket 协议定义与分发mc/.../client/FrameExporter.java共享内存布局与异步读回host/fakehost.py、gta/tests/fakegta.cpp无 GTA 的对齐/合成测试video/director.py导演 op 与镜头列表驱动赞分享【免费下载链接】universal-modderPoint Claude at any game. Skills, tools and the fal MCP that let Claude Code mod almost any PC game you own: recon, reverse engineering, fal-generated art/3D/audio, in-game testing, showcase videos.项目地址https://gitcode.com/gh_mirrors/un/universal-modder点击查看免费下载相关推荐Sliver 项目中的 System V 共享内存深入解析 gen2brain/shm 纯 Go 实现Sliver 项目中的 System V 共享内存深入解析 gen2brain/shm 纯 Go 实现 shm 是一个以纯 Go 实现 System V 共享网络安全unenv夜版尝鲜抢先体验Node.js兼容性的最新特性与改进unenv夜版尝鲜抢先体验Node.js兼容性的最新特性与改进 想要在浏览器、边缘计算环境中无缝运行Node.js应用吗unenv夜版为您带来了革命性的NoSway 合约如何用 CEI 模式防范重入攻击Sway 合约如何用 CEI 模式防范重入攻击 Sway 合约在调用外部合约时存在被重入的风险合约 A 调用合约 B 后B 又回调 A从而在状态尚未更新网络安全上一篇WinUI 3Microsoft.UI.Xaml动画体系全解析从 Storyboard 到 Composition 动画的完整技术脉络下一篇Foundry Forge Lint 深度解析用 ecrecover 规则防御 ECDSA 签名可延展性攻击创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考