カスタムモデル
EliteMobs は Model Engine と FreeMineCraftModels を通じてカスタムモデルをサポートしています。
はじめに
EliteMobs の観点からは、カスタムモデルシステムは非常にシンプルです。管理者がやるべきことは、どのカスタムモデルを使用するかを指示する行を NPC またはカスタムボスの設定ファイルに追加するだけだからです。しかし、このシステムを完全に機能させるには、Model Engine と Minecraft で正しい手順を踏む必要があり、これらはそれほど簡単に取りかかれるものではありません。
このガイドは、Model Engine と Minecraft とのインターフェイスに関しては詳しく説明します。Blockbench を使ってカスタムボスを作成する方法は説明しませんし、Model Engine がどのように機能するかについても詳しく説明しません。それらの方法に関するガイドはすでにほかにたくさんありますし、それらのシステムについてもっと学びたい場合は、それらのドキュメントを直接見たほうがよいでしょう。
FreeMineCraft Models
FMM を使ってモデルを動作させる方法を学びたい場合は、こちらの wiki ページを確認して詳しく学べます。
Bedrock(Geyser)対応
Bedrock のプレイヤー(Geyser/Floodgate を通じて接続)がカスタムモデルを見ることができるかどうかは、EliteMobs ではなく、完全にあなたのモデルプラグイン(ModelEngine または FreeMinecraftModels)とリソースパックのセットアップに依存します。EliteMobs は Bedrock クライアントを検出しますが、その情報はメニューの描画やネームタグの配置などに使用するのであって、別の Bedrock 互換モデルを生成したり提供したりはしません。Bedrock/Geyser のモデルサポートについては、あなたのモデルプラグインのドキュメントを参照してください。
LibsDisguises連携
EliteMobs はカスタムモデルの代替として LibsDisguises もサポートしています。カスタムモデルが設定されていない場合、EliteMobs は LibsDisguises を使ってエンティティの外見を変更できます。この連携は名前の可視性の同期を自動的に処理します。
カスタムモデルの代わりに LibsDisguises を使用するには、customModel フィールドを指定せずに、ボス/NPC の変装設定を行います。
スクリプトアイテムモデル(FMM)
EliteMobs のカスタムアイテムは、高度なモデル + Lua スクリプトの動作のために FreeMinecraftModels のスクリプトアイテムシステムを使用できます。これは静的なカスタムモデルを超えるものです。スクリプトアイテムは、Lua スクリプトを通じて、装備、攻撃、右クリック、その他多くのアイテムイベントに反応できます(FMM は合計 22 個のアイテムスクリプトフックを公開しています)。
これを使用するには、カスタムアイテム設定の scriptedItem フィールドを FMM のアイテム ID に設定します。EliteMobs は名前、ロア、エンチャント、レベルを処理し、FMM が 3D モデルとスクリプトの動作を提供します。
# EliteMobs カスタムアイテム設定の例
material: IRON_SWORD
name: "&cFlame Blade"
enchantments:
- "FIRE_ASPECT,2"
scalability: scalable
scriptedItem: flame_blade
アイテムスクリプトの書き方については FMM Lua はじめに ガイドを、開発者向けの統合の詳細については FMM API ガイドを参照してください。
最低要件
EliteMobs、Model Engine R3.0.0* 以降 または FreeMinecraftModels、Blockbench**、そして Minecraft リソースパック。
* このプラグインにはさらなる依存関係があるかもしれません。それらの側のドキュメントを確認してください。
** カスタムモデルの作成と編集に必要です。コンテンツを変更せずにインストールするだけなら不要です。
ModelEngine と FreeMinecraftModels の両方がインストールされている場合、EliteMobs はデフォルトで FreeMinecraftModels を使用します。同時にアクティブになるカスタムモデルプラグインは 1 つだけです。
カスタムモデルを手動で設定する
注意: このガイドは、すでに有効なカスタムモデルを持っていることを前提としています。これらは Blockbench のファイル形式(.bbmodel)で提供されます。
EliteMobs は NPC とカスタムボスにカスタムモデルを使用できます。これを行うプロセスは両者で同じであり、次のとおりです:
ステップ1. EliteMobs設定を行う
変更したいカスタムボスまたは NPC の設定ファイルに移動し、次の行を追加します:
customModel: modelname
modelname をあなたのモデルの名前に置き換えてください。名前は、使用しているカスタムモデルファイルの名前です。例として、Test Boss のカスタムモデルファイルは showcase_boss.bbmodel です。したがって、設定オプションは次のようになります
customModel: showcase_boss
EliteMobs についてはこれで完了です! ここからが少しややこしくなります。
ステップ2. Model Engineデータの生成
注意: 疑問や問題がある場合は、こちらの Model Engine wiki を参照してください。
- カスタムモデルの Blockbench ファイル(
.bbmodel)を、ディレクトリ(yourServer)/plugins/ModelEngine/blueprintsに入れます。 - コマンド
/meg reloadを実行します。すべてが正しく機能した場合、[Model Engine] X models loadedというメッセージが表示されるはずです。ここでxは登録したモデルの数です。
ステップ3. リソースパックの配布
サーバーにダウンロードを管理させたい場合、これがおそらく最もややこしい部分です。自動配布を検討する前に、クライアントにリソースパックを入れた状態でシステムが機能するかどうかを確認してみてください!
- ディレクトリ
(yourServer)/plugins/ModelEngine/resource packに移動し、そのデータを使ってリソースパックを作成するか、そこにあるassetsフォルダをあなたのリソースパックのassetsに追加します - リソースパックをプレイヤーに配布します。リソースパックを持っているプレイヤーだけがカスタムモデルを見ることができます。それ以外の全員には非常に奇妙で壊れたように見えます。これらを多用するつもりなら、リソースパックの使用を強制したいかもしれません。
- (任意)プレイヤーがログイン時にリソースパックをダウンロードできるようにするには、ファイルをどこかオンラインでホストし、server.properties の
resource-pack=フィールドをそのアドレスを指すように変更する必要があります。* - (任意)リソースパックを変更している場合は、
resource-pack-sha1=オプションを使用して、サーバーがプレイヤーのリソースパックを更新する必要があるかどうかをチェックできるようにしたいでしょう。この値を生成するには、リソースパックを http://onlinemd5.com/ にアップロードし、必ず SHA1 オプションを選んでください。リソースパックを更新するたびにこれを行う必要があります。さもないとユーザーは更新を受け取れません。* - (任意)プレイヤーにリソースパックの使用を強制するには、server.properties で
require-resource-pack=trueオプションを使用します。*
- (任意)プレイヤーがログイン時にリソースパックをダウンロードできるようにするには、ファイルをどこかオンラインでホストし、server.properties の
server.properties を変更した場合は、再起動する必要があります!
* 注意: これらの手順で解決しない場合に、これを機能させる手助けをしてくれるガイドがオンラインにたくさんあります。
リソースパックの統合
リソースパックを統合する必要がある場合は、手動で行うことができます。ただし、リソースパックを統合するには merge.elmakers のようなオンラインツールを使用することを推奨します。
ステップ4. うまくいくことを祈る
すべてが正しく行われたと仮定すると、ボスや NPC にカスタムモデルが見えるようになっているはずです。次のコマンドでスポーンさせることができます:
- カスタムボス:
/em spawn boss filename.yml - NPC:
/em place npc filename.yml
その後、コマンド /em remove で削除できます。
EliteMobs用にカスタムモデルを作成・適応させる
EliteMobs は Model Engine が有効とみなすあらゆるモデルを使用できるため、それでできないことはほとんどありません。
しかし、アニメーションに関しては、ボスがアニメーションを使用できることを保証するために、特定の名前をアニメーションに使用することが必要です。
これらのアニメーション名は、Blockbench のアニメーションタブで設定するものです。いつでも名前を変更できるので、既存のあらゆるモデルを EliteMobs で動作するように後付けできます。
アニメーション
このセクションはまだ拡充中であることに注意してください。このシステムはまだ非常に新しいためです。機能リクエストが寄せられるにつれて、さらに追加されていきます。
idle
idle は、戦闘中でなく移動もしていないエンティティのアニメーション名です。EliteMobs はモデルを idle 状態で初期化しますが、ModelEngine の組み込み idle アニメーションシステムを上書きしません。モデルは ModelEngine/FMM のデフォルトの動作を通じて、このアニメーションを自動的に使用します。
walk
walk は、移動しているエンティティのアニメーション名です。EliteMobs はモデルを walk 状態で初期化しますが、ModelEngine の組み込み walk アニメーションシステムを上書きしません。モデルは ModelEngine/FMM のデフォルトの動作を通じて、このアニメーションを自動的に使用します。
attack
攻撃アニメーションには 3 種類あります:
attack
attack は、ボスが攻撃するときの正しい汎用アニメーション名です。
attack_melee
attack_melee は、カスタムボスがバニラの Minecraft の近接攻撃を使ってエンティティを攻撃するときに行われる攻撃の正しいアニメーション名です。attack を上書きします。アニメーションはダメージが与えられた後に再生されることに注意してください。残念ながらこれは現時点での制限です。そのため、アニメーションは非常に速くするようにしてください。
attack_ranged
attack_ranged は、カスタムボスが発射物エンティティをスポーンさせるときに行われる攻撃の正しいアニメーション名です。attack を上書きします。アニメーションは発射物が発射された後に再生されることに注意してください。残念ながらこれは現時点での制限です。そのため、アニメーションは非常に速くするようにしてください。
アニメーション・フォールバックシステム
EliteMobs は攻撃アニメーションにフォールバックシステムを使用します:
attack_meleeが定義されていない場合、attackにフォールバックしますattack_rangedが定義されていない場合、attackにフォールバックしますattackが定義されていない場合、アニメーションは再生されません
これにより、すべての攻撃タイプに対して機能する単一の攻撃アニメーションを作成することも、近接攻撃と遠隔攻撃用に特化したアニメーションを作成することもできます。
damaged
damaged アニメーションは現在実装されていません。この機能は将来のリリースで予定されています。モデルは攻撃されたときに damaged アニメーションを自動的に再生しません。
death
death は、死亡アニメーションの正しいアニメーション名です。EliteMobs は Model Engine が使用するデフォルトの idle アニメーションシステムを変更しません。
powers
パワーアニメーションはまだ実装されていません。この機能は将来のリリースで予定されています。
注意: このセクションはまだ開発中です。以下は予定されている機能です。
EliteMobs のすべてのパワーにアニメーションを割り当てることができます。アニメーションは常にパワーが発動したときに開始され、現時点ではパワーの使用中にそれ以上のトリガーは提供されません。無敵などの一部のパワーは、トリガーがなくボスの単なる受動的なプロパティであるため、何もしません。
パワーにアニメーションを割り当てるには、アニメーションを elitemobs のパワーファイルと同じ名前にする必要があります。
例として、zombie necronomicon パワーにアニメーションを追加するには、アニメーションを zombie_necronomicon.yml という名前にする必要があります。パワーが発動するとすぐに再生が始まり、ループに設定されていない場合はアニメーションが終了したとき、またはパワーが完了したときに終了します。
ダンジョンからカスタムモデルをインポートする
ステップ1. 通常のインポート
カスタムモデルを含むダンジョンパッケージャーの zip フォルダをインポートすると、カスタムモデルは自動的に (yourServer)/plugins/ModelEngine/blueprints に移動され、Model Engine が自動的にリロードして、関連するリソースパックと Model Engine ファイルを生成します。
ステップ2. リソースパック
EliteMobs は起動時に、組み込みのリソースパックファイルを (yourServer)/plugins/EliteMobs/resource_pack フォルダに自動的にエクスポートします。このエクスポートは不要なコピーを避けるためにチェックサム比較を使用するので、ファイルはプラグインのバージョンが変わったときにのみ更新されます。
これらのリソースパックファイルを、Model Engine のリソースパックファイルと統合し、統合したリソースパックをプレイヤーに配布する必要があります。リソースパックを持っているプレイヤーだけがカスタムモデルを見ることができます。
トラブルシューティング
よくある問題:
-
モデルが見えない:
/meg reloadでモデルが読み込まれていることを確認する- リソースパックがクライアントにインストールされていることを確認する
- customModel の名前が .bbmodel のファイル名(拡張子なし)と一致していることを確認する
-
アニメーションが再生されない:
- Blockbench のアニメーション名が、ドキュメントに記載された名前と正確に一致していることを確認する
- 一度だけ再生すべきアニメーションがループに設定されていないことを確認する
- Model Engine のコマンドを使って個々のアニメーションをテストする
-
両方のプラグインがインストールされている:
- 両方が存在する場合、EliteMobs は FreeMinecraftModels を使用します
- ModelEngine を強制するには、FreeMinecraftModels をアンインストールしてください