「プラグイン開発資料/プラグイン作成のマナー」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
#right(){最終更新日時:&lastmod()}
#hr(height=4,color=#1E90FF)
*プラグイン作成のマナー
&small(){&topicpath()}
#hr(height=4,color=#1E90FF)
FreeTrainEX Avのプラグイン作成には、ルールのように厳格ではないけれども、守ることを推奨されているマナーが存在します。
#contents()
#hr(height=2,color=#1E90FF)
**BMPファイルは256色形式で
FreeTrainのプラグインで使用する画像ファイルはBMP形式と決められています。
BMP形式は圧縮のない、高速簡便に利用できる形式なのですが、フルカラーモードではファイルサイズが大きくなりがちです。
FreeTrainのプラグインではこまごまとした100ピクセル×40ピクセルぐらいの絵を何枚か使うようなことも多いですが、こういった絵ですら、フルカラーモードと256色モードの間では3倍のサイズ差が生まれます。その3倍差が多数のプラグインを組み合わされる中で積もり積もって、Windowsのメモリ使用量に影響し、FreeTrainの動作速度を左右することもありえます。
フルカラーが必要な色数を活用したプラグインを作成した場合は、それは堂々とフルカラーBMP形式で公開していただいてかまいません。
しかし、256色以下しか使っていないプラグインを作成した場合には、ぜひとも256色モードBMP形式にて公開していただけるよう、お願いいたします。
プラグイン作成当初から256色モードに切り替え、パレット機能を使って絵を描いてもらうのでもいいですし、作業中はフルカラーモードで進行し、完成後に一括して256色モードに変換するのもよいでしょう。作業のしやすいほうを選んでくださってかまいません。
ここで注意が必要なのは、Windows付属ペイントで形式変換を行ってはいけません。Windows付属ペイントは形式変換手法が1手法しかなく、色のRGBコードが近似のものに摺り返られてしまいます。これでは色のRGBコードが特別な意味を持つことのあるFreeTrainでは不具合が生じます。
GIMPやPhotoshopなど、色を正確に再現しつつ256色パレットを作成できるツールでの256色モード変換を推奨します。
GIMPにdbpというバッチプラグインを追加すると、複数の画像ファイルに一括して256色モード変換をさせることも可能です。
#hr(height=2,color=#1E90FF)
**コントリビューションIDを読める文字列で
注:この項目はFreeTrainユーザ間で同意が形成されたものではありません。
筆者の独断による推奨なことにご注意ください。
コントリビューションIDは、FreeTrainEX Avのプラグインひとつひとつが、それぞれの識別のために与えられたIDで、世界で一つしかない=ユニークなIDである必要があります。
plugin.xml内の
<contribution type="picture" id="&color(#0000aa,#dddddd){{0FD0AE8B-75FE-4847-9828-31747A7F4EBB}}">
や
<contribution type="trainCar" id="&color(#0000aa,#dddddd){{09D6B15A-6DAD-47DF-B8E1-4F413CC19942}}">
<contribution type="train" id="&color(#0000aa,#dddddd){{riorio-train-osakakosokumonorail-1000-031-C37E1A011BF0}}">
といった文字列の、id=に続く""内が、このコントリビューションIDの文字列ということになります。
このコントリビューションID、長さに決まりはなく、理論上は世界に一つしかない=ユニークであることが保証されさえすればどのような文字列でもかまいません。
そこでこれまでのFreeTrainプラグイン作成においては、FreeTrainEX Av本体に同梱されて配布されているユニークID作成ツール「GUIDGen.exe」で作成させたGUIDをそのままコントリビューションIDに使うということが広く行われてきました。
#image(GUIDGen.PNG,center)
ここで作成された
&color(#0000aa,#dddddd){{DE06F66D-441B-4E7B-9CB6-CBDB5F46F06F}}
が、そのままコントリビューションIDとしてplugin.xml内にペーストされてきたわけです。
しかしこのGUIDによるコントリビューションID、世界に一つしかないことは保証され、またPCに自動生成させるため難しいことをまったく考える必要がないというメリットの反面、人の目で読んだときなんら意味を持たない単なる文字列になってしまうというデメリットがありました。
コントリビューションIDを人が見たとき、どの種類のプラグインに与えられたIDなのか、画像なのか、働きは、そういったIDの持つ意味がさっぱり分からないものになってしまったのです。
そこでこのコーナーでは、コントリビューションIDを決めるときGUIDのみを使うのではなく、人の目で読んでそのIDが何のどんなコントリビューションにつけられたIDなのか理解できる文字列を含んだIDをつけよう、という推奨をします。
具体的には、
&color(#0000aa,#dddddd){{作者個人の識別子-プラグインの種類-形式とか名称とか-GUIDの下2桁}}
など、誰が作った・どんな働きをする・どんな種類のコントリビューションかが分かり、ユニークであることも盛り込んだ、IDを使いましょうとなります。
実際の例:
#image(コントリビューションID例1.PNG,center)
①:作者=りおりお
②:プラグインの種類=列車の編成
③:大阪高速鉄道のモノレール
④:1000形
⑤:31編成
⑥:GUIDの下1部分利用
と、人の目で見て意味のあるコントリビューションIDとなっています。
特段この例に縛られる必要はありませんが、ユニークであることを損なわない範囲で、作者や形式が見て分かるコントリビューションIDをつけておくと、後からこのプラグインを改造させてもらおうというプレイヤーにも親切ですし、なによりもまずプラグイン作者自身がデバッグしやすくなります。
#hr(height=2,color=#1E90FF)
#comment()