はじめに
本稿では、アイテムを追加やカスタマイズする際によく使う項目を書き記します。
思いついたタイミングで随時追加していく予定です。
property
CustomIcon(アイコン設定)
通常、アイコンはアイテム名などから自動で割当られるが、オリジナルでアイテムを追加した際などには割り当てられないので、そういう時に使います。
[例]
<property name="CustomIcon" value="meleeToolRepairT0StoneAxe"/>
[Xpath]
<append xpath="items/item[@name='設定したいアイテム名']">
<property name="CustomIcon" value="設定したいアイコン名" />
</append>
- name: CustomIcon(固定)
- value: 割り当てたいアイコン名
アイコン名は、7 Days to Die ゲーム内フォルダの以下の場所に入っているので、そこから調べられます(拡張子は抜き)
[C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Data\ItemIcons]

CustomIconTint(アイコンの色設定)
追加アイテムにアイコンを設定したはいいけど色も形も同じなのでぱっと見で違いが判らない!
そんな時に使います。
※あくまでアイコンの色であって、実際に手に持った際の色とは別です
[例]
<property name="CustomIconTint" value="ff0000"/>
<property name="CustomIconTint" value="255,0,0"/>
[Xpath]
<append xpath="items/item[@name='設定したいアイテム名']">
<property name="CustomIconTint" value="設定したい色" />
</append>
- name: CustomIconTint
- value: 16進カラーコード or RGB値
カラーコードは16進表記でRGBをカンマ区切りでもどちらでもOKです。
カラーコードを調べる際は、以下のようなサイトを利用すると便利です。
URL:https://tools.ajizablg.com/color-picker/

TintColor(アイテムの色設定)
アイコンの色ではなく、手にもった際の色を設定します。
ただし、こちらはバージョンアップを経て一部アイテムには機能しなくなっているものや、どこが変更されたかわかりづらいものもあります。
[例]
<property name="TintColor" value="ff0000"/>
<property name="TintColor" value="255, 0, 0"/>
[Xpath]
<append xpath="items/item[@name='設定したいアイテム名']">
<property name="TintColor" value="設定したい色" />
</append>
- name: TintColor
- value: 16進カラーコード or RGB値
カラーコードは16進表記でRGBをカンマ区切りでもどちらでもOKです。
カラーコードを調べる際は、以下のようなサイトを利用すると便利です。
URL:https://tools.ajizablg.com/color-picker/

HoldType(アイテムの持ち方)
アイテムの持ち方を変更します。
どの番号がどの持ち方なのかは、アイテムの情報を直接見に行って確認するか、
「misc.xml」に列挙されているものを確認するかの2択です。
(画像内の id が番号)

[例]
<property name="HoldType" value="32"/>
[Xpath]
<append xpath="items/item[@name='設定したいアイテム名']">
<property name="HoldType" value="設定したい色" />
</append>
- name: HoldType(固定)
- value: アイテム毎のID
持ち方と、攻撃した時のモーションも対応したものに変わるので、結構楽しい
(画像は鉄斧のIDに変更時のもの)

EconomicValue(価格設定)
アイテムに価格を設定できます。
ただし、注意しないといけないのはデフォルトではトレーダーで表示される価格は
「トレーダーの販売価格:3倍」
「トレーダーへの売却価格:0.2倍」
とかいうボッタくりなので設定された値が実際に売ろうとした際にめちゃくちゃ安く表示されるのは「仕様」です。
また、アイテムによっては販売が許可されていない場合があります。
その場合、アイテムに「SellableToTrader=”false”」というオプションが付いています。
このオプションが付いているとトレーダーへの売却が拒否されるので注意してください。
[例]
<property name="EconomicValue" value="1000"/>
[Xpath]
<append xpath="items/item[@name='設定したいアイテム名']">
<property name="EconomicValue" value="設定したい価格" />
</append>
- name:EconomicValue(固定)
- value:価格
下の画像では、販売価格を「1000」に設定したので
売値は0.2倍なので 1000 * 0.2 = 200 となりました。
※実際には、品質や拡張パーツの有無でも値段が上がったりするので、デバッグで確認する際は要注意

EconomicBundleSize(まとめ売り数)
アイテムを最低何個単位で売買できるかを設定します。
主に1個当たりの値段が1円以下のアイテムなどに使いったりすることが多いです。
[例]
<property name="EconomicBundleSize" value="10"/>
[Xpath]
<append xpath="items/item[@name='設定したいアイテム名']">
<property name="EconomicBundleSize" value="まとめ売り数" />
</append>
- name: EconomicBundleSize(固定)
- value: 任意の数
下の画像では、アーマーマガジンに
・価格を「1000」
・まとめ売り数「10」
に設定した様子
手持ちが10個以下では売却できなくなりました

SellableToTrader(トレーダーへの売却可否設定)
トレーダーへ売却することを制御できます。
売らせたくないアイテムや、簡単に手に入る割に売値が高いアイテムなどに適用することが多いです。
[例]
<property name="SellableToTrader" value="false"/>
[Xpath]
<append xpath="items/item[@name='設定したいアイテム名']">
<property name="SellableToTrader" value="true か false" />
</append>
- name: SellableToTrader
- value: true(売却許可) か false(売却拒否)
下の画像ではダイヤモンドを売却不可にしてみました。
物資はあるのに貧乏

passive_effect
前提知識
passive_effectには、色々知っておく必要のある前提知識があります。
以下の項目は、結構必須級なのでついでに覚えてください。
- operation
- valueの単位
- 左クリック、右クリック
operation
passive_effectには基本的に「operation」という属性がついています。
「パラメータ(name)に、どういう演算(operation)で値(value)を設定するか」というのが基本的なpassive_effectの考え方です。
operationにはいくつか種類があります。
- base_set: アイテムの基礎値を設定
- base_add: アイテムの基礎値に値を加算
- base_subtract: アイテムの基礎値から値を減算
- perc_set: アイテムの基礎値へ掛ける倍率を設定
- perc_add: アイテムの基礎値へ掛ける倍率を加算
- perc_subtract: アイテムの基礎値へ掛ける倍率を減算
subtract系は正直ほぼ使いません。(addでマイナス値指定してあげれば同じ意味になるので)
valueの単位
「value」に指定するのは主に数値のみです。
気を付けないといけないのは「operation」の種類によって指定した値の扱いが変わります。
「base_」とつく「operation」が指定されている場合は、valueに設定された値は「そのまま」反映されます。
「perc_」とつく「operation」が指定されている場合は、valueに設定された値は「パーセント」として反映されます。
[例1]
<passive_effect name="EntityDamage" operation="base_set" value="300" />
<passive_effect name="EntityDamage" operation="perc_set" value="1" />
[例2]
<passive_effect name="EntityDamage" operation="base_set" value="300" />
<passive_effect name="EntityDamage" operation="perc_set" value="1.5" />
例1の場合、アイテムの最終攻撃力は
「300[base_set] * 1[perc_set] = 300」

例2の場合、アイテムの最終攻撃力は
「300[base_set] * 1.5[perc_set] = 450」

このように、baseとpercとで効果量が変わってくるため、気を付けて設定しなければなりません。
次に加算を交えた例を紹介します。
[例3]
<passive_effect name="EntityDamage" operation="base_set" value="300" />
<passive_effect name="EntityDamage" operation="base_add" value="50" />
<passive_effect name="EntityDamage" operation="perc_set" value="1" />
<passive_effect name="EntityDamage" operation="perc_add" value="0.5" />
[例4]
<passive_effect name="EntityDamage" operation="base_set" value="300" />
<passive_effect name="EntityDamage" operation="base_set" value="-50" />
<passive_effect name="EntityDamage" operation="perc_set" value="1" />
<passive_effect name="EntityDamage" operation="perc_add" value="-0.5" />
例3の場合、アイテムの最終攻撃力は
「(300[base_set] + 50[base_add]) * (1[perc_set] + 0.5[perc_add]) 」=
「350 * 1.5」= 525

例4の場合、アイテムの最終攻撃力は
「(300[base_set] + –50[base_add]) * (1[perc_set] + -0.5[perc_add]) 」=
「250 * 0.5」= 125

最後に複数の値を設定する例を紹介します。
[例5]
<passive_effect name="EntityDamage" operation="base_set" value="300,400" />
[例6]
<passive_effect name="EntityDamage" operation="base_set" value="100,200,300,400,500,600" tier="1,2,3,4,5,6" />
[例6]
<passive_effect name="EntityDamage" operation="base_add" value="100,600" tier="1,6" />
例5の場合、アイテムの最終攻撃力は「300 ~ 400」となります。
(value=”min, max” という考え方で、最小から最大まででランダムに設定されます)


例6の場合、アイテムの最終攻撃力は品質によって変わります。
- 品質1: 100
- 品質2: 200
- 品質3: 300
- 品質4 :400
- 品質5 :500
- 品質6 :600
上記のようになります。
※ほとんどの武器やツール、防具には最初から品質によるボーナスや乱数による補正があります。
画像では一度設定をすべて消してから実行しているのできれいな数値になっていますが実際に
石斧に対してやると中途半端な値が出てきたりします






例7は、例6の省略した書き方です。
品質2,3,4,5 の値は最低値~最大値の割合で計算されます。
左クリック、右クリック
passive_effectの効果は、左クリック使用時と右クリック使用時とで効果量を別々で設定できます。
属性に「tags」というものを設定することで、それぞれ設定が可能です。
※ただし、明らかに左右で振り分けできないものも存在し、それは上書きできません
(例えば最大耐久度とか装弾数とか、その項目1つでアイテム全体の効果になるものはNG)
- tagsなし: 左クリック、右クリックどちらも
- primary: 左クリックを上書き
- secondary: 右クリックを上書き
[Xml]
<!-- 全体 -->
<passive_effect name="EntityDamage" operation="base_set" value="100" />
<!-- 左クリック -->
<passive_effect name="EntityDamage" operation="base_set" value="10" tags="primary"/>
<!-- 右クリック -->
<passive_effect name="EntityDamage" operation="base_set" value="20" tags="secondary"/>
上記の場合、左クリックでは攻撃力[10]右クリックでは攻撃力[20]となります。
※ただし、アイテムの説明欄では近接ダメージ[100]と表示されてしまいます。
これは、tags無しの値が優先して表示されている為です。
なので、基本的には左クリックの設定をする際はtags無しで設定し、右クリックのものだけ個別で
設定するようにしたほうが見た目上もキレイです。

[Xml]
<!-- 左クリック -->
<passive_effect name="EntityDamage" operation="base_set" value="10" />
<!-- 右クリック -->
<passive_effect name="EntityDamage" operation="base_set" value="20" tags="secondary"/>

EntityDamage(攻撃力)
アイテムの攻撃力を設定します。
Mod制作に興味持ちだしてまずやりがちなのがコレ。
シンプルかつ変更がすぐわかるので楽しい
[Xml]
<passive_effect name="EntityDamage" operation="base_set" value="100" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="EntityDamage" operation="base_set" value="100" />
</effect_group>
</append>
BlockDamage(ブロックへのダメージ量)
アイテムのブロックへのダメージ量を設定します。
Mod制作に興味持ちだしてまずやりがちなのがコレ。
シンプルかつ変更がすぐわかるので楽しい
[Xml]
<passive_effect name="BlockDamage" operation="base_set" value="100" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="BlockDamage" operation="base_set" value="100" />
</effect_group>
</append>
DegradationMax(最大耐久度)
アイテムの耐久度を設定します。
[Xml]
<passive_effect name="DegradationMax" operation="base_set" value="1000" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="DegradationMax" operation="base_set" value="1000" />
</effect_group>
</append>
DegradationPerUse(アイテム使用時の耐久消耗)
アイテムを使用した際に消費する耐久値を設定します。
1回攻撃するたびに減る数値です。
[Xml]
<passive_effect name="DegradationPerUse" operation="base_set" value="1" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="DegradationPerUse" operation="base_set" value="1" />
</effect_group>
</append>
AttacksPerMinute(近接アイテムの攻撃速度)
近接アイテムの攻撃速度を設定します。
設定する値は1分間に攻撃できる回数です。
[Xml]
<passive_effect name="AttacksPerMinute" operation="base_set" value="60" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="AttacksPerMinute" operation="base_set" value="60" />
</effect_group>
</append>
RoundsPerMinute(遠距離武器の攻撃速度)
近接アイテムの攻撃速度を設定します。
設定する値は1分間に攻撃できる回数です。
※近接と遠距離でなぜ別れているのかは不明
[Xml]
<passive_effect name="RoundsPerMinute" operation="base_set" value="60" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="RoundsPerMinute" operation="base_set" value="60" />
</effect_group>
</append>
StaminaLoss(消費スタミナ量)
アイテムでアクションを行った際の消費スタミナ量を設定します。
[Xml]
<passive_effect name="StaminaLoss" operation="base_set" value="10" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="StaminaLoss" operation="base_set" value="10" />
</effect_group>
</append>
MagazineSize(弾薬装弾数)
遠距離武器の装弾数を設定します。
[Xml]
<passive_effect name="MagazineSize" operation="base_set" value="30" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="MagazineSize" operation="base_set" value="30" />
</effect_group>
</append>
ReloadSpeedMultiplier(リロード速度)
遠距離武器のリロード速度を設定します。
設定される値は、武器のHoldtType毎に設定されたリロードモーションからの速度の倍率です。
(例えばデフォルトで3秒リロードに時間の掛かるモーションの場合、2を設定すると1.5秒でリロードが完了するようになります)
[Xml]
<passive_effect name="ReloadSpeedMultiplier" operation="base_set" value="2" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="ReloadSpeedMultiplier" operation="base_set" value="2" />
</effect_group>
</append>
BurstRoundCount(連続発射数)
遠距離武器の左クリック長押しで連射できる数を設定します。
マシンガン系に設定されている事が多い印象です。
(ただし、当然装弾数以上は発射できないので、残弾が0になったら止まる)
[Xml]
<passive_effect name="BurstRoundCount" operation="base_set" value="100" />
[Xpath]
<append xpath="items/item[@name='アイテム名']">
<effect_group>
<passive_effect name="BurstRoundCount" operation="base_set" value="100" />
</effect_group>
</append>
triggered_effect
(執筆中…)
余白
普段よく使うものをメモ程度に書き記しました。
随時色々作ってる歳によく使うなぁと思ったら追加していきます。
コメント