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