EliteMobs 用の建築
次の Wiki ページは、EliteMobs のダンジョンやアリーナを作成するために必要なプロセスを理解するのに役立ちます。
用語:
- 「ボス」 - 大規模な遭遇。大勢で戦うことを想定したもの
- 「ミニボス」 - 小規模な遭遇。通常はプレイヤー1人で倒せるもの
- 「ザコ(Fodder)」 - 比較的倒しやすい MOB
EliteMobs のダンジョンカテゴリーを理解する
Lair(隠れ家)
最小のサイズカテゴリー
Lair は通常およそ 50x50 の単一構造物で、ワールドとして配布され、たいていは1つの大きなボス遭遇を含みますが、ミニボスや一部のザコを含むものもあります。
Minidungeon(ミニダンジョン)
中規模のサイズカテゴリー
ミニダンジョンは通常およそ 100x100 または 150x150 の構造物で、複数の構造物や複数のセクションを持つ構造物であることが多いです。これらにはボスが1体、そして通常は少なくとも3体以上のミニボスがいます。さらに多くのザコもいます。
Adventure(アドベンチャー)
アドベンチャーはアドベンチャーマップ全体であり、通常はブロック単位で測定されません。これらは都市規模、あるいはそれ以上の大きさです。ボスが1体と10体以上のミニボスがおり、数十種類のユニークなザコがいて、マップ全体では通常合計数百〜数千体に達します。
Arena(アリーナ)
アリーナは EliteMobs におけるウェーブ(波)形式のサバイバルアリーナチャレンジです。これらは通常およそ 100x100 ですが、コーナー座標の設定によって任意のサイズが可能です。ウェーブはいくつでも設定できますが、パフォーマンス上の理由から通常 50 を超えることは推奨されません。
アリーナの設定オプション:
- アリーナの形状: アリーナは
cylindricalArena設定を使って長方形または円柱形に設定できます - プレイヤー数の制限: アリーナ参加の最小・最大プレイヤー数を設定します
- アクセス制御: 権限の要件を使ってアリーナへのアクセスを制限します
- カスタム報酬: アリーナのウェーブをクリアした際の特定の報酬を設定します
- ウェーブのカスタマイズ: 各ウェーブのウェーブ間休憩やボス構成をカスタマイズします
Instanced Dungeon(インスタンスダンジョン)
インスタンスダンジョンはミニダンジョンに似ていますが、インスタンス化されている点が異なります。つまり、プレイヤーまたはプレイヤーのグループがインスタンスダンジョンに行きたいと思うたびに、彼ら専用の新しいワールドが生成されます。
インスタンスダンジョンは、各プレイヤーまたはグループにパーソナライズされたダンジョン体験を提供します。プレイヤーがインスタンスダンジョンに入ると、次のようになります。
- そのグループ専用に新しいワールドが作成されます
- ボスの体力はパーティ人数に応じてスケールします。2人以上のパーティでは、ボスの最大体力は
baseHealth x 0.75 x playerCountになります。ソロのプレイヤーは、スケールされていない体力のボスと戦います - ボスのレベルはプレイヤーが選択した難易度に適応できます
- 一定の時間内での繰り返し挑戦を防ぐため、プレイヤーのロックアウトタイマーを設定できます
エンチャントチャレンジダンジョン: インスタンスダンジョンはエンチャントチャレンジとして設定することもできます。これは、アイテムのエンチャント試行がチャレンジになった場合にのみプレイヤーがアクセスできるものです。これにより、強力なアイテムをエンチャントするにはダンジョンコンテンツのクリアが必要となるという、ユニークなゲームプレイループが生まれます。
Raid(レイド)
インスタンスコンテンツ - 近日公開
ダンジョンの設定オプション
ダンジョンを作成する際、管理者はいくつかの設定オプションを利用できます。
環境設定:
- ワールド環境:
environmentフィールドを使って、ダンジョンが Normal、Nether、または End のワールド環境を使用するように設定します - 爆発の制御:
allowExplosionBlockDamageフラグを使って、ダンジョン内の爆発によるブロック破壊を有効または無効にします(デフォルトはfalse) - 液体の流れの制御:
allowLiquidFlowフラグを使って、ダンジョン内で液体が流れることができるかどうかを制御します(デフォルトはtrue) - エリトラの制御:
allowElytraフラグを使って、ダンジョン内でのエリトラ飛行を許可または禁止します(デフォルトはfalse)
プレイヤー管理:
- ルートロックアウト:
dungeonLockoutMinutesを設定して、インスタンスダンジョンのボスを倒したプレイヤーが、そのボスからルートとスキル XP を得られない時間を制御します(デフォルトは4320分/72時間。ロックアウトを無効にするには0を設定)。ダンジョンへの再入場を妨げるものではありません - プレイヤー数: インスタンスコンテンツ向けに
minPlayerCount(デフォルト1)とmaxPlayerCount(デフォルト5)を設定します - リージョンメッセージ: カスタムのプレイヤー通知用に
regionEnterMessageとregionLeaveMessageを設定します - 権限の要件:
permissionを使ってインスタンスダンジョンへのアクセスを制限します
構築方法:
- ワールドベースの建築: すべてのダンジョンは Minecraft のワールドとして配布されます。スキマティックダンジョンは EliteMobs 9.0 で削除されました —
contentType: SCHEMATIC_DUNGEONを宣言したパッケージは読み込み時に警告とともに拒否され、パッケージ内のschematicsフォルダーもインポート時に拒否されます。スキマティック風のコンテンツには代わりに BetterStructures のエリートシュラインを使用してください - パッケージのバージョン管理:
dungeonVersionを使ってコンテンツの更新を追跡し、ダンジョンのバージョンを管理します - テレポート一覧への掲載:
listedInTeleports(デフォルトはtrue)を使って、ダンジョンがダンジョンテレポーターのメニューに表示されるかどうかを制御します - BGM:
songを設定して、プレイヤーがダンジョン内にいる間にカスタムトラックを再生します
テーマ設定
EliteMobs のあらゆる構造物について最も重要なのはテーマです。テーマは、建築のデザイン、その内容、ロア(物語)、そしてボスに影響します。
例として、こちらの The North Pole を見ることができます。これはクリスマス関連のボスをスノードームの中に入れるというコンセプトで、視覚的に印象的でメカニクス的にも興味深いロケーションになりました。
もう1つの例として、The Oasis があります。これは古代エジプトのロケーションがアンデッドやミイラに侵略されているというテーマで、EliteMobs で最も人気のある建築の1つです。
戦闘ロケーション
戦闘ロケーションは、簡単に悪用できる地形を作らないようにすべきです。これは、プレイヤーが安全のために登れる柱、AI をハメ殺し(チーズ)に使える装飾物、その他そのような障害物を作らないことを意味します。一部の悪用法は必ず見つかるものであり、それほど重要ではありませんが、ボスのロケーションはこうした悪用の影響を受けにくくすべきです。
理想的なボス戦闘エリアは、比較的平坦で、障害物がなく、半径およそ 30 ブロックで、特定のボスメカニクスを攻略するためにプレイヤーが隠れなければならない柱やその他のマップ要素をいくつか含むことができます。
廊下に追加 MOB(adds)を配置する予定がある場合は、少なくとも幅 5 ブロックを目指すべきです。ミニボスのアリーナは、持っているパワーやテーマに応じて、半径 15 ブロック程度にできます。
これらは最小寸法である点に注意してください。これを超えても特に問題はありません。
EliteScript または Transitive Blocks(推移ブロック) を使って、環境ブロックを封鎖したり変更したりできることを覚えておいてください。これは、プレイヤーが特定の MOB を倒した後にのみ先へ進めるようにするための優れた方法です。
推移ブロックのコマンド
推移ブロックは手書きで書くのではなく、ゲーム内で記録します。以下はすべて elitemobs.transitiveblocks 権限が必要でプレイヤーが実行する必要があり、<type> は ON_SPAWN(ボスがスポーンしたときに設置されるブロック)または ON_REMOVE(ボスが倒されたときに設置されるブロック)のいずれかです。
| コマンド | 用途 |
|---|---|
/em transitiveBlocks register <filename> <ON_SPAWN/ON_REMOVE> | リージョナルボス用の推移ブロックを記録する |
/em transitiveBlocks registerArea <filename> <ON_SPAWN/ON_REMOVE> | 個々のブロックではなく、広い推移ブロック領域を記録する |
/em transitiveBlocks edit <filename> <ON_SPAWN/ON_REMOVE> | そのボスに対して既に記録されているブロックを編集する |
/em transitiveBlocks editArea <filename> <ON_SPAWN/ON_REMOVE> | 記録済みの推移ブロック領域を編集する |
/em transitiveBlocks cancel | 実行中の登録または編集セッションを中止する |
<filename> はブロックが属するボスファイルで、インストール済みのカスタムボスからタブ補完されます。
ON_REMOVE のブロックは、ボスが本当に倒されたとき — 戦闘で倒されたか kill コマンドで削除されたとき — に適用されます。サーバーのシャットダウン、リロード、デスポーンのタイムアウト、アリーナのリセットといった他の理由でボスがいなくなったときには意図的に適用されないため、再起動によってボスの構造物が誤って消された状態でワールドが保存されることはありません。
EliteMobs には、プレイヤーがボスメカニクスを悪用するのを防ぐためのアンチ悪用システムや戦闘タグ機能が含まれており、よく設計された戦闘ロケーションを補完します。
EliteMobs 向けの設計
EliteMobs をよく知れば知るほど、それに向けて作るコンテンツも良くなります。次は、ダンジョン向けに面白いアイデアを思いつくのに役立つ EliteMobs の機能の一覧です。
- リージョナルボス - ダンジョン内のすべての生物はリージョナルボスです。つまり、リーシュ(一定距離を超えるとスポーン地点に引き戻される)を持ち、タイマーでリスポーンします。
- ボスの作成 - ボスができること・なれるものすべてを示します。例えば変装、体力倍率、移動できるかどうかとその速度、挑発(taunt)など!
- EliteScript - EliteScript は、想像力だけが限界の忘れられない遭遇を作る際に使える最も強力なツールです。EliteMobs には、属性攻撃、各種飛び道具、ボス専用メカニクス、ユーティリティ系パワーなど、50種類以上の組み込みパワーが含まれています。
- トレジャーチェスト - これらはアイテムを入れたり、敵(ミミック)に変化させたりできます
- ボスフェーズ - ボスはフェーズを持つことができます。このシステムは非常に強力で、ボスはフェーズ間で、異なるエンティティタイプ、異なる変装、異なるカスタムモデルなど、何にでも変化できます。雰囲気を高めるためにフェーズ固有の BGM を設定することもできます。
- Transitive Blocks(推移ブロック) - これらは、ボスがスポーンしたり死亡したりしたときに設置されるブロックです。ボスがフェーズを変えたときにスポーンしたり消去したりすることもできます! これらを使って、非常に興味深い動的なアリーナを作ることができます。
- ワームホール - プレイヤーを他の場所にテレポートできるかっこいいポータルです。カスタマイズ可能なパーティクル効果と RGB カラーで、複数のビジュアルスタイル(CRYSTAL、ICOSAHEDRON、CUBE)をサポートします。
追加のボス機能:
- ボスのマウント: ボスは、ユニークな視覚効果のためにカスタムモデルのマウントポイントを使って、他のエンティティに騎乗できます
- ボスのトレイル: ボスが移動する際に追従する視覚的なパーティクルトレイルを設定します
- ボスの挑発(Taunt): ボスが使用できる複数のランダムな戦闘メッセージを設定します(ダメージを与えたときのメッセージとダメージを受けたときのメッセージ)
- ボスの逃走メカニクス: ボスが戦闘から逃走できる条件を設定します
遭遇(エンカウンター)デザイン
戦闘エリアを設計する際は、遭遇デザインを優先すべきです。理想的には、どのパワーを使いたいか、少なくともパワーのテーマがどうあるべきか(火、雷、氷、増援、その他 EliteMobs のパワーに合うもの)についてのアイデアを持っているとよいでしょう。パワーをどうしたいかが分かれば、それに応じて戦闘エリアを設計できます。
ボスがプレイヤーから逃げる必要があるパワーを持っている場合、エリアはそれに対応できるだけの大きさが必要です。障害物の後ろに隠れなければならないパワーがある場合、その構造物にはそのような障害物が必要です。これらのアリーナの建築には多くの細かい要素が関わってくるため、考慮すればするほど遭遇は良くなります。
EliteMobs リソースパックの変更
Minecraft バージョン 1.21.4 および EliteMobs バージョン 9.1.13 の時点で、EliteMobs リソースパックは、カスタムモデルを使用するための Minecraft の新しい方式に合わせて更新されました。
EliteMobs は起動のたびに、デフォルトのパックを plugins/EliteMobs/resource_pack/em_rsp_defaults/ へ書き出します。このフォルダーを直接編集しないでください。EliteMobs は起動時に jar 内のコピーのチェックサムを取り、両者が異なると常にこのフォルダーを削除して再書き出しするため、加えた編集は失われます。別の場所へコピーするか、変更は resource_pack/ 配下に自分のパックとして配布してください。
パックの構造は次のとおりです。
em_rsp_defaults
- assets
- elitemobs
- items
- このディレクトリには、Minecraft が使用できるカスタムモデルを定義する JSON ファイルが含まれています。実際のモデルは
modelsフォルダーに保存されています。 - サブディレクトリ:
- coins
- elitescroll
- gear
- ui
- このディレクトリには、Minecraft が使用できるカスタムモデルを定義する JSON ファイルが含まれています。実際のモデルは
- models
- このフォルダーには、JSON ファイルとして実際のモデルファイルが含まれています。
- サブディレクトリ:
- coins
- elitescroll
- gear
- ui
- textures
- このフォルダーには、モデルで使用されるものを含むすべてのテクスチャが保存されています。
- サブディレクトリ:
- coins
- elitescroll
- entity
- gui
- items(モデル固有のテクスチャが保存される場所)
- ui
- equipment(装備のモデル定義)
- rspm_bedrock_pack(ResourcePackManager 経由で Bedrock 用のコンパニオンパックを構築するために使われるアセット)
- items
- minecraft
- atlases
- font
- models
- item(Minecraft のどのアイテムがカスタムモデルを使用すべきかを指定する JSON ファイルが含まれる)
- textures
- sounds
- custom(カスタムサウンドファイルを保存)
- elitemobs
assets/elitemobs/items/coins/ フォルダー内の JSON ファイルがどのように構成され、何をするのかを分解してみましょう。
{
"model": {
"type": "minecraft:model",
"model": "elitemobs:coins/coin1"
}
}
目的: この JSON ファイルは、これがモデルであることを Minecraft に伝え、モデルのタイプを指定し、モデルファイルの場所を示します。
主要なフィールド:
type: minecraft:model
これは、ファイルがモデルタイプを表していることを指定します。
model: elitemobs:coins/coin1
これは、リソースパック内のモデルの場所を指し示します。
パスの詳細:
elitemobs: は、assets ディレクトリ内の elitemobs フォルダーを探すよう Minecraft に指示します。
coins/coin1 は、サブフォルダーとモデルファイル名を指定します。
参照されているモデルファイルへのフルパスは次のとおりです。
assets/elitemobs/models/coins/coin1.json
カスタムモデルが正しく機能しているかどうかをテストする良い方法は、次のコマンドを使うことです。
/minecraft:give @p apple[item_model="elitemobs:coins/coin1"]
仕組み:
このコマンドは、elitemobs:coins/coin1 モデルを使用するリンゴをあなたに与えます。リソースパックが正しく設定されていれば、リンゴのアイテムにカスタムコインモデルが適用されているのが見えるはずです。
自作のカスタムモデルのテスト: リソースパックに自作のカスタムモデルを追加した場合は、次の手順でテストしてください。
-
モデル JSON の作成:
itemsディレクトリ内の適切なサブフォルダーに JSON ファイルを配置します。 例:assets/elitemobs/items/mymodel/myawesomemodel.json -
モデルファイルの追加: 対応するモデルファイル(
myawesomemodel.json)を、同じサブフォルダー内のmodelsフォルダーに追加します。 例:assets/elitemobs/models/mymodel/myawesomemodel.json -
テクスチャの追加: モデル用のテクスチャファイルを
texturesフォルダーに追加します。 例:assets/elitemobs/textures/items/myawesomemodel.png
すべての設定が完了したら、次のコマンドを使ってモデルをテストします。
/minecraft:give @p apple[item_model="elitemobs:mymodel/myawesomemodel"]
すべて正しく行われていれば、手にリンゴが渡され、デフォルトのリンゴモデルの代わりに自作のカスタムモデルが表示されます。