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

エリートスクリプトゾーン

ゾーンは形状によって定義された場所で、スクリプト作成者があらゆるアクションを実行するためのターゲットとして使用できます。

スクリプトごとに設定できるゾーンは1つだけです。

ゾーンをターゲットにするには、ターゲットタイプ ZONE_FULL または ZONE_BORDER を使用できます。

ゾーン自体も、どこに出現するかを定義するためにスクリプトターゲットを使用します。

shape

ゾーンの形状を設定します。有効な形状:

形状タイプ詳細アニメーション対応ボーダー
CYLINDER円柱形
SPHERE球形
DOMEドーム形(半球)
CUBOID直方体形
STATIC_RAY2点間の固定線
ROTATING_RAY2点間の回転線
TRANSLATING_RAY2つの初期点から2つの終点へ移動する線
CONE円錐形

アニメーション対応

アニメーション付きゾーンはスクリプトが最初に呼び出されたときにゾーンアニメーションを開始します。

つまり、アクションに待機時間がある場合、そのアクションが始まる時点で、待機している間にもゾーンはすでに動き回っているということです。

ゾーンは常に毎ティックでアニメーションします。つまり SPAWN_PARTICLES アクションを使う場合、ゾーンが毎ティック動いているので毎ティック実行するように設定できます。1秒ごとに実行した場合は、パーティクルが生成されなかったティックの間もゾーンが動き続けているため、パーティクルが飛び飛びに見えます。

回転するゾーンのアクションを作りたいけれど、アクションを開始する前に一定のティック数だけ待機させたい場合は、それを別のスクリプトにして RUN_SCRIPT で呼び出してください。RUN_SCRIPT 側に希望の待機時間を設定するのを忘れないでください。

ゾーンはアニメーションが完了すると最終位置に留まります。

余分な動きがあるとスクリプト作成者にもプレイヤーにも理解しづらくなるため、アニメーション対応のゾーンはすべてスクリプトターゲットを追跡しない設定になっています。つまりこれらのゾーンはボスやプレイヤーを追いかけず、常に最初のスポーン地点を基準にして動きます。


ボーダー

一部のゾーンはボーダーを持てます。ボーダーがあるということは、そのゾーンのターゲットとして ZONE_BORDER を使えるということです。ボーダーは、大きい方の形状の内側に2つ目の小さい形状を作ることで定義されます。小さいゾーンと大きいゾーンの間の領域がボーダーです。

eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_BORDER
repeatEvery: 5
times: 20

elitescript_zones_border.jpg

このスクリプトは、5秒間(repeatEvery 5 × times 20 = 100ティック)ゾーンのボーダーにのみ現れる煙のパーティクルを生成します。

ZONE_BORDER オプションではなく ZONE_FULL オプションを使った場合は、次のようにゾーン全体が煙のパーティクルで覆われます。

elitescript_zones_borderfull.jpg


SPHERE

キー詳細必須
shapeゾーンの形状を設定します。SPHERE にします
target球の中心となる位置を設定します
filterどの種類のエンティティを対象にするかを設定します
radius球の半径
borderRadius内側の球の半径
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: SPHERE
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_sphere.jpg

このスクリプトは雲パーティクルを使用して球の形状を示しています。


DOME

キー詳細必須
shapeゾーンの形状を設定します。DOME にします
targetドームの中心となる位置を設定します
filterどの種類のエンティティを対象にするかを設定します
radiusドームの半径
borderRadius内側のドームの半径
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_dome.jpg

このスクリプトは雲パーティクルを使用してドームの形状を示しています。


CONE

キー詳細必須
shapeゾーンの形状を設定します。CONE にします
target円錐の頂点(先端)となる位置を設定します
target2円錐の底面の中心となる位置を設定します
filterどの種類のエンティティを対象にするかを設定します
radius円錐の底面の半径
borderRadius内側の円錐の半径
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CONE
radius: 10
Target:
targetType: SELF
offset: 0,0,0
Target2:
targetType: SELF
offset: 0,10,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.8
repeatEvery: 5
times: 20

このスクリプトは雲パーティクルを使用して円錐の形状を示しています。このゾーンは CONE 形状、つまり3Dの体積であることに注意してください。薙ぎ払い系のエフェクトを作ろうとしている場合は重要な点です。


CYLINDER

キー詳細必須
shapeゾーンの形状を設定します。CYLINDER にします
target円柱の中心となる位置を設定します
filterどの種類のエンティティを対象にするかを設定します
radius円柱の半径
borderRadius内側の円柱の半径
height円柱の高さ
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_cylinder.jpg

このスクリプトは雲パーティクルを使用して円柱の形状を示しています。


CUBOID

キー詳細必須
shapeゾーンの形状を設定します。CUBOID にします
target直方体の中心となる位置を設定します
filterどの種類のエンティティを対象にするかを設定します
x直方体の長さを設定します
y直方体の高さを設定します
z直方体の幅を設定します。デフォルトは x と同じです
xBorder内側の直方体の長さを設定します
yBorder内側の直方体の高さを設定します
zBorder内側の直方体の幅を設定します。デフォルトは x と同じです
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 4
y: 4
z: 4
xBorder: 3
yBorder: 3
zBorder: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_cuboid.jpg

このスクリプトは雲パーティクルを使用して直方体の形状を示しています。


STATIC_RAY

キー詳細必須
shapeゾーンの形状を設定します。STATIC_RAY にします
target線の始点となる位置を設定します
target2線の終点となる位置を設定します
filterどの種類のエンティティを対象にするかを設定します
ignoresSolidBlocksレイが不透過ブロックを貫通するかどうかを設定します。デフォルトは true です
pointRadiusレイの太さを設定します。デフォルトは0.5ブロックです。
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: STATIC_RAY
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Target:
targetType: SELF
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_staticray.jpg

このスクリプトは雲パーティクルを使用して静的レイの形状を示しています。

ゾーンの両端に offset オプションを使って高さを調整し、レイがプレイヤーとボスの中央あたりから出るようにしています。そうしなければ、レイは足元に現れてしまいます。


ROTATING_RAY

キー詳細必須
shapeゾーンの形状を設定します。ROTATING_RAY にします
filterどの種類のエンティティを対象にするかを設定します
target線の始点となる位置を設定します
target2線の終点となる位置を設定します
animationDuration回転にかける時間をティック単位で設定します
pitchPreRotationアニメーション前にピッチへ初期回転を適用します
yawPreRotationアニメーション前にヨーへ初期回転を適用します
pitchRotationアニメーションのピッチ回転を設定します
yawRotationアニメーションのヨー回転を設定します
ignoresSolidBlocksレイが不透過ブロックを貫通するかどうかを設定します。デフォルトは true です
pointRadiusレイの太さを設定します。デフォルトは0.5ブロックです。
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: ROTATING_RAY
animationDuration: 100
pitchPrerotation: 0
yawPrerotation: 0
pitchRotation: 0
yawRotation: 360
ignoresSolidBlocks: true
Target:
targetType: SELF
offset: 0,1,0
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

elitescript_zones_rotatingray.gif

このスクリプトは雲パーティクルを使用した回転レイの見た目を示しています。

まず、雲パーティクルを使ってボスから自分を傷つけたプレイヤーへ向かうレイを作成します。次に offset を使って位置を1ブロック分だけ上へ調整します。

続いて、ターゲットになったプレイヤーを中心に、レイを一周させます。この回転が完了するまでには5秒(100ティック)かかります。


TRANSLATING_RAY

キー詳細必須
shapeゾーンの形状を設定します。TRANSLATING_RAY にします
filterどの種類のエンティティを対象にするかを設定します
animationDuration移動にかける時間をティック単位で設定します
target線の始点となる位置を設定します
finalTarget線の始点の移動先となる位置を設定します
target2線の2点目となる位置を設定します
finalTarget2線の2点目の移動先となる位置を設定します
ignoresSolidBlocksレイが不透過ブロックを貫通するかどうかを設定します。デフォルトは true です
pointRadiusレイの太さを設定します。デフォルトは0.5ブロックです。
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
FinalTarget:
targetType: SELF
offset: 0,10,0
Target2:
targetType: DIRECT_TARGET
FinalTarget2:
targetType: DIRECT_TARGET
offset: 0,10,0
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

elitescript_zones_translatingray.gif

このスクリプトは雲パーティクルを使用した移動レイの見た目を示しています。

まず、雲パーティクルを使ってボスから自分を傷つけたプレイヤーへ向かうレイを作成します。

次に、FinalTarget1FinalTarget2offset を使って、両方のターゲットから10ブロック上へレイが動くようアニメーションさせます。

このアニメーションの完了には5秒(100ティック)かかります。

Z の offsetoffset: 0,0,10 のように調整すれば、レイを簡単に横方向へ動かせます。

elitescript_zones_translatingray2.gif

この挙動は、ゲーム内でどちらを向いているかによって変わることがあります。
GIF画像で示したスクリプトの X の offset を変更すると、自分の視点からはレイが一直線に遠ざかっていくように見えます。


filter

filter プロパティを使うと、ゾーン内の特定のエンティティだけを対象にできます。指定できるエンティティは次のとおりです。

詳細
PLAYERゾーン内のプレイヤーのみ(デフォルト)
ELITEゾーン内のエリートのみ
LIVINGゾーン内のすべての生きているエンティティ
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false

このサンプルスクリプトは、filter を使ってゾーンがエリートだけを対象にするようにする方法を示しています。