Minecraft【Java版/統合版】
ミニゲーム!1vs1PVPバトル。
コマンドブロックとスコアボードを使って、 プレイヤー対プレイヤーの対戦装置を作成。
Java版「1.15.2」、統合版「v1.14.3」対応。
統合版はWindows10、iOSで動作確認しました。
ミニゲーム1vs1PVPバトル。
ロビーで赤か青のボタンを押して、試合にエントリーします。
待機室に移動して対戦相手を待ちます。
待機時間(60秒)で対戦相手が来ない場合は、ロビーへ戻ります。
エントリーランプが点灯中は、同じ色の待機室には入れません。
待機中に対戦相手が来たら、試合会場に移動します。
階段横に装備入りのチェストが現れるので、急いで装備します。
試合開始の合図で対戦スタート!
対戦中はサバイバルモード、制限時間は5分!
50秒ごとに3回ドロッパーからポーションが出現。
相手を倒すか試合会場から出るか、5分経つと試合終了。
勝敗結果を表示してロビーに戻ります。
完成サンプル動画
統合版v1.14.3マルチプレイ時のスキンバグで、相手と同じスキンになっています。
1vs1PVPバトル装置の作成手順。
目次
1.使用コマンド
・共通コマンド
2.全体配置図
・装置を作る前に
3.試合会場と待機室
4.試合会場の範囲
5.ロビー
・ロビー装置 表 ・ロビー装置 裏
6.AND回路
・タイマー用アーマースタンド
7.各種スコアボード
8.待機タイマー
・表示用タイマー ・計算用タイマー ・条件でアクション
9.試合準備装置
10.バトルタイマー
・表示用タイマー ・計算用タイマー ・条件でアクション
11.アイテム乱数装置
12.アイテム装置
・team1装備キット装置 ・team2装備キット装置 ・ポーションアイテム装置 ・バトル開始合図
13.勝敗判定装置
・Java版 ・統合版 ・Java版、統合版共通
14.引き分け合図
15.リセット装置2
・統合版
16.リセット装置1
※一部Java版と統合版のコマンドに違いがあるので気をつけてください。
使用コマンド。
1vs1PVPバトル装置以外で使用してるコマンドです。説明時には省略します。
コマンドブロックの入手。
/give @p command_block |
コマンドログを消す。※「false」を「true」に変更すると、ログを表示します。
/gamerule commandBlockOutput false |
共通コマンド
よく使う共通のコマンドです。特殊な場合を除き、説明時には省略します。
「~ ~ ~」にはそれぞれの座標を入れます。
cloneコマンド。指定した範囲を複製します。
clone ~ ~ ~ ~ ~ ~ ~ ~ ~ |
fillコマンド。指定した範囲を空気ブロックに置き換える。
fill ~ ~ ~ ~ ~ ~ air |
コマンドで装置のオン・オフする時に使います。説明時には省略します。
レッドストーンブロックを置く。
setblock ~ ~ ~ redstone_block |
空気ブロックで、他のブロックを消す。
setblock ~ ~ ~ air |
全体配置図。
1vs1PVPバトル装置の全体配置図です。必要なものを確認しておきます。装置を作る前に
説明しやすいように装置は広げて作ってあります。
実際はなるべくコンパクトに作ると良いです。
コマンドブロックが試合会場から離れすぎると、うまく動作しない場合があります。
□コマンドブロックの設定(指定がない場合)
青色のコマンドブロックは、「チェーン」「常時実行(常にアクティブ)」。
紫色のコマンドブロックは、「リピート(反復)」「動力が必要(レッドストーンが必要)」。
※一部動作が異なるコマンドブロックがあります。
一部のコマンドブロックで「リピート(反復)」「常時実行(常にアクティブ)」を使っています。
テレポートコマンドを繋げると動けなくなる場合があるので、気をつけてください。
□テレポートの無限ループになった場合
統合版は、設定→ゲームからコマンドブロックの有効無効を切り替えが出来ます。
Java版は少し手間がかかります。
他のアカウントからワールドに入り、奇跡的にコマンドブロックを停止する。
マルチサーバーにワールドを移動してコマンドブロックの有効無効を切り替える。
試合会場と待機室。
試合会場は壊れても戻せるように、cloneコマンドを作っておきます。
待機室は移動出来ないようにガラス等で囲み、試合会場の外に作ります。
試合会場の範囲。
試合会場の範囲を決めます。
作りたいステージに合わせて広さを調節してください。
座標開始地点を「G」とします。
※座標の数字が一番小さい角を選びます。
x=~,y=~,z=~,の「~」には座標開始地点「G」の座標を入れます。
dx=0,dy=0,dz=0 は、1ブロック分の範囲になります。
※座標を数える場合、座標開始地点は0です。1ブロック横は1になります。
「G」から「H」へ進んでみて、動いた座標を確認します。
xが動いた場合、「H」のx座標から「G」のx座標を引き算するだけです。
同じく「G」から「I」も確認します。
※試合会場の向きによって座標xやyの方向が変わります。
高さは「J」から、座標開始地点「G」の高さの座標を引き算します。
座標開始地点を地下にすれば、試合会場の高さも大きくなります。
座標入力例
開始地点座標、G座標(x10 y15 z5)。
H座標(x50 y15 z5)、I座標(x10 y30 z5)、J座標(x50 y30 z25)の場合。
※座標の数字が減っていく場合、開始地点座標を変更してください。
x=10,y=15,z=5,dx=40,dy=15,dz=20 |
ロビー。
各種装置へ移動したり、戻ってきたりする場所です。
ワールドはアドベンチャーモードにしておきます。
ロビー装置 表
①赤色の試合エントリーボタン(チーム1)
②青色の試合エントリーボタン(チーム2)
※チームカラーは目安です。コマンドでは色でチーム分けしません。
③待機室や試合会場から、ロビーへ戻って来る場所。
試合会場の範囲と同じように、金ブロック上の範囲を決めておきます。
※金ブロック上で座標の数字が一番小さい角を、座開始地点にします。高さはプレイヤーの2ブロック分です。
x=~,y=~,z=~,dx=2,dy=2,dz=2 |
ロビー装置 裏
チーム分け、エントリーランプ点灯、待機室や試合会場へ移動する装置を作ります。①’は正面のボタン裏につなげます。
①’は①のクローンです。
一部座標や名前を変更しますが、チーム2も同じ回路です。
説明は省略しますが、チーム2も同時に作っていきます。
①スコアボードに「team」を追加します。
scoreboard objectives add team dummy |
スコアボードの数字を変えてチームを分けます。
②スコアボード「team」に1をセットします。(赤色)
※青色は「scoreboard players set @p team 2」
scoreboard players set @p team 1 |
③setblockコマンドで、「A」にレッドストーンブロックを置いてエントリーランプを点灯します。
④何度もボタンを押せないように、setblock airコマンドで①’のコマンドブロックを消します。
⑤各種スコアボードの「う」にsetblockコマンドでレッドストーンブロックを置く。
⑥AND回路の④’をsetblock airコマンドで消します。※青色は③’を消す。
⑦スコアボードの「team」が1のプレイヤーを、待機室へ移動させます。
「~ ~ ~」には、試合会場と待機室「C」の座標を入れます。
※青色は「tp @e[scores={team=2}] ~ ~ ~」 試合会場と待機室「D」の座標を入れます。
tp @e[scores={team=1}] ~ ~ ~ |
⑧試合終了後、ロビーに戻るように設定します。
「~ ~ ~」には、ロビー③の座標を入れます。
※ワールドスポーン地点とは違います。昼でもベットでスポーンポイントを更新出来ます。(統合版はクリエイティブモード以外)
spawnpoint @p ~ ~ ~ |
⑨cloneコマンドで①のコマンドブロックを、①’にクローンします。
⑩setblock airコマンドで「A」のレッドストーンブロックを消します。
⑪setblock airコマンドで「B」のレッドストーンブロックを消します。
以下説明の時は「team1」「team2」で進めていきます。
team1(チーム1赤色/スコアボードのteamが1)
team2(チーム2青色/スコアボードのteamが2)
AND回路。
試合にエントリーしたプレイヤーの数で、装置の動作を変えます。
プレイヤーが1人の時は待機タイマー装置を動作させます。
プレイヤーが2人揃った時、⑤のコマンドブロックに信号を送り、試合準備装置を動作します。
①赤色の待機室にteam1のプレイヤーが来た時、「あ」にレッドストーンブロックを置きます。
座標とスコアボード名のセレクター引数を使って装置を動作させています。
x=~,y=~,z=~,の「~」には、試合会場と待機室「C」の座標を入れます。
「~ ~ ~」には、「あ」の座標を入れます。
「リピート(反復)」「常時実行(常にアクティブ)」。
Java版
execute as @e[x=~,y=~,z=~,dx=0,dy=0,dz=0,scores={team=1}] run setblock ~ ~ ~ redstone_block |
統合版 ※setblock手前の「~ ~ ~」はそのまま。
execute @e[x=~,y=~,z=~,dx=0,dy=0,dz=0,scores={team=1}] ~ ~ ~ setblock ~ ~ ~ redstone_block |
②青色の待機室にteam2のプレイヤーが来た時、「い」にレッドストーンブロックを置きます。
x=~,y=~,z=~,の「~」には、試合会場と待機室「D」の座標を入れます。
「~ ~ ~」には、「い」の座標を入れます。
※コマンドは①と同じです。「team=1」を「team=2」に変更します。
③’と④’は③と④のクローンです。
③④setblockコマンドで、待機タイマーの「え」にレッドストーンブロックを置く。
⑤setblockコマンドで、試合準備装置の「か」にレッドストーンブロックを置く。
タイマー用アーマースタンド
タイマー用に、アーマースタンドを設置しておきます。
⑥「Time」と名前を付けて、アーマスタンドを召喚します。
「~ ~ ~」には、設置場所の座標を入れます。
※座標を入れなければ、自分の立っている場所に召喚されます。
Java版
/summon armor_stand ~ ~ ~ {CustomName:"\"Time\"",CustomNameVisible:1b} |
統合版
/summon armor_stand Time ~ ~ ~ |
2ページ目へ
おすすめ記事もどうぞ!