Skip to content

chao-eng/AutoController

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

124 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 AutoController

基于 Tauri 2.0 + Vue 3 + ViGEmBus 的专业级游戏手柄模拟与自动化挂机工具


📝 项目概述

AutoController 是一款专为 Windows 平台打造的高性能、专业级虚拟手柄挂机与自动化工具。它基于 Tauri 2.0 框架,结合 Vue 3 (TypeScript) 现代化前端与 Rust 异步后端,底层通过 ViGEmBus 内核驱动实现高精度、低延迟的硬件级 Xbox 360 手柄信号模拟。无论是长时间挂机的核心玩家,还是需要进行批量自动化测试的开发人员,AutoController 都能提供直观、强悍的解决方案。

ℹ️ 提示:关于当前版本(v0.7.3)的详细功能更新,请查看 最新更新日志


✨ 核心特性

  • 🎮 专业级手柄模拟系统
    • 底层集成 ViGEmBus 驱动,支持 Xbox 360 虚拟手柄模拟。
    • 超低延迟(<5ms)和高精度(100Hz+)输入模拟,保障极速响应。
    • 最多支持 8 个虚拟手柄 独立并发运行,并支持运行时热插拔管理。
    • 直观的可视化仪表盘,提供摇杆拖拽互动可视化及扳机键动态进度条。
  • 🧩 全局新版 UI 骨架(v0.7.0 新增)
    • 新增统一页面骨架、标题区、状态提示与空状态组件,让设备监控、宏控制、脚本编辑器、任务调度、配置、通知、防失焦和日志查看等页面保持一致的交互结构。
    • 补齐信息、成功、警告、危险等语义化状态样式,并统一按钮图标、工具栏、折叠侧栏与提示反馈的视觉节奏。
  • 🏎️ Forza 实时遥测分析(v0.7.0 新增)
    • 新增 Forza 遥测独立页面,支持接收游戏 Data Out UDP 数据并展示实时速度、转速、挡位、圈速、姿态、G 值、输入与轮胎状态。
    • 支持自动记录历史会话、圈速统计、数据回放、收藏/重命名/删除会话,以及速度、转速和驾驶输入曲线分析。
  • ⏱️ 高精度宏录制与回放
    • 一键捕获所有手柄动作事件,记录毫秒级时间戳。
    • 回放支持 50% ~ 200% 的速度缩放 调节,满足各种特定节奏需求。
    • 支持无限次循环播放与断点续播,可在暂停后精准恢复。
  • 📜 Rhai 脚本引擎
    • 内置轻量级沙箱化 Rhai 脚本运行时,语法简洁,适合编写稳定可控的本地自动化脚本。
    • 提供完备的脚本 API 绑定:手柄动作(按下/释放/移动摇杆/按压扳机)、高精度延时等待(sleep)、OCR 识别及日志记录。
    • 集成 Monaco Editor 智能编辑器,支持 Rhai 语法高亮、自定义 API 自动补全和悬浮说明。
  • 📅 智能任务调度器
    • 支持单次执行、每日定时、周期循环及标准 Cron 表达式等多种调度方式。
    • 配备高优先级任务抢占机制与冲突解决队列,保障任务有序执行。
  • 🛡️ 系统集成与性能调优
    • 支持系统托盘最小化运行、托盘气泡通知及运行状态托盘指示器。
    • 智能进程监控:自动识别目标游戏启动与退出状态。
    • 智能资源调度:游戏运行时自动开启高性能模式,空闲时降低采样率以实现超低功耗(CPU < 5%,内存 < 100MB)。
  • ⚙️ 配置文件 & 级联日志
    • 采用 TOML 格式存储应用配置,按游戏独立保存 Profile。
    • 基于 Rust tracing 库实现的异步级联日志系统,支持日志轮转,并可一键导出为 JSON / CSV 格式。
  • 🔍 Rust 原生绑定 PaddleOCR 离线引擎 (免部署 🌟)
    • 零外部依赖 (app/src-tauri/src/ocr):全面重构 OCR 底层架构,将 PaddleOCR 核心识别引擎通过 Rust 底层原生绑定 直接无缝嵌入主程序,不再需要在外部单独部署任何 Python 环境、EXE 独立服务或 Docker 容器。
    • 内存级超低延迟:截图数据直接在内存中完成像素流传递与 OCR 解析,免去磁盘 I/O 与复杂的网络序列化开销,为高频画面状态检测提供毫秒级响应。
    • 完备双本地引擎:支持切换 内置 PaddleOCR 离线引擎与 Windows 原生 (WinRT OCR) 引擎,满足不同场景下的纯离线文字识别需求。
    • 多区域标定与脚本 API:支持在 UI 界面多区域框选标定,脚本中通过 ocr()ocr(序号)ocr(x,y,w,h) 灵活读取。
    • 自适应高保真增强:短边小于 600px 时自动采用 GDI HALFTONE 差值算法智能高清晰度放大,保障极高字亲和性与识别率。
  • 🔔 多通道智能消息通知系统
    • 深度集成 飞书 Webhook (Feishu)Server酱 (ServerChan)Server酱三代 (ServerChan3)Telegram Bot 消息通道。
    • 支持脚本运行成功、出错、结束时以及自定义节点进行自动化远程消息推送,挂机动态了如指掌。
  • 👁️ 防止游戏/窗口失去焦点 (No Focus Loss)
    • 底层基于跨进程 DLL 注入与 Hook 技术拦截窗口失活消息,解决切屏/后台挂机时游戏自动暂停、静音或降帧(FPS)问题。
    • 物理隔离高安全注入:将注入核心操作全部剥离至独立子进程 injector.exe 执行,彻底隔离敏感跨进程 Win32 API,规避主程序查杀报毒与崩溃。
    • 管理员权限原生检测:前端实时检测系统特权状态并以显著色块进行提示,针对高权限游戏实现完美的一键式注入及无痕“安全卸载”剥离。
    • 极致单行折叠式交互:免责声明与权限提示支持极简一键折叠,绝不占用多余的视觉操作空间。
    • (本项目中防止失去焦点技术实现参考自优秀开源项目 NoFocusLoss

🛠️ 技术栈

层级 选用技术 用途说明
桌面框架 Tauri 2.0 (Rust) 提供底层的 IPC 通信、托盘集成、文件系统访问与系统服务
前端 UI Vue 3 + TypeScript 响应式界面开发,提供模块化的高自由度用户体验
状态管理 Pinia 2.x 全局共享设备状态、宏与脚本运行状态
样式/组件 Vanilla CSS + Lucide Icons 自定义精美工业风 (Vibrant & Block-based) 主题,配合 Lucide 图标
脚本运行时 Rhai (Rust 原生脚本引擎) 轻量沙箱环境,执行用户编写的手柄自动化脚本
OCR 引擎 PaddleOCR (Rust 原生绑定) 主程序内置的离线高性能文本识别引擎,免外部部署
遥测模块 Forza Data Out + UDP + SQLite 接收、展示、记录并回放 Forza 遥测数据
内核模拟 ViGEmBus Driver (1.17+) 核心虚拟手柄硬件级信号生成驱动

📂 目录结构

本项目的核心前端与后端均位于 app/ 目录下:

AutoController/
├── app/                           # 应用程序核心
│   ├── src-tauri/                 # Rust 后端 (Tauri 2.0 框架)
│   │   ├── Cargo.toml             # 后端 Rust 依赖配置
│   │   └── src/
│   │       ├── controller/        # 手柄模拟与 ViGEmBus 通信
│   │       ├── macro_engine/      # 宏录制与回放引擎
│   │       ├── script_engine/     # Rhai 引擎与 API 绑定
│   │       ├── fh6_telemetry/     # Forza 遥测接收、解析与历史会话存储
│   │       ├── scheduler/         # 任务调度与 Cron 解析
│   │       └── system/            # 托盘与进程监控集成
│   └── src/                       # Vue 3 前端 (TypeScript)
│       ├── views/                 # 页面视图 (设备监控、编辑器、调度器等)
│       ├── components/            # 通用及模块专用组件 (摇杆/扳机/遥测可视化)
│       └── stores/                # Pinia 状态管理仓库
├── design-system/                 # 系统 UI 视觉规范设计文档
├── docs/                          # 设计及任务计划文档
└── assets/                        # 静态资源与应用图标

🚀 使用说明

1. 下载安装

  • 前往本项目的 GitHub Releases 页面 下载最新版本的 Windows 安装包(如 .msi 或打包好的独立 .exe 执行文件)。
  • 按照向导完成软件安装。程序已内置集成了所需的 ViGEmBus 内核驱动离线 PaddleOCR 模型,安装过程中会自动处理,无任何外部依赖,解压/安装即用

2. 运行与配置

  • 普通模式:双击启动桌面的 AutoController 即可开始使用设备模拟、录制宏、编写 Rhai 脚本以及调用全内置的离线 OCR 功能。
  • 管理员模式 (推荐 🛡️):如果您挂机的游戏具有高权限或需要使用 防止窗口失去焦点 (No Focus Loss) 注入技术,请在桌面上右键选择 “以管理员身份运行” 启动本程序。
  • Forza 遥测:进入 Forza 遥测 页面后,在游戏中开启 Data Out,并将 UDP 目标指向运行本程序的电脑,即可查看实时仪表盘、记录历史会话和回放遥测数据。

About

AutoController - 专业级游戏手柄模拟挂机工具

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors