手术

来自节奏医生中文百科
Admin讨论 | 贡献2021年11月14日 (日) 15:44的版本 (新内容)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

{{编辑中}}

手术这个词是直译了国外社区里的“Surgery”的说法,其意为直接用文字编辑软件打开.rdlevel文件对代码进行操作。修改这些代码就可以改变谱面本身,其内核于直接使用编辑器操作殊途同归。

这东西其实八成是用不着的,但也不排除有因为特殊原因例如盲人不能对关卡编辑器进行操作这样,所以只能使用文本编辑器打开.rdlevel文件来编写关卡,考虑到这样的特殊情况,而且教程中既然有提到这种操作方式,那就一并在附录中收纳。

上面提到了,编写rdlevel和使用编辑器本身操作其实效果是完全一样的,那么也就是说,光靠编辑rdlevel文件,只要会写的话,也是可以写出非常精彩的关卡的,接下来就让我带领大家已我的理解,已一个完全新手的角度来看看rdlevel文件究竟是什么样的吧。

P.S.1:本人用文本编辑器也写了不少关卡了,但是要是真正提到对代码知识的专业了解的话可能还是0基础,所以,我可以带领大家一步一步进行关卡的编辑,但如果说非要让我解释代码寓意的话我可能还说不上来,只能说是告诉你这个是干啥用的,本节中我会带领大家写一个简单的关卡来告诉大家用文本编辑器来写关卡究竟是怎么一回事。

P.S.2:上面说过,我只是带领大家简单写一个关卡,简单认识一下用文本编辑器来编辑,但更具体的参数选项或者更高阶一些的用法还得大家自行学习,当然有空的话我会来更新一些内容的,不足之处也请其他朋友进行补充。

基础设置项

首先,在关卡编辑器里什么都不操作,直接保存一个rdlevel文件,用记事本或其他文本编辑器打开,你会看到如下内容:

"settings":
{
	"version": 46, 
	"artist": "", 
	"song": "", 
	"specialArtistType": "None", 
	"artistPermission": "", 
	"artistLinks": "", 
	"author": "", 
	"difficulty": "Medium", 
	"seizureWarning": false, 
	"previewImage": "", 
	"syringeIcon": "", 
	"previewSong": "", 
	"previewSongStartTime": 0, 
	"previewSongDuration": 10, 
	"songNameHue": 0.1451763, 
	"description": "", 
	"tags": "", 
	"separate2PLevelFilename": "", 
	"canBePlayedOn": "OnePlayerOnly", 
	"firstBeatBehavior": "RunNormally", 
	"multiplayerAppearance": "HorizontalStrips", 
	"levelVolume": 1, 
	"rankMaxMistakes": [20, 15, 10, 5], 

	"rankDescription":
	[
		"你这个毫无希望的实习生!",
		"啊,你还可以做得更好",
		"嗯,勉强还成……",
		"咱们是黄金组合!",
		"你的表现真给力!",
		"惊艳绝伦的演出!!"
	]
	},

接下来我来一一讲解。 因为rdlevel文件其实就是json文件,所以这里如果懂json语法的应该会特别熟悉。

"settings"底下的内容有一大部分都是发布的时候设置的。

"version": 47,这个是编辑器的内部版本号,会随着更新而变动。

"artist": "",双引号里填入你要写的这首歌的演唱者或者艺术家。

"song": "",双引号里填入歌曲名称。

"specialArtistType": "None", 取值是 None, AuthorIsArtist, PublicLicense,可能和创意工坊有关?三个选择分别为:无;谱面作者和音乐作者为同一人;公开许可。后两种情况都是无需再专门进行作者许可和授权的。

"artistPermission": "",这个是作者许可和授权,但具体怎么写的我还不是很清楚,就知道是和授权有关的。

"artistLinks": "",这里可以填入歌曲链接或者作者的主页。

"author": "",这里写上关卡作者的名字。

"difficulty": "Medium",这个就是难度了,根据情况进行更改就行了。

"seizureWarning": false,这个是癫痫警告,没有的话就默认false就行了,需要的话就把双引号里的false改为true。

"previewImage": "",预览图片,也就是封面图的图片文件名。

"syringeIcon": "",针管图标的图片文件名。

"previewSong": "",此处填入预览音乐文件名,注:预览音乐必须是ogg格式。

"previewSongStartTime": 0,这里的数字是代表预览音乐是从第几秒开始的。

"previewSongDuration": 20,这里的数字是预览音需要持续多长时间,最大只能到20。

"songNameHue": 0.3972672,范围是 0 到 1,表示选关页面中歌曲名的颜色。

"description": "",这里写上你的关卡简介。

"tags": "", 这里是关卡标签。

"separate2PLevelFilename": "",如果你的双人模式需要使用另一个rdlevel文件就在这里填入文件名,例如2P.rdlevel

"canBePlayedOn": "OnePlayerOnly",这一行是指定这关是单人模式还是双人模式还是都可以的。

"firstBeatBehavior": "RunNormally",取值是 RunNormally, RunEventsOnPrebar,后者表示把第一小节第一拍的事件提前到关卡开始之前。

"multiplayerAppearance": "HorizontalStrips",取值是 HorizontalStrips, Nothing,但似乎没用(控制某个物体是否显示,但这个物体的颜色是透明,所以显示和不显示没有区别)。

"levelVolume": 1,这一行就是在关卡中需不需要单独调节音量了,写高了的话在这关里游戏音量会被整体提高。

"rankMaxMistakes": [20, 15, 10, 5],这一行里的几个数字就是代表的每个评级的失误数量了。 接下来

"rankDescription": [ "你这个毫无希望的实习生!", "啊,你还可以做得更好", "嗯,勉强还成……", "咱们是黄金组合!", "你的表现真给力!", "惊艳绝伦的演出!!" ] 这些都是关卡评级的评语了,需要的可根据情况自行修改。

轨道部分

“rows”: [ ], 默认情况下,这里是空的,这里其实就是设置轨道的地方,你这个轨道要用什么角色,什么轨道类型,是七拍还是单发拍子,这轨道又是交给谁操作的,都在这里决定,在关卡中的代码大概是这样的。

{ "character": "Samurai", "rowType": "Classic", "row": 0, "rooms": \[0\], "player": "P1", "pulseSound": "Stick", "pulseSoundVolume": 100, "pulseSoundPitch": 100, "pulseSoundPan": 0, "pulseSoundOffset": 0 }, 

“character”就是你这条轨道需要使用哪个角色,刚刚的示例中我填的是Samurai,也就是武士。

“rowType”是轨道类型,这里我填写的是七拍轨道”Classic”,如果是单发拍轨道的话,这里填的应该是”Oneshot” “row”里填写的是你现在设定的这些作用于哪条轨道,0到15 “rooms”里填写的是房间编号

“player”里填写的是你要让谁操控这个轨道,可以是P1,P2,CPU,如果是CPU的话就是给电脑操作了。 下面这几个带有pulseSound的参数就是和音效有关了,它们分别是:

“pulseSound”: “音效文件名”,

“pulseSoundVolume”: 音效音量,

“pulseSoundPitch”: 音效音高,

“pulseSoundPan”: 音效声像,数值越小越往左,越大越往右,0是正中间。,

“pulseSoundOffset”: 音效偏移值 以后只要是和音频相关的代码都会接触到上面这几个参数。

特效部分

轨道也设置好了,接下来就是真正开始写关卡内容了,真正的关卡内容全都写在”events”底下,由于这是新人向,所以我会大概讲一下如何写一个七拍子以及如何写出正确规范的“ready get set go”二拍子。