0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SNBTテキストで文字をおしゃれにカスタマイズしよう【マイクラ1.21.5】

Last updated at Posted at 2025-05-22

はじめに

本記事の内容は、動画としてYoutubeにも公開しています。
【SNBTテキスト】文字をおしゃれにカスタマイズしよう【マイクラコマンド解説】

SNBTテキストを使用することで、文字の色変更や翻訳、クリック・ホバー時の機能などのいろいろな装飾をすることができます。
tellrawtitlescoreboardbossbarteamコマンド、アイテム名や説明、看板や記入済みの本の文字、エンティティの名前やテキストディスプレイのテキストなどで使用されます。
ここで、SNBT形式とはマイクラに特化したJSON形式のようなものです。
{}内にタグ名と値をペアにしたオブジェクトや、そのオブジェクトのリストなどを記載することができます。

SNBTフォーマット例
{
  text: "テキスト1",
  color: red,
  extra:[
    {text: "テキスト2"},
    {text: "テキスト3"}
  ]
}

本記事は、Java版 Minecraft 1.21.5 の情報です。

テキスト全てに使用可能な文字指定タグ

text(表示するテキスト)

textはプレーンなテキストを表示するタグです。
テキスト内で"\を表示したい場合はその文字の後ろに\を付け、\"\\と入力します。(エスケープシーケンス
また、Unicodeも使用できます。

text使用例
title @p title {text:"プレーンテキスト"}
title @p title [{text:"\" \\ の表示。"},{text:"\x22 \x5c でも可能"}]

translate(翻訳機能付きテキスト)

translatetextとは別で書かれるタグです。
特定の文字を任意の文字に置き換えたり、リソースパックのlangファイルから翻訳キーに対応した文字に置き換えて表示することができます。

  • translate
    文字列内に%sを入れることで、withのリスト順に文字が置き換えられます。
    リストの要素位置を指定したい場合、%n$s(nはリストのn項目)を入れることで、指定した要素の文字に置き換えることができます。
  • with
    %s%2$sなどがtranslateテキスト内や翻訳キーに対応した文字列内にある場合、置き換える文字をリストで指定します。
  • fallback
    translateに入力された翻訳キーがlangファイルに存在しない場合に表示されるテキストを指定します。
translate使用例
# 表示テキスト: ゾンビはブタに射抜かれました
title @p title {translate:"death.attack.arrow",with:["ゾンビ", "ブタ"]}
# 表示テキスト: プレイヤーの勝利
title @p title {translate:"%sの%s",with:["プレイヤー", "勝利"]}
# 表示テキスト: 村人はゲームをクリアした
title @p title {translate:"%2$sは%1$sを%3$sした",with:["ゲーム", "村人", "クリア"]}
# 表示テキスト(赤): No data
title @p title {translate:"custom.key",fallback:"\u00a7cNo data"}

keybind(キー割り当て)

keybindはそのプレイヤーが設定しているキー割り当てを表示するタグです。

keybind使用例
title @p title {keybind:"key.attack"}
キー設定名一覧
操作 キー 初期設定表示
ジャンプ key.jump Space
スニーク key.sneak 左Shift
ダッシュ key.sprint 左Control
前進 key.forward W
key.right D
key.left A
後退 key.back S
アイテムの使用・ブロックの設置 key.use 右ボタン
ブロック選択 key.pickItem 中央ボタン
攻撃する・壊す key.attack 左ボタン
アイテムをオフハンドと交換 key.swapOffhand F
アイテムを捨てる key.drop Q
インベントリの開閉 key.inventory E
ホットバースロット1 key.hotbar.1 1
ホットバースロット2 key.hotbar.2 2
ホットバースロット3 key.hotbar.3 3
ホットバースロット4 key.hotbar.4 4
ホットバースロット5 key.hotbar.5 5
ホットバースロット6 key.hotbar.6 6
ホットバースロット7 key.hotbar.7 7
ホットバースロット8 key.hotbar.8 8
ホットバースロット9 key.hotbar.9 9
ホットバーの保存 key.saveToolbarActivator C
ホットバーの読み込み key.loadToolbarActivator X
コマンドラインを開く key.command /
チャットを開く key.chat T
プレイヤーリストの表示 key.playerlist Tab
社交設定画面 key.socialInteractions P
スクリーンショットの撮影 key.screenshot F2
フルスクリーンの切り替え key.fullscreen F11
プレイヤーの強調表示 key.spectatorOutlines 未割り当て
滑らかなカメラ動作の切り替え key.smoothCamera 未割り当て
視点の切り替え key.togglePerspective F5
進捗 key.advancements L

nbt(NBTデータ表示)

nbtはブロックエンティティ、エンティティ、ストレージのNBTの値を表示するタグです。

  • nbt
    指定したブロックエンティティ、エンティティ、ストレージの表示したいNBT値のNBTパスを指定します。
  • block
    NBT値を取得したいブロックエンティティを座標で指定します。
    座標は絶対座標、相対座標、ローカル座標で指定します。
  • entity
    NBT値を取得したいエンティティをセレクターかUUIDで指定します。
    プレイヤーの場合は、プレイヤー名でも指定できます。
  • storage
    NBT値を取得したいストレージのパスを指定します。
  • separator
    指定したデータが複数ある場合、列挙された時の間の文字を指定できます。
    デフォルトは{text:", "}です。
  • interpret
    trueにすることで、表示するnbtの内容をSNBTとして解析した結果を表示します。
  • source
    構文解析高速化用で、NBTの取得先のタイプblockentitystorageのいずれかを指定することができます。
nbt使用例
# 座標[10 64 -10]にあるチェスト系ブロックの1つ目のアイテムを表示する
tellraw @p {block:"10 64 -10",nbt:"Items[{Slot:0b}]"}
# 一番近いプレイヤーのUUIDを表示する
tellraw @p {entity:"@p",nbt:"UUID"}
# ストレージの_:_内にあるデータを、SNBTとして表示する
data merge storage _:_ {text:"コメント",color:red}
tellraw @p {storage:"_:_",nbt:"",interpret:true}

特定のテキストに使用可能な文字指定タグ

以下のタグは、tellrawtitlebossbar、看板の文字やテキストディスプレイのデータ更新時、記入済みの本を最初に開いたときにのみ使用できます。

score(スコアの表示)

scoreはスコアボードの値を表示するタグです。
objectiveでスコアボードを、nameでスコアボード内の名前を指定し、その値を表示します。

  • objective
    スコアボードのオブジェクト名を指定します。
  • name
    objectiveで指定したスコアボード内の名前を指定します。
    セレクターも使用できますが、複数体は指定できません。
    *(ワイルドカード)にすることで、表示しているエンティティの名前を指定できます。
score使用例
title @a title {score:{objective:"obj",name:"@p"}}
title @a title {score:{objective:"obj",name:"*"}}

selector(名前の表示)

selectorは指定したエンティティの名前を表示するタグです。

  • selector
    プレイヤー名、セレクター、UUIDで指定します。
    複数体も指定可能です。
  • separator
    指定したエンティティが複数体の場合、列挙された時の間の文字を指定できます。
    デフォルトは{text:", ",color:gray}です。
selector使用例
title @a title {selector:"@p"}
tellraw @p {selector:"@e[limit=5]",separator:"\n"}

テキストの装飾を指定するタグ

color(文字の色)

表示する文字の色を変更するタグです。
色に対応した文字または、RGB値の16進数カラーコードで指定します。

  • 色に対応した文字
    文字で指定する場合、指定できる色は以下の16色です。

    • black
    • dark_blue
    • dark_green
    • dark_aqua
    • dark_red
    • dark_purple
    • gold
    • gray
    • dark_gray
    • blue
    • green
    • aqua
    • red
    • light_purple
    • yellow
    • white
  • 16進数
    RGB値の16進数カラーコードで指定する場合、最初に#を入力します。
    例:RGB値[ 255, 255, 0 ] = #ffff00

color使用例
title @p title {text:"赤色",color:"red"}
title @p title {text:"黄色",color:"#ffff00"}

shadow_color(影の色)

文字の影の色を変更するタグです。
RGBA値の配列、ARGB値の16進数、10進数、2進数表記で指定できます。
A(不透明度)を0にすると、影を非表示にできます。

  • 配列
    配列で指定する場合は、0~255の値を0~1に変換(255で除算)します。
    例:RGBA値[ 255, 255, 55, 255 ] = [ 1, 1, 0.33, 1 ]
  • 16進数
    16進数で指定する場合は、最初に0xを入力します。
    例:ARGB値[ 255, 255, 0, 255 ] = 0xffff00ff
  • 2進数
    2進数で指定する場合は、最初に0bを入力します。
    例:ARGB[ 255, 0, 255, 0 ] = 0b11111111000000001111111100000000
  • 10進数
    例:ARGB値[ 255, 255, 100, 10 ] = -39926

10進数の変換式
$16777216\times(A)+65536×(R)+256\times(G)+(B)$
結果が2147483647より大きい場合、結果から4294967296を引く

例の場合、
$
\begin{pmatrix}
A & R & G & B
\end{pmatrix}=
\begin{pmatrix}
255 & 255 & 100 & 10
\end{pmatrix}
$ なので、
$ 16777216\times255+65536\times255+256\times100+10=4294927370 $ となり、
$ 2147483647 < 4294927370 $ より、
$ 4294927370-4294967296=-39926 $
となります。

shadow_color使用例
title @p title {text:"半透明の黄色",shadow_color:[1,1,0.33,0.5]}
title @p title {text:"紫色",shadow_color:0xffff00ff}
title @p title {text:"緑色",shadow_color:0b11111111000000001111111100000000}
title @p title {text:"オレンジ",shadow_color:-39926}

font(フォント)

文字のフォントを指定するタグです。
デフォルトはdefaultです。
リソースパックで追加したカスタムフォントも指定できます。
バニラで指定できるフォントは以下の4種類です。

  • default
    デフォルトのMinecraftオリジナルのドットフォント
  • unifont
    Unicodeフォント
  • alt
    エンチャントテーブルの候補に表示されている銀河標準語
  • illageralt
    マイクラダンジョンズの邪悪な村人が使用するルーン文字

カスタムフォントやユニコードの特性については、まっしゅさんのカスタムフォントの創造的な使い方【マイクラリソパ解説】の動画が分かりやすく参考になると思います。

font使用例
title @p title [{text:"test ",font:default},{text:"test ",font:uniform},{text:"test ",font:alt},{text:"test ",font:illageralt}]

bold(太字)

文字の太字を指定するタグです。
デフォルトはfalseです。

bold使用例
title @p title {text:"太字abc",bold:true}

italic(斜体)

文字の斜体を指定するタグです。
デフォルトはfalseですが、custom_name付きアイテムのみtrueです。

italic使用例
title @p title {text:"斜体abc",italic:true}

underlined(下線)

文字の下線を指定するタグです。
デフォルトはfalseです。

underlined使用例
title @p title {text:"下線abc",underlined:true}

strikethrough(打ち消し線)

文字の打ち消し線を指定するタグです。
デフォルトはfalseです。

strikethrough使用例
title @p title {text:"打ち消し線abc",strikethrough:true}

obfuscated(難読化)

文字の難読化を指定するタグです。
難読化された文字は、ランダムな文字に変化し続けます。
デフォルトはfalseです。

obfuscated使用例
title @p title {text:"難読化abc",obfuscated:true}

extra(追加テキスト)

extraは追加のテキストを表示するタグです。
追加のテキストには、先ほど紹介した装飾や、後ほど紹介する機能が継承されます。
追加で別のタグを個別で指定することもできます。

extra使用例
tellraw @p [{text:"ここ→"},{text:"<",click_event:{action:run_command,command:"/tellraw @s \"クリックした\""},extra:[{text:"クリック",underlined:true},{text:">"}]}]

テキストの機能を指定するタグ

click_event(クリック時の機能)

チャット欄の文字や記入済みの本の文字列を左クリックまたは、看板を右クリックすることで様々な機能を実行します。
extra内のtextではでは機能しません。

  • action
    クリックした際の実行される機能の種類を指定します。
    • open_url
      指定したURLのサイトを開きます。
      tellrawコマンド、記入済みの本でのみ機能します。
      • url
        開くサイトのURLを指定します。
    • run_command
      指定したコマンドを実行します。
      tellrawコマンド、記入済みの本の場合プレイヤーの権限レベルに応じたコマンドのみ実行可能です。
      看板の場合、プレイヤーの権限レベル関係なくコマンドが実行されます。
      • command
        実行するコマンドを指定します。
        mesaytellteammsgコマンドは機能しません。
    • suggest_command
      指定した文字がチャット入力欄に入力されます。
      tellrawコマンドでのみ機能します。
      • command
        チャット入力欄に入力される文字を指定します。
    • change_page
      指定したページを開きます。
      記入済みの本でのみ機能します。
      • page
        開くページを指定します。
    • copy_to_clipboard
      指定した文字をクリップボード(コピーや切り取りデータを一時的に保存する場所)にコピーします。
      tellrawコマンド、記入済みの本でのみ機能します。
      • value
        コピーする文字を指定します。
click_event使用例
# open_url
tellraw @p {text:"<<サイトを開く>>",click_event:{action:open_url,url:"https://x.com/Hirobao1"}}
# run_command
setblock ~ ~1 ~ acacia_wall_sign{is_waxed:true,front_text:{messages:[{text:"コマンド実行",click_event:{action:run_command,command:"give @s diamond"}},"","",""]}}
# suggest_command
tellraw @p {text:"<<チャットに入力>>",click_event:{action:suggest_command,command:"入力された文字"}}
# change_page
give @p written_book[written_book_content={author:"",title:"",pages:[{text:"<<2ページ目を開く>>",click_event:{action:change_page,page:2}},{text:"2ページ目"}]}]
# copy_to_clipboard
tellraw @p {text:"<<コピーする>>",click_event:{action:copy_to_clipboard,value:"コピーされた文字"}}

insertion(Shift+左クリック時の機能)

insertionは、文字をShift+左クリックすることで、指定した文字がチャット入力欄に入力されます。
tellrawコマンドで使用できます。

insertion使用例
tellraw @p {text:"<Shift+左クリック>",insertion:"入力された文字"}

hover_event(ホバー時の機能)

tellrawコマンド、記入済みの本の文字で使用できます。
チャット欄の文字や記入済みの本の文字列にマウスカーソルを重ねた時にツールチップを表示できる機能です。

  • action
    マウスオーバーした際に実行されるツールチップの種類を指定します。
    • show_text
      指定したテキストを表示します。
      • value
        表示するテキストを指定します。
    • show_item
      指定したアイテム情報を表示します。
      • id
        表示するアイテムIDを指定します。
        アイテムIDによってデフォルトのコンポーネントが決まります。
      • count
        アイテムの個数を指定できます。
        表示テキストに変化はありませんが、記入済みの本ではデータとして保存されます。
      • components
        表示するアイテムのコンポーネントを指定します。
        エンチャントやアイテムの説明などのツールチップが変化するものは表示に反映されます。
    • show_entity
      指定したエンティティ情報を表示します。
      F3+Hで高度な情報を表示している時のみ表示されます。
      • name
        表示するエンティティ名を指定します。
      • id
        表示するエンティティのタイプをエンティティIDで指定します。
      • uuid
        表示するUUIDを指定します。
        ハイフン付き16進数UUIDで指定する場合はクォーテーションマーク("')で囲う必要があります。
hover_event使用例
tellraw @p {text:"ホバーテキスト表示",hover_event:{action:show_text,value:{text:"表示されるテキスト"}}}
tellraw @p {text:"アイテムについて",hover_event:{action:show_item,id:apple,components:{item_name:{text:"幸運リンゴ",color:aqua},enchantments:{fortune:3}}}}
tellraw @p {text:"エンティティ詳細",hover_event:{action:show_entity,uuid:[I;1,2,0,3],id:rabbit,name:"♦ひろばお♦"}}

テキスト内での改行や装飾、特殊文字

エスケープシーケンス

エスケープシーケンスとは、普通では表せない文字や機能を表すために規定された文字のことです。

  • "\の表示
    textでも紹介しましたが、
    "に囲まれた文字内での"\などのそのままでは表示できない文字を表示させたいとき、\を後ろにつけて\"\\と表記します。
    さらに、\"に囲まれた中のテキストで"\を表示したい場合は、全ての\"の後ろに\をつけ、\\\"\\\\と表記します。
title @p title ["\"に囲まれた。\"",'\'\\の表示']
tellraw @p {text:"コマンド実行",click_event:{action:run_command,command:"title @s title \" \\\\\\\"の表示 \""}}
  • 改行
    tellrawコマンド、記入済みの本、テキストディスプレイで使用できます。
    文字の中に\nを入れることで、改行することができます。
改行使用例
tellraw @p "あ\n\n\n\nお"

エスケープシーケンスでは他にもバックスペースの\bや、水平・垂直タブの\t\vなどいろいろありますが、使用できなかったり専用の記号になるだけで機能しません。

Unicode

Unicode(ユニコード)とは、世界中の文字や記号を表現するための文字コード標準です。
文字ごとに文字コードが割り振られています。
文字の中で連続したスペースを入れたい時や、装飾コードでも使用する§をあらわす時、カスタムフォント等で特に使用されます。

Unicode使用例
title @p title "あいうえお=\u3042\u3044\u3046\u3048\u304a"
title @p title "連続した[\u3000\u3000\u3000\u3000\u3000]スペース"
応用するとこのような仕組みのテキストも可能になります
コマンドブロックで実行してみてね
tellraw @p [{text:"\n<ここをクリック>\n",click_event:{action:run_command,command:"tellraw @p [{text:\"\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\"},{text:\"<次はここ>\\n\",click_event:{action:run_command,command:\"tellraw @p [{text:\\\"\u0020\u0020\u0020\u0020\u0020\u0020\u0020\\\"},{text:\\\"<次はこっち>\\\\n\\\",click_event:{action:run_command,command:\\\"tellraw @p {text:\\\\\\\"\u0020\u0020終 わ り\\\\\\\\n\\\\\\\",hover_event:{action:show_text,value:{text:\\\\\\\"もうないよ\\\\\\\"}}}\\\"}}]\"}}]"}}]

装飾コード

装飾コードとは、§を使用し文字の途中で色を変えたり、下線を引いたりする手法です。
server.propertiespack.mcmetaなどにも使用できます。
§の後に入力する文字によって装飾の種類が変わります。
例えば、文字の途中から赤色にしたいとき、§のあとにcを入力します。
注意として、JAVA版では§を直接入力することができないので、Unicodeで記載します。
§のUnicodeは\u00a7です。

装飾コード例1
title @p title {text:"白\u00a7c赤"}

JAVA版で指定できる装飾コード一覧

装飾コード 機能 名称
§0 黒色黒色 black
§1 濃い青色 dark_blue
§2 濃い緑色 dark_green
§3 濃い水色 dark_aqua
§4 濃い赤色 dark_red
§5 濃い紫色 dark_purple
§6 金色 gold
§7 灰色 gray
§8 濃い灰色 dark_gray
§9 青色 blue
§a 緑色 green
§b 水色 aqua
§c 赤色 red
§d 紫色 light_purple
§e 黄色 yellow
§f 白色 white
§k 難読化 obfuscated
§l 太字 bold
§m 打ち消し線 strikethrough
§n 下線 underlined
§o 斜体 italic
§r 装飾コードリセット

※注意

  • §r(リセット)を/n(改行)後に入れると、改行前の装飾コードはリセットされず保持されます
  • カラーコード(\u00a7cなど)を入力した場合、それ以前の太字や打ち消し線などの機能的コードがリセットされます
装飾コード例2
title @p title "\u00a7mplain\u00a7e\u00a7l\u00a7n\u00a7o装飾テキスト\u00a7b\u00a7kABC"
参考サイトにある装飾コードの見本(コマンドブロックで実行してね)
give @p written_book[written_book_content={title:"\u00a7dFormatting codes",author:"\u00a7eHirobao",pages:["\u00a7nMinecraft Formatting\n\n\u00a700 \u00a711 \u00a722 \u00a733\n\u00a744 \u00a755 \u00a766 \u00a777\n\u00a788 \u00a799 \u00a7aa \u00a7bb\n\u00a7cc \u00a7dd \u00a7ee \u00a7ff\n\n\u00a70k \u00a7kkMinecraft\u00a7r\nl \u00a7lMinecraft\u00a7r\nm \u00a7mMinecraft\u00a7r\nn \u00a7nMinecraft\u00a7r\no \u00a7oMinecraft\u00a7r\nr \u00a7rMinecraft"]}]

さいごに

マイクラの配布マップなどで文字に色を付けたり、装飾を付けることでプレイしている人に対して分かりやすく、全体のクオリティも上がると思います。
状況に応じたテキストの使い分けで、コマンド制作もより効率良くできるようになると思います。
是非みんなもSNBTテキストで文字をおしゃれにカスタマイズしてみてください。

記事内でもし間違っている場所などあればコメントかDM(@Hirobao1)で教えて下さい。

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?