メインコンテンツまでスキップ

FreeMinecraftModelsのリソースパック出力

FreeMinecraftModelsは現在、生成されたパックをoutputsではなくoutputに書き込みます。

デフォルト出力パス

プラグインは起動時と/fmm reload時にこのフォルダを再構築します:

plugins/FreeMinecraftModels/output/FreeMinecraftModels

その後、そのフォルダを以下にZIP圧縮します:

plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip

この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(スケール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座標を016の範囲にクランプします。
  • 空のボーンブロックモデル: キューブを持たない(またはanchor_の子のみを含む)ボーンは、26.1以降では不正な形式のブロックモデルJSONを発行していました。ジェネレータは現在、有効なプレースホルダを発行するので、リソースパックは引き続きロードされます。

これらの修正は自動的に適用されます。設定は不要です。

リロード時の挙動

FreeMinecraftModelsがリロードすると、以下が行われます:

  • コンテンツインポートステップを再実行する
  • output/FreeMinecraftModelsフォルダを再構築する
  • output/FreeMinecraftModels.zipを再生成する
  • ResourcePackManagerがインストールされている場合、resourcepackmanager reloadをディスパッチする

これが、最新のFMM + ResourcePackManagerセットアップが古い手動ZIPコピーワークフローを必要としなくなった理由です。