大量更改合并 #56

Merged
obugs merged 151 commits from check into main 2026-03-25 15:30:53 +08:00
8 changed files with 406 additions and 258 deletions
Showing only changes of commit c3f78823a1 - Show all commits
+3 -3
View File
@@ -38,7 +38,7 @@
- 进阶:视觉特效
- [<img src="/indexicon/camera.png"/><p>镜头移动</p>](/pages/camera.md)
- [<img src="/indexicon/roomfx.png"/><p>房间视效</p>](/pages/roomfx.md)
- [<img src="/indexicon/vfxpro.png"/><p>视觉干扰</p>](/pages/vfxpro.md)
- [<img src=""/><p>视觉干扰</p>](/pages/vfxpro.md)
- [<img src="/indexicon/camerafx.png"/><p>摄像机视效</p>](/pages/camerafx.md)
- [<img src="/indexicon/hallofmirror.png"/><p>镜厅</p>](/pages/hallofmirror.md)
- [<img src="/indexicon/windowmove.png"/><p>窗口相关的动画</p>](/pages/WindowDance.md)
@@ -50,11 +50,11 @@
- [<img src="/indexicon/tag.png"/><p>标签</p>](/pages/tag.md)
- [<img src="/indexicon/custommethod.png"/><p>自定义方法</p>](/pages/custommethod.md)
- [<img src="/indexicon/condition.png"/><p>条件</p>](/pages/condition.md)
- [<img src="/indexicon/variable.png"/><p>变量</p>](/pages/variable.md)
- [<img src="/indexicon/variable.png"/><p>表达式</p>](/pages/expression.md)
- 高级:第三方工具
- [<img src="/indexicon/3rdparty_coderd.png"/><p>[Python]CodeRD</p>](/pages/3rdparty_coderd.md)
- [<img src="/indexicon/3rdparty_rdtk.png"/><p>[C#]RhythmBase</p>](/pages/3rdparty_rdtk.md)
- [<img src="/indexicon/3rdparty_aserdeco.png" width="64px"/><p>[lua]AserDeco插件</p>](/pages/3rdparty_aserdeco.md)
- [<img src="" width="64px"/><p>[lua]AserDeco插件</p>](/pages/3rdparty_aserdeco.md)
- 附录
- [<img src="/indexicon/events.png"/><p>事件列表</p>](/pages/appendix_events.md)
- [<img src="/indexicon/vfxs.png"/><p>预设特效列表</p>](/pages/appendix_vfxs.md)
+41 -17
View File
@@ -121,7 +121,7 @@
| sndPoliticianHurryUp3 | 政客说:Make a move already, would you? |
| sndPoliticianHurryUp4 | 政客说:Oh, bloody hell. Hurry up already! |
### 在EA版本中出现的音效
### 在正式版本中使用的音效
| 音效名 | 内容 |
| :--- | :--- |
@@ -160,10 +160,20 @@
| sndWhistle5 | 口哨声第5拍 |
| sndWhistle7 | 口哨声第7拍 |
| sndApplause | 鼓掌声 |
| sndRowShrink | 轨道缩短声 |
| sndSkate1 | <code>MD-3</code>内布若拍子用到的提示音(准备) |
| sndSkate2 | <code>MD-3</code>内布若拍子用到的提示音(释放) |
| sndSquareshot | 哐啷声 |
| sndTriangleshot1 | 三角拍子声(后面的数字可改为1~10) |
| sndSleighHi | 圣诞树节拍器 - 高 |
| sndSleighLo | 圣诞树节拍器 - 低 |
| sndCalibrationBeep | 校准界面哔声 |
| sndMelonMorse | Melon 摩尔斯电码 |
| sndVividStasisResultsRiser | <code>X-FTS</code>恋恋群星S+评价前摇 |
| sndVividStasisScratch | <code>X-FTS</code>恋恋群星V评价出现 |
| sndWingFlap | 鸟儿扇动翅膀 |
### 未使用的音效
### 未在正式版本中使用的音效
| 音效名 | 内容 |
| :--- | :--- |
@@ -245,7 +255,7 @@
| sndLowHealthCSharpA | 低血量警告音 CA# |
| sndLowHealthE | 低血量警告音 E |
### 在EA版本中出现的音乐
### 在正式版本中出现的音乐
| 音效名 | 内容 | 曲速 |
| :--- | :--- | :--- |
@@ -272,6 +282,8 @@
| sndTutorialHouse_Burn2 | <code>5-2N</code>教程音乐的第二阶段 | 120 |
| sndTutorialHouse_Rest | <code>5-2</code>和<code>5-2N</code>的教程音乐(休息) | 120 |
| sndTutorialHouse_Riser | <code>5-2</code>和<code>5-2N</code>的教程音乐开始练习前摇(鼓声) | 120 |
| sndTutorialMilonga | <code>5-3N</code>的教程音乐 | 88 |
| sndTutorialMilongaPrelude | <code>5-3N</code>的教程音乐前奏 | 88 |
| sndTutorialSyncopation | <code>6-1</code>的教程音乐开头 | 110 |
| sndTutorialSyncopation | <code>6-1</code>的教程音乐开头,无开头空白 | 110 |
| sndTutorialSyncopation_Phase1 | <code>6-1</code>教程音乐第一阶段 | 110 |
@@ -284,6 +296,7 @@
| sndOrientalTechnodown | <code>1-1N</code>东方回响贝斯的开头部分 | |
| sndOrientalDubstep | <code>1-1N</code>东方回响贝斯 | 130 |
| sndIntimate | <code>1-2</code>亲密 | 90 |
| sndIntimate2P | 在双人模式下的<code>1-2N</code>亲密 | 90 |
| sndOrientalInsomniac | <code>1-X</code>东方不眠夜 | 180 |
| sndOrientalInsomniac1 | <code>1-X</code> 东方不眠夜 第一部分 | |
| sndOrientalInsomniac2 | <code>1-X</code> 东方不眠夜 第二部分 | |
@@ -292,8 +305,8 @@
| sndGongXi | <code>1-CNY</code>春节贺岁片 | 145 |
| sndHalloween | <code>1-BOO</code>恐怖鸟主题 | 100 |
| sndLofi | <code>2-1</code>Lo-fi Hip-Hop Beats To Treat Patients To | 75 |
| sndCareless | <code>2-1N</code>wish i could care less | 75~81 |
| sndCarelessCN | <code>2-1N</code>wish i could care less中文版 | 75~81 |
| sndCareless | <code>2-1N</code>wish i could care less | 75->81 |
| sndCarelessCN | <code>2-1N</code>wish i could care less中文版 | 75->81 |
| sndSupraventricular88 | <code>2-2</code>室上性心动过速 | 88 |
| sndUnreachable | <code>2-2N</code>Unreachable | 180 |
| sndPuffPiece | <code>2-3</code>缭绕 | 127 |
@@ -301,38 +314,37 @@
| song_of_the_sea | <code>2-4</code>与<code>2-4N</code>的背景音乐 | 60 |
| sndAllTheTimes | <code>2-X</code>All The Times 咖啡之歌 | 145 |
| sndAllTheTimesCN | <code>2-X</code>All The Times 咖啡之歌中文版 | 145 |
| sndBitterness | <code>2-XN</code>Bitter Times 爱情是苦和甜的交错前半段 | 112~195 |
| sndBitternessCutscene | <code>2-XN</code>Bitter Times 爱情是苦和甜的交错后半段 | 112->195->264->195 |
| sndBitterness | <code>2-XN</code>Bitter Times 爱情是苦和甜的交错前半段 | 112->196-->231->255-->196 |
| sndBitternessCutscene | <code>2-XN</code>Bitter Times 爱情是苦和甜的交错后半段 | |
| sndTutorialBeans | <code>2-B1</code>武士豆子跳 | 110 |
| sndSleepyGarden | <code>3-1</code>沉睡花园 | 158 |
| sndLounge | <code>3-1N</code>休息室 | 75 |
| sndBarbra | <code>3-2</code>典雅 | 115 |
| sndDistantDuet | <code>3-3</code>分离二重唱 | 194 |
| sndDistantDuetNight | <code>3-3</code>分离二重唱·夜 | 194 |
| sndDistantDuet | <code>3-3</code>分离二重唱 | 194 |
| sndDistantDuetNight | <code>3-3</code>分离二重唱·夜 | 194 |
| sndLesMisBar1 | <code>3-X</code>轮班之歌 | 100 |
| sndLesMisBar39 | <code>3-X</code>轮班之歌 从第39小节开始 | |
| sndMinersong | <code>4-1</code>实习医生培训演练表现评估 | 128->225.9->140~110? |
| sndLesmisDog | 节奏狗生 | 100 |
| sndMinersong | <code>4-1</code>实习医生培训演练表现评估 | 128 |
| sndRollerdisco | <code>4-1N</code>滑板迪斯科震颤 | 125.5 |
| sndInvisible | <code>4-2</code>和<code>4-2N</code> | 190 |
| sndSteinway | <code>4-3</code>斯坦威 | 80 |
| sndKnowYou | <code>4-4</code>懂你 | 157 |
| sndMurmurs | <code>4-4N</code>喃喃细语 | 65 |
| sndLuckyBreak | <code>5-1</code>路吉摔了一跤 | 156 |
| sndOSTL | <code>5-2</code>One Slip Too Late 创伤之歌 | 175~150 |
| sndOSTLCN | <code>5-2</code>One Slip Too Late 创伤之歌中文版 | 175~150 |
| sndOSTL | <code>5-1N</code>One Slip Too Late 创伤之歌 | 175->150->175 |
| sndOSTLCN | <code>5-1N</code>One Slip Too Late 创伤之歌中文版 | 175->150->175 |
| sndFreezeshot | <code>5-2</code>Lo-fi Beats For Patients To Chill To | 140 |
| sndFreezeshotH | <code>5-2N</code>无以为继的伤心欲绝 | 176->100->80 |
| sndTherapy1 | <code>5-3</code>七局伸展操第一部分 | 128 |
| sndTherapy2 | <code>5-3</code>七局伸展操第二部分 | 124 |
| sndTherapy3 | <code>5-3</code>七局伸展操第三部分 | 136 |
| sndTherapyEnding | <code>5-3</code>七局伸展操结尾 | 136 |
| sndCorazonesViejos | <code>5-3N</code>偕老 | 249? |
| sndCorazonesViejos | <code>5-3N</code>偕老 | 248 |
| sndDDS | <code>5-X</code>梦想永不歇 | 95->62.6->102.5 |
| sndDDSCN | <code>5-X</code>梦想永不歇中文版 | 95->62.6->102.5 |
| sndHaileyDuet | <code>6-1</code>想把心事和你说 | 94.5->190->220->181->206? |
| sndHaileyDuetCN | <code>6-1</code>想把心事和你说中文版 | 94.5->190->220->181->206? |
| sndHaileyDuet | <code>6-1</code>想把心事和你说 | 94.5-->190-->200->210-->181->198? |
| sndHaileyDuetCN | <code>6-1</code>想把心事和你说中文版 | 94.5-->190-->200->210-->181->198? |
| sndEdegaRave | <code>6-2</code>欢迎回来 | 200->85->200 |
| sndBossStage_Main | <code>6-X</code>Boss战(包括埃德加批评佩奇的一段) | 150~255 |
| sndBossStage_NoCutscene | <code>6-X</code>Boss战(不包括埃德加批评佩奇的一段) | 150~255 |
@@ -353,10 +365,21 @@
| sndWornOutTapes | <code>X-WOT</code>Worn Out Tapes | 149 |
| sndSparkLine | <code>X-KOB</code>气球王国 | 124 |
| sndVividStasis | <code>X-FTS</code>恋恋群星 | 150 |
| sndVividStasisResults | <code>X-FTS</code>恋恋群星V评价结算音乐 | 150 |
| sndOsmBluesRadio | 夜间的病房内过剧情 | 98? |
| sndOsmBluesNormal | 袖管涂鸦背景音乐 | 98? |
| sndInsomniacCutscene | 1-X后过剧情 | 140 |
| SoftPianoIntimate | 第一章末尾的过剧情 | 88 |
| sndDistantDuetCutsceneLoop | 3-3后过剧情 | 165 |
| sndDDSPianoCutsceneLoop | 5-X后过剧情第一部分 | 130 |
| sndDDSEdegaCutscene | 5-X后过剧情第一部分(埃德加来) | 140 |
| sndDDSVirusTalkCutsceneLoop | 5-X后过剧情(伊恩来) | 105 |
| sndMarksTheme | 病历间音乐 | 110 |
| sndBlurredCutscene | 7-1后过剧情 | 63? |
| sndPaigeReturnsCutscene | 佩奇回来 | 157? |
| sndEdegaBedsidePaigeCutscene | 7-X2后埃德加住院 | 58? |
### 未使用的音乐
### 未在正式版本中出现的音乐
| 音效名 | 内容 | 曲速 |
| :--- | :--- | :--- |
@@ -368,4 +391,5 @@
| sndChopin | Op.10 No.4 | |
| sndOrientalInsomniacHardRepOld | 超东方不眠夜(旧版) | |
| sndGreenlightInsomniac | 超东方不眠夜(预告片版) | |
| sndOpeningCredits | |
| sndLanterns | | 150 |
| sndOpeningCredits | | 187.9 |
+2 -2
View File
@@ -24,7 +24,7 @@
除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第七拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。
这些音效在设置的时候是无法下拉列表选择更改的,只能通过键入游戏内置的音效文件名,或者导入自定义的音效来改变。目前已公开的内置音效文件名因为数量太多,集中收录在了[附录3](../appendix/3.html)中。
这些音效在设置的时候是无法下拉列表选择更改的,只能通过键入游戏内置的音效文件名,或者导入自定义的音效来改变。目前已公开的内置音效文件名因为数量太多,集中收录在了[附录3](../pages/appendix_audios.md)中。
## 心爆
@@ -132,4 +132,4 @@ g 4 7 2 {
## 播放音效
**播放音效**是所有音效设置里面自由度最高的一个,可以在任意的时间开始播放一个音效文件,和游戏的轨道与按键没有任何关联。如果处理得当,你甚至可以用这个功能写一个打击乐段在游戏里面。
另外,剧情模式里面的内置音效也可以在这里通过写文件名的形式添加进自己的谱面。但是官方目前并没有公开所有的音效文件,我们收集了其中的一部分放在了[附录3](../appendix/3.html)中整理成了表格,需要的话可以自取。
另外,剧情模式里面的内置音效也可以在这里通过写文件名的形式添加进自己的谱面。但是官方目前并没有公开所有的音效文件,我们收集了其中的一部分放在了[附录3](../pages/appendix_audios.md)中整理成了表格,需要的话可以自取。
+1 -1
View File
@@ -117,7 +117,7 @@ ea.AdvanceText 8 1;
你以为这里会有一个我们制作的关卡?其实并不。在这里我想介绍的是官方联动关卡`MD-2`,不知道你们在游玩这关感受爆炸难度的同时有没有注意到字幕的表现?如果你没有什么印象的话可以先看看下面这个视频:
<div class="bv"><iframe src="https://player.bilibili.com/player.html?aid=374450491&page=55&autoplay=0" title="BPM 与偏移的校对教程" width="100%" height="100%" scrolling="no" frameborder="no" framespacing="0" allowfullscreen="true"></iframe></div>
<div class="bv"><iframe src="https://player.bilibili.com/player.html?aid=374450491&page=56&autoplay=0" title="BPM 与偏移的校对教程" width="100%" height="100%" scrolling="no" frameborder="no" framespacing="0" allowfullscreen="true"></iframe></div>
看完之后我们再来回忆一下其中一段歌词的表现:
+9
View File
@@ -1,5 +1,14 @@
# 更新信息
#### 2026-03-01
- **变量**一节被替换为[表达式](../pages/expression.md)。
- 为各种标题添加了容易辨识和定位的背景渐变条。
- ~~我也要加入文档编撰列表吗(~~
#### 2026-02-26
- 临时修复了若干资源查找问题
- 同步音频列表
#### 2026-01-24
- 制作人员表增加了
+1
View File
@@ -14,6 +14,7 @@
- [0x4D2](https://space.bilibili.com/478595264)
- [正宗的小绿君](https://space.bilibili.com/1782518253)
- [kuanpan](https://space.bilibili.com/1928620300)
- [obugs](https://space.bilibili.com/498017546)
- 视频制作:
- [吾夜犹明](https://space.bilibili.com/29219948)
- [山不转水到渠成](https://space.bilibili.com/4870582)
+108
View File
@@ -0,0 +1,108 @@
# 表达式
在节奏医生编辑器中,为了增加灵活性与可玩性,很多地方都支持使用表达式在游戏运行时动态决定实际的效果。这种表达式被称作 **RDCode**
## 数据类型
类似于其他编程语言,RDCode 中有且仅有一些预定义的数据类型。
### 常量
表示一个确定的值,其值在关卡制作时就已经确立。
### 变量
表示一个不定的值,其值可能会在关卡运行过程中被赋值语句更改。
- **访问权限**
为了保证关卡运行的稳定,一些变量会设置访问权限:
- **只读**
此变量可以参与表达式求值(读),但不能被赋值(写)。
- **只写**
此变量仅允许被赋值(写)而不能参与表达式求值(读)。
- **可读写**
此变量既能够参与表达式求值(读)也能够被赋值(写)。
- #### 整形(Integer/int
即整数。
整形可以自动参与浮点型数据的数学运算。
你可以直接使用整形常量并参加运算,例如 `2026`, `-308`, `999`, `0`
- #### 浮点型(Single/Float/float
可以带有小数部分的数字。
例如 `3.1415`, `200.1`, `-9.99`
> 在将浮点型转换为整型的操作(如赋值操作)时,将遵循**向最近偶数舍入**的原则(与大多数编程语言中的**向下取整**原则不同),即若计算结果为 `0.5`,那么它对应的整数值为 `0`;而 `1.5` 将对应 `2`。
- #### 布尔型(Boolean/bool
`true``false` 以表示启用或禁用等。
> 在**自定义方法**中,
- #### 字符串型(String/string
一串字符。
不参与运算,仅在调用自定义方法时作为参数存在。
值得注意的是,不同于其他语言的双引号 `"STRING"` 等表示方式,RDCode 的字符串表示是 `str:STRING`,即在字符串的前面加上一个 `str:` 前缀。
一般而言,在 RDCode 内用到字符串型的地方都只能在一系列候选词中选择一个填入,例如在选择角色或缓速类型时。
例如 `str:Samurai`, `str:Linear`
- #### 预定义变量
节奏医生为整数、浮点数、布尔类型各预定义了 10 个可读写变量,分别以 `i`, `f`, `b` 开头,即 `i0`~`i9`, `f0`~`f9`, `b0`~`b9`
一些只读或只写的变量可在[自定义方法表](../pages/appendix_custommethods.md)查到。
## 运算类型
- **数学运算符**
`+` `-` `*` `/` `%`
- **逻辑运算符**
`And` `Or` `Not`
> 在 `And` `Or` 的两侧、`Not` 的右侧只支持布尔型数据。
- **比较运算符**
`>` `<` `>=` `<=` `==` `<>`
- **函数调用**
`Rand`, `IIf`, `atLeastRank`
> 所有的可用的自定义方法请查阅[自定义方法表](../pages/appendix_custommethods.md)。
> 表内标注的方法按照每个参数的含义及其类型表示,
> 例如 `SetMistakeWeight(int RowID, float Weight)` 中,注明了此方法需要一个 int 类型(即整形)的值表示 RowID 和一个 float 类型(即浮点型)的值表示 Weight,
> 你可以这样使用:`SetMistakeWeight(0, 2)`,表示将轨道 1 的错误权重设为 2。
## 语句类型
只能在自定义方法中使用。
- **自增/自减**
在变量后面添加 `++``--` 使变量本身加 1 或减 1。
> 布尔变量不支持自增/自减。
例如 `i2++`
- **赋值**
在变量和表达式之间使用 `=` 将变量的值设为表达式的值。
例如 `f3 = 20 * f5`
- **调用**
调用[自定义方法](../pages/appendix_custommethods.md)。
## 表达式的用途
### 条件
- 在使用[条件](../pages/condition.md)的自定义条件模式时,可以定义一个自定义条件,用于决定赋予此条件的事件能否在播放关卡时启用。
- 在条件的表达式限制下我们难以直接写出用 `And``Or` 组合的形式;但是我们可以通过设立多个自定义条件并分别添加对应的表达式,应用于事件上,或是执行多次自定义表达式并赋值给预定变量,再在条件内组合。
- 在**条件**内无法使用 `>=` `<=`。~~怀疑是史山代码发力了~~
- 在**条件**内若有 `>` `<` 存在时不允许有括号嵌套。~~史山代码还在发力~~
- 逻辑运算符的优先级比比较运算符更高。
### 自定义方法
- 自定义方法中的表达式仅在赋值和调用行为时才能使用,其中赋值时以 `[变量]=[表达式]` 形式将对应的变量设为计算后的值,调用时将表达式填入对应的参数的位置。
例如 `b0 = b1 Or Not b2 And 3 > f2`
- 自增或自减运算的左值仅能使用变量名,不能使用表达式。
- 在将布尔型数据转换为整形或浮点型的操作(如参与数学运算)时,其值将退化为整形,其中 `true` 对应 `1``false` 对应 `0`
- 在将整形或浮点型数据转换为布尔型的操作(如赋值操作)时,其值将遵循**非 `0``true`** 的原则,即若计算结果为 `0`,那么它对应的布尔值为 `false`,否则为 `true`
- 实际上在**自定义方法**内进行数学运算时,所有数据都将转换为浮点型再参与运算。
- 比较运算符的优先级比逻辑运算符更高。
- `Rand` 方法既不能包含表达式形式的参数,也不能参与计算。
### 自定义方法(注释)
- 注释型自定义方法的参数不支持表达式,仅支持单独的值或变量。
### 事件参数
- 部分事件的属性支持填入表达式,如移动轨道、移动精灵图的位置、轴点、尺寸、角度等。
- 需要用花括号 `{}` 将表达式括起来以表示这是一个表达式。
- 其他同**自定义方法**。
### 内插字符串
- 部分事件的字符串类型属性支持将表达式插入字符串,如浮动文字、显示状态牌等。
- 需要用花括号 `{}` 将表达式括起来以表示游戏需要将表达式的值替换表达式插入原字符串中。
- 其他同**自定义方法**。
+241 -235
View File
File diff suppressed because it is too large Load Diff