【视频】【走进U学】全网唯一,UTDebug模式100%完整教程
undertale吧
全部回复
仅看楼主
level 10
santizhizi 楼主
BV17f4y117cN,走进U学系列第二期视频,全面讲解UNDERTALE的Debug模式。一个多月的成品,保证完整准确。楼下试试放个文字版吧,吞多少留多少随缘。
2020年07月04日 13点07分 1
level 10
santizhizi 楼主
①【导语&进入Debug模式】
UNDERTALE的Debug模式原本是Toby在开发测试UNDERTALE的过程中,为了调试方便而加入的一系列快捷功能。而对于玩家来说,这也是在正常体验过游戏后快速在游戏中进行某些测试的重要手段。目前网上Debug相关的教程中英文都不少,但全部都有或多或少的错漏现象。所以我根据关键词在全代码里搜索了一遍,找出了每一处Debug相关的信息并加以分析,最终得出这篇Debug模式的完整教程。从如何开启、如何使用,到此模式一些判定背后的详细逻辑,都会在这里一一讲明,由此达到100%的完整度。下面我们开始介绍Debug模式的开启原理。
2020年07月04日 13点07分 2
level 10
santizhizi 楼主
UT游戏本体的所有代码都在游戏本体文件夹的data.win数据文件中——对于Mac来说则是game.ios文件,Linux系统是game.unx,但内部资源代码是一致的。
目前来说PS4版与NS版都无法开启Debug,所以这两个渠道的玩家就正常游玩吧。
以Windows系统的steam正版游戏为例,data.win文件一般位于“D:\Program Files (x86)\Steam\steamapps\common\Undertale”文件夹中。一般的游戏汉化替换的也同样是这个文件。
如果玩的是英文原版,现在就可以直接用UndertaleModTool打开data.win进行修改。
原理为将“gml_Script_SCR_GAMESTART”代码中“debug = 0”这一行改为“debug = 1”,左上角搜索“GAMES”就能找到这段代码,修改起来比较方便。
但使用UMT的方法由于汉化数据文件改动了整体结构而暂时无法使用,所以我们需要用别的办法修改这一个数字。
由于只有一个固定位置的01变化,不涉及大量数据的改变,所以我们可以选用十六进制编辑器,直接把对应位从00改为01。使用任意十六进制编辑器都可以对data.win进行改动,这里选用Hex Editor。
上方选项【编辑】→【转到偏移】,直接到要修改的位。
英文原版1.08修改的位置(偏移值,offset)为0x725B24
汉化版1.08修改的位置为0x7748c4
原版及汉化版1.01修改的位置均为0x725d8c
修改完毕后,确认无误点击保存,接下来就可以直接点击UNDERTALE.exe启动游戏了。debug模式下的一切特有功能从此会对你开放。
2020年07月04日 13点07分 3
level 10
santizhizi 楼主
以下项目说明参考 https://tcrf.net/Undertale/Debug_Modehttps://pcy.ulyssis.be/undertale/debugmode 这两个英文网站,但这两个网站的数据都有一定的错漏,本处是根据游戏源代码修正了全部错误的完整教程。因为讲解的内容几乎没有需要理解的台词,而英文版修改调整也更方便,所以接下来出现的游戏画面完全使用英文原版1.08,如果有与其他游戏版本不同的内容也会补充。
2020年07月04日 13点07分 4
level 8
热乎
2020年07月04日 13点07分 5
level 15
围观围观
2020年07月04日 13点07分 6
level 10
santizhizi 楼主
②【自带显示部分】
进入Debug模式,游戏屏幕左上角会多出一个跳动的数字显示,这是通过帧数计算得出的游戏运行时间,以秒为单位,如果你的游戏卡到十几FPS,这里的统计也会相应变慢。如果读了档,这里的数字也会更新为此存档中的游戏运行秒数。
在游戏正常流程中,如果你走到了对应的位置,原本受fun值与概率影响出现的部分游戏元素会固定出现。
包括Gaster Follower a,原本为file0与ini的fun=61基础上1/5概率;
b,原本为file0与ini的fun=62基础上1/2概率;
c,原本为file0与ini的fun=63基础上1/2概率;
Monster Kid Goner,原本为file0与ini的fun≥90,不管是否Debug都需要经历过Undyne追逐战再回到这里,但Debug模式下如果fun<90,台词会变成仅有一句“你也是个???,对吗?”;
雪镇图示位置的疑似Alphys订披萨电话,原本为40≤file0的fun≤45,或Sans问冰箱运行电话,原本为46≤file0的fun≤50,会出现其中之一。
而即使在Debug模式也需要fun值对应才能出现的事件包括:
箱子路口上方的声音测试房间,file0与ini的fun=65;
找词谜题的“噩梦”模式,file0与ini的fun=56或57;
瀑布神秘走廊与神秘人,file0与ini的fun=66基础上1/10概率;
瀑布岔路口的Clam Girl,80≤file0的fun≤89;
雪镇码头的拨错号电话,2≤file0的fun≤39。
2020年07月04日 13点07分 7
level 10
santizhizi 楼主
在Monster Kid帮你爬上岩壁的房间中,角色左上方会显示两个数字,用于标识爬上岩壁剧情中的两个变量。上面的初始值为-1,在触发部分事件时会显示为本事件需要等待的延时时间帧数,而下面的初始值为0,标识Monster Kid的剧情触发状态。第一次与Monster Kid互动后需要等待120帧(4秒),上方数字从120降到-1,接着下方数字从0增加到4,此时Monster Kid才会提出让你踩着他的肩膀过去。
在Mad Dummy战中,屏幕右侧会有一个红色数字显示他的HP,初始300。虽然我们在战斗界面攻击无法造成伤害,但友军的魔法弹幕可以伤害到他。这个数值也可以通过其他方式减少,我们在下一部分的快捷键教程还会细讲。
在Asgore战中,屏幕左上角会有一个红色数字显示当前的回合数,从0开始。使用的弹幕攻击种类由回合数决定,20回合后Asgore会每回合降防10点直到防御为-120,增加达到23时,在Asgore回合结束后回合数会变回20。关于回合数的快捷键同样放在下一部分讲解。
在Photoshop Flowey战中,右下角会有一个小小的黄字显示“debug”。此战斗中有大量Debug快捷键,后续一起说明。
2020年07月04日 13点07分 8
level 10
santizhizi 楼主
③【快捷键控制-第一部分】
相比于非Debug模式下电脑键盘上能用到的按键最多只有12个,Debug模式下用到的按键就多得多了,有的按键在不同场景下还会有不同作用。为了能在游戏录屏中直观地显示各按键作用,我对源代码稍微作出了一点修改,让左上角显示的运行时间变成了当前使用的Debug快捷键名。请注意这并非游戏原作内容,只是为了教程需要而添加的,所以不要问“为什么我的Debug不显示按键名”。另外也有两点需要额外注意:
1.本处显示的所有键名都以常见的电脑键盘为例,对于部分电脑来说功能键位置可能有差异,而苹果电脑的键盘差异更大,一般需要用Fn按键组合,部分即使用按键组合也无法被识别,需要用外接键盘才能有效。
2.如果是手机上的非官方Debug移植版,具体的虚拟键盘按键映射需要根据移植者的实际设置而决定。由于按键太少不方便,个人不建议在手机上玩Debug版。
下面从所有界面都有效的快捷键开始讲解,包括游戏打开时的动画、读档界面、游戏内大地图界面、战斗界面、部分未读档时的特殊剧情等等。
2020年07月04日 13点07分 9
level 10
santizhizi 楼主
F键-加快当前房间的速度,将帧率提高到每秒60帧;W键-减慢当前房间的速度,将帧率降低到每秒10帧。当房间切换时,恢复到原来的每秒30帧。房间速度改变不影响音乐播放的速度。
R键-连续按6次,重启游戏,相当于关闭程序后重新打开根据代码判定,每两次按R的间隔需要小于0.2秒,否则次数会重新计数。不过如果先按W减缓房间速度,再连续按R的话,只要两次之间的间隔小于0.6秒就能成功重启了。
2020年07月04日 13点07分 10
level 10
santizhizi 楼主
F3键-在存档文件夹里加入屠杀线灭世文件“system_information_962”
这是乱玩Debug模式的新人最常犯的错误之一,因为按下F3时游戏运行的状态没有任何变化,但一旦重启游戏,无论是关闭重开还是按6次R,都会直接因这个屠杀线文件而进入十分钟的黑屏,除非你之前已经做过交易,有了“system_information_963”,这时962无效。此界面Debug快捷键无效果。
不过与屠杀线结尾满屏999不同的地方在于这里只添加了“灭世”文件,却没有删除存档文件夹C:\Users\【你的用户名】\AppData\Local\UNDERTALE里其他的内容,所以如果手动删除“system_information_962”,还是可以正常回到游戏的,只是Steam正版用户可能要麻烦一点了,因为当重启游戏触发十分钟黑屏时,这个文件已经被自动云同步,即使删掉也会重新生成。
解决方案有两种:
一,等十分钟黑屏接受交易,接着游戏会自动把本地的system_information_962替换为“已经卖了灵魂”的system_information_963,并且删除云端的962存档。之后随时都可以在存档文件夹里删除根本不会云同步的963。二,移除UT游戏本体文件夹中的steam_api.dll,从此再也不通过Steam启动UNDERTALE,优点在于以后游戏启动会变快,缺点在于Steam不会再统计游戏时间。
2020年07月04日 13点07分 11
瞅了眼自己的时间,24h……没有steam提醒我都没发现自己这么上心[滑稽]
2020年07月04日 13点07分
level 10
santizhizi 楼主
接下来讲读档后进入大地图界面可以使用的快捷键。
存档相关:S键-在当前房间打开存档界面进行存档
L键-读取当前的存档内容
0/1/2/3/4键-选择手动存档使用的file序号,默认为file0
关于file0与file8/9的具体异同,可参考【走进U学】file0、8、9与undertale.ini分析 系列的四篇文章。存档时记录的全部内容也写在上述文章之中,注意无论使用S键存档时角色位于房间的哪一个位置,读档时的位置都是固定的。
Backspace+方向键-提高移动速度到5
次元箱相关:
G键-打开次元箱
O键-从次元箱里拿出物品
I键-向次元箱中放入物品
2020年07月04日 13点07分 12
level 10
santizhizi 楼主
跳房间相关:
Insert键-进入序号后一位的房间
Delete键-进入序号前一位的房间
R+6键-进入废墟的room_ruins2房间
T+6键-进入雪镇的room_tundra1房间
W+6键(或F11键)-进入瀑布的room_water1房间
F+6键-进入热地的room_fire2房间
E+6键-进入新家的room_castle_front房间
Y+6键-进入真实验室的room_truelab_elevator
房间具体的房间名称、序号与图片的对应可以在这个网站查看,个人也整理过一份离线版图包:https://santizhizi.lanzous.com/ihT3Ldll9nc
2020年07月04日 13点07分 13
level 10
santizhizi 楼主
战斗相关:
Home键-进入当前battlegroup值对应的战斗
5键-将battlegroup的值提升1,初始为57,对应Mettaton盒子战
初始默认的battlegroup值可在gml_Object_obj_mainchara_KeyPress_36中修改,而具体的数值对应战斗可以在这个网站查看:https://pcy.ulyssis.be/undertale/battles
本处在已添加Debug按键显示的基础上又增加了battlegroup的显示,可以直观看到效果
End键-进入原本在新家触发的故事“战斗”,如果屠杀等级达到16会换成Flowey讲故事
屠杀等级(Murder Level)是一组根据屠杀线流程多个因素统计结果共同判定的变量,在屠杀线的不同阶段,对应事件分别有不同的数值要求,比如触发不灭Undyne需要有屠杀等级11,触发到新家后的各种事件需要有屠杀等级16。非Debug情况下的具体统计判定可参考文章:【走进U学】从判定细节的角度来看屠杀线终战
2020年07月04日 13点07分 14
ohhhhhhh被吞的都恢复了!
2020年07月05日 01点07分
@巴格先生 这还是昨晚直接在贴吧反馈才恢复的,估计下次还得吞
2020年07月05日 06点07分
level 10
santizhizi 楼主
下面的几条都是只能在当前所在的房间生效,到另一个房间后效果停止
P键-将当前房间速度在30FPS与60FPS之间切换
与F键和W键的不同点在于能回到默认速度,但只能在大地图使用。
F9键-停止正在播放的背景音乐
V键-显示墙壁的隐藏碰撞框
F10键-可以无视墙壁的隐藏碰撞框行走,但不能穿透碰撞框之外的物体
Page Up键-把触发随机遭遇战需要的设定步数增加100
该步数的初始值在不同地点及不同线路有差异,屠杀线需求更高。由于一般情况下走完一个房间通常只会触发一次遭遇战,所以每个房间按一次Page Up就可以在不绕路的情况下避开所有随机战。
而下面的几条则会全局生效,换房间也一样
F7键-增加500GF12键-进入Asriel战后的真和平状态,重启房间
U键-使“Papyrus的电话”变成“Papyrus与Undyne的电话”,将主角变为蓝色当前房间限定来标识,再按一次时切换回来,主角变为黄色。变色的标识仅在当前房间起效
M键-将屠杀等级从0开始增加1,覆盖原本的屠杀等级多变量统计结果,所以如果原本足够高的话少按几次M反而能离开屠杀线剧情
Page Down键-把基础攻击力设置为999,但由于进入战斗时基础攻击力会根据LV重新计算,所以这条快捷键不起作用
2020年07月04日 13点07分 15
1 2 3 尾页