UVマッピングの簡単な解説

(本稿はVoxel Tycoonで作る車両Mod 日本語版解説の4.1. の補足です)

先ほどの記事を読み返していてふと思いました。

他のゲームで鉄道車両等のモデリングを経験したことがあるという方でも、マッピングは平面マッピングをメインで使っていて、UVマッピングは従来あまり使ってこなかったという方はいそうな気がします。

また、Metasequoia4ではマッピングの設定が進化していますが、そのあたりがかえって複雑で分かりづらいからということで(特に平面マッピングを使う方で)引き続きMetasequoia3系を使っている、という方も見かける気がします。

それなので、UVマッピングの作業についてだけは少々踏み込んで補足記事を書いてみることにしました。もっともこのゲームのModではそう込み入ったマッピングをする必要はありませんから、大して構える必要はありません。

序. 本稿の目的

下画像は本編4.1. にて登場した画像です。選択されている面に黄色の色(区画)が割り当てられている、ということを説明するために使用しました。

本稿は、どのように面に色(区画)を割り当てれば良いかということを取り上げるものです。

本稿はこの状態にするにはどうやるか、という記事

 

1. 面を張る

面を張ります。マッピング方法をUVマッピングに指定して面を張ると訳の分からない模様になりますよね。

面を張ったところ

2. 編集モードを変更

今は左上の四角いところの表示(編集モード)が「モデリング」になっていると思います。これを「マッピング」に変更します。

なお、マッピングモードでは面を張ったり削除したりということが基本的に出来なくなります。作業中モデリングモードとマッピングモードを行き来していると結構混乱しますが、面が操作出来ない時も多分バグではなくマッピングモードになっているだけなので、まずはどっちのモードにいるかを確認しましょう。

左上のモデリング(アイコン)となっているのをマッピング

3. 対象の面を選択

左側の「コマンド」で「選択」を選び、マッピングを整えたい面を選択します。緑色になったら選択できています。

選択された面は周囲の辺が緑色に

4. マッピングモードでの移動と拡大縮小

オブジェクトが映っている部分の上でカーソルを動かしてみましょう。するとオブジェクトが拡大、縮小します。カーソルを押しながらマウスを動かすと、オブジェクトの見える位置を動かすことができます。(ここまではモデリングモードと一緒です)

さてオブジェクトを縮小していくと、オブジェクトの背後に現在適用しているテクスチャが出てきます。
(もし出てきていない場合は、材質パネルで適切な材質を選択してください)

さて、オブジェクトが映っていないところでカーソルを上下に動かすと、今度はこのテクスチャが拡大、縮小します。またカーソルを押しながらマウスを動かすと、テクスチャの映る位置を変更することができます。この操作は最初分かりづらいので、一応解説を入れてみました。

そのテクスチャに、緑色の歪な四角形が描かれています。これが、現在選択されている面のUVマッピング展開図です。

こんな形ではそりゃあ変な模様にもなるという訳です。

展開図が見えてきた

5. 展開図を点にする

Voxel Tycoonは1面に1色しか割り当てられないので、それならば展開図が面である必要はありません。先ほどの歪な四角形は点にしてしまいます。

左側のコマンドから「拡大」を選択し、右側の小さなUV操作パネルにU、Vとも「0」と入力(勝手に0.000に補正してくれる)、その下の「OK」を押下します。すると歪な四角形は消え、その真ん中あたりに緑色の点が現れました。これが選択面の新たな展開図です。

展開図が緑色の一点に

6. 点を移動

最後に左側のコマンドから「移動」を選択し、5. の緑色の点をドラッグして黄色い四角の中心に持ってきます。あるいはUV操作パネルに座標を入力してもかまいません。これで黄色い区画の中央に当該面のマッピングを持ってくることができました。

点を区画の中心に移動(赤矢印は書き加えたもの)

いかがだったでしょうか?

今回は、Metasequoia4のUVマッピングについて簡単に解説してみました!

UVマッピングで面を張ると変な模様が出てきて嫌だという人も、これで解決法が分かりましたね!果たして本当にそうでしょうか?

それはともかくとして、Voxel Tycoonの車両Modを支障なく作れるくらいにはなんとなくUVマッピングの操作が分かりましたね!とりあえずそれなら十分です!

本編の次の節にも期待ですね!

本編に戻る

 

 

 

Voxel Tycoonで作る車両Mod 日本語版解説

序. Voxel TycoonとそのModの現況

Voxel Tycoonは、現在Steamで先行アクセス版が公開されている輸送シミュレーションゲームです。街に道路や線路を整備し、自動車や鉄道で貨物・旅客を輸送して、街を発展させていくという内容です。洋ゲーですが、ありがたいことにゲーム内言語は日本語にも対応しています。

このゲームでは、Modを製作、導入することができるため、好みの車両や建物などを追加することができます。現在でも多くの人々がワークショップで魅力的な作品を公開しています。

しかしMod作成者は(当然ながら)海外の方が多く、日本の鉄道を題材としたModは、まだ自分が作ったものくらいしかありません。Mod作成のドキュメントは公式サイトにあるものの(英語)、流石にこちらは日本語版の用意がありませんから、日本語を母語とする人が多い日本の方々が手を出しにくいのかもしれません、

そこで本稿では、これからModを作成しようとする日本語母語話者に対して、少々の手助けをできればという目的で、車両Mod作成の要点を日本語で解説していきます。

要点を中心にざっくりとした説明をしていきますが、それでもかなり長い記事となってしまいました。

ゲームの中にもおなじみの電車を

 

1. 当記事について

当記事は、Voxel Tycoonの車両Modを作成する一連の流れを紹介するものです。

まずは旅客用の車両Modを作るといった設定で、おおまかに次の順番で各工程のポイントを紹介していきます。

  • 前準備(モデルを作る前に)
  • モデリングマッピングについて(Metasequoia上での作業)
  • ゲームへの取り込みと彩色について(Voxel Tycoon上での作業)
  • その他設定ファイルの作成について(Voxel Tycoonで動かすための作業)

読者としては、他の鉄道シミュレーション系ゲームで車両のモデリングを含むMod類を作成した経験がある程度の方を想定します。つまり他ゲームからの流入勢です。

そのため、次に挙げるような事項はすでにお分かりのことと想定して、本稿において詳細に論ずることはしません。Voxel TycoonでのMod作成における固有の事情などを中心に、必要な範囲で触れるに留めます。

上記に関してより詳細な解説が必要となる場合には、本稿ではカバーしきれませんので、適宜他の記事を参照しながら作ってみてください。

 

2. 前準備

2.1. 資料を集める

車両をモデリングする上では、やはり資料は(特に図面は)あらまほしきものです。

ただ、このゲームではデフォルメをすることも重要な要素で、少なくとも細部まで作りこむ類のモデリングはしませんから、比較的簡単な図面でも事足ります。

一般的な箱型車両をモデリングをする上で欲しくなってくる情報は、以下のような数値だと思います。

・全高、全幅
・窓の高さ
・幕板、腰板の高さ
・前面窓などの幅

車両竣工図でも少し詳細なものであれば、上記の数値は載っていることがあります。車両竣工図等の図面は、鉄道雑誌に載っていることもありますし、保存車がある場合はその説明板に図面があったりもします。大手私鉄会社であれば、出版物として図面集が発刊されていることなどもあります(そのほか模型工作用の図面が鉄道模型系の雑誌に載っていることもあります)。

もっとも、図面で窓の高さなどの数値が得られなくても、側面写真を下絵に高さを調整したり、資料写真と見比べてちまちまと調整することで、うまくやればうまくいきます。

これぐらいしっかりした図なら十分?かと思いきや欲しい寸法が絶妙に無い

どうせ長さをデフォルメしますので(後述)、細かい寸法が合っていなくてもなんとなく諦めがつくという点は、このゲームの良いところかもしれません。寸法が分からないときは、だからなんだと開き直って適当に行きましょう。

2.2. フォルダを用意する

それでは手始めに、Modを格納するフォルダを用意します。

多分以下のようなところにContentというフォルダがあるのではないかと思います。そこがMod作成をするための作業用のディレクトリです。

C:\Program Files (x86)\Steam\steamapps\common\VoxelTycoon\Content
(「your_first_pack」や「base」などのフォルダが入っているはずです)

このContentを見つけたら、そこに新たなフォルダを作成しましょう。

名前は何でも良いですが、もしもこれから作成するModを今後Steamワークショップで公開することを考えているならば、ほかのModと重複しないユニークなものでなければなりません。

以降、今作ったこのフォルダのことを、Mod作業用フォルダと呼ぶこととします。

作業用フォルダとして「TKK」フォルダを作成

これからの作業では、Mod作業用フォルダを作業の拠点として、モデルのファイルや設定ファイルなどを保存していくこととなります。

 

3. モデリングについて

3.1. ソフト

モデリングのソフトは、本稿の説明としてはMetasequoia4を使用します。
筆者は有料版を使用しています。これは、objをはじめ色々な形式での書き出し/読み込みができて便利だからです(objはModの3Dファイルに使用する形式です)。
しかし、無償版でもモデリングは十分に可能です。objの書き出し/読み込みはできませんが、この点も他のソフトを挟むことで対応可能です。

3.2. 基本事項

Voxel Tycoonの公式ドキュメントでは、車両Modの一般的なガイドラインとして以下のような目安を示しています。

  • 機関車のボディは三角面換算で1500面を超えないようにすることが推奨されています。
  • 台車と車輪は機関車のボディと比べてあまり目立たない部分のため、最大で1000三角面に抑えるべきです。
  • 車両がそれとわかる程度にディテールを加え、一方過剰にもならないようにしてください。
  • モデルは実際のものよりも短く作成されるべきです。
  • 作成したい車両の種類によっては、基本の車両等からモデルをインポートして寸法を比較するのも一手であり、パンタグラフの高さの参考にも使えるでしょう。

精密にモデルを作り込みすぎるのは、このゲームでは推奨されません。それにしてもボディを三角面1500面以内で作るというのは、作ってみるとなかなか厳しい目安であると分かります。
(かくいう私の東京急行パックのいくつかの車両は、1500面をオーバーしています。パンタやコルゲートがあるとさすがに厳しくてですね……(代わりに台車と車輪をでポリゴン数をかなり抑えています))

いずれにせよ、ポリゴンを徹底的に節約するという意識を持って、いかにシンプルに車両の特徴を出せるか、という点が重要になってきます。

さて基本的な事項として、モデルは

  • ボディー
  • 台車
  • 車輪

を分けて作成します。ボディーの作り方さえ分かれば台車や車輪を作ることはそう難儀ではありませんし、台車と車輪はbaseの車両のものを参照して拝借することも可能(今回はそうします)ということで、まずはボディーを作りましょう。いきなり台車を作れだなんて言われてもモチベーションが持ちませんからね。

次に、これは記すまでもないことですが、MetasequoiaのZ軸方向が線路の方向(X軸方向が枕木の方向)となるように作成をしていきましょう。

基準となる高さ、すなわちy=0.0の高さは、レールの高さとして作成します。図面でもレールの踏面は高さの基準となっていますから、作るにあたっても分かりやすいのではないかと思います。

そしてどのような大きさで作れば良いのかということ、つまり縮尺については、次の項で扱います。

3.3. 縮尺

Voxel Tycoonでは、高さ・幅方向と長さ方向で縮尺が異なります。
高さと幅については、Metasequoia上での長さ「1」が、ゲーム上での長さ「2.5m」になります。

ただし、Metasequoiaでモデルを作成するにあたっては、図面にある寸法を一々電卓で0.4倍したり、小数点以下ばかりを打ち込んだりするのも面倒ですから、まずはMetasequoiaの長さ「100」を実車の1mとして作ってしまいましょう(つまり「1」で実車の1cm)。

この縮尺でモデルを作成して、一通り仕上がった段階で0.4倍と0.01倍の縮小処理をかけてobjファイルに書き出すと、ゲームの縮尺に合った3Dファイルが完成するという算段です。

一方、長さについては倍の縮尺で、Metasequoia上での長さ「1」は、ゲーム上での長さ「5m」になります。すなわち、高さ・幅の縮尺は上記のように作るとして、長さ方向を1/2としたショーティーモデルとして作成することで、ゲーム内での縮尺に合わせることができます。

3.4. 長さ方向のデフォルメ

前節で述べたように、本来は長さを1/2に縮めなければなりません。素直に作ると、20m車は10m車として、17m車なら8.5m車として作成することになります。もちろん扉や窓の配置についてはデフォルメをして数を減らす必要があります。

「扉や窓の数を半分にして長さも半分にする」というのは最も単純明快な指針ですが、そのようにすると全体的な印象がかなり変わってきてしまうこともあり、バランスを見極めるのは難しいところです。

一例として、私が採っているデフォルメの方針を紹介します。

長さとドアの数について
・20m4ドア→10m相当3ドア(ドア1枚省略)
・18m3ドア→10m相当3ドア(ドア数省略なし)
・16m2ドア→10m相当2ドア(ドア数省略なし)
(それ以下の短い車両は10m相当未満の長さに適宜縮めて作成)

ドア間の窓の数について
・扉間窓5枚以上→適宜省略
・扉間窓4枚→扉間3枚(1枚省略)
・扉間窓3枚→扉間3枚(省略なし)
・扉間窓2枚→扉間2枚(省略なし)

(経験的な印象として)4つあるドアや窓を3つにしても案外全体的なバランスを損ねませんが、3つあるものを2つにすると大きく印象が変わってきます。そのためドアも窓も3つ以下のものは数を減らさないという方針で作成しています。長さもそれに基づいて決まっています。

実例として、東急の20m車は4枚扉の車両なので扉を3枚に省略して扉開口部+扉間1区画分の長さを縮めることができますが、18m車は3枚扉、扉間3枚窓の配置のため省略がままなりません。そのため20m車と車長を揃えてドアと窓をなんとか詰め込む、という判断に至っています。もちろん扉や窓一つ一つの幅もぎゅっと縮めることになります。

表現の制約上車長が同一となった18m級の7200系(上)と20m級の8500系(下)
7200系のドア間は窓3枚を減らさず強引に細くして詰め込んでいる

このあたりは好き好きで、Bトレインショーティーのように、4ドア車も容赦無く2ドアにしてしまうという判断も有り得るでしょう。

3.5. その他モデリング上のポイント

  • パンタグラフ上辺の高さを495程度とすると、丁度デフォルトの架線に合います。
  • スムージングを断ちたい場合には、その辺を境にオブジェクトを分ける必要があるようです。Metasequoia上ではオブジェクトを分けないままでも、頂点を統合しないことでスムージングを断つことができますが、ゲームに取り込むと意図せずスムージングが適用されてしまいます。
  • 次の章でマッピングを行いますが、マッピングはテクスチャを割り当てるというよりは各面に単色を割り当てるに過ぎないので、塗りたい色の境目ではポリゴンが分けられている必要があります。
  • 面数の規定はやはり厳しいです。ライトなどの円は八角形で作る、窓の中桟は通しで一面とするなど、ポリゴンの節約意識に努める必要があります。
  • シル・ヘッダーの側面のように細くて目立たない面は、少し傾斜をつけるとほどよく目立つようになります。もっとも面数の規定を考えると、そもそも本当は立体化すべきではないところかもしれません。

 

4. マッピングについて

4.1. Voxel Tycoonのマッピング

Voxel TycoonのModでは、pngなどの画像のテクスチャを指定することはできず、各面に単色を指定することになります。

具体的な色の指定、つまり赤色だ緑色だというのを指定していくのはまだ先の話なのですが、Metasequoia上でモデルを作成する段階で下準備をしておく必要があります。各面にはどのグループの色を割り当てるか、という情報を登録しておくのです。

イメージとして、モデルのファイルとしては「「この面」と「あの面」には3番の色を指定します」と指定しておいて、後ほど別途色の設定ファイルで「3番の色は緑色ですよ」と色との紐づけをすることで、ゲーム上で「この面」と「あの面」は緑色で描画される、ということです。伝わりますかね?

さてこの例で「3番の色を指定します」のように、各面にどの色を指定するという情報を持たせるのはどうするかというと、UVマッピングの座標によって指定することができます。

UVマッピングの1面を縦4×横4で16等分して、それぞれの小さな正方形の区画に、それぞれの色のグループを割り当てていきます。

先ほどの「3番の色」を左上から右に数えて0,1,2,3番目、下図の右上の色だとしましょうか。この場合、x座標が0.75~1.0、y座標が0.0~0.25の範囲にある面は、すべて同じ色で塗られます。

テクスチャの一例

同様に、同じ色で塗りたい面のグループを各区画に割り振りながら、UVマッピングを進めていきます。

ちなみに、上に示したような16等分のテクスチャは、ゲームの動作上では全く必要となりません。しかし、Metasequoia上で真っ白なモデルのままマッピング座標を設定していくのも難しいですから、上の画像のようにいわばパレットを用意して材質に指定しておき、仕上がりを確認しながら進めていくとよいでしょう。つまり参考用の仮テクスチャです。

選択中の面では、緑色の点がある左から2番目上から2番目の色が指定されている

また、各面の座標を指定するにあたっては、上記のように面のUV座標を拡大率0.0で点にして、その点を各区画の中央に配置するのがおすすめです。

本稿で上の画像に示したようなUVマッピングのやり方については、別記事にて簡単に解説をしてみました。平面マッピングは使えるがUVマッピングは分からんぞいという場合は、こちらの記事を見てみてください。

UVマッピングの簡単な解説 - 玉河日記

4.2. UVマッピングのポイント

光の当たる面、影になる面を意識して、本来は同じ色が塗られているところでも、表現として色を分けて(上向きなら明るくした色を、下向きなら暗くした色を)塗れるようにしておきましょう。

手前がステンレス部を1色で塗った例、奥が明暗を分けて数色で塗った例
奥はコルゲートの凹凸が目立ち、ゲーム的表現として丁度良い(と思っている)

実車で同じ色のところは全部同じ色としても、その通りに同じ色で塗ると少々のっぺりとした印象になってしまいます。色のメリハリをつけて、ゲームの世界にあったコミカルな見た目にするためにも、人間側で気を利かせて色を分けると良いと思います。

また、屋根はよく見える割にどうしても灰色一色になりがちで寂しいので、本当は屋根と同色のベンチレータ等も、一種の表現だと思って少し別の色を割り当てるようにしてみるのも面白いでしょう。

このほか窓のマッピングは、運転室部分と客室部分で分けておく必要があります。これは後述の設定により、夜間発光をさせるためです。

4.3. 3Dファイルの書き出し

さて、マッピングの設定も一通り終わりました。できたモデルを書き出しをしていきます。

ただその前に、縮尺を合わせておきましょう。0.01倍は最後にするとして、0.4倍の縮小だけやっておきます。

拡大を選び、詳細設定から「0に初期化」を選んで拡大縮小の中心を原点に移して、それで拡大率0.4と指定してOKを押します。

これでモデルは、ゲーム内スケールの100倍相当の大きさとなりました。

原点を基準にして0.4倍に

それでは書き出しです。Metasequoiaの有償版を持っている方ならば、保存先を2.2.で作成したMod作業用フォルダにして、拡張子はWavefront (*.obj)に指定し保存すればOKです。保存時にエクルポートの設定画面が表示されますので、拡大率を1.0000×-2桁にすると0.01倍に縮小され、無事ゲーム内のスケールで保存されます。

objファイル書き出しの設定
拡大率以外の右側の設定もこんな風にしておけば良いはず

Metasequoiaの有償版を持っていない場合は、一度.mqoで保存して、3DAceというフリーソフトを使用するとmqoを開いてobjにエクスポートすることができます。そちらも確か拡大率のような設定があったと思うので、0.01倍となるよう設定してください。

さて、これでobjファイルの用意が整いました。

 

5. ゲームへの仮取り込みと彩色

5.1. 仮取り込み

ここまでMetasequoiaでモデル作成やマッピングなどの作業を続けてきましたが、何分もう形ができていますから、そろそろゲームに取り込んでみたくてうずうずうずうずしていますよね?

それでは早速一度取り込んでみましょう。

もっとも、走らせるにはまだ諸々準備が足りていないので、とりあえずはアセットエディターというゲーム内の機能でプレビューをしてみることにします(3Dモデルのビューアみたいなものです)。

ゲームに取り込むために、一つだけファイルを用意する必要があります。まずはメモ帳を開き、以下のように記述してください(●●●の部分は自分のModの名前を入れてください)。

{
  "Dependencies": null,
  "Description": null,
  "Hidden": false,
  "Tags": null,
  "Title": "●●●"
}

そしてエンコードUTF-8にして、適当な名前を付けてMod作業用フォルダに保存します。今度はエクスプローラーの方で、今作られたテキストファイルの名前を、拡張子ごと「mod.json」に変更してください。

このmod.jsonを作成したことで、Voxel TycoonがMod作業用フォルダをModの格納場所として認識してくれるようになります。

それではここでようやっとVoxel Tycoonを起動してみましょう。メニュー画面になったら、「アセットエディター」を選択します。

ここまでの作業が正しければ、「Modを選択」という画面の中に、「●●●」(つい先ほど入力したModの名前)が出てくるはずです。それを選択します。

すると下のような画面になります。

作成していたobjファイルが表示される

Mod作業用フォルダに保存したobjファイルが(複数あるならば一覧となって)表示されるはずです。

では出てきたそれをクリックしてみましょう。

クリックをするとモデルが表示される。マウスでぐりぐり動かせる。

真っ白な状態のモデルが出てきました。右側にはThis mesh has no paletteと書かれています。これはまだ色の設定ファイルが作成されていないことを表します。

(ところで、ここでやたらと大きく表示されたり小さく表示されたりした場合、どこかの過程でスケールを間違えている可能性があります。上の画像の背景にあるメッシュの映り具合と比較して、このくらいの大きさになっているかどうか確認しましょう)

5.2. 彩色

それでは色を付けていきましょう。先ほどの画面で右下にある「Generate Palette」をクリックしてみます。

「Generate Palette」をクリックすると自動で色が割り当てられる

一気にド悪趣味な車両になってしまいました。もっとも、色は仮色だからまあ良いのです。ここで確認すべきは、色が塗り分けたいところでしっかり分かれているかということです。

塗り分けを確認

作例の8500系電車では、ステンレス(銀色)部分は水色、赤帯の部分は緑色、幌台座(濃い銀色)部分は若草色、Hゴム(黒色)部分は黄土色、幕がある(濃い灰色)部分は紫色……といった風に、色を分けたいところで別の色が割り当てられていることがわかります。

(ステンレス部分と窓の内側部分は同じ色になってしまっていますが、カーソルを当ててみると分かれてハイライト表示されるため、正しく分けられていることが確認できました)

それではそれぞれの部分について正しい色を設定していきましょう。ここからは塗り絵のようで楽しい作業です。

色を指定するときは、指定する箇所をまずクリックします。そして右下のパレットを調整して、色を変更します。一つの手は円と正方形のパレットをクリックしてぐりぐりやりながら丁度良い色合いを探す方法です。もう一つの手は、パレットの上にあるカラーコード入力欄を使って直接色を指定する方法です。後者の場合、先ほどマッピングのときに作った16等分の仮テクスチャで各区画の色のカラーコードを確認して入力していくことで、Metasequoia上で仮置きしていたのと同じ色で着色することができます。

この他、右下のアイコンでは光沢などいろいろと設定することができます。このあたりはよく分からないので、触りながら感覚を掴んでいくと良いと思います。一番上の星のマークはプレイヤーカラーにするかどうか、一番下の太陽のマークは夜間発光です。

色の設定が完了
以降、青帯車に作例見本となってもらいます

色の設定が終わったら、上の方にあるボタンでセーブをしておきましょう。

ここでもう一度Mod作業用フォルダを見てみると、「○○.obj.meta」というファイルが追加されているのではないかと思います。これが「○○.obj」に対する色の設定ファイルになります。このファイルをメモ帳で開いて直接編集することも可能です(反射の設定などはアセットエディター上では数値で設定できないため、各材質で統一させたいときなどは直接編集するとよいでしょう)。

また、このmetaファイルをコピーペーストして「〇〇.obj」の部分を他のobjファイルに書き換えることで、他のファイルにも同じパレットを適用することが可能になります。例えば作例の8500系では、8500形の8500.objに対して作成された8500.obj.metaをリネームして8600.obj.meta、8700.obj.meta、……としていくことで、編成を組むほかの車両も全く同一の彩色を施すことができます(編成の中で色がばらばらだと格好悪いですからね)。

5.3. 色選びのポイント

この節は全くの私論です。

塗る色を選ぶときは、少しひねった色選びをすると良いかもしれません。

たとえば上に挙げた8500系のステンレスの部分は、単なる灰色とするのではなく、ごくわずかに緑がかった灰色に設定しています。黄色や緑の色味を加えることで、少しまろやかな、ややくたびれたような色合いになります。逆に青~紫の系統の灰色にすると、精悍で新車のような印象を与えることができます(公開版ではそうしています)。

また、明暗部は地色とは分けて色を塗るという話は再三してきているところですが、ここで塗る色も少しひねってみると良いです。

地色を単に明るく/暗くした色を塗るのではなく、

  • 明部は明るく、かつ色相を少し黄色に寄せる
  • 暗部は暗く、かつ色相を少し青色に寄せる

といったことを意識してみると、光と影との対比が自然に強調されて、より良い印象を与えると思います。ぜひ試してみてください。

 

6. ゲームプレイに取り込むための設定

6.1. trainunitファイルの作成

ここまで来たらあと少しです。このtrainunitファイルを作成すればとりあえずゲームで走らせられるようになり、次節で取り上げるpassengerstoragesファイルを作成すれば乗客も乗ってほぼ完成となります。終わりが見えてきましたね。

以下に20Mの電車用のtrainunitファイルの構文例を載せます。メモ帳を開いてとりあえず下の構文をコピーペーストしてみてください。そしてMod作業用フォルダにエンコードUTF-8で保存して、拡張子をtrainunitに変更し「(車両名).trainunit」というファイルにしてください。

● ●で囲んである部分は各車両に合わせて設定します。(後述)

{
  "Smokes": null,
  "Bogies": [
    {
      "Uri": "base/double_axle.trainbogie",
      "Offset": 1.2,
      "Anchor1": true,
      "Anchor2": false,
      "Secondary": false
    },
    {
      "Uri": "base/double_axle.trainbogie",
      "Offset": -1.2,
      "Anchor1": false,
      "Anchor2": true,
      "Secondary": false
    }
  ],
  "AudioUri": "base/electric.trainaudio",
  "Cab": null,
  "Type": "Electric",
  "Length": 4.0,
  "VelocityLimit": ●110.0●,
  "Power": ●520.0●,
  "Weight": ●36.0●,
  "Price": null,
  "PriceMultiplier": null,
  "RunningCosts": null,
  "RunningCostsMultiplier": null,
  "Liveries": [
    {
      "MeshUri": "●TKKtest2/8500.obj●"
    }
  ],
  "Coupling1Uri": "base/common.traincoupling",
  "Coupling2Uri": "base/common.traincoupling",
  "Hidden": false,
  "Submeshes": null,
  "AnimationReferenceWheelRadius": null,
  "ResearchUri": null,
  "Explosive": false,
  "ExplosionForce": null,
  "Tags": [
    "steam"
  ]
}

"VelocityLimit":最高速度(km/h)
"Power":出力(kW)
"Weight":自重(t),
"MeshUri":(Mod作業用フォルダのフォルダ名)/(objファイルのファイル名).obj

この他、車両長が短い場合には「"Offset": 1.2,」「"Offset": -1.2,」(ボギーと車体の接合位置)、「"Length": 4.0,」(全長)のあたりの値を適宜調整してください。

さてこれでもう一度Voxel Tycoonを起動させます。作成したModをONにして適当にマップを開いてみて、適当に車両基地を建てましょう。

車両基地で車両選択画面を開くと、作成した車両が一覧の中に出てくるはずです。

車庫の車両選択画面に作成した車両が表示される

早速車両を購入して出庫させてみます。

線路に載った!

もうこれで満足してしまいそうになりますね。1時間くらいは眺めていられると思います。

なお、trainunitファイルはもっといろいろと設定をできるのですが、本稿では(既にかなり長い記事となっているので)かなり雑に説明をしました。内容についてはほぼ「コピペをしてくださいね」ぐらいしか書いていませんしね。

とりあえず線路に車両が載った興奮が鎮まってきたら、公式のドキュメントを一読して、試行錯誤しながらいろいろ細かな設定をしてみることをおすすめします。

docs.voxeltycoon.xyz

(例によって英語ですので、要点だけでも紹介したら良いのかなという思いはありますが、それはまた別の機会にします)

6.2. passengerstoragesファイルの作成

今度は作った車両に客が乗り込めるようにします。

{
  "Items": {
    "base/passenger.item": null
  },
  "TargetUri": "●TKKtest2/8500.trainunit●",
  "MaxWeight": ●20.4●,
  "LoadingSpeedMultiplier": 1.0,
  "UnloadingSpeedMultiplier": 1.0
}

"TargetUri":(Mod作業用フォルダのフォルダ名)/(trainunitファイルのファイル名)
"MaxWeight":積載量(t)
→※乗客の場合は1人0.15tとして計算すると数が合うようです

このように記述されたファイルを作って、先ほどと同様にリネームして「(車両名).passengerstorages」という名前にします。

客のアイコンが表示された

もう一度Voxel Tycoonを起動して車両を走らせてみると、今度は人のアイコン(あるいは真っ白なアイコン)とともに0/(定員)という表示が出てきます。

これで駅と駅の間を走らせれば、きちんと客も乗れるようになりました。

 

なお、今回は乗客を乗せる設定ファイルということでpassangerstoragesファイルを作成しましたが、貨物などを載せたい場合には他の設定ファイルを(でも大体同様の手順で)作成することになります。

  • storagesファイル(貨物等の設定、積載により見た目の変化を伴わない有蓋貨車などに使う)
  • heapstoragesファイル(石炭や鉱石などのばら積み貨物の設定、座標等を設定することにより荷台上に貨物が山状に積まれるようになる)
  • stackstoragesファイル(木材や鉄材などの貨物の設定、座標等を設定することにより荷台上に貨物が1つ1つ積まれるようになる)

これらの設定ファイルは、同じ車両に対して複数設定することもできます。つまり、ある時はばら積みの鉱石を積み、ある時は鋳造された鉄材を積むというようにも設定できます。ただ、ゲーム内で1車両が1回に積めるのは1種類のみで、旅客と荷物を一緒に運ぶ合造車のような設定は今のところできないようです。

 

ともあれ、これで乗客も乗れるようになりましたので、作った車両を使ってゲームを楽しめるようになりました。

6.3. 編成の設定をする

編成で走らせる車両を作っている人は、最後に編成を組むための設定をしましょう。作るのは、編成単位での配置をできるようにするためのtrainrecipeファイルです。

記述例は以下のようになります。

{
  "Sections": [
    {
      "Count": null,
      "MinCount": null,
      "MaxCount": ●3.0●,
      "Units": [
        {
          "Uri": "●TKK/7500.trainunit●",
          "Flipped": false
        },
        {
          "Uri": "●TKK/7200.trainunit●",
          "Flipped": false
        }
      ]
    }
  ],
  "ResearchUri": "base/electric_engine_2.research",
  "Hidden": false,
  "Tags": [
    "steam"
  ]
}

"Sections":セクション(設定の単位)
"MaxCount":そのセクションをいくつまで重ねられるか
(例:セクションがTc-McでMaxCountが3なら、Tc-Mc+Tc-Mc+Tc-Mcの6両編成まで設定できる)
"Uri":編成に含まれる車両の(Mod作業用フォルダのフォルダ名)/(trainunitファイルのファイル名)

セクションはいくつか重ねることも可能です。

たとえば1セクションにTc、2セクションにMc1-Mc2(Min1Max3)、3セクションにTcと設定することで、4両、6両、8両の編成を設定することができるようになります(この例は東急8000系ですね)。

なお、trainunitの「"Hidden": false,」をtrueに変えると、車庫の車両配置画面で車両単体では表示できなくなり、編成単位でのみ配置できるようになるというように制限をかけられます。

 

これで編成を組む車両も作業完了です。お疲れ様でした。

個人で楽しむのならばこれで作業終了として、後の作業は気が向いたときにやれば十分でしょう。

 

7. 公開をするならば

もし作成したModをSteamのワークショップで公開したいと考えている場合は、体裁を整えておかねばなりません。

 

まず、今の状態では車両の名前がファイルのパスをそのまま表示するようになっていると思います。

これを正しく表示するように直しましょう。

最初に以下のような内容の「en.strings」ファイルを作成します。

{
  "LocaleUri": "base/en.locale",
  "ItemsUri": "(Mod作業用フォルダのフォルダ名)/en.strings.json",
  "Items": null
}

次いで以下のような内容の「en.strings.json」ファイルを作成します。

{
"●TKKtest2/8500.trainunit●#DisplayName": "●Tokyu Deha-8500●",
"●TKKtest2/8600.trainunit●#DisplayName": "●Tokyu Deha-8600●",
"●TKKtest2/8700.trainunit●#DisplayName": "●Tokyu Deha-8700●",
"●TKKtest2/8800.trainunit●#DisplayName": "●Tokyu Deha-8800●",
"●TKKtest2/8900.trainunit●#DisplayName": "●Tokyu Kuha-8900●",
"●TKKtest2/tkk8500.trainrecipe●#DisplayName": ●"Tokyu 8500series"●
}

「#DisplayName」の前に名前を記述する対象を示し、「:」以降にその表示名(英語名)を記述します。trainunitだけではなく、trainrecipeの方も表示名を設定できます。

同様に「ja.strings」「ja.strings.json」ファイルを作成すれば、日本語の表示名を設定することもできます。

設定するのは日本語だけでも良いのですが、元が英語のゲームですから、原作へのリスペクトも込めて(英語圏の人たちにも使ってほしいとの希望も込めて)英語の表示名を入れておくのがよいでしょう。

 

そして、5.1. でかなり雑に用意した「mod.json」も少しいじっておきましょう。「Description」の項には二重引用符付きで英語で説明を書きます。また、Tagsの欄にはタグを列挙します。どのようなタグがあるかというのはSteamのワークショップを見ると分かります(それ以外に何か方法はあるのですかね)。

 

ファイルの構成も少し整えておきましょう。今はMod作業用フォルダ直下に全てのファイルを配置していると思いますが、Contentの中にあるbaseのフォルダなども参考にしながら、いろいろ中にフォルダを作って分かりやすいようにすると良いでしょう。

なお、Mod作業用フォルダ内にフォルダを作った場合でも、上のen.strings.jsonにおける「TKKtest2/8500.trainunit」のようなパスの指定は、階層を追加せずそのままで問題ありません。

 

そのほか、諸々分からないことがあった場合には公式のドキュメント(Creating your first locomotive mod - Voxel Tycoon Modding Documentation)を見るか、baseのフォルダの中身を見て真似するのが良いと思います。本稿では簡単のために省略したことも多いので、特に公式のドキュメントは(DeepLの翻訳にかけながらでも)関係する部分を一読した方が良いと思います。

 

公開をする時には、メインメニューの「MOD」の中に自分のModが出ていて、そこに「公開」というボタンがあり、このボタンから公開をすることができます。ボタンを押すとSteamのページに飛び、英語と日本語(と書けるなら他の言語も)の説明文などを書いた後にめでたく公開となります。

 

最後にこれは余計なお世話ですが、もし公開する場合には、車両1車種だけではなく、色々なものをセットにすることをおすすめします。

Voxel Tycoonのワークショップでは、世界各地の人々が色々なModを日々公開しているので、車両を単体で出すと日本のユーザー(まだかなり少なそう)の注目を集めることができても、間もなく埋もれていってしまいそうです。

そのため、日本の鉄道自体には、あるいはその会社の鉄道にはそれほど興味がない人々にも「この車両は自分のワールドを走らせてみたい」「こんな風景は自分のワールドにも欲しい」と思わせられると良いのでしょう。

なお私のおすすめは、駅(ホーム)や駅舎を同梱することです。

私の東京急行Modは、米バッド社譲りのステンレス無塗装で逞しい銀色電車が外国の都市の鉄道風景とも調和するからでしょうか、公式Twitterで流れてくるスクリーンショットでもたまに見かけられるので静かににんまりしています。

最近は公式のプロモーションビデオに「Unoki Sta.」(鵜の木駅駅舎)が映っていたり、(実はかつての高津駅をモチーフにした)高架駅をうまく使っている作例などを見かけたりもしたので、「Tokyuは知らないけれどもTokyu packは入ってるぜ」というユーザーがもっと増えたら面白いなと、またそういうModが増えてほしいなとも思っています。

 

今は箱根登山鉄道と東急の旧型車しかないという謎の状況なので、王道を往く国鉄のModとかも出てきてほしいですね。