LocNameの使い方

バージョン1.11用のコマンド解説、第三弾。

アイテムに好きな名前を付ける際、display:{Name:"名前"}というNBTタグを付けますよね。しかしこれじゃ名前が斜体になってしまいます。そこで、langファイルを書き換えることでアイテム名そのものを変える手法が使われてきました。しかしこれではアイテム1種類につき1つしか斜体じゃない名前を付けられません。
先日配信されたMinecraftバージョン1.11では、この問題を解決する画期的なNBTタグ「LocName」が登場しました。 一種類のアイテムに、斜体じゃない名前を複数付けられ、さらに多言語に翻訳可能なのです。 この記事では、そんなLocNameタグの使い方、配布ワールド制作で使う際の活用例をご紹介します。

スポンサーリンク

1.11の新NBTタグ「LocName」とは? 従来の方法との違い

Nameタグ

display:{Name:"アイテム名",Lore:["説明文","説明文"]}という風に、displayタグを使えばアイテムに好きな名前と説明文を付けられます。しかしこれ、アイテム名が斜体になるのが気になる方も多いはず。

langファイルを書き換えると

リソースパックで色々弄れるようになった今、「langファイルを書き換える」というアイテム名変更方法も出てきました。例えばitem.chestplateDiamond.name=スーパーアーマーと書いてja_jp.langという名前で保存しリソースパックにすれば、適用するとダイヤのチェストプレートの名前が「スーパーアーマー」に変わります。

しかしこれ、元のアイテム名自体を変えちゃってるので1種類につき1パターンの名前しか作れないんですよね...


そこで、バージョン1.11で追加されたLocNameタグを使ってみましょう。

LocNameを使うと

「スーパーアーマー」「ベストアーマー」「ウルトラアーマー」全てノーマルの書体で名前を変更できていますね。ちなみにこれは言語設定が日本語の場合。

じゃあ、この状態でEnglish (US)に切り替えてみましょう。


英語に切り替えると

「Super Armor」「Best Armor」「Ultra Armor」― 全て英語に翻訳されちゃいました。自動翻訳じゃないですよ、これもクラフターの皆さんの手で自由に書けるんです。

つまりLocNameタグを使えば、1種類のアイテムに様々な名前を付け、さらに言語ごとに名前を切り替えることができるんです。


アイテムにLocNameタグを付けてみよう

それでは実際にLocNameタグを使ってみましょう。

LocNameタグを付けたダイヤのチェストプレートを入手するコマンド
/give @p minecraft:diamond_chestplate 1 0 {display:{LocName:"適当な英数字"}}

LocNameはdisplayの中に書きます。「適当な英数字」には、item.superArmorだとか分かりやすい英数字を書いておきましょう。この文字列を後で使うので覚えておいて下さい。

item.SuperArmor

例えばitem.superArmorと入力した場合、そのままだとアイテム名は「item.superArmor」になります。これじゃ使えないじゃないか! ...いえいえ、名前は後から付けるんです。


LocNameの仕組み

またまた雑パワポ図解ですが、こちらがLocNameの仕組みです。別途でlangファイルを用意して、LocNameに設定した文字列と実際のアイテム名を結びつけ、それをリソースパックとして読み込むことで実際のアイテム名を表示しているんです。

リソースパックはワールドに同梱しよう

配布ワールドの場合、いちいちリソースパックをダウンロードしてもらって読み込んでもらうのは面倒ですから、手順は後述しますがワールドフォルダーにリソースパックを同梱すればOKです。

さあ、langファイル入りのリソースパックを作成していきます。


アイテム名設定用のlangファイルを作成しよう

langファイルを作成していくのですが、もう面倒なのでいきなりワールドフォルダーの中に作っちゃいましょう。

langフォルダーを作成

セーブデータフォルダーを開きassetsフォルダーを作成、その中にminecraftフォルダーを作成、さらにその中にlangフォルダーを作成します。

テキスト作成

langフォルダーを開き、Windowsの場合は右クリック新規作成テキスト ドキュメント新規テキストファイルを作成します。
Macの場合はXtraFinderってアプリを入れて(XtraFinderの)環境設定Finderメニューに項目を追加新規ファイル...にチェックを入れれば同様の作業でテキストファイルを作成できます。

ja_jp.langに改名

テキストファイルの名前はja_jp.langにします。最初から.txtがない人は表示(タブ)ファイル名拡張子にチェックを付けて。

※バージョン1.11では、リソースパック内のファイル名を全て小文字にしないとエラーになる仕様に変わりました。ja_JP.langではダメなんです。


高機能なエディタ

この「ja_jp.lang」を開いて編集するのですが、メモ帳を使うと余計な「BOM」って奴が寄生するのでメモ帳は使わないで下さい。 メモ帳代替ならTeraPad、より高機能ならSublimeText3がおすすめです。SublimeはMacでも使えますし。

item.superArmor=スーパーアーマー
item.bestArmor=ベストアーマー
item.ultraArmor=ウルトラアーマー

ファイルの内容はこんな感じです。文字列=アイテム名 を一行に一個ずつ書いていきます。ちなみにitem.だとか付けてるのはそれっぽくするだけのカッコつけなので別に英数字ならなんでも構いません。(コマンド内の文字列と合わせればいいんです)

TeraPadでの文字コードの指定

TeraPadの場合は、ファイル文字/改行コード指定保存をクリックし、UTF-8Nを選んで保存しましょう。"N"ってのはBOM付いてませんよって意味です。

BOM無しを選んで保存

(日本語化済みの)Sublime Text 3なら、エンコードを指定して上書き保存UTF-8を選びましょう。with BOMはダメです。

他のテキストエディタの場合、例えば「秀丸エディタ」なら保存時にUTF-8を選んで、BOMを付けるのチェックを外します。「サクラエディタ」なら保存時にUTF-8を選んで、BOMのチェックを外します。


英語版も作ろう

同様にen_us.langという名前のlangファイルを作れば英語に対応できます。こちらも文字コードの指定にはご注意。
ちなみに、他の言語に対応させる場合はこちらの「Locale Code」を小文字に変えてファイル名にしてください。


langファイルをリソースパックにして使おう

pack.mcmetaを作成

langファイル達をリソースパックに封じ込めるために、御札(おふだ)が必要です。セーブデータフォルダーの中に、伝統のpack.mcmetaを作成しましょう。

{
  "pack": {
    "pack_format": 3,
    "description": "Write description here"
  }
}

▲pack.mcmetaの中身はこれをコピペしてください。バージョン1.11ではまたpack_formatが更新されて3になっちゃいました。description欄には英数字しか書けません。
保存する際の文字コードはUTF-8(BOM無し)で大丈夫です。

zipにする

次に、assetsフォルダーとpack.mcmetaを選択して右クリック送る圧縮をクリックしてzipを作成します。

resources

zipの名前をresources.zipにしてEnterこれでワールドにリソースパックが紐付けされました。


反映された

ワールドに入り直して、アイテム名が反映されていたら作業完了です。もし反映されない場合は、resources.zip、langファイルの名前文字コードを確認し直してzipを作り直しましょう。


あとは様々なLocNameを持ったアイテムをコマンドで作り、langファイルを書いてリソースパックを更新して...の繰り返しです。面倒ですがこの作業を繰り返すことで斜体のアイテム名とは完全に決別できます。


最後までお読み頂きありがとうございました。

スポンサーリンク

毎度毎度ツイート、コメント等ありがとうございます。Twitterではブログの更新状況など色々呟いてます。気軽にフォロー下さい。

スポンサーリンク

コメント

  • Pick256

    1.11で急にリソパに大文字使えなくなってびびった
    ワールドにリソパを添付する方法、わかりやすく解説ありがとうございます。

  • かずまっちz@配布ワールド進歩1%

    使い道が思いつかん

  • negi

    購読の通知が遅い上にクリックしても”リンク先が見つかりませんでした”と表示されあまり使えません…
    お手数ですがご確認お願い致します。

  • 看板で使えるようになればッ!

  • でんでん (Minecraft ID:denden0816)

    ”LocName"をLoottableで使うにはどうすればいいのですか?

    • {“function": “minecraft:set_nbt","tag": “{display:{LocName:"文字列"}"}
      をfunctions内に追記して下さい。文字列を囲むダブルクオーテーションの前にバックスラッシュを付ける必要があります。
      詳しくは https://napoan.com/loot-table-perfect-guide/2/#item-nbt をお読み下さい。

      • でんでん (Minecraft ID:denden0816)

        ありがとうございます!
        ナポアンさんの知識にはついていけませんねー。  Orz ハハー

  • show_you1205

    このコマンドで、item.superArmorとかの文字列でリソースパック作ったら、スーパーアーマー限定のテクスチャとか作れるのでしょうか?

  • Pick256

    普段は使わないUnicode文字があるじゃろ?
    それを、こうして、こうじゃ!
    http://www.kwonline.org/u_esc_seq.php

  • でんでん (Minecraft ID:denden0816)

    /setblock ~ ~ ~ minecraft:standing_sign 0 replace {Text1:"{“text":"右クリックしてね","clickEvent":{“action":"run_command","value":"/setblock ~ ~ ~ minecraft:command_block 0 replace {Command:\"/summon villager ~ ~1 ~ {CustomName:\\\"Ore Miner\\\",Profession:5,Offers:{Recipes:[{rewardExp:0b,maxUses:2147483647,uses:0,buy:{id:emerald,Count:3b},sell:{id:coal,Count:2b}},{rewardExp:1b,maxUses:2147483647,uses:0,buy:{id:emerald,Count:7b},sell:{id:iron_ingot,Count:1b}},{rewardExp:1b,maxUses:2147483647,uses:0,buy:{id:emerald,Count:9b},sell:{id:dye,Damage:4,Count:1b}},{rewardExp:1b,maxUses:2147483647,uses:0,buy:{id:emerald,Count:12b},sell:{id:gold_ingot,Count:1b}},{rewardExp:1b,maxUses:2147483647,uses:0,buy:{id:emerald,Count:21b},buyB:{id:iron_pickaxe,Count:1b},sell:{id:diamond,Count:1b}},{rewardExp:1b,maxUses:1,uses:0,buy:{id:diamond,Count:13b},buyB:{id:gold_ingot,Count:34b},sell:{id:diamond_pickaxe,Damage:1488,Count:1b,tag:{HideFlags:63,AttributeModifiers:[{AttributeName:\\\"generic.knockbackResistance\\\",Name:\\\"generic.knockbackResistance\\\",Amount:0.07,Operation:0,UUIDLeast:815322,UUIDMost:228940},{AttributeName:\\\"generic.movementSpeed\\\",Name:\\\"generic.movementSpeed\\\",Amount:0.082,Operation:0,UUIDLeast:895455,UUIDMost:245577},{AttributeName:\\\"generic.armor\\\",Name:\\\"generic.armor\\\",Amount:0.018,Operation:0,UUIDLeast:245367,UUIDMost:682484},{AttributeName:\\\"generic.luck\\\",Name:\\\"generic.luck\\\",Amount:1.0,Operation:0,UUIDLeast:395066,UUIDMost:311230}],display:{Name:\\\"\u00a7b\u00a7lThe Ore Miner’s favorite pickaxe\u00a7r\\\",Lore:[\u00a7r\u00a77\u00a7oAlways with Pickaxe who always digs up the ore by spirit.]},ench:[{id:32,lvl:2},{id:33,lvl:1},{id:34,lvl:4},{id:70,lvl:1}]}}}]},PersistenceRequired:1,CanPickUpLoot:1b,DeathLootTable:\\\"minecraft:chests/abandoned_mineshaft\\\"}\"}"}}",Text2:"{“text":""}",Text3:"{“text":""}",Text4:"{“text":""}"}
    使ってみ

  • でんでん (Minecraft ID:denden0816)

    Command Modderになれそうですね
    (MCreator使ったりするのが面倒だしJava知能が無いしコマンドしか知らないし良かったw)