> 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/tutorial-20200121/export.md).

# TpF1モデルとして出力する

{% hint style="warning" %}
この手順は、2020/02/07 以前に公開していた古い手順です。過去に MOD 制作にトライした方のために残していますが、これから新しい MOD を制作する場合は、新しい [はやめぐり](/tpf2-mod/tutorial/hayameguri.md) の手順をお勧めします。
{% endhint %}

モデリングとテクスチャ作成が完了したので、モデルを TpF1 モデルとして出力します。この作業は次の手順で行います。

* Blender 2.80 から、Blender 2.79 に向けてモデルをエクスポートする。
* Blender 2.79 で、エクスポートしたファイルをインポートする。
* Blender 2.79 上で、TpF1モデル出力用の設定を行う。
  * 「TpFオブジェクト」を使って、オブジェクトに親子関係を設定する。
  * マテリアルの種別を指定し、使用する画像ファイルを設定する。
* Blender 2.79 から、TpF1モデルをエクスポートする。
* モデルビュアーで動作確認する。

## 1. Blender 2.79 に向けてモデルをエクスポートする

TpF1モデルは Blender 2.79 から出力する必要があるため、まずは Blender 2.80 で作成したモデルを Blender 2.79 に移さないといけません。残念ながら、Blender の標準の保存ファイル（.blend）は 2.79 と 2.80 で互換性がないため、モデルを移すにはインポート/エクスポート機能を使い、別のファイル形式を経由して受け渡す必要があります。

**インポート/エクスポートに使えるファイル形式はいくつかありますが、私が試したところでは Collada ファイル（\*.dae）で受け渡すと最も多くの情報を保持できました。**&#x3057;たがって、ここでは Collada ファイルを利用する方法を紹介します。

{% hint style="info" %}
Blender 以外のモデリングソフトを使う場合でも、Collada でエクスポートすることで、このチュートリアルの手順を実行できます。主要なモデリングソフト（メタセコイアなど）は Collada の出力に対応しています。
{% endhint %}

Collada でエクスポートするのは簡単です。メニューの「ファイル」→「エクスポート」→「Collada（デフォルト）(.dae)」を選択し、エクスポート画面を表示させます。次に、右上の歯車アイコン（設定）をクリックし、設定パネルを開きます。設定は次の通りにします。

| タブ | 項目       | 値             |
| -- | -------- | ------------- |
| 形状 | モディファイアー | チェック。「ビュー」を指定 |
| 形状 | 三角面化     | チェック          |

設定ができたら、ファイル名を指定してエクスポートしてください。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7sge4geFHuNw6JbiV%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-Lyy2_vJfkpqqeX8U426_image.jpg?alt=media\&token=93a75321-86e8-478c-b5a1-f09b8cb81411)

## 2. Blender 2.79 でファイルをインポートする

Blender 2.79 を開いてください。まず最初に、デフォルトの立方体オブジェクトを消しておく必要があります。オブジェクトを選択し、Xキーを押してオブジェクトを削除してください。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7shzYHzwDWMqcd-0d%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-Lyy3NplTJpeuoeq7RTx_image.jpg?alt=media\&token=860e7dba-0110-4404-9671-d3a9a9552034)

続いて、メニューの「ファイル」→「インポート」→「Collada（デフォルト）(.dae)」を選択し、ファイルダイアログで先ほどエクスポートしたファイルを選択してインポートしてください。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7sjSCgFkDxQbhuxUr%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-Lyy3okhmFo4vSeebmAz_image.jpg?alt=media\&token=bb3bedbb-908d-4245-bf6e-a3dde3dd5984)

インポートできたら、右上のアウトライナーですべてのオブジェクトが揃っているか、マテリアルが設定されているかを確認してください。

## 3. TpF1モデル出力用の設定を行う

TpF1モデル出力用の設定として、次の2つを行います。

* 「TpFオブジェクト」を使って、オブジェクトに親子関係を設定する。
* マテリアルの種別を指定し、使用する画像ファイルを設定する。

### 3.1. オブジェクトに親子関係を設定する

TpF1モデルでは、オブジェクトは機能のまとまりごとに、次のような階層構造を持っています（詳細は [車両モデルの構成](broken://pages/-Lyij7Lf5f3wILg0s6Sb) を参照）。

* **モデル**: 車両1両分を表すモデル。
  * **LOD**: ひとつのLOD (Level Of Detail) 単位を表すグループ。LOD を複数指定しておくと、ゲーム内において視点からの距離に応じてLODが切り替わります。ここでは切り替えを使用しないため、LODを1つだけ作成します。
    * 車体オブジェクトなど、車両全体の動きに沿って動くオブジェクト。
    * **台車グループ**: 台車と車輪のオブジェクトが入ったグループ。車両に沿って移動しますが、独自の回転軸を持ちます。台車の数だけグループを作成します。
      * 台車オブジェクト。
      * 車輪オブジェクト。

Blender の TpF1モデル出力アドオンには、モデル・LOD・台車グループを表すオブジェクト種別が追加されており、これを使って Blender 上でモデルの階層構造を構築できます。

まずはモデルオブジェクトを追加します。オブジェクトモードになっていることを確認して、フッターの「追加」→「TF Object」→「Model」をクリックして、モデルオブジェクトを追加してください。「エンプティ」という名前のオブジェクトが追加されます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7snf7RwDJpySANIZf%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-Lyy9KkHyJVhCZBq57l1_image.jpg?alt=media\&token=26f2e648-339b-4df1-b979-95d03a840303)

オブジェクトが追加されたら、まずは名前を設定してください（ここでは Demo とします）。また、原点が (0, 0, 0) からずれている場合は、(0, 0, 0) に移動させてください。

次に LOD オブジェクトを追加します。モデルオブジェクトと同じように、「追加」→「TF Object」→「Lod」をクリックして、LOD オブジェクトを追加してください。名前は「Lod0」としておきます。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7sp7z1Ku6RAV9C6yq%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-LyyAPzBkYeomiSXze3n_image.jpg?alt=media\&token=25487d91-b4c2-43b7-a256-51c7d533a7d4)

LOD オブジェクトが追加できたら、モデルオブジェクトとの階層構造を設定します。アウトライナー画面上で、まず LOD オブジェクトを選択し、続いて Shift キーを押しながらモデルオブジェクトを選択します。その状態で、フッターの「オブジェクト」→「親」→「オブジェクト」をクリック（またはショートカットキー Ctrl+P）し、「ペアレント対象」画面で「オブジェクト」を選択します。成功すると下の図のように、LOD オブジェクトがモデルオブジェクトの下に移動します。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7sqzckTx81cZBuaM7%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-LyyBI7I8B73WnyDyeld_image.jpg?alt=media\&token=d26683d4-6130-40ec-9215-3605f3dbe055)

台車グループも同様です。「追加」→「TF Object」→「グループ」でグループを追加し、名前を変更して（Demo\_BogieF）、LOD オブジェクトの下に入れてください。台車はグループを2つ作る必要があります（Demo\_BogieF、Demo\_BogieR）。

{% hint style="info" %}
複数のオブジェクトを子供にするときには、子供にするオブジェクトをすべて選択し、親となるオブジェクトを最後に選択してから「親」メニューを実行すると、一度に階層構造を設定できます。
{% endhint %}

**台車グループオブジェクトを追加したら、オブジェクトの原点を台車の中心に移動してください。**&#x3053;れを行わないと、台車は正しい軸で回転しません。

最後に、これまでに作成した車体・台車・車輪・内装オブジェクトを、適切なオブジェクトの下に入れます。車体と内装は LOD オブジェクト、台車と車輪は前後それぞれの台車グループの下です。

すべての設定が終わると、アウトライナーが次の状態になっているはずです。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7ssiGjPT1dtWDVkxW%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-LyyDvIJO7x0-cJWILm3_image.jpg?alt=media\&token=4c09b8ab-9141-4884-b5fd-3d9d10a622fe)

### 3.2. マテリアルの種別と画像ファイルを設定する

次に、TpFモデル仕様として定義されているマテリアルの種別を指定し、使用するテクスチャ画像ファイルを指定します。**この設定は Blender モデルのマテリアル設定とは別に、プロパティエリアの「Train Fever Material」と「Train Fever Texture」の項目で設定します。**

まず、車体オブジェクトを選択した状態で、プロパティエリアのマテリアルタブを開いてください。下の方に、「Train Fever Material」というセクションがあります。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7su5iKG7ak6bgPB59%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-LyyFUS42H7iirCvJCk3_image.jpg?alt=media\&token=ea004581-7cb1-4db6-9ec2-50cfbcf95de3)

ここで、**タイプを「PHYS\_TRANSPARENT」に設定してください。**&#x50;HYS\_TRANSPARENT は、透過付きカラーテクスチャとMGAテクスチャの2枚を使用するマテリアルの種別です。

次に、**「テクスチャ」リストの中の「map\_albedo\_opacity」が選択された状態にして**、その下にある「Train Fever Texture」の中の「画像」のボックスをクリックし、カラーテクスチャの画像ファイルを選択します。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7sx8CjiEbpeqoZhgm%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-LyyGkoB0EUlHR6Z51VV_image.jpg?alt=media\&token=42427a19-3473-4640-b299-f7f2efe22b9f)

続いて、「テクスチャ」リストの「map\_metal\_gloss\_ao」が選択された状態にして、同じように今度はMGAテクスチャの画像ファイルを選択します。

リストに画像ファイルが表示されない場合は、まだ Blender 上にテクスチャが読み込まれていない状態です。テクスチャタブを開き、テクスチャリストの空きスロットを選択した状態（下図）で「新規」をクリックしてください。「画像」セクションの「開く」ボタンをクリックして画像ファイルを開くと、上の図のリストに新しい画像ファイルが増えているはずです。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7t-UQioarM-Hg7YLY%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyxxSJfecZzQ4xZvLFu_-LyyHsJY_Wm7tvOVmPNG_image.jpg?alt=media\&token=f18a2fcc-211d-4994-a9d3-2b9f5c8e8ffa)

これで車体オブジェクトのマテリアルの設定が終わりました。台車オブジェクトと車輪オブジェクトは車体オブジェクトと同じマテリアルを使用しているため、新たに設定することはありません。それぞれのオブジェクトを選択してマテリアルタブを開き、値が設定されていることを確認してください。

内装オブジェクトだけは別のマテリアルが指定してあるので、車体オブジェクトとは別に指定しなければいけません。内装オブジェクトを選択した状態で、マテリアルタブを開いてください。**今度は、マテリアルのタイプには「PHYSICAL」を指定します（透過なしカラー+MGA）。**&#x7A93;のあるオブジェクトと内装オブジェクトのマテリアルタイプをこの組み合わせにすると、追加の設定なしで内装が正しく描画されます（詳細は [オブジェクトの描画順](broken://pages/-LyxuYGKxVUSclW6pKWv) を参照）。

種別を設定したら、車体オブジェクトと同じように画像ファイルを指定します。「map\_albedo」を選択した状態でカラーテクスチャの画像ファイルを、「map\_metal\_gloss\_ao」を選択した状態でMGAテクスチャの画像ファイルを設定します。

{% hint style="info" %}
もちろん、車体オブジェクトと内装オブジェクトで異なるテクスチャ画像ファイルを使うこともできます。
{% endhint %}

これで、TpF1モデル出力用の設定は完了です。

## 4. TpF1 モデルをエクスポートする

いよいよTpF1モデルをエクスポートします。まず、**オブジェクトモードですべてのオブジェクトを選択し**（ショートカットキーA）、**モデルオブジェクトがアクティブな状態にします**（アウトライナーでモデルオブジェクトをShift+左クリック2回。）。この状態で、メニューの「ファイル」→「エクスポート」→「Train Fever/Transport Fever (.mdl, .grp, .msh)」をクリックし、エクスポート画面を表示してください。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7t1Ma0HbIRtKACNQ0%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyyKun_kvFIZ8nconH9_-LyyMLGo8am-qleqMxdo_image.jpg?alt=media\&token=5c0f8a04-5e67-44e1-8371-2622cc2bad96)

フォルダ名が作業フォルダ、ファイル名が `(モデルオブジェクト名).mdl` になっていることと、左下の「Export TF-Object」セクションの内容が下図のようになっているのを確認して、「Export TF-Object」ボタンをクリックしてください。

![](https://3441486862-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LyQ3h1tSLcHh5QA6W1V%2F-Lz3DHe7SCoAEo0vzhM6%2F-Lz7t2xHKvHGSMN4R1MR%2Fassets_-LyQ3h1tSLcHh5QA6W1V_-LyyNr4wBUfeRwBHXFnj_-LyyS2lnr0ufJraxc0Ba_image.jpg?alt=media\&token=f32b07c0-ea70-4b54-95cd-01657b31da77)

作業フォルダの下に res フォルダが作成され、その下にTpF1モデルのファイルが出力されます。出力が成功すれば、次のようなファイルツリーで出力されるはずです。ファイルに欠けがないか確認してください（問題がある場合は [トラブルシューティング](/tpf2-mod/appendix/toraburushtingu.md) を参照してください）。

* res
  * models
    * group/vehicle/train
      * Demo\_BogieF.grp
      * Demo\_BogieR.grp
    * material/vehicle/train
      * Demo\_Base.mtl
      * Demo\_Interior.mtl
    * mesh/vehicle/train/Demo
      * Body.msh
      * Body.msh.blob
      * Bogie.msh
      * Bogie.msh.blob
      * Interior.msh
      * Interior.msh.blob
      * Wheel.msh
      * Wheel.msh.blob
    * model/vehicle/train
      * Demo.mdl
  * textures/models/vehicle/train
    * Demo\_Color.tga
    * Demo\_MGA.tga

この res フォルダは TpF1 の res フォルダとして有効な構成になっています。つまり、この res フォルダの内容を TpF1 の res フォルダに上書きするか、MOD としての構成を整えて mods フォルダに配置すれば、TpF1 で読み込むことができます。
