FreeMinecraftModelsのリソースパック出力
FreeMinecraftModelsは現在、生成されたパックをoutputsではなくoutputに書き込みます。
デフォルト出力パス
プラグインは起動時と/fmm reload時にこのフォルダを再構築します:
plugins/FreeMinecraftModels/output/FreeMinecraftModels
その後、そのフォルダを以下にZIP圧縮します:
plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip
この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(スケール0.05)に対するminecraft:range_dispatchを使用します:
| 条件 | 使用されるモデル |
|---|---|
| アイテムを使用していない | _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モデルだけがアイテム定義ファイルを取得します。drawおよびchargedモデルはその内部の条件エントリとして参照されます。
Minecraft 26.1+との互換性修正
パックジェネレータは、Minecraft 26.1以降向けに2つの自動互換性修正を適用します:
- UVクランプ: 生成されたアイテムモデルは、26.1のより厳格なバリデータによって導入されたテクスチャブリーディングアーティファクトを避けるため、UV座標を
0–16の範囲にクランプします。 - 空のボーンブロックモデル: キューブを持たない(または
anchor_の子のみを含む)ボーンは、26.1以降では不正な形式のブロックモデルJSONを発行していました。ジェネレータは現在、有効なプレースホルダを発行するので、リソースパックは引き続きロードされます。
これらの修正は自動的に適用されます。設定は不要です。
リロード時の挙動
FreeMinecraftModelsがリロードすると、以下が行われます:
- コンテンツインポートステップを再実行する
output/FreeMinecraftModelsフォルダを再構築するoutput/FreeMinecraftModels.zipを再生成する- ResourcePackManagerがインストールされている場合、
resourcepackmanager reloadをディスパッチする
これが、最新のFMM + ResourcePackManagerセットアップが古い手動ZIPコピーワークフローを必要としなくなった理由です。