【楽しいコマンド講座#3】オリジナルボスにスキルを実装する! 〜中編〜

コマンド講座

 どうもどうも! EIEIです!

 前回、前編としてMCStackerというツールを使っての、オリジナルのmobをスポーンさせる方法を紹介しました!

EIEI
EIEI

この記事は、前回の記事の続きとなっているので、

まだ見ていない方は前回の記事も併せて読んでくださいね♪

↑MCStackerを使って、オリジナルボスを作る方法を紹介しています! コマンドの知識がなくても、簡単にオリジナルボスを作れます。

 ということで、今回は前回作ったボスに、コマンドを使ってオリジナルスキルを実装したいと思います!

 コマンドが詳しくない方でも、記事の通り真似したら再現できるように、

 わかりやすく丁寧に解説しますのでご安心を♪

マイン
マイン

配布マップなどで見るような、特別な攻撃をボスにさせることができちゃいます!

 本日もLet’sマイクラ!

スポンサーリンク

今回作るボスの設計図!

 今回作っていくボスは、次のようなスキル? 能力? にしたいと思います!

  • 周りのザコ敵を倒さないと、本体にダメージが入らないタイプのボス
  • オリジナル実装の遠距離攻撃
  • 体力が無くなったとき第二形態に!
  • 第二形態になったらスキルや行動パターンが変化
EIEI
EIEI

割とよくある? 感じの仕様ではありますが、

これを頑張ってコマンドで実装したいと思います!

 これくらいなら、コマンドとレッドストーン回路を駆使すれば作れちゃいます!

マイン
マイン

早速、ボスを作ってみましょう!

 今回は、ゾンビをボスmobとして採用します!

 ということで、MCStackerで次のようなゾンビを作ってみました。

EIEI
EIEI

前回の記事で、MCStackerの使い方を詳しく解説しているので、

僕の例だけでなく、皆さんのオリジナルボスを実装してみてください♪

  • 最大体力、初期体力が20ではなく50に
  • 攻撃力が3ではなく5に
  • デスポーンせず、索敵範囲は40から80に(念の為です)
  • 名前を常に表示させ、名前もつける!
  • タグとして、「boss」と「first」をつけておく!(コマンド作成時に使います)
  • エンチャントなどをつけた防具、武器を持たせる!
  • 若干ノックバックを軽減し、若干移動速度を早く!
  • 仲間を呼ぶ確率は5%から0%にして、大人ゾンビに限定(難易度の変動を防ぐため)

 大雑把にですが、上の設定をしておきました。

 スキルはコマンドで、多少強引に実装する部分もあるので、できる限りイレギュラーが発生しないように、

 具体的には、子供ゾンビが出ないようにしたり… ということも重要だと思います。

マイン
マイン

ただ、もちろんこれは例なので、

参考にしつつ、皆さんのオリジナルボスを使ってみてくださいね!

 そして、今回はタグを使いたいと思います。

 そのほうが、ボスじゃない他のゾンビの干渉を受けることなく、コマンドを実行できますからね♪

EIEI
EIEI

今回は、ボス戦で使いますよ、という意味の「boss」と、

第一形態ということで「first」というタグをつけます。

 コマンドがかなり長いので、具体的なコマンドを知りたい方は、

 下のボタンをポチッとしていただくと、展開されてコマンドが表示されますので、興味のある方はぜひ!

ボスのコマンド例!

 僕が作ったボスの土台となるモンスターは次のコマンドを実行することで召喚できます!

マイン
マイン

コマンドが長いので、コマンドブロックを使って実行すると、召喚できますよ〜♪

/summon zombie ~ ~ ~ {CustomNameVisible:1b,PersistenceRequired:1b,Health:100f,IsBaby:0b,Tags:["boss","first"],CustomName:'{"text":"神殿の長","color":"blue","bold":true}',HandItems:[{id:"minecraft:trident",Count:1b,tag:{Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:3,Operation:0,UUID:[I;380466727,2035894671,-2144449560,666950159],Slot:"mainhand"}]}},{id:"minecraft:heart_of_the_sea",Count:1b,tag:{Enchantments:[{}]}}],HandDropChances:[0.000F,0.000F],ArmorItems:[{id:"minecraft:chainmail_boots",Count:1b,tag:{Unbreakable:1b,Enchantments:[{id:"minecraft:frost_walker",lvl:1s}]}},{id:"minecraft:chainmail_leggings",Count:1b,tag:{Unbreakable:1b,Enchantments:[{id:"minecraft:protection",lvl:3s}]}},{},{id:"minecraft:turtle_helmet",Count:1b,tag:{Unbreakable:1b}}],ArmorDropChances:[0.000F,0.000F,0.085F,0.000F],Attributes:[{Name:generic.max_health,Base:100},{Name:generic.follow_range,Base:80},{Name:generic.knockback_resistance,Base:0.2},{Name:generic.movement_speed,Base:0.3},{Name:generic.attack_damage,Base:5}]}

スポンサーリンク

戦場にギミックを持たせるためのコマンド作り!

 せっかくなのでボスと戦うための戦場を作ってみました!

 最悪なくてもボスは動作しますが、せっかくなのでね。

マイン
マイン

海底神殿をイメージして作ってみました!

↑とりあえず、天井なしバージョンはこんな感じ! 柱などを作って、神聖な祭壇的なものを目指したつもりです…

 そして、今回はボスが使う氷渡りのエンチャントで、床の水源が凍る、というギミック(?)を採用する都合上、

 氷渡りで生成される薄氷が壊れるギリギリの明るさ、レベル13の光ブロックを敷き詰めて、天井をつけました!

EIEI
EIEI

コマンドを使わなくても、こんな感じでパッシブを作れたりするね!

薄氷は、氷渡りの効果で初めは年齢が0の状態で生成されます。
11ー年齢の明るさレベルを受けていると、年齢が進行してヒビが入っていき、
年齢が4になると同時に、水源へと戻りますよ~

↑ライトブロックは、バリアブロックなどと同じように、サバイバルの状態では通常、見えなくなり当たり判定も持ちませんよ。

戦場に入った時のギミック作り!

 それでは、そこの入り口を作っていきます。

 入り口が最初開いているけど、入ると塞がれてしまう、という簡単な内容を実装します!

マイン
マイン

コマンドを使えば、レッドストーン回路などよりも幅の広い入り口を作れますね!

↑後々fillコマンドでブロックを置いたりして、開閉を作ります!

 どうやってプレイヤーが戦場に入ったかを確かめるかなのですが、

 プレイヤーのX、Y、Zそれぞれの座標を、スコアボードに常に反映することによって、

 スコアボードを見たときに、プレイヤーが戦場に入ったかどうか判断できるようにします!

EIEI
EIEI

スコアボードは非常に自由度が高いので、コマンドでギミックを作る時のお供ですね♪

 まず、スコアボードを計5個作成します。いずれのコマンドも、チャット欄などでそれぞれ1回実行してください!

①プレイヤーのx座標を格納するためのスコアボードを作成

/scoreboard objectives add xposition dummy

②プレイヤーのz座標を格納するためのスコアボードを作成

/scoreboard objectives add zposition dummy

 また、ここからコマンドの中に座標が出現しますが、ここは必要に応じて変更してくださいね。

EIEI
EIEI

ここで書いている座標は、あくまで僕の環境での座標なので、

真似して作られる場合はF3キーを押して座標を確認してくださいね!

③戦場への入り口のx座標をスコアボードで保持しておく

/scoreboard objectives add xstartposition dummy

/scoreboard players set @p xstartposition -273

④戦場への入り口のz座標の片側をスコアボードで保持しておく

/scoreboard objectives add zstartposition1 dummy

/scoreboard players set @p zstartposition1 353

⑤入り口のもう片側のz座標をスコアボードで保持しておく

/scoreboard objectives add zstartposition2 dummy

/scoreboard players set @p zstartposition2 350

 なぜこんなにスコアボードを作るのか、ということですが、下の画像を見ていただければ分かりやすいと思うのですが、

 この例の場合では、x座標が-273に等しい、かつz座標が350〜353の間なら、戦場に入ったとみなしています!

マイン
マイン

それの判断のために、わざわざスコアボードを増やしたんだね!

↑画像のオレンジのラインにプレイヤーがいたら、戦場に入ったと判断して入り口を閉めても大丈夫ですね。

 なので、もし皆さんが真似して作られる場合は、x座標について2つ、z座標について3つとは限らず、

 入り口の方角によっては、x座標についてが3つ、z座標について2つになる可能性もありますね〜

EIEI
EIEI

入り口を天井に作ったりするなら、y座標について同じように作成していただければOKですね!

 そして、プレイヤーの座標を常に更新し続けるため、次のコマンドを実行し続けます。

 コマンドブロックで、リピート、無条件、常時実行にしてスコアボードに座標を常に反映させましょう♪

マイン
マイン

常に反映させておきたいので、リピートモードの出番です!

/execute store result score @p xposition run data get entity @p Pos[0]

/execute store result score @p zposition run data get entity @p Pos[2]

上のコマンドは、最も近くのプレイヤー(@p)の座標(Pos)を、最も近くのプレイヤーに紐付けられたスコアボードに代入するコマンドです。
今回の例では用いていませんが、y座標をypositionというスコアボードに代入したい場合は次のコマンドを常時実行すれば良いですね♪

/execute store result score @p yposition run data get entity @p Pos[1]

↑コマンドブロックは、見栄え的にも戦場の外に置いておきましょう。

 あとは、肝心のプレイヤーが戦場に入ったことを検知して、入り口を閉めるコマンドです!

EIEI
EIEI

入り口を閉めるのは、fillコマンドでブロックで塞いで実現していますよ。

 こちらも、リピート、無条件、常時実行のコマンドブロックで常に監視させておきます。

/execute if score @p xposition = @p xstartposition if score @p zposition <= @p zstartposition1 if score @p zposition >= @p zstartposition2 run fill -272 -53 352 -272 -51 350 minecraft:prismarine_bricks

マイン
マイン

結構長いコマンドだけど、もし(if)座標が〇〇なら… という書き方ですね!

 さらに、このリピートコマンドブロックに、3つのチェーンコマンドブロックを繋げて、

 条件付き、常時実行にして、回路に使うレッドストーンブロックを設置したり、画面に文字を表示させましょう!

EIEI
EIEI

「入口が閉じた時」と同時に動作するコマンドを、ここのチェーンコマンドブロックに記述します!

↑入口が閉じたときに、同時に起動させたいので、チェーンのコマンドブロックもつなげちゃいます!

①回路に使うためのレッドストーンブロックを設置(回路は後ほど紹介します)

/setblock -264 -54 356 minecraft:redstone_block

②画面にタイトル(大きな文字)を表示

/title @p title "神殿の最深部"

③画面にサブタイトル(タイトルの下に表示される中くらいの文字)を表示

/title @p subtitle " "

マイン
マイン

もちろん、タイトルやサブタイトルのダブルクオーテーションの間は、皆さんの好きな文字にしてくださいね!

 他にも、BGMをスタートしたい、プレイヤーに装備を与えたい、なども入り口が閉まるタイミングで行いたい場合、

 ここでさらにチェーンコマンドブロックを増やして実装します。

EIEI
EIEI

説明が長くなってしまいましたが、下の画像のようにコマンドブロックを繋いでくださいね!

 ここまで作れば、戦場に入った時に、入り口が閉められて画面に文字が表示されるようになっています!

マイン
マイン

もし動かなかったら、座標やコマンド、そしてコマンドブロックの設定や向きを見直してみてね。

↑ボスとの戦闘中に逃げられなくなりましたね! ボスと戦うときは、ブロック破壊不可のアドベンチャーモードを想定しています。
スポンサーリンク

ボスの体力をボスバーに反映させる!

 せっかくボスを作るなら、エンダードラゴンやウィザーみたいに、体力バーを表示させたいですよね!

 コマンドを使えば、体力バー… ボスバーと言うのですが、これも自由自在に操れます。

EIEI
EIEI

オリジナルボスにも、ボスバーを作ってみましょう!

↑エンダードラゴンと戦うときは、こんな感じにボスバーが表示されていますよね!

 実はボスバーを作るコマンドは、そこまで難しくありません!

 まずは準備として、次の4つのコマンドをチャット欄で良いので実行してください。

①ボスバーを作成して、表示される名前を設定するコマンド

/bossbar add boss1 "神殿の長"

②ボスバーの最大値(通常はボスの体力と同じ値)を設定するコマンド

/bossbar set boss1 max 50

③ボスバーの色を設定するコマンド(なくてもOK)

/bossbar set boss1 color blue

④ボスバーの区切りを設定するコマンド(なくてもOK)、この場合10等分のラインが入る

/bossbar set boss1 style notched_10

マイン
マイン

今回はこれだけサクッと紹介しましたが、

ネットでしっかり調べると、もっと詳しい設定などもできるかと思います!

 そして、ボスの体力を常にボスバーに反映させるコマンドを、リピート、無条件、常時実行で作成!

 ここで、どのmobの体力を反映すればいいか、ボスにつけたタグを用いて管理していますよ♪

EIEI
EIEI

このような時に使うために、わざわざボスにタグを付けました!

/execute as @e[tag=boss] store result score @s health run data get entity @s Health 1

↑画面上部に、ボスバーが表示されていたら成功です! 後々、戦闘中にしか表示されないようにコマンドを組みますよ~

 まだボスを召喚していないのでもちろん動いていませんが、

 先程紹介した、ボスをスポーンさせるとボスの体力が反映されるようになりますよ♪

ボスのスキルを作る! …準備編!

 また、今回はボスに簡単なスキルを実装してみたいと思います! もちろんコマンドを使ってのオリジナルスキルです♪

EIEI
EIEI

せっかくボスを作るなら、普通のmobとは違う技を使わせたいよね~!

 そこで、そのスキルを実装するのにいくらか準備が必要なので、

 次のコマンドをチャット欄で良いので、1回実行しておいてください。

マイン
マイン

スコアボードやボスバーなど、予め準備しておくと楽なものをここで一気に準備しておきますよ~

①ボスの体力を常に反映するためのスコアボードを作成

/scoreboard objectives add health health

②ボスの直前の体力を保持しておくためのスコアボードを作成

/scoreboard objectives add subhealth dummy

③プレイヤーがガーディアンを倒したときに値が増えるスコアボードを作成

/scoreboard objectives add guardiankill minecraft.killed:minecraft.guardian

④ボスのスキルのクールタイムを管理するためのスコアボードを作成

/scoreboard objectives add cooltime1 dummy

⑤ボスのスキルのクールタイムを表示するためのボスバーを作成(先ほどのように、色や名前は自由にカスタマイズできます!)

/bossbar add cooltime1 " "

⑥クールタイムのボスバーの最大値を200に設定(この値を20で割った値が、クールタイムを秒数で表します)

/bossbar set minecraft:cooltime1 max 200

EIEI
EIEI

長々と6つも紹介しましたが、後ほどスキルを作る時にどれも利用しますよ!

 さらに、スコアボードの値の変更だったり、ボスバーへのスコアボードの値の反映だったり、

 リピートコマンドブロックを用いて、先に作ってしまいましょう!

マイン
マイン

リピートコマンドブロック2つを設置して、

そのうち片方だけ、条件付き、常時実行のチェーンをつなげます!

 まず、リピート1つだけの方は、無条件、常時実行で次のコマンドを実行します。

/execute as @e[tag=first] store result bossbar minecraft:cooltime1 value run scoreboard players get @s cooltime1

EIEI
EIEI

ボスの体力をボスバーに反映させるコマンドと、後半の方は結構似ていると思います。

 そして、チェーンの前についているリピートも、無条件、常時実行にして、次のコマンドを実行。

/kill @e[type=minecraft:armor_stand,tag=count]

 チェーンの方は、条件付き、常時実行で、次のコマンドを実行します!

 このコマンドが、要約すると1秒間に20だけ、クールタイムのスコアボードの値を減らします。

/scoreboard players remove @e[tag=first] cooltime1 1

チェーンの前のリピートコマンドブロックで、常に防具立てをkillし続けます。
防具立てが倒されたとき、スコアボードcooltime1の値を1減らすようにしています。

この後、防具立てを常に召喚し続けるコマンドを実装します!
この召喚の最大スピードが、1秒間に20回なので、スコアボードの値が1秒間に20減ります。

スポンサーリンク

ボスを出現させるための回路&コマンド!

 戦場に入っていきなりボスが目の前にポツンと現れても味気ないので、

 レッドストーン回路の力も使って、ちょっと工夫していきたいと思います!

マイン
マイン

レッドストーンリピーターを使って、コマンドの実行タイミングをずらそう!

 以下の画像のような回路を組んでみました。リピーターの数だったりはお好みでどうぞ!

 戦場に入った時、入り口を閉じると同時に、レッドストーンブロックを設置するというコマンドを先ほど作りましたが、

 設置されたレッドストーンブロックから、信号を供給しますよ〜

↑なかなか情報量が多い画像ですが、よく分からないという方は、形だけでも真似してみてください!

 1つ目のコマンドは、扉が閉められたぞ、とチャット欄でプレイヤーに伝えるものです。

 インパルス、無条件、動力が必要のコマンドブロックを使います。

EIEI
EIEI

チャット欄でプレイヤーに情報を伝えられるので、ボス作りにピッタリなtellrawコマンドです♪

/tellraw @p "なぜか入口が塞がれた。"

 2つ目も、同じようにメッセージをチャット欄で送らせます。

 リピーターをかませることで、小分けでメッセージを表示できますね。

/tellraw @p " 其方も… 海の秘宝を狙う無謀な冒険者か。"

 3つ目… この調子で作れば何個でも作れちゃいますね。

/tellraw @p " 我に屈し諦めるがよい!!"

マイン
マイン

もちろん、ここのメッセージだったり、実行するコマンドも自由ですね♪

 そして4つ目、実際にボスをスポーンさせるタイミングで、実行するコマンドがこちらになります。

 最初はインパルス、無条件、動力が必要ですが、以降はチェーン、条件付き、常時実行で繋げます。

①ボスを実際にスポーンさせるコマンド(長いので見たい方はクリックしてね!)

ボスをスポーンさせるためのsummonコマンド

/summon zombie -288 -52 351 {CustomNameVisible:1b,PersistenceRequired:1b,Health:100f,IsBaby:0b,Tags:["boss","first"],CustomName:'{"text":"神殿の長","color":"blue","bold":true}',HandItems:[{id:"minecraft:trident",Count:1b,tag:{Unbreakable:1b,AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:3,Operation:0,UUID:[I;380466727,2035894671,-2144449560,666950159],Slot:"mainhand"}]}},{id:"minecraft:heart_of_the_sea",Count:1b,tag:{Enchantments:[{}]}}],HandDropChances:[0.000F,0.000F],ArmorItems:[{id:"minecraft:chainmail_boots",Count:1b,tag:{Unbreakable:1b,Enchantments:[{id:"minecraft:frost_walker",lvl:1s}]}},{id:"minecraft:chainmail_leggings",Count:1b,tag:{Unbreakable:1b,Enchantments:[{id:"minecraft:protection",lvl:3s}]}},{},{id:"minecraft:turtle_helmet",Count:1b,tag:{Unbreakable:1b}}],ArmorDropChances:[0.000F,0.000F,0.085F,0.000F],Attributes:[{Name:generic.max_health,Base:100},{Name:generic.follow_range,Base:80},{Name:generic.knockback_resistance,Base:0.2},{Name:generic.movement_speed,Base:0.3},{Name:generic.attack_damage,Base:5}]}

②画面にタイトルを表示

/title @p title " "

③画面にサブタイトルを表示

/title @p subtitle "vs神殿の長"

④ボスの体力を表示する、ボスバーを表示

/bossbar set boss1 visible true

⑤プレイヤーのガーディアンを倒した回数をリセット

scoreboard players set @e guardiankill 0

⑥ボスバーの色をリセット

bossbar set boss1 color blue

⑦クールタイムのスコアボードを200に設定(この値を20で割ると、クールタイムを秒数で表します!)

scoreboard players set @e cooltime1 200

⑧プレイヤーにクールタイムのボスバーを表示

bossbar set minecraft:cooltime1 visible true

EIEI
EIEI

2つ目以降は、チェーンコマンドブロックで一気に実行しますよ!

 ここまで正しく作ることができたら、次の流れを実行できるようになります!

  • 戦場に入ると入り口が閉じられる
  • メッセージがチャット欄に流れた後、ボスが出現する
  • ボスの体力がボスバーに反映される
マイン
マイン

これで、ひとまずボスとの戦闘に入ることができるようになりました!

↑ここまでは割と地味な作業も多かったですが、ここからは戦闘の花形となるスキル作りです!
スポンサーリンク

ボスのスキル1! 被ダメージ時一定確率で子分を召喚!

 今回は、例として2つの簡単なスキルを紹介したいと思います! 1つ目がこちら。

  • ボスがダメージを受けたとき、低確率で無敵化&ガーディアンを4体召喚
  • ガーディアンが全員倒されたら、ボスの無敵化が解除
EIEI
EIEI

今回は、実装のハードルが高すぎず低すぎずなスキルを例として考えてきましたよ~

 おそらく、このスキルを作る上で、コマンドで大事になるのが次の3ポイント。

  • ボスがダメージを受けたことを検知する
  • 低確率で発生する、を実現する
  • ガーディアンを倒した数をカウントする
マイン
マイン

確かに、この辺はレッドストーン回路ではちょっと難しいかもね~

 まず、ボスがダメージを受けたことを検知するために、リピート、無条件、常時実行のコマンドブロックを2つ用意。

 そのうち片方だけに、チェーン、無条件、常時実行のコマンドブロックを接続します!

↑ボスの体力が減ったときに○○する、という動作は、スコアボードさえ作ってしまえばこれだけで実装可能!

 リピートコマンドブロック単体の方には、常にスコアボードにボスの体力を代入するコマンドを書きます。

/execute as @e[tag=boss] store result score @s health run data get entity @s Health 1

EIEI
EIEI

先ほどスキル作りの準備をした時に、スコアボードなどを作ってあります!

 もう片方のリピートコマンドブロックには、次のコマンドを書きます。

 座標は、戦場の外に後ほど設置する、軽量感圧版の1ブロックだけ上の位置にします!

/execute as @e[tag=boss] if score @s subhealth > @s health run summon minecraft:egg -252.5 -51 361.5

 そして、そのリピートコマンドブロックにつながるチェーンコマンドブロックには、

 次のコマンドを書きます! 実はこれだけで、ボスの体力が減ったことを検知できます。

/execute as @e[tag=boss] store result score @s subhealth run scoreboard players get @s health

マイン
マイン

おお、意外と簡単に被ダメージを検知できるんだね!

 そして、ちらっと出てきた座標ですが、下の画像のように、軽量感圧版の上に設定してください。

↑感圧版からは、コマンドブロックが合計9個伸びています! 左側から2つ目の、チェーンだけ条件付きなのに注意。

 感圧版の上に卵を落とすことで、ニワトリがたまに産まれます。これが「低確率」の実現に役立ちます!

ニワトリが1匹以上産まれる確率は、8分の1です。
なので、ボスがダメージを受けたとき、8分の1の確率でスキルを発動します!

ちなみに、軽量感圧版は上に乗っているエンティティの数だけの強さの信号を送るので、
レッドストーンダストで調節して、信号レベルが4以上の時のみ、コマンドブロックに信号が伝わるようにすることで、
ニワトリが4匹生まれる確率である、256分の1も利用出来ちゃいます…(笑)

 そして、軽量感圧版が押されたときに実行されるコマンドが、計9個!

EIEI
EIEI

ここに書いたコマンドが、ボスがスキルを実際に発動した時に実行されるものになります!

 初めのものはインパルス、無条件、動力が必要で、

 2つ目のコマンドブロックは、チェーン、条件付き、常時実行、

 3つ目以降はすべて、チェーン、無条件、常時実行にしてくださいね。

①ボスに耐性Ⅴ(ダメージ100%カットなので、無敵)を10万秒付与

/effect give @e[tag=first] minecraft:resistance 100000 5 true

②万が一、すでにガーディアンがいた場合は倒す

/kill @e[type=minecraft:guardian]

③~⑥ガーディアンを合計4体召喚(長いので見たい方はクリックしてね!)

ガーディアンをスポーンさせるためのsummonコマンド4つ

 このガーディアンは、発光、ノックバック耐性、移動不可、重力無視の設定にしています。

EIEI
EIEI

モンスターというより、ボスに生み出されたロボット的なイメージで設定してみました♪

/summon guardian -287.5 -48.5 359.5 {NoGravity:1b,Glowing:1b,Attributes:[{Name:generic.movement_speed,Base:0},{Name:generic.knockback_resistance,Base:1.0}]}

/summon guardian -279.5 -48.5 351.5 {NoGravity:1b,Glowing:1b,Attributes:[{Name:generic.movement_speed,Base:0},{Name:generic.knockback_resistance,Base:1.0}]}

/summon guardian -295.5 -48.5 351.5 {NoGravity:1b,Glowing:1b,Attributes:[{Name:generic.movement_speed,Base:0},{Name:generic.knockback_resistance,Base:1.0}]}

/summon guardian -287.5 -48.5 343.5 {NoGravity:1b,Glowing:1b,Attributes:[{Name:generic.movement_speed,Base:0},{Name:generic.knockback_resistance,Base:1.0}]}

⑦感圧版を押したニワトリを倒す

/kill @e[type=chicken]

⑧ボスの体力ゲージの色を変更

/bossbar set boss1 color purple

⑨プレイヤーがガーディアンを倒した数を0とする

/scoreboard players set @e guardiankill 0

マイン
マイン

だいぶ長いけど、これでボスがダメージを受けたときにたまに、スキルを使ってくれます!

 ただ、このままだとボスが無敵化して、それが10万秒続いてしまう恐ろしい設定になっているので、

 ガーディアンが4体倒された時のコマンドも組みましょう!

EIEI
EIEI

無条件、常時実行のリピートコマンドブロックに、

チェーン、条件付き、常時実行を2つ接続!

↑今回はこれだけでOK! ガーディアンが倒れたときに、さらに他のコマンドを実行したい場合、これを増やせばいいですね。

 リピートコマンドブロックには、次のコマンドを書きます。

/execute as @a[scores={guardiankill=4..}] run effect clear @e[tag=boss]

 そして、そこにつながっているチェーンコマンドブロックには、次の2つのコマンドを書きましょう!

/scoreboard players reset @e guardiankill

/bossbar set boss1 color blue

マイン
マイン

たくさん出てきたから気づいている方も多いかもしれませんが、

今回、executeを「もし~なら」で多様していますね! 便利!

 これで1つ目のスキルが完成しました! お疲れ様です!

EIEI
EIEI

今戦場に入って、ボスを攻撃すると、たまにガーディアンを召喚してくるよ!

↑こんな感じにガーディアンが召喚されます! プレイヤーはガーディアンを先に倒さないといけなくて、結構やっかい。
スポンサーリンク

ボスのスキル2! 一定間隔で周辺のプレイヤーに防具貫通攻撃!

 先ほど紹介した1つ目のスキルは、結構コマンドが長くなりましたが、

 今度は単純に! 一定間隔で周辺に特別な攻撃をするようにしてみます!

マイン
マイン

こっちの方が、単純なコマンドで組まれていますよ~

 実は、スコアボードなどをすでに用意しているので、あと必要なのは次のコマンドブロックたちだけ!

 リピートは無条件、常時実行で、9つのチェーンはすべて条件付き、常時実行ですよ~

↑あらかじめ準備していたせいで、これだけで1つのスキルが完結します!

 チェーンのコマンドブロックには、次のコマンドでクールタイムの終了を検知します。

EIEI
EIEI

クールタイムが終了したら、スキルを打ってすぐさまクールタイムを再設定していますよ!

/execute if entity @e[tag=first,scores={cooltime1=..0}] run scoreboard players set @e cooltime1 200

 そして、2つ目に当たるチェーンコマンドブロックには、次のコマンドでボスを一瞬無敵化!

/effect give @e[tag=first] minecraft:resistance 1 6 true

 そして、残りの8つのチェーンコマンドブロックで、ボスの周囲8方向にエヴォーカーの牙をスポーンさせます!

 エヴォーカーの牙は、防具貫通でダメージを与えてくる特性がありますよ♪

マイン
マイン

8個も似たようなコマンドがあるから、見たい人は下のボタンを押してね!

牙をスポーンさせるためのsummonコマンド8つ

 ここで使用しているのは、ボスから見てどれくらい離れているか、という相対座標なので、

 真似して作ってくださっている方は、そのままコピペでOKですよ♪

EIEI
EIEI

この例では、ボスの周囲1ブロックに牙を8個スポーンさせています!

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^1 ^ ^1

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^1 ^ ^

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^1 ^ ^-1

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^ ^ ^1

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^ ^ ^1

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^-1 ^ ^1

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^-1 ^ ^

/execute at @e[tag=first] run summon minecraft:evoker_fangs ^-1 ^ ^-1

 これで2つ目のスキルも完成しました!

 この状態でボスと戦うと、10秒毎に牙を出して攻撃してくると思います♪

マイン
マイン

ゾンビ特有の体当たり以外にも、攻撃手段を作れたね~

↑防具貫通なので、プレイヤーに結構いいダメージが入ります。

ボスの第一形態が完成!

 なんとこれで、ボスの第一形態が完成しました! 皆さん長い解説にお付き合いいただきありがとうございます…!

EIEI
EIEI

簡単なものだけど、スキルを2つ作って、しかも戦場のギミックなどもコマンドで作れちゃいましたね!

 コマンドが苦手な人でも、丸々真似していただければ同じものができるように工夫したつもりですので、

 ぜひお時間のある時に挑戦してみてくださいね!

マイン
マイン

少しずつ知識が付いたら、自分なりのアレンジなどをしてみて楽しんでください♪

 何を隠そう、僕もこの記事を書くにあたってたくさんググりましたし、

 もしかしたらコマンドガチ勢の方々からしたら、信じられないコマンドを組んでいるかもしれませんが…(笑)

 個人的に、まずはコマンドが苦手な方は、動くことを目標にしたらいいと思いますよ♪

EIEI
EIEI

何か質問や指摘などがあれば、コメント欄で教えていただけると嬉しいです…

 また、現段階ではボスが倒れた時の処理がありませんが、こちらは後編で解説したいと思います。

 ちなみに、次のコマンドをすべて実行すれば、とりあえずリセットが可能となっていますよ~

戦闘終了後のリセット用コマンド(デバック用と思っていただけるといいかもです)

 数字の順番で実行していただけると、いい感じにリセットできると思います!

①閉められた扉を再度開く

/fill -272 -53 352 -272 -51 350 minecraft:air

②レッドストーンブロックを消す

/setblock -264 -54 356 minecraft:air

③難易度をピースフルにしてモンスターを消す

/difficulty peaceful

④、⑤ボスバーを見えなくする

/bossbar set boss1 visible false

/bossbar set minecraft:cooltime1 visible false

⑥ガーディアンを倒した数をリセットする

/scoreboard players reset @e guardiankill

⑦難易度を元に戻す(easynormalでもOKです!)

/difficulty hard

マイン
マイン

作成中に試行錯誤したいなら、このセットをコマンドブロックに登録しておくと便利ですね!

 第二形態を作っていく解説は、後編に回したいと思いますので、お楽しみに!

 (これ以上書くと記事の尺が大変なことになるので…)

 今回は、オリジナルボスにスキルを作ったり、戦場を作ることをメインにしてみました! 後編をお楽しみに!

 それでは皆さん、バイバ~イ!

コメント

  1. EIEI より:

    にしゃくさんへ返信
    確かに、今回紹介したことを応用するだけでボスの体力に応じて~ というコマンドも作れますね♪

    乱数系の確率の調節はそのようにするのが良いのですね、
    教えていただきありがとうございます…!
    防具立てを使うだけじゃなくて、ガーディアンの残数を参照することで
    敵を減らしたら確率が上がる、みたいな調整もできそうです♪

    いろいろ教えてくださりありがとうございます!

  2. EIEI より:

    マイクラ一般人さんへ返信
    確かに、割と難易度が高めかもしれませんね~(汗)
    ただ、初心者さんの方でも真似していただければ完成できると思います!

    統合版では、動作未確認ですがおそらくそのままコピペでは難しいと思います…
    ごめんなさい。ただ、似たコマンドを使って再現はできると思います♪

  3. マイクラ一般人 より:

    初心者じゃなく上級者で扱えるようなコマンドになっとる!ムズ!\(^o^)/オワタw
    総合版でできるんかな?

  4. にしゃく より:

    ボスのHPが一定以下になると周りのガーディアンが解き放たれて一緒に攻撃してくる、とかも良さそうですね〜
    後半戦がかなり鬼畜になりそうですけど(笑)
    乱数系は、防具立てをフィールドの外に幾つか置き、その中の幾つかにタグ(仮にA:1とします)をつけ、その防具立ての中のランダムな一つにdataコマンドで別のタグ(B:1とします)をつけ、A:1とB:1を両方もっている防具立てにexecuteコマンドでコマンドを実行させるとやりやすいですよ!全ての防具立ての数が分母、A:1がついた防具立ての数が分子です。
    仕上げににB:1を消せばもう一回使えます!
    ランダムなエンティティを指定するにはlimit=1,sort=randomという部分をターゲットセレクタに追加すればできます!
    データパックならpredicate作って終わりなんですけどね〜
    チェーンコマンドブロックを使うのはラグがあるので、条件付きのリピートコマンドを並べると細かいタイミング制御がやりやすいです!

    長文失礼しました

  5. EIEI より:

    M41 bulldogさんへ返信
    即死攻撃もボスらしくて良いですね♪
    丁寧に作り方を教えて下さりありがとうございます!

    即死だけでなく、効果付与だったり、ギミック発動など、様々なところに応用出来そうです…!
    矢の弾道を予めプレイヤーに伝えられると、
    弾幕ゲーム的なものにも出来そうですね!

  6. M41 bulldog より:

    投稿お疲れ様です!
    コマンド講座シリーズのこと忘れかけてました…
    即死攻撃を入れてみたりしてもいいかもしれません。
    やり方としては
    1 ボスの使う矢やトライデントなどの飛び道具にTagをつける(Tag付きでスポーンさせてそれをTPで飛ばすなどでもいい)(Tagのついた飛び道具にTPコマンドを使用することで弾速の調節や追尾攻撃などもできる)
    2 その周囲xブロック以内にいるプレイヤーをKillする(xは好きな値で、大きければ大きいほど回避の難易度が上がる)
    3 Killが成功したらTagのついた飛び道具をKillする
    おまけ
    射程の限界を作りたい場合は、所定回数TPさせたらその飛び道具をKillするコマンドを作ればOK

    長文失礼しました

タイトルとURLをコピーしました