> For the complete documentation index, see [llms.txt](https://nosrith.gitbook.io/tpf2-mod/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nosrith.gitbook.io/tpf2-mod/tutorial/build.md).

# TpF モデルとして組み立てる

3Dモデルとテクスチャが完成したら、TpFモデルエディタを使って TpF2 向けのモデルを組み立てていきます。

## 1. MOD フォルダを作成する

まずは、TpF2 モデルを MOD として格納するためのフォルダを作成します。ユーザデータフォルダの staging\_area フォルダの下にフォルダを作成してください。**MOD フォルダのフォルダ名は、「(ユーザ名)\_(モデル名)\_(バージョン番号)」とする必要があります。**

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08mydr0F0_UaBJL1yX%2Fimage6.jpg?alt=media\&token=ca808e43-1c33-4bbd-8642-24076b35b984)

フォルダができたら、その中に「mod.lua」という名前のファイルを作成してください。そしてファイルをテキストエディタで開き、次の内容を入力して保存してください。

```
function data()
  return {
    info = {
      name = "Demo",
      description = "This is a demo",
      authors = {
        {
          name = "Nosrith",
          role = "CREATOR",
        },
      },
      tags = {"vehicle"},
    },
  }
end
```

name や description にはご想像の通り、MOD の名前や説明、作者の名前などが入ります。ご自身の好きな名前を付けてください。

この状態で TpF モデルエディタを起動すると、左上のコンボボックスに新しく追加した MOD フォルダが追加されています。ここに、これまで作成した 3D モデルやテクスチャを設定していきます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08mG8F37OvAQdq77bm%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-M-ujbEVAk4jRiWZeOiI_-M-yiaPvpW_reWbOiDor_image.jpg?alt=media\&token=2f530e9f-b5a3-4b63-9167-3394a71c9821)

## 2. 3D モデルを Blender からエクスポートする

次は、Blender で作成した 3D モデルを TpF モデルエディタにインポートするために、TpF モデルエディタが読み込み可能な形式（FBX）でモデルをエクスポートします。

まずは、オブジェクトに設定しているモディファイアーをすべて適用する必要があります。Blender 上ですべてのオブジェクトを選択し、ヘッダーの「オブジェクト」→「変換」から「カーブ/メタ/サーフェス/テキストからメッシュ」を選択してください。すべてのモディファイアーがオブジェクトに適用されます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M09UmlFQMq3nO0E6r3v%2F-M0DR6CnQUOEU_zO5myM%2Fapply_all_modifier.jpg?alt=media\&token=1f2dc4d9-d426-4f7c-91b0-c9b87357d3f3)

{% hint style="warning" %}
オブジェクトに設定していたモディファイアーは、一度適用されると削除されます。あとで修正作業を行うときにはモディファイアーがある方が便利なので、このエクスポートの手順が終わったら、「編集」→「元に戻す」を使ってモディファイアーを復元することをお勧めします。
{% endhint %}

モディファイアーを適用したら、エクスポートの操作に移ります。Blender の「ファイル」メニューから「エクスポート」→「FBX (.fbx)」を選択してください。エクスポート用のダイアログが開きます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M09UmlFQMq3nO0E6r3v%2F-M0DSQlE7YcFcoN2wnhq%2Fopen_export_dialog.jpg?alt=media\&token=1d0a4806-7394-446f-b161-9823549a2a78)

ダイアログが開いたら、まずは保存先フォルダと保存ファイル名を次の通り設定してください。フォルダが存在しない場合、ダイアログ内のボタンでフォルダを新規作成できます。

| 設定項目    | 設定値                                        |
| ------- | ------------------------------------------ |
| 保存先フォルダ | (ユーザ設定フォルダ)\fbx\_import\vehicle-train-demo |
| 保存ファイル名 | vehicle-train-demo\_lod0.fbx               |

{% hint style="info" %}
**エクスポートするフォルダ名・ファイル名は、名前の形式が厳密に決まっています。**&#x4E0A;の設定では、次のような意味になります。

* vehicle
  * 乗り物のモデルであることを示します。他には station や building などがあります。
* train
  * 動力付きの鉄道車両であることを示します。他には bus や plain などがあります。動力なしの場合は waggon になります。
* demo
  * モデルファイルの名前で、**制作者が自由に決められますが、他の MOD と重ならない名前にしてください。**&#x3053;の名前はファイル名またはフォルダ名としてだけ使われ、ゲーム内で使われることはありません。
* lod0
  * Level 0 の LOD モデルであることを示します。LOD については後ほど説明します。
    {% endhint %}

フォルダとファイル名を指定したら、ダイアログの右上にある歯車マークのボタンを押して、設定画面を開いてください。そして、**「トランスフォーム」グループの中にある「トランスフォーム適用」にチェックを入れてください。**

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08nmTtP1QoQUsTsCQ6%2F-M095zDnDU1zoUugiYVF%2Fimage4.jpg?alt=media\&token=756cf3c8-d3c6-4156-81e3-d458647773e5)

ここまでできたら、「FBXをエクスポート」ボタンを押して、モデルをエクスポートしてください。エクスポートが終わったら、メニューの「編集」→「元に戻す」で、適用したモディファイアーを元に戻してください。

## 3. モデルエディタに 3D モデルをインポートする

Blender からモデルがエクスポートできたら、次はモデルエディタに 3D モデルをインポートします。モデルエディタを開き、左上のコンボボックスで MOD フォルダ名が選択されている状態で、ヘッダーの「IMPORT」→「fbx」→「vehicle-train-demo」から、先ほどエクスポートしたファイル「vehicle-train-demo\_lod0.fbx」を選択してください。

ダミーのテクスチャが張られた 3D モデルが表示されたら、インポートは成功です。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08mMG4PaxlKKlp4rXT%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-M-ujbEVAk4jRiWZeOiI_-M-ytvwRZZkZTJfLboVQ_image.jpg?alt=media\&token=0c06c991-6c89-4679-be73-766c76e117a7)

## 4. テクスチャファイルを配置する

続いて、[テクスチャを作成する](/tpf2-mod/tutorial/texture.md#4-blender-detekusuchawosuru) で作成したテクスチャ画像ファイルを、MOD フォルダの下に配置します。

MOD フォルダ内の `res\textures\models\vehicle\train\demo` にフォルダを作成して、カラーテクスチャと MGA テクスチャの2つの画像ファイルをコピーしてください。「demo」の部分は自由に決められます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08n-fII0ZJF9OUVxRL%2Fimage7.jpg?alt=media\&token=5476eb11-c653-42b7-bdf9-068195b02265)

## 5. マテリアルを設定する

テクスチャ画像ファイルの用意ができたら、モデルにマテリアルを設定していきます。TpF モデルのマテリアルは、一般的な 3D モデルのマテリアルとは異なった構造になっており、モデルエディタ上で設定する必要があります。

まず、モデルエディタのヘッダーにある「MATERIALS」をクリックしてください。マテリアルエディタ画面が開き、[3Dモデルを作成する](/tpf2-mod/tutorial/model.md#6-materiaruwosuru) で設定したマテリアルの一覧と、選択中のマテリアルの設定項目が表示されます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08n14xWsQkR_NI1Typ%2Fimage8.jpg?alt=media\&token=a1eba94a-a540-4843-9549-f4a0302d16a5)

まずは外装マテリアルの設定を行います。「vehicle/train/demo/Demo\_Exterior.mtl」が選択されていることを確認したら、右端真ん中ほどにある歯車アイコンをクリックし、リストの中から「Convert to "PHYS\_TRANSPARENT"」を選択してください。

{% hint style="info" %}
リストにある「PHYS\_TRANSPARENT」などは、TpF におけるマテリアルの種別を表しており、透過・発光の有無やテクスチャの数など、種別によって設定できる項目と効果が変わります。マテリアルの種別の詳細は、MOD 仕様の詳細ページを参照してください。
{% endhint %}

次に、「Map albedo」の項目を展開し、「Filename」の項目の入力欄で、[テクスチャを作成する](/tpf2-mod/tutorial/texture.md#1-kartekusuchawosuru) で作成したカラーテクスチャのファイルを指定してください。ファイルを指定すると、モデルにテクスチャが適用されます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08mmWuMPZSCcV0H2hm%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-M-ujbEVAk4jRiWZeOiI_-M-z2ia8YcSS3k_F_p_5_image.jpg?alt=media\&token=d52b9150-7a31-40a6-ab77-eb0289b0543f)

続いて、MGA テクスチャも設定します。「Map metal gloss ao」の項目を展開し、「Filename」の項目の入力欄で MGA テクスチャのファイルを指定してください。モデルがメタリックになるはずです。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08mnng2JTqfsEp7DGY%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-M-ujbEVAk4jRiWZeOiI_-M-z35Y8PzGblLYDf4Pr_image.jpg?alt=media\&token=02c39b18-9901-4af4-b5ee-7d79995e0c67)

外装マテリアルが設定できたら、今度は内装マテリアルを設定します。マテリアルエディタ画面を開き、「vehicle/train/demo/Demo\_Interior.mtl」を選択してください。内装マテリアルでは、マテリアルの種別を「PHYSICAL」にして、カラーテクスチャのみを割り当てます。設定後の画面は次のようになります。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-M08kqG3uqvEYY2g6-Yi%2F-M08mpDS4epwKyOWzP21%2Fimage.jpg?alt=media\&token=93539d14-c285-4fa9-93a6-6b4c92843fa2)

ここまでできたら、いったん TpF モデルのデータを保存しましょう。ヘッダーの「SAVE」をクリックすると、3D モデルやマテリアルなどのモデル情報が MOD フォルダ下にファイルとして出力されます。

## 6. メタデータを設定する

続いて、車両の性能値などのメタデータを設定します。メタデータはモデルエディタ上で直接編集することもできますが、テキストエディタで編集する方が操作の手数がかからないため、ここではテキストエディタを使用した方法を紹介します。

「SAVE」でモデルを保存すると、MOD フォルダ下の `res\models\model\vehicle\train` の下に demo.mdl というファイルが生成されます（この demo という名前は、Blender からエクスポートする際につけたモデルの名前です）。このファイルをテキストエディタで開いてください。

ファイルを開いたら、下の方にある「metadata = { }」の部分を、次の通り修正してください。

{% code title="demo.mdl（修正前）" %}

```
	metadata = { },
```

{% endcode %}

{% code title="demo.mdl（修正後）" %}

```
	metadata = {
		availability = {
			yearFrom = 0,
			yearTo = 0,
		},
		cost = {
			price = -1,
		},
		description = {
			description = _("This is a demo"),
			name = _("Demo"),
		},
		emission = {
			idleEmission = -1,
			powerEmission = -1,
			speedEmission = -1,
		},
		maintenance = {
			lifespan = 32873,
			runningCosts = -1,
		},
		railVehicle = {
			configs = {
				{
					axles = { "vehicle/train/demo/Wheel_lod0.msh" },
				},
			},
			engines = {
				{
					power = 800,
					tractiveEffort = 100,
					type = "ELECTRIC",
				},
			},
			soundSet = {
				horn = "vehicle/train_steam_old/steam_horn_14.wav",
				name = "train_electric_modern",
			},
			topSpeed = 33.3333,
			weight = 96,
		},
		transportVehicle = {
			carrier = "RAIL",
			loadSpeed = 1,
			multipleUnitOnly = false,
			reversible = false,
		},
	},
```

{% endcode %}

ここではメタデータの各項目の意味は説明しませんが、どれが何を意味しているか、おおよそは理解できるかと思います。自由に値を変更して、どのような効果があるかを確かめてみてください。

修正が終わったら、ファイルを保存してください。

## 7. アイコン画像を作成する

もうあと一息です。ここで、ゲーム内の車両選択画面で表示されるアイコン画像を作成しておきます。

アイコン画像の作成は簡単です。モデルエディタのヘッダーにある「SCREENSHOT」ボタンを押してください。MOD フォルダ下の所定の場所に、アイコン画像のファイルが生成されます。

## 8. ゲーム内で動作確認する

お疲れさまでした！これで、ゲーム内で動作する車両 MOD の作成は完了しました。TpF2 を起動し、新規ゲームの MOD 選択画面を開くと、作成した MOD が選択できるようになっているはずです。MOD を有効にしてゲームを起動し、作成した車両を走らせてみてください。

次の点を確認して、モデルが正しく動いていることを確かめてください。

* 窓の中が透けて見えているか？車内に窓の形の影が落ちているか？
* カーブを通過するとき、台車は線路に沿って動いているか？
* ルートの端の駅に到着したら、車両が反転するか？

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7tcAhsZ4eEiebE77q%2Fimage5.jpg?alt=media\&token=85336378-1b85-4f51-b082-63897a97521c)
