打开主菜单
Ballance Wiki
β
搜索
查看“TAS制作教程”的源代码
←
TAS制作教程
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
系统设置
设置并确认您的电子邮件地址。
您可以查看与复制此页面的源代码。
'''TAS 制作教程''',顾名思义,即为 Ballnce 的 TAS 制作所用教程。Ballance 的 TAS 制作门槛不高,但是仍然需要有一个教程来帮助有兴趣的朋友快速上手 Ballance 的 TAS 制作。 ==前言== # 适合人群:了解 Ballance 基本内容及圈内常用术语,基础操作(如 安装和设置 mod 等)的玩家。 # 特点: #* 门槛低:搭建好环境后,制作并不复杂。 #* 上限高:想做出一个高水准的 TAS,你可能需要较高的游戏理解和持之以恒的心态。 # 本教程为 TAS 制作教程,而非观看教程。观看 TAS 只需: #* 启用 TASSupport 功能并重启游戏。 #* 在选关界面点击右下角 TAS 按钮,选择播放的 TAS 文件并进入对应关卡。 # 其他: #* 本教程所用操作方法均为本教程编写者的习惯。 #* 如果你有任何疑问,直接在群里询问即可。 #* 欢迎勘误 ==了解 Ballance 的 TAS 制作原理和流程== {{Note | TAS(Tool-Assisted Speedrun)指在不修改游戏本体的前提下,利用模拟器的辅助功能(如外设输入模拟、存档、回退、慢动作与重录等)以极高精度完成游戏的一种方式。}} Ballance的 TAS 制作,则是编写 TAS 文件,利用 BML 的 TASSupport 功能读取 TAS 文件,对游戏进行逐帧操控。 与其他游戏不同,Ballance 的 TAS 制作不支持回退帧操作,因此实际制作大致为以下步骤: # 播放 TAS :使用 BML 和 TASSupport 功能在游戏中读取并播放编写的 TAS 文件。 # 观察与调整:根据播放时观察到的球体运动现象,修改 TAS 文件内容并保存。 # 重复调试:再次播放修改后的 TAS 文件,继续观察与调整,直到对结果满意为止。 ==配置 Ballance TAS 制作环境== {{Note | 如果有些地方不懂为什么要这么做,没关系,后面会讲具体的用法}} # 下载整合包 #* 下载 {{Kbd|Ballance TAS制作整合包.zip}}(下称整合包)。可在 {{Kbd|Ballance·研讨交流群}} 的群文件中找到 #* 将整合包解压到合适的位置 # 准备游戏本体 #* 找到 {{Kbd|整合包目录\Ballance_TAS.zip}} 并解压到你觉得合适的位置。 #** 该文件内容版本:游戏本体 + BMLPlus-v0.3.4-alpha8 + NewPlayer-v0.3.2 #** 建议1:请务必使用该游戏本体,本文攥写者已经更改的部分设置,在下文中不会提及 #** 建议2:为避免设置的频繁更改,建议该游戏目录仅用于播放 TAS,而非同时作为平时游玩的游戏目录 # 准备TAS文件 #* 接下来以制作 SR3 为例 #* 复制 {{Kbd|整合包目录\misc\空tas文件\264fps.tas}} 到 {{Kbd|游戏目录\ModLoader\TASRecords}} #* 将 {{Kbd|游戏目录\ModLoader\TASRecords\264fps.tas}} 重命名为 {{Kbd|SR3.tas}} #* 解释: #** 132fps 和 264fps 均可。 #** 我们制作 TAS 时需要编辑修改的就是这个{{Kbd|SR3.tas}} # 基础游戏配置 #* 双击 {{Kbd|游戏目录\bin\player.exe}} 启动游戏 #* 游戏打开后应该是窗口化模式,并且游戏窗口可以拖动,如果不能,请按下 {{Kbd|Alt + Enter}} 切换为窗口模式。 #* {{Kbd|游戏菜单\Options\Graphics\Screen Resolution}}:将分辨率设置为合适的大小(必须为4:3)。 #* {{Kbd|游戏菜单\Options\Mods\BML\Graphics\UnlockFrameRate}}:设置为 {{Kbd|yes}} #* {{Kbd|游戏菜单\Options\Mods\TASSupport\Misc}} 设置: #** {{Kbd|Enable}}:{{Kbd|Yes}} #** {{Kbd|Record}}:{{Kbd|No}} #** {{Kbd|StopKey}}:{{Kbd|合适的快捷键}}(用于结束TAS播放) #** {{Kbd|ShowKeysGui}}:{{Kbd|Yes}}(用于显示按键情况) #** {{Kbd|ShowInfoGui}}:{{Kbd|Yes}}(播放过程中显示玩家球的坐标、球速、转速等) #** {{Kbd|SkipRenderUntil}}:{{Kbd|0}}(可以理解成从什么时间点开始播放,单位:帧) #** {{Kbd|ExitOnDead}}:{{Kbd|No}}(球死亡时退出游戏) #** {{Kbd|ExitOnFinish}}:{{Kbd|No}}(播放结束时不退出游戏) #** {{Kbd|ExitKey}}:{{Kbd|合适的快捷键}}(用于随时退出游戏) #** {{Kbd|AutoLoadTAS}}:{{Kbd|SR3}}(游戏启动时自动播放 {{Kbd|SR3.tas}} 文件) #** {{Kbd|AutoLoadLevel}}:{{Kbd|3}}(游戏启动时自动加载第3关。) #** {{Kbd|Transcript}}:{{Kbd|No}} #* 退出游戏 # 编辑器 #* 找到 {{Kbd|整合包目录\BallanceTASEditor-v1.2stable.zip}} 并解压到你觉得合适的位置 #* 双击 {{Kbd|编辑器目录\BallanceTASEditor.exe}} 启动编辑器 #* 将 {{Kbd|SR3.tas}} 拖入编辑器 #* 点击 {{Kbd|Edit (编辑)}},取消勾选 {{Kbd|Horizontal Layout (横向布局)}} #* 使用 {{Kbd|Ctrl + 滚轮}} 调整界面到合适的位置 #* 具体使用方法详见 {{Kbd|编辑器目录\!先看这个-说明书.pdf}} #* 关闭编辑器 # 限帧工具 #* 目的与原理 #** 限帧用于控制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> ==TAS制作的基本流程和操作方法== # 准备工作 #* 打开TAS编辑器,将 {{Kbd|SR3.tas}} 拖入TAS编辑器 #* 打开 {{Kbd|游戏目录\ModLoader\Config\TASSupport.cfg}}(你可以使用记事本、VScode等文本编辑器打开) #* 打开Bandicam(限帧工具) # 制作TAS:编写TAS文件,播放TAS。 #* TAS编辑器的具体使用方法详见 {{Kbd|编辑器目录\!先看这个-说明书.pdf}} #* 利用TAS编辑器对每一帧操作 #** 例如,我们在第800帧 到 第1300帧之间填入 {{Kbd|↑}} (你可能需要先用选择模式先添加足够的帧数,TAS空文件只有917帧) #* {{Kbd|Ctl + S}} 保存TAS文件 #* 打开游戏,应该能观察到,球在第800帧 到 第1300帧之间输入的 {{Kbd|↑}},球的运动状态是往前滚动。 #* 继续编辑TAS文件,保存,打开游戏观察,重复此步骤,直到你满意为止。 # 技巧 #* 限帧工具的使用: #** 使用 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制作流程第一步=== * <big><font color="red">最重要,最重要,最重要。路线、细节研究。</font></big>制作TAS前必须先研究好路线和细节,'''不然做到最后才发现开头就做错了有你好受的''' ===编写者的一些习惯(TAS制作环境)=== * 将 {{Kbd|Player.exe}} 固定到任务栏,以方便快速启动游戏 * 键位: ** {{Kbd|ExitKey}} 为 {{Kbd|K}} ** {{Kbd|StopKey}} 为 {{Kbd|L}} ** {{Kbd|Bandicam 限帧快捷键}} 为 {{Kbd|U}} ** {{Kbd|Bandicam 录制快捷键}} 为 {{Kbd|9}} ===记得随时备份你的TAS文件=== * 在研究路线分支时 * 利用 SpiritTrail 获取影子球后 * 在做出一个捷径或细节后想尝试再优化时 ===自制图TAS的制作方法=== * 将自制图文件替换原版关卡文件,然后当成原版关制作即可。 ===非原版物理特性TAS(比如弹弹球TAS)的制作方法=== * 更改控制该特性的文件,替换原版文件即可 ===加快跳过渲染的速度、提高帧率=== * 以下mod建议在非必要的时候不要装,需要的时候再装 ** {{Kbd|Segment.bmod}} 该mod会大幅度降低最高帧数,减慢 TAS 播放的最快速度 * 将 {{Kbd|游戏目录\Sounds\}} 内所有音频换成0.01秒静音轨道,可以将跳过渲染的速度加快5%-15% ** 静音文件可以在 {{Kbd|整合包目录\misc\空音频(替换游戏文件用于加快跳过速度}} 找到 * 如果电脑录制帧数跑不满: ** 方案1:做出成品后,你可以将tas文件交给高配电脑的玩家帮你录制视频 ** 方案2:限制更低的帧数,例如 264fps 的tas文件限制为66 (264/4)帧,录制结束后利用视频软件将视频加速4倍 ===提高效率、减少重复劳动的建议=== * 使用按键精灵软件,写一个简单的自动保存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视频封面的特点。 * 封面背景图使用作者认为整关最华丽或最关键的某个捷径 * 文字颜色使用黄色 * 该规定只是一个好玩的规定,你仍然可以制作自己特色的封面 * 具体图例可以参照[https://space.bilibili.com/1132299952 onlyforyou]发布的视频封面 ==TAS制作技巧:路线、捷径、细节制作的基本方法== {{Note | 前言:任何方法都不是绝对的,你需要根据实际情况来制定最优的路线细节}} Mod获取和使用方法:[https://bcrc.site/docs/mods Ballance Mod 文档] ===宏观路线快慢对比方法=== * 宏观路线是指单小节甚至多个小节整体的路线,不同宏观路线上的差别可能以秒为单位,因此在制作tas前确定宏观路线十分有必要 * 方法一:利用 {{Kbd|NewSpawn(v0.0.2)}} 的影子球功能 和 {{Kbd|PhysicsEditor}} 的全局倍速功能,反复手打对比,如果能观察出明显的快慢差距,即可得出结论。必要时可剪辑不同片段对比 * 方法二:利用方法一无法准确得出结论时,可以直接做两个路线的TAS ** 确定路线一的起点和终点,制作路线一的 TAS,计算该路线所用时间 ** 备份路线一的 TAS ** 返回路线一的起点,制作路线二的TAS,比较二者所用时间即可得出结论 * 虽然我们建议在任何情况下均选择速度最快的宏观路线,但如果两个宏观路线差别不是特别大,则可以选择更加精彩(使用了极难捷径、连体捷径、观赏性强的捷径等)的路线,例如荧光的TAS SR10中在第二小节使用了木球骑纸球跨T板的捷径,虽然相比纸球连体走法慢5秒左右,但观赏性极佳。无论如何,你都可以根据自己的喜好选择不同的路线,'''没有强制性的要求必须选择最快/全捷径的路线'''。 <font color="red">特别提醒:某个路线可能在你确定的起点和终点区间内更快,但别忘了考虑终点时不同路线球的速度和位置,慢的路线可能在终点处球速更快,后续可能反超,需要多加测试</font>(例:口语的TAS SR03在第三小节箱子阵,走上方单轨前期快,但后期会被下方路线反超) ===细节路线快慢判断的方法=== * 细节路线(通常简称为细节)是指单个切线、切轨、捷径的路线。相比宏观路线,细节路线的时间跨度很短,通常只有几秒甚至几百毫秒。不同细节的差别通常以0.1秒甚至0.01秒为单位,细节的差距直接影响TAS的流畅度,也是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才不会在宏观上产生明显偏差 ===侧轨的制作方法=== * 利用 {{Kbd|PositionViewer}} * 正常打开游戏(不播放 TAS),贴住侧轨,记录坐标值,此坐标值即球不碰到侧轨的极限值 * 播放 TAS 时观察坐标别超过极限值就行,为了保证没有碰到侧轨,可以让球的坐标和极限值相差在0.01以上,但是也别差太多了,否则会慢,而且观赏性不佳 * 纸球由于不规则,很难确定上述的极限坐标值,因此可以使用 {{Kbd|debug}} 功能变成木球再测试;同样由于不规则性,纸球还没达到极限值可能就已经碰到了侧轨,或者已经超过极限值但还没碰到侧轨,具体的快慢需要实际分析 ===碰撞时机的判断。变球器开始和结束的判断=== * 利用 {{Kbd|ShowInfoGui}} * 利用限帧将播放变慢,录制播放 * 观察录像,当 {{Kbd|ShowInfoGui}} 显示的速度发生突变时即为碰撞发生的时候 ** 你需要会使用你的播放器的逐帧查看,一般是按F键 ===换视角(待完善)=== * 在游戏中,按下 {{Kbd|shift+方向键}} 换视角的瞬间,视角立即发生变化,但是此时键盘输入的方向并未立即发生改变(即当你按住{{Kbd|↑}}走单轨时,立即换视角,在视角旋转最开始的时刻,你仍然需要按住 {{Kbd|↑}} ,直到某一时刻改变了游戏的操作方向) * 经测试,操作方向发生变化的时刻,在按下 {{Kbd|shift}} 换视角后的0.25秒左右 * 你可以自己测试操作方向发生变化的具体间隔帧数,利用BMLPlus的TASSupport的ShowInfoGui,观察速度变化的时刻来确定操作方向发生变化的时刻 ===平地纸球 & 视野遮挡 做法(该具体方法在BMLPlus失效)=== * 这一目的是减少由于纸球不规则带来的一些小卡顿问题 * 将 {{Kbd|Camera}} 功能启用,将 {{Kbd|MoveDown}} 快捷键设置为 {{Kbd|Q}},在TAS编辑器中设置一段帧按 {{Kbd|Q}},那么在后面的视角里,纸球的平地运动将会变得清晰可见 * 观察纸球运动即可在有较大卡顿的地方做处理 * 追求极致可以结合速度显示器 * 在264fps下,按500帧 {{Kbd|Q}} 即可获得一个不错的视角。同理,132fps下,按250帧 * 该方法同样适用于做 6-2 等具有遮挡的关卡,可以避免遮挡 ===纸球爬护栏=== * 有一个技巧,因为爬护栏需要在到护栏前一刻弹起来,而弹起来的一瞬间速度是向上的,此时如果碰到护栏反而削弱了向上的速度,所以可以尝试磕起瞬间反方向按键1-2帧,目的是不让球过快碰到护栏而减速 * 具体例子请参考 fluoresce 的 TAS SR6-3 ===纸球平地鬼躲 提高成功率做法=== * 鬼躲前只走一边,保证球大约1/4到1/3的部分在路面内 * 接近变球器时,在保证不被变球器捉住的前提下,尽可能晚向外拉,尽可能早返回路面 * 通过 {{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 下的第几帧(可能需要编程) * 将帧数加上起点帧即为实际帧位置,列出清单 * 做的时候保证这个帧时刚好位于碰撞等有节奏感的位置 * 可以用转换视角后几十帧内再次转换视角,让视角变化产生巨大停顿来卡节奏 * 如果球是静止状态开始卡节奏,可能需要提前几十帧按方向键才会感到对上节奏 ===其他=== * 这个条目比较杂,想到什么就写什么 * 一帧的状态不止按左或按右,还有不按
该页面使用的模板:
模板:Kbd
(
查看源代码
)
模板:Note
(
查看源代码
)
返回至
TAS制作教程
。