diff --git a/images/edge.png b/images/edge.png new file mode 100644 index 0000000..33b0225 Binary files /dev/null and b/images/edge.png differ diff --git a/images/moverow1_SpinningRows_Connect.png b/images/moverow1_SpinningRows_Connect.png new file mode 100644 index 0000000..87953f4 Binary files /dev/null and b/images/moverow1_SpinningRows_Connect.png differ diff --git a/images/moverow2_SpinningRows_Disconnect.png b/images/moverow2_SpinningRows_Disconnect.png new file mode 100644 index 0000000..d2662af Binary files /dev/null and b/images/moverow2_SpinningRows_Disconnect.png differ diff --git a/images/moverow3_SpinningRows_Rotate.png b/images/moverow3_SpinningRows_Rotate.png new file mode 100644 index 0000000..183e8fd Binary files /dev/null and b/images/moverow3_SpinningRows_Rotate.png differ diff --git a/images/moverow4_SpinningRows_ContinuousRotation.png b/images/moverow4_SpinningRows_ContinuousRotation.png new file mode 100644 index 0000000..ba4eb17 Binary files /dev/null and b/images/moverow4_SpinningRows_ContinuousRotation.png differ diff --git a/images/moverow5_SpinningRows_WavyRotation.png b/images/moverow5_SpinningRows_WavyRotation.png new file mode 100644 index 0000000..c8bd98d Binary files /dev/null and b/images/moverow5_SpinningRows_WavyRotation.png differ diff --git a/images/moverow6_SpinningRows_Merge.png b/images/moverow6_SpinningRows_Merge.png new file mode 100644 index 0000000..f427354 Binary files /dev/null and b/images/moverow6_SpinningRows_Merge.png differ diff --git a/images/moverow7_SpinningRows_Split.png b/images/moverow7_SpinningRows_Split.png new file mode 100644 index 0000000..8e89269 Binary files /dev/null and b/images/moverow7_SpinningRows_Split.png differ diff --git a/images/readrowinformation.png b/images/readrowinformation.png new file mode 100644 index 0000000..ad42340 Binary files /dev/null and b/images/readrowinformation.png differ diff --git a/images/rowfx-tintrow.png b/images/rowfx-tintrow.png index 51723aa..9878f89 100644 Binary files a/images/rowfx-tintrow.png and b/images/rowfx-tintrow.png differ diff --git a/images/rowfx_Change_Character.png b/images/rowfx_Change_Character.png new file mode 100644 index 0000000..2f0c27a Binary files /dev/null and b/images/rowfx_Change_Character.png differ diff --git a/images/rowfx_Reorder_Row.png b/images/rowfx_Reorder_Row.png new file mode 100644 index 0000000..64a5a27 Binary files /dev/null and b/images/rowfx_Reorder_Row.png differ diff --git a/images/windowsellipse.png b/images/windowsellipse.png new file mode 100644 index 0000000..6d84857 Binary files /dev/null and b/images/windowsellipse.png differ diff --git a/images/windowsmove.png b/images/windowsmove.png new file mode 100644 index 0000000..5cf6001 Binary files /dev/null and b/images/windowsmove.png differ diff --git a/images/windowsshake.png b/images/windowsshake.png new file mode 100644 index 0000000..6b097ed Binary files /dev/null and b/images/windowsshake.png differ diff --git a/images/windowssway.png b/images/windowssway.png new file mode 100644 index 0000000..404dd6e Binary files /dev/null and b/images/windowssway.png differ diff --git a/images/windowswrap.png b/images/windowswrap.png new file mode 100644 index 0000000..9ee2b45 Binary files /dev/null and b/images/windowswrap.png differ diff --git a/pages/WindowDance.md b/pages/WindowDance.md index 66c33c9..431598d 100644 --- a/pages/WindowDance.md +++ b/pages/WindowDance.md @@ -10,16 +10,104 @@ 窗口的显示和隐藏都在这个事件中,窗口默认只有窗口1是显示,其他窗口默认都是隐藏的,所以如果你需要操作其他窗口,需要把窗口显示出来再进行操作。 +如果需要使用透明窗口,记得把背景颜色设置为透明(顶部的背景也要) + 窗口板块中隐藏状态的窗口会显示灰色,可以通过这个判断你的窗口有没有忘记显示出来。 + ![默认状态下只有窗口1是显示的,其他窗口都是隐藏的,所以呈现灰色](../images/Window_Dance_Window_Hidden.png) ## 窗口动效 -(谁会,来补充一下,我只用过移动2333) +### 移动 + +移动跟**移动房间**事件一样,坐标填多少就移动到哪。 + +![](../images/windowsmove.png) + +需要注意的是参照,影响的是窗口移动的范围,这两个选项的具体情况如下: + +`居中`的范围是整个屏幕,如果将位置设置为(0,0),那么窗口只会露出一个角; + +`边缘`的范围是整个屏幕减去窗口大小,如果将位置设置为(0,0),那么窗口的左下角将对齐屏幕左下角。 + +![居中和边缘](../images/edge.png) + +### 摇摆 + +使窗口按特定速度和方向来回移动。 + +**位置:** 初始位置; + +**增幅:** 移动的幅度; + +**角度:** 来回移动的方向,0度为向右; + +**频率:** 每拍移动多少次; + +**运动缓速:** 每次移动时用的缓速; + +**缓速类型:** 偶数次移动可以设置成相同的缓速或者镜像(如从快到慢镜像后就是从慢到快)。 + +![](../images/windowssway.png) + +### 缠绕 + +像缠胶带一样将窗口绕着屏幕旋转。 + +**位置:** 初始位置; + +**速度:** 每拍移动多少距离(一圈的百分之n); + +**增幅:** 往另一个方向`摇摆`的距离(与移动方向垂直); + +**角度:** 移动的方向,0度为向右; + +**频率:** `摇摆`的频率(每拍移动多少次)。 + +![](../images/windowswrap.png) + +### 椭圆 + +将窗口绕着一点旋转。 + +**位置:** 旋转中心; + +**速度:** 每拍转多少度`(360° * n%)`; + +**使用循环:** 文本 + +**增幅:** X轴和Y轴方向分别远离这个点多远; + +**角度:** 从哪个角度开始旋转。 + +![](../images/windowsellipse.png) + +### 震动 + +震动窗口,跟震动摄像机一样。 + +**位置:** 初始位置; + +**增幅:** 震动时X轴和Y轴方向最远能到哪; + +**频率:** 每拍震动多少次; + +**周期:** 每多少拍震动的移动会重复; + +**运动缓速:** 每次震动时移动的缓速。 + +![](../images/windowsshake.png) + + +时长和缓速前面都说过了,就不再提了。 + +> 如果你想直观地看看各种移动方式的速度区别,可以[看看这里](https://easings.net/zh-cn)。 + ## 窗口大小重置 想要让窗口大小发生变化,或调整窗口的轴点,都需要借助**窗口大小重置**事件。这个事件的设置项目是这样的: + ![](../images/Window_Dance_Window_Resize.gif) **大小:** 窗口的目标大小,最大可以设置为`200%, 200%`,如果`x`和`y`同时被设置为了0,则窗口会立刻被重置为初始的大小(即`100%, 100%`)。 @@ -48,17 +136,29 @@ > 如果你想直观地看看各种移动方式的速度区别,可以[看看这里](https://easings.net/zh-cn)。 ### 轴点的使用技巧 + 我们知道,在窗口大小发生变化时,调整轴点可以改变其缩放的中心。但是实际上,即使窗口不需要缩放,我们也可以通过调整轴点来改变窗口的位置,那么这种操作从效果上看和直接使用窗口移动看似没有什么区别,实际上在一些特殊的需求中,这个方法可以被很巧妙地使用。 窗口在移动时,使用的坐标是相对整个屏幕的,而由于不同设备的屏幕分辨率不同,导致有些效果如果用窗口移动来做会在不同分辨率下有不同效果,尤其是当多个窗口之间的位置有配合的时候(如两个窗口紧贴的效果)。 + 如在16:9的分辨率下制作的两个窗口紧挨着的效果: + ![16:9分辨率下两个窗口紧贴](../images/Window_Dance_169ratio.png) + 在其他分辨率下,即使不改变窗口的位置,也可能会有不同的效果(如在22:9分辨率下): + ![在更宽的屏幕下,两个窗口无法紧贴](../images/Window_Dance_229ratio.png) -如果想要做出在类似`2-XN`中两个窗口相撞的效果,窗口中间有距离会导致表演效果大打折扣。这时我们可能会想,能不能不以屏幕为基准定位,而是以窗口的大小为基准定位,是不是就可以做到了呢?事实上,**轴点**就解决了这样的问题。 + +如果想要做出在类似`2-XN`中两个窗口相撞的效果,窗口中间有距离会导致表演效果大打折扣。这时我们可能会想,能不能不以屏幕为基准定位,而是以窗口的大小为基准定位,是不是就可以做到了呢? + +事实上,**轴点**就解决了这样的问题。 + 试想,如果两个窗口在同一个位置,而一个窗口的轴点在左边缘,另一个窗口在右边缘,就可以保证无论在什么样的分辨率下,这两个窗口都一定是紧挨着的。 + ![](../images/Window_Dance_169ratio_pivot.png) + ![使用轴点后,无论在哪个分辨率下两个窗口都是紧挨的](../images/Window_Dance_229ratio_pivot.png) + 所以当你的动画需要多个窗口之间的位置配合时,不妨试试用轴点的移动来代替直接移动窗口。 ## 设置窗口内容 @@ -66,27 +166,74 @@ ~~这个事件以前翻译错误,译成了**设置窗口数量**,害人不浅。~~ 这个事件的设置项目是这样的: + ![](../images/Window_Content.png) + **内容模式:** 可以选择**一个房间**或**全部房间**,在选择**一个房间**时,下面会出现**房间目录**选项,可以从4个房间里面选择一个,随后这个窗口中只会显示这个房间的内容。在选择全部房间时,这个窗口将会像平常一样显示全部4个房间的内容。 > 注意,在选择**一个房间**时,这个房间中的所有房间事件都不会在这个窗口中生效,包括房间移动,淡入淡出房间,房间遮罩等。 ![左侧窗口是全部房间,右侧房间是一个房间(房间1),可以发现房间移动和房间遮罩在右侧房间都没有生效](../images/Window_Dance_All_or_One.png) -**位置,缩放和角度:** 类似于摄像头移动的对应参数。在内容模式为**一个房间**时,位置是对应房间区域的对应坐标(左下角是`(0%, 0%)`,右上角是`(100%, 100%)`),在选择**全部房间**时,位置是在一个**长宽均为一个房间默认长宽的2倍的大区域**中的位置(如果需要定位到一个处于默认位置和默认大小的房间的左下角,位置是`(25%, 25%)`,右上角则是`(75%,75%)`,正中心依然是`(50%, 50%)`),但是由于窗口默认大小和一个窗口的默认大小是相同的,因此如果不改变窗口的大小,依然只能显示一个房间大小的区域。 +**位置,缩放和角度:** 类似于摄像头移动的对应参数。 + +在内容模式为**一个房间**时,等同于调用房间的摄像头,`位置`是对应房间区域的对应坐标(左下角是`(0%, 0%)`,右上角是`(100%, 100%)`); + +在选择**全部房间**时,等同于调用顶部摄像头,而所有房间可显示的范围为`(200%, 200%)`大小,所以当`位置`设置为`(100%, 100%)`时,实际会在(相对于一个房间默认大小的)`(200%, 200%)`的位置,默认位置的房间的`(100%, 100%)`则在`(75%, 75%)`的位置。 + +根据这个结论,可以将4个房间分别放在显示区域的四个角上,并显示`全部房间`,这样就能用`全部房间`分别显示4个房间了 + ![上图中黄色区域是一个处于默认位置和默认大小的房间,蓝色区域是全部房间的坐标区域](../images/Window_Dance_Coordinate_of_All_Room.png) + 无论选择哪种内容模式,超出区域范围的内容都会被裁剪。 **时长和缓速:** 略 ## 重新排列窗口 + 类似于房间板块的**重新排列房间**,可以设置窗口的上下关系。 ## 设置主窗口 + 将对应的窗口设置为主窗口,对话,顶部护士灯光,状态牌等内容将在主窗口显示。 ## 设置窗口名称 + 修改窗口的标题。在动作选择**设置**的时候,会直接设置窗口的标题;在动作选择**增补**的时候,会在原来标题的后面增加内容;在动作选择**重置**的时候,会将标题重置为`Rhythm Doctor`。 ## 设置桌面颜色 -修改模拟移动时桌面的颜色,如果不打开起始颜色,则表示从当前颜色渐变为结束颜色,如果打开起始颜色,效果将类似于**自定义闪烁**。 \ No newline at end of file + +修改模拟移动时桌面的颜色,如果不打开起始颜色,则表示从当前颜色渐变为结束颜色,如果打开起始颜色,效果将类似于**自定义闪烁**。 + +## 进阶内容(可能需要手术) + +> 如果你不知道手术是什么,可以[看看这里](https://docs.qq.com/sheet/DQUJxb0puSFFOVWpz?tab=000004)。 + +### 全屏窗口 + +因为窗口的最大大小写死了只能为200%,所以需要用到`OutElastic`缓速。 + +> 如果你忘了这个缓速长什么样,可以[看看这里](https://easings.net/zh-cn)。 + +注意到这个缓速的一部分会超出所设置的值,所以可以先将窗口缩小到`(1%,1%)`大小,然后使用`OutElastic`缓速将窗口缩放到`(200%,200%)`大小,当窗口变大的过程中会有几帧是占满整个屏幕的,此时放一个大小为`(200%,200%)`、时长为999、缓速为`Linear`的**窗口大小重置事件**,窗口大小就会固定成全屏的了。 + +### 更多窗口(暂时不确定官方会不会修这个) + +在谱面中放置一个窗口相关的事件(这个例子用`隐藏窗口`事件),记住这个事件的小节、节拍和在第几行,然后打开这个谱面的文件(xxx.rdlevel),找到{ "bar": <小节>, "beat": <节拍>, "y": <行数减一>, "type": "HideWindow", "show": true },这一行,<>里面应该是你记住的数据,将"y": 后面的数替换成一个大于3的数,保存并返回编辑器,重新打开这个谱面,就会发现这个事件到第4行下面了,接着当正常窗口使用就行。 + +如果想要`重新排列窗口`,同上,找到"ReorderWindows", "order": [0, 1, 2, 3],在[]中加上 窗口的编号减一 的数,还有逗号。 + +窗口事件名称表: + +| 事件 | 名称 | +| :--- | :--- | +| 窗口动效 | NewWindowDance | +| 重置窗口大小 | WindowResize | +| 设置窗口内容 | SetWindowContent | +| 重新排列窗口 | ReorderWindows | +| 隐藏窗口 | HideWindow | +| 设置主窗口 | SetMainWindow | +| 设置窗口名称 | RenameWindow | +| 设置桌面颜色 | DesktopColor | + +当然,如果你不想手术,可以安装[这个模组](https://github.com/9thCore/RDEditorPlus/releases)(b站有安装教程) \ No newline at end of file diff --git a/pages/accessibledesign.md b/pages/accessibledesign.md index 5d7a2aa..28c8535 100644 --- a/pages/accessibledesign.md +++ b/pages/accessibledesign.md @@ -62,7 +62,7 @@ #### 朗读轨道信息 -![](../images/narraterowinfo.png) +![](../images/readrowinformation.png) **轨道**:选择要朗读哪条轨道的信息。 @@ -77,6 +77,8 @@ **玩家**:选择在双人模式下,该轨道由哪位玩家接管。 +**自定义长度**:启用后将朗读所填的轨道长度。 + 一般情况下,游戏会按以下的顺序来朗读: `[玩家][类型][轨道角色][X字拍子]` diff --git a/pages/moverow.md b/pages/moverow.md index 604c8d1..fd6ec76 100644 --- a/pages/moverow.md +++ b/pages/moverow.md @@ -122,12 +122,51 @@ 如果想要实现`6-2`马克一人多轨的情况就可以使旋转轨道事件。 -先准备两个轨道,使用`连接`将轨道2连接到轨道1上,此时心会自动变成裂纹状态,如果不想要这个效果,可以用下一章轨道涂色里的`心`设置回默认。 +### 连接 -在连接后,通过`分割`可以将两个轨道都显示出来,这两个轨道都会对被连接到的轨道对应角色产生影响。 +![](../images/moverow1_SpinningRows_Connect.png) -`断开`后这些轨道都会回复正常状态。 +将`轨道`**连接**`到轨道`。 +### 断开 + +![](../images/moverow2_SpinningRows_Disconnect.png) + +将`轨道`**断开**。 + +### 旋转 + +![](../images/moverow3_SpinningRows_Rotate.png) + +将`轨道`**旋转**`角度`度。 + +### 均速旋转 + +![](../images/moverow4_SpinningRows_ContinuousRotation.png) + +`轨道`在每拍**均速旋转**`角度`。 + +### 波动旋转 + +![](../images/moverow5_SpinningRows_WavyRotation.png) + +`轨道`在每拍`频率`次**波动旋转**`增幅`度。 + +### 合并 + +![](../images/moverow6_SpinningRows_Merge.png) + +将`轨道`转到`角度`度是**合并**,no key是选择是否有烟雾。 + +### 分割 + +![](../images/moverow7_SpinningRows_Split.png) + +将`轨道`从主轨道上**分割**出来,并旋转到`角度`度。 + +## 重排序:行 + +将轨道转移到其他房间,或者改变轨道的层级 ## 演示关卡 diff --git a/pages/rowfx.md b/pages/rowfx.md index e8a8a95..3c95abe 100644 --- a/pages/rowfx.md +++ b/pages/rowfx.md @@ -71,6 +71,18 @@ **过渡方式**:顺滑(有烟雾特效);即刻(瞬间显示/隐藏);全动画(仅限“动作”中选择“显示”,有完整的出场及轨道延伸动画)。 +## 改变轨道 + +可以在中途改变轨道上的角色。 + +![](../images/rowfx_Change_Character.png) + +**轨道**:需要改哪个轨道上的角色。 + +**角色**:改成哪个角色。 + +**过渡方式**:跟隐藏轨道一样,顺滑有烟雾特效,即刻没有。 + ## 适合配合轨道或节拍一起使用的特效 **闪烁:**屏幕白色闪烁,分为短,中,长三种。 diff --git a/script/special.js b/script/special.js index 5e8ce8d..a3f0a7d 100644 --- a/script/special.js +++ b/script/special.js @@ -6,16 +6,16 @@ let rowx; let columny; let positions = { - "c1": { "x": 64, "name": "第一拍" }, - "c2": { "x": 88, "name": "第二拍" }, - "c3": { "x": 112, "name": "第三拍" }, - "c4": { "x": 136, "name": "第四拍" }, - "c5": { "x": 160, "name": "第五拍" }, - "c6": { "x": 184, "name": "第六拍" }, - "c7": { "x": 249, "name": "第七拍" }, + "c1": { "x": 66, "name": "第一拍" }, + "c2": { "x": 90, "name": "第二拍" }, + "c3": { "x": 114, "name": "第三拍" }, + "c4": { "x": 138, "name": "第四拍" }, + "c5": { "x": 162, "name": "第五拍" }, + "c6": { "x": 186, "name": "第六拍" }, + "c7": { "x": 251, "name": "第七拍" }, "ccharacter": { "x": 35, "name": "角色" }, "ccenter": { "x": 176, "name": "中心" }, - "cheart": { "x": 317, "name": "心" }, + "cheart": { "x": 315, "name": "心" }, "r1": { "y": 162, "name": "四轨时的第四轨" }, "r2": { "y": 141, "name": "三轨时的第三轨" }, "r3": { "y": 120, "name": "二轨时的第一轨/四轨时的第三轨" },