{搬运+渣翻}CelesteTAS使用文档

原文链接:https://github.com/EverestAPI/CelesteTAS-EverestInterop

https://github.com/EverestAPI/CelesteTAS-EverestInterop/blob/master/Docs/Studio.md

https://github.com/EverestAPI/CelesteTAS-EverestInterop/blob/master/Docs/Commands.md

  • Everest请先安装。

  • (推荐)使用一键安装器(https://gamebanana.com/tools/6715)或点击这里下载(https://0x0a.de/twoclick/?nightly.link/EverestAPI/CelesteTAS-EverestInterop/workflows/NetFramework.Legacy.CI/master/CelesteTAS.zip)然后把它放到游戏路径中的mods文件夹。

  • 在游戏内的Mod选项里开启该模组。

  • 打开 Celeste Studio.exe——我们的输入编辑器。它应当被放在你蔚蓝的主目录下,如果不是,请自行从Mods/CelesteTAS.zip中解压它。(备注:Studio只能在Windows环境下工作)Studio文档说明可以在这里找到:(后面会附)

  • 如果系统环境为Linux或macOS,在游戏菜单选项Mod 选项->开关检查TAS工程文件的路径,用你喜欢的文本编辑器编辑,并启用信息面板以显示辅助信息。

  • 你可以在这里找到大多数最新的输入文件:

    https://github.com/EuniverseCat/CelesteTAS

 

输入文件

  • 输入文件是一个以tas为后缀的文本文件,例如:1A – Forsaken City.tas

  • 输入文件的格式为(按下的帧数),(输入的动作)

  • 举例: 123,R,J(在这123帧里按住向右和跳)

 

可用操作

  • R=向右

  • L=向左

  • U=向上

  • D=向下

  • J=跳跃/确认

  • K=跳跃绑定键2

  • X=冲刺/交谈/取消

  • C=冲刺绑定键2/取消绑定键2

  • Z=下蹲冲刺(仅限在1.4版本以上的蔚蓝上使用)

  • V=下蹲冲刺绑定键2(仅限在1.4版本以上的蔚蓝上使用)

  • G=抓住

  • S=暂停

  • Q=重玩本关

  • F=羽毛瞄准角度

  • 格式:F,角度[角度制,垂直向上为0度,顺时针方向为正],可选择单轴数值精度上限(默认值为1,范围0.5到1,仅在Analogmode调到precise时生效)

  • O=确认绑定键2

  • N=打开日志(仅用于开启作弊模式的代码)

 

控制

在游戏中或Studio中:

  • 运行/停止:右Ctrl

  • 重新运行:=

  • 快进/帧连续步进:右Shift

  • 快进到下一条指令:右Alt+右Shift

  • 暂停/帧步进:[(左中括号键)

  • 暂停/继续:](右中括号键)

  • 碰撞箱开关:左Ctrl+B

  • 简化图形开关:左Ctrl+N

  • 镜头居中开关:左Ctrl+M

  • 保存状态:右Alt+ -(减号下划线键)

  • 清除状态:右Alt+ Backspace

信息面板:

  • 按住信息面板快捷键和鼠标左键可以拖放移动信息面板

  • 双击信息面板快捷键可以开关信息面板

  • 按住信息面板快捷键然后用单击鼠标左键点击可以监视实体

这些可以在Mod选项里调整:

  • 如果你使用的是非美式键盘布局,那么你必须重新绑定一些按键

  • 绑定多个按键表示组合键,你需要同时按下才能触发相应操作

 

特殊输入

断点(Breakpoints

  • 你可以通过在单独的一行输入***让输入文件创建一个断点。

  • 开始播放时,程序将快进直至到达该行,然后进入帧步进模式。

  • ***s将创造一个保存状态,可以减少TAS回放时间。

  • 你可以使用***X来指定播放速度,其中X是加速倍率,举例:***10表示以上代码将以10倍速播放。

指令(Commands

  • 该工具存在各种指令以便于TAS回放。点击这里查看:(后面会附)

保存状态(Savestate

  • 保存状态功能需要SpeedrunTool这个Mod。

  • 在官图中是可靠的。

  • 在使用各种代码mod的自定义地图中可能不能正确地工作。在离开房间之前设置一个保存状态可能对此有所帮助。

  • 目前不能在暂停时保存状态。

  • 内存不足可能导致游戏崩溃,尽管这不常见。

 

其他

实体监视

打开信息面板,按住信息面板快捷键然后单击鼠标左键添加被监视的实体,按住触发区域快捷键来监视触发区域,单击鼠标右键清除监视实体。支持通过StartExportGameInfo导出监视实体信息。

自定义信息

大括号中的内容可以用实际数据替代,以下是一些例子:

  • {EntityName.field…}找到第一个实体,举例:{Strawberry.Position}。

  • {EntityName[entityId].field…}通过特定的实体id找到实体。举例:{Strawberry[1:12].Position}表示1A的金草莓的坐标。你可以通过打开控制台并在实体上单击左键来获取实体id。

  •  {[email protected]…}如果单名存在于复数个helper中,请把配置名称也加上去。举例:{[email protected]}和{[email protected]}。你可以通过打开控制台并在实体上单击左键来获取配置名称。

  • {Level.field…}获得某个字段数量的值。举例:Wind: {Level.Wind}

  • {ClassName.staticField.field…}可以获取一个非实体类和非数量类静态字段的值。

  • {Player.AutoJumpTimer.toFrame()} 在末尾加上toFrame()可以将单位从小数点变为帧。

  • {Player.Speed.toPixelPerFrame()}在末尾加上toPixelPerFrame()可以将速度单位从小数点/矢量2变成像素/帧。

  • AutoJump:{Player.AutoJump} ({Player.AutoJumpTimer.toFrame()})【监视自动跳跃】

  • ForceMoveX:{Player.forceMoveX} ({Player.forceMoveXTimer.toFrame()})【监视水平方向强制位移】

  • Theo:{TheoCrystal.Position}【监视Theo坐标】

  • TheoCantGrab:{TheoCrystal.Hold.cannotHoldTimer.toFrame()}【监视抓Theo的CD】

  • CustomSpinner:{CustomSpinner.Position} or

  • {CustomSpinner: {[email protected]}【监视自定义圆刺】

 

Celeste Studio使用说明

可以代替记事本或类似用途的工具使用,以便编辑TAS文件。它与TAS工具绑定,完成配置后会自动出现在Celeste主目录中。

控制

  • Ctrl+Z:撤销输入

  • Ctrl+Shift+Z:恢复输入

  • Ctrl+O:打开文件

  • Alt+←:打开上一个文件

  • Ctrl+Shift+S:另存为

  • Ctrl+F:查找文本

  • Ctrl+G:转到某行/某标签

  • Ctrl+D:向蔚蓝输入操作开关

  • Ctrl+Shift+D:刷新Studio和蔚蓝的连接

  • Ctrl+Shift+C:复制玩家数据至剪切板

  • Ctrl+K:注释/取消注释选中块(逐行处理)

  • Ctrl+Shift+K:注释/取消注释选中块

  • Ctrl+P:清除所有未注释断点

  • Ctrl+Shift+P:清除所有断点

  • Ctrl+.(句号和大于号键):插入/清除断点

  • Ctrl+Shift+.(句号和大于号键):插入/清除保存状态断点

  • Ctrl+R:插入房间名称

  • Ctrl+Shift+R:在当前位置和速度插入Console Load命令

  • Ctrl+Alt+R:在当前位置插入Console Load命令

  • Ctrl+T:插入当前游戏内时间

  • Ctrl+L:合并相同的连续输入

  • Ctrl+Shift+L:强制合并输入帧

  • Ctrl+↓/↑:跳到下一条/上一条注释或断点

  • Ctrl+左键单击Read/Play后面的文件名:打开读取文件/跳转到播放的那一行

  • 右键单击输入区域:展示输入快捷菜单

  • 右键单击信息区域:展示信息快捷菜单

  • Shift+鼠标滚轮:在选中输入和鼠标指针间调整帧

  • Ctrl+Shift+↑/↓:在选中输入间调整帧

 

高级指令说明

Read

  • 格式:Read, File Name, Starting Line, (Optional Ending Line)

  • 用于从指定文件中读取输入信息。

  • 如果一个读取文件的自定义路径已被指定,它将尝试在那里寻找文件。否则,它将在整个蔚蓝主目录中寻找文件。

  • 举例:Read, 1A – Forsaken City.tas, 6将读取1A – Forsaken City.tas文件中第六行后的所有输入。

  • 简化文件名同样有效,即Read, 1A, 6可以达到相同效果。

  • 建议使用标签替代所在行的数字,所以Read, 1A, lvl_1是本示例的首选格式。

Play

  • 格式:Play, Starting Line, (Optional Frames to Wait)

  • 一个简化的Read指令,它能直接跳到指定文件的起始行。

  • 用于将巨大的代码文件拆分成较小的组块。

Labels

  • 在一行的前缀加上#将该行的内容转变为注释。

  • 以#开头的行也可作为Read指令的起始行和结束行。

  • 你可以在Celeste Studio中按下Ctrl+K对需要突出显示的文本进行注释。

Console

  • 格式:Console (command)

  • 用于在蔚蓝控制台中输入命令

  • 可用命令如下:

  1. p_dreamdash (开启果冻冲刺)

  2. p_twodashes (开启双冲)

  3. core (int) (将核心块的模式设置为 none(0), fire(1) or ice(2))

  4. givekey (获得一把钥匙)

  5. giveberry (获得一颗草莓)

  6. hearts (int default all) (string default current level set) (将指定位置的水晶之心数量设置为给定值)

  7. summitgem (string) (获得山顶的宝石,0-6个或所有)

  8. sd_clearflags (清除所有存档数据旗)

  9. unlock_doors (解锁所有需要钥匙打开的门)

  10. flag (string) (设置/移除一节标志性物件)

    举例:flag oshiro_clutter_cleared_0/1/2 (清除3a的毛巾/书本/箱子)

Console load

  • load(对于A面而言)的使用例子如下,但是这些例子同样适用于hard(对于B面而言)和rmx2(对于C面而言)。

  • load可用于代替重新开始当前章节。但是,load可以在游戏的任何位置启动回放而不会有失去同步的风险。

  • 请使用以下的格式:

  1. console load (ID or SID)

  2. console load (ID or SID) screen

  3. console load (ID or SID) screen spawnpoint

  4. console load (ID or SID) positionX positionY speedX speedY

  • ID表示关卡的ID(举例:旧址=2)

  • SID表示蔚蓝中地图的路径或者Mod图的文件夹(举例:Celeste/2-OldSite)。可以打开调试控制台找到。

  • Screen表示你想要加载的地图屏幕名称(备注:如果屏幕名称是数字,你必须提前加上“lvl_”,所以写成lvl_00而不是00).

  • spawnpoint表示你想要加载的#开头房间重生点,大多数房间都有复数个重生点(从0开始)。

  • 还有一种选择,positionX和positionY表示你想加载的坐标点,speedX和speedY表示加载后的速度。

  • 以下示例拥有相同的效果:

  1. console load 2 3x

  2. console load 2 lvl_3x

  3. console load Celeste/2-OldSite 3x

  4. console load 2 3x 0

  5. console load 2 376 -176

  6. console load 2 376 -176 0 0

Set

  • 格式1:Set, (Optional Mod).Setting, Values

  • 格式2:Set, Entity.Field…, Values

  • 格式3:Set, Level.Field…, Values

  • 格式4:Set, Session.Field…, Values

  • 用于在设置栏中设置特定值。

  • 如果没有加载mod那么默认为蔚蓝原装环境。

  • Everest设置使用名称为Everest的mod。

  • 备注:设置名称/值可能不是那么直观。

  • 要寻找mod和设置栏的名称,请打开蔚蓝目录下的saves文件夹。mod名称应该是像modsettings-(name).celeste这样的文件名。

  • 打开在编辑器里打开设置文件来查看各项设置的名称。

  • 名称需要区分大小写。

  • 确保输入值跟设置类型匹配(如果设置文件里有一个boolean类数据,确保同时在Set命令里输入boolean数据)。

  • 举例:

  1. Set, VariantMode, false

  2. Set, CheatMode, true

  3. Set, DashMode, Infinite or Set, DashMode, 2

  4. Set, Player.Position, 123.123, -1028

  5. Set, Player.Position.X, 123.123

  6. Set, Player.Speed, 325, -52.5

  7. Set, Player.Ducking, true

  8. Set, Everest.ShowModOptionsInGame, false

  9. Set, ExtendedVariantMode.Dashcount, 3

  10. Set, CelesteTAS.CenterCamera, true

Unsafe

  • TAS通常只在指定位置运行。

  • Console load通常强制TAS加载调试存档。

  • Unsafe允许TAS在任何地方或任何存档运行。

EnforceLegal

  • 通常用于全收集类型文件的开头。

  • 它可以避免使用指令而有损速通流程的公平。

StartExportGameInfo and FinishExportGameInfo

  • 格式1:StartExportGameInfo (Optional File Path) (Optional Entities Names)

  • 格式2:FinishExportGameInfo

  • 转储一个文件的数据,用于分析无法同步的原因。

  • 默认文件路径为dump.txt。

  • 可以持续监视指定的任何其他实体,举例:StartExportGameInfo additional.txt TheoCrystal Glider CustomSpinner@FrostTempleHelper将持续监视来自FrostHelper mod中的Theo、水母和自定义圆刺。

  • 你可以通过打开控制台然后点击实体来获得实体的名称,实体名称将会展示在左上角并以log.txt的形式输出。

StartExportRoomInfo and FinishExportRoomInfo

  • 格式1:StartExportRoomInfo (Optional File Path)

  • 格式2:FinishExportRoomInfo

  • 将每个房间的实际消耗时间转储到一个文件,可用于比较改进之处。

  • 默认文件路径为dump_room_info.txt。

RecordCount

  • 举例:RecordCount: 1

  • 每当你修改完当前的输入文件后运行tas文件,运行次数会自动加一。

FileTime

  • 举例:FileTime: 0:51.170(3010)

  • 当TAS完成流程时会自动更新文件时间,文件时间等于TAS正常播放所用的时间。

ChapterTime

  • 举例:ChapterTime: 0:49.334(2902)

  • 当从开头完成整个关卡时,会自动更新章节时间

AnalogueMod

  • 格式:AnalogueMode, (Mode), (Optional upper limit of single axis, default value is 1, range is 0.5 to 1, only works in precise mode)

  • AnalogMode, (Mode)同样也能运行。

  • 模式分为Ignore(不检查),Circle,Square和Precise。

  • Circle,Square和Precise确保发送给游戏的模拟输入尽可能的精确,将羽毛最大变化幅度锁定在圆形或方形死区内,或计算基于控制器控制下可能变化幅度的最近坐标。

  • 大部分情况下你不需要担心这些东西。

StartExportLibTAS and FinishExportLibTAS

  • 格式:StartExportLibTAS, (Optional File Path)

  • 将TAS文件转化成一个LibTAS放映文件的输入部分。

  • 默认文件路径是libTAS_inputs.txt。

  • 大部分情况下你不需要担心这些东西。

Add and Skip

  • 这条命令出现在选关菜单,游戏里不需要做任何事情。

  • 相当于,它们扮演了libTAS转化者的指示。

  • Add, (input line)表示在libTAS输出中新增了一行。

  • Skip, (frames)表示强制跳到下一部分,无论当前有多少帧。

  • 大部分情况下你不需要担心这些东西。

资源下载: