看板や本の文字などを装飾!マイクラで使えるJSONの装飾一覧と記述例
今回はマイクラの看板や本、チャット欄などで使える「JSONフォーマット」と呼ばれるテキストの記述方法を解説します!書き方自体はとてもシンプルなのですぐに覚えられると思います。
/titleや/tellraw、看板や本を生成するコマンドなどにJSONフォーマットが使えるので、ワールド配布などをする方はぜひ覚えておきましょう!
- JSONフォーマットを使える場所
- JSONフォーマットでの記述方法
- マイクラのテキストで使えるJSONのオブジェクト一覧
- テキスト内で改行や特殊文字を使う方法
- 異なるテキストを組み合わせて表示する方法
JSONフォーマットを使える場所
- 記入済みの本
- 看板
- /tellraw
- /title
JSONを使ったコマンドを自動生成してくれる「Minecraft Tools」というサイトがあるので、自分でコマンドを打つのが面倒ならそっちを使うのもオススメです。
また、サーバーの説明文もJSONと同じように装飾することができますが、そっちはまた別の「MOTD」というフォーマットで記入する必要があります。それもMinecraft Toolsで自動生成してくれます。神か。
JSONフォーマットでの記述方法
/tellrawという、JSONを使えるメッセージコマンドを例として書いてみます。
赤色で太字のテキストを表示するコマンドはこんな感じになります↓
/tellraw {"text":"てきすと", "color":"red","bold":true}
このコマンドのように、JSONは"オブジェクト名": 値
という組み合わせを、ひたすら{ }
の中に並べて書いていきます。
オブジェクト名
とは、ざっくり言うとデータの種類を表す名前のことです。上の例だと、"text"はテキストの内容を入れるオブジェクトの名前で、"color"は文字の色名を入れるオブジェクトの名前を表しています。
値
はデータの内容です。値には3種類あり、数値、文字列、真偽値のどれかを値に入れます。
真偽値とはtrue
またはfalse
を取る値のことです。true
は有効、false
は無効という意味で捉えちゃって大丈夫です。例えば、上の例にある"bold"
は値に真偽値を入れるオブジェクトで、"bold":true
の場合は「太字を有効にする」ということを意味します。
あと結構重要なことなんですが、数値と真偽値の場合はダブルクオート(")で囲まず、オブジェクト名と文字列の場合だけダブルクオートで囲みます。文字は基本ダブルクオートで囲んじゃっていいですが、trueとfalseは文字ではなく値として捉えられるので、ダブルクオートでは囲みません。
マイクラのテキストで使えるJSONのオブジェクト一覧
表示するテキストの内容を指定するオブジェクト
"text"(テキストを直接指定)
/tellraw {"text":"てきすと"}
テキストの内容を指定します。
"selector"(エンティティ名)
/tellraw {"selector":"@e[type=Villager]"}
エンティティの名前を表示します。値にはターゲットセレクタを指定します。
"score"(スコア)
/tellraw {"score": ["name":"Player1", "objective":"LIFE"]}
スコアボードの値を表示します。"name"にはプレイヤー名を入れて、"objective"にはスコアボードのオブジェクトの名前を入れます。
"name"にはプレイヤー名の他にターゲットセレクタも指定することができます。
"translate"(翻訳機能のあるテキスト)
言語設定に応じたテキストを表示します。例えば以下のコマンドの場合、言語が日本語だと「日本語」と表示され、英語だと「English」と表示されます。
/tellraw {"translate":"language.name"}
また、"translate"は"with"と一緒に使う場合もあります。例えば、進捗メッセージを表示させる場合、withでプレイヤー名と進捗名を指定します。
withで何も指定しない状態で実行すると以下のように表示されます。
/tellraw {"translate":"chat.type.achivement"} → 「 は の実績を獲得した」
withでプレイヤー名と進捗名を指定すると以下のように表示されます。
/tellraw {"translate":"char.type.achivement", "with":[{"selector":"@p"},"translate":"minecraft:adventure/kill_a_mob"]} → 「~~~ は モンスターハンター の実績を獲得した」
"color"(色の指定)
/tellraw {"text":"てきすと", "color":"dark_green"}
テキストの色を指定します。使える色は以下の16色。
- "black"
- "dark_blue"
- "dark_green"
- "dark_aqua"
- "dark_red"
- "dark_purple"
- "gold"
- "gray"
- "dark_gray"
- "blue"
- "green"
- "aqua"
- "red"
- "light_purple"
- "yellow"
- "white"
"bold"(太字)
/tellraw {"text":"てきすと", "bold":true}
太字にするかどうか。true/falseで指定。
"italic"(斜字)
/tellraw {"text":"てきすと", "italic":"true"}
斜字にするかどうか。true/falseで指定。
"underlined"(下線)
/tellraw {"text":"てきすと", "underlined":"true"}
下線を引くかどうか。true/falseで指定。
"strikethrough"(打ち消し線)
/tellraw {"text":"てきすと", "strikethrough":"true"}
打ち消し線を引くかどうか。true/falseで指定。
"obfuscated"(難読化)
/tellraw {"text":"てきすと", "obfuscated":"true"}
難読化(文字をごちゃごちゃさせる)をするかどうか。true/falseで指定
"insertion"
/tellraw {"text":"てきすと", "insertion":"いんさーしょん"}
テキストをSHIFTキー+右クリックをした時に表示されるテキストの内容。
"clickEvent"(クリック時の動作)
/tellraw {"text":"ここをクリック", "clickEvent": ["action":"run_command", "value":"/say Hi!"]}
テキストをクリックした時の動作を指定します。"clickEvent"は、中に"action"と"value"の2つのオブジェクトがあり、入れ子の構造になっています。入れ子の場合、{ [ .... ] }のように大括弧 [ ] を使います。
"action"はテキストをクリックした時に起きる動作を指定します。動作は以下の4種類です。
"run_command"
:コマンドを実行する。"value"にはコマンドを指定する。
"suggest_command"
:チャット欄にコマンドorテキストを入力する(提案する)。"value"にはコマンドかテキストを指定する。/tellrawでのみ有効。
"open_url"
:確認画面が表示され、Yesを押すと指定したURLのページへ飛ぶ。"value"にはURLを指定する。
"change_page"
:本のテキストでのみ有効。クリックすると指定したページに変更する。"value"には数値を指定する(""で囲わないよう注意)
"value"に適当な値が指定されていないとコマンドの実行に失敗します。また、"run_command" の "value" にコマンドではなくテキストを指定した場合、クリックしたプレイヤーを発言者としてそのテキストがチャット欄に表示されます。ただし、看板の場合はテキストを指定しているとコマンドの実行に失敗するので注意してください。
"hoverEvent"(ホバー時の動作)
/tellraw {"text":"ここをクリック", "hoverEvent": ["action":"show_text", "value":"ホバー中!!!"]}
テキストをホバーした時に起きる動作を指定します。"insertion"と同じように、"action"と"value"を指定する必要があります。
"hoverEvent"で使える"action"は以下の4種類です。
"show_text"
:テキストを表示する。"value"には表示するテキストの内容を指定する。
"show_item"
:アイテムのデータを表示する。"value"には表示するアイテムのIDやtagなどを指定する。例)"value" : "{ID: ~~~ , tag: ~~~ }"
"show_entity"
:エンティティのデータを表示する。ホバーするプレイヤーがAdvanced Tooltipが有効になっている(F3+H)場合のみ表示される。"value"には表示するエンティティのname,type,idなどを指定する。(例)"value" : "{name:ああああ, type:いいいい, id:うううう}"
"show_achievement"
:実績のデータを表示する。"value"には実績のid(achivement:~~~)を指定する。
テキスト内で改行や特殊文字を使う方法
/tellrawはコマンドを実行する度に自動で1行改行されますが、例えば文字の間を1行空けたい場合などは、2行改行する必要がありますよね。
そんな時は改行コード( \n )というのを使います。
/tellraw {"text":"改行\nします\n"}<・code>
また、本来テキスト内では使えない文字("や{など)を使う場合、それらの文字の前にエスケープシーケンス(\)をつけると使えるようになります。
/tellraw {"text":"これは\"特殊文字\"です"} →これは"特殊文字"です
異なるテキストを組み合わせて表示する方法
リスト
複数のテキストを一緒に表示するには、JSONのテキストをコンマ(,)で並べて大括弧([ ])でくくる「リスト」という方法があります。
例えば、文中の一部分だけを赤色にしたい場合は、赤色部分、赤色部分の前、赤色部分の後の3つに分けてJSONを書く必要があります。↓
/tellraw [{"text":"一部分だけ"} , {"text": "赤色","color":"red"} , {"text":"です。"}]
↓
一部分だけ赤色です。
また、違う種類のテキストを一緒に表示させたい場合もこの方法が有効です。
例えば、"score"と"text"と"selector"を一緒に使えば、以下のようなこともできます。
/tellraw [{"text":"現在体力がハート5個以上のプレイヤーは"} , {"selector": "@a[health = 10.. ]" , "color":"yellow"} , {"text": "です。"} }]
このコマンドでは、healthというプレイヤーの体力スコアが10以上(ハート5個以上)のプレイヤー全員の名前を、"selector"によって表示しています。
エクストラ
一部分だけ装飾を適用させたい場合に便利なのが「エクストラ」です。エクストラの中に指定されたJSONテキストは、何も装飾されていない場合"text"の装飾をそのまま引き継ぎます。
例えば、全体の文字は灰色で、一部分を赤、青、黄色に指定したい場合、以下のようになります。
/tellraw [{"text":"a","color":"gray","extra":"{"text":"赤","color":"red"},{"text":"と"},{"text":"青","color":"blue"},{"text":"と"},{"text":"黄色","color":"yellow"}"}]
ただこの指定方法はカッコが増えてややこしくなる上に、テキストのデフォルトの装飾を変えたい場面はあまり多くないので、活躍する場面は少なそうです。