この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめです。
この記事では、こんな疑問を解決します!
- referenceでitem_modiferを呼び出す
- 実例
referenceは特殊な項目で、作成済みのitem_modifierを呼び出すことが出来る項目です。
本来item_modifierを書き込むべき項目に、わざわざ作成済みのitem_modifierを呼び出すitem_modifierを書き込むのは何故か。
そういった疑問を解決しますので、ぜひ参考にしてくださいね。
それでは、さっそく見ていきましょう!
本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。
referenceでitem_modiferを呼び出す
referenceはitem_modifierを呼び出す項目です。
そのため、reference自体が何か特別なことを処理することはありません。
「item_modifierを書き込む項目に、わざわざitem_modifierを呼び出す項目を書く必要性があるのか?」と疑問を抱くかもしれませんが、実は非常に便利な項目となっています。
その理由は、複雑な記述を何度も繰り返す必要がなくなるからです。
数十行にも及ぶ記述を何か所にも使用する場合、1か所ずつコピペなどするのは面倒です。
また、修正作業をする際に複数個所を直さなくてはならなくなります。
複数の修正箇所があると、全部修正できたか確認しなければならないなどといった手間も生じます。
referenceを使用した場合は、参照している記述だけを修正すれば全体の修正となるため、管理が非常に楽です。
実例
実際の例を見てみましょう。
今回はset_nameとset_loreで名前と説明文を指示するitem_modifierをreferenceで呼び出して、タラのドロップ品の名前、説明文を変更してみます
- データパック本体
- data
- フォルダー
(今回はsampleと命名したとします)- item_modifiers
- jsonファイル
(今回はtest.jsonと命名したとします)
- jsonファイル
- item_modifiers
- minecraft
- loot_tables
- entities
- cod.json
- entities
- loot_tables
- フォルダー
- pack.mcmeta
- data
sampleフォルダ内のjsonファイルの記述は以下の通り。
[
{
"function": "minecraft:set_name",
"entity": "this",
"name": "蒼の宝石"
},
{
"function": "minecraft:set_lore",
"lore": [
{
"text": "青色に光る宝石"
},
{
"text": "東洋では「瑠璃」と"
},
{
"text": "呼ばれているらしい。"
}
],
"replace": true
}
]
タラのドロップ品に関するルートテーブルは以下のように記述します。
{
"type": "minecraft:entity",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:lapis_lazuli",
"functions": [
{
"function": "minecraft:reference",
"name": "sample:test"
}
]
}
]
}
]
}
ラピスラズリがドロップするようにしつつ、referenceによって初めに紹介したjsonファイルを呼び出しているため、名前と説明文が変更されます。
今回は例として挙げたため、そこまで複雑な記述ではありませんが、複雑な記述になればなるほど覚えておきたい項目と言えますね。
まとめ
というわけで、今回のまとめです。
- referenceはitem_modifierを呼び出す項目で、複雑な記述と相性が良い。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!