今日はsetblockコマンドについて解説します。
setblockを使いこなしたらこのようなことができます。
- ロビーにあるボタンを押したらゲームスタート処理が開始する
- 座標を一瞬でコピーできるようになる
- ゲーム終了の条件を満たしたらゲーム終了処理を起動する
- 応用で地面にアイテムを出現させることもできる
マイクラでゲーム制作をするには欠かせないコマンドですね。
それでは解説です。
※本記事はminecraft統合版向けに書いています。java版の場合は正常動作しない可能性があります
ブロックを1個だけ設置したい場合は「setblock」
setblockコマンドの構文は簡単です。
x y z の部分にはそれぞれブロックを設置したい場所の座標の数字を入力します。
そのままx y zと入力してもエラーになりますのでご注意ください。
/setblock x y z redstone_block
/setblock 指定した場所にブロックを1つ置くよ
x y z x座標、y座標、z座標の位置(にブロックを置くよ)
redstone_block レッドストーンブロック(を置くよ)
コマンドが成功すれば「x座標、y座標、z座標の位置にレッドストーンブロックを置く」という命令文が実行されます。
※実際には /setblock 20 64 30 redstone_block のように座標には数字が入ります。
起きたいブロックの名前を調べるには
redstone_blockの部分を起きたいブロックの名前に変えることで好きなブロックを置くことができます。
例えば石ブロックを起きたい場合はこのようになります。
/setblock 20 64 30 stone
ブロックの名前はWikiなどのまとめサイトで検索するとよいです。
データ値/Bedrock Edition(新しいタブで開きます)
fillコマンドとの違い
ブロックを設置するコマンドと言えば「fillコマンド」が有名です。
fillコマンドとの決定的な違いは
setblockは1つのブロックしか置くことができない
という点です。
それに比べてfillコマンドは範囲を指定してブロックを置くことができるので、一瞬で整地したり豆腐建築を建てたりすることができました。
マイクラのfillコマンドで整地を10倍速くする方法【統合版】
それではsetblockコマンドではなくてfillコマンドだけ使用すればよいのか?
実はsetblockコマンドはfillコマンドよりも簡単・便利に使う使い方が存在します。
ここからはsetblockコマンドを使うメリットをご紹介していきます。
座標を簡単にコピーするのに便利
setblockコマンド本来の使い方ではありませんが、座標をコピーするのに頻繁に使います。
座標をコピーする具体的な方法
- 座標がほしい場所に適当なブロック(石ブロックとする)を置く
- 画面の中心にある+マークを置いたブロックに合わせる
- チャット欄を開く
- /setblock まで入力する(kの後には半角スペース)
- TABキーを2回押すと石ブロックのx座標が自動で入力される
- さらにTABキーを2回押すと石ブロックのy座標が自動で入力される
- さらにTABキーを2回押すと石ブロックのz座標が自動で入力される
- キーボードの←キーで /setblock の部分を消す
- Ctrl + A + C で座標をコピーする
- 石ブロックを壊す
この手順を覚えたら、座標をいちいちメモしたり覚えたりしなくても簡単にクリップボードに座標をコピーすることができます。
マイクラでゲームを作るのに必要
次にsetblockコマンドをマイクラのゲーム制作で使う方法です。
giveやtpコマンドといった基本的なコマンドとは違い、setblcokはあまり目立たないコマンドですがゲーム制作に使うと非常に便利なのでぜひ使い方を覚えてください。
「ゲームスタート」でモブをわかせる
マイクラでゲームを作る時、「ゲームプレイだけ動作させたい装置」というものがよく出てきます。
例えばゲーム中だけモブがわくような装置です。
ゲームが終了してからもモブがわき続けるとどんどん増えすぎてしまうので、ゲーム中以外はモブ出るのをストップしたい、というような場合です。
例えばこのようなコマンドブロックを作っておいて、反復コマンドブロックにはゾンビなどがわくsummonコマンドを書いておきます。
summonコマンドの使い方がわからない場合はこちらの記事を参照してください!
そしてゲームスタートと同時にsetblockコマンドでこの中心にレッドストーンブロックを設置するという仕組みです。
setblockで空気ブロック(air)を置くとブロック破壊
さらにゲーム終了のタイミングで、中心に置いたレッドストーンブロックを消す必要があります。
/setblock レッドストーンブロックの座標 air
置くブロックの名前を air と書くことで「空気ブロック」を置く、という意味になります。
「空気ブロック」とはなんぞやと思うかもしれませんが、空気を置く、つまりそこにあるブロックを破壊する、ということになります。
鬼ごっこや人狼ゲームでもよく使う
最後にsetblockの実践的な使い方の例をご紹介します。
鬼ごっこや人狼ゲームなどで「生き残っている人間の数を数える」という仕組みをよく作ります。
例えば「人間」というタグが付いている人数を数える場合、
/testfor @a[tag=人間]
このコマンドを反復コマンドブロックを置いてコンパレーターを繋げることで、「検知できた人数分の強さのレッドストーン信号が出る」という仕組みが出来上がります。
これを利用すればリアルタイムで「人間」の数を数えることができます。
そして人間は倒されたら「人間」タグをremoveするという仕組みにしておけば、
testforコマンドからの信号がゼロになる=人間が全滅=鬼や人狼の勝ち
ということになるんですね。
人間が0人かどうかはゲーム中だけ検知したい
この仕組みを作ると不都合になってくるのが、「ゲームが終了してからも人間の数が0人かどうかを検知し続ける」ということです。
例えば鬼や人狼が全滅して「人間の勝ち」となった場合、人間はまだ数名残っていることになるのでtestforのコマンドからレッドストーン信号が出続けています。
そしてゲームが終了したので一旦、全てのプレーヤーから「人間」タグを強制的に削除しますよね。
/tag @a remove 人間
そうするとtestforからの信号が0になり、人間が全滅したとみなしてしまって「鬼・人狼の勝ち」となってしまうわけですね。
そんな時にsetblockコマンドが活躍します。
/testfor @a[tag=人間]
この反復コマンドブロックを「レッドストーンが必要」で実行しておくんです。
そして「ゲームスタート」と同時に、この反復コマンドブロックの横にsetblockでレッドストーンブロックを置いてあげる。
ゲームが終了したらすぐに、反復コマンドブロックの横にあるレッドストーンブロックをairで壊してあげる。
これを行うことで、ゲームが終了したらその後は人間の数を数えなくなる、という仕組みの出来上がりです。
以上ですがsetblockは地味だけど、結構使えるのでおすすめです。
特に座標を簡単にコピーするのは普段から頻繁に使います。
今回解説しなかったreplaceやdestroy、そしてcloneコマンドなどもいつか解説していきたいと思います。
ぜひマスターしてくださいね!
ぜひマスターしてくださいね!