跳至主要内容

FreeMinecraftModels 資源包輸出

FreeMinecraftModels 目前將生成的資源包寫入 output,而不是 outputs

預設輸出路徑

插件在啟動時和執行 /fmm reload 時重建此資料夾:

plugins/FreeMinecraftModels/output/FreeMinecraftModels

然後將該資料夾壓縮為:

plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip

該壓縮檔路徑是 ResourcePackManager 與 FreeMinecraftModels 整合時所預期的路徑。

生成的內容

生成的資料夾始終包含:

  • pack.mcmeta
  • pack.png
  • assets/minecraft/atlases/blocks.json
  • assets/freeminecraftmodels/... 模型和材質輸出

對於 Minecraft 1.21.4+,FreeMinecraftModels 會在以下路徑生成物品模型定義檔案:

assets/freeminecraftmodels/items

對於較舊的伺服器,會回退到舊版皮革馬鎧覆蓋模型路徑。

展示模型輸出(1.21.4+)

當模型有配套的 .json 展示模型檔案時(參見模型製作注意事項),FMM 會將該 JSON(紋理參考已重寫以匹配提取的紋理)複製到:

assets/freeminecraftmodels/models/display/{modelId}.json

同時在以下位置生成相應的物品定義:

assets/freeminecraftmodels/items/display/{modelId}.json

DisplayModelRegistry 在運行時追蹤哪些模型有展示 JSON,以便可以在 ItemStack 上呼叫 ItemMeta.setItemModel() 來賦予其正確的手持和物品欄外觀。

弓和弩條件物品輸出

當 FMM 偵測到一組弓或弩狀態模型時(參見模型製作注意事項),它會為 _idle 模型生成單一的物品定義 JSON,在資源包層級條件性地切換所有狀態。無需伺服器端封包操作 -- 客戶端原生處理狀態轉換。

弓輸出

對於弓,生成的物品定義在 using_item 上使用 minecraft:condition,並在 use_duration 上使用 minecraft:range_dispatch(縮放 0.05):

條件使用的模型
未使用物品_idle
使用中,回退(剛開始)_draw_start
使用中,閾值 0.65_draw_half
使用中,閾值 0.9_draw_full

弩輸出

對於弩,生成的物品定義在 charge_type 上使用 minecraft:select。裝填後(箭或火箭),顯示 _charged 模型。未裝填回退在 crossbow/pull 上使用 minecraft:range_dispatch

條件使用的模型
未使用,未裝填_idle
使用中,回退(剛開始)_draw_start
使用中,閾值 0.58_draw_half
使用中,閾值 1.0_draw_full
已裝填(箭或火箭)_charged

輸出位置

生成的條件物品定義與其他物品定義一起寫入到:

assets/freeminecraftmodels/items/display/{baseModelId}_idle.json

只有 _idle 模型獲得物品定義檔案。拉弓和裝填模型在其中作為條件條目參考。

重新載入行為

當 FreeMinecraftModels 重新載入時,它會:

  • 重新執行內容匯入步驟
  • 重建 output/FreeMinecraftModels 資料夾
  • 重新生成 output/FreeMinecraftModels.zip
  • 如果安裝了 ResourcePackManager,則分派 resourcepackmanager reload

這就是為什麼現代 FMM + ResourcePackManager 設定不再需要舊的手動壓縮檔複製工作流程。