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

FreeMinecraftModels

FreeMinecraftModelsは、カスタムモデルのランタイムであると同時に、開発者向けのAPIでもあります。

現在のプラグインは、単なる「importsフォルダと/fmm reload」のワークフローではなくなりました。現在のコードベースには以下が追加されています:

  • 初回セットアップフローとセットアップ完了まで表示されるログイン時のリマインダー
  • 公式モデルパックのインストールとアップデートのためのNightbreak対応セットアップメニュー
  • plugins/FreeMinecraftModels/output/FreeMinecraftModelsにある生成リソースパックフォルダ
  • plugins/FreeMinecraftModels/output/FreeMinecraftModels.zipにあるZIP圧縮パック
  • セットアップ、コンテンツ更新、スポーン、ディスガイズ、プロップ、デバッグ用の拡張コマンド
  • マウントポイントボーン -- mount_で始まるボーン名はモデル上に乗車可能な座席ポイントを作成し、プレイヤーがカスタムエンティティに騎乗できるようになります
  • カスタムディスプレイモデルJSON -- .bbmodelの隣に兄弟.jsonファイル(Blockbenchディスプレイアイテムエクスポート)を配置して、ゲーム内のアイテム外観を上書きします(1.21.4以降が必要)
  • カスタムスクリプタブルアイテム -- YML設定でmaterial:を設定したモデルは、完全なLuaスクリプティングサポートと22個のアイテムフックを持つ保持可能なカスタムアイテムになります
  • 管理者コンテンツブラウザ/fmm admin) -- 管理者がインストール済みパック、フォルダ、モデル、カスタムアイテムを閲覧するためのインベントリメニュー
  • プレイヤークラフタブルアイテムメニュー/fmm) -- すべてのクラフタブルアイテムとそのレシピを表示するインベントリメニュー。アイテムをクリックすると、矢印と出力付きの3x3グリッドが表示されます
  • プレイヤーUI API -- Luaスクリプトがプレイヤーにボスバー、アクションバー、タイトルを表示可能

ここから始めましょう

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_idcurrent_locationなどのフィールドと、play_animation(name)stop_animation()などのメソッドを持つcontext.propテーブルを受け取ります。

アイテムフック(22個)

カスタムアイテムスクリプト(YMLでmaterial:が設定されたモデル用)は以下のフックに応答できます:

フックトリガー
on_equipアイテムが装備された時(アクティブスロットに入った時)
on_unequipアイテムが装備解除された時(アクティブスロットから外れた時)
on_attack_entityプレイヤーがアイテムを持ってエンティティを攻撃した時
on_kill_entityプレイヤーがアイテムを持ってエンティティを倒した時
on_take_damageアイテム装備中にプレイヤーがダメージを受けた時
on_shield_blockプレイヤーが盾でダメージをブロックした時
on_shoot_bowプレイヤーが弓を射った時
on_projectile_hitプレイヤーが発射した射出物が何かに命中した時
on_projectile_launchプレイヤーが射出物を発射した時
on_right_clickアイテムを持って右クリックした時
on_left_clickアイテムを持って左クリックした時
on_shift_right_clickShift + 右クリックした時
on_shift_left_clickShift + 左クリックした時
on_interact_entityアイテムを持ってエンティティを右クリックした時
on_swap_handsアイテムを左右の手で入れ替えた時
on_dropプレイヤーがアイテムをドロップした時
on_break_blockアイテムを持ってブロックを破壊した時
on_consumeアイテムが消費された時(食料/ポーション)
on_item_damageアイテムが耐久値ダメージを受けた時
on_fishプレイヤーが釣り竿を使った時
on_deathアイテム装備中にプレイヤーが死亡した時
on_game_tickアイテム装備中、毎サーバーティック

アイテムスクリプトは、保持しているアイテムとそのプレイヤーに関連するフィールドとメソッドを持つcontext.itemテーブルを受け取ります。Luaスクリプトは、プレイヤーUI APIを使用してボスバー、アクションバー、タイトルを表示することもできます。

現在の注意事項

  • 現在プラグインに組み込まれている公式Nightbreak管理パックはBasic Furniture PackBetterStructures Prop PackEliteMobs Prop Packです。
  • FreeMinecraftModelsは起動時および/fmm reload実行時にリソースパック出力を再構築します。
  • ResourcePackManagerは、生成されたパックをクライアントに自動配布するための推奨方法です。