開発者向け文書/車両の製作

Last-modified: 2018-07-12 (木) 02:06:58

このページでは、公式の開発者向け文書を基に鉄道車両の3Dモデリング、およびテクスチャの貼付け方法の基本手順を解説しています。

使用ソフトは主に3DS MaxとAdobe Photoshopが使われていますが、フリーウェアのBlenderやGIMPでも製作が可能です。

作り込む目安

ポリゴン数

列車シムの目玉となる車両のポリゴン数は、三角面換算で機関車で10万、客車で4万、貨車で1.5万から3万ポリが目安です。ポリ数が多ければリアルになりますが、動作はその分重くなります。見た目と動作性能を両立できるのが理想です。

貨車は車種に応じて目安となるポリゴン数が変わってきます。曲面や配管の多いタンク車は3万、特に突起のない無蓋車ならば1.5万ポリ程度ですみます。特に貨車は何十両も併結するのが常ですので、両数が多くても重くならないようにすべしです。

テクスチャの数とサイズ

テクスチャのピクセル数は、256、512、1024、2048など「2の累乗」にしてください。

車体は1024pxや2048px、台車や部品は512px、窓ガラスは256pxが定番です。

各部品のマッピングは、なるべく1枚のテクスチャで完結するようにしましょう。1つのテクスチャを複数のモデルで使えればなお効果的です。

企業ロゴは、透過テクスチャとポリゴンを重ねるといいでしょう。そうすることで、車体テクスチャに描き込むよりもロゴの細かさを損なわずに済みます。ただし、商標権の扱いには気をつけてください。

始める前に

単位の指定

3DS maxやBlenderで制作する際は、各ソフトの1数値を1メートルとして扱うよう構成します。

親子関係

基本的なオブジェクトに関しては、親子関係は持たせなくとも支障はありません。パンタグラフなど親子化が必要なものは、その親子化が機能します。ただし、台車の車輪は装着する台車への子オブジェクト化が必須です。

命名規則

オブジェクト名は厳密な規則があります。最初に詳細度の数値、続いてオブジェクトの表示距離、その後にオブジェクトを識別できる名称を記入します。文字数は最大31文字までです。

オブジェクト名は全て小文字で表記しましょう。オブジェクト名の付け方と凡例は以下の通り。

$_@@@@_name_?
  • $ → 精度(LOD)の値。1とすれば詳細な基本モデルとして扱います。
  • @@@@ → 表示距離を4桁の数字で指定。0500とすれば500m以上離れると表示されなくなります。
  • name → オブジェクト名を入力。基本的に任意ですが、台車等は後述する指定の名称を入れます。
  • ? → 左側で「l」、右側で「r」など、必要な場合に指定します。

一部のオブジェクトは指定済みの名称があります。これに合わせることで用途に合わせた機能を実装でき、青写真での設定が省略できたりできます。#は数字の1桁を現します。

オブジェクト名称
機関車の車体locomotive
炭水車の車体tender
旅客車の車体carriage
貨物車の車体wagon
door##_?
折畳ステップstep##_?
車輪wh##
台車bo##
台車の車輪bo##wh##
燃料の石炭coal
車外の燃料計fuel_level_?
積載貨物全般freight
ばら荷貨物bulk
パンタグラフpanto##
車両番号primarydigits_#
前照灯の前進時の表示lights_fwdhead_#
前照灯の後進時の表示lights_revhead_#
尾灯の前進時の表示lights_fwdtail_#
尾灯の後進時の表示lights_revtail_#

一例として、「3_0128_bo01wh02」の場合、「風景密度(LOD)3以上、表示距離128mまで、1番目の台車に付属する2番目の車輪」という意味と機能を表すことになります。同じオブジェクト名であれば、密度設定や表示距離に応じてそのモデルが置き換わります。

2軸ボギー台車2つの一般的な車両であれば、以下のように親子関係を設定します。以下では風景密度1以上、表示距離1000mの例で表します。

  • 1_1000_bo01
    • 1_1000_bo01wh01
    • 1_1000_bo01wh02
  • 1_1000_bo02wh02
    • 1_1000_bo02wh01
    • 1_1000_bo02wh02
  • 1_1000_locomotive
  • 1_1000_panto01
  • 1_1000_panto02

決まりごと

  • 拡張子ほかファイル名は小文字にします。
  • 出力させないオブジェクトは削除するか、非表示にします。
  • 縮尺調整は全て100%になるよう設定します。
  • 可動・回転オブジェクトは実物通りの位置に配置しましょう。
  • 上面視点で進行方向が上を向くようにし、車体オブジェクトは0,0,0の位置に配置します。車輪の軸間距離や台車中心間距離が前後対称になる位置が望ましいです。
  • 車輪はX軸で回転するよう配置します。
  • 台車は車輪の回転するZ軸の高さが0位置になるように配置します。
  • 縮尺変更の設定をした場合、その設定を標準化して100%になるようにします。
  • 車輪の踏面が高さ0の位置になるようにします。

推奨手順

  1. 資料収集(図面、写真、実取材など)
  2. ビューポートに図面等を下絵で貼り付け
  3. LODが最も詳細なモデルを作る
  4. モデルにUV展開する
  5. ソフトシャドウテクスチャを焼く
  6. モデル用のテクスチャを描く
  7. 材質を設定する
  8. 風景密度に応じたモデルを作り分ける

モデリング

モデリングの基本ルール

  • 寸法は正確に。特に車輪と台車の位置は忠実に置いてください。図面や諸元表を見て正確な位置に配置しましょう。
  • 単純なポリゴンのみを使用してください。スプライン機能はTSではサポートされません。
  • 全てのオブジェクトにUVマッピングを指定しましょう。
  • ポリゴンは三角形面に最適化します。

独立部品

連結器は車体モデルに含まず、独立したモデルを取り付ける仕様になっています。

寸法

寸法関連の諸注意

車両を実物通りに動かすならば、寸法の設定は非常に重要です。車両の図面や諸元表などあらゆる資料から寸法を割り出しましょう。

特に、以下の寸法は正確に探して指定しましょう。

  • 全長
  • 台車間距離
  • 車輪軸距
  • 車輪直径
  • 軌間
  • 緩衝器の位置

車輪寸法

車輪は踏面、フランジを忠実に表現しましょう。車輪は20角形にすれば丸さが表現できます。機関車など大きい車輪がある場合、角数を増やしましょう。

軌間は世界標準の1435mmなど、その車両が走る国や線区に応じて作り分けます。

緩衝器の寸法

欧州の鉄道で使われる緩衝器(バッファ)は国ごとに位置の規格があります。ドイツでは左右間隔1.75m、高さはレール面基準で0.94または1.065mの位置が基本です。バッファの直径は0.37m。

イギリスでは高さ1.05m、左右幅1.73mの規格です。

UVマッピング

ポリゴンにはすべてテクスチャを貼り付ける必要があります。テクスチャの陰影表現が使えるよう、UVマッピングを行いましょう。

表記の細かいロゴマークや車両番号の場合、専用に解像度の高いテクスチャを貼り付けると見た目が良くなります。

読み込みを早くするためにも、1つのオブジェクトに付き、使用するテクスチャ画像の数はなるべく抑えましょう。

テクスチャ貼り付け

プレシェーディング

テクスチャにシェーディングを入れることで、見た目が実感的になります。

E-Light

3ds Maxでは、照明をテクスチャに焼き付ける機能が提供されています。「E-light」と呼ばれるスクリプトがあります。

テクスチャベイク

焼き込みの色を反映したテクスチャを用意し、対応するテクスチャに対応させます。

テクスチャの見た目

車両をリアルに再現するには、きれいな車体だけでなく汚れた車体もあれば実感的です。ただし、あまり汚しすぎた表現は良い印象を与えません。

車体のちょっとした凹みなどは、テクスチャの焼入れにより再現できたりします。

テクスチャ

密度

UV展開はなるべく詰め込まず、余裕を持って開けておきましょう。テクスチャの境目が表示されて違和感が出てしまいます。

ミップマップ

遠くのテクスチャはミップマップでぼやけます。違和感なくぼかすためにも余裕を持ってマッピングしてください。

フォーマット

テクスチャのピクセル数は、32×32、256×256、512×1024、1024×2048など、2の累乗にします。

材質

材質の種類

材質(マテリアル)には、その役目を表す材質名を指定する仕様になっています。用途に応じて使い分けます。

  • TrainBasicObjectDiffuse - 光沢を再現しないもの全般の表現に使います。
  • TrainSpecEnvMask - 客貨車の車体と足回りに使います。
  • TrainBumpSpecEnvMask - 機関車の車体テクスチャに使います。鏡面反射と法線マップに対応します。
  • BlendATexDiff - 窓ガラスを表現します。
  • Tex - 指定すると夜間に自己発光します。客車の車内に使うのが効果的です。

鏡面反射

材質ごとに光沢と鏡面反射の設定に対応。車両の車体では光沢度32、鏡面反射率3で実感的な車体が表現できます。

材質の機能と制約

必要な状況に応じて、一定の範囲で材質の表示を調整できます。

車両番号テクスチャ

各車両個別に数字を割り当て、その数字を車両のモデルに表示できます。

テクスチャ名は「number_#」の形式に、モデルの数字を割り当てる場所に「primarynumber_#」を指定。全体の桁数は末尾から数えます。

桁数の変わるモデルを指定する際は「1_0128_primarydigits_#」のオブジェクトを割り当てましょう。

照明の光

ライト点灯時のライト周りの拡散光は、AddATexの材質名を指定します。点灯判定はオブジェクト名に1_1250_lights_fwdhead、1_1250_lights_revtailのような設定を割り当てます。

アニメーション

キーフレームの設定により、アニメーションが追加できます。扉開閉やワイパーなどで使います。

台車と車輪はオブジェクト名の判定で回転してくれますが、蒸気機関車のロッドは連動する車輪も合わせてのキーフレーム設定が必要です。キーの値は0から16までの17を設定、1キーフレームあたり22.5度回転する形にします。繰り返し設定は次の1回転を順次繰り返すよう、16の次のキーを0に行くよう設定します。

ボルスタレス台車のヨーダンパなども、キーフレーム設定で動かすことになります。

炭水車の石炭の燃料は、満載と空状態の2点のキーフレームで対応します。満載時のキーはどこでも構わないようです。

影モデル

ステンシルシャドウ

通常のモデルに対し、影を落とす用に簡略化したモデルを用意します。

対応するオブジェクトの子要素として「1_0032_shadow_オブジェクト名」のような名称を付けてください。

ソフトシャドウ

影用のテクスチャを用意し、車両の下に平面に貼り付け、実感的に見せるものです。

表示精度

表示距離とポリゴン数

表示状態に応じて軽くするため、対象物に一番近いと詳細に、離れるほどポリゴン数の少ない簡易的になるようモデルを用意し設定します。車両では基本的に3段階あれば十分です。

表示精度の割当

詳細なモデルの子要素として、簡易モデルを割り当てます。

出力

モデル

モデルのメッシュデータは「IGS」形式で出力します。表示されているオブジェクトのみを出力する方式です。

アニメーション

モデルのアニメーションデータは「IA」形式で出力します。それぞれのアニメーションを設定したオブジェクトを選択して出力する方式です。

テクスチャ

テクスチャは出力前に「ACE」の形式に変換しておきます。RailWorksフォルダの「RWAceTool」で一括変換できます。

参照元