# メタデータを設定して仕上げる

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

ここまでで、車両の 3D モデルは完成しました。ここからは、モデルの名前や最高速度などのメタデータを設定し、TpF2 MOD として完成させます。

## 1. モデルファイルを編集する

モデルのメタデータは、[TpF1モデルとして出力する](/tpf2-mod/tutorial/tutorial-20200121/export.md) で出力されたモデルファイル（.mdl）に書き込みます。モデルファイルは、res フォルダの `res/models/model/vehicle/train/Demo.mdl` にあります。このファイルをテキストエディタで開いてください。

![](/files/-Lz7tVIh9pt1yyARl7eK)

このファイルには、先ほど設定した LOD や各オブジェクトの情報など、さまざまな設定が書き込まれています。このうち、ここで設定するのは、下の方にある `metadata` と書かれている箇所です。

モデルを出力した状態では、`metadata` は次のように書かれているはずです。

```
	metadata = {
		availability = {
			yearFrom = 0,
			yearTo = 0,
		},
		cost = {
			price = 0,
		},
	},
```

これを書き換えて、次のようにしてください。

```
	metadata = {
		description = {
			name = "Demo",
			description = "This is a demo"
		},
		railVehicle = {
			topSpeed = 110,
			weight = 96,
			engines = {
				{
					type = "ELECTRIC",
					power = 2550,
					tractiveEffort = 200
				}
			},
			configs = {
				{
					axles = {
						"vehicle/train/Demo/Wheel.msh",
					},
				}
			},
			soundSet = {
				name = "train_electric_modern",
				horn = "vehicle/train_steam_old/steam_horn_14.wav"
			}
		},
		transportVehicle = {
			carrier = "RAIL",
			reversible = false
		},
		availability = {
			yearFrom = 0,
			yearTo = 0,
		},
		cost = {
			price = -1,
		},
		maintenance = {
			runningCosts = -1,
			lifespan = 50
		},
	},
```

ここではそれぞれの項目について説明はしませんが、ほとんどの項目は何を意味しているかすぐに理解できると思います。細かく知りたい場合は、[モデルのメタデータ](broken://pages/-LyS5pFZpJsKqmR0BJW7) を参照してください。

`--` はコメントのマークで、行内のこのマーク以降の記述は動作に影響を与えません。

{% hint style="info" %}
あとで動作確認で使うTpFモデルエディタでもメタデータを編集することができます。ただし、モデルを修正して再エクスポートするとこのファイルは上書きされるため、手作業で内容をコピーする必要があり、このときはテキストファイルとして扱う方が簡単（かつ自動化可能）です。このため、テキストの状態で編集できるようになっておくとよいと思います。
{% endhint %}

## 2. MOD として構成を整える

続いて、MOD としてのファイル構成を整えて、TpF2 MOD としてモデルを使えるようにします。

まず、**TpFユーザデータフォルダの staging\_area フォルダの中に、「(制作者名)\_(MOD名)\_(バージョン番号)」という名前でMOD フォルダを作成します。**&#x305F;とえば今回の場合だと、「xxx\_demo\_1」のような名前にします。staging\_area フォルダは公開可能な MOD を置くためのフォルダで、ここに置いた MOD は他の MOD と同じようにゲーム内で選択できるようになります。

次に、**MOD の情報が書かれたスクリプトファイルを作成します。**&#x4D;ODフォルダの下に「mod.lua」という名前のファイルを作成し、テキストエディタで次の内容を記入してください。

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

authors セクションの name の値には、ご自身の名前を入れてください。

続いて、適当な画像を用意して GIMP で開き、「image\_00.tga」という名前でMODフォルダの下にエクスポートしてください。この画像は、MOD選択画面で使われます。ゲーム内のスクリーンショットを使いたい場合はここでは用意できないので、いったんこの画像ファイルなしでMODを作成し、ゲーム内で撮影したものをあとから差し込むこともできます。

最後に、ここまで作成してきた res フォルダを、MODフォルダの下にコピーしてください。

以上の手順を終えると、MODフォルダは次のような構成になっているはずです。

* xxx\_demo\_1
  * mod.lua
  * image\_00.tga
  * res
    * models/...
    * textures/...

これで MOD のファイル構成は完了です。

## 3. モデルエディタで動作を確認する

この段階で、TpF2モデルエディタからモデルがみられるようになっています。実際に確認してみましょう。

モデルエディタを起動し、左上の MOD 選択ドロップダウンリストで「(staging) xxx\_demo\_1」を選択します。続いて、その下にある「OPEN」ボタンをクリックし、Demo.mdl までたどって開きます。成功すれば、これまでに作成した非常にメタリックな車両が表示されるはずです。一通り見まわしてみてください。

![](/files/-Lz7tXojbmJOEO0oXiQU)

また、**このタイミングで、モデルエディタを使って、ゲームの車庫画面で車両を選ぶときに表示するアイコン画像を作成します。**&#x753B;面右上にある「SCREENSHOT」ボタンをクリックすると、スクリーンショットと同時に、アイコン画像を出力できます。アイコン画像は、MOD フォルダの中へ直接出力されます。

## 4. TpF2 MOD に変換する

ここまで来たら、あとは TpF2 モデル変換ツールを使って、TpF2 向けに変換するだけです。この手順は、他の TpF1 MOD を TpF2 向けに変換するときと一緒です。

まず、`TpF2フォルダ/mods` にある eat1963\_tpf2\_converter\_0 フォルダ（TpF2 モデル変換 MOD のフォルダ）の中から `__for user__/mod.lua` ファイルをコピーして、自作の MOD フォルダにコピーします（このとき、自作の mod.lua が上書きされないよう、ファイル名を変えておいてください）。

![](/files/-Lz7tZIhNLAWvc-r252o)

この状態で、TpF2 を起動し、フリーゲームから MOD 選択画面を開きます。「TPF->TPF2 Mod-Konverter」（変換ツール本体）と「TPF1 --> TPF2 - User mod.lua 1.1」（変換対象の MOD）が表示されますので、順番に MOD を有効化して下さい。変換対象の MOD を有効化した時点で変換が始まり、しばらく画面が固まったあと、スイッチが有効な状態で表示されたら変換は完了です（一度ゲーム画面が閉じるかもしれませんが、正常な動作です）。

![](/files/-Lz7taYd3AiA15mmf9NH)

変換が完了したら、変換ツール本体と変換対象の MOD の有効化スイッチを切り、TpF2 を終了してください。また、変換ツールからコピーしてきた mod.lua を削除して、名前を変えてあった mod.lua を元に戻してください。

MOD フォルダには transfer\_log.lua というファイルが生成されていて、変換結果を確認できます。「Error Files」というセクションに何も書かれていなければ、変換は成功です。

![](/files/-Lz7tcAhsZ4eEiebE77q)

これで MOD は完成です！お疲れさまでした。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nosrith.gitbook.io/tpf2-mod/tutorial/tutorial-20200121/metadata.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
