资讯动态

input-overlay 预设实战:GameSir G7 Pro 手柄输入叠加层(Overlay)配置指南与源码解析

发布时间:2026/10/15 2:16:28 来源:尧图企业网站定制
直播音视频【免费下载链接】input-overlayShow keyboard, gamepad and mouse input on stream项目地址https://gitcode.com/gh_mirrors/in/input-overlay点击查看免费下载导读本文围绕开源 OBS 插件 input-overlay 仓库中的 GameSir G7 Pro 官方预设presets/gamesir-g7-pro/README.md展开系统讲解如何在 OBS 中为 GameSir G7 Pro 手柄配置键盘、手柄与鼠标输入可视化叠加层覆盖五种官方配色、三种十字键D-pad纹理的选配逻辑、统一 JSON 配置文件的字段含义并结合仓库源码element_button.cpp、element_analog_stick.cpp、element_trigger.cpp 等解释按钮点亮、摇杆位移、扳机填充等动态效果的底层渲染原理。读完本文你可以独立完成该预设的安装配置、纹理切换与参数调优并理解 input-overlay 手柄 overlay 的工作原理。预设概览一套布局五种配色三种十字键GameSir G7 Pro 是采用 Xbox 布局的第三方手柄。本预设由社区创作者 Mobrin借助 Claude AI制作是一个非官方粉丝自制 overlay与 GameSir 或微软无任何隶属或背书关系见 CREDITS.md。该预设的核心设计理念是覆盖手柄的五种标准配色Shadow Ember红黑、Mech White、Amber Flame橙、Plum Purple、Metallic Silver每种配色都提供控制器随附的三种十字键样式圆盘四圆点、圆盘凸起十字、传统十字键所有纹理共用同一个布局配置——全系列仅有一个配置文件gamesir-g7-pro.json位于 presets/gamesir-g7-pro/gamesir-g7-pro.json。这意味着无论你选择哪个颜色、哪种十字键OBS 源中加载的 JSON 配置都不变只需切换纹理图片即可完成外观更换配置零改动。在 OBS 中安装与配置4 步上手安装前提是已经安装 input-overlay 插件插件注册的 OBS 源类型为input-overlay见 src/sources/input_source.cpp。随后按以下步骤操作在 OBS 中添加Input Overlay源来源 → 添加 → Input Overlay。Overlay image file叠加图片文件根据你的手柄配色与十字键样式从下方纹理表选择对应的 PNG 文件示例gamesir-g7-pro-shadow-ember-cross.png。Overlay config file叠加配置文件选择仓库中的gamesir-g7-pro.json即 presets/gamesir-g7-pro/gamesir-g7-pro.json。点击Reload gamepads重新加载手柄并在Gamepad id手柄 ID下拉框中选中当前连接的手柄。配置完成后如果之后想更换配色或十字键只需在图片文件一项换一张纹理配置文件保持不变。属性面板背后源码中的联动逻辑以上操作步骤与插件源码的 OBS 属性面板实现一一对应。在 src/sources/input_source.cpp 的get_properties_for_overlay中纹理与配置文件分别通过S_OVERLAY_FILE和S_LAYOUT_FILE两个路径属性选择并注册了file_changed回调当两者任一变化时重新加载纹理或布局input_source.cpp手柄 ID 下拉框S_CONTROLLER_ID与Reload pads按钮S_RELOAD_PAD_DEVICES的可见性由配置文件的flags字段控制。当 flags 包含手柄/摇杆相关标志时插件才会显示手柄选择与死区调节选项加载配置文件后file_changed会自动调用reload_pads刷新手柄列表input_source.cpp这正是“点击 Reload gamepads 并选择手柄”背后的机制。纹理选择表命名规则与 15 种组合纹理文件的命名模式为gamesir-g7-pro-colour-d-pad.png配色5 种配色colourShadow Ember红黑shadow-emberMech Whitemech-whiteAmber Flame橙色amber-flamePlum Purpleplum-purpleMetallic Silvermetallic-silver十字键样式3 种十字键d-pad圆盘 四圆点出厂预装disc圆盘 凸起十字随附disc-cross传统十字键随附cross因此共5 × 3 15 个纹理文件均位于 presets/gamesir-g7-pro/ 目录。例如Shadow Ember 传统十字键 →gamesir-g7-pro-shadow-ember-cross.pngMech White 圆盘四圆点 →gamesir-g7-pro-mech-white-disc.pngPlum Purple 圆盘凸起十字 →gamesir-g7-pro-plum-purple-disc-cross.png统一配置文件深度解析虽然 README 只要求你直接选择 gamesir-g7-pro.json但理解其字段有助于后续自定义布局。该文件定义了一个1280 × 960 画布overlay_width/overlay_height内部通过elements数组描述每一个可动部件。顶层字段字段值含义overlay_width/overlay_height1280 / 960overlay 画布尺寸像素default_width/default_height0源在场景中的默认尺寸0 表示跟随画布flags6布局标志位决定 OBS 属性面板显示哪些选项见下文space_h/space_v0元素之间的水平/垂直间距其中flags对应 deps/common/layout_constants.h 中的overlay_flag枚举OF_LEFT_STICK 1、OF_RIGHT_STICK 2、OF_GAMEPAD 4、OF_MOUSE 8。本文件取值为6即OF_RIGHT_STICK | OF_GAMEPAD因此属性面板会显示手柄 ID 选择、Reload pads 按钮以及摇杆死区S_CONTROLLER_L_DEAD_ZONE/S_CONTROLLER_R_DEAD_ZONE等选项而鼠标相关选项被隐藏可见性判断见 input_source.cpp。元素elements通用字段每个元素对象包含id元素名称如a、b、dpad_up、left_analog_sticktype元素类型对应 layout_constants.h 中的element_type枚举——0为静态纹理ET_TEXTURE、2为手柄按键ET_GAMEPAD_BUTTON、5为摇杆ET_ANALOG_STICK、6为扳机ET_TRIGGERmapping[x, y, cx, cy]纹理图集中该元素的裁剪区域未按下状态pos[x, y]该元素在 1280×960 画布上的绘制位置z_level绘制层级数值大者绘制在上层类型专属字段按键的codeSDL 手柄按键码、摇杆的side与stick_radius、扳机的side/direction/trigger_mode。这些字段的解析逻辑集中在 src/util/element/element.cppread_mapping读取裁剪矩形、read_pos读取位置以及各元素子类的load()中。本预设的元素清单idtype关键字段对应功能body0mapping 覆盖整图手柄本体静态底图a/b/x/y2code 0/1/2/3主按键点亮view/guide/menu2code 4/5/6View、Guide、Menu 点亮lb/rb2code 9/10肩键点亮dpad_up/down/left/right2code 11/12/13/14十字键四个方向各自独立点亮lt/rt6side 0/1direction 1扳机从底部向上填充left_analog_stick/right_analog_stick5side 0/1stick_radius 38摇杆位移与 L3/R3 按压高亮code字段对应 SDL3 的手柄按键枚举与 Xbox/XInput 布局一致SOUTH0A、EAST1B、WEST2X、NORTH3Y、BACK4、GUIDE5、START6、LEFT_SHOULDER9、RIGHT_SHOULDER10、DPAD_UP11、DPAD_DOWN12、DPAD_LEFT13、DPAD_RIGHT14。功能特性与底层渲染原理README 声明的四项核心特性在源码中都有对应的实现路径1. 按键按下时点亮A/B/X/Y、LB/RB、View、Menu、Guide 在按下时点亮。每个按键元素在纹理图集中定义了两个相邻的裁剪区未按下区m_mapping与按下区m_pressed按下区位于未按下区下方 3 像素处m_pressed.y m_mapping.y m_mapping.cy CFG_INNER_BORDER其中CFG_INNER_BORDER 3见 layout_constants.h。绘制时element_gamepad_button::draw 通过settings-is_pad_button_pressed(m_keycode)查询手柄按键状态input_source.hpp 中按gamepad_name索引按键位图按下时裁剪按下区纹理否则裁剪未按下区。2. 十字键四方向独立点亮与许多使用单一ET_DPAD_STICK元素的预设不同本预设将十字键拆分为4 个独立的手柄按键元素code 11–14每个方向对应一个独立的纹理裁剪区圆盘十字键上点亮的是对应方向的扇区传统十字键上点亮的是对应方向的按键臂。这样“方向独立点亮”的效果无需方向组合判断即可实现也使得纹理图集中每个方向的按下区可以单独绘制。3. 摇杆移动与 L3/R3 按压高亮element_analog_stick.cpp 的draw()展示了摇杆位移公式pos.x pad_axis(SDL_GAMEPAD_AXIS_LEFTX) * stick_radius pos.y pad_axis(SDL_GAMEPAD_AXIS_LEFTY) * stick_radius即摇杆帽的绘制位置 基准位置 归一化轴值-1.0 ~ 1.0× 半径本预设stick_radius 38像素。同时通过SDL_GAMEPAD_BUTTON_LEFT_STICK / RIGHT_STICK检测按压状态按下时切换到高亮裁剪区element_analog_stick.cpp。4. 扳机从底部向上填充element_trigger.cpp 读取SDL_GAMEPAD_AXIS_LEFT_TRIGGER / RIGHT_TRIGGER轴值得到 0~1 的progress在非按钮模式下调用calculate_mapping按比例裁剪纹理高度direction 1即DIR_UP见 layout_constants.h时pressed-cy mapping.cy * progress同时将裁剪区下边界固定、绘制位置上移视觉上即为“从底部向上填充”element_trigger.cpp先绘制未按下底纹再叠加按比例裁剪的填充层实现平滑的模拟量渐变效果element_trigger.cpp。side字段0 左、1 右见 layout_constants.h用于区分左右扳机与左右摇杆摇杆与扳机的轴/按键常量在 deps/common/keycodes.h 中也有VC_STICK_DATA、VC_TRIGGER_DATA、VC_DPAD_DATA等虚拟码定义用于区分输入数据类型。注意事项与常见问题手柄被识别为普通 XboxXInput手柄README 明确说明GameSir G7 Pro 在系统中被识别为标准的 XboxXInput手柄。因此插件侧无需任何手柄专用驱动或特殊配置走的是通用手柄钩子enable_gamepad_hook见 src/util/config.hpp与 SDL3 手柄层所有标准按键、摇杆、扳机、十字键均按 Xbox 布局映射overlay 的code字段即可直接对应。额外按键是装饰性的手柄背部的 L4/R4、迷你肩键 L5/R5以及 M 键、Share 键不会作为独立输入发送到 WindowsXInput 协议不传输这些扩展按钮因此它们在 overlay 中仅起到装饰作用。需要注意背键L4/R4按下时会表现为其所映射到的那个标准按键例如映射到 A/B则 overlay 上亮起的是 A/B如果你希望 overlay 上显示这些按键的独立反馈仅靠本预设无法实现——这是输入协议层面的限制而非配置问题。纹理更换不破坏布局由于 15 张纹理共用同一套裁剪坐标任意切换配色或十字键图片都不会引起布局错位前提是保持图片与配置文件的配对关系即始终使用本预设目录下的纹理与 gamesir-g7-pro.json。延伸阅读预设说明原文presets/gamesir-g7-pro/README.md统一配置文件presets/gamesir-g7-pro/gamesir-g7-pro.json元素类型与标志位定义deps/common/layout_constants.h手柄按键/摇杆/扳机绘制实现src/util/element/element_button.cpp、src/util/element/element_analog_stick.cpp、src/util/element/element_trigger.cpp、src/util/element/element_dpad.cppOBS 源属性与手柄选择逻辑src/sources/input_source.cpp仓库内其他手柄预设如 Xbox、DualSense、Switch Pro、GameCube 等位于 presets/ 目录可参考其 README 与 JSON 学习不同布局的组织方式。赞分享直播音视频【免费下载链接】input-overlayShow keyboard, gamepad and mouse input on stream项目地址https://gitcode.com/gh_mirrors/in/input-overlay点击查看免费下载相关推荐直播输入可视化新方案input-overlay专业配置与实战指南直播输入可视化新方案input overlay专业配置与实战指南 input overlay是一款功能强大的开源工具能够在直播画面中实时显示键盘、鼠标和游戏直播音视频Automatic_ticket_purchasePython 大麦抢票脚本自动完成登录、票源监控与下单Automatic_ticket_purchasePython 大麦抢票脚本自动完成登录、票源监控与下单 热门演出开票时手动点击常常败给页面加载与人工填写网页爬虫工作流自动化Input Overlay终极指南如何实时显示键盘、游戏手柄和鼠标输入Input Overlay终极指南如何实时显示键盘、游戏手柄和鼠标输入 Input Overlay是一款功能强大的开源工具专门为直播主、内容创作者和游戏玩家直播音视频上一篇告别配置噩梦用Kustomize定制你的Kubeflow AI平台部署下一篇Deskreen免费教程如何将手机平板变成电脑第二屏幕提升工作效率创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑