ここでやること

  • シナリオファイルに記述すべき全般的な事柄
  • 各陣営の設定
  • ストーリー(戦闘にはいる前の「お話」の部分)の作成
(キーワード 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]

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2012年03月04日 08:21