アドオン制作あれこれ【Simutrans Advent Calendar 2020】

この記事はSimutrans Advent Calendar 2020 12/12の記事です。

まえがき (読まなくていい部分)

どうも、M_Kasumiです。前日のあるみどりくんは3Dの話をしていましたが、それと対照的に、今日はポチポチ地味に打っていくドット絵メインのお話です。

本稿では、JR東海の新型ハイブリッド特急気動車HC85系のアドオンを実際に作りながら解説を行います。(完成するとは言っていない)

私はアドオン制作を始める以前にも個人的にドット絵を打つことをしていたのですが、その時から培ってきたテクニックも含めて、どのようなことを考えながらアドオンを作っているかということを紹介できたらと思います。

なお、一部pak128japan以外で通用しないと思われる話が含まれております。あらかじめご承知おきください。

おすすめのソフト ~AzPainter2~

私はAdobeCCに加入しており、Photoshopなどのソフトを使うこともできるのですが、アドオン制作をはじめとするドット絵の制作には、AzSkyさんで配布されているフリーソフト「AzPainter2」をメインで使っています。

AzPainterは軽いにもかかわらず機能が豊富であり、かなりアドオン制作に適したソフトウェアと言っていいと思います。

まあ、レイヤ機能が使えればどのソフトでもできると思います。

AzPainter用配布

もし私と同じようにAzPainterでドット絵を作る方がいらっしゃいましたら、AzPainterでアドオンを制作するのに便利なパレットを用意しましたので、よろしければ使ってみてください。

このパレットには、夜に光る部分などに使う特別な色が収録されており、パレットウインドウタブ(T)ファイル読込 にて追加することが可能です。

追記

ダウンロードボタンをクリックすると文字化けしたページが表示される場合は、右クリック名前を付けてリンク先を保存 で保存してください。

パレットを読み込んだ状態。ウインドウのサイズによっては上下がこの並び方にならないこともあるので適宜調節していただきたい。

Simutrans内で夜景モードになった際に、青枠内上段の色で塗った部分はその下の色に光ります。これはSimutransのシステムであらかじめ決められたルールです。

ちなみに、赤枠内の色はプレイヤーカラーです。

Simutransで開発した都市の夜景を見て楽しまれる方も多いかと思いますが、アドオンを作る際には夜にどのような見かけになるかも考えながら作らなければなりません。

Simutransでは、光らせたい部分などを、予めシステムが指定したスペシャルカラーで描くという仕組みで夜景を実現しています。

逆に言うと、うっかりこれらの色を不用意に使ってしまうと、夜になった時に変な場所が発光するといった現象が発生しますのでご注意ください。

絵を描こう

それではさっそく、車両の絵を描いていきたいと思います。

前準備 : 位置合わせのための画像読込

pak128japanの公式ソースから適当な車両を読み込みます。この画像をもとに、車両の進行方向に先頭を合わせて描いていきます。

画像を読み込んだ状態

さて、この画像はあくまでも位置合わせのためのものですので、実際に描き込んでいくために、合計3つのレイヤを作ります。

レイヤを作った状態。適当に名前をつけるとわかりやすくてよいだろう

上からそれぞれ、窓の色など特別色を描くレイヤ、車体を描くレイヤ、背景色のレイヤです。

背景色のレイヤは最初は非表示にして、レイヤ0(位置合わせ用画像)が見える状態で描くと位置合わせがしやすいです。

ざっくり描こう

さっそく、「車体」レイヤに車体を描き始めます。

Simutransでは、左上を光源として右下に影がある絵を描くルールになっています。

しかし、私は一通り描いてから影をつけることが多いため、この段階ではとりあえず影なしで車体を描いていきます。

後からめっちゃゴリゴリ調整していくので、この段階ではざっくりと形ができればとりあえずオッケーです。

また、窓やライトなど特別色で描く部分は車体とは別のレイヤ (この場合だとさっき作った「特別色」レイヤ) に描いておくと、後で調整するときに楽です。

必要に応じて資料を見つつ頑張って描きます。場合によっては、資料を集めるのに1500円ほどかかるかもしれません。

できました。しかしまだガビガビです。また、HC85系特有のカーブを多用したデザインも再現しきれているとは言えません。

ドット補完

ここからは、正攻法では突破できない部分を無理矢理描きます。

突然ですが、たとえば、赤:青が2:1のこんな図形があるとします。

これを3ドットで表現するのは簡単です。

それでは、この3ドット分の図形を、2ドットだけで表現しなければならない場合にはどうすればよいでしょうか。

ドット絵の最小単位は1ドットですから、0.5ドットの青を塗るなどということはできません。ですが、目の錯覚を利用して、疑似的に「0.5ドットの青」を作ることはできます。

目の錯覚を利用すると、1ドットを100%の透明度として、0.5ドット相当なら50%、0.3ドット相当なら33.3%、といったふうに、透明度を変えて色を重ねることで「1ドット以下」の世界を再現できます。

個人的にはこの原理を使いこなせるかどうかで大きく出来が左右されると思います。

以上の原理を応用して前出の画像をブラッシュアップするとこうなります。

できました。気合です。

描いてる最中は「何だこれ」「こんなんで大丈夫か」と思っても、縮小して遠目に見るとそれっぽく見えてしまうのがドット絵の面白さですね。

だいぶ「HC85系らしさ」が出てきたのではないでしょうか。

影をつける

実車の資料などを見ながらどのように影ができるか考え、左上が光源であることに注意して影を塗ります。

私はだいたい「車体」レイヤと「特別色」レイヤの間にレイヤを挿入し、黒10%ぐらいで塗っています。もっと強く影をつける作者さんもいますし、もっと弱い方もいます。この辺は好みだと思います。

ついでに光沢とかいろいろつけます。この辺りも「車体」レイヤと「特別色」レイヤの間に挿入すると良い感じになります。

影をつけた状態がこちらです。

他の面も気合で同様に作ります。

一つのレイヤで全部を描いた場合には、光源の関係で左右反転ができないのですが、影のレイヤを分けておくことによって、車体だけを左右反転して描画を省力化することができます。

基本的にはこれを繰り返して1両につき8面を描きます。影や特別色のレイヤを別にする以上の省力化はできませんので、完全に気合の世界になります。技術力より精神力です。アドオンの世界では8面作った者が勝ちなのだ。

で、ここまでやって間違いを発見しました。やばいもう12月12日になっちゃう!!!

間に合いませんでした……

クモロ85とクモハ85しかできませんでした。

誠に申し訳ございませんでした。

完成はできませんでしたが、アドオン作りの際の思考回路を紹介できたということで許してください。

datを書こう

せっかく苦労して絵を描いても、それだけでSimutrans上で走らせられるアドオンになるわけではありません。

datと呼ばれる、いわば仕様書のようなものを書かなければなりません。

それでは、どのようなことを考えてdatを書いているのでしょうか?

本稿では「datで設定する各パラメータはどのように決定すればよいのか」を解説します。datをどのようなフォーマットで書けばいいのかの解説はいたしません

datの書き方については以下のページを参考にしてください。
アドオン開発/datファイル記述リファレンス/vehicle(乗り物) – Simutrans日本語化・解説

諸元を調べる

というわけで、まずは実車の諸元を調べます。

幸い、HC85系の場合は、必要な情報が良い感じにまとまっているサイトが見つかりました。

車両によっては、たまにこれが見つからないこともあって苦労するんですよね。

出典 : https://www.n-sharyo.co.jp/business/tetsudo/pages/jrc-hc85.htm

最低限、

  • 出力
  • 定員
  • 重量
  • 最高速度

の情報が必要です。

ちなみに、後で出てくるSimutrans上での「ギア比」のパラメータは、実車のギア比とは概念が異なりますので注意が必要です。

コストの設定

ゲーム上で車両をいくらで購入するか、コストはいくらにするか、などを設定します。

適当に決めても動いてしまうのですが、pak128japanにはコストを求める公式が存在します。せっかくなので、これに準拠して作るとユーザーに喜ばれるでしょう。

ですがその計算式がすげえややこしかったので、自動でコストとギア比を計算してくれるツールを作ってみました。ご活用ください。

Pak128Japan Train Dat Maker ver 1.2

上記のツールの使い方はだいたい見ればわかると思います。出力結果は先頭車両から順番に1両ずつです。なお、このツールの利用には、前述した必須パラメータに加えて「起動加速度」の情報が必要になっています。

入力する必要がある「係数」に関しては公式の説明が存在せずよくわからないのですが、公式の計算式を解読するに、101系ぐらい古い車両で85、E531系ぐらい新しい車両で65が設定されていました。要するに、「係数」には新しい車両ほど小さい数字を設定すればいいんだと思います。

最高速度は営業最高速度にするのか設計最高速度にするのかという問題もありますが、私は設計最高速度で作っています。OTRPなら営業最高速度を設定できますしね。

連結設定

正直言ってここが一番面倒くさいです。

例えば、実車が以下のような編成を組んでいる車両があるとしましょう。Tが付随車、Mが動力車です。

Tc1M1M2TM3TTc2

この車両をアドオン化するとき、どのような編成を組めるようにするべきでしょうか?

作る側からすると、編成を「Tc1 – M1 – M2 – T – M3 – T – Tc2」の5両編成で固定してしまって、それ以外の組み合わせでは編成が組めないようにしてしまうのが一番楽です。

しかし、このような設定をしたアドオンは編成が柔軟に組めないため、ゲーム上激しく使いにくくなるという難点があります。やはりある程度自由度があるほうが喜ばれるでしょう。(まあ私の作品も初期の頃は固定編成にしてしまっていたのですが)

ですが、どの程度自由にするのか?という問題もあります。組み合せを自由にしすぎてしまうと、例えば「Tc1 – T – Tc2」のような編成も組めてしまうという事態になります。Simutransにも動力車や付随車の概念がありますので、このような編成は組んでも発進することができません。発進できないような編成が組めてしまうほどの自由度は、それはそれで不親切かもしれません。

自由すぎず、固定しすぎず。この塩梅が難しいのですが、この例で言えば、「Tc1 – M1 – M2」「M3」「T」「Tc2」のそれぞれを単位として、「Tc1 – M1 – M2」と「Tc2」との間に「M3」または「T」を自由に繋げられるようにする、ぐらいの自由度が最適ではないかと思います。

ここまでできれば、ようやくmakeobjでpakを作って終わり、という感じです。

pakの作り方については前述の日本語Wikiなどで確認するとよいです。

意外と考えることが多くてめんどくさいということがおわかりいただけたでしょうか?

あとがき (読まなくていい部分)

いかがでしたか?

個人的2020年総括

私にとっての2020年は厄年とも言えるほど色々大変な年でしたが、Simutransライフ的には大躍進(大げさ)の1年になりました。

なんといっても、コロナ自粛で暇だった時にオタクを集めて始めたNS(AhozuraNS)は大きな分岐点になりました。そこで要望が上がった車両などのアドオンを作り始めるようになったからです。アドオン制作は3年前に一度して以来だったのですが、AhozuraNS開始以降、結構な頻度で作るようになりました。

また、集まった他のメンバーたちもアドオンの制作を始め、数々のアドオンを作り出しています。128japanの「W-Track Project」や「わんぱく線」もそういった経緯で誕生したものですし、縁というのは不思議なものですね。

できれば来年もこの好循環を続けていきたいものです。私やAhozuraNSの一同のこと、来年もどうぞよろしくお願いいたします。

その他

  • この記事は前日の23:57まで書いていました
  • コロナ禍で大学が完全にオンラインになってしまって死んでいます。卒業できなそう
  • CUE! 始めました。か゛わ゛い゛い゛な゛あ゛九゛条゛柚゛葉゛さ゛ん゛
  • Simutransで車両を譲渡する機能が欲しい

参考文献

今回言っただいたいのことは以下に書いてあります。また、本稿の執筆にあたっては、一部、以前筆者が京津三条氏に注意されたことをそのまんま書きました。感謝申し上げます。

アドオン開発/アドオンの作り方 – Simutrans日本語化・解説

アドオン開発/datファイル記述リファレンス/vehicle(乗り物) – Simutrans日本語化・解説

JR東海HC85系諸元

コメント

  1. […] 昨年のKasumi大先生のアドカレ記事でもこのDatMakerは紹介されておりましたが、そもそもの基本的な使い方を書いて残しておきたい、アップデートによって追加された便利な機能を紹介し […]

タイトルとURLをコピーしました