“TAS制作教程”的版本间的差异

来自Ballance Wiki
跳转至: 导航搜索
游戏操作输入机制
 
(未显示2个用户的50个中间版本)
第1行: 第1行:
'''TAS制作教程''',顾名思义,即为Ballnce的TAS制作所用教程。Ballance的TAS制作门槛不高,但是仍然需要有一个教程来帮助有兴趣的朋友快速上手Ballance的TAS制作。
+
'''TAS 制作教程''',顾名思义,即为 Ballnce 的 TAS 制作所用教程。Ballance 的 TAS 制作门槛不高,但是仍然需要有一个教程来帮助有兴趣的朋友快速上手 Ballance 的 TAS 制作。
  
 
==前言==
 
==前言==
 +
# 适合人群:了解 Ballance 基本内容及圈内常用术语,基础操作(如 安装和设置 mod 等)的玩家。
 +
# 特点:
 +
#* 门槛低:搭建好环境后,制作并不复杂。
 +
#* 上限高:想做出一个高水准的 TAS,你可能需要较高的游戏理解和持之以恒的心态。
 +
# 本教程为 TAS 制作教程,而非观看教程。观看 TAS 只需:
 +
#* 启用 TASSupport 功能并重启游戏。
 +
#* 在选关界面点击右下角 TAS 按钮,选择播放的 TAS 文件并进入对应关卡。
 +
# 其他:
 +
#* 本教程所用操作方法均为本教程编写者(荧光、口语)的习惯。
 +
#* 如果你有任何疑问,直接在群里询问即可。
 +
#* 欢迎勘误
  
* 本教程并非纯新人保姆式教程,你需要知道Ballance游戏的基本内容,了解一些简单的Ballance圈词汇,会一些基本操作等。例如:设置简化16位色,安装、设置mod等。
+
==了解 Ballance 的 TAS 制作原理和流程==
* 本教程是TAS的制作教程而不是观看教程,观看TAS只需要把TASSupport功能启用,重启游戏,然后在选关界面点击右下角的TAS按钮,选择需要播放的TAS文件,再进入对应关卡即可。
+
{{Note | TAS(Tool-Assisted Speedrun)指在不修改游戏本体的前提下,利用模拟器的辅助功能(如外设输入模拟、存档、回退、慢动作与重录等)以极高精度完成游戏的一种方式。}}
* TAS制作的门槛很低,只需要把环境搭建好,之后的难度就会很低。但是TAS制作的上限很高,'''如果你想做出一个高水准的TAS,那么你可能需要较高的游戏理解和持之以恒的心态。'''(实际上游戏理解并不难学习)
+
Ballance的 TAS 制作,则是编写 TAS 文件,利用 BML 的 TASSupport 功能读取 TAS 文件,对游戏进行逐帧操控。
* 本教程所用操作方法都为本教程编写者的习惯。
 
* 如果你有任何疑问,直接在群里询问即可。
 
  
==了解Ballance的TAS制作原理和流程==
+
与其他游戏不同,Ballance 的 TAS 制作不支持回退帧操作,因此实际制作大致为以下步骤:
 +
# 播放 TAS :使用 BML 和 TASSupport 功能在游戏中读取并播放编写的 TAS 文件。
 +
# 观察与调整:根据播放时观察到的球体运动现象,修改 TAS 文件内容并保存。
 +
# 重复调试:再次播放修改后的 TAS 文件,继续观察与调整,直到对结果满意为止。
  
TAS,全称Tool-Assisted Speedrun,即“工具辅助竞速”。指以完全不变动游戏本体为前提,利用游戏机模拟器(例如模拟外设输入、存档、回退、慢动作与重录等)的辅助功能,以极高的精度完成游戏的一种游戏方式。
+
==配置 Ballance TAS 制作环境==
 
+
{{Note | 如果有些地方不懂为什么要这么做,没关系,后面会讲具体的用法}}
Ballance的 TAS制作,则是编写TAS文件,利用BML的TAS功能读取TAS文件,对游戏进行逐帧操控。
+
# 下载整合包
 
+
#* 下载 {{Kbd|Ballance TAS制作整合包.zip}}(下称整合包)。可在 {{Kbd|Ballance·研讨交流群}} 的群文件中找到
与其他部分游戏的TAS制作不同的是,Ballnce的TAS制作无法进行回退帧操作,因此,我们制作Ballance TAS时的方法和步骤大致为以下流程:
+
#* 将整合包解压到合适的位置
# 打开游戏,利用BML和TASSupport功能在游戏中读取并播放编写的TAS文件('''以下简称播放TAS''')。
+
# 准备游戏本体
# 观察玩家球的运动,根据观察到的现象,对TAS文件内容进行修改,保存修改后的TAS文件。
+
#* 找到 {{Kbd|整合包目录\Ballance_TAS.zip}} 并解压到你觉得合适的位置。
# 再次播放TAS,观察现象,继续对TAS文件内容进行修改,即重复前两步的操作,直到修改为你认为播放TAS的结果满意为止。
+
#** 该文件内容版本:游戏本体 + BMLPlus-v0.3.4-alpha8 + NewPlayer-v0.3.2
 
+
#** 建议1:请务必使用该游戏本体,本文攥写者已经更改的部分设置,在下文中不会提及
==配置Ballance TAS制作环境==
+
#** 建议2:为避免设置的频繁更改,建议该游戏目录仅用于播放 TAS,而非同时作为平时游玩的游戏目录
# 游戏本体及配置(如果有些地方不懂为什么要这么做,没关系,后面会讲具体的用法)
+
# 准备TAS文件
#* 下载'''Ballance TAS制作整合包.zip'''(下称整合包,可以在'''Ballance·研讨交流群'''群文件中找到)
+
#* 接下来以制作 SR3 为例
#* 解压整合包,找到'''游戏本体.zip'''并解压到你觉得方便的位置。(游戏本体.zip自带了最新版TASSupport、Speedometer。旧版TASSupport没有frame count,即没有播放界面中间位置的帧计数。为了方便TAS制作,我们会开启【打开游戏就开始播放TAS】这一选项,为了避免需要手打的时候反复开关此选项,编写者建议读者新建一个游戏目录用来存放播放TAS所用的游戏本体,而不是直接使用你手打游玩的游戏本体来播放TAS。)
+
#* 复制 {{Kbd|整合包目录\misc\空tas文件\264fps.tas}} 到 {{Kbd|游戏目录\ModLoader\TASRecords}}
#* 运行'''切换全屏或窗口化 (switch fullscreen).bat''' 将Ballance切换为窗口化。(该文件在游戏本体解压的目录里)
+
#* 将 {{Kbd|游戏目录\ModLoader\TASRecords\264fps.tas}} 重命名为 {{Kbd|SR3.tas}}
#* 进入bin文件夹,右键player.exe 属性,设置兼容性简化16位色。(避免在有些电脑上出现问题)
+
#* 解释:
#* 进入ModLoader\TASRecords,然后把264fps.tas重命名为你想要的名字(这里举例比如重命名为“SR5.tas”。另外,264fps.tas是一个空的tas文件,即播放帧率为264fps,其他的帧率也可,不过编写者推荐使用264fps的tas文件,因为帧率高一点,那么制作的时候可操作的精度就会高一点。我们后面就是要编辑这个文件制作TAS)
+
#** 132fps 和 264fps 均可。
#* 双击player.exe打开游戏。
+
#** 我们制作 TAS 时需要编辑修改的就是这个{{Kbd|SR3.tas}}
#* 设置分辨率('''必须为4:3的分辨率''',你觉得什么大小的窗口合适就用哪个)。
+
# 基础游戏配置
#* 接下来设置Mod,打开FramerateUnlocker的设置界面,在设置面板的第一个空(也就是FrameRateOverrideType)处填上1,即设置为不限制最高帧数(不能设置成2,否则开头跳过渲染会很慢,后面会说)。
+
#* 双击 {{Kbd|游戏目录\bin\player.exe}} 启动游戏
#* 打开TASSupport的设置界面,
+
#* 游戏打开后应该是窗口化模式,并且游戏窗口可以拖动,如果不能,请按下 {{Kbd|Alt + Enter}} 切换为窗口模式。
#** Enable -> Yes
+
#* {{Kbd|游戏菜单\Options\Graphics\Screen Resolution}}:将分辨率设置为合适的大小(必须为4:3)。
#** Record -> No(这是一个不会用到的功能)
+
#* {{Kbd|游戏菜单\Options\Mods\BML\Graphics\UnlockFrameRate}}:设置为 {{Kbd|yes}}
#** StopKey -> 你觉得方便的快捷键(这个用于在TAS正在播放的时候结束播放TAS)
+
#* {{Kbd|游戏菜单\Options\Mods\TASSupport\Misc}} 设置:
#** ShowKeysGui -> Yes(用于在播放TAS时显示按键情况)
+
#** {{Kbd|Enable}}:{{Kbd|Yes}}
#** SkipRenderUntil 指的是打开游戏播放TAS时,快速跳转到某个时间点,这里举例比如先填一个“300”,即开始播放时跳转到第300帧的时候开始播放(因为Ballance的TAS制作需要每次都重新打开游戏开始播放,当TAS制作到关卡后面一部分时,每次都还需要重头开始观看播放太费时间了,因此我们可以利用这个功能跳转你想要的位置而不用反复观看开头的播放,其本质是不渲染这一段游戏画面让TAS能够以很快的速度播放到那个位置,前面说的FramerateUnlocker不能设置成2就是因为如果限制帧数了,那么跳过渲染的时候仍然被这个mod所限制而不能快速跳过)
+
#** {{Kbd|Record}}:{{Kbd|No}}
#** 翻到下一页
+
#** {{Kbd|StopKey}}:{{Kbd|合适的快捷键}}(用于结束TAS播放)
#** ExitOnDead -> Yes(在球死亡时退出游戏,除非有死球捷径,不然这个都可以打开)
+
#** {{Kbd|ShowKeysGui}}:{{Kbd|Yes}}(用于显示按键情况)
#** ExitOnFinish -> No(在播放结束时退出游戏)
+
#** {{Kbd|ShowInfoGui}}:{{Kbd|Yes}}(播放过程中显示玩家球的坐标、球速、转速等)
#** ExitKey -> 你觉得方便的快捷键(在播放TAS时,如果你已经获取到有用的信息了,可以直接按这个键退出游戏)
+
#** {{Kbd|SkipRenderUntil}}:{{Kbd|0}}(可以理解成从什么时间点开始播放,单位:帧)
#** AutoLoadTAS 即进入游戏自动加载TAS文件,比如我们在这里填写“SR5”,表示打开游戏就自动播放SR5.tas文件
+
#** {{Kbd|ExitOnDead}}:{{Kbd|No}}(球死亡时退出游戏)
#** AutoLoadLevel 自动加载的关卡,这个需要和上面一个设置结合,既然是要做SR5的TAS,那么就自动加载第五关,所以这里我们可以填一个“5”
+
#** {{Kbd|ExitOnFinish}}:{{Kbd|No}}(播放结束时不退出游戏)
 +
#** {{Kbd|ExitKey}}:{{Kbd|合适的快捷键}}(用于随时退出游戏)
 +
#** {{Kbd|AutoLoadTAS}}:{{Kbd|SR3}}(游戏启动时自动播放 {{Kbd|SR3.tas}} 文件)
 +
#** {{Kbd|AutoLoadLevel}}:{{Kbd|3}}(游戏启动时自动加载第3关。)
 +
#** {{Kbd|Transcript}}:{{Kbd|No}}
 +
#* 退出游戏
 
# 编辑器
 
# 编辑器
#* 在整合包里找到'''BallanceTASEditor-v1.0stable.zip'''并解压到你觉得合适的位置。
+
#* 找到 {{Kbd|整合包目录\BallanceTASEditor-v1.2stable.zip}} 并解压到你觉得合适的位置
 +
#* 双击 {{Kbd|编辑器目录\BallanceTASEditor.exe}} 启动编辑器
 +
#* 将 {{Kbd|SR3.tas}} 拖入编辑器
 +
#* 点击 {{Kbd|Edit (编辑)}},取消勾选 {{Kbd|Horizontal Layout (横向布局)}}
 +
#* 使用 {{Kbd|Ctrl + 滚轮}} 调整界面到合适的位置
 +
#* 具体使用方法详见 {{Kbd|编辑器目录\!先看这个-说明书.pdf}}
 +
#* 关闭编辑器
 
# 限帧工具
 
# 限帧工具
#* 【限帧的目的和原理】限帧是为了控制TAS播放的速度。其原理是比如tas是500fps,两帧之间是0.002s,但是如果限制到250fps,两帧中间有0.004s,但是TASSupport mod会强行设置上帧用时为0.002s,让游戏认为只过了0.002s,因此播放会变慢。如果不能完全理解,只需要记住限帧能控制TAS播放速度就行。
+
#* 目的与原理
#* 对于限帧工具,方法非常多,编写者这里用的是Bandicam,可以限帧也可以录制,比较方便,以下以Bandicam为例进行示范。在整合包里可以找到Bandicam.zip并解压到你觉得合适的位置(已有Bandicam的读者可以忽略这一步)。打开Bandicam,选择录制模式为'''游戏录制模式''',在左边栏里选择“FPS”,勾选'''显示叠加FPS''',然后勾选'''热键'''并设置你觉得合适的快捷键。
+
#** 限帧用于控制TAS播放速度:
+
#*** 如 TAS 是 500fps,限制为 250fps,则播放速度减慢,但游戏内部时间流逝保持不变
 +
#*** 只需记住限帧工具可以调节播放速度即可。
 +
#* 工具选择
 +
#** 可使用 Bandicam
 +
#*** 找到 {{Kbd|整合包目录\Bandicam.zip}} 并解压到你觉得合适的位置
 +
#*** 双击 {{Kbd|Bandicam目录\BandicamPortable.exe}} 打开 Bandicam
 +
#*** 在界面上方选择 {{Kbd|游戏录制模式}}
 +
#*** 在界面左边选择 {{Kbd|FPS}},设置一个快捷键以启用限帧功能。
 +
#**** 勾选 {{Kbd|显示叠加 FPS}}
 +
#**** 勾选 {{Kbd|热键}},同时设置合适的快捷键
 +
#**** 勾选 {{Kbd|限制 FPS 为}},同时设置合适的数值(20~50)
 +
#**** 取消勾选 {{Kbd|限制 FPS 为}}
 +
#*** 关闭 Bandicam
 
<font color="red">至此,环境配置基本完成。</font>
 
<font color="red">至此,环境配置基本完成。</font>
 +
 
==TAS制作的基本流程和操作方法==
 
==TAS制作的基本流程和操作方法==
 
# 准备工作
 
# 准备工作
#* 打开TAS编辑器,打开ModLoader\TASRecords目录,把TAS文件(SR5.tas)拖入TAS编辑器
+
#* 打开TAS编辑器,将 {{Kbd|SR3.tas}} 拖入TAS编辑器
#* 打开ModLoader\Config\TASSupport.cfg(你可以使用记事本、VScode等文本编辑器打开)
+
#* 打开 {{Kbd|游戏目录\ModLoader\Config\TASSupport.cfg}}(你可以使用记事本、VScode等文本编辑器打开)
 
#* 打开Bandicam(限帧工具)
 
#* 打开Bandicam(限帧工具)
# 制作TAS:编写TAS文件。播放TAS。
+
# 制作TAS:编写TAS文件,播放TAS。
#* TAS编辑器的使用方法具体可以查阅编辑器目录下的【!先看这个-说明书.pdf】
+
#* TAS编辑器的具体使用方法详见 {{Kbd|编辑器目录\!先看这个-说明书.pdf}}
#* 利用TAS编辑器对每一帧操作,例如,我们在第800帧 到 第1300帧之间填入“↑”(你可能需要先用选择模式先添加足够的帧数,TAS空文件只有917帧),保存TAS
+
#* 利用TAS编辑器对每一帧操作
#* 打开游戏,应该能观察到,球在第800帧 第1300帧之间输入的“↑”,球的运动状态是往前滚动。
+
#** 例如,我们在第800帧 第1300帧之间填入 {{Kbd|↑}} (你可能需要先用选择模式先添加足够的帧数,TAS空文件只有917帧)
#* '''【技巧】限制工具的使用。'''将帧数限制在某个大小,以调节TAS的播放速度,便于观察。(如果能使用快捷键来限帧会方便很多,注意刚打开游戏的时候不要限帧,否则游戏打开会很慢。即:在游戏进入开始播放时进行限帧)
+
#* {{Kbd|Ctl + S}} 保存TAS文件
#* '''【技巧】ExitKey的应用。'''当你获取到了足够的信息,不用继续观看播放TAS时,可以直接使用“ExitKey”退出游戏(注意,ExitKey只有在播放时能触发,因此可以把TAS文件里的帧数添加多一点避免过早结束播放,或者你使用ExitOnFinish也可,但是不推荐)
+
#* 打开游戏,应该能观察到,球在第800帧 到 第1300帧之间输入的 {{Kbd|↑}},球的运动状态是往前滚动。
 
#* 继续编辑TAS文件,保存,打开游戏观察,重复此步骤,直到你满意为止。
 
#* 继续编辑TAS文件,保存,打开游戏观察,重复此步骤,直到你满意为止。
#* <font color="red">至此,你已经有做出一个TAS的基本能力,接下来是一些功能的应用和技巧方法。</font>
+
# 技巧
#* '''【技巧】SkipRenderUntil的应用。'''当你做了一段TAS之后,比如你已经做到第10000帧,如果每次都重头开始播放太费劲了。因此你可以选择直接跳过到某一帧,比如当你做到第10000帧,你可以选择直接在第9800帧开始观看,那么在SkipRenderUntil里填入9800即可。为了方便,你可以直接在TASSupport.cfg里修改。其原理在前面已经说过。
+
#* 限帧工具的使用:
 +
#** 使用 Bandicam快捷键 将帧数限制在某个大小,以调节TAS的播放速度,便于观察。
 +
#** 注意刚打开游戏的时候不要限帧,否则游戏打开会很慢
 +
#* ExitKey的应用:
 +
#** 当你获取到了足够的信息,不用继续观看播放 TAS 时,可以直接使用 {{Kbd|ExitKey}} 退出游戏
 +
#** 注意,{{Kbd|ExitKey}} 只有在正在播放时能触发,因此可以把TAS文件里的帧数添加多一点避免过早结束播放
 +
#* SkipRenderUntil的应用:
 +
#** 当你做了一段TAS之后,比如你已经做到第10000帧,如果每次都重头开始播放太费劲了。因此你可以选择直接跳过到某一帧,比如当你做到第10000帧,你可以选择直接在第9800帧开始观看,那么在 SkipRenderUntil 里填入 9800 即可。
 +
#** 为了方便,你可以直接在 {{Kbd|TASSupport.cfg}} 里修改。其原理在前面已经说过。
 +
# <font color="red">至此,你已经有做出一个TAS的基本能力,接下来是一些功能的应用和技巧方法。</font>
  
 
==TAS制作技巧:游戏具体内容外的心得==
 
==TAS制作技巧:游戏具体内容外的心得==
第68行: 第113行:
 
* <big><font color="red">最重要,最重要,最重要。路线、细节研究。</font></big>制作TAS前必须先研究好路线和细节,'''不然做到最后才发现开头就做错了有你好受的'''
 
* <big><font color="red">最重要,最重要,最重要。路线、细节研究。</font></big>制作TAS前必须先研究好路线和细节,'''不然做到最后才发现开头就做错了有你好受的'''
 
===编写者的一些习惯(TAS制作环境)===
 
===编写者的一些习惯(TAS制作环境)===
* 对于TAS编辑器,编写者认为竖向布局好用,但是你仍然可以根据自己的情况选择。点击【编辑】,再点击【横向布局】,将【横向布局】的勾去掉即可
+
* 将 {{Kbd|Player.exe}} 固定到任务栏,以方便快速启动游戏
* 将ModLoader\TASRecords目录添加到快速访问,这样能迅速找到目录,回退一级就是ModLoader目录
+
* 键位:
* 将Player.exe添加快捷方式到桌面,以方便快速启动游戏
+
** {{Kbd|ExitKey}} 为 {{Kbd|K}}
 +
** {{Kbd|StopKey}} 为 {{Kbd|L}}
 +
** {{Kbd|Bandicam 限帧快捷键}} 为 {{Kbd|U}}
 +
** {{Kbd|Bandicam 录制快捷键}} 为 {{Kbd|9}}
 
===记得随时备份你的TAS文件===
 
===记得随时备份你的TAS文件===
 
* 在研究路线分支时
 
* 在研究路线分支时
* 利用SpiritTrail获取影子球后
+
* 利用 SpiritTrail 获取影子球后
 
* 在做出一个捷径或细节后想尝试再优化时
 
* 在做出一个捷径或细节后想尝试再优化时
 
===自制图TAS的制作方法===
 
===自制图TAS的制作方法===
第81行: 第129行:
 
===加快跳过渲染的速度、提高帧率===
 
===加快跳过渲染的速度、提高帧率===
 
* 以下mod建议在非必要的时候不要装,需要的时候再装
 
* 以下mod建议在非必要的时候不要装,需要的时候再装
** '''Segment.bmod''' 该mod会大幅度降低最高帧数,减慢TAS播放的最快速度
+
** {{Kbd|Segment.bmod}} 该mod会大幅度降低最高帧数,减慢 TAS 播放的最快速度
* 可以另外建一个游戏目录,使用dx9来观看TAS(对于低配机)
+
* 将 {{Kbd|游戏目录\Sounds\}} 内所有音频换成0.01秒静音轨道,可以将跳过渲染的速度加快5%-15%
** 具体使用方法参照dx9教程,这里不赘述,该方法需要全屏
+
** 静音文件可以在 {{Kbd|整合包目录\misc\空音频(替换游戏文件用于加快跳过速度}} 找到
** 该方法仅仅适合需要感受一下原速播放时是怎么样的时候用一下,建议不要直接使用dx9制作播放TAS。因为每次打开都需要全屏实在太慢了。
+
* 如果电脑录制帧数跑不满:
* 你同样可以利用SpiritTrail这个mod先记录影子球,然后在正常游玩中观察影子球在正常速度下是否有异常
+
** 方案1:做出成品后,你可以将tas文件交给高配电脑的玩家帮你录制视频
* 将游戏目录下Sounds文件夹内所有音频换成0.01秒静音轨道,可以将跳过渲染的速度加快5%-15%
+
** 方案2:限制更低的帧数,例如 264fps 的tas文件限制为66 (264/4)帧,录制结束后利用视频软件将视频加速4倍
* 做出成品后,你可以将tas文件交给高配电脑的玩家帮你录制视频(对于低配机)
+
===提高效率、减少重复劳动的建议===
 +
* 使用按键精灵软件,写一个简单的自动保存tas文件并打开游戏、自动退出游戏的脚本,这样就可以一键进入或退出游戏,避免重复机械性按ctrl+s这种操作
 +
* 以下是一键启动游戏的伪代码'''(每一步之间可以适当打点延迟)'''
 +
**
 +
  点击tas editor窗口
 +
  保存
 +
  点击任务栏游戏图标 <font color="green">//之前说的把游戏启动exe固定在任务栏</font>
 +
  点击Bandicam的限制FPS输入窗口  <font color="green">//方便立刻改变帧数,控制tas播放速率以便观察球速和位置情况</font>
 +
  结束
 +
* 以下是一键关闭游戏的伪代码:
 +
**  
 +
  右键任务栏游戏图标
 +
  点击关闭游戏
 +
  点击tas editor窗口  <font color="green">//方便退出游戏后立刻编辑tas文件,否则还要手点一下窗口到前台才能进行编辑操作</font>
 +
  结束
 +
* 如果你是新手,可能不理解这样做的意义,稍微有经验后再回来看这条,就可以理解了
  
===视频封面建议(大雾)===
+
===视频封面建议(非必要)===
 
* 在经过一年多的TAS制作后,TAS制作者们无形中达成了一个共识,那就是Ballance TAS视频封面的特点。
 
* 在经过一年多的TAS制作后,TAS制作者们无形中达成了一个共识,那就是Ballance TAS视频封面的特点。
 
* 封面背景图使用作者认为整关最华丽或最关键的某个捷径
 
* 封面背景图使用作者认为整关最华丽或最关键的某个捷径
第97行: 第160行:
  
 
==TAS制作技巧:路线、捷径、细节制作的基本方法==
 
==TAS制作技巧:路线、捷径、细节制作的基本方法==
<big><font color="red">前言:任何方法都不是绝对的,你需要根据实际情况来制定最优的路线细节</font></big>
+
{{Note | 前言:任何方法都不是绝对的,你需要根据实际情况来制定最优的路线细节}}
===尖头单轨的制作方法、路面边缘的寻找方法===
+
Mod获取和使用方法:[https://bcrc.site/docs/mods Ballance Mod 文档]
* 利用'''PositionViewer'''(编写者的该mod设置分别是0.93和12)
+
===宏观路线快慢对比方法===
* 利用BML变球种的功能,如果你的球本来就是木球,如果按下变木球的快捷键,那么球的物理状态将重置,也就是瞬间失去自转和速度。
+
* 宏观路线是指单小节甚至多个小节整体的路线,不同宏观路线上的差别可能以秒为单位,因此在制作tas前确定宏观路线十分有必要
* 正常打开游戏(不播放TAS),开全局倍速0.3(低一点即可,方便观察球是怎么偏的)
+
* 方法一:利用 {{Kbd|NewSpawn(v0.0.2)}} 的影子球功能 和 {{Kbd|PhysicsEditor}} 的全局倍速功能,反复手打对比,如果能观察出明显的快慢差距,即可得出结论。必要时可剪辑拼接不同片段对比
* 把球放在单轨上,重置球物理状态,观察坐标变化,如果右偏就把球放到靠左一点再重置,不断逼近单轨正中心。利用该方法找到单轨中心的坐标,精度在±0.02内即可。
+
* 方法二:利用方法一无法准确得出结论时,可以直接做两个路线的TAS
* 播放TAS时,观察球坐标在单轨中心附近就行,具体精度由你自己决定(编写者常用的是±0.02以内)
+
** 确定路线一的起点和终点,制作路线一的 TAS,计算该路线所用时间
 +
** 备份路线一的 TAS
 +
** 返回路线一的起点,制作路线二的TAS,比较二者所用时间即可得出结论
 +
* 虽然我们建议在任何情况下均选择速度最快的宏观路线,但如果两个宏观路线差别不是特别大,则可以选择更加精彩(使用了极难捷径、连体捷径、观赏性强的捷径等)的路线,例如荧光的TAS SR10中在第二小节使用了木球骑纸球跨T板的捷径,虽然相比纸球连体走法慢5秒左右,但观赏性极佳。无论如何,你都可以根据自己的喜好选择不同的路线,'''没有强制性的要求必须选择最快/全捷径的路线'''。
 +
<font color="red">特别提醒:某个路线可能在你确定的起点和终点区间内更快,但别忘了考虑终点时不同路线球的速度和位置,终点处球位落后的路线球速可能更快,后续可能反超,需要多加测试</font>(例:口语的TAS SR03在第三小节箱子阵,走上方单轨前期快,但后期会被下方路线反超)
 +
 
 +
===细节路线快慢判断的方法===
 +
* 细节路线(通常简称为细节)是指单个切线、切轨、捷径的路线。相比宏观路线,细节路线的时间跨度很短,通常只有几秒甚至几百毫秒。不同细节的差别通常以0.1秒甚至0.01秒为单位,细节的差距直接影响TAS的流畅度和观赏性,且细节走好省下的时间加起来也很可观,因此不可忽视
 +
* 细节的差别很多时候无法通过肉眼观察进行比较,这时可以通过 {{Kbd|ShowInfoGui}} 观察球的具体速度和位置参数来判断
 +
* {{Kbd|ShowInfoGui}} 插件显示的球速为公式计算下的一半。例如通过 {{Kbd|ShowInfoGui}} 的信息,球在0.015秒的时间内前进了0.426的距离,0.426/0.015=28.4格/秒,但实际球速显示为14左右
 +
* 相同时间内,跑得远的速度快;相同距离下,速度快的用时短。这是所有游戏速通包括F1赛车的基本理论
 +
* 通过 {{Kbd|ShowInfoGui}} 插件,观察某一时刻(例如第10000帧)时球速和位置的数据
 +
* 根据基本理论,球在此时刻的速度相同,我们选择位置更靠前的那种路线;球在此刻的位置相同,我们选择速度更快的那种路线
 +
* 大多数时候,会有位置领先但速度慢、位置落后但速度快的矛盾情况出现,可以根据上文的速度和距离计算方法,评估选择哪种,或观察更靠后的时间点哪种路线领先再进行选择
 +
 
 +
===尖头单轨的制作方法、凹路面边缘的寻找方法===
 +
* 安装 {{Kbd|PositionViewer}} 插件
 +
* 利用 {{Kbd|debug}} 功能把球变成木球或石球
 +
* 把球停在双轨或凹路面(凹路面可看做窄距双轨)的正中间
 +
* 顺着双轨或凹路面前进,利用 {{Kbd|PositionViewer}} 插件观察球的X和Z坐标,变化较少的那个坐标分量单独记下来。Y坐标为垂直方向的球坐标,在这里一般用不到
 +
* 反复移动球,记下多组坐标值,然后求平均,所得即为双轨或凹路面正中心的坐标值
 +
* 双轨的两根单轨中心水平坐标间距为3.8单位,标准凹路面宽度为5单位(正常的标准路面宽度也是5)
 +
* 将上面计算得到的数据分别加减1.9,即为两侧单轨的中心坐标;加减2.5,即为凹路面边缘的坐标
 +
* 制作时,尽量将球保持在尖头单轨的正中间和凹路面边缘,这样是最快的且观赏性较好
 +
 
 +
===宽路面、非标准路面的边缘寻找方法(操作简单但精度低)===
 +
* 利用 {{Kbd|debug}} 功能把球变成木球或石球,在路面边缘利用 {{Kbd|debug}} 功能让球上升
 +
* 空中目测对齐路面边缘,然后在空中利用 {{Kbd|new spawn}} 功能设置新的出生点,接下来按相应快捷键,球就会失去所有速度和自旋出生在该位置
 +
* 在空中下落,球落在路面上,观察球向内还是向外偏,记住相对应的坐标分量
 +
* 利用二分法,不断从两侧逼近。例如球在110.540坐标下向内偏,在110.521坐标下向外偏,那么就可以认为110.530就是路面边缘的坐标。根据自己制作tas的要求,决定相应精度,一般至少精确到0.1才不会在宏观上产生明显偏差
 +
 
 +
===宽路面、非标准路面的边缘寻找方法2(操作复杂但精度高)===
 +
* 下载 {{Kbd|server-windows-3.6.0-beta3-bddf86e.zip}}压缩文件。可在 {{Kbd|Ballance·研讨交流群}} 的群文件中找到
 +
* 解压后同时点开{{Kbd|BallanceMMOServer.exe}}和{{Kbd|BallanceMMOMockClient.exe}}这两个文件,出现两个命令行窗口
 +
* 安装最新的联机插件(目前为{{Kbd|BallanceMMO_3.6.0-beta3.zip}}),相关安装方法请查看[https://bcrc.site/docs/mods Ballance Mod 文档]
 +
* 打开游戏,按/呼出命令行,输入MMO C回车,这时候出现选择服务器的界面,然后选择ADD NEW,在SERVER ADDRESS窗口输入127.0.0.1,回到刚才选择服务器的界面,会出现一个新的127.0.0.1的服务器,双击选择即可进入该服务器
 +
* 开启{{Kbd|debug}} 功能,同时尽量让游戏窗口化,方便后续操作
 +
* 利用 {{Kbd|debug}} 功能把球变成木球或石球,在路面边缘利用 {{Kbd|debug}} 功能让球上升
 +
* 空中目测对齐路面边缘,记录相应坐标,然后让球在空中下落,观察球向内还是向外偏
 +
* 在刚才打开的{{Kbd|BallanceMMOMockClient.exe}}窗口里,输入MOVE X Y Z回车(X,Y,Z是刚才你记录的坐标),然后在游戏里按/输入命令MMO TP MOCKCLIENT,可以观察到球瞬移到你输入的坐标
 +
* 在{{Kbd|BallanceMMOMockClient.exe}}窗口里,输入不同的MOVE X Y Z命令(X,Y,Z坐标需要自行调整到合适的不同值),然后重复上述步骤,观察球落地时偏移情况
 +
* 利用二分法的思想,经过数次尝试后即可获取精确的千分位路面边缘坐标
 +
* 理论上也可以通过vt等软件导入关卡文件,进而直接测量相应的坐标,或者修改出生点。但vt软件里的坐标跟 {{Kbd|PositionViewer}} 插件显示的坐标不一致,且软件本身也有较高的学习成本,而之前介绍的方法足以应对大多数需求,可根据个人需求学习
 +
 
 
===侧轨的制作方法===
 
===侧轨的制作方法===
* 利用'''PositionViewer'''
+
* 利用 {{Kbd|PositionViewer}}
* 正常打开游戏(不播放TAS),贴住侧轨,记录坐标
+
* 正常打开游戏(不播放 TAS),贴住侧轨,记录坐标值,此坐标值即球不碰到侧轨的极限值
* 播放tas时观察坐标别超过记录的值就行,为了保证没有碰到侧轨,可以让球的坐标和值相差在0.01以上,但是也别差太多了,否则会慢,而且观赏性不佳。
+
* 播放 TAS 时观察坐标别超过极限值就行,为了保证没有碰到侧轨,可以让球的坐标和极限值相差在0.01以上,但是也别差太多了,否则会慢,而且观赏性不佳
 +
* 纸球由于不规则,很难确定上述的极限坐标值,因此可以使用 {{Kbd|debug}} 功能变成木球再测试;同样由于不规则性,纸球还没达到极限值可能就已经碰到了侧轨,或者已经超过极限值但还没碰到侧轨,具体的快慢需要实际分析
 +
 
 
===碰撞时机的判断。变球器开始和结束的判断===
 
===碰撞时机的判断。变球器开始和结束的判断===
* 利用'''Speedometer'''
+
* 利用 {{Kbd|ShowInfoGui}}
 
* 利用限帧将播放变慢,录制播放
 
* 利用限帧将播放变慢,录制播放
* 观察录像,当Speedometer显示的速度发生突变时即为碰撞发生的时候(你需要会使用你的播放器的逐帧查看,一般是按F键)
+
* 观察录像,当 {{Kbd|ShowInfoGui}} 显示的速度发生突变时即为碰撞发生的时候
===路线快慢对比方法===
+
** 你需要会使用你的播放器的逐帧查看,一般是按F键
* 方法一:利用'''NewSpawn(v0.0.2)'''的影子球功能 和 '''PhysicsEditor'''(也可用'''ChangeGameSpeed'''替代)的全局倍速功能,反复手打对比,如果能观察出明显的快慢差距,即可得出结论。
+
 
* 方法二:利用方法一无法准确得出结论时,可以直接做两个路线的TAS
+
===换视角(待完善)===
** 制作路线一的TAS,利用'''SpiritTrail'''记录影子球。(如果路线未到达盘点,你可以使用StopKey结束TAS播放,然后手打让球经过盘点以此记录影子球。)
+
* 在游戏中,按下 {{Kbd|shift+方向键}} 换视角的瞬间,视角立即发生变化,但是此时键盘输入的方向并未立即发生改变(即当你按住{{Kbd|↑}}走单轨时,立即换视角,在视角旋转最开始的时刻,你仍然需要按住 {{Kbd|↑}} ,直到某一时刻改变了游戏的操作方向)
** 备份路线一的TAS
+
* 经测试,操作方向发生变化的时刻,在按下 {{Kbd|shift}} 换视角后的0.25秒左右
** 返回某个时间节点,制作路线二的TAS,观察影子球即可对比快慢
+
* 你可以自己测试操作方向发生变化的具体间隔帧数,利用BMLPlus的TASSupport的ShowInfoGui,观察速度变化的时刻来确定操作方向发生变化的时刻
===换视角===
+
 
* 在游戏中,按下shift+方向键换视角的瞬间,视角立即发生变化,但是此时键盘输入的方向并未立即发生改变(即当你按住↑走单轨时,立即换视角,在视角旋转最开始的时刻,你仍然需要按住↑,直到某一时刻改变了游戏的操作方向)
+
===平地纸球 & 视野遮挡 做法(该具体方法在BMLPlus失效)===
* 经测试,操作方向发生变化的时刻,在按下shift换视角后的0.25秒左右。
+
* 这一目的是减少由于纸球不规则带来的一些小卡顿问题
* 在264fps的tas中,如果第1帧按下shift,那么你应该在第63帧(即相隔62帧)开始输入新的方向。
+
* 将 {{Kbd|Camera}} 功能启用,将 {{Kbd|MoveDown}} 快捷键设置为 {{Kbd|Q}},在TAS编辑器中设置一段帧按 {{Kbd|Q}},那么在后面的视角里,纸球的平地运动将会变得清晰可见
* 在132fps的tas中,如果第1帧按下shift,那么你应该在第36帧(即相隔35帧)开始输入新的方向。
+
* 观察纸球运动即可在有较大卡顿的地方做处理
* 你仍然可以自己测试操作方向发生变化的时刻,利用BMLPlus的TASSupport的ShowInfoGui,观察速度变化的时刻来确定操作方向发生变化的时刻。(注意,目前仍然不太建议使用BMLP做TAS,待BMLP稳定后,教程将更新。
+
* 追求极致可以结合速度显示器
===平地纸球做法===
+
* 在264fps下,按500帧 {{Kbd|Q}} 即可获得一个不错的视角。同理,132fps下,按250帧
* 这一目的是减少由于纸球不规则带来的一些小卡顿问题。
+
* 该方法同样适用于做 6-2 等具有遮挡的关卡,可以避免遮挡
* 将Camera功能启用,将MoveDown快捷键设置为[Q],在TAS编辑器中设置一段帧按q,那么在后面的视角里,纸球的平地运动将会变得清晰可见。
 
* 观察纸球运动即可在有较大卡顿的地方做处理。
 
* 追求极致可以结合Speedometar。
 
* 在264fps下,按500帧[Q]即可获得一个不错的视角。同理,132fps下,按250帧。
 
* 该方法同样适用于做6-2等具有遮挡的关卡,可以避免遮挡。
 
 
===纸球爬护栏===
 
===纸球爬护栏===
* 有一个技巧,因为爬护栏需要在到护栏前一刻弹起来,而弹起来的一瞬间速度是向上的,此时如果碰到护栏反而削弱了向上的速度,所以可以尝试磕起瞬间反方向按键1-2帧,目的是不让球过快碰到护栏而减速。
+
* 有一个技巧,因为爬护栏需要在到护栏前一刻弹起来,而弹起来的一瞬间速度是向上的,此时如果碰到护栏反而削弱了向上的速度,所以可以尝试磕起瞬间反方向按键1-2帧,目的是不让球过快碰到护栏而减速
* 具体例子请参考fluoresce的SR6-3。
+
* 具体例子请参考 fluoresce 的 TAS SR6-3
===纸球平地鬼躲做法===
+
===纸球平地鬼躲 提高成功率做法===
* 鬼躲前只走一边。
+
* 鬼躲前只走一边,保证球大约1/4到1/3的部分在路面内
* 具体例子请参考0x386的TAS SR09中的第3节,第5节。
+
* 接近变球器时,在保证不被变球器捉住的前提下,尽可能晚向外拉,尽可能早返回路面
* 该方法由于尝试例子太少不排除只是运气好的偶然因素,即该方法可能是假的有用。
+
* 通过 {{Kbd|ShowInfoGui}} 插件,观察纸球向外飞出去一瞬间的垂直速度分量。作为参考,口语的 TAS SR05 最后的平地鬼躲瞬时最高向上速度为3.854,低于3.5可能就无法成功
===其他===
+
* 具体例子请参考0x386的 TAS SR09 中的第3节,第5节
* 这个条目比较杂,想到什么就写什么。
+
* 该方法提高成功率的原理是:只走一侧纸球的横向速度小,不规则球体产生的意外随机变化少;方便观察纸球弹跳位置和弹跳情况;最重要的是可以用相对稳定的方法进行暴力尝试,提高尝试效率
* 一帧的状态不止按左或按右,还有不按。
+
===优化建议===
 +
* 以某个关键点作为节点,将整关分为很多更小的区间,基本的优化思路就是找到第一个小区间最快的路线,在此基础上再继续第二个小区间的制作,以此类推
 +
* 节点可以是转弯前,变球,通过盘点,完成某个捷径等,根据个人制作精度需求可以进一步细分,理论上小区间分的越细,效果会越好,但花的时间也会成倍增加
 +
* 不要陷入“局部最优”的陷阱。因为每一个区间都会对后续所有区间造成影响,所以制作时要考虑到每个区间相互的影响,最后综合起来最快的路线,可能在某个区间反而会慢一点,这是很常见的情况。选择长度合适的区间来进行迭代优化同样考验作者的游戏理解
 +
===按键操作的延迟性===
 +
* 大多数时候由于球本身有一定的速度及方向,按键操作输入进去后,可能不会立刻产生明显改变球速度和方向的效果
 +
* 例如纸球在10000帧时卡了一下,我们想通过改变按键来避免这次卡顿,那么至少应该提前100帧,也就是在9900帧之前尝试改变按键组合来避免10000帧的卡顿
 +
*距离目标帧越近,按键改变影响的效果越小。例如上面的例子,我们直到9990帧才改变按键,那么10000帧的卡顿依旧会出现
 +
* 设置合理的区间进行对比。还是上文的例子,如果过早,比如在9500帧改变按键,那么10000帧可能确实不卡顿了,但前面这500帧有可能出现新的卡顿点,需要多次测试避免此情况
 +
 
 +
===音乐卡点设计方法===
 +
* 获取音乐重要位置的毫秒数 <s>(编写者是用osu!编辑器获取并导出的)</s>
 +
* 确定 TAS 播放时音乐的起点帧
 +
* 计算音乐的几毫秒对应的这个 TAS 的 fps 下的第几帧(可能需要编程)
 +
* 将帧数加上起点帧即为实际帧位置,列出清单
 +
* 做的时候保证这个帧时刚好位于碰撞等有节奏感的位置
 +
* 可以用转换视角后几十帧内再次转换视角,让视角变化产生巨大停顿来卡节奏
 +
* 如果球是静止状态开始卡节奏,可能需要提前几十帧按方向键才会感到对上节奏
 +
 
 +
===游戏操作输入机制===
 +
* Ballance能响应的最小输入时间为1/132秒。例如你想输入右,那么游戏接受到的最小输入右的时长就是1/132秒,无法再少,所以个别时候可能无法产生理想的微调效果
 +
* 虽然输入时间有最小值,但球本身坐标位置的显示没有,因此TAS制作常用264帧,可以更方便观察球的位置状态,对比快慢
 +
* 264帧下游戏只响应奇数帧的操作输入,例如你在9999帧按了一下右,在9998和10000帧按左,那么就算你把9998和10000帧全部改成右,游戏里球的速度和位置也不会受到影响(理论如此,但实际偶尔会有效果,非常玄学)
 +
* 如果你使用264帧进行制作,那么建议以两帧为最小单位进行调整,如果一帧一帧改,那么偶数帧的改动实际没有产生任何效果(同上,实际偶数帧的输入偶尔会有效果,暂不清楚作用机制,为避免无效尝试,依旧不建议微调单帧)
 +
* 帧数高并不会影响制作效率,66帧的tas和264帧的tas看起来工作量翻了四倍,实际制作时几乎没有差别,相反帧数过低的tas因为能操控的精细度变差,个别捷径可能无法走出最佳效果,甚至无法成功。因此我们建议一律使用264帧进行制作,如果想使用其他帧数,从方便制作的角度,可以选择的帧数为:66、132、264、396,其他帧数均不实用。高于400帧,游戏本身的物理属性,游戏速度,机关属性都可能受到影响,同样不推荐
 +
* 两帧的状态(264帧下通常意义的最小调整单位)不止按上下左右,还可以不按。在很多时候,不按可以增加很多不同的细节路线,利用TAS来微调,很多时候也是通过在不同位置空两帧的手段实现的
 +
 
 +
===纸球增加随机性的方法===
 +
* 在不影响速度的前提下按无关方向键。例如纸球向前走,这时按左或右不影响纸球前进的速度,但可以赋予纸球不同的位置、横向速度以及自旋,这就为捷径尝试增加了变化性,纸球平地小卡的问题也可以借此解决。口语的TAS SR05在最后平地鬼躲完成后,纸球在前进途中左右横跳,就是为了避免小卡
 +
* 无关的输入在不同位置空帧。例如100帧无关的右,空两帧,就多出来50种情况;空4帧,就多出来49+48+47+...+2+1=1250种情况,大多数纸球捷径在这个量级下产生的随机变化情况已经足够成功,如果再考虑空6帧、8帧、12帧等操作,这100帧的随机区间能产生的变化就更多了
 +
* 以两帧为单位进行调整,纸球的状态已经会产生明显的变化,因此不用担心调整幅度过小导致纸球状态变化不大的问题。由于蝴蝶效应,进行调整的位置离目标位置越远,纸球的状态变化也会越明显。例如想改变纸球在10000帧的状态,那么你在9991帧和9993帧分别改变(再强调一下,264帧下制作TAS,偶数帧的输入不影响球状态),10000帧时纸球几乎不会有状态的变化;但如果你在9501帧和9503帧分别改变,10000帧时纸球的状态可能天差地别

2025年7月1日 (二) 01:58的最新版本

TAS 制作教程,顾名思义,即为 Ballnce 的 TAS 制作所用教程。Ballance 的 TAS 制作门槛不高,但是仍然需要有一个教程来帮助有兴趣的朋友快速上手 Ballance 的 TAS 制作。

前言

  1. 适合人群:了解 Ballance 基本内容及圈内常用术语,基础操作(如 安装和设置 mod 等)的玩家。
  2. 特点:
    • 门槛低:搭建好环境后,制作并不复杂。
    • 上限高:想做出一个高水准的 TAS,你可能需要较高的游戏理解和持之以恒的心态。
  3. 本教程为 TAS 制作教程,而非观看教程。观看 TAS 只需:
    • 启用 TASSupport 功能并重启游戏。
    • 在选关界面点击右下角 TAS 按钮,选择播放的 TAS 文件并进入对应关卡。
  4. 其他:
    • 本教程所用操作方法均为本教程编写者(荧光、口语)的习惯。
    • 如果你有任何疑问,直接在群里询问即可。
    • 欢迎勘误

了解 Ballance 的 TAS 制作原理和流程

TAS(Tool-Assisted Speedrun)指在不修改游戏本体的前提下,利用模拟器的辅助功能(如外设输入模拟、存档、回退、慢动作与重录等)以极高精度完成游戏的一种方式。

Ballance的 TAS 制作,则是编写 TAS 文件,利用 BML 的 TASSupport 功能读取 TAS 文件,对游戏进行逐帧操控。

与其他游戏不同,Ballance 的 TAS 制作不支持回退帧操作,因此实际制作大致为以下步骤:

  1. 播放 TAS :使用 BML 和 TASSupport 功能在游戏中读取并播放编写的 TAS 文件。
  2. 观察与调整:根据播放时观察到的球体运动现象,修改 TAS 文件内容并保存。
  3. 重复调试:再次播放修改后的 TAS 文件,继续观察与调整,直到对结果满意为止。

配置 Ballance TAS 制作环境

如果有些地方不懂为什么要这么做,没关系,后面会讲具体的用法
  1. 下载整合包
    • 下载 Ballance TAS制作整合包.zip(下称整合包)。可在 Ballance·研讨交流群 的群文件中找到
    • 将整合包解压到合适的位置
  2. 准备游戏本体
    • 找到 整合包目录\Ballance_TAS.zip 并解压到你觉得合适的位置。
      • 该文件内容版本:游戏本体 + BMLPlus-v0.3.4-alpha8 + NewPlayer-v0.3.2
      • 建议1:请务必使用该游戏本体,本文攥写者已经更改的部分设置,在下文中不会提及
      • 建议2:为避免设置的频繁更改,建议该游戏目录仅用于播放 TAS,而非同时作为平时游玩的游戏目录
  3. 准备TAS文件
    • 接下来以制作 SR3 为例
    • 复制 整合包目录\misc\空tas文件\264fps.tas游戏目录\ModLoader\TASRecords
    • 游戏目录\ModLoader\TASRecords\264fps.tas 重命名为 SR3.tas
    • 解释:
      • 132fps 和 264fps 均可。
      • 我们制作 TAS 时需要编辑修改的就是这个SR3.tas
  4. 基础游戏配置
    • 双击 游戏目录\bin\player.exe 启动游戏
    • 游戏打开后应该是窗口化模式,并且游戏窗口可以拖动,如果不能,请按下 Alt + Enter 切换为窗口模式。
    • 游戏菜单\Options\Graphics\Screen Resolution:将分辨率设置为合适的大小(必须为4:3)。
    • 游戏菜单\Options\Mods\BML\Graphics\UnlockFrameRate:设置为 yes
    • 游戏菜单\Options\Mods\TASSupport\Misc 设置:
      • EnableYes
      • RecordNo
      • StopKey合适的快捷键(用于结束TAS播放)
      • ShowKeysGuiYes(用于显示按键情况)
      • ShowInfoGuiYes(播放过程中显示玩家球的坐标、球速、转速等)
      • SkipRenderUntil0(可以理解成从什么时间点开始播放,单位:帧)
      • ExitOnDeadNo(球死亡时退出游戏)
      • ExitOnFinishNo(播放结束时不退出游戏)
      • ExitKey合适的快捷键(用于随时退出游戏)
      • AutoLoadTASSR3(游戏启动时自动播放 SR3.tas 文件)
      • AutoLoadLevel3(游戏启动时自动加载第3关。)
      • TranscriptNo
    • 退出游戏
  5. 编辑器
    • 找到 整合包目录\BallanceTASEditor-v1.2stable.zip 并解压到你觉得合适的位置
    • 双击 编辑器目录\BallanceTASEditor.exe 启动编辑器
    • SR3.tas 拖入编辑器
    • 点击 Edit (编辑),取消勾选 Horizontal Layout (横向布局)
    • 使用 Ctrl + 滚轮 调整界面到合适的位置
    • 具体使用方法详见 编辑器目录\!先看这个-说明书.pdf
    • 关闭编辑器
  6. 限帧工具
    • 目的与原理
      • 限帧用于控制TAS播放速度:
        • 如 TAS 是 500fps,限制为 250fps,则播放速度减慢,但游戏内部时间流逝保持不变
        • 只需记住限帧工具可以调节播放速度即可。
    • 工具选择
      • 可使用 Bandicam
        • 找到 整合包目录\Bandicam.zip 并解压到你觉得合适的位置
        • 双击 Bandicam目录\BandicamPortable.exe 打开 Bandicam
        • 在界面上方选择 游戏录制模式
        • 在界面左边选择 FPS,设置一个快捷键以启用限帧功能。
          • 勾选 显示叠加 FPS
          • 勾选 热键,同时设置合适的快捷键
          • 勾选 限制 FPS 为,同时设置合适的数值(20~50)
          • 取消勾选 限制 FPS 为
        • 关闭 Bandicam

至此,环境配置基本完成。

TAS制作的基本流程和操作方法

  1. 准备工作
    • 打开TAS编辑器,将 SR3.tas 拖入TAS编辑器
    • 打开 游戏目录\ModLoader\Config\TASSupport.cfg(你可以使用记事本、VScode等文本编辑器打开)
    • 打开Bandicam(限帧工具)
  2. 制作TAS:编写TAS文件,播放TAS。
    • TAS编辑器的具体使用方法详见 编辑器目录\!先看这个-说明书.pdf
    • 利用TAS编辑器对每一帧操作
      • 例如,我们在第800帧 到 第1300帧之间填入 (你可能需要先用选择模式先添加足够的帧数,TAS空文件只有917帧)
    • Ctl + S 保存TAS文件
    • 打开游戏,应该能观察到,球在第800帧 到 第1300帧之间输入的 ,球的运动状态是往前滚动。
    • 继续编辑TAS文件,保存,打开游戏观察,重复此步骤,直到你满意为止。
  3. 技巧
    • 限帧工具的使用:
      • 使用 Bandicam快捷键 将帧数限制在某个大小,以调节TAS的播放速度,便于观察。
      • 注意刚打开游戏的时候不要限帧,否则游戏打开会很慢
    • ExitKey的应用:
      • 当你获取到了足够的信息,不用继续观看播放 TAS 时,可以直接使用 ExitKey 退出游戏
      • 注意,ExitKey 只有在正在播放时能触发,因此可以把TAS文件里的帧数添加多一点避免过早结束播放
    • SkipRenderUntil的应用:
      • 当你做了一段TAS之后,比如你已经做到第10000帧,如果每次都重头开始播放太费劲了。因此你可以选择直接跳过到某一帧,比如当你做到第10000帧,你可以选择直接在第9800帧开始观看,那么在 SkipRenderUntil 里填入 9800 即可。
      • 为了方便,你可以直接在 TASSupport.cfg 里修改。其原理在前面已经说过。
  4. 至此,你已经有做出一个TAS的基本能力,接下来是一些功能的应用和技巧方法。

TAS制作技巧:游戏具体内容外的心得

真正的TAS制作流程第一步

  • 最重要,最重要,最重要。路线、细节研究。制作TAS前必须先研究好路线和细节,不然做到最后才发现开头就做错了有你好受的

编写者的一些习惯(TAS制作环境)

  • Player.exe 固定到任务栏,以方便快速启动游戏
  • 键位:
    • ExitKeyK
    • StopKeyL
    • Bandicam 限帧快捷键U
    • Bandicam 录制快捷键9

记得随时备份你的TAS文件

  • 在研究路线分支时
  • 利用 SpiritTrail 获取影子球后
  • 在做出一个捷径或细节后想尝试再优化时

自制图TAS的制作方法

  • 将自制图文件替换原版关卡文件,然后当成原版关制作即可。

非原版物理特性TAS(比如弹弹球TAS)的制作方法

  • 更改控制该特性的文件,替换原版文件即可

加快跳过渲染的速度、提高帧率

  • 以下mod建议在非必要的时候不要装,需要的时候再装
    • Segment.bmod 该mod会大幅度降低最高帧数,减慢 TAS 播放的最快速度
  • 游戏目录\Sounds\ 内所有音频换成0.01秒静音轨道,可以将跳过渲染的速度加快5%-15%
    • 静音文件可以在 整合包目录\misc\空音频(替换游戏文件用于加快跳过速度 找到
  • 如果电脑录制帧数跑不满:
    • 方案1:做出成品后,你可以将tas文件交给高配电脑的玩家帮你录制视频
    • 方案2:限制更低的帧数,例如 264fps 的tas文件限制为66 (264/4)帧,录制结束后利用视频软件将视频加速4倍

提高效率、减少重复劳动的建议

  • 使用按键精灵软件,写一个简单的自动保存tas文件并打开游戏、自动退出游戏的脚本,这样就可以一键进入或退出游戏,避免重复机械性按ctrl+s这种操作
  • 以下是一键启动游戏的伪代码(每一步之间可以适当打点延迟)
  点击tas editor窗口
  保存
  点击任务栏游戏图标 //之前说的把游戏启动exe固定在任务栏
  点击Bandicam的限制FPS输入窗口  //方便立刻改变帧数,控制tas播放速率以便观察球速和位置情况
  结束
  • 以下是一键关闭游戏的伪代码:
  右键任务栏游戏图标
  点击关闭游戏
  点击tas editor窗口  //方便退出游戏后立刻编辑tas文件,否则还要手点一下窗口到前台才能进行编辑操作
  结束
  • 如果你是新手,可能不理解这样做的意义,稍微有经验后再回来看这条,就可以理解了

视频封面建议(非必要)

  • 在经过一年多的TAS制作后,TAS制作者们无形中达成了一个共识,那就是Ballance TAS视频封面的特点。
  • 封面背景图使用作者认为整关最华丽或最关键的某个捷径
  • 文字颜色使用黄色
  • 该规定只是一个好玩的规定,你仍然可以制作自己特色的封面
  • 具体图例可以参照onlyforyou发布的视频封面

TAS制作技巧:路线、捷径、细节制作的基本方法

前言:任何方法都不是绝对的,你需要根据实际情况来制定最优的路线细节

Mod获取和使用方法:Ballance Mod 文档

宏观路线快慢对比方法

  • 宏观路线是指单小节甚至多个小节整体的路线,不同宏观路线上的差别可能以秒为单位,因此在制作tas前确定宏观路线十分有必要
  • 方法一:利用 NewSpawn(v0.0.2) 的影子球功能 和 PhysicsEditor 的全局倍速功能,反复手打对比,如果能观察出明显的快慢差距,即可得出结论。必要时可剪辑拼接不同片段对比
  • 方法二:利用方法一无法准确得出结论时,可以直接做两个路线的TAS
    • 确定路线一的起点和终点,制作路线一的 TAS,计算该路线所用时间
    • 备份路线一的 TAS
    • 返回路线一的起点,制作路线二的TAS,比较二者所用时间即可得出结论
  • 虽然我们建议在任何情况下均选择速度最快的宏观路线,但如果两个宏观路线差别不是特别大,则可以选择更加精彩(使用了极难捷径、连体捷径、观赏性强的捷径等)的路线,例如荧光的TAS SR10中在第二小节使用了木球骑纸球跨T板的捷径,虽然相比纸球连体走法慢5秒左右,但观赏性极佳。无论如何,你都可以根据自己的喜好选择不同的路线,没有强制性的要求必须选择最快/全捷径的路线

特别提醒:某个路线可能在你确定的起点和终点区间内更快,但别忘了考虑终点时不同路线球的速度和位置,终点处球位落后的路线球速可能更快,后续可能反超,需要多加测试(例:口语的TAS SR03在第三小节箱子阵,走上方单轨前期快,但后期会被下方路线反超)

细节路线快慢判断的方法

  • 细节路线(通常简称为细节)是指单个切线、切轨、捷径的路线。相比宏观路线,细节路线的时间跨度很短,通常只有几秒甚至几百毫秒。不同细节的差别通常以0.1秒甚至0.01秒为单位,细节的差距直接影响TAS的流畅度和观赏性,且细节走好省下的时间加起来也很可观,因此不可忽视
  • 细节的差别很多时候无法通过肉眼观察进行比较,这时可以通过 ShowInfoGui 观察球的具体速度和位置参数来判断
  • ShowInfoGui 插件显示的球速为公式计算下的一半。例如通过 ShowInfoGui 的信息,球在0.015秒的时间内前进了0.426的距离,0.426/0.015=28.4格/秒,但实际球速显示为14左右
  • 相同时间内,跑得远的速度快;相同距离下,速度快的用时短。这是所有游戏速通包括F1赛车的基本理论
  • 通过 ShowInfoGui 插件,观察某一时刻(例如第10000帧)时球速和位置的数据
  • 根据基本理论,球在此时刻的速度相同,我们选择位置更靠前的那种路线;球在此刻的位置相同,我们选择速度更快的那种路线
  • 大多数时候,会有位置领先但速度慢、位置落后但速度快的矛盾情况出现,可以根据上文的速度和距离计算方法,评估选择哪种,或观察更靠后的时间点哪种路线领先再进行选择

尖头单轨的制作方法、凹路面边缘的寻找方法

  • 安装 PositionViewer 插件
  • 利用 debug 功能把球变成木球或石球
  • 把球停在双轨或凹路面(凹路面可看做窄距双轨)的正中间
  • 顺着双轨或凹路面前进,利用 PositionViewer 插件观察球的X和Z坐标,变化较少的那个坐标分量单独记下来。Y坐标为垂直方向的球坐标,在这里一般用不到
  • 反复移动球,记下多组坐标值,然后求平均,所得即为双轨或凹路面正中心的坐标值
  • 双轨的两根单轨中心水平坐标间距为3.8单位,标准凹路面宽度为5单位(正常的标准路面宽度也是5)
  • 将上面计算得到的数据分别加减1.9,即为两侧单轨的中心坐标;加减2.5,即为凹路面边缘的坐标
  • 制作时,尽量将球保持在尖头单轨的正中间和凹路面边缘,这样是最快的且观赏性较好

宽路面、非标准路面的边缘寻找方法(操作简单但精度低)

  • 利用 debug 功能把球变成木球或石球,在路面边缘利用 debug 功能让球上升
  • 空中目测对齐路面边缘,然后在空中利用 new spawn 功能设置新的出生点,接下来按相应快捷键,球就会失去所有速度和自旋出生在该位置
  • 在空中下落,球落在路面上,观察球向内还是向外偏,记住相对应的坐标分量
  • 利用二分法,不断从两侧逼近。例如球在110.540坐标下向内偏,在110.521坐标下向外偏,那么就可以认为110.530就是路面边缘的坐标。根据自己制作tas的要求,决定相应精度,一般至少精确到0.1才不会在宏观上产生明显偏差

宽路面、非标准路面的边缘寻找方法2(操作复杂但精度高)

  • 下载 server-windows-3.6.0-beta3-bddf86e.zip压缩文件。可在 Ballance·研讨交流群 的群文件中找到
  • 解压后同时点开BallanceMMOServer.exeBallanceMMOMockClient.exe这两个文件,出现两个命令行窗口
  • 安装最新的联机插件(目前为BallanceMMO_3.6.0-beta3.zip),相关安装方法请查看Ballance Mod 文档
  • 打开游戏,按/呼出命令行,输入MMO C回车,这时候出现选择服务器的界面,然后选择ADD NEW,在SERVER ADDRESS窗口输入127.0.0.1,回到刚才选择服务器的界面,会出现一个新的127.0.0.1的服务器,双击选择即可进入该服务器
  • 开启debug 功能,同时尽量让游戏窗口化,方便后续操作
  • 利用 debug 功能把球变成木球或石球,在路面边缘利用 debug 功能让球上升
  • 空中目测对齐路面边缘,记录相应坐标,然后让球在空中下落,观察球向内还是向外偏
  • 在刚才打开的BallanceMMOMockClient.exe窗口里,输入MOVE X Y Z回车(X,Y,Z是刚才你记录的坐标),然后在游戏里按/输入命令MMO TP MOCKCLIENT,可以观察到球瞬移到你输入的坐标
  • BallanceMMOMockClient.exe窗口里,输入不同的MOVE X Y Z命令(X,Y,Z坐标需要自行调整到合适的不同值),然后重复上述步骤,观察球落地时偏移情况
  • 利用二分法的思想,经过数次尝试后即可获取精确的千分位路面边缘坐标
  • 理论上也可以通过vt等软件导入关卡文件,进而直接测量相应的坐标,或者修改出生点。但vt软件里的坐标跟 PositionViewer 插件显示的坐标不一致,且软件本身也有较高的学习成本,而之前介绍的方法足以应对大多数需求,可根据个人需求学习

侧轨的制作方法

  • 利用 PositionViewer
  • 正常打开游戏(不播放 TAS),贴住侧轨,记录坐标值,此坐标值即球不碰到侧轨的极限值
  • 播放 TAS 时观察坐标别超过极限值就行,为了保证没有碰到侧轨,可以让球的坐标和极限值相差在0.01以上,但是也别差太多了,否则会慢,而且观赏性不佳
  • 纸球由于不规则,很难确定上述的极限坐标值,因此可以使用 debug 功能变成木球再测试;同样由于不规则性,纸球还没达到极限值可能就已经碰到了侧轨,或者已经超过极限值但还没碰到侧轨,具体的快慢需要实际分析

碰撞时机的判断。变球器开始和结束的判断

  • 利用 ShowInfoGui
  • 利用限帧将播放变慢,录制播放
  • 观察录像,当 ShowInfoGui 显示的速度发生突变时即为碰撞发生的时候
    • 你需要会使用你的播放器的逐帧查看,一般是按F键

换视角(待完善)

  • 在游戏中,按下 shift+方向键 换视角的瞬间,视角立即发生变化,但是此时键盘输入的方向并未立即发生改变(即当你按住走单轨时,立即换视角,在视角旋转最开始的时刻,你仍然需要按住 ,直到某一时刻改变了游戏的操作方向)
  • 经测试,操作方向发生变化的时刻,在按下 shift 换视角后的0.25秒左右
  • 你可以自己测试操作方向发生变化的具体间隔帧数,利用BMLPlus的TASSupport的ShowInfoGui,观察速度变化的时刻来确定操作方向发生变化的时刻

平地纸球 & 视野遮挡 做法(该具体方法在BMLPlus失效)

  • 这一目的是减少由于纸球不规则带来的一些小卡顿问题
  • Camera 功能启用,将 MoveDown 快捷键设置为 Q,在TAS编辑器中设置一段帧按 Q,那么在后面的视角里,纸球的平地运动将会变得清晰可见
  • 观察纸球运动即可在有较大卡顿的地方做处理
  • 追求极致可以结合速度显示器
  • 在264fps下,按500帧 Q 即可获得一个不错的视角。同理,132fps下,按250帧
  • 该方法同样适用于做 6-2 等具有遮挡的关卡,可以避免遮挡

纸球爬护栏

  • 有一个技巧,因为爬护栏需要在到护栏前一刻弹起来,而弹起来的一瞬间速度是向上的,此时如果碰到护栏反而削弱了向上的速度,所以可以尝试磕起瞬间反方向按键1-2帧,目的是不让球过快碰到护栏而减速
  • 具体例子请参考 fluoresce 的 TAS SR6-3

纸球平地鬼躲 提高成功率做法

  • 鬼躲前只走一边,保证球大约1/4到1/3的部分在路面内
  • 接近变球器时,在保证不被变球器捉住的前提下,尽可能晚向外拉,尽可能早返回路面
  • 通过 ShowInfoGui 插件,观察纸球向外飞出去一瞬间的垂直速度分量。作为参考,口语的 TAS SR05 最后的平地鬼躲瞬时最高向上速度为3.854,低于3.5可能就无法成功
  • 具体例子请参考0x386的 TAS SR09 中的第3节,第5节
  • 该方法提高成功率的原理是:只走一侧纸球的横向速度小,不规则球体产生的意外随机变化少;方便观察纸球弹跳位置和弹跳情况;最重要的是可以用相对稳定的方法进行暴力尝试,提高尝试效率

优化建议

  • 以某个关键点作为节点,将整关分为很多更小的区间,基本的优化思路就是找到第一个小区间最快的路线,在此基础上再继续第二个小区间的制作,以此类推
  • 节点可以是转弯前,变球,通过盘点,完成某个捷径等,根据个人制作精度需求可以进一步细分,理论上小区间分的越细,效果会越好,但花的时间也会成倍增加
  • 不要陷入“局部最优”的陷阱。因为每一个区间都会对后续所有区间造成影响,所以制作时要考虑到每个区间相互的影响,最后综合起来最快的路线,可能在某个区间反而会慢一点,这是很常见的情况。选择长度合适的区间来进行迭代优化同样考验作者的游戏理解

按键操作的延迟性

  • 大多数时候由于球本身有一定的速度及方向,按键操作输入进去后,可能不会立刻产生明显改变球速度和方向的效果
  • 例如纸球在10000帧时卡了一下,我们想通过改变按键来避免这次卡顿,那么至少应该提前100帧,也就是在9900帧之前尝试改变按键组合来避免10000帧的卡顿
  • 距离目标帧越近,按键改变影响的效果越小。例如上面的例子,我们直到9990帧才改变按键,那么10000帧的卡顿依旧会出现
  • 设置合理的区间进行对比。还是上文的例子,如果过早,比如在9500帧改变按键,那么10000帧可能确实不卡顿了,但前面这500帧有可能出现新的卡顿点,需要多次测试避免此情况

音乐卡点设计方法

  • 获取音乐重要位置的毫秒数 (编写者是用osu!编辑器获取并导出的)
  • 确定 TAS 播放时音乐的起点帧
  • 计算音乐的几毫秒对应的这个 TAS 的 fps 下的第几帧(可能需要编程)
  • 将帧数加上起点帧即为实际帧位置,列出清单
  • 做的时候保证这个帧时刚好位于碰撞等有节奏感的位置
  • 可以用转换视角后几十帧内再次转换视角,让视角变化产生巨大停顿来卡节奏
  • 如果球是静止状态开始卡节奏,可能需要提前几十帧按方向键才会感到对上节奏

游戏操作输入机制

  • Ballance能响应的最小输入时间为1/132秒。例如你想输入右,那么游戏接受到的最小输入右的时长就是1/132秒,无法再少,所以个别时候可能无法产生理想的微调效果
  • 虽然输入时间有最小值,但球本身坐标位置的显示没有,因此TAS制作常用264帧,可以更方便观察球的位置状态,对比快慢
  • 264帧下游戏只响应奇数帧的操作输入,例如你在9999帧按了一下右,在9998和10000帧按左,那么就算你把9998和10000帧全部改成右,游戏里球的速度和位置也不会受到影响(理论如此,但实际偶尔会有效果,非常玄学)
  • 如果你使用264帧进行制作,那么建议以两帧为最小单位进行调整,如果一帧一帧改,那么偶数帧的改动实际没有产生任何效果(同上,实际偶数帧的输入偶尔会有效果,暂不清楚作用机制,为避免无效尝试,依旧不建议微调单帧)
  • 帧数高并不会影响制作效率,66帧的tas和264帧的tas看起来工作量翻了四倍,实际制作时几乎没有差别,相反帧数过低的tas因为能操控的精细度变差,个别捷径可能无法走出最佳效果,甚至无法成功。因此我们建议一律使用264帧进行制作,如果想使用其他帧数,从方便制作的角度,可以选择的帧数为:66、132、264、396,其他帧数均不实用。高于400帧,游戏本身的物理属性,游戏速度,机关属性都可能受到影响,同样不推荐
  • 两帧的状态(264帧下通常意义的最小调整单位)不止按上下左右,还可以不按。在很多时候,不按可以增加很多不同的细节路线,利用TAS来微调,很多时候也是通过在不同位置空两帧的手段实现的

纸球增加随机性的方法

  • 在不影响速度的前提下按无关方向键。例如纸球向前走,这时按左或右不影响纸球前进的速度,但可以赋予纸球不同的位置、横向速度以及自旋,这就为捷径尝试增加了变化性,纸球平地小卡的问题也可以借此解决。口语的TAS SR05在最后平地鬼躲完成后,纸球在前进途中左右横跳,就是为了避免小卡
  • 无关的输入在不同位置空帧。例如100帧无关的右,空两帧,就多出来50种情况;空4帧,就多出来49+48+47+...+2+1=1250种情况,大多数纸球捷径在这个量级下产生的随机变化情况已经足够成功,如果再考虑空6帧、8帧、12帧等操作,这100帧的随机区间能产生的变化就更多了
  • 以两帧为单位进行调整,纸球的状态已经会产生明显的变化,因此不用担心调整幅度过小导致纸球状态变化不大的问题。由于蝴蝶效应,进行调整的位置离目标位置越远,纸球的状态变化也会越明显。例如想改变纸球在10000帧的状态,那么你在9991帧和9993帧分别改变(再强调一下,264帧下制作TAS,偶数帧的输入不影响球状态),10000帧时纸球几乎不会有状态的变化;但如果你在9501帧和9503帧分别改变,10000帧时纸球的状态可能天差地别