モジュール作成補助機能プラグイン by さかみち

わたくし"さかみち"が作成したのモジュール作成補助機能プラグインを紹介させていただきます。

今回紹介するのは、モジュールの作成の手間を軽減すべく、VASSALのプラグイン作成の研究を兼ねて作成したものです。

ユニットの登録や初期配置ヘクスへの配置が数も多く、それなりの手間をとります。
手間をとるということは、ミスの可能性もあるわけで、修正もそれなりに手間になります。

ですので作業しやすいExcelのような表計算ソフトを使って登録する駒の一覧表を作成しておいて、それをもとに一括してコマの作成ができないかと思い作成したプラグインです。
現時点はこのプラグインを利用して、ユニットなどのコマの画像の一括作成、コマのGame Piece PaletteやMapへの一括作成、Mapに作成した初期配置(At-Start Stack)の一括変更を行うことができるようになっています。

まだ全面的に安定した動作をしているわけではありませんが、通常使用していて問題を起こすことはなくなってきましたので、皆様にもご利用していただければと、内容と配布の紹介をさせていただこうと、このページを作成しております。

ご希望の方には、ウォーゲームSNS"MustAttack"のほうで"さかみち"あてにご連絡をいただければと思います。
なおプラグインをモジュールに組み込むためには、JAVAの知識が若干必要となりますので、配布するために、プラグイン組み込み済みの空のモジュールの形(サイズは60KB程)を用意してあります。
知識のある方は中から取り出していただいてかまいません。

どんなプラグインか


現在プラグインは2つに分かれています。
  • "Piece Creation Support"は、画像とコマの登録を自動的に行うものです。
  • "Stack Position Edit Support"は、コマの初期配置(At-Start Stack)の座標をまとめて編集するものです。

この画面は用意した組み込み済みのモジュールを最初に開いたときのもので、下の方にあるものが該当します。

ここからは、このプラグインの使用方法を、サンプルを作成しながらに説明していきます。
希望があればサンプルも送ります。

今回作成するサンプルについて


今回は、実際に自分がこのプラグインを利用して作成したDG版の「Napoleon's Last Battles」から一部を抜粋して説明のためのサンプルを作つくりました。
このゲームではコマは部隊のユニットと、リーダーのユニットが軍の指揮官と軍団の将校の2種類で、合計3種類登場します。
また部隊のユニットは減少戦力面を持っています。

コマの作成では画像も作成します。

最初はSTEP1として、"Game Piece Palette"内に部隊のユニットのみを作成します。
まずLayerのみを設定して完全戦力面と減少戦力面をもつコマを登録します。
ユニット画像は部隊についてはNATOのシンボルを利用するなど、ここで基本的な使い方を確認できます。

次はSTEP2として、PrototypeとMarkerを追加していきます。
ここまでで、あらかじめ用意した画像を使う場合などは、実際に使えるコマが作成できるようになるかと思います。

STEP3では、2種類の指揮官ユニットを作成していきます。
軍の指揮官のユニットには肖像画を貼り付けるなど、コマ画像作成機能についてより詳細な使い方の説明していきます。

最後にSTEP4として"Game Piece Palette"ではなく、"Map"上に初期配置を変更してコマを作成し、初期配置の位置を変更していく方法を説明します。

一覧表のデータの作成について

ここで紹介するプラグインでは、先ほど述べたとおり、一覧表としてデータを作成して、これを取り込んで使用します。

使用する一覧表のデータは、テキストファイルで、特定のソフトウェアは必要ありません。
テキストファイルの1行がそのまま、表の行になっていて、各行の各列のデータはTABで区切られたものを読み込むようになっています。
一般に","で区切られたCSV形式と呼ばれるテキストファイルが利用されることも多いですが、ユニットの名称などで","を使うこともあるかと思いましたので、比較的使われるTAB文字で区切る方式としてあります。

表の作成では私はExcelを使い慣れているため、Excelを利用していますが、表計算ソフトの多くであれば楽に作成できるかと思います。

またテキストファイルの文字コードはUTF-8を使用するようになっています。私個人はこれが一番便利なのですが、皆様のご要望があれば、この部分は容易に変更できますので、適宜変更したいと思っています。

STEP1 基本的な使い方


まずは、コマの画像を作成して、それを設定したコマを"Game Piece Palette"に配置していきます。

1. Game Piece Layoutを用意する。


コマ画像の作成では、VASSAL標準のコマ作成機能を利用していきますので、まずはこのレイアウト(Game Piece Layout)の作成から始めます。

VASSAL標準の機能を使ってコマの画像を作る場合、レイアウトを作るのはそれほど手間ではありませんが、このレイアウトに背景色や兵科記号の種類を指定したりして、個々のコマ画像を作るとなるとかなりの手間です。
そうするとスキャン画像を使いたくなってしまいます。

このプラグインではレイアウトから個々の画像を作る時に指定する値を、一覧表から取得して設定して、まとめて複数のコマ画像を作りこの手間を軽減します。

ここはVASSALのヘルプなどを利用してレイアウトを作りましょう。

制約や注意点として次のようなことがあります。

  • 特に制約はありませんが、配置したSymbolやLabelなどのNameの項目には後でわかりやすい名前をつけておくことと便利です。
  • 一覧表のファイル形式の都合上、改行を含めることができないということで、TextBoxを作成して、ここに改行を含むような文章を設定することができません。
    • 機能改善候補の一つと考えています。

今回はまず以下のような"unit"という名前のレイアウトを作成しました。


あわせてコマの背景色などを指定するために[Named Color]も用意しておきます。
サンプルのもとになっているゲームでは、国籍に応じた背景色を使用します。
またユニットが所属する上位組織の軍団を識別するために、軍団毎の色を使用します。元のコンポーネントでは帯が入っているのですが、今回は兵科記号の背景色でに使うことにします。


2. コマの配置先の用意


このプラグインでは"Game Piece Palette"にコマを配置することができます。
"Game Piece Palette"の中に直接配置してもいいのですが、あとで整理しやすいように、[Pulldown Menu]や[Scrollable List]を追加するのが普通だと思います。
配置する先は、それぞれの場所の名前(Nameプロパティ)で識別します。モジュールを新規作成したときに自動的に作られる"Game Piece Palette"には名前が設定されていませんので、名前を付けてください。

サンプルでは、もととなっているゲームでは、フランス軍とイギリスとその同盟軍、プロイセイン軍の3つの軍が登場しますので、ユニットを3つに分けて登録できるように次のようにGame Piece Paletteの中を設定しました。
あわせて"Game Piece Palette"自体には"Pieces"という名前をつけておきます。


3. コマの画像を作成しない場合について


コマの画像作成機能を利用しない場合には、その画像をあらかじめ用意しておく必要があります。
用意した画像をモジュールの中に含めておく必要があります。
STEP3で画像を追加する方法を説明していますので、そちらを参照してください。

4. Piece Creation Supportの設定


いよいよコマ画像とコマを作成するために、プラグインを使用します。使用するプラグインは[Piece Creation Support]になります。
Piece Creation Support自体と、その下位に項目を追加して、一覧表からどのようなコマを作るのかを設定していきます。

ここではまずPiece Creation Supportの設定の概要を説明した後、サンプルを使って説明しながら個別の解説を加えていきます。

5. Piece Creation Supportの概要


[Piece Creation Support]をダブルクリックして開く画面では、読み込む一覧表を保存したファイルと、動作全般を制御するための情報が保存されている項目の列番号を設定します。
またこの画面には「作成」ボタンがあり、これを押すことで最終的にコマ画像とコマの作成が行われます。

[Piece Creation Support]の下位には4つのContainerが用意されていて、4種類の設定を追加できるようになっています。

Image Part Container

コマ画像を作成しない場合は、その駒画像自体、あるいはコマ画像に貼り付ける画像を登録する[Image Part]を追加するために利用できます。
数が多い場合にはモジュール自体をいったん解凍したあと、再度圧縮をかけるという作業をされた方が早いかと思います。詳細はSTEP3で説明します。

Decorator Container

コマに設定する"Prototype"もしくは"Marker"の設定を追加していきます。詳細はSTEP2で説明します。

Layout Binding Container

用意した[Game Piece Layout]に、読み込んだ一覧表の各項目を結び付けていく、[Layout Buinding]を追加していきます。
[Layout Buinding]には名前を付けることができ、一覧表のいずれかの項目に[Layout Buinding]の名前を指定することで、その行のデータがどのレイアウトを使うのかを指定することになります。

Location Buinding Container

作成したコマの出力先を結び付けるための出力先を追加していきます。
出力先としてはコマを直接作成する場所を指定する[Fixed Location Buinding]と、[At-Start Stack]を作成する場所を指定する[Setup Stack Buinding]の2種類があり、それぞれで詳細な設定方法が異なります。
いずれの配置先の場合でも名前を付ける必要があります。一覧表のいずれかの項目にこの名前を含む必要があります。[Setup Stack Buinding]についてはSTEP4で使用します。

6. 一覧表ファイルの内容の概要


一覧表の各行がひとつのコマ、もしくはコマの面になります。列にはそのコマないしはコマ画像を作成するために必要となる情報を設定することになります。
どのような列を用意するのかは実際の設定内容を確認しながら見ていきます。
ここでは、行がどのように扱われるのかをここで説明していきます。

上述の通り各行がコマの1面となります。もし1面だけで構成させるコマの場合には、1行でひとつのコマとなり、画像を作成する場合には、その行のデータに基づいて画像が生成されます。
複数の面からなるコマを作成する場合には、複数の行でひとつのコマが作成されます。画像を生成する場合には、ひとつの行でひとつの画像が生成されます。
面の数が異なるコマが混在しても問題はありません。

これらの動作を行うために、一覧表を作成する際にルールが存在します。

  • 一覧表のいずれかの列に"コマ番号"を設定してください。実際のデータでは、同じコマの異なる面については同じ番号を設定することになります。
  • 複数の面で構成されるコマの各面は、一覧表の中で連続する行としてください。
  • 複数の面で構成される駒は一覧表の上から順番に、最初の状態、2番目の状態として作成されていきます。
  • 複数の面で構成される駒のデータのうち、コマにひとつしか存在しない情報(作成したコマの配置先など)は、一番上の行のデータが使用されます。

今回作成するサンプルでは、このようなデータを用意することにしました。

1 1_F ...
1 1_R ...
2 2_F ...
2 2_R ...

先頭の列がコマ番号、二つ目の列が画像の名称です。3列目以降も実際のデータはもうこし列が続き、画像の生成などで使うことになります。

1列目のコマ番号では、1行目と2行目が一つのユニットであるため、同じ番号を付けています。
2列目の画像名称自体にはあまり意味はありませんが、コマ番号1の完全戦力(Full)や、減少戦力(Reduced)の意味でつけています。
今回は画像も生成するため、同じ名前をつけてしまわない限り、問題ないことになります。

この例で2行目と3行目を入れ替えてしまうと、複数の面で構成される各面が連続していなければならないというルールに反してしまい、1行目と3行目、2行目と4行目が同じコマであるというように扱われなくなります。
また1列目と2列目を入れ替えてしまうと、初期状態が減少戦力面となってしまいます。

7. [Piece Creation Support]の設定


それではサンプルの場合の設定を見ながら、具体的な設定を確認していきます。
設定の各所で、一覧表の列番号を設定する箇所があります。
列番号を設定するということは、逆にいうと、その内容の項目を一覧表に加える必要があるということです。

最初はどのような項目を一覧表に含めるかを理解するために一通り見ていきます。
その後一覧表を作成したあとで、列番号を設定していった方が、作業手順としては効率的です。

[Piece Creation Support]のプロパティ設定画面は以下の通りです。


"データファイル"には作成した一覧表を指定します。
その下には5つ列番号を指定する項目がありますが、これについては後述します。
その下には「作成」というボタンがあり、これを押すと設定した内容に従ってコマの画像及びコマの作成が行われます。

それでは5つの列番号です。これは作成した一覧表の何列目を参照して自動作成の動作を行うかを決定します。
ここに値を設定するのは実際に一覧表を作成して取り込む時の方が良いと思いますので、この時点で設定する必要はありません。
しかし一覧表の中にどのような項目を含めなくてはならないかを確認するために、ここでそれぞれの値について説明しておきます。

レイアウト設定の列番号

コマ画像を作成しない場合には0を設定してください。この場合画像の作成はスキップされます。
コマ画像を作成する場合には、その行のデータのコマの画像を作る時に使用する[Layout Buinding]の名前を含む列を指定します。

コマ番号の列番号

上述のコマ番号が登録されている列の番号を設定します。

画像名称の列番号

データファイルには、その駒に割り当てる画像の名称を含む必要があります。
コマ画像を作成する場合には、その行の画像を保存するときの名称に利用され、駒を登録する際には参照する画像名称として利用されます。
複数のステップを持つデータの先頭や単一のステップしかないデータでは、コマの画像(Basic Pieceの画像)として使われ、それ以外の面ではLayerのレベルに割り当てる画像として利用されます。

両方を行う場合には、特に意識することなく、対応するコマとその画像が結び付けられます。

コマ名称の列番号

データファイルには、その駒に割り当てる名称を含む必要があります。
複数のステップを持つデータの先頭や単一のステップしかないデータでは、コマの名称(Basic Pieceの名称)として使われ、それ以外の面ではLayerのレベルに割り当てる名称として利用されます。

登録先設定の列番号

[Location Buinding Container]内の配置先の名前を含む列番号を指定します。

サンプルでは、先ほどの一覧表の説明で利用したように、コマ番号が1列目、画像が2列目です。
コマ名称、レイアウト、登録先を3から5列目にしておきます。

8. [Layout Buinding]の設定


次に画像を作成するための"Layout Buinding"の追加と設定を行っていきます。
Layout Buindng Containerで"Add Layout Buinding"を行うことで、"Layout Buinding"が追加されます。

最初に用意した"Game Piece Layout"の"Unit"にの各項目に一覧ファイルの値を結び付けていきます。

"Layout Buinding"を追加すると表示されるのは次のような画面です。


"名称"にはこの設定を識別するための名称を指定します。
"Piece Image Layoutの名称"では、使用するPiece Image Layoutの名称を指定します。

今回は名称を"unit"、Piece Image Layoutの名称には"Unit"を設定します。
一覧表の方では、先ほど決めたとおりレイアウトの列番号である3列目に"unit"と指定した場合、この"Layout Buinding"が利用されることになります。

次は"項目の結びつけ"を設定します。
ここではPiece Image Layoutに配置したSymbolやLabelに色や文字などの値に、一覧表のどの列を使用するのかを指定することです。
一覧表を参照せずに、色や文字を決め打ちで指定することも可能です。

最初にLayout Buindingを作成した段階では、ここには何も設定されていません。
最初は「差分の取得」ボタンを押します。
設定したPiece Image Layoutを参照して結びつけを、設定すべき項目が右側に列挙されます。


もし設定したPiece Image Layoutの内容を変更したり、Piece Image Layout自体を変えた場合には、このボタンを押してください。
その時点での結びつけで有効なものはそのままで、新しく設定しなくてはならない項目が追加、不要になったものが削除されます。

さて列挙されている項目は"."で始まるか、そのPiece Image Layoutに配置したSymbolなどの項目の名前で始まりその直後に"."が続いているはずです。
"."の後には文字が続き、":"をはさんでまた別の文字がつづいています。
":"をはさんで左側が結びつけを行う項目を表し、右側が結び付ける値を表します。

いずれかの項目をダブルクリックすると、その文字列がボタンの上の入力欄に表示されます。
":"の右側を修正して、結び付けを設定します。入力が終わったらEnterキーを押すか、「設定」ボタンを押すことで、内容が更新されます。

":"の右側にはどのような値を指定するのかは、その項目によって変わってきます。
しかしここに登場する項目で指定するのは、色、Symbolの種類や規模、及び表示する文字、表示する画像の名前のいずれかになります。

色としては、[Named Color]で作成した色か、あらかじめ登録されている色の名前の名前になります。
画像の名前の場合には、登録した画像のファイル名になります。
文字の場合には、そこに表示したい文字そのものを設定します。
Symbolの種類や規模については、あらかじめ登録されている種類や規模の名称になります。

あらかじめ設定されている色や、Symbolの種類や規模については、[Game Piece Image]のプロパティで確認できます。

":"の右側の値として、ここで説明した内容を直接設定すると、一覧表の値にかかわらず、すべての画像に同じ値が指定されます。
一覧表に含めた値を使用したい場合には"{}"ではさんで、列番号を指定します。
4列目にコマの背景色を指定した場合には、"{4}"を指定することになります。

この部分については、申し訳ありませんが、いろいろと試してみて確認してください。

  • この画面をわかりやすくすることは、機能強化の対象と考えています。

今回、ユニットの画像では、以下のように指定しました。


一覧表を参照するのは以下の通りです。
  • ユニットの背景色を6列目
  • 兵科記号の背景色を7列目
  • 兵科記号のひとつ目を8列目
  • 兵科記号のふたつ目を9列目 (兵科記号は二つまで重ねられるようになっています。Horse Artilleryは重ねて表現されます)
  • 兵科記号の規模を10列目
  • ユニット名に11列目
  • ユニットの上位組織名に12列目
  • ユニットの戦闘力に13列目
  • ユニットの移動力に14列目となります。


9. [Fixed Location Buindeing]の設定


コマの配置先にはとりあえず、Fixed Locationを利用して、[Game Piece Palette]内にコマを登録することにします。
フランス、イギリスおよびその同盟国、プロイセン毎に登録する場所を用意したので、3つFixed Locationを作成するようにします。

Fixed Location Buindeingは[Location Buinding Container]に追加します。

追加すると名称と配置先名称入力する箇所だけが存在します。

"名称"はLayout Buindingの場合と同じように、一覧表の中で指定するときに利用する名称です。

"配置先名称"は、実際の配置先となる名称です。"Single Piece"を追加できる場所ならどこでもかまいません。
名称の指定方法はモジュール本体から順番に名前をたどって指定してきます。
名前をたどるというのは、Pieceという名前の[Game Piece Palette]の下のunitという[Scrollable List]の中に配置する場合であれば、Pieces/unitというように、"/"で区切りながら、最終的に配置する場所まで指定していきます。

今回用意した3つは次の通りです。
  • 名称は"france"、配置先"Pieces/Root/Unit/France"。ここにはフランス軍のユニットを登録します。
  • 名称は"angloallies"、配置先"Pieces/Root/Unit/AngloAllies"。ここにはイギリスとその同盟軍のユニットを登録します。
  • 名称は"prussia"、配置先"Pieces/Root/Unit/Prussia"。ここにはプロイセン軍のユニットを登録します。

10. 一覧表を完成させて、実行する


STEP1で必要となる設定が終わりましたので、一覧表を完成させましょう。
ここまでで一覧表に含めるべき項目が決まりましたので、作成していきます。

3列目から14列目までに必要なで使うデータを埋めていきます。

1 1_F a/I unit france france france_i Infantry None Brigade a I 5 4
1 1_R a/I(-) unit france france france_i Infantry None Brigade a I 3 4
2 2_F b/I unit france france france_i Cavalry/Recon None Division b I 4 6
2 2_R b/I(-) unit france france france_i Cavalry/Recon None Division b I 2 6
3 3_F c/1 unit prussia prussia prussia_i Artillery None Regiment c 1 3 4
4 4_F d/I unit angloallies britain angloallies_1 Artillery Cavalry/Recon Regiment d I 2 6

これを"units.txt"という名前のTABで区切られたテキストファイルに保存します。

ちなみにユニットとシンボルの背景色はそれぞれNamed Colorで用意しています。

[Piece Creation Support]のプロパティ画面を開き、"データファイル"の選択ボタンを押して、このファイルを指定します。
なおデータファイルは取り込まれていますので、一覧表を変更した場合だけ、ファイルの選択をすればよいことになります。

ここで「実行」ボタンを押します。

  • 現在の機能では、駒の数の増減や、登録する場所の変更などがあって、モジュールの内容を表すツリービューの表示を変更しなくてはならないケースについても、ツリービューの内容を変更することができていません。
このため実行直後に一旦ファイルを保存し、再度開くという手順をとって下さい。それまで作成された結果を確認できない可能性があります。
なお駒の数が増減することがなければ、ツリービューの内容に変更がないため、特に問題にはなりません。
またこのツリービューの表示を変更する箇所については、修正にVASSAL本体に手を入れる必要があるかもしれず、現在調査中です。

というわけでモジュールを保存後、1回VASSALを終了して、再度開きます。

コマの画像及びコマが、[Game Piece Layout]及び[Game Piece Pallete]の中に生成されます。


小さくて醜いですね。こういった画像をあげるくらいなら、組み込み済みのモジュールを置いておいた方が適切かもしれませんね。

以下しばしお待ちを

STEP2

STEP3

STEP4


ご意見ご要望など。
名前:
コメント:

タグ:

+ タグ編集
  • タグ:

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

最終更新:2009年06月07日 11:52
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。