【Minecraft】特殊な本や看板で使う『JSON』をマスターしよう!その①

みなさん、こんにちは!
赤石大好き!赤石愛です。

その① JSON・text・基本装飾・真偽値 →このページ
その② clickEvent・オブジェクト・数字と数値・エスケープシーケンス →ar923853
その③ hoverEvent・selector・score →ar923855
その④ リスト・extra・translate →ar923861
その⑤ エスケープシーケンス(改行・Unicode) →ar924533
おまけ 本や看板での使用例 →ar924964
その⑥ keybind・nbt・NBTパス →ar1905986


本や看板の文字を装飾したり、コマンドを仕込んだりできる事は御存知ですか?
今回はそれらに使われるJSON(ジェイソン)という書き方を詳しく解説します。

バージョン1.9での書き方で解説しますが、バージョン1.9の書き方はバージョン1.8でも使えます。
バージョン1.8でしか使えない書き方は解説しません。

JSONとは?

→https://ja.wikipedia.org/wiki/JavaScript_Object_Notation
ソフトウェアやプログラミングでの『データの記述方法』の1つ、だそうです。
基本的には『キー』と『値』を『:』でペアにすることでデータを指定していきます。

/tellraw @p {"text":"こんにちは"}

このtellraw(テルロー)コマンドの後ろの部分がJSONです。
『text』というキーと『こんにちは』という値がペアになっていて、
『テキスト(text)は「こんにちは」です』
というデータになっています。
これを実行すると「こんにちは」と表示されましたね?

/tellraw @p {"text":"こんにちは","color":"red"}

今度は『color』というキーと『red』という値のペアが増えていますね。
『テキスト(text)は「こんにちは」です』
『色(color)は赤(red)です』
というデータになっています。
これを実行すると、赤い文字で「こんにちは」と表示されましたね?

『キー』と『値』のペアでデータを記述するというイメージは掴めましたでしょうか?
これより先はこのイメージを持って読み進めて下さい。

TIPS
JSONでは文字列は必ず""で囲んで書きます。キーは全て文字列なので""で囲まれます。
値は文字列以外のこともあります。値が文字列以外の場合については、出てきた時に解説します。

 


装飾の種類

テキストを色々装飾してみましょう。まずは先程も出てきたcolorから紹介していきます。


color(カラー)

/tellraw @p {"text":"みかん","color":"gold"}

これを実行すると、オレンジ色で「みかん」と表示されますね。
black dark_blue dark_green dark_aqua dark_red dark_purple gold gray dark_gray blue green aqua red light_purple yellow white
の16色のいずれかを指定します。
指定しなかった場合はtellrawやtitleでは白、本や看板では黒になります。
なお、指定できるのは文字色だけで、背景色は指定できません。
1.16+カラーコードも指定できるようになりました。
#に続けて、赤、緑、青の順に、2桁の16進数(00からFF)で指定します。

/tellraw @p {"text":"chocolate","color":"#d2691e"}
/tellraw @p {"text":"山吹色","color":"#f8b500"}

参考リンク:WEB色見本 原色大辞典

font1.16+(フォント)

/tellraw @p {"text":"enchant","font":"alt"}

これを実行すると、と表示されますね。
実はこの文字、エンチャントテーブルで表示されるあの文字です。
リソースパックなしで使えるのは次の3つです。
default:通常のフォント
uniform:言語設定で「Unicodeフォントを強制:オン」にした時のフォント
alt:エンチャントテーブルのフォント

bold(ボールド)

/tellraw @p {"text":"ふとじ","bold":true}

boldというキーとtrueという値のペアが指定されています。
『テキスト(text)は「ふとじ」です』
『太字化(bold)はあり(true)です』
というデータになっています。
これを実行すると太字で「ふとじ」と表示されましたね。
boldにはtrue(トゥルー)かfalse(フォルス)を指定します。trueがあり、falseがなし、です。
true及びfalseは真偽値という特殊な値で、""で囲みません。

/tellraw @p {"text":"true","bold":true}

これはtextには文字列として「true」を指定しているので""で囲んでいます。
boldには真偽値としてtrueを指定しているので""で囲んでいません。

italic(イタリック)

/tellraw @p {"text":"ななめ","italic":true}

italicというキーとtrueという値のペアが指定されています。
『テキスト(text)は「ななめ」です』
『斜体化(italic)はあり(true)です』
というデータになっています。
これを実行すると斜体で「ななめ」と表示されましたね。
italicも真偽値(trueまたはfalse)で指定します。

underlined(アンダーラインド)

/tellraw @p {"text":"かせん","underlined":true}

underlinedというキーとtrueという値のペアが指定されています。
『テキスト(text)は「かせん」です』
『下線付き(underlined)はあり(true)です』
というデータになっています。
これを実行すると下線付きで「かせん」と表示されましたね。
underlinedも真偽値(trueまたはfalse)で指定します。

strikethrough(ストライクスルー)

/tellraw @p {"text":"うちけし","strikethrough":true}

strikethroughというキーとtrueという値のペアが指定されています。
『テキスト(text)は「うちけし」です』
『打ち消し線付き(strikethrough)はあり(true)です』
というデータになっています。
これを実行すると打ち消し線付きで「うちけし」と表示されましたね。
strikethroughも真偽値(trueまたはfalse)で指定します。

obfuscated(オブファスケイテッド)

/tellraw @p {"text":"なんどくか","obfuscated":true}

obfuscatedというキーとtrueという値のペアが指定されています。
『テキスト(text)は「なんどくか」です』
『難読化(obfuscated)はあり(true)です』
というデータになっています。
これを実行すると…単に「なんどくか」と表示されました。
残念ながら日本語は難読化に対応していないのです。

/tellraw @p {"text":"nandokuka","obfuscated":true}

こちらを実行すると…読めない文字が目まぐるしく変化しているものが表示されたかと思います。
このように読むのを難しく(無理に?)する効果がobfuscatedです。(ランチャーのログを見ると普通に読めたり…)
obfuscatedも真偽値(trueまたはfalse)で指定します。

insertion(インサーション)

/tellraw @p {"text":"おこなの?","insertion":"٩(๑`^´๑)۶"}

insertionというキーと「٩(๑`^´๑)۶」という値のペアが指定されています。
『テキスト(text)は「おこなの?」です』
『挿入(insertion)する文字列は「٩(๑`^´๑)۶」です』
というデータになっています。
これを実行すると「おこなの?」と表示されたかと思います。
その状態で(Tキーで)チャット欄を開いて、「おこなの?」をSHIFT+左クリックしてみてください。
チャット入力欄に「٩(๑`^´๑)۶」という文字が表示されましたね。何か入力された状態の場合、入力カーソルのある位置に挿入されます。
→SHIFT+左クリック3回→
クリックしてチャット入力欄に文字を挿入という性質上、insertionはtellrawコマンドにしか効果がありません。

clickEventとhoverEventも装飾の種類の1つですが、書き方が少し異なるので、次に個別に解説します。

→その②へ進む