Gamepiaynmo Gamepiaynmo
关注数: 11 粉丝数: 279 发帖数: 1,875 关注贴吧数: 20
【TAS】首个TAS世界记录!SR 01 1:16.726 整个工程约耗时两周,尝试次数10000+。 差不多在TAS mod发布之后就立即开始了。一开始我想学习其他游戏的TAS方法,通过逐步拼接各个部分的最优操作完成。然而事实证明我还是太菜,耗费大约4天磕磕绊绊录完第一小节,比变木的记录慢了500多ms。这个方法使用的前提是录制者得有一定的操作,然而我没有。 然后就是现在我所用的方法,通过随机迭代来寻找最优解。首先录制出来一个可以过关的版本,然后通过不断给录制的按键操作添加一个小扰动,观察前后的速度差距,如果扰动后能够更快通关就更新当前的最优解。 但是一次能够优化的区间有限,也就是2-5秒左右的按键操作,再长的话添加扰动后还能通关的概率无限接近0。所以我需要一个评价准则,在球走到任意位置时均能够判断当前解是否更优,而不是依据通关时间判断。因此我请变木大佬帮忙录制了一个第一关的TAS(十分感谢@变形的木球 !),通关时间为1:19.477。虽然没有到破纪录的水准,但路线基本接近,作为参考足够了。 有了变木大佬的通关路径,通过在这条路径上每隔0.3秒左右取一个锚点,然后衡量球第一次到达每个锚点的时间,这样就有了一个简略的评价准则。存在误差是肯定的,但已足够进行迭代优化了。于是就有了最终版的优化方法: 1. 录制出一个可以通关的版本。 2. 手动调整其中的部分参数,这样可以达到某些玩家无法完成的操作,如1帧内完成左右按键切换,1帧内完成摄像机转动。 3. 以2到5秒为一个区间,通过随机迭代寻找此区间的最优解。相邻区间需要一定的重合部分,以尽量得到全局的最优解。每个区间尝试300次左右,直到无法找到更优解为止。 最终每小节的耗时如下(数据来自Segment模组): 第一小节:27.167s。这个小节是耗时最多的小节,因为优化速度比较快,开头部分1分钟可以尝试8次左右,靠后部分1分钟也能尝试4次,因此效果也最明显。 第二小节:15.337s。这是耗时第二的小节,最后的一个大跳优化难度很高,耗费了足有一整天的时间来尝试,最终也没有找到比变木记录视频中更优的解。 第三小节:9.633s。最简单的一个小节,因为很短。一个下午搞定。 第四小节:24.587s。连续干了块两周相同的事情,只想赶紧搞定发布了。只是手动修改了一下,没有做迭代优化过程,和变木的个人最佳还有差距。 简单起见,TAS中的所有delta time均设为了1/240。因此原速播放可以限制帧数为240。 如何播放:在设置中启用TAS mod后,选关界面右下角会出现一个TAS按钮,点击可查看当前所有的录像,选择一个载入,然后进入对应的关卡即可自动播放。注意仅对开启游戏后第一个进入的关卡有效,且成功率不是100%。如果半路死球了可以多尝试几次。 TAS录像已经包含在最新的BML中:1NknemKAUmKElAj3vLDTjOQ 密码s7kf 或者在Github搜索BallanceModLoader下载。
【BML】Ballance TAS技术的一小步 TAS简介: TAS即外部工具辅助竞速(Tool Assisted Speedrun),通常指由程序提供游戏控制输入而非玩家操作,来达到最快通关的竞速模式。 一直以来,Ballance都被认为是不可能实现TAS的,由于其物理引擎的特殊性,即使是提供每一帧完全相同的键盘操作输入,也会造成玩家球不同的运动轨迹。同时Ballance又是对操作精度要求很高的游戏,这样的误差是不能接受的。 通过对Ballance物理引擎的部分逆向,了解到相同输入会造成不同结果的原因在于其物理运算与游戏的帧速率相关,即游戏渲染相邻两帧的间隔时间。间隔时间受各种因素影响,如帧率设置、计算机性能、运行的其他程序等等,在非人工干预的情况下是不可能两次完全一致的。这是TAS首先要解决的一个问题。 又因为计算机是很诚实的,只要有相同的初始参数,相同的迭代过程,一个算法不管多少次运行都会输出完全相同的结果。保证间隔时间和控制输入相同就保证了相同的迭代过程,初始参数相同则需要每次进入关卡时重置Ballance物理引擎模块中的一些变量,这是TAS解决的第二个问题。 目前的问题: 问题完全解决了吗?没有,我们只是迈出了第一步。 由于没有Ballance物理模块的源代码,我业余的逆向技能点还无法了解其每个细节,当前的TAS功能还非常不完美,局限性很大: * 只能录制重放一个关卡完整的通关过程,无法通过拼接来达到完美操作通关效果。 * 只对开启游戏后首次进入的关卡保证准确性,重开或退出后进入其他关卡均可能无法同步。 * 在大量球体物理碰撞发生的地方会发生偏差,如4-3和13-3处基本会100%偏离原有轨迹。其余的11个原版关卡已成功重放。 * 由于变球时球碎片产生具有随机性,启用TAS mod时禁用了球碎片生成。可能造成某些利用相关特性的自制图无法通关。 应用前景: 虽然无法通过拼接完成人类无法达到的完美操作,但对于记录的证明和证伪,TAS录像可以完美完成这一功能。由于两次游戏的帧间隔时间不可能完全一致,帧间隔时间就相当于一次记录的“指纹”,可以保证其唯一性,不可能通过借用他人的录像来伪造记录。而要证实一项记录,只要下载录像播放一遍即可。 使用方法: 下载新版的BML,其中自带TAS支持模组。默认处于关闭状态,使用需要在设置中开启并重启游戏。 如何录制:在设置中启用TAS并启用录制功能后,每次游戏都会自动录制,但仅在通关时结束录制并写入文件。退出关卡、重开关卡会直接停止录制。 如何播放:在设置中启用TAS后,选关界面右下角会出现一个TAS按钮,点击可查看当前所有的录像,选择一个载入,然后进入对应的关卡即可自动播放。TAS mod仅录制8个键盘按键的操作,包括上下左右、shift、空格、Q、Esc。其中前6个按键会自动读取玩家的按键设置,后两个是固定键位。其余的键盘与鼠标操作均不会录制。 TAS功能已由我自己、@ballancebug 和@yunjuyihao 验证成功,下方有我录制的1-3关TAS录像和影子球录像,不想自己录制的话可以下载,看到播放过程中玩家球和影子球始终保持重合即成功。切记无论是录制还是播放都只能是开启游戏后首次进入的关卡,如果仍然失败可以尝试调整窗口模式或兼容性。 最后,整个TAS功能尚处于实验阶段,实用性不大,仅供娱乐。有任何建议欢迎提出。 BML+TAS mod下载:1NknemKAUmKElAj3vLDTjOQ s7kf 或者在Github搜索BallanceModLoader。 BML-x.x.xx.zip为BML本体+mod。 TAS_Records.zip为录像,下载后解压至Ballance\ModLoader\下。
【讨论】关于新版BML内置SR计时器的准确性问题 鉴于目前公认的SR计时标准是按照分数公式计算,暂没有准确度更高的方法,本帖也以此为准。 首先是结论: 1. 之前发布的BML-0.3.24版本中,计时功能确实存在问题。在不限制帧数(远高于240帧)的情况下会出现极大的偏差,测试地图中240帧与不限帧的计时结果相差数秒。但限制帧数为240以下(目前SR公认的最大帧数)时,偏差不大,在20ms左右,不影响变木此次Level 1 SR记录的有效性。这是我的失误,给各位记录党道个歉。 2. 本贴中发布的BML-0.3.25版本,可以保证内置SR计时器与公式的计算结果完全一致,在60帧录像下不存在一帧以上的偏差,同时具备良好的可复现性。但仍会受到帧数的影响(影响程度见下图)。如果需要使用BML计时请下载0.3.25版本:1NknemKAUmKElAj3vLDTjOQ s7kf 测试地图为一条长度5000(1000格)的路面:上图为60帧下的测试结果上图为240帧下的测试结果上图为不限制帧数下的测试结果不限制帧数下的重复测试。高帧数下的计时结果有良好的可复现性。 可见无论是分数公式还是BML的SR计时,均会受到帧数的影响。60帧与240帧,或者240帧与不限制帧数,其偏差均在30ms左右,是否可以忽略还待各位讨论。上图为测试录像的逐帧分析截图,尚未发现有SR计时器与分数扣减不对应的帧数。测试地图与测试录像也已上传到网盘,各位可以自行下载分析:15uEtkyFTdCs5WkSwma_4lQ h3yh 有关更准确的计时方法也欢迎讨论。
【微博楼】ballance吧第十三期微博楼 欢迎来到Ballance吧第11期微博楼!本期楼主gamepiaynmo向您表示诚挚的问候! 【小规定】(请勿忽略!看过的可以跳过) 1.吧友们可以自由发布你自己的动态,但不文明的内容和争吵类甚至政治类的就免了吧…… 2.要回复他人的“微博”,请使用楼中楼,不要新建楼层。请正用BTX的吧友们修改一下自己的设定吧。 3.每400回复新建一次微博楼,“微博”请发在最新的微博楼,挖坟是严禁的。 注:挖坟是指回复(包括楼中楼)或顶上来【原有末回复】在【15天前】的帖子。 4.请不要发无意义楼层。 【旧楼区】(再次提醒:严禁挖坟!!!挖坟后果很严重!!!) 第一期微博楼:http://tieba.baidu.com/p/1787210582 楼主:BallanceLover 第二期微博楼:http://tieba.baidu.com/p/1801412603 楼主:低沉的游鱼 第三期微博楼:http://tieba.baidu.com/p/1842543660 楼主:组mn 第四期微博楼:http://tieba.baidu.com/p/1863961200 楼主:四中2014届1班 第五期微博楼:http://tieba.baidu.com/p/1893013518 楼主:Burning红云 第六期微博楼:http://tieba.baidu.com/p/1905050263 楼主:古海岸遗址 第七期微博楼:http://tieba.baidu.com/p/1931557169 楼主:紧张哦2007324 第八期微博楼:http://tieba.baidu.com/p/1949164380 楼主:yanteng3 第九期微博楼:http://tieba.baidu.com/p/1974739990 楼主:sterd3 第十期微博楼:http://tieba.baidu.com/p/1998101521 楼主:失衡之梦 第十一期微博楼:http://tieba.baidu.com/p/2022209018 楼主:R34AE86 第十二期微博楼:http://tieba.baidu.com/p/2061236514 楼主:fiype 祝全体吧友身体健康,学业进步! 现在就开始你的微博吧!
1 下一页