[unit_type]
オリジナルのユニットを作成するとき、通常は1ユニット1ファイルでユニットの設計ファイルを作成します。
ユニットファイルはファイル名を「ユニットID.cfg」と付けて当該アドオンフォルダ直下の「units」フォルダに収めます。
場合によってはさらにその下にサブフォルダを作成して整理することもあります。
ここでは「Peasant」のユニットファイルを例に基本的なユニットファイルの書式を紹介します。数行づつ細切れに解説していくので、予めWesnothのコアにある「Peasant」のユニットファイルを開いて記事の解説を読むと分かり易いかもしれません。
では、ユニットファイルを項目ごとに説明していきます。
●一行目は翻訳時に使用する翻訳ファイルの名称です。
#textdomain wesnoth-units
通常は「wesnoth-units」の部分を_main.cfgで規定した独自の[textdomain]名称に変更します。
●2行目[unit_type]はユニットを規定するためのトップレベルタグです。個別のユニット情報は全てこのタグの内側に書き込まれます。
[unit_type]
● id : ユニットタイプを判別するためのIDです。他のユニットとIDが被らないようにユニークな名前に設定します。
id = Peasant
● name : 画面に表示するユニットタイプ名です。翻訳可能テキスト
name = _ "Peasant"
● race : ユニットが属する種族を指定します。種族は別ファイルでオリジナルの種族を作成することもできます。
race = human
● gender : このユニットが持つ性別の値を設定します。「male」、「female」、または「male,female」
gender = male
● image/profile : imageはマップ上に表示されるユニットアイコンのパス、profileは会話イベントなどで使用されるプロフィール画像のパスです。パスの起点は「images」フォルダからで、それ以降のパスを記述します。
image = "units/human-peasants/peasant.png" profile = "portraits/humans/peasant.png"
● hitpoints : HP最大値です。
hitpoints = 18
● movement_type : movement_typeは地形の移動コスト、防御効果、攻撃タイプに対する抵抗値を規定した設定です。別ファイルでオリジナルのmovement_typeを作成することができます。
movement_type = smallfoot
● movement : 最大移動ポイントです。
movement = 5
● experience : レベルアップに必要な経験値です。
experience = 23
● level : ユニットのレベルです。
level = 0
● alignment : ユニットの属性です。lawful、neutral、chaotic、liminalのいずれか。
alignment = lawful
● advances_to : レベルアップ時に進化するユニットタイプの「 id 」リストです。「 , 」で区切ります。
advances_to = Spearman,Bowman
● cost : 雇用コストです。
cost = 8
● usage : AIがユニットを雇用するときの選択基準になる値です。ユニットの主目的を決定します。「scout」偵察向きユニット、「fighter」近接戦闘向きユニット、「archer」遠隔攻撃ユニット、「mixed fighter」遠近両用ユニット、「healer」回復役。
usage = fighter
● description : ユニットの説明文。
description = _ "Peasants are the ....."
● die_sound : ユニット死亡時に再生されるサウンドのリストマクロ。単一のサウンドファイルでも大丈夫です。
die_sound = {SOUND_LIST:HUMAN_DIE}
● DEFENSE_ANIM : 防御時に再生されるアニメーションのマクロ。
{DEFENSE_ANIM "units/human-peasants/peasant-defend.png" "units/human-peasants/peasant.png" {SOUND_LIST:HUMAN_OLD_HIT} }
● [attack] : 攻撃手段の設定です。
[attack] name=pitchfork description=_"pitchfork" type=pierce range=melee damage=5 number=2 icon=attacks/pitchfork.png [/attack] [attack] name=pitchfork description=_"pitchfork" type=pierce range=ranged damage=4 number=1 icon=attacks/pitchfork.png [/attack]
● [idle_anim] : 待機時に時々再生されるアニメーション。
[idle_anim] {STANDARD_IDLE_FILTER} start_time=0 [frame] image="units/human-peasants/peasant-idle-[1~7,4,2,1].png:[100*4,200*3,100*3]" [/frame] [/idle_anim]
● [attack_anim] : 攻撃時に再生されるアニメーション。
[attack_anim] [filter_attack] name=pitchfork range=ranged [/filter_attack] missile_start_time=-150 [missile_frame] duration=150 image="projectiles/pitchfork-n.png" image_diagonal="projectiles/pitchfork-ne.png" [/missile_frame] start_time=-150 [frame] image="units/human-peasants/peasant-attack2.png:100" sound={SOUND_LIST:THROW} [/frame] {SOUND:HIT spear.ogg -50} [frame] image="units/human-peasants/peasant-ranged.png:150" [/frame] [/attack_anim] [attack_anim] [filter_attack] name=pitchfork range=melee [/filter_attack] start_time=-250 [frame] image="units/human-peasants/peasant.png:50" [/frame] {SOUND:HIT_AND_MISS spear.ogg spear-miss.ogg -200} [frame] image="units/human-peasants/peasant-[attack,attack2].png:[250,100]" [/frame] [frame] image="units/human-peasants/peasant.png:50" [/frame] [/attack_anim]
● [/unit_type] : [unit_type]のクローズタグです。一番最後の行になります。
[/unit_type]
「Peasant」は比較的単純な設定のユニットなので、オリジナルユニットの雛形としても意外と便利かもしれません。
他のユニットのファイルを見ると、もっと複雑な設定もありますので参考にするといいでしょう。