ここでやること
- シナリオファイルに記述すべき全般的な事柄
- 各陣営の設定
- ストーリー(戦闘にはいる前の「お話」の部分)の作成
(キーワード
scenarioタグ,id,next_scenario,name,map_data,turns,{DEFAULT_SCHEDULE},music,
sideタグ,controller,team_name,user_team_name,type,canrecruit,gold,income,
storyタグ)
シナリオファイルに記述すべき事項
いよいよシナリオを作るわけですが、書く順番を Battle for Wesnoth 本家の
BuildingScenariosSimpleなどと多少変えてある部分があります。プレイの流れからもその方がわかりやすいと思われるからです。実際、「公式キャンペーン」だって "BuildingScenariosSimple" の順番と違いますしね。
ただし、コンピュータプログラムは、基本的に上から順番に解釈していきますので、自分にとってわかりやすいように書いても、コンピュータには解釈できず期待通りに動かないことがあります。
全般的な事柄
:[scenario]~[/scenario]
|シナリオに関することはすべてこのタグの内側に書きます。
:id
|コンピュータに認識させるためのこのシナリオの名前です。
:next_scenario
|このシナリオのクリアに行く次のシナリオです。
なお、次のシナリオがない場合は "next_scenario=null" と書きます。
:name
|プレイヤーに表示するためのシナリオのタイトルです。
:map_data
|今回の戦場が収録されたマップへの経路情報です。
:turns
|このシナリオの総ターン数です。通常6ターンで1日です。
:時間の経過
|{DEFAULT_SCHEDULE} とやっておくと「夜明けー午前ー午後ー黄昏ー夜ー深夜」とという通常の1日の時間の流れになります。
:music
|BGM を指定する。
:[side]〜[/side]
|自陣営及び敵陣営の概要について記述します。書くべき内容が多いです。
なお副官などの特別なユニットについて、ここにも書けるし、 [event]〜[/event] の中にも書けるみたいです。
:[story]〜[/story]
|大抵の場合、マップが表示され戦いが始まるまでの前段の記述です。エピローグのようなもの。
:[event]〜[/event]
|ここに書く事柄は非常に多いです。
- ゲーム前に表示される「勝敗条件」
- ゲームの開始
- 勝利判定及び敗北判定
- 副官などの特別なユニット
- 登場人物の会話
- 特別な条件下で発生する出来事
などなど
まあ、作りながら理解していきましょう。
では、いきなり書き始めます
まずは基本情報を書きます
シナリオファイルは、全体が [scenario]~[/scenario] タグに囲まれていますので、まずこれを書きましょう。
[scenario]
[/scenario]
次に、 id から music を一気に書いてしまいます。
[scenario]
id="1_Invasion_of_Orcs"
#_main.cfg の "first_scenario" に書いたのと同じものを書きます。
next_scenario=null
#今回は、1話しかないので、これで終わりという意味で null と書きます。
name= _ "Invasion of Orcs"
#今後国際展開を一切考えていないなら、日本語で "オークの侵略" としても大丈夫かも。
map_data="{~add-ons/Save_the_Woods/maps/1_Invasion_of_Orcs.map}"
#"{ と }" の間にマップデータへのパスを書きます。
turns=12
#今回は、難易度に関係なく12ターンとします。
{DEFAULT_SCHEDULE}
#こう書く事によって、朝-午前-午後-黄昏-夜-深夜の順になります。
{SCENARIO_MUSIC "battle.ogg"}
#今回は、ゲーム本体の中の "battle.ogg" というBGMを指定しました。
[/scenario]
なお、音楽データは、ゲーム本体の中の data/core/music フォルダの中にあります。Windows ならC:\Program Files\Battle for Wesnoth <version>\data\core\music 以下を探せば見つかると思います(すみません。Windows にはインストールしてないので、ここら辺不案内です。)
それから、Battle for Wesnoth では、音声ファイルは、Ogg というファイル形式を使用することになっています。もし、オリジナルの音声データを使用したい場合は気をつけましょう。
[side]〜[/side] の記述
[side]〜[/side] は、シナリオに登場する陣営の数だけ作成します。
野生動物のようなリーダーのいないものにも作成します。
[side]〜[/side] 内に記述する内容は次のとおりです。
:side
|マップ上でここで指定した数字のタイルにリーダーが配置されます。
:controller
|人(human)が操作するかコンピュータ(ai)が操作するかを指定します。
:team_name
|同盟軍がある場合はここを同じ名前にします。なければ適当に。
:user_team_name
|チームの名前です。勝敗率など統計情報を見る際などに表示されるものです。
:type
|リーダーがどの種族のどのタイプかを指定します。どのようなタイプがあるかは、
http://units.wesnoth.org/1.8/C/mainline.html を見てください。
:id
|リーダーの名前です(コンピュータ用)。
:name
|リーダーの名前です(プレイヤー用)。
:canrecruit
|そのまま読めば「雇用可能」ですが、必ず "yes" にしておきます。
:recruit
|雇用できるユニットのタイプをすべて列記します。
:gold または {GOLD ** ** **}
|初期の所持金を書きます。「易しい 普通 難しい」で変える場合は、後者の書き方にします。
:income または {INCOME ** ** **}
|ゲームデフォルトの基本収入(村を全く占領していなくても入ってくるお金)は、1ターンに 2Gold ですが、ここ指定した金額が 2Gold に上乗せされます。「易しい 普通 難しい」で変える場合は、後者の書き方にします。
作例
既に決まっている設定に基づいて、味方と敵の陣営を作ってみました。便宜上 [scenario]〜[/scenario] を省略します(以下同様)。
[side]
side=1
controller=human
team_name=elves
user_team_name= _ "Elves"
type=Elvish Captain
id=Kerolyn
name= _ "Kerolyn"
canrecruit=yes
recruit=Elvish Fighter,Elvish Archer,Elvish Scout,Elvish Shaman
gold=100
[/side]
[side]
side=2
controller=ai
team_name=orcs
user_team_name= _ "Orcs"
type=Orcish Ruler
id=Gustor-Teng
name= _ "Gustor-Teng"
canrecruit=yes
recruit=Orcish Archer,Orcish Grunt,Wolf Rider
{GOLD 80 100 120}
{INCOME -2 0 2}
[/side]
おっと、大事な副官を入れるのを忘れてました。味方陣営の設定の中に追加しましょう。
[side]
side=1
controller=human
team_name=elves
user_team_name= _ "Elves"
type=Elvish Captain
id=Kerolyn
canrecruit=yes
recruit=Elvish Fighter,Elvishu Archer,Elvish Scout,Elvish Shaman
gold=100
income=2
[unit]
id=Lulu
name= _ "Lulu"
type=Elvish Shaman
side=1
x=7
y=17
{IS_HERO}
[modifications]
{TRAIT_LOYAL}
{TRAIT_INTELLIGENT}
[/modifications]
[/unit]
[/side]
x,y は想像できる通り、最初にいるタイルの位置です。特に指定しなければ、自動的にリーダーの隣りに配置されます。。
{IS_HERO} とするとユニットの隣に表示されているエネルギーバーの上にリーダーと同じような宝球が表示され、雑魚キャラと見分けやすくなります。ほかにもいいことがあるかもしれませんが知りません。
[modifications]〜[/modifications] で属性を指定することができます。今回はありがちですが、「忠義」と「知的」を指定しました。
story
続けて、[story]〜[/story] の中を書きます。
story は [part]〜[/part] タグによって、1画面に表示する文章の量を指定できます。文章が長くなる場合は、適当に分割しましょう。
[story]
[part]
story= _ ""
[/part]
[part]
story= _ ""
[/part]
[part]
story= _ ""
[/part]
[/story]
では、実際に文章を入れていきましょう。
国際展開を目指すなら英語にすべきですが、皆さんも私同様英語アレルギーがあると思いますので、安直に日本語で書いちゃいましょう。
[story]
[part]
story= _ "数十年前、エルフの土地に北方のオークが侵入してきたのち、エルフたちは辺境の地を警備するための砦を作った。"
[/part]
[part]
story= _ "ここ Halsyon もそのような砦のひとつだった。"
[/part]
[part]
story= _ "しかし、余りにも辺境すぎたので、一度もオークに襲撃されたことがなく、落ちこぼれ兵士の吹き溜まりと化していた。"
[/part]
[/story]
最終更新:2012年03月04日 08:21