Instruction - Horiztar/Cylheim-Windows GitHub Wiki

功能介绍

If you need English or other version, please try translator of your browser. Google Translate in Google Chrome is recommended.

项目

进行编辑工作前,用户需要新建一个项目,或者打开一个已有项目。项目的工程文件一般以 cyl 为后缀。推荐每个项目都以独立文件夹的形式存储,且工作文件都存储在该文件夹内。以下是项目的文件结构举例:

.
├─ CylheimProject     // Cylheim 的缓存目录     
│  ├─ AutoSave        // Cylheim 的自动保存目录
│  ├─ Backups         // Cylheim 的自动备份目录
│  └─ MediaTemps      // Cylheim 的音频缓存目录
├─ CylheimProject.cyl // Cylheim 工程文件       
├─ Chaos.json         // 谱面文件               
├─ Background.png     // 背景图片文件   
├─ Music.wav          // 音频文件               
└─ ...           

用户不需要自主创建以上文件结构,只需准备一个文件夹,并在里面放置需要的音频和图片,然后在 Cylheim 软件中在相应文件夹创建项目,即大功告成!

相关功能说明

  • 新建项目:在指定位置创建一个工程文件,文件名可自定义。
  • 打开项目:打开指定的 .cyl 工程文件。Cylheim 不能直接打开谱面文件。
  • 保存项目:保存项目工程文件以及被打开过的谱面文件,该操作会在自动备份目录下创建谱面备份。
  • 仅保存项目文件:仅保存 .cyl 工程文件,该操作不会保存谱面
  • 打开项目文件夹:打开 .cyl 工程文件所在的文件夹位置。

谱面

每个项目可以拥有多份谱面。以下是谱面信息的各项设置。

  • 文件名:谱面文件相对于工程文件的相对路径,是谱面在项目中的唯一标识符。
  • 媒体:音乐文件相对于工程文件的相对路径,推荐使用 wav 或 ogg 音频,不推荐使用 mp3 音频。
  • 背景:背景图片文件相对于工程文件的相对路径。
  • 背景视频:背景视频文件相对于工程文件的相对路径。
  • 图标:图标文件相对于工程文件的相对路径。
  • 曲名:曲名。
  • 颜色设置:颜色设置。
  • 难度名称:难度名称。
  • 难度:难度。
  • 长度:谱面的毫秒长度。通过文件选择器选择媒体路径时,媒体的长度会被自动填写到该值。
  • BPM:谱面的初始 BPM。
  • 延迟:详见谱面格式详解
  • 时基:详见谱面格式详解
  • 难度颜色模板:点击不同的模板会自动填写文件名、难度名、难度颜色。
  • 预设主题颜色:自动填写主题颜色。

相关功能说明

  • 添加谱面:往项目添加一份新谱面,可能需要填写以上设置。
    • 如果要迅速开始谱面创作,只需要关注文件名、媒体、长度、BPM 这几项设置。如果文件选择器的后缀筛选器筛掉了需要的文件,请不要忘记:您还可以自行输入文件名!
    • 在添加谱面时,如果填写的文件名指向了已经存在的文件,但该文件又还未包含在项目内,那么软件会询问选择执行“导入”或者“覆盖”。导入操作会将该文件包含在项目内,覆盖则会根据填写的设置新建一份全新的谱面。
    • 新建谱面后,在第一次执行保存之前,软件不会在硬盘上立刻创建或覆盖创建文件。
  • 导入谱面:快速选择并导入符合谱面格式规范的谱面文件,功能等同于添加谱面的导入功能。
  • 移除谱面:该功能仅仅会把谱面从项目中移除,但数据文件仍然会存储在原来的位置中。
  • 编辑谱面信息:编辑当前谱面信息,但部分设置项不可再调整,或者需要在另一处位置调整。确认编辑后,除了谱面文件外的其他文件会被自动重载。
  • 重载文件:重新载入当前谱面的媒体、背景、背景视频、图标文件,同时从硬盘中重新读取谱面数据,这会回滚所有未保存的谱面数据,该操作可撤销。

设计器

设计器在编辑状态下,通常按页显示,并以水平和垂直方向划分格线,水平格线左侧显示该线对应的 tick 位置。跟随鼠标的坐标指示器会根据不同状态切换显示以作提示,在指示器旁边会有当前位置的信息。

基本操作

  • 滚轮:翻页或移动扫描线。可在任何时候操作滚轮,比如框选时可以通过滚轮来跨页框选。
  • 在空白处
    • 单击左键,在当前位置插入 click。
    • 单击右键,打开菜单。
    • 按住左键往上下拖动后松开,插入 hold,滚轮换页插入 long hold。
    • 按住左键往左右拖动后松开,插入 flick。
    • 按住右键往任意方向拖动,然后单击左键,插入 drag;不松开右键并重复往任意方向拖动并单击左键的操作,可以继续插入 drag;松开右键完成放置。
      • 在第一次单击左键前,按住 Shift ,可转为插入 click drag。
    • 按住 Shift ,并单击左键,插入 drop click。
    • 按住 Shift ,按住左键往任意方向拖动后松开,插入 drop drag。
    • 按住 Ctrl ,按住左键往任意方向拖动后松开,进行框选音符。
      • 与此同时按住 Shift ,可执行多次框选;否则框选前会先取消选择所有音符。
      • 如果是按住右键拖动而非左键,那么会框选所在时间位于任何 X 位置的音符。
  • 在音符上
    • 单击左键,仅选择该音符。
    • 按住 Ctrl ,单击左键,将该音符加入选择或取消选择。
    • 按住左键往任意方向拖动后松开,移动选择音符。
      • 与此同时按住 Ctrl ,可固定横向或者纵向位置,仅在另一方向上移动。
    • 按住 Ctrl ,按住右键往任意方向拖动后松开,快速复制所选音符。
  • 在 drag 或 drag child 音符上
    • 双击左键,快速选择整串 drag 音符。(按住 Ctrl 多选有效)
    • 按住右键往任意方向拖动,开始往所属音符串添加 drag 音符。
  • 在 hold 或 long hold 音符的线
    • 按住左键往上下拖动后松开,修改 hold 的长度。
      • 与此同时按住 Shift ,可同时修改所选 hold 音符的长度。
  • 在书签上
    • 单击左键,移动扫描线到该位置。

设计器拥有强大的快捷键机制。

工具栏

请根据鼠标悬停的工具提示来对应按钮。

  • 播放:从扫描线的位置开始播放。
  • 停止:停止播放并返回开始播放的位置。
  • 停在此处:停止播放。
  • 从头播放:从头播放。
  • 播放速度:播放速度。
  • 延迟:控制当前播放速度下的全局延迟。
    • 在慢速播放下,画面与音频会有不可避免的错开,因此软件对慢速播放预置了不同程度的延迟设置。
    • 该设置控制的是全局延迟,请勿使用该设置对齐音频与小节节拍,并转而使用音频编辑软件来完成这项工作
    • 鼠标指向该输入框时可使用鼠标滚轮调整值。
  • 独立预览窗口:按照 Cytus II 的游戏效果完整播放谱面。
    • 该功能可用于录制预览视频,如果运行设备无法流畅播放,可以尝试慢速播放下录制后,用视频编辑软件来加速视频,并配上原速播放下的音频。

  • 吸附到纵格线:位置指示器是否吸附到纵格线。
  • 列数:纵向划分的格数。
    • 鼠标指向该输入框时可使用鼠标滚轮调整值。
  • 吸附到横格线:位置指示器是否吸附到横格线。
  • 行数:横向划分的格数。
    • 鼠标指向该输入框时可使用鼠标滚轮调整值。
  • 上一页:跳转到上一页。
  • 当前页数:可在下拉列表中快速跳转页面。
  • 下一页:跳转到下一页。

  • 跳到上一个标签:跳到当前位置的上一个标签。
  • 跳到下一个标签:跳到当前位置的下一个标签。

  • 滚动视图:设计器以一个方向连续显示谱面,不按页划分显示区域。
  • 滚动视图 Tick 范围:滚动视图的显示范围,该值越大则同时显示的谱面内容越多。
  • 滚动视图方向:控制滚动视图的方向往上或者往下。
    • 滚动视图是特殊的显示模式。有时因为页长过短,或者是由于下落式需要,页面的绝对高度为 0,在这些情况下,分页视图都会不方便,就需要用到滚动视图。

  • 剪切:剪切所选音符。
  • 复制:复制所选音符。
    • 粘贴按钮在哪里?因为粘贴需要指定位置,因此需要在设计器右键菜单处粘贴,或者使用快捷键。
    • 粘贴时,所选的第一个音符会对齐到位置指示器的当前位置。
  • 删除:删除所选音符。

  • 镜像音符:将所选音符以页面水平中心镜像。
    • 如果同时按住 Shift ,会以所选音符的水平范围中心位置镜像。
  • 连接 Drag 音符:将所选的 drag 音符连接起来。
  • 断开 Drag 音符:将所选 drag 音符之间的连接线断开。
  • 切换音符置前页状态:切换所选页首音符的 is_forward 属性。
    • 实际上,更方便直接的操作是在上一页的页末插入音符。
  • 切换音符方向:切换所选 drop click 和 drop drag 音符的 NoteDirection 属性。
  • 转换音符:将所选音符转换到指定类型。
    • 转换到 hold 或 long hold:该操作会自动对原本不是 hold 的音符赋予一拍的长度。可以将 hold 强制转换为 long hold,但不能将跨页的 long hold 强制转换为 hold。
    • 转换到 drag 或 click drag:该操作不会自动连接音符。如果需要这两种音符互相切换,可以双击音符来快速选中整串音符。

  • 从当前页开始页长双倍:从当前页开始,直到谱面结束,以当前页面的两倍长度分配页面。
  • 从当前页开始页长减半:从当前页开始,直到谱面结束,以当前页面的一半长度分配页面。
  • 翻转页面:翻转页面方向。

状态栏

状态栏从左到右的分别是:

  • 后台任务。
  • 当前谱面音符数量。
  • 已选中音符数量。
  • 设计器尺寸。
  • 音符大小。
  • 音量。可分别设置音乐音量和音效音量。
  • 通知。

侧边栏

谱面基本信息

该侧边栏可以修改谱面文件根结构上的部分信息。各设置项详见格式介绍

  • 重置:将设置重置到当前谱面的当前数据。
  • 应用:将设置项应用到谱面。

如果时基发生变化,那么谱面所有 tick 数据都可能会发生变化。 请谨慎修改。

页面管理

该侧边栏可以修改谱面数据的页面序列。页面属性解析详见格式介绍

如果您不熟悉页面的概念,请这样理解:Tick 可以理解为节拍单位的变体(您应该熟悉节拍单位)。当时基为 480 时,则一拍的长度即为 480 tick。 所以在这种情况下,如果页面长度为 960,那么这一页代表了两拍的长度。

侧边栏提供了表格视图,只有参数列可以自由修改,若需批量修改参数,只需选中目标行,提交修改时按住 Ctrl

在表格中选择行时,设计器会自动跳转到选择的页面;同时,手动编辑功能中的设置项会被自动填入对应的范围。

手动编辑

按照给定范围和要求分配页面。

  • 如果起始 tick 或者终止 tick 在页面中间,那么该 tick 的对应页面的剩余部分会单独作为一页。
  • 可以给定每页长度或者给定页数来分配页面。
    • 如果按长度分配,且分配范围无法被长度整除(即分页点 tick 位置可能是小数),那么分页点会四舍五入。
    • 如果按页数分配,如果最后剩余一部分小于规定页长,那么这一部分单独作为一页。

谱面长度

当谱面长度跟音乐不符时,可以通过该功能延长或缩短谱面长度。Tick 和毫秒两个设置项会自动转换,用户可以只需要关注其中一个设置项。

  • 使用媒体长度:将当前的媒体文件的长度填入设置项。
  • 重置:将设置项重置到当前谱面的长度。
  • 应用:将设置项应用到谱面。

当谱面长度变短时,多余的音符、事件、速度将会被删除。如果应用新的长度后,最后一页不满足原有的页长,那么该页会被自动填充到相应的页长。

速度管理

该侧边栏可以修改谱面数据的速度序列。速度属性解析详见格式介绍。在使用前,请确保您的需求满足下列条件之一:

  • 歌曲的 BPM 确实发生了变化,这并非指效果表现需要的倍速变化。
  • 页面参数不能够满足效果需要。

否则,建议使用页面管理。

需要注意,该功能中的速度列表并不与谱面的实际速度列表直接同步。在进行一切编辑之前,必须确保编辑列表中包含有效的速度序列。用户可以通过“重载速度列表”来读取当前谱面的速度列表到编辑列表。 如果用户不满意编辑列表中的内容,在任何时候都可以选择重载速度列表。对编辑列表修改完成后,用户需要自行点击“应用”来将速度列表应用到谱面中。

直接添加

顾名思义,该功能会直接往指定的时间点添加指定的速度。该功能提供了时间位置的自动转换和 tempo <-> BPM 的转换,用户可以只关注其中一边的设置项。

有时您无法输入一个非常精确的 BPM 值,它始终会有少许误差,这是谱面格式导致。但请不用担心,这个误差不足挂齿。

谱面的速度以 tempo 为准,tempo 的含义是一拍的微秒长度。这个值只允许是整数,因此有时会无法非常精确地转化到 BPM。

段落缩放

对指定的时间段落进行缩放操作。

单一倍率

即对指定段落的持续时间按给定的倍率来缩放,用户无需自行计算速度。

假设对 0 tick - 960 tick 这个段落执行 3 倍缩放,如果这个段落原本持续 1000 毫秒,那么在应用段落缩放后,这一段落将会持续 1000 毫秒的 3 倍。

渐变倍率

对指定段落按照给定参数实现渐变速效果,用户无需自行计算速度。

  • 分割段数:渐变速的分割精度,该值越大会使渐变速效果越流畅。通常情况下保持默认值即可。

Cylheim 提供了两种渐变速算法。

位置曲线

该算法属于等时等距渐变速,即可以保持段落长度和持续时间。用户需要进一步选择曲线类型和缓动类型,部分曲线类型支持自定义参数。

每一种曲线类型可以调整的参数以及参数的范围均不相同。详见曲线类型参数

速度插值

该算法属于等距不等时渐变速,但用户可以通过指定缩放倍率来间接实现等时。该功能可以在指定范围按照现有的初末速度完成速度渐变。

速度插值的原理略为复杂,且要求较高。首先,在指定范围内,初速度和末速度必须不同,且之间不能有其他速度变化。其次,必须指定缩放倍率。该缩放倍率与前文中单一倍率的缩放倍率效果一致,该倍率有取值范围:如果末速度大于初速度,那么倍率必须小于 1;如果末速度小于初速度,倍率需大于 1。 因此,如果要实现等时等距速度插值,那么插入末速度的位置必须有所偏移,然后再通过改变倍率来使时间对齐。

保持时间

因为谱面的时间单位是节拍的变体,所以在修改速度列表后,各个元素对应的绝对时间可能都会发生变化。保持时间功能可以令目标元素在修改速度前后都固定在相同的绝对时间上。因此,在提交速度列表之前,请确认哪些元素需要保持时间。

由于涉及时间单位的转换,保持时间有时会发生精度丢失的情况。最常见的情况是,保持时间的结果会与理想值相差 1 tick,这种情况是正常且不可避免的。因此,使用保持时间时需要额外注意 tempo 非常高(速度非常慢)的段落。

音符管理

该侧边栏可以修改谱面数据的音符序列。音符属性解析详见格式介绍

侧边栏提供了表格视图,其中 tick 列、x 列可自由修改。

  • 音符排序:令所有音符有序排列。
  • 填入音符并列属性:自动检测并填写音符并列属性。
  • 从表格同步选择:按表格选中的行,选中对应音符。
  • 同步选择到表格:按照所选的音符,选中对应的表格行。
  • 交换音符 ID:交换选中的两个音符的 ID。

批量修改

对选中音符进行批量修改。

该功能主要使用表达式来批量修改音符,其中花括号代替该属性的原值。例如 {tick}+100 表示对每个音符的 tick 增加 100。

  • 重置:将所有设置项重置到自身变量名。
  • 修改:按照设置项批量修改音符。

曲线工具

该侧边栏可以往特定位置按特定曲线填充一系列音符。

该功能提供两种位置确定模式:

  • 自行输入起点位置和终点位置。
  • 以选中的音符为端点。必须至少有两个音符被选中。

提供两种工具模式:

  • 添加:往曲线上添加音符。
  • 对齐到曲线:令选中音符在水平位置上对齐到曲线。

当选择了添加模式时,用户可以进一步选择填充密度:

  • 按 tick 间隔:从起点开始每隔指定 tick 填充一个音符。
  • 按个数:在起点到终点间均匀填充指定个数音符。

无论选择哪种工具模式,用户都需要确定曲线类型、曲线参数和缓动类型。

每一种曲线类型可以调整的参数以及参数的范围均不相同。详见曲线类型参数

通常情况下,用户在改变以上设置时,设计器上会出现一条预览曲线,如果曲线没有及时刷新,可以使用“刷新预览”功能。

事件管理

该侧边栏可以修改谱面数据的事件序列。事件属性解析详见格式介绍。侧边栏提供了表格视图。该功能提供两种添加事件的方式。

直接添加

在指定 tick 按给定的类型和参数插入事件。具体类型和参数的解释详见说明

生成事件

该功能暂无设置项。该功能会根据谱面的页面序列和速度序列的数据,生成速度变化的提示事件。该功能以 tick 0 处的速度为基准。

需要注意,一旦使用该功能,用户自行添加的速度上升和速度下降事件将会被全部移除

谱面错误

该侧边栏可以检测当前谱面潜在的问题。现在可以检测以下问题:

  • 音符超出水平的正常范围。
  • 某个位置重叠了多个音符。

剪贴板

该侧边栏可以存储所有被复制过的谱面对象,包括音符集、速度集、事件集。用户可以自定义每个剪贴板对象的名称以方便辨认。

对于音符和事件,可以直接粘贴到指定位置。但粘贴速度时只会将它们添加到速度管理的编辑列表中。

书签

该侧边栏可以管理当前的谱面的标签集。

设置

用户可以改变部分偏好设置。

常规

  • 颜色主题:软件以浅色或深色主题显示。
  • 语言:软件的界面语言。
    • 有时您可能需要重启软件来使设置完全生效。
    • 简体中文是原生语言,其他语言有时可能会发生缺失的情况。

设计器

  • 音符大小:设计器的音符显示大小。
  • 依附格线强度:该值越大,位置指示器就越容易吸附到格线上。
  • 光标指向音符区域大小:该值越大,音符的交互区域就会越大,即鼠标更容易触碰到音符。
  • 允许光标超出页面界限:表示是否允许位置指示器在水平方向上超出界限。
  • 反转鼠标滚轮翻页方向:默认情况下,向下滚轮往后翻页,向上滚乱往前翻页。该设置可以反转这个行为。
  • 鼠标滚轮操作:控制鼠标滚轮直接翻页或是仅移动扫描线。
  • 光标显示信息:允许在位置指示器的标签上额外显示当前位置的更多信息。
  • 背景遮罩不透明度:该值越大,背景就越不明显。
  • 背景模糊:软件提供了背景图片模糊的效果。模糊半径 0 即为关闭模糊。
    • 背景模糊会极大程度消耗资源,令软件运行速度降低,尤其会明显降低播放帧率。因此不推荐开启模糊功能。
  • 格线颜色:对一拍内特定位置的水平格线涂上特定颜色。
    • 比如,如果需要对一拍内的中间的水平线涂色,那么拍中位置应为 0.5。如果位置是三分之一,可以直接输入 1/3

回放

  • 音乐音量:音乐音量。
  • 打击效果音量:打击效果音量。
  • 提前播放时间:调整该值可以使播放谱面时,扫描线先从当前位置往前跳转一定的时间。
  • 打击音效延迟:调整打击效果音的延迟。
  • 使用调整的 drag 音符连线动画:Cylheim 默认使用调整过的 drag 连线动画,改变该设置可以使用 Cytus II 原有的连线动画。其显著区别是,在低线速情况下,click drag 的第一条连线会提前出线。
  • 效果开关:提供一系列效果的开关选项。如果运行设备的性能不佳,可以选择关闭部分效果来提高帧率。

文件

  • 自动保存间隔:自动保存的间隔时间。
  • 手动保存时对谱面音符进行排序:保存谱面前,会执行音符排序操作。
  • 手动保存时自动填入音符并列属性:保存谱面前,会执行填入音符并列属性操作。

实验功能

这些设置处于实验状态,若软件可以正常运行,请勿随意修改这些设置,否则可能会出现负面效果。

  • 尝试修复判定线闪烁的问题:有少部分用户在播放谱面时可能会出现无规律的判定线闪烁现象,可以尝试开启该设置来解决。若无闪烁现象,则不要启用该设置。
  • 总是检测媒体同步:有极少数的用户,在单次播放谱面中,音乐与画面在播放开始时同步,但随着播放时间的增加,音乐与画面会越来越不同步,这些用户可以尝试启用该设置来解决这个问题。如果没有启用该选项,那么在开始播放后只会执行一次检测媒体同步。若一切正常,请勿轻易启用该选项,否则可能会对播放造成不良影响。
  • 检测媒体同步频率:控制检测媒体同步的间隔时间。这个设置同样影响开始播放到第一次检测媒体同步的间隔时间。如果运行设备性能不佳,可能会出现音频初始化的耗时大于这个间隔时间的现象,从而导致画面与音乐无法同步。此时用户可以尝试增加同步间隔时间。
  • 媒体同步基准值和媒体同步误差浮动:通常来说,音乐的播放位置和谱面的当前位置必然存在一定的误差。如果误差超出了某个范围,就可以执行媒体同步。基准值和误差浮动共同决定了这个范围的大小。假设采用默认值:基准值为 50 毫秒,误差浮动为 15 毫秒,那么允许的误差范围就是 50±15 毫秒。
  • 打开配置文件夹:用文件资源管理器打开 Cylheim 存储设置数据的位置。如果您需要重置 Cylheim 所有设置,只需删除该配置文件夹并重新启动 Cylheim。

快捷键

该设置页面可以更改软件所有的快捷键。如果需要修改某一个快捷键,您需要选中它,然后点击下方的输入框,再操作一遍您需要的键位,最后分配即可。 快捷键范围会影响快捷键的有效范围。如果范围设置为主页面,那么只要窗口处于激活状态,快捷键都能生效;如果范围是设计器,那么只有设计器获得焦点(扫描线呈现为实线而不是虚线)时,快捷键才能生效。

  • 如果快捷键的范围是主页面,就可能会出现键位被拦截的情况。例如通过 Shift + A 输入大写 A 时,这个操作会被键位是 Shift + A 的快捷键截获。此时需要自行更改设置来处理此类冲突。

关于

该页面显示软件的版本信息和版权信息。用户可以在该页面升级软件。

其他

曲线类型参数

  • 乘方缓动
    • 幂:不小于 0 的小数。
  • 指数缓动
    • 指数:任意小数。
  • 弹跳缓动
    • 弹跳次数:不小于 0 的整数。
    • 反弹度:大于 0 的小数。
  • 倒退缓动
    • 折返幅度:不小于 0 的小数。
  • 伸缩缓动
    • 震荡次数:不小于 0 的整数。
    • 弹性:大于 0 的小数。

输入框的数学表达式支持

Cylheim 大多数数值的输入框都支持表达式的自动转换。例如,输入“100+200”,会自动得到结果“300”。 具体的表达式支持情况请参阅 mXparser 文档

提示:表达式支持使您不需要另外使用计算器,这在段落缩放中十分有用。

项目附加文件夹

项目附加文件夹即项目文件夹中的 CylheimProject 文件夹。

保存备份

在保存项目时,软件会在 Backups 中创建一份未修改过的旧版谱面,其命名格式为 谱面文件名_时间.cylbak。它们都是谱面数据的副本,只需修改文件名并移动文件到相应位置,就能回滚旧谱面。

自动保存

软件在每次切换谱面或者每间隔一段时间都会在 AutoSave 中保存谱面,其命名格式为 谱面文件名_时间.cylsave。它们都是谱面数据的副本,只需修改文件名并移动文件到相应位置,就能恢复谱面数据。

⚠️ **GitHub.com Fallback** ⚠️