Minecraft【作るゲーム】パルクール。No.1

2024-07-15

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

障害物を置き、ゴールまでのタイムを競う。マルチプレイで遊べるレースゲームを作ります。

パルクールv1.20

パルクール装置をマルチプレイに対応しました。ラップタイム機能を追加して、ゴールしたプレイヤーの時間だけをサイドバーに表示。最後のプレイヤーがゴール、またはギブアップするまで装置を動作させます。コマンドの難易度は少し上がりましたが、数は少なめなので中級者向けの装置となります。パルクールはアクション要素が強く、タッチ操作で遊ぶのは難しいです。キーボードまたはコントローラー推奨。

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

 

◻︎装置の特徴
・引数を使った範囲検知。
・タイマーをアクションバーに表示。
・タグ不要。アイテムを使ってラップタイムを計測。
・四則演算でラップタイムをスコアに代入。

 

更新履歴
2024-6-21/マルチプレイに対応。ラップタイム機能を追加しました。
2023-5-26/統合版の「test」を廃止して「execute if score」に変更しました。
2023-4-3/レッドストーンブロックを廃止して、ラッチ回路を導入しました。
2022-12-5/Java版、統合版の1.19以降に対応。装置も再設計しました。

 

完成動画。v1.20

旧式/ v1.0はこちら

 

 

目次

1.作成準備
・ログの非表示。
2.コマンドブロックの設置
3.パルクール装置全体図
・範囲内のプレイヤーを検知。・スタートゲートを作成。
4.ゲーム回路
・スコアボードの作成。・ステージエリア。・タイマー装置。・ゴールエリア。
5.仕上げ
・コース作り。
6.遊び方
・操作方法。
7.ワールドデータとスキン
・完成データのダウンロード。・パルクールスキン。

 

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

 

作成準備

ログの非表示。

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

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

 

コマンドブロックの設置

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

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

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

 

パルクール装置全体図。

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

開始点は座標(0 -60 0)。「え」はリスタート位置(4 -58 23)。①は開始スイッチ用(4 -58 25)※ストラクチャーブロック、テラコッタは目安。

❶スタート ❷ステージ ❸ゴール

パルクール装置を3つのエリアに分けています。

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

 

範囲内のプレイヤーを検知。

❷ステージは2種類、❸ゴールでは1種類。範囲内のプレイヤーを検知するため、引数を使用します。高さ(dy=)は10ブロック。xとy軸の座標を確認。

 

❷ステージ(a)※ステージエリアだけの範囲。
「あ」の座標と、黄色のテラコッタまでの距離(引数)。
@a[x=1,y=-60,z=23,dx=6,dy=10,dz=16]

❷ステージ(b)※スタートとステージエリアを合わせた範囲。
「あ」の座標と、赤色のテラコッタまでの距離(引数)。
@a[x=1,y=-60,z=6,dx=6,dy=10,dz=21]

❸ゴールは「い」の座標と、空色のテラコッタまでの距離(引数)。
@a[x=1,y=-60,z=2,dx=6,dy=10,dz=3]

 

スタートゲートを作成。

鉄格子を使って、スタートゲートを作ります。①のコマンドブロック上に、2ブロック追加。木のボタンを設置。

「A」は座標(1 -56 23)。「B」は座標(7 -56 23)。①は座標(4 -58 25)。

 

【Java版/統合版】 共通

①fill 1 -56 23 7 -56 23 air replace iron_bars

①範囲内の鉄格子を、空気ブロックに置き換える。

 

ゲーム回路

スコアボードの作成。

スコアボード「time」を作り、サイドバーに表示しておきます。※「below_name」や「list」でもOKです。 さらに即時リスポーン、スポーン位置がズレないようにゲームルールも変更しておきます。

 

【Java版/統合版】共通

/scoreboard objectives add time dummy "秒(タイム)"
/scoreboard objectives setdisplay sidebar time
------
/gamerule spawnRadius 0
/gamerule doImmediateRespawn true

◎統合版はダブルクォーテーションマーク「"」無し。
/scoreboard objectives add time dummy 秒(タイム)

 

ステージエリア。

プレイヤーがステージエリアに入った時、鉄のトラップドア音を鳴らし、ゲームを開始します。

①は座標(1 -60 24)。②は動力が必要。鉄のトラップドアを設置。④にはレッドストーントーチを設置。「え」は座標(4 -58 23)。「お」は地面下、金ブロック。

 

【Java版】

①execute if entity @a[x=1,y=-60,z=6,dx=6,dy=10,dz=16]
②item replace entity @a[x=1,y=-60,z=6,dx=6,dy=10,dz=21] hotbar.0 with stick
③title @a actionbar [{"score":{"name":"","objective":"count"}},{"text":" 秒"}]
------
④scoreboard players reset @a time
⑤scoreboard objectives add count dummy
⑥title @a title "開始!"
⑦spawnpoint @a 4 -57 25

【統合版】②③⑥以外はJava版と同じ。

②replaceitem entity @a[x=1,y=-60,z=6,dx=6,dy=10,dz=21] slot.hotbar 0 stick 1 0
③titleraw @a actionbar {"rawtext":[{"score":{"name":"","objective":"count"}},{"text":" 秒"}]}
------
⑥title @a title 開始!

①プレイヤーが、範囲内にいる時、信号を出す。「❷ステージ(a)」の範囲座標。
②範囲内にいるプレイヤーのホットバー0を、木の棒に置き換え。「❷ステージ(b)」の範囲座標。
③スコアボード「count」のをアクションバーに表示。
------
④スコアボード「time」をリセット。
⑤スコアボード「count」を作成。
⑥タイトルに「開始!」を表示。
⑦リスポーン位置を設定。「え」の座標。※Java版は座標の後ろに角度を入力すると、リスポーン時の向きを指定出来ます。

 

タイマー装置。

ゲーム内時間の「ティック(tick)」を数え、1秒のクロック回路を作成。※20ティックで約1秒。

②④⑤は条件付き。「お」には音符ブロックを設置。

 

【Java版】 

①execute if entity @a[nbt={Inventory:[{id:"minecraft:stick"}]}]
②scoreboard players add ティック count 1
------
③execute if score ティック count matches 20..
④scoreboard players set ティック count 0
⑤scoreboard players add count 1

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

①execute if entity @a[hasitem={item=stick}]

①プレイヤーが、木の棒を持っている時、信号を出す。※「minecraft:」が必要(Java版)。
②「count」のティックに1を足す。
------
③「count」のティックが20以上の時、信号を出す。
④「count」のティックを0に設定。
⑤「count」のに1を足す。

 

ゴールエリア。

プレイヤーがゴールエリアに入った時、音符ブロックを鳴らしゲームを終了します。

②③は条件付き。

 

【Java版】

①clear @a[x=1,y=-60,z=2,dx=6,dy=10,dz=3] stick 0
②scoreboard players operation @a[x=1,y=-60,z=2,dx=6,dy=10,dz=3,nbt={Inventory:[{id:"minecraft:stick"}]}] time > count
③clear @a[x=1,y=-60,z=2,dx=6,dy=10,dz=3] stick 1
------
④title @a title "終了!"
⑤clear @a stick 1
⑥scoreboard objectives remove count
⑦fill 1 -56 23 7 -56 23 iron_bars replace air

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

①clear @a[x=1,y=-60,z=2,dx=6,dy=10,dz=3] stick 0 0
②scoreboard players operation @a[x=1,y=-60,z=2,dx=6,dy=10,dz=3,hasitem={item=stick}] time > count
③clear @a[x=1,y=-60,z=2,dx=6,dy=10,dz=3] stick 0 1
------
④title @a title 終了!
⑤clear @a stick 0 1

【❸ゴールの範囲座標】
①プレイヤーが、範囲内にいる時、信号を出す。
②範囲内で木の棒を持っているプレイヤーのスコア「time」を「count」のに置き換え。※「minecraft:」が必要(Java版)。
③範囲内のプレイヤーの木の棒を削除。
------
④タイトルに「終了!」を表示。
⑤木の棒を削除。
⑥スコアボード「count」を削除。
⑦範囲内の空気ブロックを、鉄格子に置き換える。「スタートゲート」の範囲座標。

 

仕上げ

コース作り。

コマンドブロックを隠してコースを仕上げます。ゲームモードをアドベンチャーモードにしたら、完成です。

◎作成ポイント

スタートエリアは外側、ゴールは内側から扉を開けれるようにします。ゴール地点にドロッパーを設置。体力を回復出来るアイテムを入れておきます。※スタートエリアの下は検知コマンドが有効なので、プレイヤーが入れないようにします。

 

遊び方

操作方法。

スタートゲートが開いたら障害物を乗り越え、早くゴールしたプレイヤーの勝ち。

1.木のボタンを押して、スタートゲートを開く。
2.ステージエリアに入ると、タイマーが起動。
3.ゴールするとサイドバーの秒(タイム)に、自分のラップタイムが表示されます。
4.すべてのプレイヤーがゴール、またはステージ内から出ると装置は終了。(装置外を含む)

※ステージ内にプレイヤーがいる時は、死亡してもレンガブロックから再スタート。スタートゲートが閉じた後、ゲームを開始すると秒(タイム)はリセットされます。

シングルプレイやもちろん、複数人でタイムを競って遊ぶことが出来ます。

 

ワールドデータとスキン

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

ワールドデータは、コマンド入力不要。「開始レバー」を下げると装置が起動します。

◎ダウンロード/パルクールv1.20

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

【Java版】パルクールv1.20.zip
解凍後、ワールド内の「saves」フォルダに入れる。

※二次配布は禁止です。

 

パルクールスキン。

スティーブタイプ 64×64px Skin
【左】パルクールスティーブ
ダウンロード/ parkour_s0ch.png

スティーブタイプ 64×64px Skin
【右】パルクールスティーブ2
ダウンロード/ parkour_s20ch.png

※二次配布は禁止です。