Minecraft【動く装置】サポートブレーキ付!自動車。

2024-02-16

Java版1.20.1、統合版はv1.20.1で動作確認。

自分で作った自動車や乗り物を走らせます。また、建物を破壊しないように、ブレーキをかけます。

サポートブレーキ付!自動車。

ストラクチャーブロックとテレポートを使って、自分で作った自動車や乗り物を移動できる装置を作ります。自動車をロードする時、周辺のブロックも消えてしまいます。建物を壊さないように、指定したブロックの上でブレーキをかけ止まるようにしました。応用すれば、村人や他のエンティティが近くにいる場合も停止できます。

【簡単】コースでは、装置の起動と停止、南方向に進み白色のコンクリート上で止まる自動車を作成します。
【挑戦】コースでは、装置を増設してプレイヤーの向きを検知して方向を変え、南や北へ進む自動車を作ります。

◻︎装置の特徴
・相対位置の活用。
・テレポートのコマンドの応用。
・プレイヤーの向き検知。

 

完成動画と作り方。

 

 

目次

1.作成準備
・フラットワールド。
・チャットコマンド。
2.コマンドブロックの設置

◻︎簡単コース
3.南向き自動車の作成
・構造体の保存_統合版(南)。
・構造物の保存_Java版(南)。
4.サポートブレーキ付!自動車。
・基本装置。
・ブレーキの応用。

◻︎挑戦コース
5.北向き自動車の作成
・構造体の保存_統合版(北)。
・構造物の保存_Java版(北)。
6.サポートブレーキ付!自動車
・装置の増設。
・方向検知。
・さらなる挑戦へ。

7.ワールドデータ
・完成データのダウンロード。

※一部Java版と統合版のコマンドに違いがあるので気をつけてください。

 

作成準備

フラットワールド。

マインクラフトのバージョンも上がり、フラットワールドの作成が簡単になりました。 詳しくは、下記の関連記事を参考に作成してください。

 

 

 

チャットコマンド。

チャットに大量のコマンドログが流れ、装置作成の邪魔になるのでログを非表示にしておきます。 ※Java版では、新規ワールド作成時にも非表示に出来ます。

◻︎コマンドログの非表示 ※表示する場合 「false」を「true」に変更。

/gamerule commandBlockOutput false

装置作成に必要なコマンドブロックを手に入れます。

◻︎コマンドブロックの入手

/give @s command_block

 

コマンドブロックの設置

Java版と統合版では、コマンドやブロックの名称など違いがあります。装置の解説はJava版の名称で統一しています。

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

配置したコマンドブロックの状態/すべて無条件 ※()内は統合版の名称。

コマンドブロックの色 ブロックの種類 レッドストーン
黄色 インパルス
(衝撃)
動力が必要
(レッドストーンが必要)
青色 チェーン 常時実行
(常にアクティブ)
紫色 リピート
(反復)
常時実行
(常にアクティブ)

 

【簡単】南向き自動車の作成

運転席付きで南向きの自動車を作ります。自動車の正面と左右は1ブロック、高さと背面は2ブロック以上の空きを作り、構造体(物)を保存します。空きを作るのは、移動する時するに元の自動車を消すためです。※クローンコマンドでも動作しますが座標入力が大変なので、ストラクチャーブロックがおすすめです。

◎注意点
統合版とJava版ではストラクチャーブロックの動作が異なります。自動車でよく使われる絵画は、Java版だとエンティティ扱いになりコマンドが複雑になるので、今回は使いません。

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

 

構造体の保存_統合版(南)。

自動車正面の真ん中「桃」を基準の位置に設定。ストラクチャーブロックは北西の角に設置されます。ストラクチャーサイズを調整し、構造体の保存エリアを決めます。

ストラクチャーブロックは、構造体の保存エリアに入らないようオフセットを使い、1ブロックずらして設置します。ロード時に表示されず、見栄えが良くなります。名前は「car_s」で保存。

◻︎自動車(5×6ブロック・南向き)空気ブロックを含めた構造体の場合。
基準の位置「桃」からみて、北西の角「空」は「x:-3」「z:-7」の位置(相対位置)。相対位置を使って「桃」を基準に「car_s」をロードします。

「桃」は基準の位置。「P」は運転席。「空」はストラクチャーブロックがロードされる場所(北西の角)。

レッドストーンセーブモードは、メモリーに保存します。※Windows版ではエクスポート(書き出し)が出来るので他のワールドでも使えるようになります。iOSやAndroid版ではアドオンを使って外部からロードのみ可能です。

 

構造物の保存_Java版(南)。

統合版と同じように、自動車正面の真ん中「桃」を基準の位置に設定。ストラクチャーブロックは北西の角に設置されますが、相対位置で変更出来ます。※画像参照。

Java版の場合、ストラクチャーブロックをロードするのに動力が必要です。外部に設置すると見栄えが良くないので、自動車の中に隠します。ストラクチャーサイズを調整し、構造物の保存エリアを決めます。ストラクチャー名は「car_s」で保存。

◻︎自動車(5×6ブロック・南向き)空気ブロックを含めた構造体の場合。
基準位置「桃」からみて、ストラクチャーブロックは「z:-2」、レッドストーンブロックは「z:-3」の位置(相対位置)。

自動車の断面図。大きさや基準位置、運転席は統合版と同じです。

セーブモードで保存します。Java版では、自動で「.nbt」ファイルとして保存されるので、他のワールドにも簡単に移動出来ます。

 

【簡単】サポートブレーキ付!自動車

フラットワールドを作成します。今回は相対座標を使っているので座標は気にしなくても良いですが、開始点を決めておくと作りやすいです。開始点には開花したツツジの葉を設置。装置は開始点を基準に、南が正面がになるよう設置にしています。自動車の大きさや運転席の位置を変更した場合、合わせて相対位置も変更してください。

基本装置。

簡単では4つの装置を作り、自動車を南に移動します。クロック回路はホッパー式を採用。

矢印はホッパーの向き(アイテムを1個入れる)。⑥は条件付きに変更。

【Java版】

【トリガー】
①execute if entity @a[nbt={Inventory:[{Slot:-106b,id:"minecraft:tripwire_hook"}]}]
②execute at @p run summon armor_stand ^ ^ ^3 {CustomName:"\"car\""}
③kill @e[name=car]
④execute at @e[name=car] run tp @e[name=car] ~ -60 ~
【サポートブレーキ】
⑤execute at @e[name=car] run execute if block ~ ~-1 ~ white_concrete run kill @e[name=car]
⑥title @a title {"text":"サポートブレーキ!","color":"white"}
【構造物のロード(南)】
⑦execute at @e[name=car] run tp @e[name=car] ~ ~ ~1
⑧execute at @e[name=car] run setblock ~ ~ ~-2 structure_block{posX:-3,posZ:-5,mode:"LOAD",name:"car_s"}
⑨execute at @e[name=car] run setblock ~ ~ ~-3 redstone_block
⑩execute at @e[name=car] run tp @p ~ ~1.5 ~-3

【トリガー】防具立て「car」の位置が基準位置「桃」。
①ワイヤーフックをオフハンドに持ったプレイヤーがいる時、信号を出す。
②信号がある時。プレイヤーが向いている方向の3ブロック先に、防具立て「car」を召喚。
③信号がない時、防具立て「car」を削除。
③防具立て「car」の高さを座標「y:-60」に固定。(フラットワールドの場合)
【サポートブレーキ】
⑤防具立て「car」の下に白色のコンクリートある時、防具立て「car」を削除。
⑥タイトルにサポートブレーキ!と表示。(条件付き)
【構造物のロード(南)】 相対位置は【簡単】南向き自動車の作成を参照。
⑦防具立て「car」を南に1ブロックテレポートします。座標「z:1」
⑧防具立て「car」の2ブロック後ろに、ロードモードのストラクチャーブロックを設置。
⑨防具立て「car」の3ブロック後ろに、レッドストーンブロックを設置。
⑩防具立て「car」の3ブロック後ろ、高さ1.5ブロックにプレイヤーをテレポート。

 

【統合版】

【トリガー】
①execute if entity @a[hasitem={item=tripwire_hook,location=slot.weapon.mainhand,quantity=2}]
②execute at @p run summon armor_stand car ^ ^ ^3
③kill @e[name=car]
④execute at @e[name=car] run tp @e[name=car] ~ -60 ~
【サポートブレーキ】
⑤execute at @e[name=car] run execute if block ~ ~-1 ~ concrete["color":"white"] run kill @e[name=car]
⑥title @a title サポートブレーキ!
【構造物のロード(南)】
⑦execute at @e[name=car] run tp @e[name=car] ~ ~ ~1
⑧execute at @e[name=car] run structure load "car_s" ~-3 ~ ~-7
⑨execute at @e[name=car] run tp @p ~ ~1.5 ~-3

【トリガー】 ※Java版と同じ解説は省略。
①ワイヤーフック2個をメインハンドに持ったプレイヤーがいる時、信号を出す。
【構造物のロード(南)】 相対位置は【簡単】南向き自動車の作成を参照。
⑧防具立て「car」から「x:-3、z:-7」の位置に、ロードモードのストラクチャーブロックを設置。
⑨防具立て「car」の3ブロック後ろ、高さ1.5ブロックにプレイヤーをテレポート。
※統合版ではレッドストーンブロックが不要なので、⑩はありません。

 

ブレーキの応用。

白色(白)のコンクリート以外で、村人や動物などを検知してブレーキをかけたい場合は、下記のコマンドを参考にしてください。
例)防具立て「car」の5ブロック以内に村人がいる時、信号を出す。

◎Java版
execute at @e[name=car] as @e[type=villager,distance=..5] run kill @e[name=car]
◎統合版
execute at @e[name=car] as @e[type=villager,r=5] run kill @e[name=car]

◎注意点
斜め向きで装置を起動すると、自動車がずれてロードされる場合があります。気になる場合は、空気ブロックの横幅を増やしてください。ターゲットセレクターは@p(近くのプレイヤー)を対象にしています。マルチプレイの場合は、タグや名前などでターゲットを選択してください。

 

【挑戦】北向き自動車の作成

北に移動する自動車を作ります。南向きで作った「car_s」を180度回転してロードします。向きが変わっても作り方は同じですが、プレイヤーや構造体(物)の相対位置が変わります。

構造体の保存_統合版(北)。

「桃」は基準の位置。「P」は運転席。「空」はストラクチャーブロックがロードされる場所(北西の角)。

◻︎自動車(5×6ブロック・北向き)空気ブロックを含めた構造体の場合。
北向きでも基準の位置は自動車正面の真ん中の「桃」になります。「桃」からみて北西の角「空」は「x:-3」位置(相対位置)。名前は「car_n」で保存します。

構造物の保存_Java版(北)。

◻︎自動車(5×6ブロック・北向き)空気ブロックを含めた構造体の場合。
作り方は南向きと同じです。ストラクチャーブロック内のサイズと相対位置を調整します。ストラクチャー名は「car_n」で保存します。

◎ストラクチャーのサイズ 「x:7 y:5 z:8」 ◎相対位置 「x:-3、y:0、z:-2」

 

【挑戦】サポートブレーキ付!自動車

装置の増設。

【簡単】で作った装置を増設して、北に移動する自動車を作ります。

クロック回路から信号を伸ばし、防具立て「way」を設置。カラーコンクリートは目安。

【Java版】
◻︎防具立て /summon armor_stand ~ ~ ~ {CustomName:"\"way\""}

【構造物のロード(北)】
①execute at @e[name=car] run tp @e[name=car] ~ ~ ~-1
②execute at @e[name=car] run setblock ~ ~ ~2 structure_block{posX:-3,posZ:-2,mode:"LOAD",name:"car_n"}
③execute at @e[name=car] run setblock ~ ~ ~3 redstone_block
④execute at @e[name=car] run tp @p ~ ~1.5 ~3

【統合版】
◻︎防具立て summon armor_stand way ~ ~ ~

【構造物のロード(北)】
①execute at @e[name=car] run tp @e[name=car] ~ ~ ~-1
②execute at @e[name=car] run structure load "car_n" ~-3 ~ ~
③execute at @e[name=car] run tp @p ~ ~1.5 ~3

【構造物のロード(北)】
統合版ではレッドストーンブロックが不要なので、④はありません。

 

方向検知。

プレイヤー向きを検知して、自動車の進行方向を変えます。

相対位置を使って、防具立て「way」を基準にコンパレーターを設置します。

【Java版】

【南向き検知】
①execute if entity @p[y_rotation=-10..10]
②execute at @p run tp @e[name=car] ~ ~ ~3
③execute at @e[name=way] run setblock ~-1 ~ ~ comparator[facing=south]
④execute at @e[name=way] run setblock ~1 ~ ~ air
【北向き検知】
⑤execute if entity @p[y_rotation=165..-165]
⑥execute at @p run tp @e[name=car] ~ ~ ~-3
⑦execute at @e[name=way] run setblock ~1 ~ ~ comparator[facing=south]
⑧execute at @e[name=way] run setblock ~-1 ~ ~ air

【統合版】

【南向き検知】
①execute if entity @p[rym=-10,ry=10]
②execute at @p run tp @e[name=car] ~ ~ ~3
③execute at @e[name=way] run setblock ~-1 ~ ~ unpowered_comparator ["direction":0]
④execute at @e[name=way] run setblock ~1 ~ ~ air
【北向き検知】
⑤execute if entity @p[rym=165,ry=-165]
⑥execute at @p run tp @e[name=car] ~ ~ ~-3
⑦execute at @e[name=way] run setblock ~1 ~ ~ unpowered_comparator ["direction":0]
⑧execute at @e[name=way] run setblock ~-1 ~ ~ air

【南向き検知】
①プレイヤーが南を向いている時、信号を出す。
②防具立て「car」を、プレイヤーから3ブロック南にテレポート。
③防具立て「way」の「x:-1」にコンパレーターを南向きに設置。
④防具立て「way」の「x:1」を空気ブロックを設置。
【北向き検知】
内容は南と同じなので省略します。

※統合版では["direction":0]の数字を変えると、コンパレーターの向きを変更出来ます。

 

さらなる挑戦へ。

エンジン音を付けたり、防具立てを透明にするとよりリアルになります。また、スコアボードを使ったクロック回路に変更すると移動速度が速くなります。ファンクションを使ってコンパクトにするのも良いです。ぜひ挑戦してみてください。

向き検知がややこしいので、東西のコマンドを残しておきます。作り方は北の時と同じです。

◎Java版
【東向き検知】execute if entity @p[y_rotation=-100..-80]
【西向き検知】execute if entity @p[y_rotation=80..100]

◎統合版
【東向き検知】execute if entity @p[rym=-100,ry=-80]
【西向き検知】execute if entity @p[rym=80,ry=100]

 

ワールドデータ

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

【統合版】 v1.20.1(簡単)
アプリで開くから、Minecraftを選びます。

ダウンロード/サポートブレーキ付!自動車.mcworld

【Java版】 1.20.1(簡単)
zipを解凍して、フォルダを「saves」に入れて起動します。

ダウンロード/サポートブレーキ付!自動車.zip

※二次配布は禁止です。