名前を変えてアイテムのテクスチャを変える
Minecraftでは、どのアイテムも金床で名前を変えられます。リソースパックを使うと、名前を変えたアイテムに専用のテクスチャを付けられます。「Excalibur」という名前のダイヤモンドの剣だけが金色に輝き、ほかのダイヤモンドの剣はそのまま、ということができます。Java版1.21.5以降ではMODなしで、それより前のバージョンではOptiFineかCIT Resewn MODが必要です。Texture Pack Makerは、あなたのバージョンに合ったファイルを書き出します。
手順
- Texture Pack Makerを開き、Java版のパックを作るか、手持ちのパックを開きます。
- ダイヤモンドの剣など、アイテムのテクスチャを開き、メニュー(⋮)の名前で変わるテクスチャ、または3Dプレビューの下の名前を選びます。
- Excaliburなどの名前を入力します。同じテクスチャを使う名前がほかにもあれば追加します。
- 作って描くを押します。新しいテクスチャはアイテムのテクスチャのコピーから始まるので、上から描きます。3Dの形で専用のモデルも付けられます。
- 書き出すを押してパックを入れ、金床でアイテムにまったく同じ名前を付けて持ちます。
名前が一致する条件
- 名前は大文字と小文字まで完全に同じでなければなりません。Excaliburとexcaliburは別の名前です。両方で使いたいときは両方追加します。
- いくつかの名前で1つのテクスチャを使えます。1つのアイテムに、名前で変わるテクスチャをいくつも付けられます。
- 金床で付けられる名前は50文字までで、色コードは使えません。コマンドで色や太字を付けた名前は、普通の名前とは一致しません。
- 変わるのは、手に持ったとき、インベントリ、地面、額縁の中のアイテムです。名前を変えたアイテムから置いたブロックは、いつもどおりの見た目です。
Java版1.21.5以降:MOD不要
1.21.5からは、アイテム定義(assets/minecraft/items/<アイテム>.json)が、minecraft:componentプロパティとminecraft:custom_nameコンポーネントのminecraft:selectで、アイテムの名前によってモデルを選べます。それ以外の名前では、アイテムの普通のモデルになります。
{
"model": {
"type": "minecraft:select",
"property": "minecraft:component",
"component": "minecraft:custom_name",
"cases": [
{
"when": ["Excalibur", "Sword of Light"],
"model": {
"type": "minecraft:model",
"model": "minecraft:item/names/diamond_sword/excalibur"
}
}
],
"fallback": {
"type": "minecraft:model",
"model": "minecraft:item/diamond_sword"
}
}
}名前用のモデルは、アイテム自身のモデルに新しい絵を付けたものなので、剣は剣として持たれます。
{
"parent": "minecraft:item/diamond_sword",
"textures": {
"layer0": "minecraft:item/names/diamond_sword/excalibur"
}
}パックがすでにそのアイテム定義を変えているとき(モデルエディターで作った3Dモデルなど)は、名前の判定がその前に入ります。Java版1.21.4にもアイテム定義はありますが、まだアイテムの名前を読めないので、下のOptiFine用ファイルが入ります。アイテム定義と3Dアイテムのしくみ。
1.21.5より前:OptiFineかCIT Resewn
古いバージョンは、それだけでは名前でテクスチャを選べません。OptiFineのカスタムアイテムテクスチャ(CIT)や、Fabric用のCIT Resewn MODならできます。エディターは、名前で変わるテクスチャごとに.propertiesファイルをassets/minecraft/optifine/cit/に書き出します。
# Excalibur, Sword of Light: needs OptiFine or the CIT Resewn mod
type=item
items=diamond_sword
texture=textures/item/names/diamond_sword/excalibur.png
nbt.display.Name=regex:(Excalibur|Sword of Light)名前が1つならそのまま書き、複数ならregex:のルールにします。1.20.5からはnbt.display.Nameの代わりにcomponents.custom_nameを書きます。どちらのMODも両方読めます。3Dの形があるテクスチャはtexture=の代わりにmodel=を使います。パックの対応範囲が1.21.5より前から後まであるときは、両方の種類のファイルが入ります。
統合版
統合版のリソースパックでは、名前でアイテムの見た目を変えられません。Molangのアイテム名(query.is_item_name_anyなど)はminecraft:diamond_swordのようなIDで、プレイヤーが金床で付ける名前ではありません。そのため、エディターは統合版のパックには名前で変わるテクスチャを用意していません。
すでに入っているパックを開く
Java版のパックを開くと、名前で変わるテクスチャがアイテムのテクスチャの下とウィンドウに表示されます。対象は、1つのアイテムに名前とテクスチャかモデルを付けるOptiFineのCITルールと、名前でモデルを選ぶ1.21.5以降のアイテム定義です。名前以外も調べるルール(耐久値、エンチャント、複数のアイテム)は、パックにそのまま残ります。ipattern:*sword*のようなOptiFineのパターンを使うルールはそのまま残り、OptiFineとCIT Resewnでだけ動きます。
よくある質問
名前を変えたのに、アイテムが普通のままです。なぜですか?
名前が大文字・小文字や空白まで同じか、パックがオンでほかのパックより上にあるか、1.21.5以降で遊んでいるか(古いバージョンならOptiFineかCIT Resewnを入れているか)を確かめてください。パックを入れる前に名前を変えたアイテムでも大丈夫です。名前はアイテムを描くたびに調べられます。
大文字と小文字を区別しないようにできますか?
MODなしのMinecraftではできません。名前は完全に一致する必要があります。使いたい書き方をそれぞれ別の名前として追加してください。OptiFineのパックは大文字と小文字を区別しないパターンを使えます。開いたパックのパターンはそのまま残ります。
名前を変えたアイテムを3Dにできますか?
はい。名前で変わるテクスチャの「3Dの形」を押すとモデルエディターで開けるので、新しい絵から作る3Dアイテムで始められます。
ほかのプレイヤーにも見えますか?
あなたのパックを使っている人には、サーバーでも見えます。名前はアイテムの一部なので全員に見えますが、テクスチャを見るにはパックが必要です。