Sync Engine
目录
1. 简介
1.1. 什么是 Sync?
1.2. 单一包架构
1.3. 核心特性
1.4. Sync
不
是什么
1.5. 谁适合使用 Sync?
1.6. 版本
2. 架构总览
2.1. 整体架构图
2.2. 分层设计
2.2.1. 核心层(sync::core)
2.2.2. Godot 包装层(godot::)
2.3. 无桥接 / 无加载顺序
2.4. 目录结构
2.5. 命名约定
2.5.1. 13 个共享数据类
2.5.2. 3 个编辑器组件
2.5.3. 2 个运行时类
2.5.4. 1 个通用组件
2.6. 两种构建产物
3. 安装指南
3.1. 前置要求
3.2. 构建 Sync
3.2.1. 1. 构建核心静态库并运行逻辑测试
3.2.2. 2. 构建 GDExtension
3.3. 平台与目标
3.4. 添加到 Godot 项目
3.5. 验证安装
3.6. 关于 junction / 符号链接
3.7. 快速验证表
4. 快速开始
4.1. 快速开始:编辑器(制谱)
4.2. 快速开始:播放(运行时)
4.3. 快速开始:对象池(SyncNodePool)
4.4. 下一步
5. Sync 包
5.1. Sync 包概览
5.1.1. 类一览(19 个)
5.1.2. 核心层
5.1.3. GDExtension 层
5.1.4. 不含判定 / 不含渲染
5.1.5. 组件速览
5.1.6. 构建与测试
5.2. Sync API 参考
5.2.1. SyncBeat
5.2.1.1. 方法
5.2.1.2. 属性
5.2.2. SyncBpmAxis
5.2.2.1. 方法
5.2.2.2. 属性
5.2.3. SyncDocumentChart
5.2.3.1. 方法
5.2.3.2. 属性
5.2.4. SyncEase
5.2.4.1. 常量
5.2.5. SyncFloatAxis
5.2.5.1. 方法
5.2.5.2. 属性
5.2.6. SyncNote
5.2.6.1. 属性
5.2.7. SyncSpeedAxis
5.2.7.1. 方法
5.2.7.2. 属性
5.2.8. SyncTimeSignatureMap
5.2.8.1. 方法
5.2.8.2. 属性
5.2.9. SyncTrack
5.2.9.1. 方法
5.2.9.2. 采样方法(按轴名查找,带 fallback)
5.2.9.3. 属性
5.2.10. SyncTrans
5.2.10.1. 常量
5.2.11. SyncVector2Axis
5.2.11.1. 方法
5.2.11.2. 属性
5.2.12. SyncVector3Axis
5.2.12.1. 方法
5.2.12.2. 属性
5.2.13. SyncVector4Axis
5.2.13.1. 方法
5.2.13.2. 属性
5.2.14. SyncProgressManager
5.2.14.1. 描述
5.2.14.2. 方法
5.2.14.3. 进度跳转
5.2.14.4. 细分精度
5.2.14.5. 属性
5.2.14.6. 信号
5.2.15. SyncTimeline
5.2.15.1. 描述
5.2.15.2. 方法
5.2.15.3. 属性
5.2.16. SyncBeatGrid
5.2.16.1. 描述
5.2.16.2. 方法
5.2.16.3. 属性
5.2.16.4. 颜色属性(9 种可自定义)
5.2.16.5. 常量
5.2.16.6. LineType
5.2.16.7. LineKind
5.2.17. SyncChart
5.2.17.1. 查询类方法
5.2.17.2. 轴采样方法
5.2.18. SyncChartPlayer
5.2.18.1. 播放控制
5.2.18.2. 时间控制
5.2.18.3. 每帧事件
5.2.18.4. 谱面加载
5.2.18.5. 查询方法
5.2.18.6. 轴采样
5.2.18.7. 音频
5.2.18.8. 成员变量
5.2.18.9. 信号
5.2.19. SyncNodePool
5.2.19.1. 方法
6. 教程
6.1. 构建谱面
6.1.1. 1. 创建文档谱面
6.1.2. 2. 设置元数据
6.1.3. 3. BPM 轴与拍号
6.1.4. 4. 创建轨道并添加音符
6.1.5. 5. 动画轴
6.1.6. 6. 保存与加载
6.1.7. 7. 验证
6.1.8. 完整代码
6.1.9. SyncBeat 构造说明
6.1.10. 音符种类参考
6.2. 编辑器组件教程
6.2.1. 步骤 1:SyncProgressManager — 进度管理
6.2.2. 步骤 2:SyncTimeline — 归一化坐标映射
6.2.3. 步骤 3:输入映射 — 点击位置 → 节拍
6.2.4. 步骤 4:SyncBeatGrid — 节拍线数据
6.2.5. 步骤 5:自定义颜色
6.2.6. 步骤 6:BeatlineView — 完整的绘制 + 输入控件
6.2.7. 完整代码
6.2.8. 关键设计理念
6.3. 游戏运行教程
6.3.1. 步骤 1:构建谱面
6.3.2. 步骤 2:创建播放器并编译
6.3.3. 步骤 3:判初——枚举所有音符并缓存静态数据
6.3.4. 步骤 4:每帧推进 + 自写判定
6.3.4.1. 判定层的关键数据(不修改引擎数据)
6.3.5. 步骤 5:自定义种类的判定分发
6.3.6. 步骤 6:输出总结
6.3.7. 完整代码
6.3.8. 判定层与渲染层的边界
6.3.9. 下一步
7. 高级主题
7.1. 自定义渲染指南
7.1.1. 设计哲学
7.1.2. 地面轨道渲染
7.1.3. 轨道动画渲染
7.1.4. 性能优化
7.1.4.1. 对象池
7.1.4.2. 缓存静态时间
7.1.5. 坐标系约定
8. 贡献指南
8.1. 目录结构
8.2. 编码规范
8.2.1. 语言与风格
8.3. 如何新增类
8.4. 构建与测试
8.5. 文档
8.6. PR 流程
8.7. 许可证
Sync Engine
7.
高级主题
查看页面源码
7.
高级主题
本章涵盖 Sync Engine 的进阶架构与扩展开发主题。
高级主题
7.1. 自定义渲染指南
7.1.1. 设计哲学
7.1.2. 地面轨道渲染
7.1.3. 轨道动画渲染
7.1.4. 性能优化
7.1.5. 坐标系约定