Skip to content

FrequencyTrack

频率轨道铺设工具 —— ADOFAI 编辑器 Mod。按频率(音高)在轨道上自动铺设砖块,支持固定频率段滑音(频率渐变)噪音段三种生成方式,并自动变速使音高与 BPM 精确匹配(0 误差)。

所属:adofaiex/ADOFAIMods 仓库中的 EditorExtensions 模组(Unity Mod Manager 格式)。FreqTrack 由 StArray 与 AI 助手共同研发。

安装与启用

  1. 将编译好的 EditorExtensions Mod 放入 ADOFAI 的 Mods 目录
  2. 游戏内打开 Mod 设置(Unity Mod Manager 窗口)
  3. 勾选 启用频率轨道铺设工具(Enable FreqTrack)
  4. 可选:切换 英文 / 中文 语言;勾选 启用频率轨道日志 输出详细调试日志(默认关闭)

TIP

切换语言后面板文字会实时刷新(含字体切换:英文 SourceSans3 / 中文思源黑体)。

打开面板

在 ADOFAI 编辑器中,切换角度输入模式ToggleAngleInputMode,编辑器左下角的「角度」按钮)时,FreqTrack 面板会自动显示 / 隐藏。

面板需要配合选中一个起始砖块使用 —— 生成的砖块会从当前选中砖块之后插入。

面板界面

控件说明
折叠按钮 ▼ / ▶展开 / 收起面板内容
外圈开启后按外圈(大圈)角度公式生成,频率更高时圈更大
拍数开启后数量输入框按拍数计算;关闭时按块数计算
起始音调十二平均律音调下拉(C0~B8,A4=440Hz),选中自动填入频率
频率起始频率(Hz),可手动输入
终点音调滑音终点音调下拉
终点频率滑音终点频率(Hz)
数量关闭拍数开关 = 目标块数;开启拍数开关 = 目标拍数
插入拍间隔每隔 N 拍插入一个「跳变标记对」(0 = 不插入),节奏不变
滑音缓速滑音时频率变化用的缓速函数(30 种)
应用音调按当前频率生成一段固定频率砖块
滑音从起始频率渐变到终点频率生成砖块
生成噪音以当前频率为基准,每块随机偏移生成噪音段

核心概念

频率、BPM 与砖块

  • 频率(Hz)= 每秒砖块数 = 显示 BPM ÷ 60。例:120 BPM → 2 块/秒 → 频率 2Hz
  • 每块拍数 TileBeats(entry, exit) 由进出角度差决定:((180-(exit-entry)) mod 360 + 360) mod 360 / 180

自动变速

无论当前 BPM 是多少,Mod 都会在段首写入一个 SetSpeed 变速事件:

newBpm = hz × 60 × TileBeats(0, segAngle)

这样游戏中听到的音高精确等于输入频率(0 误差)。外圈时每块拍数天然是 2 倍,显示 BPM 内外圈一致。

角度公式

  • 内圈:segAngle = 180 - 180 × (hzFormBPM × bpmFactor) / hz
  • 外圈:segAngle = 180 - 360 × (hzFormBPM × bpmFactor) / hz
  • hzFormBPM = 当前 BPM ÷ 60;bpmFactor = 以 2 为底的折叠倍率(保证角度落在合理范围)

音调选择器

基于十二平均律,参考 A4 = 440Hz,范围 C0(16.352Hz)~ B8(7902.133Hz)。选音调会自动把对应频率填入输入框,也可手动微调。

功能详解

应用音调 —— 固定频率段

  1. 选中起始砖块
  2. 选择起始音调或直接输入频率
  3. 设置 数量(块数或拍数)
  4. 可选:设置 插入拍间隔(需 ≥1 的整数)
  5. 可选:开启 外圈
  6. 应用音调

结果:在选中砖块后生成一段频率恒定的砖块段,自动变速,音高精确等于输入频率。

WARNING

频率 ≤ 0、输入为空时不会执行,仅弹出提示(避免产生 NaN 砖块)。

滑音 —— 频率渐变段

  1. 选中起始砖块
  2. 设置起始频率终点频率(终点音调 / 终点频率输入框)
  3. 设置 数量(目标块数或拍数)
  4. 选择 滑音缓速 函数(默认 Linear)
  5. 可选:插入拍间隔外圈
  6. 滑音

结果:砖块角度按缓速曲线从起始频率连续渐变到终点频率,形成平滑滑音效果。

  • 按拍数:生成到目标拍数为止
  • 按块数:生成到目标块数为止
  • 变速系数按两端较低频率折叠,保证整段音高匹配

生成噪音

  1. 选中起始砖块
  2. 设置起始频率数量(块数或拍数)
  3. 可选:外圈
  4. 生成噪音

结果:以当前频率的基准角度为中心,每块随机偏移 ±25°,生成一段听觉上接近噪音的段落(节奏 / 频率基准仍与输入一致)。

插入拍间隔标记

每隔指定拍数插入一个「跳变标记对」:先跳到特殊角 target,再落回旋转 180° 的位置。

  • 标记对合计时长精确等于一块正常砖(节奏完全不变)
  • 常用于在持续音 / 滑音中制造「打击感」或记号点
  • 0 表示不插入;输入小于 1 自动按 1 处理,非整数自动取整

滑音缓速函数(30 种)

类型缓速函数
线性Linear
正弦InSine / OutSine / InOutSine
二次InQuad / OutQuad / InOutQuad
三次InCubic / OutCubic / InOutCubic
四次InQuart / OutQuart / InOutQuart
五次InQuint / OutQuint / InOutQuint
指数InExpo / OutExpo / InOutExpo
InCirc / OutCirc / InOutCirc
回弹InBack / OutBack / InOutBack
弹性InElastic / OutElastic / InOutElastic
弹跳InBounce / OutBounce
  • In:慢→快;Out:快→慢;InOut:两头慢中间快
  • 缓速作用于频率(Hz)的线性插值:freq(t) = startHz + (endHz - startHz) × Ease(t)
  • 选择弹性 / 弹跳时频率会短暂超过终点值再回弹,适合夸张的滑音效果

语言与设置

设置项说明
英文 / 中文切换面板语言(实时刷新,含字体)
启用频率轨道铺设工具总开关,关闭后面板不显示、功能不生效
启用快捷打开 / 解除输入限制同 Mod 的其它功能开关
启用频率轨道日志输出应用/滑音/噪音详细日志、标记时间戳、面板布局(默认关闭,排查用)

使用技巧与常见问题

  • 音高不准? 确认频率输入正确,Mod 会自动变速(SetSpeed),游戏内显示 BPM = 频率 × 60。开启日志可看到 变速: newBpm=..., 频率≈...Hz 核对
  • 只生成极少块? 数量为 0 或为空时:应用/噪音按 1 块、滑音按 32 块处理
  • 想制造鼓点/记号?插入拍间隔,节奏完全不变
  • 外圈 vs 内圈? 外圈每块拍数翻倍,同一频率下外圈圈数更少、视觉更大;音高一致
  • 滑音不滑? 确认终点频率与起始不同;选择非线性缓速(如弹性/弹跳)可强化渐变感
  • 面板不出现? 在编辑器里切换「角度输入模式」开关一次,或确认 Mod 总开关已启用
  • 日志不输出? 在 Mod 设置里勾选「启用频率轨道日志」

相关

  • 仓库:adofaiex/ADOFAIMods(EditorExtensions + InformationDisplay)
  • 其余编辑器增强(CustomRotateAngle / DisableLimit / QuickOpen)也在此仓库,随 EditorExtensions 一起安装

An organization that researches and expands the functions of ADOFAI