2023年3月14日に行われたマイクラ統合版ver1.19.70アップデートの仕様変更により、「fill」「setblock」などのコマンドのデータ値が廃止され、これまでのコマンドが構文エラーで使えなくなってしまいました。
ver1.19.70で仕様変更されたコマンドは「clone」「execute」「fill」「setblock」「testforblock」の5種類で、中でも「fill」はコマンド初心者でもよく使うコマンドだったので、困惑している人が多いかと思います。
今回は、この「fill」「setblock」などのコマンドの仕様変更と新しいコマンドの入力方法について解説します。
かなり難しくなりましたが、理屈と入力する文字列の調べ方さえわかれば、なんとか使っていけるかと思います。
ver1.19.70からのコマンドの仕様変更について
新しいコマンドの入力形式
まず、ver1.19.70以前のコマンドの入力形式は以下の通りでした。
/setblock x座標 y座標 z座標 ブロックID データ値 置換方法
そして、ver1.19.70以降のコマンドは以下のようになりました。
/setblock x座標 y座標 z座標 ブロックID [種類の指定] 置換方法
このように、ブロックIDの入力までは同じなのですが、データ値というものが廃止され、代わりに『[]』(ブラケット)で囲んで種類の指定をするようになりました。
これだけではピンと来ないと思うので、実際のコマンドを見ていきましょう。
例1:データ値が0だったものとデータ値がなかったもの
実をいうと、これまでデータ値が「0」だったものとデータ値が存在しなかったものに関しては、それほど難しくはありません。
ここでは例として、「0,-60,0」という座標のブロックを破壊して(置換方法:destroy)『石』もしくは『鉄のブロック』を設置するコマンドを見ていきます。
まず、ver1.19.70以前は以下のように入力していました。
石 | /setblock 0 -60 0 stone 0 destroy |
鉄のブロック | /setblock 0 -60 0 iron_block 0 destroy |
置換方法を指定する場合はデータ値の入力が必須だったので、データ値が存在しない場合は「0」を入力していましたね。
それが、ver1.19.70以降は以下のようになります。
石 | /setblock 0 -60 0 stone [] destroy |
鉄のブロック | /setblock 0 -60 0 iron_block [] destroy |
このように、データ値『0』の代わりに『[]』を入力するだけなので、それほど難しくはありません。
例2:データ値があったもの
そして、問題なのはデータ値があったブロックです。
例として、「0,-60,0」という座標に『花崗岩』『白樺の原木』『赤のコンクリート』それぞれを設置するコマンドを見ていきましょう。
まずは、ver1.19.70以前のものから。
花崗岩 | /setblock 0 -60 0 stone 1 |
白樺の原木 | /setblock 0 -60 0 log 2 |
赤のコンクリート | /setblock 0 -60 0 concrete 14 |
ブロックIDとデータ値をまとめてくれてるページなどを見る必要はあったものの、一度理解すれば入力するのはそれほど難しくありませんでしたよね。
そして、ver1.19.70以降のものがこちら。
花崗岩 | /setblock 0 -60 0 stone [“stone_type”=”granite”] |
白樺の原木 | /setblock 0 -60 0 log [“old_log_type”=”birch”] |
赤のコンクリート | /setblock 0 -60 0 concrete [“color”=”red”] |
・・・( ゚д゚)ポカーン・・・
ってなりますよね。
この文字列をどうやって調べてどう入力すればいいのかは後ほど解説しますが、このようにブロックの種類を言語的に指定するようになりました。
これが難しくて、石の場合は[stone_type]で原木の場合は[old_log_type]など、ブロックの種類ごとに入力する文字列が違うのが厄介なところです。
さらに、これが『アカシアの原木』や『ダークオークの原木』になると『~ log2[new_log_type]』と変化したりするので、もうわけがわからないですよね。
ウール(羊毛)には専用コマンドが実装された
ウール(羊毛)に関しては色ごとに専用のコマンドが実装されたため、以下のようなコマンドで実行可能になっています。
以下は、『黄色のウール』を設置するコマンドです。
/setblock 0 -60 0 yellow_wool destroy
ver1.19.70以前には「yellow_wool」というものはなく「wool 4」と入力していましたが、今回のアップデートに合わせてウールだけがデータ値を必要としない専用のコマンドが実装されました。
今後、このほかのブロック、先ほど紹介した『花崗岩』なんかにもこういった専用のコマンドが実装されていくのではないかと予想されますが、いつになるかはわかりません。
なんでウールにだけ専用のコマンドを実装して、今回のデータ値の廃止というアップデートに踏み切ったのでしょうか。
新コマンドの入力方法と調べ方
それでは、新コマンドの入力方法について解説していきます。
先ほど紹介した通り、「データ値が0だったものとデータ値がなかったもの」については、データ値の『0』を入力しないだけなので割愛します。
ここでは「データ値があったもの」の入力方法について解説します。
新コマンドの入力ルールについて
まず、新コマンドの基本的な入力ルールを解説します。
もう一度、先ほどのコマンドの例をご覧ください。
花崗岩 | /setblock 0 -60 0 stone [“stone_type”=”granite”] |
白樺の原木 | /setblock 0 -60 0 log [“old_log_type”=”birch”] |
赤のコンクリート | /setblock 0 -60 0 concrete [“color”=”red”] |
これを入力形式にすると以下のようになります。
/setblock x座標 y座標 z座標 ブロックID ["種類名"="許容値"]
ここで知っておきたいルールとしては、『stone_type』という種類名や『granite』という許容値と呼ばれるものを『“』(クォーテーションマーク)で囲むということ。
そして、種類名と許容値のあいだに『=』(イコール)をつけるということです。
このルールが守られていないと、他の入力が正しくても構文エラーになってしまいますので、忘れずに入力しましょう。
種類名と許容値の調べ方
次に、『stone_type』という「種類名」や『granite』という「許容値」と呼ばれるものをどうやって調べればいいのか解説していきます。
残念ながら、まだ日本語で見やすいリストを作ってくれている人はいないと思われるので、以下の2つのサイトを活用します。
マイクラのアイテムID・ブロックID全1595種一覧!JE/BE対応
https://minecraft.fandom.com/wiki/Block_states
今回は例として、『閃緑岩』『ダークオークの原木』『草ブロック』『青のテラコッタ』を調べてみましょう。
ブロックIDとデータ値を確認する
まずは、自分が設置したいブロックのIDとデータ値の有無を確認します。
以前のコマンドでも参考にさせて頂いていたnishiさんの記事をご覧ください。
マイクラのアイテムID・ブロックID全1595種一覧!JE/BE対応
そして、ページ内検索(ctrl+F)などを使って『閃緑岩』『ダークオークの原木』『草ブロック』『青のテラコッタ』を見つけたら、ブロックIDとデータ値を確認していきます。
閃緑岩の場合
まず、『閃緑岩』のブロックIDを見てみると、「stone」のあとに『半角スペース』があり、そのあとに「3」と書かれていますね。
この「stone」というのがブロックIDで、半角スペースのあとに書かれている「3」という数字がデータ値ですね。
ブロックIDは後ほどコマンドの入力で使いますが、データ値はその有無の確認が必要なだけなので、このあと使うことはありません。
ダークオークの原木の場合
では、今度は『ダークオークの原木』のブロックIDを見てみると、「log2」のあとに『半角スペース』があり、そのあとに「1」と書かれていますね。
ここで注意したいのが、「log2」の「2」というのはデータ値ではなくブロックIDの一部であり、半角スペースのあとの「1」がデータ値ということです。
草ブロックの場合
次に『草ブロック』ですが、「grass」のあとに数字がないですよね。
つまり、草ブロックはデータ値がなかったものということになります。
そのため、例1でも紹介したようにデータ値を入力しないようにするだけでよく、草ブロックの場合は種類名や許容値を調べる必要はないということです。
青のテラコッタの場合
最後に『青のテラコッタ』です。
(『青色のテラコッタ』はJava版名)
ブロックIDが「stained_hardened_clay」で、データ値が「11」ですね。
とくに例にするほど難しい点はないように見えますが、コイツが後ほど人々を混乱させる魔物として牙をむきます。
種類名と許容値を調べる
ブロックIDとデータ値の有無がわかったら、今度は[]の中に入力する種類名と許容値を調べていきます。
まずは、以下の英語のサイトにアクセスします。
https://minecraft.fandom.com/wiki/Block_states
(日本語に翻訳しないでください)
そして、ページを少し下に行ったところにある目次(contents)の中から、先ほど調べたブロックID「stone」「log2」「stained_hardened_clay」とほぼ同じものを探します。
「stone」の場合は「Stones」というのがあり、「log2」の場合は「2」と付いたものはありませんが「Logs」というものがありますね。
しかし、「stained_hardened_clay」は見つかりません。これについては後ほど解説します。
まずは「Stones」と「Logs」をクリックして、その場所に飛んでみましょう。
「Stones」を調べてみる
まずは「Stones」から。
「Stones」という見出しの下の「Bedrock Edition:」という項目にある表を確認します。
そして、表の「Name(種類名)」という項目と「Allowed values(許容値)」という項目を確認します。
これがコマンドに入力する [“種類名“=”許容値“] ですね。
右に小さく画像が出ていますが、許容値の「diorite」というのが『閃緑岩』であることがわかります。
画像がなかったりわかりづらい場合は、ブロックIDを調べたページのJava版のブロックIDから名前を予測するとわかりやすいかもしれません。
「Logs」を調べてみる
次は「Logs」を見てみましょう。
「Logs」という見出しの下の「Bedrock Edition:」という項目内に、「Log:」というのと「Log2:」というのがあります。
ここでブロックIDを調べた時の情報が役に立ち、『ダークオークの原木』が「Log2:」に属することがわかります。
しかし「Log2:」の表を見てみると、「Name」の項目に「pillar_axis」というのと「new_log_type」というのがありますね。
どっちを入力すればいいのかわからなくなりそうですが、1番右の「Description」の項目内の画像、もしくは英文を参考にしてみてください。
「pillar_axis」のところには英文で「east-west」といった方角を示す英単語が見受けられます。
そして、「new_log_type」の方にはブロックの画像と、シンプルにブロック名のような文字列が見受けられます。
この事から、「pillar_axis」が設置する向き(原木の切り口)を指定する際に必要な情報であることと、「new_log_type」がブロック名を指定するのに必要な情報であることが予測できます。
というわけで、とりあえず普通に設置するのに使用するのは、「new_log_type」が種類名で、「dark_oak」がダークオークの許容値ということになります。
「stained_hardened_clay」はどこに?
それでは、青のテラコッタのブロックID「stained_hardened_clay」はどこにあるのでしょうか。
これには統合版とJava版の複雑な関係と、和訳の問題が関係しています。
この英語のページはブロックの英名を基準としているため、テラコッタを統合版向けに名付けた「stained_hardened_clay」というのはリストに存在しないのです。
そのため、テラコッタの英名から調べる必要があります。
方法としては大きく分けて2つで、最初にブロックIDを確認したnishiさんの記事でJava版のブロックIDから予測するか、検索エンジンで「マイクラ テラコッタ」などと調べて『Minecraft Wiki』に記された英名を確認するかになります。
Java版のブロックIDは「blue_terracotta」なので「terracotta」という予測ができますし、『Minecraft Wiki』のテラコッタのページに記された英名も「Terracotta」になっています。
というわけで、「Terracotta」で探してみましょう。
「Terracottas」というのがありました。
これまでと同じようにクリックして確認してみると、種類名が「color」で許容値が「blue」ということがわかります。
ただし、あくまでブロックIDは「stained_hardened_clay」であり、「terracotta」になったわけではないことを頭に入れて置いてください。後ほど解説します。
新コマンドの入力方法
それでは、「ブロックID」「種類名」「許容値」がわかったところで、実際にコマンドに当てはめてみましょう。
先ほども紹介した通り、以下が基本的なコマンドの入力形式ですね。
/setblock x座標 y座標 z座標 ブロックID ["種類名"="許容値"]
まずブロックIDですが、最初にnishiさんの記事で確認したデータ値を含めないブロックIDが、ここで入力するブロックIDです。
つまり、『閃緑岩』の場合は「stone」ですね。
「stone 3」や「stones」ではない点に注意しましょう。
次に、『[』で囲み始め、先ほど調べた「種類名」と「許容値」をコマンドに当てはめて入力します。
『閃緑岩』の場合は「stone_type」と「diorite」でしたね。
『”』で囲むのと、種類名と許容値のあいだに『=』をつけるのを忘れないようにしましょう。
そして、最後を『]』で閉じて完成です。
/setblock 0 -60 0 stone ["stone_type"="diorite"]
『ダークオークの原木』だと以下のようになりますね。
/setblock 0 -60 0 log2 ["new_log_type"="dark_oak"]
そして、『青のテラコッタ』の場合は以下のようになります。
/setblock 0 -60 0 stained_hardened_clay ["color"="blue"]
先ほどテラコッタを調べる時は「terracotta」と調べましたが、あくまで入力するのはテラコッタの統合版のブロックIDの「stained_hardened_clay」です。
混乱しやすいところなので注意しましょう。
以上が、新コマンドの基本的な入力方法と、種類名と許容値の調べ方です。
新コマンドにおけるブロックの状態の指定方法
先ほど例にあげた『ダークオークの原木』などの設置する向きの指定方法や、大釜の内容量などのレベルの指定方法についても解説しておきます。
設置する向きやレベル指定の入力形式
まず、入力形式としては以下のようになります。
/setblock x座標 y座標 z座標 ブロックID ["種類名"="許容値","状態名"="状態名の許容値"]
このように、種類名と許容値の入力までは同じですが、そのあとを『,』(カンマ)で区切ってから『“状態名”=”状態名の許容値”』というのを入力します。
ただし注意点として、「状態名の許容値」を『“』で囲む場合と、「状態名の許容値」を『“』で囲んではいけない場合があり、ややこしくなっています。
以下の例をまじえて詳しく解説していきます。
例1:ダークオークの原木の向きを指定する
まずは、例として『ダークオークの原木』の設置する向き(原木の切り口)を指定してみます。
『ダークオークの原木』における「状態名」というのは、「log2」の表にもあった「pillar_axis」のことです。
そして、「east-west」(東西向き)なら『x』、「north–south」(北南向き)なら『z』が「状態名の許容値」です。
『y』はデフォルトの値で上下向きですね。
これをコマンドに当てはめると以下のようになります。
/setblock 0 -60 0 log2 ["new_log_type"="dark_oak","pillar_axis"="x"]
これで、原木の切り口が東西を向いたダークオークの原木が設置できました。
『,』の区切りを忘れないように注意してください。
例2:大釜の内容量(レベル)を指定する
次に、溶岩の入った大釜を、内容量を指定して設置してみます。
まず大釜のブロックIDは「cauldron」で、種類名は「cauldron_liquid」、溶岩を入れる許容値は「lava」ですね。
そして、大釜の内容量を決める「fill_level」という状態名で、溶岩の量を「3」という状態名の許容値で指定してみます。
これらの情報を合わせると、コマンドは以下のようになります。
/setblock 0 -60 0 cauldron ["cauldron_liquid"="lava","fill_level"=3]
ここで注目してもらいたいのが、最後の「3」のところです。
理屈はよくわかりませんが、許容値が「3」などの数字の場合は『“』で囲むと構文エラーになるようです。
そのほか、許容値が「true」や「false」の場合も『“』が不要なパターンのようです。
とりあえず、これでなんとかブロックの状態を指定できるかと思います。
うまくいかない場合は、許容値を『”』で囲むのをつけたりやめたりしてみてください。
新しい「fill」コマンドの入力形式と入力例
ここまでの理屈が理解できれば「fill」コマンドに応用するのはそれほど難しくはないと思いますが、一応「fill」コマンドの例を紹介しておこうと思います。
「fill」コマンドの入力形式
「fill」コマンドの入力形式は以下のようになります。
/fill 始点のx座標 始点のy座標 始点のz座標 終点のx座標 終点のy座標 終点のz座標 ブロックID [種類の指定] 置換方法 ブロックID [種類の指定]
※赤字の部分は、置換方法「replace」で置き換えるブロックを指定する場合
例1:自分の周囲の『石』を『空気』に置き換える
まずは簡単なものとして、自分の周囲の『石』を『空気』に置き換えてみます。
/fill ~25 ~5 ~25 ~-25 ~-5 ~-25 air replace stone
座標の数字の前の『~』は「自分から」を意味するので、自分の周囲25マス、上下5段にある『石』を『空気』に置き換える(replace)コマンドですね。
『石』も『空気』もデータ値のないブロックなので、データ値を入力しないだけなので簡単です。
例2:自分の周囲の『安山岩』を『トウヒの木材』に置き換える
今度は自分の周囲の『安山岩』を『トウヒの木材』に置き換えてみます。
/fill ~25 ~5 ~25 ~-25 ~-5 ~-25 planks ["wood_type"="spruce"] replace stone ["stone_type"="andesite"]
長いし、複雑だし、スペルミスも起こりやすいし、大変です。
キーボードのない機種では絶対に打ち込みたくないですね・・・
まとめ
今回は、マイクラ統合版ver1.19.70アップデートにて行われたコマンドの仕様変更について解説させて頂きました。
ウールのように専用のブロックIDが実装されていけば苦労は軽減されますが、それまでは今回紹介したコマンドの入力方法に対応していくしかありません。
大変だとは思いますが、理屈さえ理解できれば使っていけると思うので、頑張って覚えてみてください。
コメント
仕様変更後の記述方法
教えていただきありがとうございます!
とても助かりました!
>>名無しさん
ご丁寧に返信ありがとうございます!
また何かありましたらお気軽にコメントください。
はじめまして
こちらで説明されているとおりに記述しているのですが
どうしても構文エラーで弾かれてしまいます
こちらの記事にある以下の構文をまるごとコピペしてもダメです…
また新たに仕様が変わったりしたのでしょうか…
それともなにか別の原因(設定…など?)があるのでしょうか…
/setblock 0 -60 0 stone [“stone_type”:”diorite”]
▼エラー内容
構文エラー:”:”: at “tone_type”>>:<<"diorite"]"は無効です
>>名無しさん
すいません!おっしゃる通り、仕様変更が来てます。
「:」が使えなくなり、代わりに「=」を入力するようになりました。
コマンド例を現在の仕様にすると以下のようになります。
/setblock 0 -60 0 stone [“stone_type”=”diorite”]
また、「データ値が0だったものとデータ値がなかったもの」について、
『[]』が必須だったのが、何も入力しなくても良いようにも仕様変更されてました。
情報の更新ができておらず申し訳ありませんでした。
Allowed value は 入力可能な値 であって許容値と訳すのは違和感があります。
単に 項目名:値 としたほうが良いと思いますが、いかがでしょう?
>>名無しさん
『「種類名」や「許容値」というのは当サイトにおける呼び名で正式名称ではありません』
といった注意書きを入れるのを忘れていました。
これでは多くの人に正式な名称だと勘違いさせるので良くないですね。大変申し訳ないです。
とくに何が正解と決まってるものではないですし、Block statesのページをchromeで日本語翻訳すると「許容値」と表示されてしまうので、当サイトではそれでいいかなと思っています。
世間的に呼び方が収束しそうであれば修正をしようと思います。
ひとまず注意書きの方を入れておきます。
ご指摘くださって助かりました。ありがとうございます。
分かりやすい表が出るのを待つか運営の修正を待つか、、
当分作業ストップですね
悲しい
>>名無しさん
自分が表を作れれば良かったのですが、必要な労力が尋常じゃないうえに、表を作ってる内に専用のブロックIDが実装されて表がゴミになったら心が折れそうなので、断念しました・・・
データ値が0だったものなど、わかりやすい範囲のものだけ利用しつつ、ブロックIDの実装を待つしかないですね。
元に戻して欲しいです
なぜこんなにも複雑で分かりづらくなってしまったのか、せめて統一性があって欲しいです
>>名無しさん
本当にその通りだと思います。
「give」コマンドなどはまだデータ値が使えたり、ウールだけ各色のブロックIDを実装したり、今回ほど「なぜ?」と思う中途半端な仕様変更は珍しいと思います。
統合版上付きハーフブロックの置き方がwikiで調べてもちんぷんかんぷんでしたw
肝心な情報だけが分からないというトラップ。
なぜ本家はこんな仕様にしちゃったんでしょうね‥‥
ハーフブロックはとくにコマンドが長くて複雑になりますね・・・
ただ、基本原則としては記事内の「新コマンドのブロックの向きなどの指定方法」と同じです。
以下は閃緑岩のハーフブロックの上付きの例です。
/setblock 0 -60 0 stone_block_slab3 [“stone_slab_type_3″:”diorite”,”top_slot_bit”:true]
これでどうしても分からなければ、置きたいブロックを教えて頂ければ調べてみます。
おそらくJava版と同じように、いずれは[]内が必要ないような専用のブロックIDを割り振るのだとは思うのですが、時期尚早というか、なぜ慌ててこんな仕様にしたのかは謎ですね。