这是每个乐曲文件夹下的 ``root\app\data\AXXX\music\musicXXXX\Music.xml`` 文件的通用文档。 # 概述 ``Music.xml`` 是与特定歌曲的谱面同在一个文件夹中的单一文件。该文件实质上是歌曲的元数据,为游戏提供了除谱面外几乎所有关于歌曲的信息。请注意,本文档不包括整个 XML 文件的结构,只包括其中的含义。要创建自己的 ``Music.xml`` 文件,请使用已有的文件作为模板,然后使用此处列出的规范。 本游戏中的 ``Music.xml`` 文件频繁使用了库存数组布局,如下所示: ```xml ``` 任何对 "库存数组 "的引用都意味着值中存在这种数组格式,```` 和 ```` 标签已指定其值。````从不包含任何值,并始终采用这种格式。 # 标记 ## dataName ````标记将有一个以父文件夹命名的值,通常是``musicXXXX``。 ## formatVersion ````标记的值始终为 ``10000``。 ## resourceVersion ````标记始终包含一个库存数组,其````值为``0``,````值为``10000``。 ## netOpenName ````标记包含一个未知值的存量数组。可能的解释是,这些值表示歌曲最初添加到游戏中的更新。 ## disableFlag ````标签的值为``false``或``true``。启用 disableFlag 后,歌曲将不会出现在歌曲选择屏幕上。 ## exType ````标记的值为 0 到 2 之间的整数。如果值为 ``0``,歌曲将成为可在歌曲选择屏幕上选择的普通歌曲。如果值为``1``,歌曲将成为教程歌曲。数值为 ``2`` 时,歌曲将变为 WORLD'S END 歌曲。 ## name ````标记包含一个库存数组,其中````值等于父文件夹名称的后 4 位数字(去掉前面的 0),````值包含将在游戏中显示的歌曲名称。 ## rightsInfoName ````标记包含一个库存数组,其````值等于``root\app\data\AXXX\rightsInfo\rightsInfoXXXX``文件夹中相应的``rightsInfo``文件,去掉前面的0,以及一个````值,其中包含在``RightsInfo.xml``文件的``name``标记中显示的版权持有者名称(而非游戏中的名称)。如果歌曲不需要版权声明,则 ```` 的值为 ``-1``,```` 的值为 ``Invalid``。 ## sortName ````标记以可按字母顺序排序的格式包含歌曲名称。所有拉丁字符均大写,所有标点符号和空格均被删除。对于日文标题,所有平假名和汉字都会转换成对应的片假名。 ## artistName ````标记包含一个库存数组,其中````的值等于曲师的 ID,````的值是曲师在游戏中的名字。如果该曲师之前未在歌曲中使用过,则应赋予其与歌曲相同的 ID。如果以前使用过曲师,则应赋予与以前歌曲中使用的曲师 ID 相同的 ID。 ## genreName ````标记包含一个````标记,该标记包含一个````标记,该标记包含一个存量数组,其中````值等于根据``root\app\data\AXXX\music``中的``GenreSort.xml``文件找到的有关版本的 ID,````值等于在``GenreSort.xml``文件中出现的版本名称。 ## worksName ````标记包含一个库存数组,其中````值等于歌曲来源作品的 ID,````值等于相关作品的名称。这与 ```` 的规格相同。如果歌曲不需要版权声明,则````的值为``-1``,````的值为``Invalid``。 ## jaketFile ````标记包含一个````标记,其值等于包含歌曲封面的文件名,通常与 Music.xml 文件位于同一目录。 ## firstLock ````标记的值为``false``或``true``。如果值为 ``true``,那么歌曲将不会被列在歌曲选择列表中,除非满足特定条件才能解锁歌曲。 ## priority ````标记的值为``false``或``true``。如果值为 ``true``,那么歌曲将不会被列在歌曲选择列表中,除非满足特定条件才能解锁歌曲。 ## cueFileName ````标记包含一个库存数组,其````值等于在``root\app\data\AXXX\cueFile\cueFileXXXX``中找到的``CueFile.xml``文件中的 cueFile 的 ID。 ## previewStartTime ````标记包含一个整数,指定歌曲中预览开始的位置(以毫秒为单位),预览是歌曲在选曲屏幕上高亮显示时播放的部分。 ## previewEndTime ````标记包含一个整数,指定预览结束的歌曲位置(以毫秒为单位)。结束后,它将循环回到 ```` 。 ## worldsEndTagName ````标记包含一个库存数组,其中````的值与乐曲的 WORLD'S END 类型相对应,````的值用汉字表示 WORLD'S END 类型的名称。如果音轨不是 WORLD'S END 音轨,则````的值为``-1``,````的值为``Invalid``。 ## starDifType ````标记包含一个未知整数。这个值可能与音乐的难度有关。 ## stageName ```` 标记包含一个库存数组,其中的 ```` 值等于场景的 ID,即游戏过程中出现在栏位后面的背景视频,可在路径 ``root\app\data\AXXX\stage`` 中找到,而 ```` 值等于相应的 ``Stage.xml`` 文件中的 ```` 值。 ## fumens ```` 的意思是 "谱面",翻译过来就是 "音乐",是包含每个难度的所有信息的标记。fumens 标记将包含 5 个 ```` 标记,每个难度一个,即使对应乐曲难度少于 5 个。 ## MusicFumenData ````标记包含歌曲中每个难度的信息数组。下面列出的所有标记都是数组的一部分。 ### resourceVersion ```` 标记总是包含一个库存数组,其 ```` 值为 ``0`` 和一个空的 ```` 标记。 ### type ````标记是一个库存数组,其中包含有关该特定````是哪种难度的信息。它有一个 ```` 值,可以是 ``0`` 到 ``4`` 之间的任意值。```` 值可以是 ``ID_00``、``ID_01``、``ID_O2``、``ID_03`` 或 ``ID_04``,但必须以与 ```` 标签值相同的数字结尾。```` 标记包含难度名称,可以是``BASIC``、``ADVANCED``、``EXPERT``、``MASTER``或``WORLD'S END``。该值必须依次与 ```` 和 ```` 标记相对应。例如,BASIC 的 ID 为 0,ADVANCED 的 ID 为 1,以此类推。 ### enable ````标记的值可以是``true``或``false``。如果值为``false``,难度将不会出现。在 WORLD'S END 的 ```` 标记上,如果歌曲是 normal,则此值设为 false,而在 WORLD'S END 曲目上,除了 WORLD'S END 之外的所有难度都设为 false。 ### file ````标记包含一个````标记,该标记包含与特定难度相关联的 .c2s 文件的文件名。如果难度不存在且已禁用,则该标签将被空的 ```` 标签取代。 ### level ````标记包含一个整数,等于游戏中显示的歌曲难度级别。如果难度不存在,或难度为 WORLD'S END,则标记的值为 ``0``。 ### levelDecimal ```` 标记包含一个 0-99 的整数,等于轨道的十进制难度。它与 ```` 标签相结合,可创建准确的难度级别。在游戏过程中看不到这个级别,而是用于按难度对曲目进行排序。如果难度不存在,或难度为 WORLD'S END,则标记的值为 ``0``。 ### notesDesigner ````标记总是空的,因此被写成````。这是因为 ``.c2s`` 文件中包含了谱师的信息。 ### defaultBpm ````标记的值始终为``<0>``。