マルチプレイなら『シン・VPS』がおすすめ!

【誰でも簡単】滑らかに動くブロックはコマンドで扱える【マイクラ】

【誰でも簡単】滑らかに動くブロックはコマンドで扱える【マイクラ】

この記事では、Minecraft Java Edition(バージョン1.19.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

滑らかに動くブロックが気になるマインクラフター
「滑らかに動くブロックってどうやって動いているの? コマンドを使っているのかな? 仕組みを教えて欲しいな!」

こんな疑問を解決します!

本記事の内容
  • 滑らかに動くブロックはコマンドで扱える
  • 実際に使ってみる

こんにちは! マインクラフターのなつめ(@natsume_717b)です。

なつめ

マイクラ歴は5年程で、最近は脱出マップやミニゲームを制作しています!
→ダウンロードページ

この記事では滑らかに動くブロックについて解説していきます。

滑らかに動く理由はブロックではなくエンティティであるからで、tpコマンドによって動かすことができるからです。

どういう仕組みなのか、どういったコマンドを使うのかということを詳しく説明していきます。
さっそく見ていきましょう!



滑らかに動くブロックはコマンドで扱える

滑らかに動くブロックは、コマンドを使うことで扱えます。
というのも、滑らかに動くブロックの正体がfalling_blockというエンティティだからですね。

エンティティとはブロックでないものというイメージでOKです。
falling_blockはブロックの見た目をしていますが、エンティティに分類されています。

分かりやすく例を出すと、落下中の砂や砂利です。
砂や砂利が落下している最中はfalling_blockというエンティティに変化し、着地点を見つけると再びブロックに戻るわけです。

この落下しているブロック、falling_blockの見た目をコマンドで指示してあげれば、好きなブロックを落下させることができるわけです。

加えて、tpコマンドをfalling_blockに対して行えば落下のみならず好きな方向へ移動させてあげることも可能ということになります。

というわけで、滑らかに動くブロックの正体はfalling_blockとなります。

実際に使ってみる

実際にfalling_blockを動かしてみましょう。
単純な動きならば、3つのコマンドで移動させることができます。

falling_blockを用意するコマンド、falling_blockを移動させるコマンド、不具合が起きないようにするコマンドの3つです。
また、falling_blockを消すコマンドについても触れていきます。

falling_blockを用意するコマンド

まずは、falling_blockを用意します。
falling_blockは安定しないエンティティなので、防具立てに乗せる形で出力します。

/summon armor_stand ~ ~1 ~ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["test"],Passengers:[{id:"minecraft:falling_block",BlockState:{Name:"minecraft:dirt"},Time:1}]}

このコマンドを実行すると、実行場所の1マス上に透明な防具立てが召喚され、それに土ブロックが乗っているかと思います。

透明な防具立てを召喚していますので、土ブロックが浮いているようになっていればOKです。

これでfalling_blockの用意はOKです。

土ブロック以外のものにしたい場合は、BlockStateの中にあるminecraft:dirtの部分を動かしたいブロックのIDに変更しましょう。

falling_blockを消したい場合

今回の場合は、falling_blockを消すには防具立てをキルしてしまえばOKです。
乗っている防具立てが消えてしまえば、falling_blockも消えます。

そのためのコマンドがこちら。

/kill @e[type=minecraft:armor_stand,tag=test]

タグを指定していますので、testのタグを持っていない防具立ては削除されないようになっています。

falling_blockを動かすコマンド

falling_blockを乗せた防具立てを召喚しましたので、この防具立てを動かすことで同時にfalling_blockも動くようになっています。

スケルトンホースに乗っているスケルトンがスケルトンホースの動きに従って移動しているのと同じですね。

なので、防具立てを少しずつテレポートさせて滑らかに動いているように見せます。

そのためのコマンドがこちら。
1回だけ起動してもわずかにしか移動しないので、コマンドブロックに入力しリピート、無条件、常時実行と設定しましょう。

execute as @e[tag=test] at @s run tp @s ^ ^0.01 ^0.01

testというタグが付いてるエンティティを、その場所から向いている方向の斜め上に向かってテレポートさせています。

つまり、このコマンドを弄ることで、どのように動かすのかを決めることができます。

移動する位置を指定している^については過去記事にて解説していますので、そちらで確認してください。

【コマンド】座標を示す記号2種+ほか9種を徹底解説【マイクラ】

不具合を起こさないためのコマンド

それでは、最後のコマンドです。

このコマンドはfalling_blockを落下し続けていると指示するためのコマンドとなります。
落下し続けるようにしないとブロックに戻ってしまうので、このコマンドは必須です。

というわけで、Timeという項目を延々と1にし続けます。
Timeはfalling_blockの存在できる時間を示すので、falling_blockを常に存在できるようにしているわけですね。

なので、コマンドブロックにリピート、無条件、常時実行と設定して、常に実行します。

execute as @e[type=minecraft:falling_block] run data merge entity @s {Time:1}

これで、falling_blockを途中でブロックに戻すことなく扱えます。

まとめ

というわけで、今回のまとめです。

今回使ったコマンドはこちら。

今回使ったコマンド
  • 土ブロックの見た目をしたfalling_blockが乗っている、透明な防具立てを召喚するコマンド
/summon armor_stand ~ ~1 ~ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["test"],Passengers:[{id:"minecraft:falling_block",BlockState:{Name:"minecraft:dirt"},Time:1}]}
  • testのタグを持つ防具立てを削除するコマンド
/kill @e[type=minecraft:armor_stand,tag=test]
  • testというタグの付いているエンティティを全て、向いている向きから見て斜め上にテレポートさせるコマンド
execute as @e[tag=test] at @s run tp @s ^ ^0.01 ^0.01
  • 全てのfalling_blockのTimeを1に変更するコマンド
execute as @e[type=minecraft:falling_block] run data merge entity @s {Time:1}
ポイント
  • 滑らかに動いているブロックは、falling_blockというエンティティ。
  • falling_blockは安定しないので、防具立てのPassengerとして乗せるのが良い。

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】