【楽しいコマンド講座#4】オリジナルボスに第二形態を実装する! 〜後編〜

コマンド講座

 どうもどうも! EIEIです!

 前回は中編として、コマンドで作成したオリジナルボスに、スキルを実装する方法と、その例を紹介しました!

マイン
マイン

今回の記事は前回の続きとなっているので、まだご覧になっていない方はぜひ!

↑あまり複雑なコマンドは使わずに、誰でも真似できるようなスキルを2つ実装しました♪

 前回は、ボスの第一形態が完成しました。今回は、前回のボスの第二形態を作っていく様子を、

 コマンドの解説、紹介を交えてご紹介します!

EIEI
EIEI

コマンドが苦手な人でもできるように、分かりやすく解説していきます!

 本日もLet’sマイクラ!

※この記事で使用しているコマンドは、Java版1.19.2のものです。

スポンサーリンク

第一形態から第二形態に移行するコマンド!

 前回作ったボスは、元のmobがゾンビとなっています。

 そのため、第二形態を作るには、「ボスが倒されたとき」に実行されるコマンドが必要となります。

マイン
マイン

普通のゾンビは、倒されたら消滅しちゃうだけだもんね〜

 そのため、準備のコマンド、第一形態が倒れた時のコマンド、第二形態をスポーンさせるコマンドの3つに分けて考えていきます!

準備のコマンド!

 まずは準備として、第二形態で使うためのボスバーや、スコアボードを準備しておきます。

EIEI
EIEI

これらの解説は、中編で行ったので、サクッと紹介していきますよ!

 すべて、チャット欄で良いので真似される場合、1回ずつ実行しておいてください。

①クールタイム用のスコアボードを作成する

/scoreboard objectives add cooltime2 dummy

②クールタイム用のボスバーを作成する

/bossbar add cooltime2 " "

③ボスバーの最大値を300にする(この値を20で割ると、クールタイムが秒で表される)

/bossbar set minecraft:cooltime2 max 300

④プレイヤーにボスバーを表示するようにする

/bossbar set minecraft:cooltime2 players @a

①ボスの体力を表示する用のスコアボードを作成する

/bossbar add boss2 "神殿の長"

②ボスバーの最大値を200にする(後に作るボスの体力に合わせる)

/bossbar set boss2 max 200

③ボスバーの色を青に変更

/bossbar set boss2 color blue

④ボスバーを10等分する区切りをつける

/bossbar set boss2 style notched_10

マイン
マイン

これで、ボスバーが2つできましたね~

前回の分も合わせて、これで4つボスバーがあります!

 さらに、ボスと戦う上で不都合がないように、次のゲームルールなども最低限いじっておきましょう。

①モブの地形破壊を禁止する

/gamerule mobGriefing false

②天候サイクルを停止する

/gamerule doDaylightCycle false

③時間を夜にする

/time set night

 次に、これらのボスバーを動かすために常時実行させるコマンドたちです。

 リピート、無条件、常時実行のコマンドブロックを3つ用意します! そのうち1つには、チェーン、条件付き、常時実行のものをつなげます。

EIEI
EIEI

実はこのあたりも、前回全く同じことをやっています…(笑)

↑どこでもいいので、戦場の外にでも設置しておきましょう!

 リピート1つだけのものは、それぞれ次のコマンドを実行させます。

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

/execute store result bossbar minecraft:boss2 value run data get entity @e[tag=second,limit=1] Health

 そして、チェーンを繋げたリピートコマンドブロックは、次のコマンドを実行してもらいます。

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

 チェーンコマンドブロックは、次のコマンド! これで準備は完成です。

/scoreboard players remove @e[tag=second] cooltime2 1

EIEI
EIEI

ここから、第一形態が倒れた時~ というコマンドを実装していきますよ!

第一形態が倒れた時のコマンド!

 この、第一形態が倒れた時、ということを認識できなければ、第二形態は作れません。

 今回は、コマンドと回路を上手に組み合わせて、第一形態が倒れたことを検知していきます!

マイン
マイン

回路もコマンドも、丁寧に解説するので安心してくださいね。

 まず、中編で紹介した、第一形態をスポーンさせるためのコマンドブロック9連があると思いますが、

 それの先にチェーンコマンドブロックを追加してください!

↑矢印で指している部分に、チェーンコマンドブロックを1つ追加してください!

 その中身は、無条件、常時実行で、ある座標にレッドストーンブロックを設置するというものです。

EIEI
EIEI

このレッドストーンブロックは、第一形態が生きている、という意味を持たせます!

 ここから、コマンド内に座標が出てくることがありますが、EIEIの制作環境のものですので、

 真似される場合はご自身の環境の座標を、F3キーを押して確認してくださいね♪

/setblock -250 -54 359 minecraft:redstone_block

 そして、上記のコマンドでレッドストーンブロックを設置した先には、次のような回路を組みます。

 コマンドブロックは、リピート、無条件、動力が必要のものと、チェーン、条件つき、常時実行が2つです。

マイン
マイン

すなわち、ボスが生きている間だけ、このコマンドは実行され続けるわけですね。

↑回路と言っても、レッドストーンパウダーを置いただけです。リピートコマンドブロックに信号が伝われば何でもOK。

 これでどうやって、「第一形態が倒された時」を実現するか、ということなのですが、

 チェーンのコマンドブロックに、大正義executeコマンドで実現します!

EIEI
EIEI

unlessというサブコマンドを使うと、「○○がいないとき」という条件分岐ができちゃうんです!

/execute unless entity @e[type=zombie,tag=boss] run tellraw @p "神殿の長を倒した。"

 この「第一形態が倒れた」というものを受け取ったら、チェーンですぐに、レッドストーンブロックを消しておきます。

マイン
マイン

今後使わない、余計なコマンドが動いていると、重たいし、バグる危険性があるからね~

/setblock -250 -54 359 minecraft:air

 そして、また別の場所に、レッドストーンブロックを設置します!

 こちらは、第二形態を出現させる回路につながることとなります!

/setblock -248 -54 359 minecraft:redstone_block

EIEI
EIEI

ここまでの回路とは別物なので、干渉しないように注意して位置を考えましょう!

 ここから、第二形態をスポーンさせるコマンドを考えていきましょう!

ここまでの流れをまとめましょう!
・第一形態が生きている間だけ、レッドストーンブロックが置かれているせいで、動作し続けるチェーンコマンドブロックで、「第一形態がいないなら~」という条件を検知する
・第一形態がいないと分かったら、レッドストーンブロックを削除

実はまとめるとそこまで難しくないと思います。どうでしょう?
実際のプログラミングの現場でも、似たような考え方は多用されていたりしますよ!

スポンサーリンク

第二形態をスポーンさせるコマンド!

 第二形態を出現させる回路は、下の画像のように作ります。

 画像の赤色の羊毛の位置に、第一形態が倒されるとレッドストーンブロックが置かれます!

EIEI
EIEI

前回同様、ボスのセリフなどでたくさんのコマンドブロックを、遅延を入れて使っています!

 前回同様、リピーターの数だったり、実行するコマンドは、オリジナリティが出しやすいと思います♪

 今回紹介する以外では、第一形態のドロップ品を渡す、BGMを変える、などいろいろできちゃいます。

↑チェーンコマンドブロックは、合計9個、連続でつながっています!

 ①~③は、ボスにセリフを言わせるために、前回も多用したtellrawコマンドを使っています。

/tellraw @p "馬鹿な…"

/tellraw @p "この神殿の… 力ヲ…"

/tellraw @p "手ニ入れ… タ…?わタシが…?"

マイン
マイン

ダブルクオーテーションの中のボスのセリフも、お好きに変えちゃってね!

 そして、④、⑤ではエルダーガーディアンの呪いをイメージした、プレイヤーへの演出を作ります!

 まず、プレイヤーの近くで「デェーーン」というあの音を流す、というコマンドをplaysoundコマンドで実装します。

EIEI
EIEI

playsoundでは、何百もの効果音を自由に鳴らせるコマンドです!

/execute at @p run playsound minecraft:entity.elder_guardian.curse master @p ~ ~ ~

 そして、音と同時に、あのエルダーガーディアンの顔が表示される、パーティクルをプレイヤーに見せてあげます。

/execute at @p run particle minecraft:elder_guardian ~ ~ ~

 なんと、これだけでエルダーガーディアンの呪いをイメージした、演出が完成しました!

マイン
マイン

ここで実際に、effectコマンドで採掘速度低下Ⅲを5分間付与すれば、エルダーガーディアンの呪いと全く変わらないね!

 そして、⑥のコマンドブロックで、戦場の天井付近を水でおおいます!

 こうすると、戦場の中が水でほぼ満たされるのですが、これを用いて後々ギミックを作っていきますよ~!

EIEI
EIEI

水中戦を採用してみました!

第一形態と、戦場の雰囲気を簡単に変えられますよ~

/fill -273 -44 336 -303 -44 366 minecraft:water

 ⑦、⑧もセリフですので、お好きなようにどうぞ!

/tellraw @p "いのチの… ミなモト…"

/tellraw @p "いノチの… イノ… . . . !!!"

 そして、⑨では下から順に、次のようなコマンドを組んでいきます! 合計10個!

マイン
マイン

ボスをスポーンさせる以外にも、ボスバーを表示したりといろいろやりますよ~

①画面にタイトルを表示

/title @p title ” “

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

/title @p subtitle “vs神殿の長”

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

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

/summon drowned -288 -46 351 {NoGravity:1b,Health:200f,IsBaby:0b,Tags:[“second”],CustomName:'{“text”:”神殿の長”,”color”:”dark_blue”,”bold”:true}’,HandItems:[{id:”minecraft:trident”,Count:1b,tag:{Unbreakable:1b,Enchantments:[{}]}},{}],HandDropChances:[0.000F,0.085F],ArmorItems:[{id:”minecraft:chainmail_boots”,Count:1b,tag:{Unbreakable:1b,Enchantments:[{}]}},{id:”minecraft:chainmail_leggings”,Count:1b,tag:{Unbreakable:1b,Enchantments:[{id:”minecraft:protection”,lvl:3s}]}},{id:”minecraft:conduit”,Count:1b,tag:{Enchantments:[{}]}},{id:”minecraft:turtle_helmet”,Count:1b,tag:{RepairCost:1,Unbreakable:1b,Damage:0}}],ArmorDropChances:[0.000F,0.000F,0.000F,0.085F],Attributes:[{Name:generic.max_health,Base:200},{Name:generic.follow_range,Base:80},{Name:generic.knockback_resistance,Base:1},{Name:generic.movement_speed,Base:0},{Name:generic.attack_damage,Base:8},{Name:generic.attack_knockback,Base:10}]}

④第一形態のボスの体力を表示する、ボスバーを非表示に

/bossbar set boss1 visible false

⑤第一形態のボスのクールタイムを表示する、ボスバーを非表示に

bossbar set minecraft:cooltime1 visible false

⑥第二形態のボスの体力を表示する、ボスバーを表示する

/bossbar set boss2 visible true

⑦第二形態のボスのクールタイムを表示する、ボスバーを表示する

/bossbar set minecraft:cooltime2 visible true

⑧第二形態が生きている間、設置されるレッドストーンブロックを設置する

setblock -234 -54 362 minecraft:redstone_block

⑨第二形態のクールタイムのボスバーをリセット

bossbar set minecraft:cooltime2 value 300

⑩ボスのセリフ

/tellraw @p “…… … …。”

EIEI
EIEI

1つ目はインパルス、他は全部チェーンで一気に実行しましょう!

 ここまで正しく作ることができたら、次のようなことができています!

  • 第一形態を倒したら、メッセージが流れたり、音やエフェクトが見える
  • 第二形態が出現するとともに、ボスバーが第一形態のものから入れ替わる
  • 第二形態の体力が、ボスバーに反映される(クールタイムはまだ変更されません)
マイン
マイン

すごい、第二形態をスポーンさせることに成功したよ!

 ここからは、第二形態のスキルと、「第二形態が倒れた時~」というコマンドを実装していきます!

スポンサーリンク

第二形態のスキル作り!

一定間隔で水を引かせたり、満たしたりする!

 先ほど、第二形態をスポーンさせたとき、戦場を水で満たすようにしましたが、

 この水を一定間隔で無くしたり、再度出したりするようにしていきます!

EIEI
EIEI

戦いの途中で戦略が変わる、エンドラやウィザーなどを参考に考えてみました!

 ボスが召喚されるときに、レッドストーンブロックを設置したと思いますが、そこから回路を伸ばしていきます!

 ホッパーを用いた遅延回路が2つ、パルサー回路が3つ、信号の時間延長回路が1つと、大きめの回路になりますね~

マイン
マイン

大ざっぱな時間を用いた処理をするときは、

コマンドよりも回路のほうが簡単で適していますね~

 真似される方は下の画像を参考に! リピーターの遅延1、最大の違いにお気を付けください。

 コンパレーターは、実はすべて減算にしておけば動くので、画像が見づらければ減算にしてください(笑)

↑実はこれも大きなクロック回路です! リピーターを大量に置くのはスマートじゃないので、ホッパーを活用しています。

 そして、インパルス、無条件、動力が必要のコマンドブロックには、次のコマンドを実行させます。

①戦場を水で満たすコマンド

/fill -273 -44 336 -303 -44 366 minecraft:water

②戦場の水を消すコマンド

/fill -273 -44 336 -303 -44 366 minecraft:air

 なんと、これだけで第二形態が生きている間は、水が満ちたり引いたりします! 簡単!

EIEI
EIEI

「第二形態が生きている」を意味するレッドストーンブロックがあるからこそ、作れる回路です!

 ちなみに、第二形態が生きていない状態の時は、粘着ピストンで回路を遮断して、動かないようにしています。

粘着ピストンで回路を遮断するとき、必ず水を消してから切る位置にしています。
こうすることで、例えば第一形態と戦うときに水浸し、なんてことにならないようになっています。

ボスの移動を制限する!

 ギミックのために、ボスの移動を制限して空中にとどめるようにします!

 次のコマンドを、リピート、無条件、常時実行で実行し続けましょう!

/tp @e[type=minecraft:drowned,tag=second] -288 -45 351

マイン
マイン

なんでわざわざ空中にとどめておくの?

 こうすることで、水が引いた時に、プレイヤーの物理攻撃がギリギリ届かなくなるんですね!

EIEI
EIEI

第一形態の時もそうでしたが、一方的に攻撃して終わり、とならないようにしています!

スポンサーリンク

一定間隔で爆弾を抱えたドラウンドを召喚!

 最初の方で準備したスコアボードを使って、子ドラウンドを召喚するスキルを実装していきます!

 まずは、リピート、無条件、常時実行のコマンドブロックを3つ用意します。

 うち1つには1個、もう1つには4個、チェーン、条件付き、常時実行のコマンドブロックを繋げます!

マイン
マイン

実は前回、第一形態を作る時とほぼ同じことをしていますよ~

↑これだけで、子ドラウンドを定期的に召喚することができます!

 一番長いコマンドブロックの、チェーンには次のコマンドを入力します。

 クールタイムが0になった時を検知し、クールタイムを300に戻すコマンドです。

/execute if entity @e[tag=second,scores={cooltime2=..0}] run scoreboard players set @e cooltime2 300

EIEI
EIEI

0以下になった時~ ということを検知できるコマンドです!

 そして、そこから4つついているチェーンコマンドブロックは、

 すべて同じコマンドで、子ドラウンドを召喚するのに使います!

マイン
マイン

同じ子ドラウンドを、4体召喚します!

子ドラウンドをスポーンさせるためのsummonコマンド

/execute at @e[type=minecraft:drowned,tag=second] run summon drowned ~ ~ ~ {ArmorItems:[{id:”minecraft:chainmail_boots”,Count:1b,tag:{Unbreakable:1b,Enchantments:[{id:”minecraft:frost_walker”,lvl:1s}]}},{},{},{}],ArmorDropChances:[0.085F,0.000F,0.085F,0.085F],DeathTime:19,Health:6f,IsBaby:1b,Tags:[“bomb”],HandItems:[{id:”minecraft:tnt”,Count:1b},{}],HandDropChances:[0.000F,0.085F],Attributes:[{Name:generic.max_health,Base:6},{Name:generic.movement_speed,Base:0.3},{Name:generic.follow_range,Base:60},{Name:generic.attack_damage,Base:0},{Name:generic.armor,Base:0}]}

 そして、リピートコマンドブロック1つだけのものには、

 クールタイムが170となった瞬間に、子ドラウンドを光らせて、爆発のカウントダウンを表現させます!

EIEI
EIEI

クールタイムが300の時に子ドラウンドを召喚するので、

召喚してから6.5秒で光始めますね!

/execute if entity @e[tag=second,scores={cooltime2=170}] run effect give @e[type=minecraft:drowned,tag=bomb] minecraft:glowing 10 1

 残りのリピートコマンドブロックには、クールタイムが140となった瞬間に、火の玉を召喚するコマンドを設定して…

 火の玉は、子ドラウンドの少し下に召喚され、上方向にかなり強い初速度を与えてあります。

マイン
マイン

なので、火の玉は出現してすぐに子ドラウンドに当たって、爆発します!

/execute if entity @e[tag=second,scores={cooltime2=140}] at @e[type=minecraft:drowned,tag=bomb] run summon minecraft:fireball ~ ~ ~ {power:[0.0,-10.0,0.0]}

 また、子ドラウンドは爆発後、邪魔になってしまうといけないので倒しておきます。

 チェーンコマンドブロックに、次のコマンドを設定して、倒しましょう!

/kill @e[type=minecraft:drowned,tag=bomb]

EIEI
EIEI

これで、子ドラウンドを操作するコマンドは完成しました!

 あとはここに、「第二形態が生きている間」というコマンドを付け加えれば、スキルが実際に動くようになります!

第二形態が生きている間に動くコマンド!

 ここで、先ほどの回路にコマンドブロックをさらに接続します!

 リピート、無条件、動力が必要のものを2つを用意し、片方にはチェーン、条件付き、常時実行のものを2つつなげます!

マイン
マイン

先ほどの回路を使えるので、楽ですね~!

↑このレッドストーンブロックは、第二形態が生きているときのみ設置されるので、このように使えます!

 チェーン単体の方には、先ほどのスキルのために常に防具立てを連続召喚させます。

EIEI
EIEI

これも、前回ほぼ同じことをしましたね!

/summon minecraft:armor_stand ~ ~1 ~ {Tags:["countsecond"]}

 もう片方のチェーンコマンドブロックには、「第二形態が倒された時~」という検知をさせます。

 …実は、第一形態が倒れた時~ というコマンドと、全く同じことをしています(笑)

/execute unless entity @e[type=minecraft:drowned,tag=second] run tellraw @p "神殿の長を倒した。"

 そして、そこにつながるチェーンにも、同様にブロックの更新用のコマンドを設定します!

マイン
マイン

ここで設置するレッドストーンブロックは、これまでの回路と繋がらないようにね!

/setblock -234 -54 362 minecraft:air

/setblock -236 -54 364 minecraft:redstone_block

 ここで空気を設置する場所は、先ほどの回路でレッドストーンブロックが設置されていた場所になります♪

スポンサーリンク

ボスを倒したときのコマンド!

 ここまでで、ボス自体は完成しました! お疲れ様です!

 最後に、戦いが終了した時のコマンド例を紹介して、終わりたいと思います♪

EIEI
EIEI

戦いが終了した時のコマンドがないと、プレイヤーが戦場に取り残されちゃうからね。

 割と最低限のものしか用意していないので、

 演出を設定したりするときは、レッドストーン回路で遅延したりするなど工夫してくださいね~

①入口を再度開ける

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

②戦場に入った瞬間に設置されるレッドストーンブロックを消す

/setblock -264 -54 356 minecraft:air

③プレイヤーがガーディアンを倒した数をリセット

/scoreboard players set @e guardiankill 0

④戦場の中の水を消す

/fill -273 -44 336 -303 -44 366 air

⑤第二形態のボスの体力を表示する、ボスバーを非表示に

/bossbar set minecraft:boss2 visible false

⑥第二形態のボスのスコアボードを表示する、ボスバーを非表示に

/bossbar set minecraft:cooltime2 visible false

⑦全てのニワトリを倒す

/kill @e[type=chicken]

⑧プレイヤーを戦場の入り口までテレポートさせる

/tp @p -268 -53 351

⑨コマンドの実行に使用したレッドストーンブロックを消す

/setblock -235 -54 364 minecraft:air

マイン
マイン

これで、ボスと戦えるようになりました! お疲れ様です!

 これで、長かったボス作りも終わりです!

 せっかく作ったボス、1度戦ってみてくださいね♪

↑ゲームバランスなどを考えるのもボス作りの醍醐味ですよね♪
EIEI
EIEI

ぜひ、今回紹介したものを真似するだけでなく、

自分なりの要素を加えてオリジナルボスを完成させてくださいね!

 さて、今回は3回にわたって、オリジナルボスの作り方を紹介してみました!

 前編でのボス作り、中編のスキル作り、後編の第二形態つくりと、

 ボス作りに最低限必要な内容を、おさえられたかと思います!

マイン
マイン

ぜひ、「こんなボスも作れるよ!」などと言った報告などもお待ちしています!

 皆さんもぜひ! オリジナルボスをコマンドで作ってみてください!

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

コメント

  1. EIEI より:

    匿名さんへ返信
    それは何よりです!
    ぜひ、慣れてきたらオリジナルの要素なんかも足して遊んでみてくださいね♪

  2. 匿名 より:

    おかげでゾンビのボスを作ることが出来ました
    ありがとうございます!

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