Bukkit Spigot Japan Wikiは、Hello Minecraftを応援しています。

超まいくらひろば2017バナー

 

 

Custom Item Textures

提供: Bukkit Spigot Japan Wiki
移動: 案内検索

Custom Item Textures(以下 「CIT」と表記)とは、任意のNBTタグが付与されたアイテムに、任意のテクスチャを割り当てるmcpather(Optifine同梱)の機能です。


概要

CITに対応したリソースパックをOptifineが導入されたクライアントで読み込むことで、 任意のNBTタグが付与されたアイテムに、任意のテクスチャを割り当てることができます。

つまり、 Spigotサーバーで、 CITに対応したサーバーのリソースパックを用意することで、

Opfifineを導入したプレイヤー限定ではありますが、

専用テクスチャを持ったアイテムを提供する事が出来ます。

MOD追加のアイテムに比べ制限はあるものの、「専用テクスチャを持った特殊なアイテム」をspigotサーバーで提供可能になります。

外部リンク: Custom_Item_Textures/mcpather


リソースパック構造

基本的なリソースパック作成に関しては割愛します。

  • assets/minecraft/mcpatcher/cit

の配下にpngファイルとpropertiesファイルを配置します。

pngファイルは16x16や32x32等、他のテクスチャのサイズと合わせます。

propertiesファイルの記述方法は別項目にて解説します。

.propertiesファイルの記述法

原文はコチラ

(任意) テクスチャ置き換えかたの種類

type=<item | enchantment | armor>
  • item:アイテムのテクスチャを置き換える。
  • enchantment:エンチャントの輝き方を置き換える。
  • armor:防具のテクスチャを置き換える。(防具は装備時と手に持った時のテクスチャが異なる)

防具のテクスチャを置き換える場合、armor.propertiesとitem.properties・armor.pngとitem.png それぞれ二つずつ必要となるだろう。

(任意) 置き換えるテクスチャ

texture=<replacement texture>

置き換えるテクスチャを指定する。「.png」は省略する。 .propetiesファイルと.pngファイルは基本的に同じフォルダに格納する。 また、弓やコンパス等、アイテム1つに対して複数のテクスチャが存在する場合は

texture.<元々のテクスチャ1>=<置き換えるテクスチャ1>
texture.<元々のテクスチャ2>=<置き換えるテクスチャ2>

と記述する。 以下に弓の例を記述する。

texture.bow_standby=my_special_bow_standby
texture.bow_pulling_0=my_special_bow_pulling_0
texture.bow_pulling_1=my_special_bow_pulling_1
texture.bow_pulling_2=my_special_bow_pulling_2

この場合、my_special_bow_standby,my_special_bow_pulling_0,my_special_bow_pulling_1,my_special_bow_pulling_2はpropertiesと同じ階層に格納されるべき。

(type=item と type=armor において必須)該当するアイテムリスト

items=<list of items>

アイテムリスト。

コンマを挟むことで複数指定することができるようだ。(未検証)

minecraft:stone

のようにテキストベースのIDで指定すべきだ。 「minecraft:」の部分は省略可能。 参考リンク

(任意) ダメージ値

damage=<damage values 0-65535>
# 例)ダメージ値100以上
damage=100-
# 例)ダメージ値99以下
damage=-99
# 例)50%未満 
damage=0-50%

(任意) スタックサイズ

stackSize=<stack sizes 0-65535>

スタック数による指定も可能。

(任意) エンチャントとレベル

enchantmentIDs=<enchantment IDs 0-255>
enchantmentLevels=<enchantment levels 0-255>

エンチャントが一致する場合にテクスチャを置き換える。 レベルを指定しなくても作動する。 外部リンク:エンチャントリスト

# 例)シルクタッチ
enchantmentIDs=33
# 例)フレイムor火属性のレベル3以上
enchantmentIDs=20 50
enchantmentLevels=3-
# 例)全エンチャントのレベル8~10
enchantmentLevels=8-10

(任意) NBTタグ

nbt.<タグ>=<値>

指定したNBTタグ全てが一致する場合にテクスチャを置き換える

  • String, Integer, Short, Long, Double, Float - 正確な値のみ可能
  • Compound - Can match a specific tag or any tag (*).
  • List - Can match a specific index (starting at 0) or any index (*).
# 例)表示名が一致
nbt.display.Name=My Sword
# 例)表示名に日本語等を使用したい場合
# ※文字色変更したい場合等はエスケープシークエンスを使用('\u00a7'等)
nbt.display.Name=\u00a74\u00a7oMy Sword
# Loreに一致する場合(0行目)
nbt.display.Lore.0=My Lore Text
# Loreに一致する場合(全ての行)
nbt.display.Lore.*=My Lore Text
? や * 等のワイルドカードも使用可能
# 大文字小文字を区別する場合。(この例では「letter to creeper」は対象外)
nbt.display.Name=pattern:Letter to *
# 大文字と小文字を区別しない場合。
nbt.display.Name=ipattern:Letter to *
# 正規表現。大文字小文字の'''区別有り'''
#(この例では「Letter to Creeper」「Letter from creeper」が対象。「letter to creeper」は対象外)
nbt.display.Name=regex:Letter (to|from) .*
# 正規表現。大文字小文字の'''区別無し'''
nbt.display.Name=iregex:Letter (to|from) .*

Any backslashes to the right of the = must be doubled. Literal backslashes within a regular expression or wildcard must be quadrupled.(翻訳・加筆希望)

# 筆者の正規表現に対する理解が浅いため未翻訳
# Correct:
nbt.display.name=regex:\\d+
nbt.display.name=regex:\\\\
nbt.display.name=/\\/\\
# Wrong:
nbt.display.name=regex:\d+
nbt.display.name=regex:\\
nbt.display.name=/\/\

.properties記述例

効率強化Ⅴが付与されたダイヤのツルハシのテクスチャをsuper_picaxe.pngに置き換える。

type=item
items=minecraft:diamond_pickaxe
enchantmentIDs=32
enchantmentLevels=5
texture=super_picaxe

「Super Drill」と一致する(大文字・小文字を区別しない)名前がついたダイヤのツルハシのテクスチャをsuper_drill.pngに置き換える。

(執筆時点では日本語は使用するためにはエスケープシークエンスを使用する必要がある。) (外部リンク:エスケープシークエンス変換ツール)

type=item
items=minecraft:diamond_pickaxe
texture=super_drill
nbt.display.Name=ipattern:Super Drill