アットウィキロゴ


「本当に」動くだけなら前章でよいのですが、_main.cfg ファイルは、他にもキャンペーンの基本的な情報を含めなければなりません。
おそらくキャンペーンを作ったらゆくゆくは他の人にもプレイしてもらいたくなると思います。そのときのために正しい _main.cfg の書き方を理解しておきましょう。

では、順を追って解説してゆきます。

テキストドメイン

まずは、テキストドメイン(Text Domain)です。
よくわかりませんが、テキストドメインはプログラムなどを翻訳する際にあらかじめ指定する必要があるもののようです。
Wesnoth も含めコンピュータの世界では英語が標準ですが、日本語環境のパソコンでは多くのプログラムが日本語で使えるのは、Text Domain のおかげのようです。
#textdomain wesnoth-small_campaign
   
[textdomain]
        name="wesnoth-small_sampaign"
        path="data/add-ons/small_sampaign/translations"
[/textdomain]
1行目で、このキャンペーンが所属しているテキストドメインを表示します。#textdomain のあとには、4行目の name で指定したのと同じ文字を入れておきます。
3行目、6行目 [textdomain] タグで、「ここはテキストドメインを指定していますよ」と宣言します。
4行目 name でこのキャンペーンのテキストドメインを指定します。このとき先頭に wesnoth- をつけるのがお約束です。
その後ろには素直にキャンペーン名をつけましょう。
5行目には、翻訳ファイルの置き場を指定します。通常は、_main.cfg や scenarios フォルダと同じ階層に translations フォルダを配置します。別の場所を指定することもできますが、こんなところで個性を発揮してもしょうがないので、郷に入っては郷に従いましょう。

[campaign]

[campaign] タグを書き、いろいろな情報を記述します。
[campaign]
    id=small campaign
    name= _ "small campaign"
    abbrev= _ "SmlC"
    define=CAMPAIGN_SMALL_CAMPAIGN
  
    icon=a_wesnoth_icon.png
    image= small_campaign_logo.png
    description= _ "This is a very small campaign."
   
    difficulties=EASY,NORMAL,HARD
    difficulty_descriptions={MENU_IMG_TXT2 *&units/human-loyalists/peasant.png~TC(1,magenta) _"Civilian" _"(trivial)"} +
";" + {MENU_IMG_TXT2 units/human-loyalists/spearman.png~TC(1,magenta) _"Soldier" _"(simple)"} +
";" + {MENU_IMG_TXT2 units/human-loyalists/pikeman.png~TC(1,magenta) _"Veteran" _"(easy)"}
  
    first_scenario=small
[/campaign]
なにやら急に書くことがたくさんになってしまいましたが、少しずつ見て行きましょう。
#textdomain wesnoth-small_campaign
ここにもなぜか Text Domain が出てきます。とにかく、前章の name で指定したのと同じにしておきましょう。

id=small campaign
読んでそのまま、キャンペーンの ID です。パソコンがキャンペーンを認識するためのものです。

name= _ "small campaign"
こちらは、画面に表示されるキャンペーン名です。id がパソコンのためなのに対して、こちらはプレイヤー用です。
名前の前に _ がついていることから「翻訳可能」であることがわかります。

abbrev= _ "SmlC"
キャンペーンの略称です。ゲームを再開するときに、シナリオ名の前についてきます。通常3〜4文字程度で、他のキャンペーンとダブらないようにしましょう。

define=CAMPAIGN_SMALL_CAMPAIGN
キャンペーンを定義しているようです。
例のように CAMPAIGN_ のあとにキャンペーン名をすべて大文字にして、単語間は _ でつなげて書いておきましょう
なんのためにあるのかよくわかりませんが、これがないと動かないらしいです。

icon=a_wesnoth_icon.png
アドオンサーバからダウンロードするときや、ゲームで新規キャンペーンをはじめるときにキャンペーン名の左側に表示されるアイコンです。必ずはじめからゲームに入っている画像を指定します。自作のアイコンを使いたいと思っても現状では対応してません。
必須ではありません。

image= small_campaign_logo.png
新規でキャンペーンを初めるときに、キャンペーン名をクリックすると、解説と一緒に表示される画像です。
パスを指定することで、既存の画像でも、自作の画像でも使用できます。
必須ではないので、なしでも構いません。

description= _ "This is a very small campaign."
新規でキャンペーンを初めるときに、キャンペーン名をクリックすると、表示される解説です。
どんなキャンペーンなのかを簡単に書いておきましょう。(翻訳可能)

difficulties=EASY,NORMAL,HARD
difficulty_descriptions={MENU_IMG_TXT2 *&units/human-loyalists/peasant.png~TC(1,magenta) _"Peasant" _"(easy)"} +
";" + {MENU_IMG_TXT2 units/human-loyalists/spearman.png~TC(1,magenta) _"psearman" _"(noamal)"} +
";" + {MENU_IMG_TXT2 units/human-loyalists/pikeman.png~TC(1,magenta) _"pikeman" _"(hard)"}
difficulties で、難易度の種類を表示します。通常は EASY,NORMAL,HARD の3種類です。難易度が2種類でもよいです。難易度そのものがない場合は、記述不要です。
なお、すべて大文字なのは、コンピュータに認識させる文字であることをしてしていると思われます。小文字で書いたりすると不具合があるかもしれません。

difficulty_descriptions で難易度に応じたユニットの画像や表示を指定します。3行あるのはそれぞれ EASY,NORMAL,HARD に対応しています。
1行目の units/human-loyalists/peasant.png を任意のユニットのパスに変更します(残りの2行も同様)。
1行目の _"Peasant" を適当な役職にします。面倒ならユニット名をそのまま使いましょう(残りの2行も同様)。
1行目の _"easy" はこのままでよいです。"novice" など他の呼び名にしてもよいです。

{MENU_IMG_TXT2 、 *& 、 ~TC(1,magenta) 、 ";" + の辺りはそのままにしておきましょう。
改行も例の通りにしておきましょう。
つまりいじるのは、ユニット画像へのパスと "" で囲まれた中だけです。

first_scenario=small
キャンペーンの最初のシナリオの ID を指定します。シナリオファイル名ではないので注意してください。


(なお、本家wiki では、[campaign] タグ内に #textdomain がありますが、一般的ではありません。)

キャンペーンで読み込むフォルダの指定

アドオンキャンペーンでは、シナリオやマップなどがフォルダごとにまとめられてますので、そのフォルダへのパスを指定します。
#ifdef CAMPAIGN_SMALL_CAMPAIGN
    {~add-ons/small_campaign/scenarios} 
    {~add-ons/small_campaign/maps}  #(実際には、各シナリオファイル内でマップへのパスを指定しているので、不要だと思われる。)
#endif
#ifdef
は作者が独自に何かを定義するときに使います。必ず最後の #endif とセットになります。
#ifdef
の後ろには、[campaign] タグ内の define の行と同じ言葉を書いておきましょう。

{ } の中には、キャンペーンで読み込むフォルダのパスを書きます。
とりあえず、今回は、シナリオとマップのフォルダへのパスだけを記述しておきます。独自のユニットやマクロがあるときには、さらに追加していきます(なお、ユニットの追加はちょっと特殊なので気をつけてください。)。

出来上がった _main.cfg

#textdomain wesnoth-small_campaign

[textdomain]
        name="wesnoth-small_sampaign"
        path="data/add-ons/small_sampaign/translations"
[/textdomain]

[campaign]
    id=small campaign
    name= _ "small campaign"
    abbrev= _ "SmlC"
    define=CAMPAIGN_SMALL_CAMPAIGN
  
    icon=a_wesnoth_icon.png
    image= small_campaign_logo.png
    description= _ "This is a very small campaign."
   
    difficulties=EASY,NORMAL,HARD
    difficulty_descriptions={MENU_IMG_TXT2 *&units/human-loyalists/peasant.png~TC(1,magenta) _"Civilian" _"(trivial)"} +
";" + {MENU_IMG_TXT2 units/human-loyalists/spearman.png~TC(1,magenta) _"Soldier" _"(simple)"} +
";" + {MENU_IMG_TXT2 units/human-loyalists/pikeman.png~TC(1,magenta) _"Veteran" _"(easy)"}
  
    first_scenario=small
[/campaign]

#ifdef CAMPAIGN_SMALL_CAMPAIGN
    {~add-ons/small_campaign/scenarios} 
    {~add-ons/small_campaign/maps} 
#endif


タグ:

+ タグ編集
  • タグ:
最終更新:2016年05月05日 10:41