0.3.4 更新内容
- 添加了切换为全屏模式的功能
- 添加了调整相机视角的功能
- 添加了位置指示器(可在设置中关闭)
- 添加了选中两个 Note 后按 H 键将其连接为 Hold 的功能
一. 项目结构
1. 谱面工程
一个包含了谱面编辑所需要的文件的文件夹被称为“谱面工程文件夹”。
初次创建谱面工程时,只需在文件夹里包含一个名为music.mp3的音源文件即可,在编辑器中选择该文件夹后,会自动在该文件夹内生成一个工程指示文件.t3proj,里面包含了各个谱面编辑所需文件的文件名,如下表所示。
| 文件类型 | 配置项 | 默认名称 | 必须 | 备注 |
|---|---|---|---|---|
| 音源文件 | musicFileName | music.mp3 |
✔ | 支持 mp3、ogg、wav 格式 |
| 曲绘文件 | coverFileName | cover.jpg |
× | 支持 jpg、png 格式 |
| 关卡信息文件 | songInfoFileName | songinfo.yaml |
× | 记录关卡相关信息,如曲名、谱面难度等 |
| 偏好文件 | preferenceFileName | preference.yaml |
× | 记录单曲设置,如流速、BPM 列表等 |
| Normal 难度谱面文件 | normalChartFileName | normal |
× | |
| Hard 难度谱面文件 | hardChartFileName | hard |
× | |
| Master 难度谱面文件 | masterChartFileName | master |
× | |
| Insanity 难度谱面文件 | insanityChartFileName | insanity |
× | |
| Ravage 难度谱面文件 | ravageChartFileName | ravage |
× |
编辑器中默认保存的谱面文件后缀为 editing.json (如 master.editing.json ),这是由于保存谱面时不可避免地需要在谱面中引入一些只有编辑器中才用的到的内容。这些内容并不会影响游玩模拟器 (如果有的话) 中的游玩,但如果你不希望谱面中包含这些内容,可以在编辑器中点击 导出纯谱面 按钮,保存后缀为 json 的更“干净”的谱面。
除了在编辑器内手动选择谱面工程文件夹外,也可以使用TAKANA³.exe打开.t3proj文件,这会在编辑器启动时自动载入对应的谱面。
随着谱面创作的进行,在谱面工程文件夹中会多出两个文件夹 AutoSave 和 Logs,分别存储自动保存的谱面文件和编辑过程中出现的异常日志。如果在谱面编辑过程中出现了异常, 请将 Logs 文件夹中对应当前日期的日志文件通过提交 issue 或其他方式告知作者 。
2. 全局设置
可在编辑器右侧面板的“工具”页签下点击设置面板按钮修改相关设置。
全局设置一般位于C:\Users\你的用户名\AppData\LocalLow\Senolytics\TAKANA³\Settings下,各设置文件均包含详细注释,可自行酌情更改。
3. 值得说明的内容
- 该编辑器中所有的时间表示均为以毫秒为单位的整数。
- 预览界面的正中心横坐标为
0,界面边界横坐标为±5,游戏边界线横坐标为±4.5。
二. UI

1. 顶部栏
- 切换点选方式:有单选和多选两种方式。单选方式下一次点击仅选中一个元件,如果元件存在重叠,多次点击可以切换选择不同的元件。多选方式下会选中全部在点选范围内的元件。
- 流速:目前没有与本家对应。
- 偏移:offset,仅可为非负数。
- 时间
2. 底部栏
- 撤销/重做按钮:也可
Ctrl+Z/Ctrl+Y。 - 横向格线
- 纵向格线:间隔为两个格线之间的宽度,偏移为中心格线的位置,当偏移为
0时,中心格线即在预览界面的正中心。 - 创建类型:也可按
`键切换。 - 图层:详细说明见 三.4 图层 。
- 音乐速度
3. 时间块
当开启横向格线时,在预览界面右侧的右侧白色区域内会出现与格线绑定的小方块,其即为时间块。当鼠标移动到某个时间块上时,其会变宽,此时单击,会发生以下两件事:
- 将对应的时间复制到剪贴板。
- 如果在点击之前正在选中任意表示时间的输入框,则点击后会将对应的时间填入该输入框内,并完成编辑。
4. 右侧面板
- 信息面板:点击难度名称切换不同难度,点击右侧难度数字可以设置该难度的等级。
- 编辑面板:展示选中的轨道或者 note 的信息。具体内容在下一部分进行介绍。
- 图层面板:管理轨道图层。具体内容在第四部分中进行介绍。
- 音乐面板:调节音乐音量、音效音量,以及编辑 bpm 列表。
- 设置面板:通过 GUI 界面修改部分全局设置。
三. 谱面编辑
使用 Q/Space 切换播放状态。如果开启了左键暂停播放的设置,则在预览界面左键时会强制暂停播放。
1. Note
当仅选中一条轨道时, 右键 即可在对应时间放置一个 Note。如果是 Hold,其时间长度默认为相邻两格线的间隔。
Shift+左键 选中 Note,若同时按住 Ctrl ,则为多选状态,选中新的 Note 时将不会取消选中之前选中的 Note(注意与点选方式中的“多选”不同)。之后可以在右侧编辑栏中修改 Note 的时间,也可以通过快捷键来操作:
W/↑ S/↓ :以 10ms 为单位调整 Note 的判定时间
Shift+W/↑ Shift+S/↓ :将 Note 判定时间吸附到上下最近的格线上。
对于上述操作,如果在进行的同时按住 Alt ,则将以这种方式修改选中的 Hold 的结束时间。
F :切换 Note 的真假。假 Note 的透明度会相应降低。
2. 轨道
Shift+右键 生成一个新的轨道。当纵向格线开启时,轨道的左右两边默认位置为点击位置两边的格线位置,当纵向格线未开启时,默认宽度为 2。
左键 选中轨道。若同时按住 Ctrl ,则为多选状态,选中新的轨道时将不会取消选中之前选中的轨道(注意与点选方式中的“多选”不同)。
3. 结点
当轨道被选中时,会显示其运动轨迹,上面会有圆环,称为结点。每个结点即对应运动列表中的每一项。
Alt+右键 可以放置一个新的结点,即生成运动列表中新的一项。结点在左边界还是右边界取决于点击的位置。新结点默认曲线为 u 型曲线。
Alt+左键 可以选中一个结点,点击结点对应的曲线或结点本身都可以选中。若同时按住 Ctrl,则为多选状态,选中新的结点时将不会取消选中之前选中的结点。
Tab 键可以切换选中的结点对应的曲线的类型,仅会在当前曲线所在的曲线族内切换。
每个曲线族包括六种缓动方式,分别为 [Unmove, Linear, xxxIn, xxxOut, xxxInOut, xxxOutIn] 。每当按 Tab 键时,会将选中的曲线切换为其对应的下一个曲线。例如,选中的曲线为 SineIn ,则按 Tab 后切换为 SineOut ,选中的曲线为 BackOutIn ,则按 Tab 后切换为 Unmove 。
可以在设置面板选择启动制谱器时默认选择的曲线族。可以按 0-9 数字键 切换当前使用的曲线族。
可以按住 - 键查看数字与曲线族的对应关系以及当前使用的曲线族。
结点在时间轴上的移动与 Note 类似。特别的,如果对开始或结束的结点进行移动,会同时修改轨道的开始时间或结束时间。
结点在横坐标轴上的移动可通过以下快捷键来实现:
A/← D/→ :将结点向左或右移动 0.1 的距离。
Shift+A/← Shift+D/→ :将结点位置吸附到左右最近的格线上。
4. 图层
每个轨道都属于一个图层,创建轨道时,该轨道的图层将被初始化为默认图层。
可以在右侧图层面板中对图层进行管理,如下图所示。

以下根据图中的编号对图层面板进行解释说明:
- 新建图层:输入图层名称并点击“
+”按钮即可创建一个新的图层。 - 显示/隐藏按钮:切换当前图层的隐藏状态。可通过上方的滑动条来调整显示轨道的透明度和隐藏轨道的透明度。
- 上移/下移按钮:调整图层在面板里的排列顺序;这也会修改不同图层的轨道在游戏界面的覆盖关系。
- 装饰按钮:将图层标记为装饰层,装饰层上的轨道将不能放置 Note。
- 删除按钮:双击删除当前图层。若图层中存在轨道,这些轨道将被重新归属到默认图层。
- 调色板按钮:选择该图层的轨道的颜色。
5. 复制粘贴
Ctrl + X 进行剪切, Ctrl + C 进行复制,Ctrl + V 进行普通粘贴, Ctrl + Shift + V 进行原位粘贴。剪切或复制的内容将会存入剪贴板中,单按 V 键查看剪贴板内容。
支持对 Note、轨道、结点进行普通粘贴和原位粘贴。
- Note:
普通粘贴:需在有且仅有一个轨道被选中的情况下进行,将会把剪贴板中的所有 Note 根据时间粘贴到该轨道上。
原位粘贴:需在没有轨道被选中的情况下进行,将会把剪贴板中的所有 Note 粘贴到其原来所属的轨道上。
- 轨道:
普通粘贴:除了时间改变外,还将根据粘贴时鼠标所处的水平位置对轨道进行平移,该水平平移的效果是当纵向格线开启时,将轨道的第一个左结点吸附到鼠标所处位置左边的第一条纵向格线,否则为鼠标所处位置。
原位粘贴:仅改变时间,不改变水平位置。
实际使用中除了时间很短的轨道外,不建议使用轨道的复制粘贴,而应更多考虑能否使用结点的复制粘贴。
- 结点:
普通粘贴:会根据选中的轨道在鼠标所处时间的位置对结点位置进行水平平移,适用于在不同的轨道间复制运动效果。
原位粘贴:不进行水平平移,适用于在同一个轨道上重复某一运动效果。
6. 镜像
在选中轨道或结点时使用 Ctrl + M 将其镜像。
对轨道,还可以使用 Ctrl + Shift + M 进行镜像复制,即生成一个新的与原轨道镜像的轨道,而保留原轨道。
7. 编辑面板
每个轨道或 Note 都有一个唯一的 ID,目前仅有标识的作用。ID 将被记录在谱面文件中,如需手动修改谱面文件,请确保不存在重复的 ID。
无论选中 Note 还是轨道,都可以在编辑面板中看到它们的详细信息。除了在游戏界面中修改元件外,同样可以通过编辑面板对元件进行编辑。
- Note:
编辑面板中的 Note 信息如下图所示。

以下根据图中的编号对 Note 编辑面板进行解释说明:
- 默认展示 ID,点击即可为元件取名。可以在搜索框中通过 ID 或名称前缀来搜索选中元件。
- 点击取消选中该元件。
- 点击删除该元件。
- 点击切换 Note 的真假。
- Note 判定时间。
- Hold 结束时间。
- 点击将取消选中所有的 Note,并选中对应 Note 所属的轨道。
- 轨道:
编辑面板中的轨道信息如下图所示。

以下根据图中的编号对轨道编辑面板进行解释说明:
- 默认展示 ID,点击即可为元件取名。可以在搜索框中通过 ID 或名称前缀来搜索选中元件。
- 点击取消选中该元件。
- 点击删除该元件。
- 轨道开始时间。
- 轨道结束时间。
- 图层下拉框,用来选择该轨道所在的图层。
- 轨道运动列表的切换按钮,点击切换展示左边界运动列表还是右边界运动列表。
- 运动列表详细内容。其中的每一项记为元组
(time, x, ease),表示time时该边界的位置为x,到下一个时间点的运动曲线为ease。
在该编辑面板内,可以以两种方式修改曲线类型:输入缓动名称缩写、输入缓动名称编号。关于具体的缩写与编号内容,请见 五.1 缓动名称-缩写-编号对照表 。
实际上编辑器更希望用户可以更多地通过可视化编辑来完成谱面创作,而非大量使用编辑面板。
四. 谱面格式
1. 概览
从版本 0.3.1 开始,谱面文件采用 json 格式进行存储。一个包含编辑器信息的谱面组成如下所示:
1 | { |
2. 谱面元件
一个通常意义上的元件由以下几部分组成,对其中的一些属性,不同元件可能会在一定情况下对内容进行省略。
1 | { |
以下将给出各元件以及一些元件的内置数据结构可能包含的所有属性。
带e_前缀的类型通常为具有编辑器信息的类型,编辑器默认会将一般的元件包装为这种具有编辑器信息的类型。
轨道:
1
2
3
4
5
6
7
8
9
10
11
12{
"id": 1,
"timeStart": 0,
"timeEnd": 31027,
"line": 0, // 所属判定线的id
"movement": {}, // 轨道运动列表
"properties": {},
"editorconfig": {
"layer": 1 // 轨道所在的图层
},
"type": "e_track"
}轨道运动列表:
轨道的运动列表目前只有一种形式,如下所示;以后扩展更多类型的运动列表后,会作详细介绍。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16{
"left": {
// 左边界运动列表
"list": [
"(0, -1.50, si)", // 三项分别表示时间、位置、接下来的运动曲线
"(1350, 1.50, eb)"
],
"type": "v1e" // v1表示一维,e表示缓动
},
"right": {
// 右边界运动列表
"list": ["(0, 0.00, u)"],
"type": "v1e"
},
"type": "trackEdgeMoveList" // 根据左右边界的位置来决定轨道的运动
}单个运动列表内不允许有时间相同的两项;每项的时间可以超过轨道的起始和结束时间。
Note:
1
2
3
4
5
6
7
8
9
10
11{
"id": 283,
"timeJudge": 16834,
"track": 1, // 该Note所属的轨道
"timeEnd": 17479, // Hold独有项:Hold的结束时间
"properties": {
"isDummy": true // 是否为假Note,否时缺省
},
"editorconfig": {},
"type": "e_hold"
}图层
图层位于谱面的 editorconfig 下,格式如下:
1
2
3
4
5
6
7
8
9"layers": [
{
"id": 0, // 图层id
"name": "默认图层", // 图层名称
"color": "(000000, 1.00)", // 图层颜色
"isDecoration": false, // 是否为装饰图层
"isSelected": true // 是否在编辑器中被选中
}
]
五. 附录
1. 缓动名称-缩写-编号对照表
除 Unmove 、 Linear ,其余缓动的缩写均由两个字符构成,前一个字符表示缓动类型,后一个字符表示缓动方式。四种缓动方式的缩写对应关系为 In - i,Out - o,InOut - a,OutIn - b 。一般似乎提到缓动时并不常有”OutIn”这种说法,但作者认为实际写谱时也挺经常用到的,所以默认加上了。
每种缓动类型还对应一个编号,按数字键可以根据该编号切换使用的曲线族,而把该编号作为十位数,把缓动方式对应的数字作为个位数( In - 2,Out - 3,InOut - 4,OutIn - 5 ),即得到该缓动对应的编号。
编号速记:缓动类型根据Easing Functions Cheat Sheet (easings.net)上的顺序依次与 1 - 0 对应,并且 2- 5 刚好是 Quad - Quint。缓动方式对应的编号即为其在曲线族数组里的下标。
| 类型 | Sine | Quad | Cubic | Quart | Quint |
|---|---|---|---|---|---|
| 缩写 | s | 2 | 3 | 4 | 5 |
| 编号 | 1 | 2 | 3 | 4 | 5 |
| 类型 | Expo | Circ | Back | Elastic | Bounce |
|---|---|---|---|---|---|
| 缩写 | e | c | b | l | w |
| 编号 | 6 | 7 | 8 | 9 | 0 |
实际使用时也许你会觉得这 In、Out 怎么跟我想象的是反过来的?那你也许是对的。实际运动确实与编辑器中对应的名称是反过来的,这是为了与 Arcaea 里的 In、Out 从视觉上相符。 (不爽憋着)
编辑器还提供了 RPE 风格的编号,即为 RPE 内编号对应地加上 100 。对于 RPE 内没有的曲线类型,则简单地顺延编号。
RPE 风格编号仅是为熟练 RPE 的人提供一个方便的途径。如果你没有用过 RPE 或不能熟练记得 RPE 编号与曲线的对应关系,建议使用 TAKANA³ 风格编号。
以下是完整的对照表。
| 曲线名称 | 曲线缩写 | TAKANA³ 风格编号 | RPE 风格编号 |
|---|---|---|---|
| Unmove | u | x0 (x=0,1,2,3,4,5,6,7,8,9) | 100 |
| Linear | s | x1 (x=0,1,2,3,4,5,6,7,8,9) | 101 |
| SineIn | si | 12 | 103 |
| SineOut | so | 13 | 102 |
| SineInOut | sa | 14 | 106 |
| SineOutIn | sb | 15 | 132 |
| QuadIn | 2i | 22 | 105 |
| QuadOut | 2o | 23 | 104 |
| QuadInOut | 2a | 24 | 107 |
| QuadOutIn | 2b | 25 | 133 |
| CubicIn | 3i | 32 | 109 |
| CubicOut | 3o | 33 | 108 |
| CubicInOut | 3a | 34 | 112 |
| CubicOutIn | 3b | 35 | 134 |
| QuartIn | 4i | 42 | 111 |
| QuartOut | 4o | 43 | 110 |
| QuartInOut | 4a | 44 | 113 |
| QuartOutIn | 4b | 45 | 135 |
| QuintIn | 5i | 52 | 115 |
| QuintOut | 5o | 53 | 114 |
| QuintInOut | 5a | 54 | 130 |
| QuintOutIn | 5b | 55 | 136 |
| ExpoIn | ei | 62 | 117 |
| ExpoOut | eo | 63 | 116 |
| ExpoInOut | ea | 64 | 131 |
| ExpoOutIn | eb | 65 | 137 |
| CircIn | ci | 72 | 119 |
| CircOut | co | 73 | 118 |
| CircInOut | ca | 74 | 122 |
| CircOutIn | cb | 75 | 138 |
| BackIn | bi | 82 | 121 |
| BackOut | bo | 83 | 120 |
| BackInOut | ba | 84 | 123 |
| BackOutIn | bb | 85 | 139 |
| ElasticIn | li | 92 | 125 |
| ElasticOut | lo | 93 | 124 |
| ElasticInOut | la | 94 | 129 |
| ElasticOutIn | lb | 95 | 140 |
| BounceIn | wi | 02 | 127 |
| BounceOut | wo | 03 | 126 |
| BounceInOut | wa | 04 | 128 |
| BounceOutIn | wb | 05 | 141 |