Skip to content

AxeroYF/FH6-datapad

Repository files navigation

Horizon Timer Attack by Krami V0.1

FH6 Data Pad 是一个面向《极限竞速:地平线 6》的 Windows 副屏遥测与圈速复盘工具。
程序通过 FH6 Data Out 的 UDP 数据实时显示车辆状态,并可手动记录圈速、走线和驾驶输入,用于多圈对比与赛后复盘。

功能

实时遥测

  • 车速、发动机转速、挡位和换挡提示
  • 油门、刹车、转向和横向/纵向 G 值
  • 四轮温度、抓地状态及车辆姿态
  • 当前车辆名称、等级、PI 和驱动形式
  • 自动检测 FH6 遥测连接状态
  • 可折叠侧边栏,适合放在副屏持续显示

圈速记录与轨迹分析

  • 点击按钮或按全局快捷键 F8 开始/结束记录
  • 按圈保存世界坐标、圈速和车辆遥测采样点
  • 历史记录支持单条删除,并在删除前进行二次确认
  • 单圈、全部圈以及任意多圈叠加对比
  • 低速显示为红色,高速显示为绿色,起点和终点为蓝色
  • 鼠标滚轮缩放,按住鼠标左键拖动画布
  • 悬浮轨迹查看最近采样点的速度、挡位、RPM、油门和刹车
  • 左下角显示所选圈的单圈时间

圈速同步回放

  • 选择任意已记录圈进行模拟回放
  • 支持将任意多个已选圈同时回放,用不同颜色的车辆圆点直观比较位置和速度
  • 支持播放、暂停和进度定位
  • 使用圆点模拟车辆在轨迹中的位置
  • 模式 1 保持完整轨迹回放;模式 2 会随车辆移动逐渐绘制走线,完成后保留完整轨迹
  • 可打开速度、挡位、转速、油门、刹车和纵向 G 六张时间曲线,回放游标会同步沿曲线移动
  • 六张遥测图均支持点击放大查看
  • 跟随车辆的信息卡显示时间、速度、挡位、RPM、油门、刹车和纵向 G
  • 信息卡可单独关闭
  • 回放速度可在 0.5×2.0× 之间连续调节

游戏悬浮地图

  • 点击标题栏“悬浮地图”或按全局快捷键 F10 开关独立的透明置顶窗口
  • 自动根据实时世界坐标匹配已经扫描并保存的赛道
  • 使用白色赛道线和车辆圆点显示实时位置;正常驾驶为黄色,圈速记录期间变为红色
  • 根据主屏幕分辨率等比例缩放,在 2560×1440 下约为 540×315

赛道扫描

  • 侧边栏提供独立的“赛道扫描”页面
  • 输入名称后,分别采集左边界和右边界
  • 使用全局快捷键 F9 开始/结束当前边界采集
  • 自动进行闭环重采样、方向校正、边界配对和平滑
  • 生成半透明赛道路面、左右边界、中心线及宽度统计
  • 扫描结果按名称保存,可在圈速分析页选择并叠加到历史走线上

地图管理与计时线

  • 侧边栏“地图管理”以缩略图浏览所有已扫描地图
  • 点击缩略图查看完整赛道路面、边界和宽度信息
  • 手动编辑模式会将计时点吸附到左右边界
  • 依次点击两侧边界即可生成一条计时线
  • 支持添加多条计时线、撤销、删除、取消和保存
  • 地图编辑模式支持鼠标滚轮缩放和鼠标中键拖动画面
  • 计时线直接保存在对应赛道 JSON 中,也会显示在圈速分析叠加层上

系统要求

  • Windows 10/11 64 位
  • Microsoft Edge WebView2 Runtime
  • 支持 Data Out 的 FH6
  • 建议使用第二块显示器

发布目录使用自包含的 .NET 运行时,通常不需要另外安装 .NET。

FH6 遥测设置

在游戏的遥测/Data Out 设置中填写:

设置
数据输出 开启
数据输出 IP 地址 127.0.0.1
数据输出 IP 端口 20440

随后启动 HorizonData.exe。程序收到有效数据包后,标题栏会显示 FH6 已连接。

使用方法

  1. 启动 FH6,并完成上面的 Data Out 设置。
  2. 运行 HorizonData.exe
  3. 在实时仪表页确认车辆数据正常变化。
  4. 点击“开始记录”或按 F8
  5. 完成需要分析的圈数后,再按一次 F8 保存。
  6. 打开侧边栏中的“圈速分析”,选择历史记录进行对比或回放。

扫描赛道时,建议左右两次采集从同一位置、按同一方向开始,并保持 20–60 km/h 沿边缘完成一圈。当前版本优先支持封闭环形赛道。

直接打开 index.html 会进入模拟数据预览模式,不会连接游戏。

数据保存

驾驶记录以 JSON 文件保存在:

软件目录\Data\Sessions

记录包含车辆标识、车型名称、PI、驱动形式、开始/结束时间、完整圈速,以及按圈归组的坐标和遥测点。删除这些 JSON 即可删除相应历史记录。

车辆名称通过遥测包中的 CarOrdinal 在离线数据库中匹配。记录内部使用 fh6:<CarOrdinal> 作为稳定车辆键,显示名称仅作为标签。

命名后的赛道扫描文件保存在:

软件目录\Data\Tracks

从源码构建

需要安装 .NET 8 SDK:

dotnet restore
dotnet build HorizonData.csproj -c Release

生成自包含的 Windows x64 发布包:

dotnet publish HorizonData.csproj -c Release -r win-x64 --self-contained true -o .\release\HorizonData

运行自检:

.\release\HorizonData\HorizonData.exe --self-test

项目结构

MainForm.cs             WinForms、WebView2 与前端通信
TelemetryReceiver.cs    UDP 接收循环
TelemetryPacket.cs      FH6 324 字节遥测包解析
SessionRecorder.cs      圈速、轨迹和遥测点保存
TrackScanner.cs         赛道边界采集、拟合与命名保存
TrackOverlayForm.cs     透明置顶赛道悬浮窗与实时位置匹配
CarDatabase.cs          离线车辆名称匹配
GearFormatter.cs        挡位显示规则
index.html              应用界面结构
styles.css              UI 样式
app.js                  仪表、圈速分析和轨迹回放逻辑

已知限制

  • FH6 Data Out 不提供道路左右边界、赛道 ID 或真实赛道宽度,因此当前只能准确绘制车辆中心点走线。
  • 透明悬浮地图适用于窗口化或无边框全屏;独占全屏模式可能会阻止其他窗口覆盖在游戏上方。
  • 旧版生成的记录可能没有挡位、RPM 或 G 值字段,界面会显示“旧记录无数据”。
  • 全局 F8 注册失败时,仍可使用窗口内的“开始记录”按钮。
  • 未收录的车辆会显示遥测中的 CarOrdinal,不会影响记录。

数据来源

离线车辆编号数据参考:

https://gist.github.com/HDR/0659d1717bc61504bf83750628963f4f

隐私

FH6 Data Pad 默认只监听本机 UDP 端口,并将驾驶记录保存在本机。项目不会自动上传圈速、位置轨迹或其他遥测数据。

About

极限竞速地平线6数据面板及圈速分析

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors