Minecraft【作るゲーム】大乱闘モブバトル。No.7

2024-10-23

Java版1.21、統合版はv1.21.2で動作確認。

連勝したら「Coin」が倍増。モブを召喚して戦う、大乱闘モブバトルを作成。

大乱闘モブバトルv1.20。

じゃんけん回路にモブ召喚の演出を付けた、大乱闘モブバトル。v1.1では、AND回路を使った美しい判定回路でしたが、今回は四則演算、擬似乱数を使った回路に変更しました。コマンドブロックの数も減り、作りやすくなったと思います。スコアボード通貨「Coin」を使用。難しいコマンドは使っていませんが、制作手順が多いため上級者向けの装置となります。

※記事内容を大幅に変更しました。うまく表示されない場合は、ブラウザのキャッシュをクリアしてください。

 

◻︎装置の特徴
・「Coin」が増える、連勝システム。
・擬似乱数を使ったモブの召喚。
・四則演算で、勝敗結果を判定。

 

完成動画。v1.20

旧式/ v1.0はこちら。 v1.1はこちら

 

 

目次

1.作成準備
・ログの非表示。
2.コマンドブロックの設置
3.大乱闘モブバトル装置全体図
・スコアボードの作成。
4.プレイエリア
・バトル開始ボタン。・モブの召喚。・召喚ボタン。・景品回路。
5.乱数装置
・相手モブの召喚。
6.勝敗判定回路
・四則演算。・勝利と敗北と再バトル。
7.仕上げ
・ステージ作り。
8.遊び方
・操作方法。
9.ワールドデータとスキン
・完成データのダウンロード。・大乱闘モブバトルスキン。

 

※「as」や「minecraft:」などのコマンドは簡略化しています。一部のコマンド、マルチプレイやサーバーでは必要な場合があります。

 

作成準備

ログの非表示。

◻︎ログの非表示と各種ブロックを入手。

/gamerule commandBlockOutput false
/give @s command_block
/give @s structure_block

 

コマンドブロックの設置

コマンドブロックは画像に合わせて配置。「ブロック種類」「レッドストーン」を変更します。 変更がある場合は、個別に解説していきます。

◎配置したコマンドブロックの状態/すべて無条件。

コマンドブロックの色 ブロックの種類 レッドストーン
黄色 インパルス 動力が必要
青色 チェーン 常時実行
紫色 リピート 常時実行

 

大乱闘モブバトル装置全体図

フラットワールドを作成したら、座標(0 -60 0)へ移動して開花したツツジの葉を設置。装置は開始点座標(0 -60 0)を基準に、南が正面がになるよう設置にしています。座標を合わせてブロックを設置していくと、コマンドはコピー&ペーストで作れます。

開始点は座標(0 -60 0)。※ストラクチャーブロックは目安。

❶プレイエリア ❷勝敗判定回路 ❸乱数装置 

大乱闘!モブバトル装置を3つのエリアに分けて作ります。❶にはバトル開始ボタン、召喚ボタン、景品回路があります。

◻︎南向きを確認するには
ストラクチャーブロックを設置して、境界線の青い線が伸びる方が南。※赤い線は東。

 

スコアボードの作成。

2種類のスコアボードを作成。「count」は、勝敗を計算したり連勝を数えます。「Coin」はスコアボード通貨として使用。「Coin」をサイドバーに表示します。さらにモブがアイテムを落としたり、クリーパーが地形を壊さないようゲームルールも変更。

【Java版/統合版 共通】

/scoreboard objectives add count dummy
/scoreboard objectives add Coin dummy
/scoreboard objectives setdisplay sidebar Coin
------
/gamerule doMobLoot false
/gamerule mobGriefing false

 

プレイエリア

バトル開始ボタン。

「Coin」を消費して、バトルを開始します。再バトルでは「Coin」を使わず動作。

「あ」は座標(10 -60 12)。「い」は座標(10 -61 11)。「う」は範囲座標(3 -59 12)、(7 -59 12)。⑤は動力が必要。※統合版のみ、ティックの遅延10。

「あ」は再バトルの際に、レッドストーンブロックを設置。
「い」は地面下に錆止めされた酸化した銅を設置。上に音符ブロックを設置(1回クリック)。
「A」はレッドストーントーチ。「A、B、C」には音符ブロックを設置。
「A」は1回クリック、「B」は5回クリック、「C」は8回クリック。

①の上にはレッドストーンダスト、その上に銅ブロック、木のボタンを設置。※コンパレーターは減算モードにする必要はありません。

【Java版/統合版 共通】

①execute if entity @p[scores={Coin=5..}] run scoreboard players remove @p Coin 5
②fill 3 -59 12 7 -59 12 redstone_block
③kill @e[type=!player]
④title @a title "バトル!"
------
⑤setblock 10 -60 12 air

◎統合版はダブルクォーテーションマーク「"」無し。 ④title @a title バトル!

①プレイヤーの「Coin」が5以上の時、「Coin」を5引く。
②「う」の範囲座標にレッドストーンブロックを設置。
③プレイヤー以外のエンティティをキル。
④タイトルに「バトル!」と表示。
------
⑤「あ」の座標に空気ブロックを設置。※統合版のみ、ティックの遅延10。

 

モブの召喚。

モブを選び召喚する装置。モブに合わせてスコアをセットします。

「P1」は座標(8 -58 9)。

「P1」はプレイヤー用のモブを召喚する場所。錆止めされた酸化した銅の格子。
②④⑥の上に粘着ピストンを設置(矢印の方向)。

【Java版/統合版 共通】

①scoreboard players set p1 count 1
②summon husk 8 -57 9
------
③scoreboard players set p1 count 2
④summon skeleton 8 -57 9
------
⑤scoreboard players set p1 count 3
⑥summon creeper 8 -57 9

①③⑤「count」のp1に、それぞれのスコアを設置。
②④⑥「p1」の座標の1ブロック上に「ハスク、スケルトン、クリーパー」を召喚。

 

召喚ボタン。

粘着ピストンで動作するボタンを作ります。装置に必要なコマンドも追加。

「え」は範囲座標(3 -59 12)、(7 -59 13)。

「D」は空色、「E」は黄色、「F」は桃色のコンクリート、石のボタンを設置。
さらに召喚するモブが分かるように、モブの頭を設置。※ハスクは無いのでゾンビで代用。

【Java版】

①item replace entity @e[type=skeleton] weapon.mainhand with air
②execute if entity @p[scores={Coin=..0}] run kill @e[type=!player]

【統合版】②はJava版と同じ。

①replaceitem entity @e[type=skeleton] slot.weapon.mainhand 0 air

①スケルトンが攻撃してこないように、弓を削除。
②「Coin」が0の時、プレイヤー以外のエンティティをキル。

 

景品回路。

勝利した時、ポイントを追加。1勝以上でランプを点灯し、感圧版を踏むと「Coin」を回収。1回でも負けるとストックされた「Coin」は全て消えます。3連勝すると、自動で6倍の「Coin」を回収します。

⑥⑦は条件付き。「G」の上にレッドストーンランプを設置。「お」は座標(5 -58 14)。①の上には錆止めされた酸化した銅、オークの感圧版を設置。

【Java版/統合版 共通】

①execute if score ポイント count matches 1..1 run scoreboard players add @p Coin 10
②execute if score ポイント count matches 2..2 run scoreboard players add @p Coin 20
③scoreboard players reset ポイント count
------
④execute if score ポイント count matches 1..3
------
⑤execute if score ポイント count matches 3..3 run scoreboard players add @p Coin 30
⑥scoreboard players reset ポイント count
⑦playsound entity.firework_rocket.twinkle player @a 5 -58 14

【統合版】⑦以外はJava版と同じ。

⑦playsound firework.twinkle @a 5 -58 14

【1・2連勝】
①②「count」のポイントが1または2の時、「Coin」を追加。※感圧版を踏んで回収。
③「count」のポイントをリセット。
【景品ランプ】
④「count」のポイントが1〜3の時、信号を出す。※ランプを点灯。
【3連勝】
⑤「count」のポイントが3の時、「Coin」を追加。※自動で回収。
⑥「count」のポイントをリセット。
⑦プレイエリア「お」の座標で、花火の音を再生。

 

乱数装置

相手モブの召喚。

プレイヤーがモブを召喚した時、乱数装置を使って相手モブを召喚します。

「P2」は座標(4 -58 9)。

「P2」は対戦相手モブの召喚場所。錆止めされた銅の格子。

【Java版/統合版 共通】

①execute if score p1 count matches 1..3
------
②execute store result score モブ count run random value 1..3
③execute if score モブ count matches 1..1 run summon husk 4 -57 9
④execute if score モブ count matches 2..2 run summon skeleton 4 -57 9
⑤execute if score モブ count matches 3..3 run summon creeper 4 -57 9
------
⑥execute as @e[type=!player] at @s run tp @s ~ ~ ~ 0 0

①「count」p1のスコアが1〜3の時、信号を出す。
------
②「count」モブのスコアを1〜3の範囲でランダムに選ぶ。
③④⑤「count」モブのスコアに合わせて、モブを召喚。
------
⑥プレイヤー以外のエンティティを、その場にテレポート(南向き)。

※テレポートではモブの動きを完全に停止出来ません。「P1、P2」をバリアブロックで囲みます。/give @s barrier

 

勝敗判定回路

四則演算。

相手モブを召喚した時、スコアを引き算して信号を出します。「count」のスコアもリセット。

【Java版/統合版 共通】

①execute if score モブ count matches 1..3
------
②scoreboard players operation p1 count -= モブ count
③fill 3 -59 12 7 -59 13 air
------
④scoreboard players reset モブ count
⑤scoreboard players reset p1 count

①「count」モブのスコアが1〜3の時、信号を出す。
------
②「count」p1のスコアから、「count」モブのスコアを引く。
③【プレイエリア】召喚ボタン「え」の範囲座標に、空気ブロックを設置。
------
④⑤「count」のモブ、p1をリセット。

 

◻︎召喚モブとスコア。

ハスク(1) スケルトン(2) クリーパー(3)

例)引き算した時の「p1」スコア。(5種類3パターン)

引き分け 勝利の場合 敗北の場合
0 -1、2 −2、1

 

勝利と敗北と再バトル。

桃色は勝ち、黄色は再バトル、空色は敗北を検知します。

「P1」は座標(8 -58 9)。「P2」は座標(4 -58 9)。①②⑥⑦は動力が必要。

「P1、P2」にいるモブを検知するため、引数を使用します。※1ブロックのみ。

【Java版/統合版 共通】 勝利!(桃色)

①execute if score p1 count matches -1..-1
②execute if score p1 count matches 2..2
------
③title @a title "1Pの勝利!"
④kill @e[x=4,y=-57,z=9,dx=0,dy=0,dz=0]
⑤scoreboard players add ポイント count 1

◎統合版はダブルクォーテーションマーク「"」無し。③title @a title 1Pの勝利!

①②「count」p1のスコアが「-1、2」の時、信号を出す。
------
③タイトルに「1Pの勝利!」と表示。
④「P2」にいるエンティティをキル。
⑤「count」のポイントに1を足す。

 

【Java版/統合版 共通】 敗北!(空色)

⑥execute if score p1 count matches -2..-2
⑦execute if score p1 count matches 1..1
------
⑧title @a title "1Pの敗北!"
⑨kill @e[x=8,y=-57,z=9,dx=0,dy=0,dz=0]
⑩scoreboard players reset ポイント count

◎統合版はダブルクォーテーションマーク「"」無し。③title @a title 1Pの敗北!

⑥⑦「count」p1のスコアが「-2、1」の時、信号を出す。
------
⑧タイトルに「1Pの敗北!」と表示。
⑨「P1」にいるエンティティをキル。
⑩「count」のポイントをリセット。

 

Java版/統合版 共通】 再バトル!(黄色)

⑪execute if score p1 count matches 0..0
------
⑫title @a title "再バトル!"
------
⑬setblock 10 -60 12 redstone_block

◎統合版はダブルクォーテーションマーク「"」無し。③title @a title 再バトル!

⑪「count」p1のスコアが「0」の時、信号を出す。
------
⑫タイトルに「再バトル!」と表示。
------
⑬【プレイエリア】バトル開始ボタン「あ」の座標に、レッドストーンブロックを設置。

 

仕上げ

ステージ作り。

太陽でモブが燃えないように、屋根を付けたステージを作ります。

◎作成ポイント

コマンドの数を減らすため、演出効果は大幅に減らしています。装置はシンプルですが、テンポ良く遊べると思います。「Coin」は経験値やアイテムと交換出来るようにすると良いかも知れません。ゲームモードをアドベンチャーモードにしたら完成です。

1P用では乱数で相手モブを召喚しています。少し改良すれば、マルチプレイでの対戦装置も作れると思うので挑戦してみてください。

装置はシングルプレイ用です。マルチプレイで遊ぶには、ターゲットセレクタにタグや引数を追加してください。

【Java版/統合版 共通】「Coin」の入手コマンド。

/scoreboard players add @p Coin 30

 

遊び方

バトルに勝利して「Coin」を増やします。

操作方法。

1.「Coin」が5以上ある時、木のボタンを押すとバトル開始。
2.石のボタンを押してモブを召喚します。
3.相手より強いモブが出れば勝ち。ランプが点灯して「Coin」がストックされます。
4.負けた場合は、ストックされた「Coin」が消えます。
5.引き分けの場合「Coin」を消費せず再バトル。もう一度モブを召喚します。

モブはじゃんけんになっています。ハスク(グー)、スケルトン(チョキ)、クリーパー(パー)。※「Coin」が5以下の時は、モブバトルは動きません。

 

ワールドデータとスキン

完成データのダウンロード。

ワールドデータは、コマンド入力不要。「開始レバー」を下げると装置が起動します。本体右のボタンを押すと、Coinが入手出来ます。

◎ダウンロード先/大乱闘モブバトルv1.20

【統合版】大乱闘モブバトルv1.20.mcworld
iOS、Android/Minecraftで開く。Windows/ダブルクリックでインポート。

【Java版】大乱闘モブバトルv1.20.zip
解凍後、ワールド内の「saves」フォルダに入れる。

※二次配布は禁止です。

 

大乱闘モブバトルスキン。

スティーブタイプ 64×64px Skin
ダウンロード/ battle_s0ch

※二次配布は禁止です。