打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

冰与火之舞自制关卡文件格式分析:修订间差异

来自 LNN的:not(博客)?
DGCK81LNN留言 | 贡献
{{待填坑}}
DGCK81LNN留言 | 贡献
无编辑摘要
第1行: 第1行:
{{待填坑}}
{{待填坑|开坑日期:2020年8月22日 (六) 10:48 (CST)}}
{| class="wikitable" style="float:right"
{| class="wikitable" style="float:right"
|-
|-
第90行: 第90行:
"planetEase": "Linear",  
"planetEase": "Linear",  
"planetEaseParts": 1
"planetEaseParts": 1
-->待补完……2020年8月22日 (六) 10:48 (CST)
-->待补完……
</div>
</div>


第108行: 第108行:


==关卡事件==
==关卡事件==
待补完……2020年8月22日 (六) 10:48 (CST)
待补完……
<html><style>
<html><style>
/**
/**

2021年7月6日 (二) 17:55的版本

截图来自网络

前段时间在Steam上买了冰与火之舞。这是一款节奏类游戏,它的玩法比较独特,把音符的时值映射成了路径的夹角。(具体玩法不在此赘述。)此游戏具有内置关卡编辑器,并且可以通过Steam创意工厂分享自制关卡。

编辑器会将关卡保存为.adofai文件,音频和图像、视频等放在同一目录下。用文本编辑器打开.adofai文件,发现是JSON格式。这样就好办了,我会用树形图来表示这些数据的结构。

格式示例

节点格式:类型 : 说明

类型:N=数字 S=字符串 A=数组 O=对象

  • O: 根对象
    • N code: 一个数字
    • A settings: 数组可能代表列表或矢量;出现列表时,只举其中一项为例
      • O: 列表里的一个对象
        • S name: 一个字符串

注意:.adofai文件目前不使用布尔值,而是用字符串EnabledDisabled代替。

主体格式

  • O: 根对象
    • S pathData: 路径信息(后文会详细讲解)
    • O settings: 关卡设置
      • N version: 格式版本号。目前的版本号是2
      关卡设置:
      • S artist: 音乐作者
      • S song: 标题
      • S author: 关卡作者
      • S separateCountdownTime: ?疑似未使用(EnabledDisabled
      • S previewImage: 关卡传送门图片
      • S previewIcon: 关卡图标
      • S previewIconColor: 关卡图标颜色(HEX色号不含井号)
      • S previewSongStart: 音乐预览开始时间(秒)
      • S previewSongDuration: 音乐预览持续时间(秒)
      • S seizureWarning: 癫痫警告(EnabledDisabled
      • S levelDesc: 关卡描述
      • S levelTags: 关卡标签(半角逗号分隔)
      • S artistPermission: 艺术家授权证明图片(相对路径)
      • S artistLinks: 艺术家链接
      • N difficulty: 难度星级(1到10的整数)
      歌曲设置:
      • S songFilename: 音乐文件(相对路径)
      • N bpm: 初始BPM(每旋转180°算作一拍)
      • N volume: 音量%
      • N offset: 音乐偏移量(第一次点击时音乐已播放的毫秒数)
      • N pitch: 音乐播放速率/音高%
      • S hitsound: 打拍声(可能的值:HatKickShakerSizzleChuckShakerLoudNone
      • N hitsoundVolume: 打拍声音量%
      • N countdownTicks: 倒数拍数
      初始轨道设置:
      • N trackColorType: 轨道颜色模式(可能的值:SingleStripesGlowBlinkSwitchRainbow
      • S trackColor: 轨道色调(HEX色号不含井号;Rainbow模式忽略此项)
      • S secondaryTrackColor: 轨道副色调(HEX色号不含井号;SingleRainbow模式忽略此项)
        SingleStripes模式忽略以下三项)
      • N trackColorAnimDuration: 色彩动画持续时间(秒)
      • S trackColorPulse: 颜色脉冲类型(可能的值:NoneForwardBackward
      • N trackPulseLength: 颜色脉冲持续时间(秒)
      • S trackStyle: 轨道风格(可能的值:StandardNeonNeonLightBasicGems
      • S trackAnimation: 轨道出现动画(可能的值:NoneAssembleAssemble_FarExtendGrowGrow_SpinFadeDropRise
      • N beatsAhead: 方块提前几拍出现(至少为1)
      • S trackDisappearAnimation: 轨道消失动画(可能的值:NoneScatterScatter_FarRetractShrinkShrink_SpinFade
      • N beatsBehind: 星球离开方块几拍后方块开始消失
      背景设置:
      • S backgroundColor: 背景颜色(HEX色号不含井号)
      • S bgImage: 背景图片(相对路径)
      • S bgImageColor: 图片上色(HEX色号不含井号)
      • A parallax: 背景图片随前景移动的比率%(二维矢量;例如设为[100,100]即背景和前景同步运动,[0,0]即前景移动,背景不动)

待补完……

路径信息

这是一个字符串,每个字符代表一块轨道的方向。下图是字符和实际方向的对照表,例如一个字母R即代表向当前方块的右侧搭一个方块。

文件:Adofai-path-info-legend.bmp

360°轨道块直接用反方向的字母表示;字母后加叹号可以使这个轨道块成为中旋方块。

此外还有一些特殊方向:

  • 5: 向左转72°
  • 6: 向右转72°
  • 7: 向左转3607°
  • 8: 向右转3607 °

注意轨道块之间的夹角必须是15°的整数倍、108°或9007°,否则会有奇怪的显示bug……

关卡事件

待补完……