メインコンテンツまでスキップ

スポーンの作成

webapp_banner.jpg

カスタムスポーンとは?​

カスタムスポーンは、イベントとグローバル援軍が、そのイベントのボスをどのように、どこで、いつスポーンさせるべきかを設定するために使用します。

イベントとグローバル援軍は、使用するスポーンのファイル名を記述することで、どのスポーンを使用するかを設定します。

カスタムスポーンの作成

カスタムスポーンは customspawns フォルダに入れます。1 つのカスタムスポーンを複数のイベントで同時に使用できるため、イベントごとに 1 つ作成する必要はありません。

カスタムスポーンの例を示します:

isEnabled: true
validWorldEnvironments:
- NORMAL
- CUSTOM
bypassWorldGuard: false
isSurfaceSpawn: true

どこでもスポーンの作成​

どこでも発生できるスポーンを作成するには、設定を次のようにする必要があります:

isEnabled: true
canSpawnInLight: true

光の制限を解除し、独自のワールド・時刻・月相フィルターを追加しない設定です。有効なワールドの一覧、既定の Y 範囲、近くの適格なプレイヤー、読み込み済みチャンク、保護フラグ、以下の配置チェックは引き続き適用されます。

より細かくカスタマイズしたスポーンの作成に興味がある場合は、以下を読み進めてください。

値​


isEnabled​

スポーンが有効かどうかを設定します。

キー値デフォルト
isEnabledBooleantrue
例
isEnabled: true

lowestYLevel​

最小 Y 座標を設定します。既定値 0 は Y が負の洞窟を除外します。地下探索を深い洞窟まで許可するには -64 などの負の値を使います。初期 Y 座標の抽選範囲や上方向探索の内部上限は変わりません。

キー値デフォルト
lowestYLevelInteger0
例
lowestYLevel: 0

highestYLevel​

使用する最も高い Y レベル(マップ高度)を設定します。

キー値デフォルト
highestYLevelInteger320
例
highestYLevel: 320

validWorlds​

時間制イベントを含む通常のプレイヤー選択でワールドを絞り込みます。省略すると独自の制限を追加しませんが、ValidWorlds.yml などの適格性チェックは残ります。グローバル援軍は召喚者のワールドから直接プレイヤーを選ぶため、このフィルターを適用しません。

キー値デフォルト
validWorldsString Listなし
例
validWorlds:
- WORLD
- FUN_LAND

すべてのワールドを有効にしたい場合は、この設定を使わないか、次のように記述します:

validWorlds: []

validWorldEnvironments​

通常のプレイヤー選択でワールド環境を絞り込みます。省略すると環境の制限を追加しません。グローバル援軍は召喚者のワールドから直接プレイヤーを選ぶため、このフィルターを適用しません。

キー値デフォルト
validWorldEnvironmentsEnvironment Listなし
例
validWorldEnvironments:
- NORMAL
- NETHER

すべての環境を有効にしたい場合は、この設定を使わないか、次のように記述します:

validWorldEnvironments: []

validBiomesV2​

カスタムスポーンが発生できるバイオームを設定します。省略するか空のリストにすると、バイオームの制限は追加されません。 この設定は EM の古いバージョンでは validBiomes と呼ばれていました。

各エントリーはバイオームキーです。plains や DEEP_OCEAN のように名前空間のない名前は minecraft:<name> として読み取られ、大文字と小文字は区別されません。登録されていないバイオームのエントリーが 1 つでもあると、EliteMobs は警告をログに出力してスポーンファイル全体を無効にするため、それを使うイベントやグローバル援軍はスポーンできなくなります。

バイオームは、EliteMobs が最終的な Y レベルを決定する前に、ランダムに抽出した候補地点で読み取られます。スポーン位置の選ばれ方を参照してください。

キー値デフォルト
validBiomesV2Biome Listなし
例
validBiomesV2:
- minecraft:plains
- desert

earliestTime​

スポーン可能な最も早いゲーム内時刻を設定します。時間範囲には両端を含みます。日付をまたぐ範囲にはできません。earliestTime が latestTime より大きい場合、スポーンは発生しません。

位置が見つかると、EliteMobs は毎 tick earliestTime、latestTime、moonPhase を確認し、条件が合うまでその位置で待機します。待機後にプレイヤーとの距離、光、チャンクの読み込み状態、WorldGuard を再確認することはありません。最終ゾンビテストとピースバナーチェックは、ボスの配置前に実行されます。

キー値デフォルト
earliestTimeLong0
例
earliestTime: 0

latestTime​

スポーン可能な最後のゲーム内時刻を、その時刻を含めて設定します。earliestTime 以上にしてください。

キー値デフォルト
latestTimeLong24000
例
latestTime: 24000

moonPhase​

カスタムスポーンが発生するために必要な月の満ち欠けの段階を設定します。

キー値デフォルト
moonPhaseSpecial [1]なし
例
moonPhase: FULL_MOON

Special [1]

テーブルを展開
月相プレビュー
NEW_MOON🌑
WAXING_CRESCENT🌒
FIRST_QUARTER🌓
WAXING_GIBBOUS🌔
FULL_MOON🌕
WANING_GIBBOUS🌖
WANING_CRESCENT🌘
LAST_QUARTER🌗

bypassWorldGuard​

カスタムスポーンが WorldGuard などの保護システムを回避するようにすることを意図した項目です。

この設定は現在何も行いません。 EliteMobs はスポーンファイルからこのキーを読み取りますが、それに基づいて動作することは一度もないため、ここに何を設定しても WorldGuard のフラグは常にチェックされます。保護されたリージョン内でスポーンを発生させたい場合は、代わりにそのリージョンに該当する WorldGuard のフラグを設定してください。

キー値デフォルト
bypassWorldGuardBooleanfalse

canSpawnInLight​

位置選択時の光チェックを制御します。false では、空からの光を含むブロックの合成光レベルが 8 以下である必要があります。true ではこのチェックを省略します。

キー値デフォルト
canSpawnInLightBooleanfalse
例
canSpawnInLight: false

isSurfaceSpawn​

カスタムスポーンがワールドの地表でのみ発生できるかどうかを設定します。

キー値デフォルト
isSurfaceSpawnBooleanfalse
例
isSurfaceSpawn: false

isUndergroundSpawn​

カスタムスポーンが地下でのみ発生できるかどうかを設定します。

キー値デフォルト
isUndergroundSpawnBooleanfalse
例
isUndergroundSpawn: false

スポーン位置の選ばれ方​

EliteMobs はワールドを走査して場所を探すわけではありません。オンラインのプレイヤーを 1 人ランダムに選び、そこからオフセットします。

  1. 適格なプレイヤーをランダムに選びます。EliteMobs のデータが未読み込み、ワールドが ValidWorlds.yml の対象外、ダンジョン・アリーナ・クラス試練のインスタンス領域内、ワールドの Mob スポーンが無効、または validWorlds / validWorldEnvironments の対象外なら除外します。時間制イベントでは EliteMobs ダンジョンワールドのプレイヤーも除外します。ゲームモードによる除外はありません。
  2. X と Z それぞれに 24~127 ブロックのオフセットを取り、符号を個別に選びます。未読み込みチャンクの候補は拒否します。探索のためにチャンクを読み込むことはありません。
  3. Y は isSurfaceSpawn または isUndergroundSpawn で決まります。どちらも無効なら、通過できないブロックの上に空気が 2 ブロックある位置を上方向へ探します。
  4. その候補地点が、以下の検証にかけられます。

グローバル援軍は手順 1 の絞り込んだ一覧の代わりに、召喚者のワールドの全プレイヤーを使います。そのため、データの読み込み、ワールド、環境、インスタンス、Mob スポーンのゲームルールに関する手順 1 のチェックを省略します。候補位置のバイオーム、高さ、距離、光、WorldGuard のチェックは残ります。

候補は最大 100 個、1 tick に 1 個試します。どれも使えなければ 1 分後に再試行します。初期 Y は 0~255 から選びます。通常の上方向探索はその抽選値から始まり、highestYLevel とワールドの建築上限の 2 ブロック下のうち低い方で止まります。地下の下方向探索は lowestYLevel が低くても Y=-63 で止まります。地表と地下には専用の探索処理があり、両方を有効にすると地表が優先されます。

スポーン検証の動作​

EliteMobs は探索中に候補位置を確認します。時刻と月相が条件を満たすと、最終ゾンビテストとピースバナーチェックを実行します。

  • プレイヤーとの距離: いずれかのプレイヤーから三次元距離で 24 ブロック未満の候補を拒否します
  • ネザーの天井: ネザーディメンションでは Y=127 より上のスポーンはブロックされます
  • ブロックの安全性: 地下探索では固体の地面、通常の上方向探索では通過できないブロックを要求します。どちらもその上に空気 2 ブロックが必要です。地表モードは列の最上部ブロックの 1 ブロック上を使い、同じ空間チェックはしません。
  • Y レベル: 最終的な位置は lowestYLevel と highestYLevel の間にある必要があります
  • ゲームルール: 通常のプレイヤー選択ではワールドの Mob スポーンルールを確認します。Minecraft 1.21.11 以降は spawnMobs、それ以前は doMobSpawning です。グローバル援軍はこの選択時のチェックを省略します。
  • WorldGuard フラグ: elitemobs-events、elitemob-spawning、および WorldGuard 自身の mob-spawning フラグをチェックします
  • ピースバナー: PeaceBanner.yml の suppressEvents が既定どおり有効なら、保護された位置では今回の試行を中止します。時間制イベントは次のイベントを予約します。このチェックで今回の試行の位置探索をやり直すことはありません。
  • 最終テストスポーン: ボスが現れる直前に、EliteMobs はその位置に素のバニラのゾンビをスポーンさせて即座に削除します。他の保護プラグインがそのゾンビをブロックした場合、その位置は破棄され検索がやり直されます

これらのチェックは自動で行われます。光とピースバナーには上記の設定スイッチがあります。bypassWorldGuard は WorldGuard のチェックを無効にしません。