アドオン開発

アドオンの作り方(1) [ 編集 ]

このページでは、不肖kei(165系)がアドオンの作り方について
解説らしきものをして見たいと思います。
うまくできるかしら。

アドオンのルール [ 編集 ]

種類ごとの製作難易度 [ 編集 ]

最初はテンプレートや既存のアドオンを改造してみましょう。ただし、ソースファイル(pngとdat)を公開されていない製作者さんや、改造を許可していない製作者さんもいます。
改造品を公開する際はライセンスに要注意。公開可能か必ず確認するべきです。
慣れてきたら、ゲーム内表記を日本語化してみましょう。日本語化ファイルを同梱している製作者さんもいるので、日本語化の際に参考になります。

基本的な作業の流れ [ 編集 ]

フリーの経営シム"Simutrans"を語るスレから

470 名前:名無しさんの野望 :03/09/02 23:33 ID:LRF83djR
>>467 
http://www.simugraph.com/forum/index.php 
ここの2.simutransの一番下、x_Makeobj に
方法やらサンプルやらがある。 当然全部英語だけど、
チュートリアルが充実してる感じなので 
ひょっとしたらなんとかなるかも。
キハ22とか、屋根無し片面ホームとかできないかなあ。
そしたら採算無視して森の中に線路引いて乗降客のない駅を作りたい。 

471 名前:470 :03/09/03 00:10 ID:IbsZkdJ6
基本的な流れは
png形式で画像作成
 ↓
属性などはdatファイルで設定
 ↓
imagesフォルダとdatファイルをそろえてからmakeobjを実行
 ↓
できた.pakファイルをpakフォルダに放り込む
っていう感じみたいです。

bridgeのチュートリアルをやってみると、緑色の鉄橋ができました。 
それから元のpngファイルを画像編集ソフトで開いて緑系の色を赤系に変更し、 
再度makeobjでコンパイルすると赤い鉄橋になりました。 

絵を描いてみよう [ 編集 ]

まずは、ソフトを手に入れましょう。
Windowsの場合、元からペイントがついていると思います。
普通はそれで十分ですが、他にも沢山機能のついている物もありますので、使ってみて自分に一番あったものを利用してください。
ここでは代表的なソフトを紹介します。

GIMP
PhotoShopの影響を受けてできたオープンソースの画像エディタ。高機能過ぎて慣れるまで時間がかかるのが難点。アドオン開発はもちろん、普段使いにも十分すぎる環境です。日本語にも対応しています。

Pixia
少し癖のあるソフトですが、便利なことには変わりは無いでしょう。
普通の絵を描くのにも重宝するので、オールラウンド型ともいえます。

Edge
最低限度の機能を取り揃えたソフトですが、必要な機能をきちんと押さえてあります。
フィルタ機能やアニメーション支援等、便利な面もあります。
迷わずに使えるソフトといったところでしょうか。

GraphicsGale フリー版



ではNabe/車両工房がアドオン車両画像の描き方を解説しましょう。
次にサンプルを入手(各種探してみてください。)→
http://graphics.simutrans.com/
(128版の場合は128*128の画像を用意してください。)

ExampleTrain.png

次にグラフィックツールで希望の車両を描く。201系を例に説明します。

201sample.png

下が全体像です。

201.png

注意点は光源を左下(ゲーム内で南)にすること。つまり左下が一番明るく次に上、一番暗いのが右下。
それとプレイヤーカラーやライトの色、透明になる色など特殊な色が決まっています。アドオン開発/画像も参照してください。
特色カラー表を見て。特色を16進法かRGBで指定して使いましょう。

simucolors.png

ちなみに201系はプレイヤーカラーで塗られています。(青に見えていますが、プレイヤーカラー選択で黄や緑などにもなります。
201系は前後先頭車と中間車の3両の3段で描いています。中間車が4タイプしか描いていないのは前後どちら向きでも使えるからです。全部で何段まで行けるか試してはいませんが、だいたい1編成づつ3段〜5段ぐらいまでが良いでしょう。次のdatの設定に関わってきます。
完成したらpng形式で保存してください。

注意透過設定はしないで保存してください。

(赤231緑255青255の色を自動的に透過してくれます。)

最後のpak後に全方向にテスト走行して高さや横のずれ、よけいなゴミがないか、チェックしましょう。
※ここではPhotoshopを使用していますが、pngで書き出せればどのソフトでも構いません。


※ちなみに、自分は「PictBear」というwindows用のフリーソフトで描いています。(kei/165系)

datファイルを作ってみよう [ 編集 ]

  ( 関連ページ→ アドオン開発/datファイル記述リファレンスアドオン開発/datファイル記述リファレンス/vehicle(乗り物)

Nabe/車両工房がアドオンdatファイルを解説します。

128アドオンのD51のdatファイルをサンプルに解説します。datファイルは64アドオンも128アドオンも共通です。

dat.png

obj=オブジェクトのタイプでここでは乗り物を表す「vehicle」になっています。この他に勝手に道路を走る「citycar」や建物を表す「building」などがあります。

name=オブジェクトの名前です。この名前がゲーム上の名前になります。

waytype=走行する場所を表します。線路は「track」電化線路は「electrified_track」道路は「road」水上は「water」となります。

freight=積載物を表します。乗用ならば「Passagiere」郵便は「Post」その他には石炭「Kohle」や石油「Oel」などがあります。この場合は機関車なので積載なし「None」です。( 関連ページ→ 資料/貨物一覧※その他の積載物については公式フォーラム内のx_Makeobjeにあるdatデータを参考にしてください。

payload=サンプルにはありませんが、積載量を表します。それぞれの積載物にあわせた単位で記入します。100人乗りなら「100」30tなら「30」。

smoke=加速時に表示する煙の種類です。この他にディーゼル「Diesel」があります。

speed=最高速度(km/h)です。

gear=ギヤ比で、大きければ加速が良くなります。旅客用0.5〜2.0貨物用が推奨されています。

cost=購入費用です。設定が難しいのですが、公式的には列車なら3年程度運用してまかなえる金額だそうです。計算が難しければ他の公式車両を参考にすると良いでしょう。

weight=重量です。単位はt(トン)です。加速に影響します。

power=出力で単位はkwです。

RunningCost=維持費で計算は1マスあたりの収入運賃の1/3程度とされています。そのため高価な荷物を輸送する貨車は高めに、石炭のような安価な荷物を輸送する貨車は低めです。また速度が早い場合は高めになります。これも公式車両を参考にすると良いでしょう。

Sound=発車時の音です。蒸気機関車は「3」ディーゼル車は「2」その他バス用などがあります。

intro_year=導入年でここではD51の製造年「1936年」を入れています。

intro_month=導入月でここではD51の製造月「2月」を入れています。

Constraint[Next][0]=この車両の次に連結する車両の指定です。ここではテンダ「JNR_tender」を指定しています。どの車両とも連結したい場合はこの項目は省略します。また、前方に連結する指定は[Next]が[Prev]になります。例えばD51のテンダには前方に連結するD51の指定「Constraint[Prev][0]=JNR_D51」がはいります。[数字]は一つだけ指定するには「0」を、複数設定するときには「Constraint[Prev][1]=」「Constraint[Prev][2]=」と設定します。何もつなげないのもあわせて指定するには「none」を入力します。

EmptyImage[S]=適応する画像の座標指定です。[S]の部分はそれぞれの方向です。先頭車のように8方向指定するには[S][E][SE][SW][N][W][NW][NE]、中間車のように4方向なら[S][W][SE][SW]が必要です。画像は「画像ファイル名.行.列」で指定します。D51の例なら「D51_128というファイルの行番号(縦)何番の列番号(横)何番」という感じですが・・・。上の201の例で言えば先頭車は行番「0」列番「0〜7」中間車は行番「1」列番「0〜3」です。(説明がわかりにくいと思いますが、サンプルを例に考えてください。)


いらないものは省略可です。たとえば、電車で「smoke」というコマンドは必要ありませんので、省略できます。

また、アドオンパックにdatファイルが同梱されていることもあります。参考にしてみましょう。


とりあえずこんな感じです。もう少し日本語をうまく書ける方訂正をお願いします。

コスト計算シートを使ってみよう [ 編集 ]

コスト計算シートv0.1.4 filecostseat.zip


このEXCELシートはNabe/車両工房がTomas氏によるコスト計算の基本的考え方から脳内処理において勝手に作成したものです。必ずしも計算が正しいと
は限りません。試験車両を用いたのですがかなり適当に作りました。本家Tomas氏の作成したエクセルシー
トとは一切関係がありません。参考程度にお使いください。

青色のセル内に必用項目を入力してください。ピンク色のセルに設定数値が表示されます。


■入力の仕方


◆車両データ欄

cardata.png

□速度・・・・・・その列車の設定最高速度を入力します。

□速度補正・・・・設定最高速度に合わせた補正値を入力します。

         (〜49km/h→1.5・50〜79km/h→1.25・80〜129km/h→1・130〜159km/h→1.12・160km/h〜→1.25)

□ギヤ比実数値・・実際の車両の歯車比を入力すると、ゲーム値を算出します。

□輸送利益・・・・収入算出用に右図の輸送品に合わせた利益を入力します。

□ボーナス・・・・収入算出用に右図の輸送品に合わせたボーナスを入力します。

□素材係数・・・・生産価格算出用に車両の素材に合わせた数値を入力します。

         (アルミ→0.55・ステンレス→0.5・鋼→0.45 木→0.4)

□素材経費係数・・維持費算出用に車両の素材に合わせた数値を入力します。

         (木→0.7・鋼・アルミ→0.6・ステンレス→0.4)

□制御装置係数・・制作費算出用に動力車の制御装置に合わせた数値を入力します。

         (抵抗→1・界磁チョッパ→1.1・電機子チョッパ→1.2・VVVF→1.25・液体式→0.9・蒸気→0.65)

□回生率・・・・・維持費算出用に制御機とブレーキに合わせた数値を入力します。

         (回生無→4・抵抗回生→3.5・チョッパ回生→3.0・VVVF回生→2.5)

□運用効率・・・・維持費算出用に動力方式に合わせた数値を入力します。

         (電気→1・ディーゼル→1.5・蒸気→2.8)

◆列車編成入力欄

#ref(): File not found: "formation.png" at page "アドオン開発/アドオンの作り方"

動力分散方式を制作した場合、10両以内で製作した車両の編成を想定して、各車両の自重、出力、定員を入
力してください。機関車制作の場合、1両目に機関車の自重、出力を入力して、2両目から10両目に換算用
客車9両分を自重30積載量90を入力してください。貨車・客車を製作した場合、1両目に換算用機関車自
重100出力3000を入力し、2両目から10両目まで制作した貨車・客車の自重、積載量を9両分入力してく
ださい。

◆編成定数入力欄

car_fixed_number.png

編成定数は1両あたりの数値で、表を参考に編成合計値を入力してください。先頭動力車+中間動力車+先頭
付随車の3両編成ならば10+8+5=23に、機関車+客車ならば10両編成分30+(2×9)=48に、機関車+貨車な
らば10両編成分30+(1×9)=39なります。


すべてのセルに入力すると右下のピンクのセルに生産費とランニングコストが表示されます。

carcost.png

このシートによる一切の責任は負いません。各自の責任で使用してください。20041026 Nabe/車両工房

makeobj.exeを使ってみよう [ 編集 ]

 makeobjはSourceForge:makeobjから入手できます。

475 名前:471 :03/09/04 00:45 ID:QlE3AgeY
   >>472
   もしコマンドプロンプトがよくわからないなら次の手順でやってみて。
   1)C:にsimuobjというフォルダをつくる。
   2)imagesフォルダとdatファイルとmakeobj.exeをそこに放り込む。
   3)スタートメニューのアクセサリのコマンドプロンプトを実行
   4)C:> cd simuobj [enter] と打ち込む
   5)C:¥simuobj> makeobj pak ./ ./ [enter] スラッシュの前にあるのはピリオドね。
   ※  PAK128の場合は、C:¥simuobj> makeobj pak128 ./ ./ [enter]となります。
  6)simuobjフォルダに.pakファイルができる。

上の471さんの説明でも充分だとはおもいますが、

  1. pakファイル作成用のフォルダを作ります。(前スレの例でいう「pakフォルダ」のことです)

    自分は「sim」というフォルダをE:ドライブの直下に作りました。

    (パスで表すと、「E:¥sim」となります)
  2. makeobj.exeをそのフォルダ内に解凍します。
  3. 作成した画像ファイルとdatファイルを「sim」フォルダの中に入れておきます。
  4. コマンドプロンプトを起動します。添付ファイルでかっ!(滝汗
    cdsim1.png
    (私の場合、デフォルトではD:¥Documents and settings¥なんたらかんたら>と表示されています)
    1. まずはmakeobjを解凍したドライブを指定します

      自分の場合、Eドライブなので、e:[enter]を入力します。

      (赤の(1)という数字のところ)
    2. 次に、makeobjを解凍したフォルダを指定します

      この場合「sim」というフォルダに解凍してありますので、

      cd sim[enter]と入力します。
      (赤の(2)という数字のところ)
    3. コマンドプロンプトのパスが「E:¥sim>」ってなりました!
    4. あとは5)にあるように、E:¥sim>makeobj pak ./ ./[enter](※ PAK128の場合は、makeobj pak128 ./ ./ [enter])と入力

      (スラッシュの前はピリオドです。一つ目の/とピリオドの間にスペースがあります)
  5. めでたくpakファイルが「sim」フォルダの中にできているはず…です

    できたpakファイルは、画像ファイルやdatファイルと一緒に新しいフォルダに入れて、
    zip形式で圧縮し、うpロダかこちらにうpしてみてくださいね。

※バッチファイルを作れば、コマンドプロンプトを起動する必要はありません。

  1. フォルダにmakeobj.exe、datファイル、pngファイルを置きます(これは同じ)
  2. 同じフォルダ内にcreate.batという名前のテキストファイルを作ります
  3. create.batを右クリックして「編集」を選択。メモ帳が開きます。
  4. テキストの内容は、

    64x64の場合は
    makeobj PAK > err.txt
    128x128の場合は
    makeobj PAK128 > err.txt
    とし、保存します。
  5. create.batのアイコンをダブルクリックするとpakファイルができます
  6. err.txtという名前のファイルが同時にできます。このファイルにエラーの内容が書かれています。エラーがないか確認してください。

追記:

現在のバージョン(makeobj49)では、png画像に関するエラーは、標準出力ではなくて、標準エラー出力に書き出されているため、上記の方法ではエラーが書き出されません。次の2つの方法を追記しておきます。

標準出力と標準エラー出力とをerr.txtに書き出します。

makeobj pak > err.txt 2>&1

標準出力はstdout.txtに、標準エラー出力はstderr.txtに書き出します。

(makeobj pak 2> stderr.txt) > stdout.txt

makeobjについてはアドオン開発/Makeobjにも情報があります。

アドオンが正常に作れないとき [ 編集 ]

アドオンがなぜか正常に生成されない、導入してみてもゲームに反映されない、と言った場合に参照してください。

主な要因 [ 編集 ]

どの要因かを調査する [ 編集 ]

最初にすべきことは、png,datが同梱されている他の製作者のアドオンをダウンロードし、
そのソースファイルをためしに使って調べることです。
ダウンロードしたソースファイルをmakeobjに通し、正常なpakファイルが生成されれば、あなたのアドオン開発環境は整っているということです。
逆に、正常なはずのソースファイルを使ったのにpakファイルが生成されなければ、そのままの製作環境ではアドオンを作ることは不可能です。

正常なソースファイルを使ったのにもかかわらず、正常なpakファイルが出来なければ1の要因が当てはまります。

1でなければ、選択肢は2か3になります。が、多くの場合は3になります。

・1の場合
自分が使っているmakeobjとsimutrans本体のバージョンを確認し、公式サイトから自分の環境に最適なものをダウンロードしてきましょう。
出来るだけ新しいものに越したことはありません。
緩急坂の画像を指定する場合は、最新版を使用してください。
また、makeobjについて解説されたページをよく読んでください。
makeobj

・2の場合
どちらか片方でもmakeobjで指定したフォルダ内に無い場合、正常に作られません。
また、txtやjpegなど、他の種類のファイルの場合でも駄目なようです。

makeobjはdatファイルを先に読み込み、datファイル内で記述された画像ファイルを参照してpakファイルを生成します。
そのため、pngだけだと何も生成されず、datファイルだけだと非常に小さいサイズ(1KB未満)の不正なpakファイルが作られます。
また、環境によってはdatやpngのファイル名の拡張子部分の文字が大文字だと生成されない、といったケースも極まれにあるようです。

・3の場合
この場合が非常に多いと思われます。

とりあえず公開… [ 編集 ]

まだまだ足らないところはたくさんありますが、とりあえずこんなところでいかがでしょうか。
基本的にはスレのパクリだろ、と言われればそれまでなんですが・・・;y=ー( ゚д゚)・∵. ターン
皆様のご意見・ご批判お待ちしております。

コメント [ 編集 ]

とりあえず、makeobj.exeの使い方だけでも、ということで公開してみました。(kei) 2004/01/14



添付ファイル: filesimucolors.png 3件 [詳細] filecarcost.png 1件 [詳細] filecardata.png 2件 [詳細] filepalette - reserved colors.png 4件 [詳細] filecar_fixed_number.png 4件 [詳細] file201.png 3件 [詳細] file201sample.png 4件 [詳細] filedat.png 1件 [詳細] filecdsim1.png 2件 [詳細] fileExampleTrain.png 2件 [詳細] filecostseat.zip 2件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-18 (月) 18:17:29