ワールドボスの作成
ワールドボスはリージョナルボスと呼ばれることもあります。
ワールドボスとは?
ワールドボスは、特定の場所に特定の間隔でスポーンするように設定されたカスタムボスです。これらはダンジョンで使用されるボスでもあります。ただし、このセクションでは特に、ダンジョンの外で使用するワールドボスの作成について説明します。
何のためのもの?
ワールドボスは、ルートが報われるものであると分かったうえで、プレイヤーが固定された挑戦に立ち向かうことを可能にします。
ワールドボスを作るには何が必要?
- 場所。Minecraft のアグロ範囲のため、半径約 15 ブロック(直径 30 ブロック)程度のボス部屋を推奨します。さらに、地形が WorldGuard リージョンで保護されていること(プレイヤーが罠を作れないように)、そして地形が戦闘に悪用できないことを確認してください。
- リスポーン時間。リスポーンタイマーは不可欠です。30 分未満のリスポーンタイマーは推奨しません。さもないとボスのリスポーンがイベントとしての価値を失います。1 時間はかなり良い時間ですが、ボスを 1 日に 1 回、あるいは 1 週間に 1 回だけリスポーンさせるようにしたい場合もあるでしょう。
- 逃走時間。リスポーンが長いほど、逃走時間も長くするべきです。また、逃走時間は人々が快適にボスに挑戦できるくらい長くするべきだということも考慮してください。逃走タイマーは、プレイヤーがボスを倒すために特攻するのを許したくない場合に重要です。これは必須ではなく、1 週間に及ぶような長いリスポーンのボスを作りたい場合には推奨すらされません。
- カスタムボス。ワールドボスは実際には、カスタムスポーンルールを持つカスタムボスにすぎません。レイドサイズの戦闘との相性が良いパワーを選ぶようにしてください。
- 魅力的なルート。ワールドボスの大きな魅力は、挑戦は別として、ルートです。プレイヤーがほかの場所では決して手に入れられないものを、そこから入手できるようにしてください。
- テーマ。良いリージョナルボスにはテーマがあるべきで、テーマに沿った場所とテーマに沿ったルートを備えているべきです。
ワールドボス用カスタムボス設定オプション:
これらの設定は、通常のカスタムボス設定ファイルに追加します。それらに関する詳細な wiki ページはこちらにあります。
isRegionalBoss
ボスがリージョナルボスかどうかを設定します。リージョナルボスはワールドボスの別名なので、これを true に設定したいでしょう。
| Key | Values | Default |
|---|---|---|
isRegionalBoss | Boolean | false |
例
isRegionalBoss: true
spawnLocations
スポーン位置は、ゲーム内からコマンド /em place boss <filename.yml> を使って設定するべきです。
config から手動で位置を追加することも可能ですが、あまりにも簡単に間違えてしまうため、それを試すことは推奨しません。
| Key | Values | Default |
|---|---|---|
spawnLocations | String List | none |
例
設定ファイル内の位置(上級者向け) リージョナルボスの設定ファイルは、複数のスポーン位置とリスポーンタイマーを保存することで、そのリージョナルボスのすべてのインスタンスを 1 つのファイルに保存します。
実際には、つまり次のエントリは:
spawnLocations:
- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931
- elitemobs_sewer_maze,-135.02262355317436,168.2,-153.28849346821508,-98.53906,60.750263:1609026066482
- elitemobs_sewer_maze,-70.43846307626053,168.2,-174.13499832314378,-271.24023,64.19999:1610710886530
- elitemobs_sewer_maze,-130.39762674971664,168.2,-171.67396911490718,-47.532227,51.900173:1609026066482
- elitemobs_sewer_maze,-117.12782160766056,162.2,-166.40989416757444,-71.37402,-1.4997427:1610710974882
- elitemobs_sewer_maze,-105.13138759611667,168.2,-169.85898023126538,-124.34766,41.24988:1610710945331
- elitemobs_sewer_maze,-106.21847515732084,169.2,-152.3609257554766,-170.86523,21.450315:1610537606222
異なる場所、異なるリスポーンタイマーを持つ、7 体の異なるリージョナルボスを含んでいます。
最初のリージョナルボスを見て、詳細を分解してみましょう:
- elitemobs_sewer_maze,-70.17178578884845,168.2,-173.17112099568718,-271.24023,64.19999:1610710903931
これは world,x,y,z,pitch,yaw:unixTimeStamp という形式に従っているため、ボスは elitemobs_sewer_maze というワールドの x = -70.17178578884845、y = 168.2、z = -173.17112099568718、pitch = -271.24023、yaw = 64.19999 にスポーンします。
unix タイムスタンプは、ボスがリスポーンする時刻を unix 時間で保存します。これは再起動をまたいでリスポーン時間を保存するために使用されます。それがどの時刻に対応するかを知りたい場合は、オンラインで見つかる数えきれないほどの unix 時間から実時間への変換ツールを利用できます。
リロードや再起動の後に特定のボスをリスポーンさせたい場合は、:unixTimeStamp の部分(コロンを含む)を削除するだけでよく、エントリは次のようになります: world,x,y,z,pitch,yaw
spawnCooldown
ボスがリスポーンするまでの時間を分単位で設定します。
注意: 大きなボスには長めのリスポーンを推奨します!
| Key | Values | Default |
|---|---|---|
spawnCooldown | Integer | 0 |
例
spawnCooldown: 20
timeout
ボスが自動的に逃走/デスポーンするまで、どれくらいの時間アクティブのままでいるかを分単位で設定します。0 に設定すると、ボスは決してタイムアウトしません。
注意: これはプレイヤーが快適に戦闘を完了できるくらい長くするべきです。
| Key | Values | Default |
|---|---|---|
timeout | Integer | 0 |
例
timeout: 60
倒されなかった場合、ボスが 60 分後に逃走するように設定します。
leashRadius
ワールドボスが spawnLocation から、スポーン地点にテレポートで戻されるまでに移動できる半径を設定します。これは、プレイヤーがボスを戦いやすい場所まで引きずっていくのを防ぎます。
注意: 戦闘エリアにリーシュを必要とさせる場合、20 ブロックより短いリーシュは戦いを悪化させるので避けるようにしてください。
| Key | Values | Default |
|---|---|---|
leashRadius | Double | none |
例
leashRadius: 30
escapeMessage
ボスがタイムアウトによって逃走したときにプレイヤーに送信されるメッセージを設定します。timeout および announcementPriority 設定と連動して機能します。
| Key | Values | Default |
|---|---|---|
escapeMessage | String | none |
例
escapeMessage: "&cThe World Boss has escaped!"
announcementPriority
ボスのスポーン/死亡/逃走の告知の優先度レベルを設定します。値が高いほど多くの告知が表示され、追加機能が有効になります。
| Level | Behavior |
|---|---|
0 | サイレント(告知なし、トラッキングなし) |
1 | チャットメッセージのみ(スポーン/死亡/逃走の告知) |
2 | レベル 1 + /em メニューを通じてプレイヤーがトラッキング可能 |
3 | レベル 2 + Discord 通知(設定されている場合) |
| Key | Values | Default |
|---|---|---|
announcementPriority | Integer | 0 |
例
announcementPriority: 3
ボスがチャットと Discord で告知し、プレイヤーがトラッキングできるように設定します。
isPersistent
ボスがチャンクのアンロードを生き延びるかどうかを制御します。チャンクがアンロードされたときにデスポーンするのを防ぐため、すべてのワールドボスで true に設定するべきです。
注意: 永続的なボスが多すぎる(数百体)と、パフォーマンスの問題を引き起こす可能性があります。
| Key | Values | Default |
|---|---|---|
isPersistent | Boolean | false |
例
isPersistent: true
removeAfterDeath
ワールドボスが倒された後、恒久的に削除されるかどうかを決定します。一度きりのイベントボスや、リスポーンすべきでない特別な遭遇に便利です。
false(デフォルト)の場合、ボスは spawnCooldown 期間の後にリスポーンします。
true の場合、ボスはスポーン位置リストから恒久的に削除されます。
| Key | Values | Default |
|---|---|---|
removeAfterDeath | Boolean | false |
例
removeAfterDeath: true
Transitive Blocks
onSpawnBlockStates および onRemoveBlockStates としても知られています。
これらの値により、リージョナルボスは戦闘に入ったときにブロックをスポーンさせ、削除されたとき、つまりタイムアウトによって逃走したときや死亡したときにそれらを削除できます。
これがボスにドア/エリアを開閉させたり、フェーズボスと併用すればさらに戦闘中にアリーナを変化させたりする方法です!
| Key | Values | Default |
|---|---|---|
onSpawnBlockStates | 詳細な説明を参照 | none |
| Key | Values | Default |
|---|---|---|
onRemoveBlockStates | 詳細な説明を参照 | none |
詳細な説明
すべてのブロックはスポーン位置に対して相対的です。ブロックを設定し始める前に、必ず最終的なスポーン位置を決めておいてください。
すでに大きな Transitive Block エリアを作成しており、ボスを移動させる必要があるが、Transitive Block をやり直したくない場合。その場合は、EliteScript の Teleport アクションを使って、スポーン後にボスを正しい位置に移動させることができます。それに応じてリーシュを調整する必要があることは覚えておいてください。
ブロックの設定は複雑なため、これを手動で行うことは推奨しません。次のコマンドを使って行うべきです:
- /em transitiveBlocks register
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks edit
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks registerArea
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks editArea
<regional_boss_file.yml><on_spawn/on_remove> - /em transitiveBlocks cancel
これを分解してみましょう。
/em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
最も基本的なコマンドです。これは一度実行して開始し、もう一度実行して確定するトグルです。他のすべてのコマンドと同様に、これらのブロックを ON_SPAWN 状態用に設定するのか、ON_REMOVE 状態用に設定するのかを選びます。
ON_SPAWN を登録する場合、ボスがスポーンまたはリスポーンしたときにブロックが変更されます。ON_REMOVE を登録する場合、ボスが死亡するか、カスタムボスの timeout メカニックを使ってタイムアウトしたときにブロックが変更されます。
ブロックを登録するには、この設定がオンの間に、変更したいブロックを設置または除去するだけです。
/em transitiveBlocks edit <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
すでに設定されたブロックを変更したい場合は、このコマンドを使えます。/em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE> とよく似た方法で機能します。
/em transitiveBlocks registerArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
/em transitiveBlocks register <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE> と同様にブロックを登録できますが、個別にブロックを選択する代わりに、対角線上にある 2 つの角を取得すること(worldedit / worldguard のリージョン選択と同じ)で選択できます。
安全上の理由から、リージョン選択には 500 ブロックの上限があります(デフォルト。config.yml の defaultTransitiveBlockLimiter で変更可能)。すべてのブロックが同じティックで変更されることに留意してください。大量の地形を変更する場合は、これらの変更を実行するときに大きなラグスパイクが見え始めるでしょう。
/em transitiveBlocks editArea <regional_boss_file.yml> <ON_SPAWN/ON_REMOVE>
/em transitiveBlocks edit と同じように機能しますが、エリア向けです。エリアの 500(デフォルト)ブロックの登録上限を超えるために使用できます。
/em transitiveBlocks cancel
ブロックの登録中にミスをした場合は、いつでもこのコマンドを実行して登録をキャンセルできます。その編集/登録で登録し始めた変更をすべて元に戻します。
良い大規模リージョナルボス戦を作るためのプロのヒント
-
カスタムボスのパワーが互いにどのように補い合うかを実際に考えましょう。ボスが何かを詠唱しているために、ほとんどの時間を止まったまま過ごすようなことは避けたいものです。それは実際に戦いをとても簡単にしてしまうことがあるからです。また、何か非常に特定のものを設計しているのでない限り、ボスが遠隔攻撃ばかりで近接パワーがない、あるいはその逆になることも避けたいものです。プレイテストは重要です。
-
体力 - たくさん。人々に実際に集まってボスと戦ってほしいなら、体力倍率はおそらく 10 くらいにしておくべきです。
-
ダメージ - 多すぎないように。EliteMobs はデフォルトですでに極めて致命的であり、パワーは指数関数的にさらに致命的になる傾向があります。ダメージを天井知らずに上げる代わりに、パワーを使ってボスがより強く攻撃するようにすることを検討してください。
-
悪用の隙、いたるところに。地形が悪用できないことを念入りに確認してください。人々が遠くから狙撃しようとするのを防ぐため、ボスを閉じた部屋に入れてください。矢無敵パワーは、Minecraft の Mob はチャンク何個分も離れた場所から狙撃されることに対処できないため、多くのワールドボスにとっておそらく極めて重要です。弓攻撃を許可したい場合は、弓が悪用できないことを必ず確認してください。
-
プラグインを知る。EliteMobs を攻略するための小さなコツがたくさんあります。たとえば、いくつかのパワーは盾を使うことで対抗でき、ほかのパワーは回避によって、あるいは一時的にボスから逃げることによって対抗すべきです。パワーがどのように機能し、どのように対抗されるかをよく知るほど、あなたが作るボスはより良いものになります。
完全なワールドボスの例
このガイドで取り上げたすべての設定を使用した、ワールドボス設定の完全な例を以下に示します:
isEnabled: true
entityType: ZOMBIE
name: "&cThe Zombie King"
level: 50
healthMultiplier: 10.0
damageMultiplier: 2.0
# ワールドボス固有の設定
isRegionalBoss: true
isPersistent: true
# スポーン設定
spawnLocations:
- world,100,64,100,0,0
spawnCooldown: 60
# 戦闘の境界
leashRadius: 30
timeout: 20
# メッセージと告知
spawnMessage: "&cThe Zombie King has risen!"
deathMessage: "&aThe Zombie King has been defeated by $players!"
escapeMessage: "&eThe Zombie King has escaped..."
announcementPriority: 2
# アリーナの変更
onSpawnBlockStates:
- 0,0,0,BARRIER
onRemoveBlockStates:
- 0,0,0,AIR
# ボスの機能
powers:
- zombie_reinforcements.yml
- ground_pound.yml
uniqueLootList:
- magmaguys_toothpick.yml
このボスは次のことを行います:
- 倒された後、指定された位置に 60 分ごとにスポーンします
- 倒されなかった場合、20 分後に逃走します
- スポーン/死亡/逃走をチャットで告知し、プレイヤーのトラッキングを許可します
- チャンクのアンロードを生き延びます
- スポーン時と死亡時にアリーナのブロックを変更します
- 倒されたときにユニークなルートをドロップします