第一百五十章 如何看懂調(diào)試界面 ③
在上一章中,作者提到了調(diào)試界面左邊第二陣第四行之后的內(nèi)容,在1.13.2到1.16.5版本期間發(fā)生了極大的變化。這一章,我們就要了解,到底發(fā)生了什么變化?
在1.16.5版本,第五行已經(jīng)不是Biome了。這一行得和下面一行,即第六行一起看:
Client Light:光照強(qiáng)度(天空光照強(qiáng)度 sky,方塊光照強(qiáng)度 block)
Server Light:光照強(qiáng)度(天空光照強(qiáng)度 sky,方塊光照強(qiáng)度 block)
不難發(fā)現(xiàn),新版本是將Light一行拆成了客戶(hù)端光照強(qiáng)度(Client Light)和服務(wù)端光照強(qiáng)度(Server Light),實(shí)際作用和原本的Light一樣,只不過(guò)分成了兩端。比較奇怪的是,當(dāng)你并沒(méi)有在玩服務(wù)器而是在單人游戲時(shí),Server Light還是會(huì)顯示,只不過(guò)會(huì)顯示成:
Server Light:(與上一行的天空光照強(qiáng)度一樣 sky,與上一行的方塊光照強(qiáng)度一樣 block)
嗯,所以說(shuō)為什么Mojang不直接把它給隱藏掉呢?
第六行下面的第七行CH和第八行SH,是新版本新添加的一對(duì)兄弟,也需要一起看:
CH S:xx M:xx
SH S:xx O:xx M:xx ML:xx
這兩行的作用差不多,其用處都是顯示玩家當(dāng)前位置(X和Z坐標(biāo))最高的特定方塊的Y坐標(biāo)信息,區(qū)別就在于一個(gè)是客戶(hù)端的信息(Client Highest)一個(gè)是服務(wù)端的信息(Server Highest)。
CH和SH都有S和M這兩個(gè)參數(shù)。S的作用是顯示玩家當(dāng)前所處位置(X和Z坐標(biāo))最高的非空氣方塊的方塊的Y坐標(biāo)信息。M是顯示玩家當(dāng)前所處位置(X和Z坐標(biāo))最高的任意液體或會(huì)擋住你的方塊的Y坐標(biāo)信息。
M這個(gè)參數(shù)可能會(huì)比較難以理解。那就舉個(gè)例子:
假設(shè)一個(gè)服務(wù)器的腐竹,由于服務(wù)器沒(méi)人玩,很無(wú)聊,就用蜘蛛網(wǎng)從地上一直搭(創(chuàng)造模式)搭到Y(jié)坐標(biāo)為212的地方。此時(shí)如果有一位玩家路過(guò)這個(gè)服務(wù)器,并且從蜘蛛網(wǎng)下面走了過(guò)去,那么在穿過(guò)蜘蛛網(wǎng)的時(shí)候,它的CH一行會(huì)顯示為:
CH S:212,M:64
因?yàn)橹┲刖W(wǎng)并不會(huì)擋住玩家,它本身也不是個(gè)液體,導(dǎo)致并不會(huì)被M參數(shù)算到。但蜘蛛網(wǎng)并不是個(gè)空氣方塊,S參數(shù)便記錄了它的坐標(biāo),所以最終得出了這個(gè)結(jié)果。
SH在CH的基礎(chǔ)上還有O和ML這兩個(gè)參數(shù)(1.18版本還多了個(gè)東西在S和O之間,只不過(guò)目前在預(yù)覽版中顯示為null:xx),但這兩位并不適合單獨(dú)介紹,而是應(yīng)該和剛才那兩位,搞一個(gè)表格(建議電腦或平板上觀(guān)看):
參數(shù)名/方塊類(lèi)型——空氣方塊—擋人方塊—液體—樹(shù)葉—其他
S——————————×————√———√——√——√
O —————————×————√———×——√——×
M—————————×————√———√——√——×
ML—————————×————√———√——×——×
可能這仍然有些難以理解,但好在,這位腐竹又搞了兩個(gè)奇怪的塔:
①
蜘蛛網(wǎng)--- 67
水--- 66
樹(shù)葉--- 65
草方塊---64
②
蜘蛛網(wǎng)--- 67
樹(shù)葉--- 66
水--- 65
草方塊--- 64
如果此時(shí)有一位管理大大從正上方路過(guò),那么它的調(diào)試面板SH這一行將會(huì)顯示:
①——SH S:67 O:65 M:66 ML:66
(因?yàn)橹┲刖W(wǎng)不是空氣方塊,所以S是67;因?yàn)橹┲刖W(wǎng)和水都不會(huì)擋住玩家,但樹(shù)葉可以,所以O(shè)是65;因?yàn)橹┲刖W(wǎng)和水都不會(huì)擋住玩家,但水是液體,所以M和ML都是66)
②——SH S:67 O:66 M:66 ML:65
(因?yàn)?....所以S是67;因?yàn)闃?shù)葉會(huì)擋住玩家,但蜘蛛網(wǎng)不會(huì),所以O(shè)和M都是66;因?yàn)橹┲刖W(wǎng)不會(huì)擋住玩家,樹(shù)葉不屬于ML的計(jì)算范圍,水是液體,所以ML是65)
理解了吧?不理解就再看一遍。
第九行和第十行即Biome(生物群系)和Local Difficultly(區(qū)域難度)。
第十一行,即SC一行,是在1.16版本中新加入的一行參數(shù),作用是顯示生物生成的詳細(xì)信息:
SC:xx——當(dāng)前可以生成生物的區(qū)塊數(shù)量,似乎與渲染距離沒(méi)有關(guān)系
M:xx——當(dāng)前所有已生成的生物中,敵對(duì)生物的總數(shù)量
C:xx——當(dāng)前所有已生成的生物中,動(dòng)物的總數(shù)量
A:xx——當(dāng)前所有已生成的生物中,環(huán)境生物(比如蝙蝠)的總數(shù)量
W:xx——當(dāng)前所有已生成的生物中,水生動(dòng)物的總數(shù)量
M:xx——當(dāng)前所有已生成的生物中,其他類(lèi)型的生物的總數(shù)量
最后一行,也就是Sounds行:
Sounds:xx/xxx + x/x(Mood xx%)
Sounds一行主要是關(guān)于游戲聲音。Minecraft的游戲聲音大致可以分為三類(lèi):
普通音效、環(huán)境音效、背景音樂(lè)
普通音效——游戲中的大部分聲音是普通音效,比如放置方塊、怪物/動(dòng)物發(fā)出聲音、腳步聲等都算普通音效
環(huán)境音效——環(huán)境音效一般是指在特定場(chǎng)景下播放的聲音,說(shuō)白點(diǎn)就是你在挖礦的時(shí)候聽(tīng)到的怪聲(晚上玩怪恐怖的)。環(huán)境音效除了在洞穴里有,還有在水下和在下界的環(huán)境音效。
背景音樂(lè)——不用多說(shuō),C418的音樂(lè)真好聽(tīng)。
加號(hào)的左邊即是普通音效,具體是:
當(dāng)前正在播放的普通音效數(shù)量/可以播放的普通音效數(shù)量上限
右邊是環(huán)境音效,只不過(guò)此環(huán)境音效還包括了唱片機(jī)播放的音樂(lè)和游戲背景音樂(lè)(或者更準(zhǔn)確的來(lái)講應(yīng)該使用英文Minecraft Wiki的streamed sounds):
當(dāng)前正在播放的環(huán)境音效數(shù)量/可以播放的環(huán)境音效數(shù)量上限
在這一串參數(shù)后面,還有一個(gè):
Mood xx%
這個(gè)東西目前中文Wiki上沒(méi)有說(shuō)明。作者將這東西放進(jìn)百度生草機(jī)里攪拌了一下,得出來(lái)了:
情緒 xx%
生草機(jī)出來(lái)的東西準(zhǔn)不準(zhǔn)不知道,但這東西絕對(duì)跟你的情緒有關(guān)。
這東西的百分比后面有一個(gè)算法:Mood algorithm
Mood 算法大致的代碼(偽)是這樣的:
updateMood(mood):
tickDelay = 6000
maxLightLevel = 15
block = select a random block in a 17×17×17 block cube centered around the player
skyLight = block.getSkyLightLevel()
if (skyLight > 0):
mood = mood -(skyLight / maxLightLevel)* 0.015
else:
blockLight = block.getBlockLightLevel()
mood = mood -(blockLight - 1)/ tickDelay
if (mood ≥ 1.0):
player.playSpookySound()
mood = 0.0
else if (mood < 0):
mood = 0.0
翻譯:
聲明“更新情緒”方法(情緒):
設(shè)定變量“游戲刻延遲”值為6000
設(shè)定變量“最大光照等級(jí)”值為15
在以玩家為中心的17×17×17的立方體中隨機(jī)選定一個(gè)方塊
獲取該方塊的天空光照等級(jí)
如果(天空光照等級(jí)大于0)
設(shè)定變量“情緒”的值=情緒-(天空光照等級(jí)÷ 最大光照等級(jí))× 0.015
否則
獲取該方塊的方塊光照等級(jí)
設(shè)定變量“情緒”的值=情緒-(方塊光照等級(jí)- 1)÷游戲刻延遲
如果(情緒大于等于1.0)
執(zhí)行玩家類(lèi)方法“游戲里詭異的聲音”
設(shè)定變量“情緒”的值為0.0
否則如果(情緒小于0)
設(shè)定變量“情緒”的值為0.0
為了讓你能夠真正理解這算法是怎么算的,我們來(lái)舉個(gè)栗子。
假設(shè)此時(shí)你正在礦洞里挖礦。在上一游戲刻中,你的情緒值為0.9999999999999232(Mood 99%),如果此刻游戲隨機(jī)到了你正前方五格的方塊,那么:
游戲通過(guò)執(zhí)行block.getSkyLightLevel這個(gè)方法(Java語(yǔ)言中的方法類(lèi)似于Minecraft中的函數(shù),將一串代碼包起來(lái)成為一個(gè)方法,需要執(zhí)行的時(shí)候再調(diào)用),獲取到了這個(gè)方塊的天空光照等級(jí)為0。
因?yàn)檫@個(gè)方塊的天空光照等級(jí)是0,所以游戲又執(zhí)行了block.getBlockLightLevel這個(gè)方法,獲取到了這個(gè)方塊的方塊光照等級(jí),發(fā)現(xiàn)也是0。
于是游戲做了一個(gè)簡(jiǎn)單的運(yùn)算:
mood = 0.9999999999999232-(0-1)÷6000
=0.9999999999999232-(-1)÷6000
=0.9999999999999232-(-0.0001666666666666)
=0.9999999999999232+0.0001666666666666
=1.0001666666665898
此時(shí)游戲發(fā)現(xiàn)1.0001666666665898大于1,所以執(zhí)行了player.playSpookySound方法,然后你就聽(tīng)到了一輛地鐵駛過(guò)的聲音(Cave 11)。
但如果這個(gè)方塊的方塊光照等級(jí)大于等于1,或者這個(gè)方塊的天空光照大于0,那么mood值反而會(huì)減少一些或不增不減,因?yàn)槿绻屑?xì)觀(guān)察上面的代碼,你會(huì)發(fā)現(xiàn)計(jì)算mood時(shí)都是減法,要讓mood增加,必須要讓減數(shù)為負(fù)數(shù),各種情況下,只有天空和方塊光照等級(jí)都為0的情況下才能得出負(fù)數(shù)。
Mood算法每游戲刻都會(huì)執(zhí)行一遍,每次執(zhí)行最多增加1/6000。也就是說(shuō),在極端的情況下,即你完全置身于黑暗之中,Mood也需要每五分鐘才能夠輪回一次。
說(shuō)了這么多,那么這個(gè)Mood xx%到底有什么用?
看一下上面的假設(shè)就知道了,當(dāng)Mood到100%也就是你的情緒達(dá)到了頂峰時(shí),游戲就會(huì)突然給你隨機(jī)放一個(gè)環(huán)境音效,把你嚇一跳。
嗯.......不愧是Mojang,把玩家的情緒拿捏得明明白白的。
到這兒。左邊的第二方陣算是徹底研究完了,但本章還沒(méi)有結(jié)束。
1.8.2版本,左邊新出現(xiàn)了個(gè)第三方陣,這個(gè)第三方陣主要是關(guān)于調(diào)試本身的信息,它長(zhǎng)這個(gè)樣子:
(1.14版本之前)
Debug:Pie [shift]:hidden FPS [alt]:hidden
For help:press F3 + Q
(1.14版本之后)
Debug:Pie [shift]:hidden FPS + TPS [alt]:hidden
For help:press F3 + Q
第一行Debug主要是一些關(guān)于調(diào)試界面的參數(shù)。Pie指的是餅圖,這東西可以通過(guò)按shift + F3顯示(visible),默認(rèn)是隱藏(hidden)。
什么?你說(shuō)按了沒(méi)用?
哦,這東西得這樣按出來(lái):
第一步,按住shift,由于和游戲按鍵沖突,按住時(shí)會(huì)蹲下或向下飛行。如果此時(shí)調(diào)試界面已打開(kāi),請(qǐng)先關(guān)閉調(diào)試界面。
第二步,繼續(xù)按住shift,同時(shí)另一個(gè)手指按住F3。
第三步,兩個(gè)手指同時(shí)放開(kāi)。看,餅圖出來(lái)了!(這餅圖小得字都看不清啊)
FPS(1.14版本之后還有一個(gè)TPS,即Ticks Per Second每秒傳輸刻數(shù))指的是幀(刻)生成時(shí)間柱狀圖,可以按alt + F3顯示。在1.14版本之前,這兒只有一個(gè)柱狀圖。這個(gè)柱狀圖有兩條參考線(xiàn),一個(gè)參考線(xiàn)在最上面,代表30fps;另一個(gè)在中間,代表60fps。這個(gè)柱狀圖的柱子越低,即代表每幀運(yùn)算的時(shí)間越快,F(xiàn)PS越高。
在1.13版本之前,這個(gè)柱狀圖很簡(jiǎn)陋,但相對(duì)于之后的版本,多了一個(gè)東西:
xx MB/s
作者猜測(cè)這可能跟讀寫(xiě)速度有關(guān),可能是內(nèi)存的讀寫(xiě)速度。
1.13版本更新后,這個(gè)柱狀圖就好看多了,首先它變大了,其次它有更豐富的顏色了——柱子越矮越綠,越高越紅。
1.14版本更新后,這兒又多了個(gè)TPS的生成時(shí)間柱狀圖,看法和FPS的柱子差不多。同時(shí),柱狀圖上面會(huì)顯示當(dāng)前最低和最高計(jì)算用時(shí),單位為毫秒。
上面所述的兩個(gè)附加調(diào)試圖在關(guān)閉調(diào)試界面后,如果再打開(kāi)調(diào)試界面,那么將會(huì)又一次隱藏。你可能以為我要說(shuō)如何保持它默認(rèn)開(kāi)啟,但可惜不是,因?yàn)闆](méi)有這個(gè)功能。我要說(shuō)的是:如何一次性將兩個(gè)圖表都打開(kāi)。
你只需要按下shift + alt + F3即可。
第二行For help相信大家都看得懂,這就類(lèi)似于軟件中的“獲取幫助”,這一行就是提醒你按F3 + Q可以了解更多東西。
具體有什么東西如下:
[?~]F3 + A:重新加載所有區(qū)塊
[1.8~]F3 + B:打開(kāi)或關(guān)閉實(shí)體的碰撞箱(白色線(xiàn)條)、朝向(藍(lán)色線(xiàn)條)和生物的視線(xiàn)高度(紅色線(xiàn)條)信息。
[?~1.13~]F3 + C:短按以/execute指令的形式復(fù)制玩家本身的坐標(biāo)、旋轉(zhuǎn)角度信息[1.13及之后]:
/execute in minecraft:overworld run tp @s......
長(zhǎng)按10秒以使Minecraft游戲本身強(qiáng)制性崩潰
[1.13.1~]Ctrl + F3 + C:按住10秒以使Java本身強(qiáng)制性崩潰(有些鍵盤(pán)需要使用右Ctrl)
[?~]F3 + D:清空聊天記錄,但仍然可以通過(guò)上下鍵查看之前輸入過(guò)的指令和消息
[1.9~]F3 + F:使客戶(hù)端渲染距離+1(范圍為2~32)
[1.9~]F3 + shift + F:使客戶(hù)端渲染距離-1(范圍為2~32)
[1.10~]F3 + G:打開(kāi)或關(guān)閉區(qū)塊邊界(紅色,玩家所處區(qū)塊為黃色)、玩家所處區(qū)塊區(qū)段邊界(藍(lán)色)信息
[1.4.2~]F3 + H:打開(kāi)或關(guān)閉高級(jí)提示框(即顯示物品詳細(xì)信息,如物品ID、NBT標(biāo)簽)
[1.13~]F3 + I:將玩家所注視的方塊或?qū)嶓w在服務(wù)端的信息復(fù)制下來(lái),具體如下。
方塊:/setblock 坐標(biāo)信息,方塊ID[方塊狀態(tài)]
實(shí)體:/summon 實(shí)體ID,實(shí)體坐標(biāo),實(shí)體NBT
[1.13~]shift + F3 + I:將玩家所注視的方塊或?qū)嶓w在客戶(hù)端的信息復(fù)制下來(lái)。
[?~1.12.2|1.17~]F3 + L:Wiki上說(shuō)是“生成、保存性能分析數(shù)據(jù)”。在1.12.2版本,按住F3 +L會(huì)顯示“正在加載可見(jiàn)區(qū)塊”,但實(shí)際啥也沒(méi)有發(fā)生。
[1.9~1.16~|需要執(zhí)行/gamemode權(quán)限]F3 + N:在上一個(gè)游戲模式和旁觀(guān)模式切換[1.15之后]在創(chuàng)造模式和旁觀(guān)模式中切換[1.15及之前]
[1.4.2~]F3 + P:開(kāi)啟或關(guān)閉當(dāng)Minecraft窗口沒(méi)被選中時(shí)自動(dòng)暫停的功能
[1.9~]F3 + Q:顯示幫助列表
[?~1.9]F3 + S:重新加載聲音
[?~]F3 + T:重新加載所有資源包(包括原版資源包)和聲音
[1.16~|需要執(zhí)行/gamemode權(quán)限]F3 + F4:在四種模式中切換,可以使用鼠標(biāo)選擇或按F4下一個(gè),松開(kāi)F3即切換到選定模式
[1.14.1~]F3 + Esc:暫停游戲而不顯示菜單,多人模式無(wú)法暫停
[1.2.4~]shift + F3:顯示餅狀圖
[1.8.2~]alt + F3:顯示柱狀圖
[1.8.2~]shift +alt + F3:我全都要顯示
到這里,調(diào)試界面左邊這一欄才算介紹完成。
本章到此結(jié)束。