FreeMinecraftModels
FreeMinecraftModelsは、カスタムモデルのランタイムであると同時に、開発者向けのAPIでもあります。
プラグインには次の機能があります:
- 初回セットアップフローと、セットアップ完了とマークされるまで表示されるログイン時のリマインダー
- 公式モデルパックのインストールとアップデートのためのNightbreak対応セットアップメニュー
plugins/FreeMinecraftModels/output/FreeMinecraftModelsに生成されるリソースパックフォルダplugins/FreeMinecraftModels/output/FreeMinecraftModels.zipにあるZIP圧縮済みパック成果物- セットアップ、コンテンツ更新、スポーン、ディスガイズ、プロップ、デバッグのための拡張されたコマンド体系
- マウントポイントボーン — 名前が
m_で始まるボーンは、モデル上に乗車可能な座席ポイントを作成し、プレイヤーがカスタムエンティティに騎乗できるようにします - カスタムディスプレイモデルJSON —
.bbmodelの隣に兄弟.jsonファイル(Blockbenchのディスプレイアイテムエクスポート)を配置して、ゲーム内のアイテム外観を上書きします(1.21.4以降が必要) - カスタムアイテムと魔法の武器 — 名前空間付きエンチャントを使う手持ちモデルと、作者が定義したワンドや杖
- Blockbenchパーティクル — モデルのアニメーションに含まれるパーティクルのキーフレームが、カスタムエンティティ、プロップ、手持ちアイテムで、JavaとBedrockの両方のプレイヤー向けに再生されます。パーティクルを参照してください
- 管理者コンテンツブラウザ(
/fmm admin) — 読み込み済みモデルと正常に登録されたカスタムアイテムを、有効なパックまたはフォルダごとに表示するメニュー - プレイヤー用クラフトメニュー(
/fmm) — 登録済みのプロップ製作レシピを3x3グリッドと完成品で表示します。レシピが登録されていない項目は表示されません - プレイヤーディスガイズシステム —
/fmm disguise <model> [player]、/fmm undisguise [player]、/fmm disguiselist、およびサードパーティプラグイン用の公開DisguiseAPI - 家具ショップ — Vaultを使う任意機能の
/fmm shopで、プロップ設置用の紙アイテムを販売します。レシピごとにshopEnabled/shopPriceで設定でき、レシピ登録を無効にしても有効な販売項目は残せます - プレイヤーUI API — Luaスクリプトはプレイヤーにボスバー、アクションバー、タイトルを表示できます
- LocationAPI — サードパーティプラグインがダンジョン検出器と保護プロバイダを登録でき、これがFMMのLua
em.location.is_in_dungeonおよびem.location.is_protected述語と、保護リージョンでのプロップ設置チェックを駆動します - ゲーム内変更履歴 — 未読のFreeMinecraftModelsリリースノートがある場合、管理者は参加時に通知され、
/freeminecraftmodelschangelogで内容を確認できます - コンテンツ修復 —
/fmm forcereinstallcontent <package|all>は、パックのファイルが破損または欠落している場合に備えて、名目上は最新のコンテンツを再ダウンロードします - 再起動不要のプラグイン更新 —
/fmm applypluginupdateまたはnightbreak.applyPluginUpdatesWithoutRestart設定により、サーバーの稼働中にダウンロード済みのプラグインjarを入れ替えます。設定を参照してください - フィルミックモード —
/fmm filmic on|offまたはfilmicModeにより、ReplayModでの録画用に、各プレイヤーの読み込み済みチャンクにあるすべてのロード済みモデルを、視界外であってもそのプレイヤーに送信します。設定を参照してください
FreeMinecraftModelsはapi-version: 1.21.4を宣言しているため、Minecraft 1.21.4が最低サポートサーバーバージョンです。
ここから始めましょう
Luaスクリプティング
FreeMinecraftModelsでは、MagmaCore 2.0のスクリプトエンジンを使ってプロップ用のLuaスクリプトを実行できます。スクリプトはplugins/FreeMinecraftModels/scripts/に配置します。
有効なプロップフック(8個)
プロップスクリプトは以下のフックに応答できます:
| フック | トリガー |
|---|---|
on_spawn | プロップがワールドにスポーンされたとき、またはチャンクとともに再び読み込まれたとき |
on_game_tick | プロップが生存している間、毎ゲームティック |
on_zone_enter | プレイヤーがスクリプトで作成した監視ゾーンに入ったとき |
on_zone_leave | プレイヤーがスクリプトで作成した監視ゾーンから出たとき |
on_destroy | プロップが完全に削除されたとき(チャンクのアンロードやリロードでは呼ばれません) |
on_left_click | プレイヤーがプロップを左クリックしたとき |
on_right_click | プレイヤーがプロップを右クリックしたとき |
on_projectile_hit | 投射物がプロップに当たったとき |
プロップスクリプトは、model_idやcurrent_locationなどのフィールド、およびplay_animation(name)やstop_animation()などのメソッドを持つcontext.propテーブルを受け取ります。
アイテムの効果
装備アイテムのLuaスクリプトは廃止されました。手持ちアイテムには作者が定義したエンチャントを、ワンドや杖には魔法の武器の定義を使用します。手持ちアイテムの定義にscripts:を追加しないでください。
現在のメモ
- プラグインに組み込まれているNightbreak管理の公式パック:
Basic Furniture Pack、BetterStructures Prop Pack、EliteMobs Prop Pack、Craftenmine's Weapons Item Pack、Craftenmine Tools Item Pack。 - 完全な初期化に成功するとリソースパックを再生成し、依存プラグインがモデルを再接続できるよう40ティック後に
FmmReloadedEventを予定します。準備段階で再読み込みが拒否された場合は、稼働中の状態を維持します。 - ResourcePackManagerは生成したパックを自動配布できます。出力ファイルと実際のクライアントでの受け入れを確認してください。セットアップ完了やインストール済みの表示だけでは配布の成功は確認できません。