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

FreeMinecraftModels FAQ

ここに記載されていない質問がある場合は、サイドバーを確認して、その内容に特化したページがウィキにないか探してみてください!

はじめに

FreeMinecraftModelsのインストールと使い方は?

情報

インストール:

  1. FreeMinecraftModels.jarをダウンロードしてpluginsフォルダに配置します
  2. サーバーを再起動してプラグインフォルダを生成します
  3. /fmm setupを実行して初回セットアップ/コンテンツ管理メニューを開きます
  4. 公式コンテンツパックを使用する場合は、/nightbreaklogin <token>でNightbreakをリンクします
  5. Nightbreak管理の公式コンテンツには/fmm setupまたは/fmm downloadallを使用します
  6. 手動コンテンツの場合は、.bbmodelファイルを~/plugins/FreeMinecraftModels/imports/に配置して/fmm reloadを実行します
  7. 生成されたリソースパックは~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zipにあります

リソースパックの配布:

以下のいずれかの方法を選択します:

  • オプションA(推奨):自動配布のためにResource Pack Managerをインストールします
  • オプションB:server.propertiesまたはホスティングサービスを介して手動で設定します

モデルのスポーン:

  • /fmm spawn static <id> - 一時的な装飾モデルをスポーン
  • /fmm spawn dynamic <id> - エンティティに付属するモデルをスポーン
  • /fmm spawn prop <id> - 永続的なワールドモデルをスポーン

管理:

  • /fmm - クラフタブルアイテムメニューを開く(freeminecraftmodels.menuが必要)
  • /fmm setup - コンテンツ管理/初回セットアップメニューを開く
  • /fmm recommendedplugins - FMMと相性の良いコンパニオンプラグインを閲覧
  • /fmm downloadall - 最新のプラグイン更新とアクセス可能なすべての公式コンテンツをダウンロード
  • /fmm downloadallcontent - アクセス可能なすべての公式コンテンツをダウンロード(コンテンツのみ)
  • /fmm updatecontent - 古くなった公式コンテンツを更新
  • /fmm downloadpluginupdate - 最新のプラグインjar更新のみをダウンロード
  • /fmm forcereinstallcontent <package|all> - 修復用コマンド:バージョンが最新だと示していても、すでに持っているコンテンツを再ダウンロード
  • /fmm reload - プラグインをリロードして新しいモデルを変換
  • /fmm version - プラグインのバージョンを表示
  • /fmm stats - エンティティ数の統計を表示
  • /nightbreaklogin <token> / /nightbreaklogout - Nightbreakアカウントトークンを保存・消去するMagmaCoreの共有トップレベルコマンド(権限:nightbreak.login
  • /freeminecraftmodelschangelog [dismiss|disable] - 未読のFMMリリースノートをゲーム内で読む(管理者専用。参加時にクリック可能なプロンプトとしても提示されます)

プレイヤー機能:

  • /fmm disguise <modelID> [player] - 自分(または対象プレイヤー)の見た目をカスタムモデルに変身させる
  • /fmm undisguise [player] - プレイヤーの変装を解除する
  • /fmm disguiselist - 現在変装中のすべてのプレイヤーを一覧表示する
  • /fmm itemify <model> <material> - 指定したモデルをスポーンする配置可能アイテムを作成する
  • /fmm craftify <modelID> - プロップ用のクラフトレシピを作成するインタラクティブなレシピビルダーを開く
  • /fmm shop - オプションのVault対応家具ショップを開く(shop_config.ymlで有効化されている場合のみ)
  • /fmm mount <modelID> - カスタムモデルにディスガイズした騎乗可能な馬をスポーンする(実験的)

デバッグ:

  • /fmm hitbox visualize [duration] - パーティクルを使ってモデルのヒットボックスを可視化する(duration はtick単位、デフォルト100)
  • /fmm location - 登録されている保護/ダンジョンプロバイダを報告し、現在地でそれらをテストする
  • /fmm debug bedrock [on|off] - Bedrockディスプレイパイプラインを診断するための詳細な[FMM-BedrockDebug]ログストリームを切り替える。設定キーではなく、再起動のたびにOFFにリセットされる
  • /fmm debug props [on|off] - プロップの重なりスキャンを切り替える。有効にすると、チャンクロードのたびに0.1ブロック以内にある2つのプロップをSTACKED PROPS DETECTEDとして報告する。こちらも再起動のたびにOFFにリセットされる
  • /fmm packetdebug [ticks] - 次の[ticks]モデルクロックティック(デフォルト1、最大200)の間、モデル化エンティティのパケット負荷をサンプリングし、パケット/ティック、ビューアーごとのファンアウト、最も負荷の重いビューアー、パケット種別の内訳を報告する

管理者向け:

  • /fmm deleteall [radius] - ロードされているすべてのモデル化エンティティとプロップを削除する(注意して使用 - 確認プロンプトなし)。オプションのプレイヤー専用[radius]を指定すると、その数ブロック以内に削除を限定する

権限:

  • freeminecraftmodels.*(デフォルト:OP) - freeminecraftmodels.adminfreeminecraftmodels.deleteallfreeminecraftmodels.disguise.selffreeminecraftmodels.disguise.othersfreeminecraftmodels.bypassregionprotectionを付与するワイルドカード。また、/fmm reload/fmm stats/fmm spawn/fmm itemify/fmm craftify/fmm mount/fmm hitbox visualize/fmm debug/fmm packetdebug/fmm location/fmm setup/fmm recommendedplugins/fmm downloadall/fmm downloadallcontent/fmm updatecontent/fmm downloadpluginupdate/fmm forcereinstallcontentに必要な文字どおりの権限でもあります
  • freeminecraftmodels.admin(デフォルト:OP) - /fmm admin(管理者コンテンツブラウザ)と/fmm giveitem
  • freeminecraftmodels.disguise.self(デフォルト:OP) - プレイヤーが自分自身のみをディスガイズ/アンディスガイズできるようにします
  • freeminecraftmodels.disguise.others(デフォルト:OP) - 対象指定のディスガイズ/アンディスガイズと/fmm disguiselistを許可します
  • freeminecraftmodels.deleteall(デフォルト:OP) - /fmm deleteallに必要(ワイルドカードの子)
  • freeminecraftmodels.bypassregionprotection(デフォルト:OP) - preventPropPlacementInProtectedRegionsが有効でも、他のプラグインが通常のブロック設置をブロックする場所でプロップの設置/操作を許可
  • freeminecraftmodels.menu(デフォルト:true) - すべてのプレイヤーが/fmmでクラフタブルアイテムブラウザを開けるようにします
  • freeminecraftmodels.shop(デフォルト:true) - すべてのプレイヤーが/fmm shopを開けるようにします(ショップが有効化されていることが引き続き条件)
  • nightbreak.login(デフォルト:OP) - plugin.ymlではなくMagmaCoreによって登録されます。/nightbreaklogin/nightbreaklogoutに必要です

別途記載がない限り、コマンドはデフォルトでOP専用です。必要に応じてこれらの権限を非OPプレイヤーに付与してください。

モデルの機能と制限

モデルのサイズと回転の制限は?

情報

サイズ制限:

  • ボーンごとの境界ボックスの最大値:192x192x192モデルピクセル(ゲーム内12x12x12ブロック) -- 単一ボーン内のすべてのキューブにわたって測定されます
  • FreeMinecraftModelsは4倍の内部スケーリングを使用し、Minecraftの-16..+32のリソースパック範囲に収まるようモデル原点をシフトします
  • ボーンが制限を超えると、FMMはコンソールに警告をログ出力します。キューブを縮小するか、近づけるか、複数のボーンに分割してください
  • モデル全体はこれより大きくできます -- 制限が適用されるのはボーンごとのみです

キューブの回転制限:

  • 許可される角度:0°、±22.5°、±45°、および22.5°の倍数(v2.3.0以降)
  • 単軸回転のみ
  • 例:[22.5, 0, 0]は機能しますが、[22.5, 0, 45]は部分的にしか回転しません
  • その他の角度は正しく表示されません

ボーンの回転:

  • ボーンは任意の回転角度をサポートします
  • 90°、-90°、180°、-180°のデフォルト静止位置は避けてください(予期しない挙動を引き起こす可能性があります)
  • 多軸回転がサポートされています
  • 各ボーンは個別のエンティティを作成します(パフォーマンスへの考慮事項)

パフォーマンスに関するメモ:

ボーン数はできるだけ少なく保ってください。各ボーンはMinecraftで個別のエンティティをスポーンするため、規模が大きくなるとサーバーパフォーマンスに影響する可能性があります。

どのようなアニメーションがサポートされていますか?

情報

FreeMinecraftModelsは5つのアニメーション名を自動的なランタイムステートに紐付けます:

ステートアニメーション:

  • spawn — モデル生成時に1回再生され、その後idleへ遷移します
  • idle — エンティティがほぼ静止している間ループします
  • walk — エンティティの速度が0.08を超えている間ループします
  • attack — 1回再生された後、idleに戻ります
  • deathremoveWithDeathAnimation()による削除時に1回再生されます

モデル内のそれ以外のアニメーション名はカスタムアニメーションです。自動的に発火することはありませんが、APIまたはLuaから名前を指定して再生できます。

jumpについて

JUMPAnimationStateType列挙型に存在し、walkステートもエンティティが地面を離れたときにそれを要求しますが、アニメーションマネージャにjumpステートが登録されていないため、この自動遷移は現在何も起こしません。それでも文字どおりjumpという名前のアニメーションは、自分でトリガーすれば動作します。単に他の名前と同じようにカスタムアニメーションの経路を通るだけです。

仕組み:

  • BlockBenchで上記の小文字の名前を使ってアニメーションを作成すると、FMMが対応するステートに自動バインドします
  • プラグインはインポート時に.bbmodelファイルからアニメーションのキーフレームを読み取り、ティックごとのフレームにベイクします
  • ステートアニメーションはエンティティの状態に基づいて自動的にトリガーされます
  • 開発者はModeledEntity上のplayAnimation(animationName, blend, loop)、またはLuaからcontext.prop:play_animation(name, blend, loop)を使用して、任意のアニメーションをプログラムからトリガーできます

プレイヤーディスガイズは異なります:

/fmm disguiseで使用されるモデルは独自のコントローラーを実行し、5つの名前(attackjumpsneakwalkidle)をこの優先順位で認識します。sneakjumpが意味を持つのはディスガイズだけです。idleを持たないディスガイズモデルはコンソールに警告を出力し、他に何も再生されていないときは最後のフレームで停止したままになります。プレイヤーディスガイズを参照してください。

ループモード、補間タイプ、キーフレームのタイミング、IKについてはアニメーションを参照してください。

特殊なケース:

エヴォーカーエンティティは近くのエヴォーカーの牙を検出し、攻撃アニメーションを自動的にトリガーします。

仮想ボーンとは何で、どのように機能しますか?

情報

仮想ボーンは予約名を持つ特別なボーンで、モデルに機能を追加します:

ヒットボックスボーン:

  • 名前:hitbox(この名前そのもの。大文字小文字は区別しません)
  • インタラクションゾーンとコリジョンボックスを作成します
  • 一致するx/z値でエンティティの境界を定義します
  • outliner上のトップレベルのボーンでなければなりません。別のグループの中に入れ子になったhitboxボーンは通常のボーンとして扱われます
  • ちょうど1つのキューブを含む必要があります。キューブが余分にあるとhas more than one value defining a hitbox! Only the first cube will be usedが、空のhitboxボーンではhas a hitbox bone but no hitbox cube!がログに出力されます
  • アニメーションされず、描画もされず、Bedrockのジオメトリエクスポートからも除外されます

ネームタグボーン:

  • 接頭辞:tag_
  • モデルの上にテキストを表示します
  • エンティティの名前付けに使用します
  • 必須です。 tag_ボーンを持たないモデルにはネームタグが一切存在せず、setDisplayNameを呼び出しても何も起きません。基盤となるバニラのモブは隠されているため、そちらのネームタグも表示されません。モデルに名前が表示されないのはなぜですか?を参照してください
  • このボーンにキューブは不要です。テキストディスプレイの位置を決めるアンカーにすぎず、通常は頭の上に配置します

頭部回転ボーン:

  • 接頭辞:h_
  • プレイヤー/エンティティの頭の位置に基づいて回転します
  • 頭の動きを自動的に追跡します

非表示/構造用ボーン:

  • 接頭辞:b_
  • ゲーム内で描画されることはありません
  • ジオメトリを生成せずにスケルトン階層には参加させたい、構造用・整理用・メタデータ専用のボーンに使用してください

マウントポイントボーン:

  • 接頭辞:m_
  • m_ボーンはモデル上の乗車可能な座席位置になり、MountPointManagerによって管理されます
  • 座席はアニメーションを通じてボーンに追従します
  • 複数のm_ボーンで複数の座席が作成されます
  • Bedrockのジオメトリエクスポートからは除外されます
  • 後述のマウントポイントボーンとは何ですか?を参照してください

使い方:

BlockBenchでこれらの特別な名前のいずれかを持つボーンを作成すると、プラグインが対応する機能を自動的に適用します。

トラブルシューティングFAQ

カスタムモデルの代わりに、馬鎧しか見えません。

情報

ゲーム内にカスタムモデルが表示される代わりに馬鎧しか見えない場合、問題は、FMMリソースパックを既存のリソースパックと適切にマージできていないことである可能性が高いです。

MagmaGuyはResource Pack Manager(RSPM)というプラグインを開発しており、リソースパックを自動的にマージしてくれます。Spigotからこちらでダウンロードできます。

RSPMの.jarファイルをpluginsフォルダに入れるだけで、RSPMがすべてを処理します。すべてのリソースパックをマージし、自動ホスティングして、プレイヤーがサーバーにログインしたときに配布します。

.bbmodelファイルを追加した後、モデルが見えないのはなぜですか?

情報

モデルが表示されない場合は、以下のよくある問題を確認してください:

1. リロードを忘れている

.bbmodelファイルをimportsフォルダに配置した後、/fmm reloadを実行してください。これによりモデルが変換され、リソースパックが生成されます。

2. リソースパックが適用されていない

プレイヤーがモデルを見るには、FMMリソースパックが有効になっている必要があります。

  • 生成されたパックについて~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zipを確認してください
  • 自動配布のためにResource Pack Managerをインストールしてください
  • または、server.propertiesやホスティングサービスを介して手動で配布してください

3. ファイルの場所が間違っている

手動インポート用の.bbmodelファイルは次の場所に置く必要があります:~/plugins/FreeMinecraftModels/imports/

代わりに公式コンテンツパックを使用している場合は、ファイルを手動でドロップするのではなく、/fmm setupまたは/fmm downloadallを使用してください。

4. モデルにエラーがある

/fmm reload中のエラーメッセージについてコンソールログを確認してください。よくある問題には、サポートされていない回転、サイズ超過のモデル、テクスチャの問題などがあります。

5. リソースパックのマージの問題

モデルの代わりに馬鎧が見える場合は、リソースパックが適切にマージされていません。Resource Pack Manager(RSPM)を使ってマージを自動的に処理してください。

6. モデルIDの衝突

コンソールに [FMM Models] Rejected normalized model ID collision が出ていないか確認してください。2つ以上のモデルファイルが同じIDに正規化されたため、そのすべてが拒否されています。後述のモデルがID衝突で拒否されたのはなぜですか?を参照してください。

モデルがID衝突で拒否されたのはなぜですか?

情報

FreeMinecraftModelsは、すべてのモデルファイル名をランタイムのモデルIDおよびリソースパックのファイル名として使う前に正規化します。まず小文字化し、続いて a-z0-9._- 以外のすべての文字をアンダースコアに置き換えます。

つまり、以下はすべて同じID my_table に収束します:

My Table.bbmodel
my table.bbmodel
my_table.bbmodel
MY_TABLE.bbmodel

変換が始まる前に、FMMはモデルツリー全体をスキャンしてこの衝突を検出します。衝突が見つかった場合、余分な方だけでなくすべての衝突ファイルが拒否されるため、「最後に読み込まれたものが勝つ」という予測不能な結果になることはありません。コンソールには次のように出力されます:

[FMM Models] Rejected normalized model ID collision '<id>'. These files normalize to the same ID: <paths>. Rename the files so every normalized model ID is unique; no colliding model was loaded.

対処法: 正規化後のIDが異なるようにファイル名を変更し、/fmm reload を実行してください。警告には関係するファイルの絶対パスが正確に列挙されます。

予防策: 最初から小文字とアンダースコアでモデルファイルに名前を付けてください(stone_table.bbmodel)。そうすればファイル名とモデルIDが同一になり、思いがけず他のものと正規化がぶつかることはありません。

拒否されたモデルはあらゆる場所でスキップされます。Javaパックの出力にも、Bedrockのカスタムエンティティバンドルにも含まれません。

モデルに名前が表示されないのはなぜですか?

情報

モデルに tag_ ボーンがないためです。これは、配布されたコンテンツのモブに名前が付かない最も一般的な原因です。

何が起きているか:

  • FreeMinecraftModelsは、名前が tag_ で始まるボーンに対してのみネームタグのテキストディスプレイを作成します
  • ModeledEntity.setDisplayName(...) はモデルのネームタグボーンを走査します。tag_ ボーンがなければそのリストは空なので、呼び出しは成功したうえで何もしません — エラーも警告も出ません
  • 動的モデルは基盤となるリビングエンティティをクライアントから隠すため、バニラのモブのネームタグが代わりを務めることもできません

その結果: EliteMobsのようなプラグインがボス名を正しく設定し、API呼び出しも問題なしと報告するのに、プレイヤーには名前のないモブが見えることになります。

対処法:

  1. BlockBenchでモデルを開きます
  2. ネームタグを浮かせたい位置(通常は頭のすぐ上)に tag_name という名前のボーン(グループ)を追加します
  3. キューブは不要です — 位置を決めるアンカーにすぎません
  4. 再インポートして /fmm reload を実行します

tag_ ボーンは複数あっても構いません。それぞれが同じ名前を表示する独自のテキストディスプレイを持ちます。

コンソールに nametag bone did not spawn name tag が出ている場合、ボーン自体は認識されたもののテキストディスプレイのスポーンに失敗しています — tag_ ボーンがない場合とは別の障害です。

ViaVersionによってリソースパックが正しく表示されないことがあります。

情報

ViaVersionは、特に1.21.4より低いバージョンでサーバーを実行している場合に、リソースパックで問題を引き起こすことがあります。Minecraftは1.21.4以降、リソースパックの処理方法に変更を導入しました。1.21.3のようなバージョンでサーバーを実行し、ViaVersionを使用して1.21.4クライアントを接続させている場合、これらのクライアントはFMM(FreeMinecraftModels)のカスタムモデルなど、特定のリソースパックコンテンツの表示に問題が生じることがあります。

これは、Minecraftのリソースパックシステムが1.21.4のアップデートで変更されたために発生します。

注意: これはMinecraftとViaVersionの制限であり、FreeMinecraftModels特有のものではありません。ViaVersionのプロトコル変換は、1.21.4より低いサーバーバージョンで実行している場合、リソースパックの変更を完全にはサポートしていない可能性があります。

これを解決するには、サーバーを1.21.4以降に更新することを検討してください。これにより、FMMのカスタムモデルを含む最新のリソースパック機能との互換性が向上します。

モデルがラグやパフォーマンスの問題を引き起こすのはなぜですか?

情報

BlockBenchモデル内の各ボーンは、Minecraftで個別のエンティティを作成します。多くのボーンを持つモデルはサーバーパフォーマンスに影響を与える可能性があります。

最適化のヒント:

  • モデル内のボーン数を最小限に抑える
  • スポーンするモデルの数を制限する
  • アニメーションが不要な場合は、Dynamicモデルの代わりにStaticモデルの使用を検討する
  • ボーン数の多いモデルを互いに近接して大量にスポーンさせない

技術的な説明:

FreeMinecraftModelsは各ボーンを個別のMinecraftエンティティとしてレンダリングします。50個のボーンを持つモデルは50個のエンティティをスポーンします。規模が大きくなると、これがパフォーマンスに影響します。

ベストプラクティス:

  • ボーン数を少なくしてモデルを設計する
  • 現実的なスポーン数でパフォーマンスをテストする
  • 新しいモデルを追加する際はサーバーのTPSを監視する

測定方法:

ラグを感じるエリアに立って /fmm packetdebug 20 を実行してください。次の20モデルクロックティックをサンプリングし、論理パケット/ティック、ビューアーごとのファンアウトを含む実際に配信されたパケット/ティック、最悪の単一プレイヤー、パケット種別の内訳、最も負荷の重いビューアーを報告します。これにより、コストの原因がボーン数なのか、ビューアー数なのか、その両方なのかがわかります。

組み込みのパケット最適化:

パケット側の最適化は3つの config.yml キーで制御されます。いずれも最適化された挙動がデフォルトであり、別の設定はチューニングの推奨ではなくデバッグのために存在します:

  • skipUnchangedBoneUpdates(デフォルト true)— そのティックで移動・回転・スケール変更のなかったボーンは何も送信しません。静的プロップやモデルの静止部分のコストはほぼゼロになります
  • useDeltaMetadataPackets(デフォルト true)— ティックごとのメタデータパケットは、アイテムディスプレイのブロブ全体を再シリアライズするのではなく、変化したトランスフォームだけを運びます
  • maxModelsForProximityOverride(デフォルト 25)— 10ブロック以内のモデルは通常常に表示され、ポップインを避けるため視線判定のレイトレースがスキップされます。ワールドがこの数のロード済みモデルを抱えると、そのワールドではオーバーライドが無効になり、至近距離でもオクルージョンカリングが実行されます。プレイヤーが別フロアのモデルのビューアーにされてしまう複数フロアのNPCハブでは、まずこのキーを確認してください

完全な説明は設定を参照してください。

高度な機能

Resource Pack Manager(RSPM)は必要ですか?

情報

Resource Pack Manager(RSPM)はオプションですが強く推奨されます

RSPMが行うこと:

  • 複数のプラグインからのリソースパックを自動的にマージします
  • リソースパックをホスティングします(外部ホスティング不要)
  • ログイン時にプレイヤーへパックを自動的に配布します
  • 手動のリソースパック設定を不要にします

RSPMなしの場合:

手動で以下を行う必要があります:

  • FMMリソースパックを既存のサーバーリソースパックとマージする
  • マージしたパックを外部サービスまたはserver.properties経由でホスティングする
  • パックをプレイヤーに送るようサーバーを設定する
  • 新しいモデルを追加するたびにパックを更新する

RSPMを使う理由:

「モデルの代わりに馬鎧」の問題のほとんどは、リソースパックのマージが適切でないことが原因です。RSPMはこれを自動的に処理します。

RSPMをダウンロード:https://www.spigotmc.org/resources/resource-pack-manager.118574/

FreeMinecraftModelsと同じ作者であるMagmaGuyが開発しています。

自分のプラグインでFreeMinecraftModelsを使用できますか?

情報

はい、FreeMinecraftModelsは開発者向けのAPIを提供しています。

Maven/Gradle統合:

リポジトリ:https://repo.magmaguy.com/releases

アーティファクト:

  • GroupId:com.magmaguy
  • ArtifactId:FreeMinecraftModels
  • Scope:provided(サーバーにインストールする必要があり、シェードしないでください)

主要なAPIクラス:

  • ModeledEntity(基底クラス)
  • StaticEntity
  • DynamicEntity
  • PropEntity

使用例:

StaticEntity staticEntity = StaticEntity.create(id, location);
if (staticEntity == null) {
Bukkit.getLogger().warning("Failed to create model");
return;
}
staticEntity.setRightClickCallback(...);
staticEntity.remove();

重要:

FreeMinecraftModelsを自分のプラグインにシェードしないでください。サーバーに別途インストールする必要があります。

詳細なAPIドキュメントについては、公式READMEを参照してください。

プレイヤーをカスタムモデルにディスガイズするには?

情報

/fmm disguiseコマンドは、プレイヤーの見た目を任意のカスタムモデルに変身させます。

コマンド:

/fmm disguise <modelID> [player]
/fmm undisguise [player]
/fmm disguiselist

仕組み:

  • プレイヤーを他のプレイヤーから見えなくします
  • プレイヤーの位置にカスタムモデルを重ねます
  • モデルがプレイヤーの動きに追従します
  • ロールプレイサーバーや特別なイベントに最適です

例:

/fmm disguise dragon              # 自分を変装させる
/fmm disguise dragon Steve # 別のプレイヤーを変装させる
/fmm undisguise Steve # Steveの変装を解除する
/fmm disguiselist # 現在変装中の全員を一覧表示する

要件:

  • 自分を対象とする場合:freeminecraftmodels.disguise.self(デフォルト:OP)
  • 他者を対象とする場合と/fmm disguiselistfreeminecraftmodels.disguise.others(デフォルト:OP)
  • プレイヤー名が指定されていれば、コンソールから対象指定形式を実行できます
  • modelIDはmodelsフォルダ内の有効な変換済みモデルである必要があります
  • サードパーティプラグインは公開DisguiseAPI経由でディスガイズを駆動できます

メモ:

  • プレイヤーのヒットボックスは変更されません(同じコリジョンボックス)
  • 他のプレイヤーには、あなたのプレイヤースキンの代わりにカスタムモデルが見えます
  • すでに変装中に再度ディスガイズすると、以前のディスガイズがクリーンに置き換えられます
  • 透明化は、プレイヤーの変装が解除されるまで、ミルクバケツやその他の効果除去操作を経ても持続します

配置可能なモデルアイテムを作成するには?

情報

/fmm itemifyコマンドは、プレイヤーがワールドにモデルを設置するために使用できる特別なアイテムを作成します。

コマンド:

/fmm itemify <model> <material>

パラメータ:

  • model - modelsフォルダ内の任意の有効なモデルID
  • material - 任意のMinecraftマテリアル(STICK、PAPER、DIAMONDなど)

例:

/fmm itemify lamp_post STICK

作成されるもの:

  • 金で装飾された整形済みの表示名を持つカスタムアイテム(例:「✦ Wolf ✦」)
  • アイテムを説明する説明的なロア
  • アイテムは自分のインベントリに直接追加されます
  • 右クリックでモデルをプロップとして設置します

使用例:

  • プレイヤーに建築物を装飾するためのアイテムを与える
  • 家具用のカスタム「スポーンエッグ」を作成する
  • 建築権限を与えずにモデルを配布する
  • クリエイティブ建築用のセットアップキット

要件:

  • 権限:freeminecraftmodels.*
  • プレイヤーがゲーム内にいる必要があります(コンソール不可)

モデルのヒットボックスをデバッグするには?

情報

/fmm hitbox visualizeコマンドは、パーティクルを使ってモデルのヒットボックスを可視化します。

コマンド:

/fmm hitbox visualize [duration]

パラメータ:

  • duration(オプション) - ヒットボックスを表示する時間(tick単位、デフォルト:100、最大:1200)
  • 20 tick = 1秒

例:

/fmm hitbox visualize          # 5秒間表示
/fmm hitbox visualize 200 # 10秒間表示

仕組み:

  • 自分から10ブロック以内のモデルを検索します
  • 向きのある境界ボックス(OBB)の境界をパーティクルで表示します
  • モデルとそのコリジョン境界の両方を表示します
  • ヒットボックスのサイズと回転の検証に役立ちます

使用するタイミング:

  • ヒットボックスが視覚的なモデルと一致するかのテスト
  • インタラクションの問題のデバッグ
  • ヒットボックスの回転の検証
  • クリック検出のトラブルシューティング

要件:

  • 権限:freeminecraftmodels.*

メモ: FMMのヒットボックスは、標準のMinecraft AABBとは異なり、モデルと一緒に回転します。

騎乗可能なカスタムモデルを作成できますか?

情報

はい、/fmm mountコマンドを使って騎乗可能なカスタムモデルを作成できます(実験的機能)。

コマンド:

/fmm mount <modelID>

動作内容:

  • 自分の位置に馬をスポーンします
  • 馬をカスタムモデルにディスガイズします
  • 馬を自動的に手懐けてサドルを追加します
  • すぐにあなたを馬に乗せます

例:

/fmm mount dragon

要件:

  • 権限:freeminecraftmodels.*
  • 有効なモデルID

重要なメモ:

  • この機能は実験的としてマークされています
  • 移動速度と挙動は標準の馬と同じです
  • 馬のヒットボックスは変更されません
  • 乗り物用に設計されたモデルで最も効果的に機能します

使用例:

  • ロールプレイサーバー用のカスタム乗り物
  • VIPプレイヤー用の特別な移動手段
  • アドベンチャーマップ用のユニークな騎乗可能クリーチャー

マウントポイントボーンとは何ですか?

情報

マウントポイントを使うと、特別に名付けられたボーンを使ってモデル上に騎乗位置を直接定義できます。

マウントポイントの作成方法:

Blockbenchで、接頭辞m_を付けた任意のボーンに名前を付けます(例:m_seatm_back)。各m_ボーンは、プレイヤーやエンティティが騎乗できるモデル上の座席位置になります。

仕組み:

  • マウント位置はボーンの位置に追従し、アニメーションも含みます
  • 複数のm_ボーンは複数の座席を作成します
  • プレイヤー/エンティティはAPIまたはLuaスクリプトを介してこれらの位置に騎乗できます

テスト:

/fmm mount <modelID>を使って、モデル上のマウントポイントをすばやくテストできます。

使用例:

  • 複数座席の乗り物(ボート、馬車)
  • 特定の座席位置を持つ騎乗可能クリーチャー
  • 肩乗りのペットやコンパニオン

カスタムアイテム

カスタムアイテムとは何ですか?

情報

カスタムアイテムは、兄弟YML設定ファイルにmaterial:フィールドが設定されたモデルで、保持・装備可能なアイテムに変わり、Luaスクリプティングをサポートします。

プロップ配置アイテムとの主な違い:

  • カスタムアイテムはfmm_item_id PDC(PersistentDataContainer)キーを使用します
  • プロップ配置アイテム(/fmm itemifyによるもの)はmodel_id PDCキーを使用します
  • カスタムアイテムは22個のアイテム固有のLuaスクリプトフック(装備、攻撃、消費など)をサポートします
  • カスタムアイテムは、YML設定でエンチャント、カスタム名、ロアを定義できます

カスタムアイテムの作成方法:

  1. Blockbenchで.bbmodelモデルを作成します
  2. 同じベース名を持つ兄弟YMLファイルを作成します(例:magic_sword.bbmodelの隣にmagic_sword.yml
  3. YMLのmaterial:フィールドを任意の有効なMinecraftマテリアルに設定します(例:material: DIAMOND_SWORD
  4. オプションでname:lore:enchantments:フィールドを設定します
  5. オプションでplugins/FreeMinecraftModels/scripts/にLuaスクリプトを作成し、scripts:フィールドで参照します

YML例:

isEnabled: true
material: DIAMOND_SWORD
name: "&6Flame Blade"
lore:
- "&7A legendary weapon"
- "&cBurns enemies on hit"
enchantments:
- "FIRE_ASPECT,2"
scripts:
- flame_blade.lua

カスタムアイテムの入手方法:

  • /fmm giveitem <id>freeminecraftmodels.admin権限が必要)
  • 管理者メニュー(/fmm admin)経由

メニュー

FMMはどのようなメニューを提供しますか?

情報

FreeMinecraftModelsは、コンテンツを閲覧・管理するための2つのゲーム内メニューを提供します。

プレイヤーメニュー — /fmm

  • 権限:freeminecraftmodels.menu(デフォルト:true、全プレイヤーが使用可能)
  • クラフトレシピが定義されているアイテムのみを表示します
  • アイテムをクリックすると、3x3クラフトグリッドのプレビューを含む詳細ビューが表示されます
  • プレイヤーがカスタムアイテムを発見し、そのクラフト方法を学べるようにします

管理者メニュー — /fmm admin

  • 権限:freeminecraftmodels.admin(デフォルト:OP)
  • 以下を表示する完全なコンテンツブラウザ:
    • インストール済みパッケージ
    • 未パッケージ化のモデルフォルダ
    • ルートレベルのモデル
    • カスタムアイテム(material:が設定されたモデル)
  • 管理者がアイテムを付与し、モデルをプレビューし、コンテンツを管理できるようにします

ディスプレイモデル

ディスプレイモデルとは何ですか?

情報

ディスプレイモデルを使うと、カスタムアイテムが、デフォルトのマテリアルの見た目の代わりに、プレイヤーのインベントリと手に3Dモデルを表示できます。

ディスプレイモデルのセットアップ方法:

  1. BlockbenchでFile > Export > Java Block/Itemを使って.jsonモデルファイルをエクスポートします
  2. .jsonファイルを同じベース名で.bbmodelファイルの隣に配置します(例:magic_sword.bbmodelの隣にmagic_sword.json
  3. /fmm reloadを実行します

仕組み:

  • Minecraft 1.21.4以降では、保持時やインベントリ表示時にアイテムがカスタム3Dモデルで表示されます
  • JSON内の素のテクスチャ参照は、自動的にFMM名前空間パスに書き換えられます
  • .jsonファイルが存在しない場合、アイテムはプレーンなマテリアルの見た目にフォールバックします
  • 古いサーバーバージョンはディスプレイモデルを静かに無視します

要件:

  • Minecraft 1.21.4以降を実行しているサーバー
  • モデルファイルの隣に配置された有効なBlockbench「Java Block/Item」エクスポート(.json