この記事では、Minecraft Java Edition(バージョン1.17.1)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
コマンドで特定の範囲のブロックをコピーしたいマインクラフター
「コマンドを使ってブロックをコピーしたい。どんなコマンドを使えばいいの? 額縁とかブロックじゃないものもコピーすることって出来るのかな?」
こんな疑問を解決します!
- ブロックのコピーにはcloneコマンド
- エンティティはコピーされない
こんにちは! マインクラフターのなつめ(@natsume_717b)です。
マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
→配布マップ・ダウンロードページ
今回はコマンドを使ってブロックをコピーしたいという方の疑問を解消していきます。
そのために使うコマンドは、cloneコマンドです。
cloneという単語から複製するというイメージが湧きますね。
この記事では、cloneコマンドの使い方を基礎から解説します。
また、基礎だけでなくもう1歩踏み込んだ内容についても解説し、額縁といったエンティティなどもコピーできるのかといったことも説明しています。
なので、この記事1つでcloneコマンドを充分使えるようになりますよ。
ブロックのコピーにはcloneコマンド
ブロックをコピーするには、cloneコマンドを使います。
例えば、座標x=10,y=10,z=10の地点から座標x=15,y=15,z=15の地点にあるブロックをコピーして、座標x=20,y=10,z=20から座標x=25,y=15,z=25の地点に同じものを設置したいとします。
この場合は
/clone 10 10 10 15 15 15 20 10 20
となります。
上記のコマンドを解説すると、まず初めにコピーしたい空間の始点と終点を座標で指定します。
今回の場合ならば、”10 10 10 15 15 15“の部分ですね。
この始点と終点は正しく立体的な四角形ができれば、どの対角線を選んで指定しても問題ありません。
その次に指定するコピーしたものを設置する座標については少しコツが要ります。
上記のコマンドでいうところの、”20 10 20”の箇所ですね。
コピーしたい場所を2つの座標を使って立体的に指定したのに対して、コピー先の指定は座標を1つ入力するだけです。
なので、○○から◇◇までという指定の方法ではありません。
コピー先として指定した座標に、立体的に指定した2つの座標の中で最も小さい値が重なるように、ブロックが設置されます。
要するに上記のコマンドの場合は、座標x=10,y=10,z=10の地点から座標x=15,y=15,z=15の地点の中でxyzすべてが最も小さい座標として、座標x=10,y=10,z=10が挙げられます。
コピーしたい場所として指定した場所、”20 10 20″に座標x=10,y=10,z=10のブロックが重なるようにコピーされるということですね。
なので、コピー先の座標=コピーする座標の中で最も小さい値の座標の場所と覚えておきましょう。
これでcloneを使うことができます。
次はコピーの設定などを扱うモードについて解説していきます。
応用:モードについて
先ほどcloneコマンドの基本を解説しましたが、情報を追記していくことでさらなる使い方ができます。
まずはコマンドを見ていきましょう。
言語化されているものなので、そこまで難しく感じないと思います。
/clone コピー元の始点 コピー元の終点 コピー先の始点 maskmode clonemode (tilename)
コピー先の始点までは先ほど説明した通りなので、大丈夫だと思います。
肝心なのは、maskmodeからtilenameまでの3項目です。
それぞれの項目がどういったことを意味しているのかを見ていきます。
maskmode
maskmodeには、3つのモードがあり、それぞれコピー元のブロックをどのようにコピーするのかを指定します。
maskmodeの名称 | 役割 |
---|---|
filtered | 後述するtilenameで指定したブロックだけをコピーする |
masked | 空気ブロックを含めずにコピーする |
replace | 空気ブロックを含めてコピーする |
1番初めにcloneコマンドを紹介したように、maskmodeを指定しなくてもcloneコマンド自体は実行できます。
ただし、その場合はreplaceが指定されているものとして実行されるので、空気ブロックを含めたくないという場合などはきちんとmaskmodeを指定しましょう。
clonemode
clonemodeはコピーした時にコピー元の対処を決められます。
maskmode同様に3種類あるので、覚えておきましょう。
clonemodeの名称 | 役割 |
---|---|
force | コピー元とコピー先の範囲が被っている場合に、無理やりにでもコピーする |
move | コピー元をコピーした後に空気ブロックに置き変える |
normal | コピー元に対してアクションを起こさない。 (forceやmoveのように、コピー元に対して何か起きることはない) |
指定しなかった場合は、normalを指定しているものとして扱われます。
tilename
tilenameはmaskmodeにてfilteredを選択した場合に必須な項目です。
入力する内容としては、アイテムIDを入力するだけ。
アイテムIDを調べる方法については簡単にアイテムIDを知る方法!とある2つのキーを同時押しするだけ!【Java版】を参考にしてください。
また、IDの後ろに[]を使用することで、コピーするブロックの状態などを指定することもできます。
例えば、燃焼中のかまどだけをコピーしたい場合は、”minecraft:furnace[lit=true]”と入力すればOKです。
”[”を入力した時点で、状態を指定することのできるブロックならば、候補が現れるので色々試してみると良いですよ。
エンティティはコピーされない
さて、cloneコマンドについて一通り説明しましたが、額縁などのエンティティはコピーできるのかについてお話していきます。
答えを言うと、エンティティはcloneコマンドではコピーできません。
これはシステムの都合上どうしようもないので、手の施しようがありません。
cloneコマンドはブロックだけをコピーできるということです。
ですが、エンティティをコピーする方法が全くないわけではありません。
コマンドではないのですが、ストラクチャーブロックを使うことでエンティティを含めてコピーすることが可能です。
エンティティを含めるという項目があるので、すぐにわかると思います。
ストラクチャーブロックに関しては以下の記事をどうぞ。
一応、ストラクチャーブロックもレッドストーン回路で動かせる部分もありますので、全くコマンドと連携が取れないわけではありません。
executeコマンドを使い特定の条件でsetblockコマンドが実行されるようにして、赤石ブロックをストラクチャーブロックに隣接するように設置することで、自動的にコピーすることも可能です。
赤石ブロックでなくとも、レッドストーントーチなど赤石信号さえ送ることができれば代用できます。
というわけで、cloneコマンドではエンティティをコピーすることができません。
しかし、ストラクチャーブロックを使うことでエンティティをコピーすることができます。
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
- 座標xyz10から座標xyz15の空間にあるブロックを、座標x=20,y=10,z=20の地点を基準にコピーするコマンド
/clone 10 10 10 15 15 15 20 10 20
- 言語化したcloneコマンド
(コピーするブロックの状態などについても記載したもの)
/clone コピー元の始点 コピー元の終点 コピー先の始点 maskmode clonemode (tilename)
- コピー先として指定した座標に、コピー元となる空間の中の1番小さい数値を持つ座標が重なるようにコピーされます。
- 特定のブロックだけをコピーしたい場合はfiltered、空気ブロックを含めずにコピーするならmasked、空気ブロックを含めるならreoleceを選択します。
- コピー元の空間と重なっている場合に無理矢理被せるならforce、コピー元を移動させるようにコピーするならmove、コピー元に対して何も動作しなくてよいならnormalを選択します。
- cloneコマンドでは、エンティティをコピーすることはできません。
この記事は以上になります。