はじめに
ここでご紹介させて頂く発射アイテムというのは、弓やクロスボウなどのような武器で遠隔攻撃を行うアイテムの事を指しています。
なお、基本的な部分は以下のページでダミーアイテムが実装済みである事を前提にしています。
以降ではcomponents
ブロックのJSONデータの内容を「汎用ブロック」「アニメーション設定」「発射機能設定」の3つのパートに分けて発射アイテムの作り方をご紹介します。
「汎用ブロック」とは、上記ページの>> コンポーネント定義の項目でご紹介させて頂いたcomponents
ブロックの便宜上の呼称です。
定義ファイルの内容
以下のファイルはダミーアイテムの実装を元に必要な定義を追加したものです。
{
"format_version": "1.20.50",
"minecraft:item": {
"description": {
"identifier": "customize:dummy_item",
"menu_category": {
"category": "items"
}
},
"components": {
// 汎用ブロック -----START
"minecraft:icon": {
"texture": "dummy_item"
},
"minecraft:display_name": {
"value": "item.customize:dummy_item.name"
},
"minecraft:can_destroy_in_creative": false,
"minecraft:hand_equipped": true,
"minecraft:damage": 6,
"minecraft:glint": true,
// 汎用ブロック -----END
// アニメーション設定 -----START
"minecraft:use_animation": "bow",
"minecraft:use_modifiers": {
"use_duration": 1.6,
"movement_modifier": 0.35
},
// アニメーション設定 -----END
// 発射機能設定 -----START
"minecraft:shooter":{
"ammunition" :[{
"item" :"minecraft:arrow",
"use_offhand" :true,
"search_inventory" :true,
"use_in_creative" :true
}],
"max_draw_duration" :0.1,
"scale_power_by_draw_duration" :true,
"charge_on_draw" :false
},
"minecraft:cooldown": {
"category": "dummy_item",
"duration": 1.0
}
// 発射機能設定 -----END
}
}
}
上記のコメントのように、大きく分けて「汎用ブロック」「アニメーション設定」「発射機能設定」の3つのパートに分けています。
以下ではパート分けしたそれぞれの内容をみていきます。
汎用ブロック
・minecraft:icon
- texture(="dummy_item")
- テクスチャファイルの所在を表すキーを設定しています。
・minecraft:display_name
- value(="item.customize:dummy_item.name")
-
以下の>> 多言語設定の項目で設定しているキーの名前を設定しています。
この多言語設定で登録されているキーの値がアイテム名として表示されます。
・minecraft:can_destroy_in_creative(=false)
クリエイティブモード時にブロックを壊さないようにfalseを設定しています。
・minecraft:hand_equipped(=true)
装備品としてtrueを設定しています。
・minecraft:damage(=6)
攻撃した時のダメージを設定しています。
・minecraft:glint(=true)
カスタムアイテムである事を表現するため、レンダリングがかかるようにtrueを設定しています。
アニメーション設定
・minecraft:use_animation(="bow")
アニメーションの種類を指定します。
今回は矢を射るアイテムなのでbow
を指定しています。
・minecraft:use_modifiers
アイテムを使用するまでにかかる時間を指定します。
ここでは>> 食料アイテムの設定を流用しています。
アニメーションの種類と定義の詳細は以下のページをご覧ください。
発射機能設定
・minecraft:shooter
発射機能特定の設定項目です。
- ammunition
-
発射時に消費されるアイテムを指定します。
- item(="minecraft:arrow")
-
ここには補充アイテム(発射時にアイテムスロット上で消費するアイテム)を指定します。今回は矢のアイテムを設定しています。
ネイティブなアイテムを使う場合にはこれで問題ありませんが、補充アイテムとしてカスタムアイテムを指定する場合、および発射体エンティティとしてカスタムエンティティを使う場合は>> 発射体エンティティのページをご覧ください。 - use_offhand(=true)
-
trueの場合、オフハンドでアイテムを使用できます。
- search_inventory(=true)
-
trueの場合、インベントリからアイテムを検索できるようになります。
- use_in_creative(=true)
-
trueの場合、クリエイティブモードでも使用できます。
- max_draw_duration(=0.1)
-
scale_power_by_draw_duration
を設定している場合、ここで設定した時間(恐らく秒数)を超えるまでチャージしないと自分に当たるので注意が必要です。
- scale_power_by_draw_duration(=true)
-
チャージ時間に応じて投げの威力が増加するかどうかを設定します。
trueの場合、長く押し続けるほど放した時のパワーが大きくなり、アニメーションのuse_modifiers
設定に関わらず右クリック状態を解除した時点で発射されます。
- charge_on_draw(=false)
-
trueの場合、1回目のチャージでクロスボウのように溜めを作り、2回目のアクションで発射します。
・minecraft:cooldown
アイテムのクールダウン時間を指定します。
このブロックを設定していると、発射後のクールダウン時間内では再発射できなくなります。
また、右クリック状態を長押ししている間も発射されません。
- category(="dummy_item")
-
このアイテムのクールダウンの種類を文字列で設定します。
- duration(=1.0)
- 一致するカテゴリを持つアイテムが再び使用可能になるまでのクールダウン時間(秒単位)を設定します。
多言語設定
カスタムエンティティの場合と同様に以下のファイルでアイテム名を定義しています。
item.customize:dummy_item.name=ダミーアイテム
おわりに
完成イメージは次の通り。
今回は木の棒をアイテム画像に使用しています。