EliteMobs 用の建築
次の Wiki ページは、EliteMobs のダンジョンやアリーナを作成するために必要なプロセスを理解するのに役立ちます。
用語:
- 「ボス」 - 大規模な遭遇。大勢で戦うことを想定したもの
- 「ミニボス」 - 小規模な遭遇。通常はプレイヤー1人で倒せるもの
- 「ザコ(Fodder)」 - 比較的倒しやすい MOB
EliteMobs のダンジョンカテゴリーを理解する
Lair(隠れ家)
最小のサイズカテゴリー
Lair は通常およそ 50x50 の単一構造物で、ワールドとして配布され、たいていは1つの大きなボス遭遇を含みますが、ミニボスや一部のザコを含むものもあります。
Minidungeon(ミニダンジョン)
中規模のサイズカテゴリー
ミニダンジョンは通常およそ 100x100 または 150x150 の構造物で、複数の構造物や複数のセクションを持つ構造物であることが多いです。これらにはボスが1体、そして通常は少なくとも3体以上のミニボスがいます。さらに多くのザコもいます。
Adventure(アドベンチャー)
アドベンチャーはアドベンチャーマップ全体であり、通常はブロック単位で測定されません。これらは都市規模、あるいはそれ以上の大きさです。ボスが1体と10体以上のミニボスがおり、数十種類のユニークなザコがいて、マップ全体では通常合計数百〜数千体に達します。
Arena(アリーナ)
アリーナはウェーブ形式のサバイバルチャレンジです。約100x100の領域を出発点にできますが、実際の領域は設定した隅の座標で決まります。予定するプレイ時間に合ったウェーブ数を選んでください。負荷は稼働中のモブとその仕組みに依存し、共通の50ウェーブ制限があるわけではありません。
アリーナの設定オプション:
- アリーナの形状: アリーナは
cylindricalArena設定を使って長方形または円柱形に設定できます - プレイヤー数の制限: アリーナ参加の最小・最大プレイヤー数を設定します
- アクセス制御: 権限の要件を使ってアリーナへのアクセスを制限します
- カスタム報酬: アリーナのウェーブをクリアした際の特定の報酬を設定します
- ウェーブのカスタマイズ: 各ウェーブのウェーブ間休憩やボス構成をカスタマイズします
Instanced Dungeon(インスタンスダンジョン)
インスタンスダンジョンは作者が作成したワールドの原本を使います。EliteMobsは入場が認められたプレイヤーまたはグループごとにそのワールドを複製します。
インスタンスダンジョンは、各プレイヤーまたはグループにパーソナライズされたダンジョン体験を提供します。プレイヤーがインスタンスダンジョンに入ると、次のようになります。
- そのグループ専用に新しいワールドが作成されます
- ボスの体力はパーティ人数に応じてスケールします。2人以上のパーティでは、ボスの最大体力は
baseHealth x 0.75 x playerCountになり、サーバーのsettings.attribute.maxHealth.max(デフォルトは 2048)が上限となります。ソロのプレイヤーは、スケールされていない体力のボスと戦います - ダイナミックダンジョンでは、ボスのレベルは、プレイヤーが難易度を選ぶ前に選択したレベルに従います
- 最近そのボスを倒したプレイヤーが戦利品やスキルXPを再び得られないように、戦利品ロックアウトを設定できます
エンチャントチャレンジダンジョン: チャレンジが選ばれたエンチャント試行で使うコンテンツにはenchantmentChallenge: trueを設定します。エンチャント処理はインストール済みチャレンジを選び、結果が確定するまでプレイヤーのアイテムを預かります。チャレンジはそのプレイヤー専用で、追加参加者やパーティー入場を拒否します。
Raid(レイド)
ここでは独立したレイド用手順は説明していません。対応するインスタンスダンジョン設定で、想定するグループ人数に合わせた遭遇を作成してください。
ダンジョンの設定オプション
ダンジョンを作成する際、管理者はいくつかの設定オプションを利用できます。
以下の爆発・液体・エリトラ規則は、protect: trueのワールドに登録されます。保護を無効にすると、これらのワールド規則の登録も省略されます。
環境設定:
- ワールド環境:
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)など!
- カスタムパワーとスクリプト - LuaパワーやYAML EliteScriptで、時間指定の攻撃、条件、遭遇の仕組みを作れます。EliteMobsには属性攻撃、飛び道具のバリエーション、ボス専用の仕組み、補助機能など71のパワーがあり、68はLuaファイルです。
- トレジャーチェスト - これらはアイテムを入れたり、敵(ミミック)に変化させたりできます
- ボスフェーズ - ボスはフェーズを持つことができます。このシステムは非常に強力で、ボスはフェーズ間で、異なるエンティティタイプ、異なる変装、異なるカスタムモデルなど、何にでも変化できます。雰囲気を高めるためにフェーズ固有の BGM を設定することもできます。
- Transitive Blocks(推移ブロック) - これらは、ボスがスポーンしたり死亡したりしたときに設置されるブロックです。ボスがフェーズを変えたときにスポーンしたり消去したりすることもできます! これらを使って、非常に興味深い動的なアリーナを作ることができます。
- ワームホール - プレイヤーを別の場所へ運ぶポータルです。
styleは既定のCUBEと、ICOSAHEDRON、CRYSTAL、NONEを受け付けます。パーティクル効果やRGBカラーも設定できます。
追加のボス機能:
- ボスのマウント: ボスは、ユニークな視覚効果のためにカスタムモデルのマウントポイントを使って、他のエンティティに騎乗できます
- ボスのトレイル: ボスが移動する際に追従する視覚的なパーティクルトレイルを設定します
- ボスの挑発(Taunt): ボスが使用できる複数のランダムな戦闘メッセージを設定します(ダメージを与えたときのメッセージとダメージを受けたときのメッセージ)
- ボスの逃走メカニクス:
timeoutとescapeMessageを設定し、時間経過でボスを削除します
遭遇(エンカウンター)デザイン
戦闘エリアを設計する際は、遭遇デザインを優先すべきです。理想的には、どのパワーを使いたいか、少なくともパワーのテーマがどうあるべきか(火、雷、氷、増援、その他 EliteMobs のパワーに合うもの)についてのアイデアを持っているとよいでしょう。パワーをどうしたいかが分かれば、それに応じて戦闘エリアを設計できます。
プレイヤーがボスから離れる必要のあるパワーなら、移動できる広さを確保してください。障害物の後ろに隠れるパワーなら、建築にその障害物が必要です。こうした細部を考慮してアリーナを作ることで、遭遇を改善できます。
EliteMobs リソースパックの変更
Minecraft バージョン 1.21.4 および EliteMobs バージョン 9.1.13 の時点で、EliteMobs リソースパックは、カスタムモデルを使用するための Minecraft の新しい方式に合わせて更新されました。
EliteMobsは既定パックをplugins/EliteMobs/resource_pack/em_rsp_defaults/に保持します。起動時に同梱パックのチェックサムを.rsp_checksumと比較し、同梱パックが変わった場合やチェックサム・ディレクトリがない場合に置き換えます。編集済みファイルとは比較しないため、編集内容は再起動で残っても後の再出力で失われることがあります。独自の素材は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
- font
- equipment(装備のモデル定義)
- font(フォントとHUDの定義)
- 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"]
すべて正しく行われていれば、手にリンゴが渡され、デフォルトのリンゴモデルの代わりに自作のカスタムモデルが表示されます。