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

FreeMinecraftModels モデル作成ノート

このページは、FreeMinecraftModels のコードベース上で現在確認できるモデル作成上の詳細をまとめたものです。意図的に保守的な内容になっており、すべての Blockbench ワークフロー設定ではなく、インポートと実行時の契約に焦点を当てています。

ソース形式

現在 FreeMinecraftModels が受け付ける形式:

  • 編集可能なソースインポート用の .bbmodel ファイル
  • 実行時向けに整理されたモデルデータ用の .fmmodel ファイル

通常のインポート手順:

  1. モデルを plugins/FreeMinecraftModels/imports に配置する
  2. /fmm reload を実行する
  3. FreeMinecraftModels にモデルを有効なモデルセットへ取り込ませ、生成されるリソースパックを再構築させる

フォルダーの役割

plugins/FreeMinecraftModels/imports
plugins/FreeMinecraftModels/models
plugins/FreeMinecraftModels/models_disabled
  • imports は、手動モデルインポートや公式パッケージのダウンロードを処理前に受け取る入口フォルダーです
  • models には有効化されているインストール済みモデル内容が入ります
  • models_disabled には、ダウンロード済みまたはインストール済みで、現在は無効になっているパッケージ内容が入ります

モデル ID

  • 実行時のモデル ID は、.bbmodel または .fmmodel 拡張子を除いたファイル名から決まります
  • コマンドや API 呼び出しがこの ID を解決するため、安定した一意のファイル名を使ってください
  • Blockbench のアニメーション参照は名前ベースなので、モデル内で重複したり曖昧な名前を使うより、明確で分かりやすい命名の方が安全です

Blockbench 互換性

  • FreeMinecraftModels はインポート時に Blockbench ファイルのバージョンを検出します
  • 現在のインポーターには、Blockbench v5 より古いバージョン向けの互換分岐がまだ含まれています
  • インポートログでモデル形式が FreeMinecraftModels と互換性がないと出た場合は、まず wiki やコマンドの問題ではなく、モデル形式の問題として扱ってください

実行時に意味を持つ bone 命名規則

現在の converter と skeleton パイプラインは、いくつかの命名規則を認識します:

  • hitbox
    • hitbox 生成用に予約されています
    • 見た目用 bone として使うのではなく、モデルの hitbox を明確に定義するために使うべきです
  • tag_...
    • nametag 関連の仮想 bone として扱われます
  • h_...
    • head bone として扱われます

これらは単なるスタイル規則ではなく、変換処理と実行時挙動に影響します。

IK、null object、locator

現在のコードで確認できるサポート:

  • IK コントローラーとしての Blockbench null object
  • IK チェーン blueprint と実行時 IK 解決
  • locator の解析

重要な実用上の制約:

  • IK コントローラーの参照は名前ベースなので、モデル構造とアニメーションデータの間でコントローラー名を安定させる必要があります

1.21.4+ の出力分岐

Minecraft 1.21.4+ では、FreeMinecraftModels は item model definition ファイルを次の場所に生成します:

plugins/FreeMinecraftModels/output/FreeMinecraftModels/assets/freeminecraftmodels/items

それ以前のバージョンでは従来の item model パスが使われます。作成作業中に生成出力を確認する場合は、自分のサーバーバージョンに合った出力形式を見ているか確認してください。

Bedrock と描画経路に関するメモ

  • Bedrock サポートは sendCustomModelsToBedrockClients と、その周辺の Floodgate/Geyser/resource-pack 経路に依存します
  • 対応バージョンの Java クライアントでは、useDisplayEntitiesWhenPossible が有効なら display entity レンダリングを利用できます
  • Java クライアントで正しく見えるモデルでも、Bedrock 経路でも安全とは限りません

実用的な作成アドバイス

  • 実行時 ID になるため、ファイル名を安定させる
  • Blockbench のアニメーション参照は名前依存なので、コントローラー名とアニメーション名を明確にする
  • 予約された virtual bone 名を意図して使う
  • Blockbench 内だけでなく、/fmm reload 後のインポート結果を確認する
  • 特に 1.21.4+ では、対象の Minecraft 系列向けに生成されたパック内容を確認する

対象外

このページは次の保証を目的としていません:

  • Blockbench UI の正確な操作手順
  • 芸術面のワークフローの好み
  • 古いローカル README に書かれている、過去の .bbmodel の細かな癖すべて

こうした内容は、上で確認できる実行時契約よりも速く変化します。