跳至主要內容

自訂模型

EliteMobs 透過 Model EngineFreeMineCraftModels 支援自訂模型。

前言

從 EliteMobs 的角度來看,自訂模型系統非常簡單,因為管理員唯一要做的就是在 NPC 或自訂 Boss 設定檔中加入一行,告訴它要使用哪個自訂模型。然而,要讓這個系統完全運作,必須在 Model Engine 與 Minecraft 上採取正確的步驟,而這些就沒那麼容易上手了。

本指南會詳細說明與 Model Engine 及 Minecraft 之間的銜接部分。它不會告訴你如何使用 Blockbench 來建立自訂 Boss,也不會詳細說明 Model Engine 如何運作。關於那些,別處已經有大量的指南,如果你想進一步了解那些系統,直接查看它們的文件會更有幫助。

FreeMineCraft Models

如果你想學習如何使用 FMM 來讓你的模型運作,那麼你可以查看這個 Wiki 頁面以了解更多。

基岩版(Geyser)支援

基岩版玩家(透過 Geyser/Floodgate 連線)是否能看到自訂模型,完全取決於你的模型外掛(ModelEngine 或 FreeMinecraftModels)與你的資源包設定,而非取決於 EliteMobs。EliteMobs 確實會偵測基岩版用戶端,但它將該資訊用於選單算繪與名牌定位之類的用途 —— 它不會產生或提供另一個基岩版相容的模型。關於基岩版/Geyser 模型支援,請參閱你的模型外掛文件。

LibsDisguises 整合

EliteMobs 也支援 LibsDisguises 作為自訂模型的替代方案。當未設定自訂模型時,EliteMobs 可以使用 LibsDisguises 來改變實體外觀。此整合會自動處理名稱可見性同步。

若要使用 LibsDisguises 而非自訂模型,請設定你的 Boss/NPC 偽裝設定,且不要指定 customModel 欄位。

腳本化物品模型(FMM)

EliteMobs 的自訂物品可以使用 FreeMinecraftModels 的腳本化物品系統,以實現進階的模型 + Lua 腳本行為。這超越了靜態自訂模型 —— 腳本化物品可以透過 Lua 腳本對裝備、攻擊、右鍵以及許多其他物品事件做出反應(FMM 總共提供 22 個物品腳本掛勾)。

要使用此功能,請在你的自訂物品設定中將 scriptedItem 欄位設定為 FMM 的物品 ID。EliteMobs 負責處理名稱、說明文字、附魔與等級;FMM 則提供 3D 模型與腳本行為。

# EliteMobs 自訂物品設定範例
material: IRON_SWORD
name: "&cFlame Blade"
enchantments:
- "FIRE_ASPECT,2"
scalability: scalable
scriptedItem: flame_blade

關於撰寫物品腳本,請參閱 FMM Lua 入門指南;關於開發者整合的詳細資訊,請參閱 FMM API 指南

最低需求

EliteMobs、Model Engine R3.0.0* 或更新版本 或 FreeMinecraftModels、Blockbench**,以及一個 Minecraft 資源包。

* 此外掛可能還有其他相依套件。請查看它們那邊的文件。
** 建立與編輯自訂模型時所需。如果你只是想安裝內容而不加以修改,則不需要。

外掛優先順序

如果同時安裝了 ModelEngine 與 FreeMinecraftModels,EliteMobs 預設會使用 FreeMinecraftModels。同一時間只會有一個自訂模型外掛處於啟用狀態。

手動設定自訂模型

注意:本指南假設你已經有一個有效的自訂模型。這些模型以 Blockbench 檔案格式(.bbmodel)提供。

EliteMobs 能夠為 NPC 與自訂 Boss 使用自訂模型。兩者的操作流程相同,如下所示:

步驟 1. 設定 EliteMobs 設定

前往你想修改的自訂 Boss 或 NPC 的設定檔,並加入以下這一行:

customModel: modelname

modelname 替換成你的模型名稱。該名稱是你所使用的自訂模型檔案的名稱。舉例來說,測試 Boss 的自訂模型檔案是 showcase_boss.bbmodel。因此,設定選項應為

customModel: showcase_boss

EliteMobs 的部分就這樣!現在就會變得稍微棘手一點了。

步驟 2. 產生 Model Engine 資料

注意:如有疑問或問題,請參閱此處的 Model Engine Wiki。

  1. 將你的自訂模型 Blockbench 檔案(.bbmodel)放入目錄 (yourServer)/plugins/ModelEngine/blueprints
  2. 執行指令 /meg reload。如果一切正常運作,你應該會看到一則訊息顯示 [Model Engine] X models loaded,其中 x 是你已註冊的模型數量。

步驟 3. 散布資源包

如果你想讓你的伺服器管理下載,這可能是最棘手的部分。在研究如何自動散布資源包之前,請先檢查當你的用戶端裝有資源包時系統是否能運作!

  1. 前往目錄 (yourServer)/plugins/ModelEngine/resource pack,使用該資料來建立一個資源包,或將其中的 assets 資料夾加入到你的資源包的 assets
    1. 如果你正在建立一個新的資源包,你可以將 resource pack 中的檔案放入一個壓縮檔,那就會是一個你可以散布的有效資源包。更多資訊
    2. 如果你已經有一個資源包,請確保你沒有意外覆寫到既有的模型。更多資訊
  2. 將你的資源包散布給你的玩家。只有裝有資源包的玩家才能看到自訂模型,對其他所有人而言它看起來會非常怪異且破碎。如果你打算大量使用這些模型,你可能會想強制使用資源包。
    1. (選用)若要讓玩家在登入時下載資源包,你需要將檔案託管在某個網路位置,並更改 server.properties 的 resource-pack= 欄位以指向該位址。*
    2. (選用)如果你會修改資源包,你會想使用 resource-pack-sha1= 選項,這樣伺服器就能檢查玩家的資源包是否需要更新。要產生此值,請將你的資源包上傳到 http://onlinemd5.com/ 並確保你選擇 SHA1 選項。每次你更新資源包時都必須這麼做,否則你的使用者就不會收到更新。*
    3. (選用)若要強制玩家使用資源包,請在 server.properties 中使用 require-resource-pack=true 選項。*

如果你修改了 server.properties,你需要重新啟動!

* 注意:如果這些說明對你沒有幫助,網路上有許多指南可以協助你讓這部分運作。

合併資源包

如果你需要合併你的資源包,你可以手動進行。但我們建議使用如 merge.elmakers 之類的線上工具來合併你的資源包。

步驟 4. 祈禱它能運作

假設一切都正確完成,你現在應該能在你的 Boss 或 NPC 上看到自訂模型。你可以透過以下指令生成它們:

  • 自訂 Boss:/em spawn boss filename.yml
  • NPC:/em place npc filename.yml

接著你可以透過指令 /em remove 來移除它們。

為 EliteMobs 建立與調整自訂模型

EliteMobs 能夠使用任何被 Model Engine 視為有效的模型,這表示沒有什麼是它做不到的。

然而,在動畫方面,需要為動畫使用特定的名稱,以確保 Boss 能夠使用這些動畫。

這些動畫名稱就是在 Blockbench 的動畫分頁中所設定的名稱。你可以隨時重新命名它們,這表示你可以改造任何既有的模型來與 EliteMobs 搭配運作。

動畫

請注意,由於這個系統還非常新,本章節仍在持續擴充。隨著功能請求陸續湧入,會有更多內容加入其中。

idle

idle 是不在戰鬥中且不移動的實體所使用的動畫名稱。EliteMobs 會以 idle 狀態初始化模型,但不會覆寫 ModelEngine 內建的 idle 動畫系統。模型會透過 ModelEngine/FMM 的預設行為自動使用此動畫。

walk

walk 是正在移動的實體所使用的動畫名稱。EliteMobs 會以 walk 狀態初始化模型,但不會覆寫 ModelEngine 內建的 walk 動畫系統。模型會透過 ModelEngine/FMM 的預設行為自動使用此動畫。

attack

攻擊動畫有三種類型:

attack

attack 是 Boss 攻擊時所使用的正確通用動畫名稱。

attack_melee

attack_melee 是當自訂 Boss 使用原版 Minecraft 近戰攻擊來攻擊實體時所使用的正確動畫名稱。會覆寫 attack。請注意,動畫會在傷害造成之後才播放。目前這很遺憾地是一項限制。因此,請盡量讓動畫非常快速。

attack_ranged

attack_ranged 是當自訂 Boss 生成投射物實體時所使用的正確動畫名稱。會覆寫 attack。請注意,動畫會在投射物發射之後才播放。目前這很遺憾地是一項限制。因此,請盡量讓動畫非常快速。

動畫後備系統

EliteMobs 對攻擊動畫使用後備系統:

  • 如果未定義 attack_melee,則退回使用 attack
  • 如果未定義 attack_ranged,則退回使用 attack
  • 如果未定義 attack,則不播放動畫

這讓你能夠建立單一個適用於所有攻擊類型的攻擊動畫,或為近戰與遠程攻擊建立各別的專屬動畫。

damaged

注意

damaged 動畫目前尚未實作。此功能計畫於未來版本推出。模型在受擊時不會自動播放 damaged 動畫。

death

death 是死亡動畫的正確動畫名稱。EliteMobs 不會修改 Model Engine 所使用的預設 idle 動畫系統。

powers

注意

Power 動畫尚未實作。此功能計畫於未來版本推出。

注意:本段落仍在開發中。以下是目前計畫中的功能。

EliteMobs 中的每個 power 都可以指派一個動畫。動畫永遠在 power 觸發時開始,且目前在 power 使用的整個過程中不會提供進一步的觸發點。某些 powers,例如無敵類,不會有任何作用,因為它們沒有觸發點,且只是 Boss 的被動屬性。

要為一個 power 指派動畫,該動畫的命名必須與 elitemobs 的 power 檔案相同。

舉例來說,要為殭屍死靈之書(zombie necronomicon)power 加入動畫,該動畫應命名為 zombie_necronomicon.yml。它會在 power 觸發時立即開始播放,並在動畫結束時結束(如果未設定為循環),或在 power 完成時結束。

從地城匯入自訂模型

步驟 1. 一般匯入

匯入包含自訂模型的地城打包壓縮資料夾時,自訂模型會自動移動到 (yourServer)/plugins/ModelEngine/blueprints,而 Model Engine 會自動重新載入以產生相關的資源包與 Model Engine 檔案。

步驟 2. 資源包

EliteMobs 會在啟動時自動將其內建的資源包檔案匯出到 (yourServer)/plugins/EliteMobs/resource_pack 資料夾。此匯出使用總和檢查碼比對以避免不必要的複製,因此這些檔案只會在外掛版本變更時才更新。

你需要將這些資源包檔案與任何 Model Engine 資源包檔案合併,並將合併後的資源包散布給你的玩家。只有裝有資源包的玩家才能看到自訂模型。

疑難排解

常見問題:

  1. 模型不可見:

    • 驗證 /meg reload 顯示你的模型已載入
    • 檢查資源包已安裝在用戶端上
    • 確保 customModel 名稱與 .bbmodel 檔名相符(不含副檔名)
  2. 動畫未播放:

    • 驗證 Blockbench 中的動畫名稱與文件中記載的名稱完全相符
    • 檢查那些應該只播放一次的動畫並未設定為循環
    • 使用 Model Engine 指令測試個別動畫
  3. 兩個外掛都已安裝:

    • 如果兩者都存在,EliteMobs 會使用 FreeMinecraftModels
    • 若要強制使用 ModelEngine,請解除安裝 FreeMinecraftModels