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_idやcurrent_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_click | Shift + 右クリックした時 |
on_shift_left_click | Shift + 左クリックした時 |
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 Pack、BetterStructures Prop Pack、EliteMobs Prop Packです。 - FreeMinecraftModelsは起動時および
/fmm reload実行時にリソースパック出力を再構築します。 - ResourcePackManagerは、生成されたパックをクライアントに自動配布するための推奨方法です。