《我的世界》開發大師實戰班,開發重難點看這裡

發佈日期

各位開發者們,想要做出優質的玩法,就離不開各類專業知識。開發大師實戰班透過面向各階段開發者,進行具有針對性的技術培訓,將API需求、模型、場景、UI等難題逐一攻破,讓大家能快速投入到深度的內容創作中。

不知道上一期開發大師實戰班的重難點筆記有沒有幫助到各位呢?本期開發大師實戰班MOD SDK重難點問題彙總也是乾貨滿滿,線上為大家解答在實際開發中會遇到各種各樣的問題,快來看看吧!

【MOD SDK重難點筆記】

《我的世界》開發大師實戰班,開發重難點看這裡

【自定義維度】

Q:想要自定義全是海洋的維度怎麼生成?

A:需要用到minecraft:overworld_height元件。將noise_type設定為ocean或者deep_ocean。

另外,原版還有非常多預設的地形高度值:包括("stone_beach", "deep_ocean", "default", "default_mutated", "lowlands", "river", "ocean", "highlands", "taiga", "mountains", "mushroom", "less_extreme", "extreme", "beach", "swamp")。

Q:維度中如何統一全部群系?

A:調整其他群系生成的機率。但即使如此,也做不到只有一個群系。

Q:如何在將特徵生成於海灘邊的同時,控制它的高度和真實位置?

A:在feature_rule內利用三元運運算元確認原位附近皆為海灘後,再在結構內加幾層沙子(以免浮空),並且控制高度。

Q:自定義維度的時候,為什麼當維度設定到20以上,遊戲就進不去了?而檔案標明已經支援到int的最大值。

A:建議看下各項鍵值名字有沒有寫對,包括檢查下資料夾名字是否有寫錯或者鍵的字串寫錯等等。看了官網技術手冊中關於ModAPI的檔案,檔案意思感覺是從22開始,到int最大值前一個數字,如果最後什麼都還不行就把數字調成更大一點(比如23、24、25等)。

Q: 在自定義的緯度中放置自定義結構特徵,實現方法是什麼?

我們想在一個新的緯度中刪除掉原本的所有群系,填充為水,成為一個新的群系,並在水上放置多個自定義結構特徵,使它們拼接為一個島嶼。

A:假設開發者手上已有這些生成好的群系檔案(若沒有可以開啟官方示例自定義維度群系mod生成這些檔案),只需在裡面設定群系的初始高度為ocean或者deep_ocean這兩個值即可。他們會將群系的高度調整成海洋高度,MC的設定是低於62的高度會有水,這兩個值就是海洋和深海的高度。

Q:如何隱藏原版的特徵?

A:需要用到minecraft:ignore_automatic_features元件。它可以遮蔽這個群系的自定義樹特徵、礦石特徵,但無法遮蔽像林中府邸、村民要塞特徵等。

Q:我們放置的自定義結構部分會丟失,有方法解決麼?

我們現在是多個結構組合出來的,看了下確實生成在好幾個群系中間導致的,有方法指定生成在單個群系(比如海洋群系)中嗎?我們想每次玩家進入這個維度都能準確地出現在島上,這相當於一個boss房。

A:檔案裡有說自定義結構不能超過16x16,需要切割。可能有幾個點放的地方已經不是你想要放的群系了,所以那幾塊丟了。比較直接的方法是判斷下每個放置特徵的最大點是不是都在你想要的群系裡。如果不是一起消失群系的分佈是隨機的,建議將整個群系每個切割的部分,它們各自放置的點都檢查一下是否在單個群系內。如果不是則全部放到0高度就是取消生成,要讓玩家出生準確在一個群系不太可能,建議不要用自定義群系維度門。

Q:我們的島有80多個小結構。如果透過place放置的話,怎麼準確計算出它應該放置的位置?以及保證它在水上呢?

A:建議透過不是自定義傳送門的方式,讓玩家傳送到一個預定的新維度座標裡。有個介面是gettopblock獲得某個方塊最頂層的非空氣方塊,以這個高度為開始放置你的80多個小結構。可以先放置一個小黑屋小結構把玩家關在裡面,然後開始隔著幾個幀放置這80幾個結構,放置完再把玩家放出來。

Q:如何知道放置的座標是哪個?

A:有個介面是locateNeteaseStrutureFeature,類似原版locate指令可以獲得特徵的位置。

Q: 假設一個玩家先進來,然後正在島上,此時另一個玩家進來這個島會不會重新又載入一次呢?

A:這個應該還好,這個島如果只放一次的話,就在儲存一個extraData,然後每次進來這個維度前,都先確認下之前是不是放過島嶼了。

Q:我們是這樣來的監聽PlaceNeteaseStructureFeatureEvent 然後儲存座標的:玩家切換維度的時候tp過去,我們沒用放置特徵的介面,而是用的生成規則。

A:建議改用一個維度門,但裡面的方塊全部不是實心的方塊,然後開啟玩家方塊碰撞檢測,碰到後傳送到維度過去。建議把維度放置用放置特徵的介面放在那邊,這個島在新維度如果是一個唯一的boss島,或者唯一的可以反覆刷的boss島,建議的處理方式如上文所述。但那個介面如果一次性放好幾個特徵會卡頓,建議把它們分開幾個幀放完。

些知識點來自開發大師實戰班導師Spcoo和境界的回答,有沒有解開各位的疑問呢?關於實戰班還有更多精彩內容,歡迎關注開發者公眾號:我的世界Minecraft開發者 進一步瞭解!《我的世界》期待大家做出更多優秀的作品,無限未來由你我創造!

關於《我的世界》:

網易遊戲代理的《我的世界》(Minecraft)是一個關於方塊與冒險的遊戲,玩家可以獨自一人或與朋友們一起自由冒險,探索隨機生成的世界,創造令人驚歎的奇蹟。無論是建造簡單質樸的小屋,還是拔天倚地的城堡,儘可自由發揮你無窮的想象力。

相關攻略文章

最新攻略