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

2024-10-07

Java版1.21.1、統合版はv1.21.30で動作確認。

捨てる式コントローラーと、プレイヤーの向きで動くブレーキ付き自動車。

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

複雑だった向き検知を簡略化。車のスピードも調節可能な回転式、ティック式クロック回路に変更しました。また、ワンボタンでアクセルとブレーキを切り替える「捨てる式コントローラー」を追加。白線ブレーキはもちろん、村人ブレーキも標準装備になりました。コマンド数は少なめですが、プレイヤーの向き検知や、相対座標が難しいため、上級者向けの装置となります。

 

◻︎装置の特徴
・捨てる式コントローラー。
・相対座標、相対位置の活用。
・プレイヤーの向き検知。
・ストラクチャーブロックの応用。

 

更新履歴
2024-9-27/コマンドを簡略化して、多くの機能を追加しました。

 

完成動画。

旧式/ v1.0はこちら

 

 

目次

1.作成準備
・ログの非表示。
2.コマンドブロックの設置
3.装置全体図
・サポートブレーキ付!自動車の装置全体図。
4.【統合版】自動車の作成
・南向きの自動車。 ・北向きの自動車。
5.【Java版】自動車の作成
・南向きの自動車。 ・北向きの自動車。
6.捨てる式コントローラー
・防具立ての召喚。 ・アイテムの切り替え。 ・サポートブレーキ。
7.自動車の方向
・南向きへ移動。 ・北向きへ移動。 ・その他の方向。
8.仕上げ
・遊び方。
9.ワールドデータ
・完成データのダウンロード。

 

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

 

作成準備

ログの非表示。

◻︎ログの非表示とコマンドブロック入手。

/gamerule commandBlockOutput false
/give @s command_block

 

コマンドブロックの設置

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

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

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

 

装置全体図

サポートブレーキ付!自動車の装置全体図。

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

開始点は座標(0 -60 0)。

❶捨てる式コントローラー ❷南の装置 ❸北の装置

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

 

【統合版】自動車の作成

運転席付きの自動車を作ります。運転席を中心に正方サイズになるよう、構造体(物)を保存します。移動する時、元の自動車を消すため構造体(物)の外側2、3ブロックを空気ブロックします。※統合版とJava版ではストラクチャーブロックの保存や読み込み方法が異なります。

 

南向きの自動車。

正面が南向きの自動車を作成。北西の角にストラクチャーブロックを置き、縦横9×9、高さ4ブロックの境界線を作成。オフセットを使い、ロード時にストラクチャーブロックが表示されないように1ブロックずらします。名前は「car_s」で保存。

レッドストーンセーブモードは、HDDに保存します。※エクスポート(書き出し)が出来るのはWindows版のみ。

 

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

南向きの相対座標を確認しておきます。「桃」に設置した防具立て「car」から「P」までの距離がz軸「-3」、y軸「1.5」。「桃」から「空」までは、x軸「-4」、z軸「-7」。

 

北向きの自動車。

南向きで保存した「car_s」を180度回転してロードします。南向きと同じ手順で境界線を作り、名前を「car_n」で保存。

正方形で保存することで、回転しても運転席「P」の位置が変わらないようにしています。 ストラクチャーブロックは、自動車の向きを変えても北西の角に設置。

北向きの相対座標を確認しておきます。「桃」に設置した防具立て「car」から「P」までの距離がz軸「3」、y軸「1.5」。「桃」から「空」までは、x軸「-4」、z軸「-1」。

 

【Java版】自動車の作成

南向きの自動車。

Java版の場合、ストラクチャーブロックをロードするのに動力が必要です。外部に設置すると見栄えが良くないので、自動車の中に隠します。縦横9×9、高さ4ブロックの境界線を作成。相対位置を使い、運転席「P」が中心になるように調整。名前は「car_s」で保存。

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

 

自動車の断面図。

Java版の場合、相対位置を指定してストラクチャーブロックをロード出来るので、相対座標を調べる必要はありません。※コマンドを使って、ストラクチャーとレッドストーンブロックを設置します。

 

北向きの自動車。

南向きで保存した「car_s」を180度回転してロードします。南向きと同じ手順で境界線を作り、名前を「car_n」で保存。※北向きの場合も、相対位置「x:-4、y:0、z:-4」、構造物のサイズ「x:9、y:4、z:9」になります。

ストラクチャーブロックは、自動車の向きを変えても運転席「P」の下に設置。 ※地面下からストラクチャーブロックを開きます。

 

捨てる式コントローラー

アイテムを捨てることで、自動車を動かしたり停止したりするコントローラーを作ります。ワンボタンで操作出来るので、右クリックやオフハンドが使えない統合版でも使いやすいと思います。※コントローラー、またはキーボード推奨。

防具立ての召喚。

赤色のテラコッタを持っている時、自動車や防具立てを召喚します。

①は座標(1 -60 5)。②にはレッドストーントーチを設置。④は動力が必要。【統合版】は④を削除。

【Java版】

①execute if entity @a[nbt={Inventory:[{id:"minecraft:red_terracotta"}]}]
------
②summon armor_stand ~ ~ ~ {CustomName:"\"way\""}
③execute at @p run summon armor_stand ^ ^ ^3 {CustomName:"\"car\""}
④execute at @e[name=way] run tp @e[name=way] ~ ~ ~ ~72 ~
------
⑤kill @e[type=armor_stand]

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

①execute if entity @a[hasitem={item=red_terracotta}]
------
②summon armor_stand way ~~~
③execute at @p run summon armor_stand car ^^^3

①赤色のテラコッタを持っている時、信号を出す。
------
②防具立て「way」を召喚。
③プレイヤーの3ブロック先に、防具立て「car」を召喚。
【Java版】
④防具立て「way」を72度回転。
------
⑤防具立てを削除。

※チルダ(~)とキャレット(^)の違いに注意。

 

アイテムの切り替え。

アイテムを捨てた時、別のアイテムに切り替えます。※killコマンドが重複していますが、統合版でも安定して動くように調整しています。

②③⑤⑥は条件付き。

【Java版】

①execute if entity @e[nbt={Item:{id:"minecraft:tripwire_hook"}}]
②item replace entity @p hotbar.0 with minecraft:red_terracotta
③kill @e[type=item]
------
④execute if entity @e[nbt={Item:{id:"minecraft:red_terracotta"}}]
⑤item replace entity @p hotbar.0 with minecraft:tripwire_hook
⑥kill @e[type=item]

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

①execute if entity @e[name=トリップワイヤーフック]
②replaceitem entity @p slot.hotbar 0 red_terracotta
------
④execute if entity @e[name=赤色のテラコッタ]
⑤replaceitem entity @p slot.hotbar 0 tripwire_hook

①トリップワイヤーフックを捨てた時、信号を出す。
②ホットバー0に、赤色のテラコッタを設置。
③落ちているアイテムを削除。
------
④赤色のテラコッタを捨てた時、信号を出す。
⑤ホットバー0に、トリップワイヤーフックを設置。
⑥落ちているアイテムを削除。

 

サポートブレーキ。

地面下の白色のコンクリートや近くの村人を検知して、自動車を停止します。

②は条件付き。

【Java版】

①execute at @e[name=car] run execute if block ~ ~-1 ~ white_concrete run kill @e[name=car]
②title @a title "サポートブレーキ!"
------
③execute at @e[name=car] run execute if entity @e[type=villager,distance=..3] run kill @e[name=car]
------
④execute at @e[name=car] run tp @e[name=car] ~ -60 ~

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

②title @a title サポートブレーキ!
------
③execute at @e[name=car] run execute if entity @e[type=villager,r=3] run kill @e[name=car]

①防具立て「car」の下に白色のコンクリートがある時、防具立て「car」を削除。
②タイトルにサポートブレーキ!と表示。
------
③防具立て「car」の3ブロック以内に村人がいる時、防具立て「car」を削除。
------
④防具立て「car」の高さをy軸-60に固定。

※村人ブレーキの時は、タイトルを表示していません。③の距離は調整してください。④は防具立てが地面下に埋まらないようにしています。

 

 

自動車の方向

プレイヤーの向きに合わせて、自動車を召喚します。

南向きへ移動。

プレイヤーが南を向いている時、自動車を南に移動します。

②は動力が必要。②【統合版】はティックの遅延:5。【統合版】は⑤を削除。

【Java版】

①execute if entity @e[name=way] run execute if entity @p[y_rotation=-10..10]
------
②execute if entity @e[name=way,y_rotation=0] run execute at @e[name=car] run tp @e[name=car] ~ ~ ~1
③execute at @e[name=car] run setblock ~ ~ ~-3 structure_block{posX:-4,posZ:-4,mode:"LOAD",name:"car_s"}
④execute at @e[name=car] run setblock ~ ~ ~-2 redstone_block
⑤execute at @e[name=car] run tp @p ~ ~1.5 ~-3

【統合版】

①execute if entity @e[name=way] run execute if entity @p[rym=-10,ry=10]
------
②execute at @e[name=car] run tp @e[name=car] ~ ~ ~1
③execute at @e[name=car] run structure load "car_s" ~-4 ~ ~-7
④execute at @e[name=car] run tp @p ~ ~1.5 ~-3

①防具立て「way」がある時、プレイヤーが南向きの時、信号を出す。
------
②防具立て「car」を、1ブロック(z軸)移動。
③防具立て「car」から指定の座標に、ストラクチャー「car_s」を設置。
【Java版】
④防具立て「car」から指定の座標に、レッドストーンブロックを設置。
【統合版】
④防具立て「car」から指定の座標に、プレイヤーを移動。
⑤防具立て「car」から指定の座標に、プレイヤーを移動。

③【Java版】は相対位置、【統合版】は相対座標を指定して「car_s」をロード。 ※統合版はレッドストーンブロックの設置が不要です。

 

北向きへ移動。

プレイヤーが北を向いている時、自動車を北に移動します。

②は動力が必要。②【統合版】はティックの遅延:5。【統合版】は⑤を削除。

【Java版】

①execute if entity @e[name=way] run execute if entity @p[y_rotation=-10..10]
------
②execute if entity @e[name=way,y_rotation=0] run execute at @e[name=car] run tp @e[name=car] ~ ~ ~-1
③execute at @e[name=car] run setblock ~ ~ ~3 structure_block{posX:-4,posZ:-4,mode:"LOAD",name:"car_n"}
④execute at @e[name=car] run setblock ~ ~ ~2 redstone_block
⑤execute at @e[name=car] run tp @p ~ ~1.5 ~3

【統合版】

①execute if entity @e[name=way] run execute if entity @p[rym=165,ry=-165]
------
②execute at @e[name=car] run tp @e[name=car] ~ ~ ~1
③execute at @e[name=car] run structure load "car_n" ~-4 ~ ~-1
④execute at @e[name=car] run tp @p ~ ~1.5 ~3

南向きと同じなので解説は省略。※座標や方向、ロード名の違いに注意してください。

 

その他の方向。

解説は南と北のみですが、東と西も作り方は同じです。プレイヤーの向きは下記コマンドを参考にしてください。

◎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]

 

仕上げ

チェストにトリップワイヤーフックを入れておきます。その他、エンジン音を付けたり防具立てを透明にすると、よりリアルになります。ぜひ挑戦してみてください。

 

サポートブレーキ付!自動車をさらに進化させた、安心アシスト付!自動車も公開中です。

 

 

遊び方。

1.トリップワイヤーフックを捨てると、自動車を召喚して赤色のテラコッタを入手。
2.赤色のテラコッタ持っている間、自動車が進みます。
3.プレイヤーの向きに合わせて、自動車の進む方向が変わります。
4.地面下に白色のコンクリートがある時、村人が近くにいる時に車が停止。
5.赤色のテラコッタを捨てると、トリップワイヤーフック入手して、車が停止。

サバイバル、またはアドベンチャーモードにすると境界線は消えます。※運転席を中心に9×9×4ブロックは地形や建物が消えるので注意。

 

ワールドデータ

ワールドデータは、コマンド入力不要。初回時のみ「レバー」を下げてください。※全方向に対応した自動車が、ダウンロード出来ます。

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

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

◻︎統合版【動く装置】簡単!サポートブレーキ付!自動車v1.1.mcworld

iOS、Android/Minecraftで開く。Windows/ダブルクリックでインポート。

◻︎Java版【動く装置】サポートブレーキ付!自動車v1.1.zip
解凍後、ワールド内の「saves」フォルダに入れる。

※二次配布は禁止です。