FreeMinecraftModels 資源包輸出
FreeMinecraftModels 目前將生成的資源包寫入 output,而不是 outputs。
預設輸出路徑
插件在啟動時和執行 /fmm reload 時重建此資料夾:
plugins/FreeMinecraftModels/output/FreeMinecraftModels
然後將該資料夾壓縮為:
plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip
該壓縮檔路徑是 ResourcePackManager 與 FreeMinecraftModels 整合時所預期的路徑。
生成的內容
生成的資料夾始終包含:
pack.mcmetapack.pngassets/minecraft/atlases/blocks.jsonassets/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 設定不再需要舊的手動壓縮檔複製工作流程。