作者:cmdysj。本项目是在原 Re:PhiEdit(RPE) 项目基础上,使用 AI(GPT) 进行的重构,是 Phigros 的非官方制谱器。
当前版本:0.12.2。
基于 Canvas、Web Audio、WebGL 和 IndexedDB,支持音符与事件编辑、实时预览、着色器、多谱面管理、原 RPE 谱面导入、热键及设置迁移。当前仍在持续完善,尚不保证与原 RPE 完全一致;建议保留原始谱面与资源备份。
推荐使用桌面版现代 Edge 或 Chrome,开启硬件加速。无需安装即可打开在线页面。
窗口缩小时,顶栏自动分行,工具栏可横向滚动;极窄窗口中编辑区和属性面板上下排列,正常宽窗口维持原布局。
设置中的“帧率”默认上限为 120,支持无上限或大于 10 的自定义上限,实时生效并保存在本机;迁移的原版帧率上限仍会保留。无上限只取消编辑器额外限帧,实际帧率仍受屏幕刷新率、浏览器、系统节能及性能限制。底栏统计实际绘制帧率,静止时按需绘制。
- 在谱面库选择“打开 JSON / PEZ”,可导入谱面包或同时选择谱面、音乐、曲绘。
- 设置 → 导入与导出中的“包含自动保存及备份谱面文件”默认关闭,迁移原 RPE、导入 PEZ/ZIP 和导出谱面包时会忽略
AutoSave_*.json/pec(含配套的 extra 文件)及.json/pec.bak/backup文件;开启后可包含它们。此设置不影响编辑器的恢复副本。 - 导出窗口的“包含未使用的文件和素材”默认关闭,PEZ 只保留当前谱面、入口信息及其引用的音乐、曲绘、贴图、音效和噪域皮肤依赖。勾选后可打包其他文件,自动保存及备份仍遵循通用设置。整库外部备份保留项目的未使用素材。
- 迁移旧 RPE 时,选择包含
Resources、Hotkey.txt、Settings.json的原 RPE 主文件夹。迁移读取原文件,并复制到当前浏览器谱面库;同标识名项目覆盖前会询问,extra.json随资源迁移。 - 选择谱面进入编辑,默认 Q/W/E/R 放置 Tap/Drag/Flick/Hold,空格暂停或继续。热键可在设置中修改。
- 顶部“导出”打开设置窗口,可选择 RPE Next / 原 RPE 的 JSON 或 PEZ,共四种组合,并设置文件名。默认使用谱面名称,自动转换不适合作为文件名的字符;同一会话重复导出或名称转换后重名时添加数字后缀,磁盘上已有同名文件由浏览器处理。PEZ 包含所需资源,可勾选附带未使用文件;JSON 不包含音乐和曲绘,导出不覆盖谱面库中的项目。
- PEZ 自动在根目录生成
info.txt,同步谱面信息、标识和资源路径;供原 RPE 使用时应先载入音乐与曲绘。导出时,各类事件(包括噪域内部事件、着色器及其参数轨道)按开始时间稳定排序,相同开始时间保留原顺序,不改变编辑中的选中索引。音符透明度及透明度事件端点在导入、编辑和导出时均按原版规则向零取整;不对播放中的渐变采样值或 0–1 制的透明度控制曲线取整。 - shader 仅作用于预览区域,渲染顺序为:音符与判定线 → 第一层 shader → 游戏 UI → 噪域 → 第二层 shader。全局 shader 在第二层执行,每层内的重叠事件按顺序叠加,包括同类型 shader。噪域皮肤读取前面已完成的整幅预览画面。
- “谱面工具 → 噪域编辑”打开独立时间轴:左侧编辑噪域生命周期,右侧编辑激活、移动 X/Y、旋转和缩放 X/Y。Q / R 两次定位放置,Shift / 中键框选,空白处按住左键划线多选;框选与划线不吸附,物件放置与拖动只吸附横线。支持复制、剪切、粘贴和撤销。生命周期条中的细色条概览内部事件分布,名称及屏外箭头标识右侧当前噪域。右侧属性中的 ⌖ 按钮可在共享预览中拖动取样角点、数值与全局锚点;默认自动扩大视野以容纳屏外控制点,完成或取消后恢复原缩放,可在设置中关闭。关闭编辑用工具栏“× 噪域”。
- 取样期间可连续切换同一事件的首值、尾值与锚点,修改暂存并实时预览;“完成取样”一次应用,取消放弃本次全部修改。拖拽控制点出界时也会扩大视野并保持拖拽,结束后恢复取样前的缩放。
- 噪域使用全谱拍数和绝对坐标;调整生命周期不会裁剪内部数据,超界会在谱面检查和导出时提醒。旋转和缩放首段确定方向与尺寸,后续段按角度差和倍率比围绕锚点累计中心轨迹,移动最后叠加绝对坐标偏移。同层内各状态集合分别合成:普通覆盖至少一次有效,反转覆盖恰好一次时反转,覆盖两次及以上时不反转;预备状态同时计入未激活集合。原生 JSON / PEZ 保留噪域;含显式噪域层时使用至少 RPEVersion 230,否则使用至少 220;原 RPE 导出必须明确确认移除噪域,仅修改导出副本。
- 噪域列表上方按层展开设置,可添加、删除和重命名噪域层;右侧属性可修改噪域所属层。编辑时间轴、列表和预览始终展示全部层,跨层选择与复制粘贴保留各自所属层;新噪域放入第一个层。各层独立合成,按列表顺序叠加,层之间不抵消。删除层时可将噪域转入其他层。
- 每层可导入完整皮肤文件夹或 ZIP(根目录含
main.glsl,可含config.json),资源保存至shader/皮肤名/并随谱面库、恢复副本和 PEZ 保存。支持多 Pass、命名 Target、历史纹理、独立低性能通道、外部纹理选项和参数编辑。设置 → 噪域预览中的“忽略皮肤,使用简易渲染”默认关闭;开启只替换视觉,不改变层和反转规则。皮肤错误时提示并回退简易预览。编辑器不产生皮肤触摸动画。JSON 只保存引用,跨设备携带皮肤请导出 PEZ。 - 噪域层的皮肤列表统一按“皮肤名(作者名)”显示各皮肤
config.json中的author,内置和导入皮肤均动态读取;未提供作者时仅显示名字。内置 NoiseField、Ocean 单独保存在assets/noise-skins/,新谱面可直接选用。选用时完整资源复制到当前谱面,支持本地保存、恢复备份和 PEZ 携带;与现有同名皮肤不同时使用独立路径,不覆盖原资源。 - 皮肤列表平铺显示,相同内置资源只列一次。修改参数后出现“已修改”版本,可在原始参数与修改后的版本之间切换;各噪域层分别记住用过的皮肤参数和性能通道,随谱面保存与导出。选择其他皮肤、简易渲染或恢复默认参数均不删除已记住的修改。
- 层管理中的“隐藏”只影响预览,编辑区和列表仍显示本层噪域;“暂用简易渲染”只对已设置皮肤的层有效,暂时跳过该层皮肤并保留其配置。这两个选项关闭面板或噪域编辑后继续有效,重新进入谱面时重置,不写入谱面或设置。左侧反转噪域使用紫色区分,激活概览前的虚线表示预备闪烁时长,随 BPM 映射到对应位置。
- “谱面工具 → 噪域图案”将指定字体的文字或本地图片二值化,拟合为互不重叠的普通矩形噪域。支持本地字体、多行文字、图片前景和阈值、16–512 格精度、矩形合并与大小限制;生成前显示数量,左侧实时预览,拖动控制点可移动、缩放和旋转图案。首尾出现拍、统一存在时间、29 种缓动及 18 种浮现顺序控制演示,激活区间相对各块出现拍设置;目标层、反转与预备闪烁可统一指定。末拍未手动修改时跟随首拍,可播放或拖动预览进度,也可独立检查完整形状。生成是一步可撤销操作,源图片和字体仅在本机处理,结果不依赖它们。
- 出现缓动以时间比例为横轴、已出现的噪域数量比例为纵轴:Out 型先快后慢,In 型先慢后快。回弹或弹性曲线按首次达到对应比例的时刻生成,已出现的块不撤回;首块、末块保留指定的首尾出现拍。
- “谱面工具 → 噪域追踪”可将判定线或音符在指定拍数区间内的位置和旋转拟合为一个噪域的普通移动 / 旋转事件。判定线支持列表或预览取样;取样时暂时隐藏编辑区,并临时以不透明方式显示全部判定线,结束后恢复。音符通过预览取样,Hold 身体可选,位置按头部计算。可设置中心对称的宽高、目标层、反转、激活及采样精度,左侧实时预览并可拖动进度或播放演示。生成可一次撤销 / 重做,面板与参数保留;后续修改目标不会自动改写已生成的噪域,需要重新生成。
- 噪域渲染的还原尚未完成。
- 顶部“打开 JSON / PEZ”可直接导入含噪域的官方 v3 JSON / ZIP / PEZ,自动转换关键帧、坐标、缓动和音乐时间并匹配媒体。
- 多选自动打开多音符/多事件编辑,支持脚本、参数历史与命名收藏;事件支持克隆、批量切割和粘合。克隆可选择是否保留源事件,撤销/重做保留对应的多选状态。
- 多线事件跨线单击替换原选择,Ctrl 保留多选;A/S、D、全选、复制剪切粘贴及方向键按物件实际所属线处理。
- 事件编辑的数值属性支持左右拖动名称连续调值:进入拖动即请求 Pointer Lock 锁定指针,光标固定在按下位置、系统指针隐藏,拖到窗口或屏幕边缘之外仍可继续调值;每一步实时取样预览效果,暂停时预览循环播放该事件自己的时间范围,正在播放时跟随当前时间,因此无论播放头在哪都能看清改动。Shift 粗调(10× 并吸附 10),Alt 微调(0.1×),松开后作为一步撤销应用,Esc 取消并释放锁定。拖动结束的点击不会把焦点送进输入框,单选事件或单线光标下的单个事件可拖动,多选时仍直接输入。每像素步长可在“设置 → 事件编辑 → 拖动属性名称灵敏度”中按 0.1–8 倍调整,吸附步长始终为各类型的基准值。
- 音符
size只改变宽度,普通与高亮音符、Hold 头尾、预览和编辑区共用这一规则;尺寸控制曲线仍同时作用于宽高。判定线面板的“锚点 X / Y”作用于默认线、图片与文本,默认(0.5,0.5),允许超出 0–1;锚点只改变线纹理的摆放,不平移音符或判定位置。“BPM 倍率”显示文件bpmfactor的倒数,例如填 2 会保存为 0.5,有效 BPM 为基础 BPM 的两倍,既有文件时序保持原样。 - “生成曲线轨迹”生成判定线的 X/Y 位移及可选旋转事件,与“填充曲线音符”独立。支持参数方程、极坐标、截取、起点对齐和整体旋转;32 种内置预设涵盖多边形、波形、摆线、旋轮线和超椭圆等,点击图形会在下方展开专属参数,调整时实时预览,点击“正式填入轨迹参数”后再生成。生成 / 应用按钮固定在页面底部,随机种子旁可一键随机。
- 判定线角度可手填表达式或开启自动切线:在变换后的曲线上数值求导,按 RPE 顺时针为正的角度输出,连续处理跨周旋转。关闭自动切线后恢复手填值。
- “谱面工具 → 文字拼合”在右侧临时页面中将文字拟合为固定大小、可旋转的音符排列。音符种类下拉框可选 Drag(默认)、Tap、Flick,切换后按对应贴图比例重新拟合并更新预览。支持多行、系统字体和本地字体文件;指定现有线号 / 范围 / 组名作为数量上限,设置目标拍数、总宽度、中心、音符大小与容忍度。先提取字形骨架、统一笔画宽度,减少为表现粗体而平行堆叠音符;优先水平、竖直、45° 方向,保留其他角度以表达曲线和斜笔画。后台实时计算,右侧对比字形与笔画,左侧预览固定在目标时刻。误差采用统一宽度后的骨架与音符主体覆盖的交并比,每个独立连通部分的骨架覆盖度还须达到指定下限(默认 95%,可调 0–100%,与误差容忍度独立);任一条件不满足则不写入谱面。降低覆盖下限可减少用线,也可能遗漏小笔画;设为 0% 时仅检查误差。该指标不包括高亮光晕,也不保证理论最少用线;emoji 按单色剪影提取骨架,缺字可能由系统回退字体显示。
- 文字拼合生成基础层 0 的瞬时 X/Y/旋转事件,补偿父线和其他事件层,可选添加所选类型的零速假音符,一次撤销整个操作。已有音符应与所选类型一致,并为 X=0、Y 偏移=0、速度=0、指定大小;线的透明度、音符控制曲线等仍参与实际渲染。覆盖正在发生的位移 / 旋转需显式勾选替换,整体轨迹和穿过 Bezier 的情况需先拆分;未来事件与父线运动仍会继续生效。文本与字体在本机处理,导出只需要生成后的普通事件,不依赖字体。
- 轨迹以 X 轨道上的一个整体事件保存,改变起止拍会整体调整运动时长;点击该事件可重新编辑,也可拆分为普通 X/Y/旋转事件。含轨迹的谱面使用 RPEVersion 210;Next JSON/PEZ 保留整体轨迹,原 RPE JSON/PEZ 转换为普通事件。拆分和兼容导出默认启用缓动拟合,在指定容忍度内减少等分碎事件:误差相对原始碎事件逐轴计算,X/Y 单位为坐标、旋转单位为度。关闭优化可保留全部等分段;段数决定原始采样精度,容忍度控制后续拟合误差。
安装 Node.js 22 或更新版本,下载源码后在项目目录运行:
npm startWindows 也可双击 start.cmd。无需安装 npm 依赖。默认打开 http://127.0.0.1:4173,关闭终端会停止本地服务。
桌面包内置 Electron 运行环境,无需另装 Node.js 或浏览器。发布页提供 Windows、macOS、Linux 的 x64 / ARM64 桌面包;Windows 使用 ZIP,macOS 使用 DMG,Linux 使用 tar.xz。Windows 解压后运行 RePhiEdit-Next.exe,macOS 将应用拖入 Applications,Linux 解压后运行 RePhiEdit-Next。
桌面版采用原生文件存储,默认谱面库位于系统“文档”目录的 RePhiEdit Next/Library;实际路径可在“设置 → 本地存储与外部备份”查看、打开和迁移。项目、恢复记录、皮肤、模组与设置写入库内,音乐、曲绘等资源按内容去重。%APPDATA%\rpe-next-desktop 保留桌面运行配置、缓存和库位置指针。桌面与网页版谱面库独立,可用 PEZ 转移项目。
同一 Windows 用户更新或移动桌面程序后会自动继承原有设置和谱面库,无需复制设置到新程序目录;“谱面信息 → 打开谱面所在文件夹”可打开当前已保存项目的存档文件夹。
首次启动会自动复制并校验旧桌面数据库中的项目、恢复记录、导入包与设置,原数据库保留;中断后可继续迁移,不覆盖已有的新存档。保存由后台线程处理,先完成新版本和素材,再安全切换存档指针;旧快照不能覆盖新版本。SQLite 只保存可重建的索引,项目文件才是原始数据。
桌面删除项目会移入回收站,可在设置中恢复或永久删除;恢复记录也可单独清理。“备份完整库到文件夹”生成独立、经过校验的副本,包含保留版本、恢复记录、设置和素材;“使用已有谱面库 / 完整备份”可切换到该副本,两个库不会合并。“导出全部谱面备份”生成可跨平台导入的 PEZ 集合。迁移库位置成功后保留原目录。不要在程序使用库时手动修改其中的索引、版本指针或素材文件。
手动保存在后台写入本地谱面库:网页端的谱面、素材和库摘要通过同一个 IndexedDB 事务提交,桌面端先写完整新版本再原子切换存档指针;失败时保留上次完整存档。保存期间可以继续编辑,新修改仍会标记为未保存,退出前请等待保存完成。桌面端批量传输谱面分片,核对内容后复用未变化的音乐、曲绘及缩略图,避免每次保存重复写入全部媒体。
设置 → 本地存储与外部备份可查看估计用量、申请持久化保护、管理恢复副本,以及将整个谱面库(包含归档项目)导出为 ZIP。ZIP 中每个项目是一份独立 PEZ,解压后可逐个重新导入。持久化申请会在首次手动保存时尝试,是否批准由浏览器决定;它不能防止主动清除网站数据,也不替代外部备份。未记录外部备份或距上次发起备份超过 7 天时,谱面库会提醒;下载后请确认文件实际保存成功。
同一项目在多个窗口中编辑时,保存会在事务内核对版本,拒绝以旧快照覆盖其他窗口的新存档;冲突时保留本地编辑,可导出 PEZ 或另存新项目。保存期间修改后再次按保存,会排队保存新的快照。删除项目需再次确认,可选同时删除该项目的恢复副本;归档只改变显示,不释放素材占用。
自动备份将谱面和素材分批传入后台,避免整份数据复制和存储阻塞编辑。网页端新备份与旧备份清理在同一事务中完成;桌面端先提交新备份,再清理超出保留数量的旧副本。备份期间继续编辑的内容会留待下一次备份,没有新修改时不会重复创建副本。
手动保存也按块传入后台,保留素材原缓冲区;后台使用 Blob 存放素材,避免为全部素材再预分配连续字节数组,读取时兼容原有存档。配额、升级或冲突错误会明确提示。导入 ZIP/PEZ 会在解压前检查全部目录;超大体积、文件数或异常压缩倍率会先请求确认,普通谱面直接打开,确认后仍校验实际解压长度与 CRC。
设置中的“快捷键设置”支持搜索、按键录入、清除绑定、逐项或全部还原,以及 JSON / 原版 Hotkey.txt 导入。错误冲突需修正后才能应用;音符与事件的放置键、短按粘贴与长按剪贴板历史、有无选中物件时的移动键允许复用。组合键严格匹配修饰键,Ctrl+V 与 Ctrl+Shift+V 不冲突。默认判定线宽度调节默认贴图的粗细,并同时作用于背景预览和播放预览。
“音频与播放 → 滚轮调时不早于音频开头”默认开启:滚轮最多退到音频 0 秒,有延迟时仍可出现相应的负拍数;关闭后可继续向前调时。该设置保存在本机,对普通编辑、噪域编辑和预览均生效。噪域追踪实时预览中也可用滚轮调时;连续内部事件共享数值范围,不在短事件接缝处堆叠端点数值。
“显示与网格 → 绘制事件曲线”默认开启,可统一控制普通、多线及噪域内部事件的曲线显示。密集事件通过缓存缓动采样和事件分组、批量绘制连续曲线及跳过屏幕外内容减少绘制开销,保留逐段选中、拖拽和跨屏框选。
“设置 → 音符皮肤与音效 → 管理音符皮肤”打开独立的管理界面。支持 Phira / prpr 的 ZIP 资源包或文件夹(info.yml、普通 / 双押音符 PNG、hit_fx.png,可选 click.ogg / drag.ogg / flick.ogg),缺省音效使用编辑器默认音效,谱面自定义音效保持优先。皮肤卡片展示音符外观,右侧可预览普通 / 等时高亮、Hold 和打击动画,试听音效、编辑参数、替换素材、恢复原始参数、应用或导出兼容 ZIP。Hold 图集头尾、重复身体、触线留头和紧凑锚点,以及特效图集、时长、缩放、旋转、着色、方形粒子均遵循包配置。选用和修改保存在本机,下次启动恢复,不写入或随谱面导出;ending.ogg 仅随资源包保留。当前内置项为默认皮肤,后续资源包可通过 assets/note-skins/index.json 扩展。
资源包的等时高亮尺寸遵循 Phira / prpr:以 click_mh.png 和 click.png 的原始宽度比,统一缩放各类高亮音符,保留贴图为光晕预留的空间;Hold 的头尾和身体宽度使用同一倍率,持续长度保持不变。
大贴图按需解码,并按当前显示尺度选择缓存分辨率;缩放放大时自动补充更高分辨率。该缓存不改变贴图坐标、逻辑尺寸或导出的原始素材。
仅在需要桌面包时手动运行(不会随网页构建或部署自动生成):
npm ci
npm run build:desktop产物位于 release/,只包含程序、内置素材与许可文件;不包含个人谱面和开发记录。开发调试可运行 npm run desktop。
npm run build:release 在当前系统与架构上构建发布包,读取 Git 已提交的公开素材,保留中英文运行资源,实测包内程序后生成压缩文件与校验清单。Windows 可额外运行 npm run build:release -- --server 生成联机服务器 GUI。GitHub Actions 中的 Build release packages 工作流可同时构建并验证六个平台组合。
右上角“模组”可管理内置和导入模组;已装载数量显示在右下角。外部模组导入须主动确认风险,导入后默认禁用。模组在编辑器页面执行,拥有完整编辑器权限,可能读取、更改当前浏览器存储或桌面谱面库,或发送网络数据;请只启用可信代码。模组协议涵盖界面、语义、谱面结构、导入导出、函数补丁和生命周期,参见 模组协议与开发指南、API 声明 和 清单 Schema。制作时可用 node tools/pack-mod.mjs <目录> [输出.rpenmod]。
“谱面工具 → 全局事件”打开独立时间轴和非常驻总览,按种类显示全曲密度;选中事件进入单独属性页。默认列宽与普通事件一致,不同种类留空隙;每种可有多列。内置占位仅用于测试、不写入谱面;模组可注册自定义类型、宽度、属性和绘制,保存时自动记录来源,停用模组保留只读数据。详见 全局事件协议。
内置“星航 · 谱面躲避”默认 F8 开始/终止,快捷键可改;五颗心,在预览中躲避音符、Hold 身体与激活噪域,收集星星和随机修复补给。未激活及预备闪烁的噪域不产生碰撞,移出暂停、移回扣心;结算支持重试。游戏期间锁定编辑,关闭或停用恢复原视图,不修改谱面。模组默认均禁用;紧急恢复键 Ctrl+Alt+Shift+F11 禁用全部,地址 ?mods=off 或桌面启动参数 --mods-off 跳过自动装载。
内置“像素矿工”默认 F9 开关工具状态、Ctrl+Shift+F9 恢复全部控件,均可修改。首格固定像素钻石镐,1–9 选物品栏;长按可见控件挖掘,产生裂纹、挥动、碎屑、带方形描边的旋转掉落物、绿色经验球与等级。经验球先落地,停留半秒后飞向鼠标。约两秒后有空位才拾取控件,满栏时掉落物持续保留;选中控件物品后点击放置,原控件继续工作,也可再次挖掘。皮肤整理和面板重新生成同一控件时会保留挖掘状态;吸附、保调等勾选控件可连同标签一起挖掘。关闭工具状态保留布局,停用模组或恢复快捷键完整复原;效果仅在本次页面中保留,不修改谱面或撤销历史。文本输入和滚轮调时保留,模组管理入口保留可用。与星航互斥,图像与音效均为程序生成。
内置“三维摄像机”启用后,在全局事件中增加位置 X/Y/Z、偏航、俯仰、画面倾斜和视角七列,支持缓动与首尾预览拖拽。全局事件总览的“姿态过渡助手”(默认 Ctrl+Alt+C)打开独立三维场景,直接拖动摄像机移动轴或旋转环,切换编辑首尾姿态,另一端较暗显示;两端实际画面同时预览,可动态查看过渡,一次生成、一步撤销。生成冲突直接显示在固定按钮区。相机作用于判定线、音符、打击特效和噪域;总览中的“UI 和背景跟随谱面”属于当前谱面,默认关闭,开启后背景图片及游戏 UI 也参与投影。Next JSON/PEZ 保存事件、来源及各谱面独立的跟随选项,停用保留只读数据。使用方法及坐标规则见 三维摄像机说明。
谱面、媒体、热键、设置和自动备份在网页端保存在当前同源本地存储,桌面端保存在所选原生谱面库,没有分析埋点。只有主动创建或加入联机房间时,当前谱面、编辑操作、昵称、鼠标位置和聊天才会传给指定的协作服务器与获准参与者;媒体由房主手动共享,接收者需勾选接收。热键、其他谱面、剪贴板与自动备份不共享。GitHub Pages 提供静态网页托管,访问网页时托管方可能记录常规访问日志。
不同浏览器、地址、端口及在线/本地版本的谱面库相互独立。清除网站数据可能删除谱面库和自动备份,请定期导出 PEZ。选择原 RPE 文件夹只用于本地读取迁移,不会自动上传文件。
维护者使用独立的服务器 GUI,启动服务并配置公网入口;参见 服务器使用说明。编辑器中打开“谱面工具 → 联机协作”,填服务器地址创建房间,复制邀请给伙伴。加入后各自时间与视野独立,横向时间滑条上显示协作者位置,按 / 打开聊天。对象选中后申请编辑锁,批量操作原子提交,个人撤销不会覆盖他人的后续修改。
当前可靠编辑同步经过服务器,鼠标尝试 WebRTC 直连并自动回退。公网使用 WSS;服务器 GUI 支持启动可选 Cloudflare 隧道。房主掉线暂停提交,客户端重连;服务器重启会清空内存房间,请各自保存谱面。素材为手动共享,暂不自动传送 shader 文件。大规模公网负载、跨运营商 P2P 连通率和完整交互仍需进一步实测。
服务器维护工具与编辑器桌面包分开构建:npm ci --prefix collaboration-server、npm run build:collaboration-server。仅输出到本地 release/,网页构建不会封装桌面程序。
编辑器支持在“设置 → 编辑器皮肤”中导入、预览和切换独立皮肤包,涵盖界面样式、字体、图片、动画、命令分组和编辑画布色板。当前 API 3 保留响应式变量、容器规则、状态信号、分区画布、可调参数和同包明暗变体,并允许画布色板引用颜色参数,与界面配色一同调整。参见 编辑器皮肤协议 v1 和 机器可读组件目录。自定义皮肤可运行 node tools/pack-editor-skin.mjs <皮肤目录> [输出文件] 打包。
新配置默认使用内置“墨线 Inkline(cmdysj)”,可在设置中切换皮肤、修改及恢复原始参数。原始皮肤仍保留;Inkline 的名称、作者、字体声明与素材均来自其皮肤包。网页端与桌面端共用 src/core/default-settings.mjs 中的初始配置;已有个人设置优先。
npm test
npm run build
npm run smoke-build
npm run build:pagesbuild 生成可本地运行的 dist/;build:pages 仅生成静态网站。推送到 main 后,GitHub Actions 自动测试并部署 GitHub Pages。
本项目采用 PolyForm Noncommercial 1.0.0,仅许可符合条款的非商业用途,商业用途需另行取得授权。它属于源码可用许可,不是 OSI 定义的开源许可。再分发须保留许可证及 NOTICE 中的必需声明。
原 RPE 代码与素材是本次重构的基础,保留其来源及相应权利;独立第三方内容的原有权利和许可不因本项目许可而改变。本项目并非 Phigros 官方产品。
感谢 Stellate 提供噪域皮肤协议,以及 NoiseField、Ocean 两套内置噪域皮肤。
感谢 -虹之梦- 提供内置音符皮肤“梦之海(Sea of Dreams - Neo)”。