超マジ!?爆マジ!?Magicaる☆Simutrans(副題:ボクセルアートのSimutransにおける活用と課題)

 ※この記事は、Simutrans Advent Calendar 2020 への参加記事です。

はじめに

こんにちは、洩矢急行です。
今年は高山諸島開発日誌の動画以外はあまりそれらしいシムトラ活動ができませんでした。
(動画も総じてみるとややA9に偏っていたり……)
そんな中、2年ぶりに参加したアドベントカレンダーの記事は、動画に関するもの……
ではありません
今回はタイトルにあります通り、ボクセルアートをSimutransに活用できないかというお話です。

ボクセルアートとは

「ボクセルアート」とは、3DCGの一形態で、「Volume(体積)」と「Pixel(ピクセル)」を組み合わせた造語です。分かりやすく言えば、3D空間で描かれるドット絵。イメージとしてはマインクラフトのソレと近いものになります。
Twitterで「#voxelart」と調べると、素晴らしい作品の数々を目にする事が出来ます。
こんな感じの事が出来ます

レゴなどのブロック玩具を積む感覚で3Dモデリングが出来るため、非常にとっつきやすく、操作もシンプルなのが特徴です。
今回はこのボクセルアートを、Simutransのアドオン作成に活用できないかなというお話です。

ちなみに、初めてVoxelアートでアドオンを作ったのは2019年、手元にあったトイレットペーパーでした(謎)

導入

まずは、ボクセルアートを作成するためのソフトを導入しましょう。
現在最も使われているであろうボクセルソフトは「MagicaVoxel(マジカボクセル)」という物で、フリーソフトとして提供されています。WinでもMacでも使える優れもの。
日本語化こそされていないものの、ググると多くの日本語解説記事が出ていますし、最近解説本も出版されたので、基本的な操作に困ることはないでしょう。


基本的な操作については、偉大な先人の記事群があるので割愛します。(丸投げ)

Simutransに落とし込む

前の章で皆さんにはボクセルに親しんでいただきまして、さてここからが本題です。
ボクセルアートにおいても、simutranに使う際の注意点は通常の3DCGとさほど変わりません。
しかし、一つだけ留意すべき点があります。それは、どのボクセル(ドット絵で言うところの1ピクセル)にも、高さが存在するという点です。
その為、地面を描写する際にどうしても段差が発生してしまいます。
丸で囲んだ部分が地面との段差になる

そもそも段差のある想定なら問題ないですが、そうでない場合はやや目立ってしまいます。
この問題を回避するためにまず考えられるのは、上物と地面を別で用意する事です。
MagicaVoxel上では建物の本体のみを用意し、レンダリングしたした画像を用意しておいた地面の画像に貼り付けます。こうすることで段差の問題を克服できるほか、既存の地面と合わせることで他のアドオンと統一感を出す事も出来ます。しかし、3Dお得意の影はなくなってしまうことに留意が必要です。
影がない分のっぺりした印象に

もしくは、モデルのサイズを大きくする方法もあります。
先ほどのサンプルは40マス立方で作成しているのですが、その5倍の200マス立方にもなると、1マスの大きさは相対的に小さくなります。Simutransで使用する分にはさほど大きくない画像に出力するので、このくらい潰れるだろうという奴ですね。
しかし、サイズが大きくなる分作成の手間がかかりますし、simutrans内でも256サイズや複数タイル建造物などではごまかしがきかないことも考えられます。
後程そのほかのやり方もちらっと出てきますが、どのみち時と場合によって適切な方法を選択するのが良いでしょう。

大きい画像だと地面に加え、そのほかの部分でもギザギザが目立たない。

レンダリング

3Dモデルをアドオン化する際、(個人的に)最も難しい工程がレンダリングです。
ここからはMagicaVoxelで制作したモデルを、simutransで使うに適した形へ出力する過程をご紹介します。
MagicaVoxelにはモデル作成機能に加え、レンダリングの機能も備わっており、冒頭の画像のような美しい出力が可能です。
しかし、simutransで使うにあたっては致命的な欠点がある為、ここでは2通りの方法について触れていきます。

MagicaVoxelのレンダーを利用する方法


今回は、このコンビニのモデルを用いて説明していきます。
これくらいであれば、慣れれば大体30分かからずに作れるでしょう。
画面左上にあるRenderの文字をクリックすることで、モデリング画面からレンダー画面へと切り替わります。

こんな画面になります

まずは、左下にあるグリッドなどのメニューを全てoffにします。
グレーになっていればOFF

続いて背景と光源の設定です。
まず、左メニュー(カラーパレットの右)から、Display Setting(歯車マーク)を選びます。
その中のBGという項目を開き、Transparentにチェックを入れます。
すると背景色が黒くなり、出力の際には透過PNGとして書き出されます。

光源は、歯車マークの並びにある☀マーク(Lighting Setting)から設定します。
SUNの項目にチェックを入れ、Angleの設定は60,0にします。
Areaは100、Intensityはお好みで調整するといいでしょう。
SKYの項目は私もいまいち理解が足りていませんが、Uniform Lightning(一番左)の場合、Intensityの値によって面ごとの明暗がはっきりするので、ここも雰囲気によって合わせるのが良いのではないでしょうか。
FOGは0のまま弄らないで問題ありません。
続いてカメラの設定に移ります。
カメラは主に画面右下のメニューで操作します。
まず、カメラのタイプをOrth(Orthographic / 平行投影)に切り替えます。
そして、メニュー右側にある2項目(Camera Ruler / Toggle View Cube)をオンにし、立方体と縦横に配され数字を表示させます。

次に、右から3番目の項目(Recenter Camera)をクリックしたのち、数字を縦-30、横-45に設定します。

すると、このような表示になりました。見覚えのあるアングルですね。
さて、ここからが大変な作業です。
MagicaVoxelをシムトラで使うにあたっての唯一にして最大の欠点、それはカメラの位置を数値で指定できない事です。
つまり、画面の表示されているモデルを画面の端に手動で合わせなければならないのです。
この赤線の幅に合わせる必要がある

こればっかりは根気よくやるほかありません。
不幸中の幸いとして、先ほどのRecenter Cameraを押すと中心は合うので、必要なのは拡大縮小と上下の移動のみになります。モデルの全体が映るように移動させてください。
マウスで操作すると折角の中心もずれてしまうので、キーボードでの操作をお勧めします。
拡大はW、縮小はS、上移動がSpace+Q、下移動がSpace+Eです。

さて、モデルの移動が終われば、いよいよ出力です。
レンダリングは右のメニューから行います。
右から2番目のメニュー(Projectの左)
一番右の画像アイコン(Image Setting)を選び、ImageメニューからPhotoを選択します。
下のWidth、Heightの値は、pakセットの値によって設定してください。今回はpak64サイズで作成するので、64x64に設定しています。
設定出来たら下のRenderボタンからレンダリングしてください。
出力されたものがこちらです。出力されたばかりの状態だと下に余白が残っているため、位置を調整すれば完成です。
必要に応じて特殊色の設定や、縁の部分の調整を行った後、datを書いたりなんだりしてアドオンにしてください。
それなりに馴染んでいる……気がする……

レンダリングに他ソフトを活用する方法

先ほど述べたMagicaVoxelの欠点はかなり大きなもので、コンビニのような小規模建築ならまだしも、高層ビルやショッピングセンターなどの大規模なものになれば、調整は難航を極めることは想像に難くないです。
そこで、MagicaVoxelでモデリングのみを行い、simutransアドオンへの出力ノウハウのある他ソフトでレンダリングを行うというやり方もあります。
MagicaVoxelには.objファイルなど、一般的な3Dオブジェクトのファイルへエクスポートすることも可能であり、今回はそれを活用します。
エクスポートは画面右下にあるExportメニューからで、出力したいファイルを選択します。
16種類の形式から選べる
さて、出力したファイルを任意の外部3Dソフトに読み込みレンダリングします。
幸いなことに、今回参加しているSimutrans Advent Calendar 2020には、2本もの3D出力に関する記事があるので、是非ともそちらを参考にしていただきたく思います。
MagicaVoxelで作成したモデルがblender等でも扱える

ちなみに、blenderでレンダリングする際は、インポートしたモデルの寸法に注意されたい。
カメラの設定に合わせ、モデルを2.5倍に拡大している。

モデルは異なりますが、Blenderを使って出力した作例がこちらです。
Tilecutter先生のご機嫌がよろしくなかったため、右に謎の黒い空間が発生していますが、モデル自体は綺麗に出力されていることが分かります。


また、実際に試したわけではない為参考程度ではあるのですが、序盤に取り扱った問題の解決策として、地面部分のみ外部の3DCGソフトで作成することもおそらく可能ではないでしょうか。

おわりに

とっつきやすい3Dアドオンを目指したこの試みですが、レンダリング工程の難しさを考えるとまだ障壁があるように思います。特に、正確なレンダリングが求められる場合は、他ソフトでの作業が必須となり非効率です。
一方、小さな建築物などはモデリングも簡単なので、短時間で作れるところにメリットがあるのかなと思います。また、ボクセルアート特有のギザギザ感も、ゲーム内ではあまり気になりませんでした。現状では通常の3Dと比較した際のメリットが少ないことも事実ですが、アドオン作成の選択肢が少しでも増えたら幸いです。

蛇足

記事タイトルの由来はこれです↓
????????????????????????????????????????
超マジ(メに)爆マジ(メにする)Magica(Voxelで作)るSimutrans(アドオンの話)

お目汚し失礼しました

コメント

このブログの人気の投稿

Simutrans的インターチェンジカタログ2018

Magicaしむとらリズム