「1コマンド装置」の作り方と共有の手順を解説。大量のコマンドを圧縮するツールの使い方【Minecraft】
一つコマンドを実行するだけで、大量のコマンドブロックが出現して、一瞬で装置が出来上がる… そんな装置は何度か当ブログでも出てきましたよね。例えば配布ワールド用の仕掛けを作ってYouTubeで紹介する時など、コマンドを圧縮すれば共有にとっても便利です。今回はバージョン1.9用の”複数のコマンドを1つにまとめるWebツールを紹介/解説します。
目次
ちょっと流行ってる「1コマンド装置」とはどんな物?
▲この前公式フォーラムで紹介されてた動画なのですが、なんとたった1コマンドで「巨大な村を生成する」装置が出来上がる、という動画です。こんな風に、最近”1コマンドで○○する”って仕掛けをよく見ません? コマンド界で「1コマンド装置」がちょっと流行ってると私は思いますね。
例えばコマンドで何か装置を作った時、一つ一つコマンドを人に教えるのは大変面倒です。1.9でコマブロにバリエーションとモードが追加され、余計教えるのが面倒になりました。そんな時、コマンド1つにまとめれば便利ですよね。YouTubeで装置の紹介をしたい時やTwitterでシェアしたい時もコマンドを圧縮すればポータブルでユースフルになります。
当ブログでもこれまでに『投げて種まき/水抜きできる装置』や『Splatoonのトラップ再現してみた』の記事で1コマンド装置が登場しました。「こういう1コマンド装置ってどうやって作るの?」という質問を多数頂いたので、この記事ではコマンドを圧縮して共有する詳細な手順をまとめました。どうぞ最後までお読み頂ければ嬉しいです。
コマンドを貼り付けて簡単に圧縮できるWebツールの使い方
コマンドを圧縮するのに便利なWebツールがありますのでご紹介します。
- Command Combiner 1.9
https://mrgarretto.com/cmdcombiner
この前紹介した防具立てアニメーションを生成するツールの作者であるMrGarretto氏が制作したツールです。それでは早速使い方を解説します。
生成するコマンドの箱の位置や素材等の設定
ツールの上部には、コマンドを実行すると出てくる箱の素材などの設定が並んでいます。各項目の意味をまとめました。
Command Combinerの上部の各設定項目の解説 | |
---|---|
Enable casing | チェックを入れるとコマンドブロックを覆う箱が生成されます。 |
Case main block | ケースの側面のブロックの種類を、IDとデータ値で指定します。例えば赤色の羊毛ならminecraft:wool 14になります。 |
Case top/bottom blocks | ケースの上面と底面のブロックの種類を、IDとデータ値で指定します。 |
Structure Rotation | 装置が設置される向きを指定します。X+は東、X-は西、Z+は南、Z-は北方向に設置されます。 |
Structure Offset | 装置設置用のコマンドブロックと、生成される装置の距離を指定します。マイナスの値を設定することも出来ますが、設置用のコマンドブロックと被ると装置が正常に生成されないのでご注意下さい。 |
Hopper Clock | チェックを入れるとホッパークロックでコマンドが実行されます。常時実行じゃなくてカッチッカッチって感じです。 |
1.9 Server Signs | よく分かりませんでした… 私の環境ではチェックを入れたらコマンド実行できなくなりました。(バックスラッシュのエスケープがおかしい、とエラーが吐かれた) |
Box Length | 箱の奥行きです。大きい値を設定しても、必要以上に大きくはならないようです。 |
Box Width | 箱の横幅です。こちらも必要以上に大きくはならないようです。 |
Unique Scoreboard Obj. | 装置の動作に使うスコアボードの名前です。普通に使うなら弄る機会はないと思いますが、もし既存の名前と被ってしまっている場合は変更しましょう。 なんでスコアボードが必要なんだよ、と思いましたが実はこのツールには色々便利な機能がありまして(詳細は後述します)、その機能の動作にあたり必要なスコアボードを自動で生成してくれるみたいです。 |
右クリックで使う看板を装置に貼り付けるには
こういう1コマンド装置って大抵、横に「右クリックで装置を消去」などの看板が付いてますよね。この「Command Combiner」を使えば、消去だけでなく装置を有効化/無効化したり、他にも様々なコマンドを実行できる看板を一緒に設置できます。
先ほど解説した設定コーナーの下に「Signs」コーナーがあります。Add Signをクリックすれば看板を追加、Remove Signで看板を削除できます。各看板左上の▲▼を押せば順番を入れ替えられます。
Activate/Deatcivate Machineにチェックを入れると、その看板を右クリックして装置を有効化(起動)/無効化(停止)できるようになります。また、Destroy Machineにチェックを入れた看板を右クリックすれば装置をまるごと消去できます。
看板は4行に分けて好きな文章を入力します。文字色、斜体、太字、下線のオプションも用意されています。ですがこれ、行ごとの装飾しかできないので文字ごとに細かく装飾したい方はこちらの記事で解説したツールをお使い下さい。
2016年5月17日現在、看板内の最初の文字より前のどれかの行が空欄だと文字が書かれないバグがあるようです。看板の途中から文字を書く場合は、それより上の欄にスペース等を入力してください。
実行させるコマンドの書き方 (一回だけ実行させるには、など)
さあ、いよいよ圧縮したいコマンドを書いていきます。書く場所が少し分かりにくいのですが、「Output」の下の大きなテキストフィールドがコマンド入力欄となっています。
とりあえず前回作った「バズーカ」装置のコマンドを入力してみました。そうそう、コマンドとコマンドの間は必ず改行してください。この入力欄では、コマンドそれぞれを改行で区切るのがルールです。
一度だけ実行するコマンドを指定するには
入力したコマンドは原則常時実行されます。(要するにリピート+それに繋がったチェイン) ですがgiveコマンドやスコアボード作成コマンドなど、一回だけ実行させたいコマンドはどうやって指定すればいいのでしょうか。
INIT:give @p minecraft:diamond 1 0 scoreboard players tag @a add hasDia {SelectedItem:{id:minecraft:diamond}}
▲このように、一度だけ実行させたいコマンドの頭にINIT:を付けます。
/*INIT: say これは一度だけ実行されます tell @a これも一度だけ実行されます w @a これも一度だけ実行されます */
▲一度だけ実行させたいコマンドが複数ある場合は、こんな感じでスラッシュとアスタリスクで囲ってまとめて指定することも可能です。
コマンドの実行に条件を付けるには(Conditionalモードを使うには)
バージョン1.9からはコマンドブロックに様々なモードが追加され、コンパレーターがなくてもtestforなどの条件付きでコマンドを実行できるようになりました。このWebツール「Command Combiner」のコマンド入力欄では、どうやってコマンドの実行条件を設定するのでしょうか。
testfor @a[r=3]
COND:say 近寄るな
▲まずは条件となるtestforコマンドなどを書きます。その下のコマンドにCOND:を付ければ、COND:の上のコマンドが成功したらCOND:の後のコマンドが実行されます。
IF:testfor @a[r=3] DO:say 近寄るな
▲実行条件の設定にはもう一つ書き方があり、条件となるコマンドにIF:、実行するコマンドにDO:を付けて指定することも可能です。私は面倒なのでCOND:の方法を使ってますが、ツール内の説明には(IFとDOを使えば)後でコマンドを見返した時に構造が分かりやすくなる
と書かれています。なるほど…
インパルスモードのコマンドブロックを設置させるには
コマンドブロックの基本となるモードが「インパルス」モード。要するに1.8以前のコマンドブロックと同じ動作をするわけです。これを1コマンド装置の中に組み込めば、部分的に「ボタンやレバーで実行するコマンド」を設置できるわけです。
say これは常時実行される
I:say これは装置設置時と動力入力時に実行される(インパルス)
▲インパルスモードにするには、コマンドの先頭にI:を付けるだけです。
say これは常時実行 /*I: say これはインパルス tell @a これもインパルス */ tell これは常時実行
▲INITの時と同様、スラッシュとアスタリスクでまとめて設定可能です。
リピートモードのコマンドブロックを設置させるには
装置の途中にインパルスコマブロを噛ますと、そこで常時実行が途切れてしまいます。(それ以降のコマンドが常時実行されない) 常時実行を絶やさないためにはどうすればいいのでしょうか。
say a
say b
I:say これはインパルス
R:say c
say d
▲答えは簡単。リピートモードにしたいコマンドの先頭にR:を付けるだけです。
「Command Combiner」でのコマブロのモード設定方法まとめ
- 「Command Combiner」でコマンドブロックのモードを設定するには
-
- I: インパルスモード
- R: リピートモード
- COND: 上のコマンドが成功したら実行
- IF: このコマンドが成功したら下のDO:を実行
- DO: 上のIF:が成功したら実行
圧縮したコマンドの生成方法とマイクラ内での使い方
コマンドを書き終えたらいよいよ圧縮されたコマンドを生成します。「Output」の下のGenerateをクリックしましょう。
すると小さな枠が現れ、長い長いコマンドが出てきます。これが流行りの「1コマンドで作ってみた」のコマンドなのです。クリックすれば全選択されるのでそのままコピーしましょう。
コマンドは長過ぎてチャットからは実行できないのでコマンドブロックで実行します。周囲に何もない場所にコマンドブロックを置いて、Ctrl+Vキーで長いコマンドを貼り付けましょう。
そしてコマンドブロックに動力を入力すると… 上から砂のように(というかFallingSandなので砂エンティティですが)コマンドブロックが降ってきて、一瞬で装置が出来上がります。難しそうな1コマンド装置がこんなに簡単に作れるだなんて、MrGarretto氏に感謝するしかありませんね!
出来上がった長いコマンドを共有するなら「Pastebin.com」が便利
1コマンド装置が完成した! 今すぐシェアしたい! …ですがあまりに長過ぎてツイートできません。場合によってはDMでも無理になるレベルの文字数です。
YouTubeに装置の紹介動画をアップした! コマンドを説明欄に貼ろう! …流石にこれだけ長いコマンドを説明欄に書くのも邪魔ですし、視聴者さんにコマンドを最初から最後までちゃんとコピーしてもらえるか不安です。
こんな長い長いコマンドを簡単にシェアするにはどうすればいいのでしょうか。
- Pastebin.com
http://pastebin.com/
ご存じの方が多いとは思いますが一応紹介します、なんでもかんでもペーストできるPastebin.com君です。
Pastebin.comはゲストとしても利用できますが、サインインしないとペーストしたデータの編集や削除や埋め込み等ができませんのでサインインしましょう。Twitterのアカウント使えますよ。
サインインしたら+ new pasteを押して新規ペーストを作り、先ほどの長いコマンドをそのまま貼り付けましょう。
貼り付け欄の下には重要な設定があります。
- Syntax Highlighting: JSONを選びましょう。マイクラのコマンドは緩いJSONで書かれているので。
- Paste Expiration: ペーストの保存期間です。Neverならずっと保存されます。
- Paste Exposure: ペーストの公開状態です。
- Public: Pastebin.comの検索結果に表示されます。
- Unlisted: 検索結果には表示されませんがアドレスが分かれば誰でも見られます。コマンドをシェアするならこれがおすすめ。
- Private: 自分(と設定したメンバー)しか見られません。自分用の保管庫として使いたいならこれ。
- Paste Name / Title: ペーストのタイトルです。
- Paste as a guest: 投稿者を伏せ、ゲストとして投稿します。
設定できたらCreate New Pasteをクリックして投稿しましょう。
投稿したらこんな画面になるはずです。JSONを選んでいればカッコなどがハイライトされていますね。このページのURLをツイートするなりYouTubeに貼るなり友達に送るなりして共有すればいいのです。Privateに設定していない限りそのまま見てもらえます。
ペーストの所有者のみ、右上のボタンから編集や削除ができます。その左のembedを押せばブログ等に埋め込むためのコードが表示されます。scriptタグもしくはiframeタグ好きな方をお使い下さい。
▲scriptタグで埋め込むとこんな感じに表示されます。ブログでコマンドを紹介する際に便利。
8件のコメント
-
群曹2016年5月18日なんて神ツールなんだ。・・・分かりやすい解説、有難うございます。
-
えんすけ2016年5月19日ツールを使えば簡単にできそうですね 質問させてもらったのが記事になっていて分かりやすかったです。 これからも頑張ってください
-
Moon Shift (ムーンシフト)2016年5月19日lol
-
チャンネル猫もふ2016年5月30日公開用にいろいろやってたら1回文字数が4545になったwww
-
湯田拓未2016年6月7日コマンドを教えてください❗ 1.9で村人の交易アイテムの変更した村人の召喚コマンドを教えてください❗お願いします
-
名無し2016年6月10日右クリックで何かが起こるが私にはどうしても作れません。 ですからかなり面倒なのは承知ですが、これを使って1つにまとめてもらえませんでしょうか? 難しかったり、面倒なら結構ですので。
-
ひ~ら~2016年7月10日可能であればこのコマンド(FallingSandの動作)の解説をお願い致します。 setblock以降から""で囲まなくなった理由(setblockより前のコマンドを""で囲う理由)がイマイチ理解できないのです
-
黒瀬春太2016年8月29日バズーカーのコマンド、動画で紹介してもいいですか?