少し前に公開したスキンですが、ちょうど良い見本になるのでこれで説明してみたいと思います。
まずはスキンですが、これは通常のスキンの作り方と同じです。
標準ではラジエータグリルが細いです。これを幅広なラジエータグリルに変更したいと思います。
ここではどのトラックからデータを拝借して来るか、ShowRoom等で各車両を見比べて検討します。
そして、Kenworth W900L(kw900)のデータを拝借する事にしました。
拝借する事にしたのは良いが一体何を拝借すれば良いのか?
基本的にボディ・フロントバンパー周りのデータを移植する場合は cabin フォルダとスキンデータ一式になります。
この時、フォルダ丸ごとでも構いませんが容量の節約も兼ねて必要なファイルのみ拝借する事にします。
makes\truck\kw900\acc\cabin\!desc.def
makes\truck\kw900\acc\cabin\cabin.psm
makes\truck\kw900\acc\cabin\kw900_int.shd
makes\truck\kw900\acc\cabin\kw900_int.tobj
makes\truck\kw900\acc\cabin\kw900_int.png
スキンデータは paintX(paint0〜3) フォルダのを拝借します。
makes\truck\kw900\acc\paintX\paint.shd
makes\truck\kw900\acc\paintX\paint.tobj
makes\truck\kw900\acc\paintX\paint.png
拝借して来たデータ一式は1つのフォルダにまとめて置きます。
この時、cabin フォルダというフォルダ名は標準のフォルダと被ってしまうので使えません。
フォルダ名はゲームで使われていない名前にして下さい。私は add1 フォルダとしました。
makes\truck\p362\acc\add1\!desc.def
makes\truck\p362\acc\add1\cabin.psm
makes\truck\p362\acc\add1\paint.shd
makes\truck\p362\acc\add1\kw900_int.shd
makes\truck\p362\acc\add1\paint.tobj
makes\truck\p362\acc\add1\kw900_int.tobj
makes\truck\p362\acc\add1\paint.png
makes\truck\p362\acc\add1\kw900_int.png
スキンデータ関係のファイル名は別に上記の例と違っても構いません。自分で管理しやすいと思うファイル名に変更して貰ってOKです。その場合は、*.shd、*.tobj ファイルをメモ帳などで開いて参照先を変更しておくのを忘れないで下さい。
これより先、このページでは paint.png は kw900.png というファイル名で扱います。
そして、 add1 フォルダをp362の追加データとする為に下記のファイルを弄る必要があります。
makes\truck\p362\description.def
description.def をメモ帳などで開いて画像のように下記の文字列を追記します。
access17:"add1"
これでp362にkw900のボディを追加したという事になります。
ここまでが下準備の部分です。いよいよここからが根気の要る作業になります。
まずは今の状態でどのようになっているのか、ゲームを起動して確認してみます。
きちんと追加されたデータが表示されていますね。
確認できたので、次は追加データの余計な部分を削除します。具体的にはラジエータグリル以外の全ての部分ですね。
レタッチソフトを使って kw900.png の余計な部分を削除します。ソフトは何でも構いません。
同様に kw900_int.png もレタッチソフトを使って全て削除します。
ゲームを起動して確認します。
削除した部分が白くなっただけで消えていません。でも、これで正常なんです。
そこで、削除した部分をきちんと消す為に *.shd ファイルを弄る事にします。
スキンの透明な(削除した)部分に何も表示させない方法としてアルファチャンネルというのを利用します。
アルファチャンネルの使われている *.shd ファイルは trailer1.shd と trailer13.shd 、Trailer19の jeep.shd 等があるみたいです。
trailer13.shd をメモ帳などで開き、赤線の部分の記述を kw900.shd と kw900_int.shd にコピー&ペーストします。
この時、kw900.shd の下記の記述は必要ありませんので削除して下さい。
../shared/kw900_gloss.tobj
そのままにしておくと追加データ全体が表示されなくなります。
また、kw900.png のサイズは512x512ピクセルですので 256,256 という記述も修正しておきます。
ゲームを起動して確認します。
ラジエータグリル以外が消えてサッパリしました。
!desc.def をメモ帳などで開いて表示位置を調整します。
この時 offset 以外の部分も修正します。
3行目、そのままでも良いですが気分的に良くないと思うなら適当に変えて下さい。
5行目、type:"cabin" はエラー防止の為 type:"free" としておきます。
8行目、shader は1つ目を除いて全て同じファイルを指定します(これでボディ以外の部分を完全に消す訳です)。
何も描かれていない *.png ファイルを指定するのですが、ここでは kw900_int.png で代用できるので1つ目以外は kw900_int.shd に書き換えます。
shader:"kw900.shd:glass.shd:kw900_int.shd:kw900_int.shd:kw900.shd:kw900.shd"
↓
shader:"kw900.shd:kw900_int.shd:kw900_int.shd:kw900_int.shd:kw900_int.shd:kw900_int.shd"
10〜14行目も必要ないので削除します。
完成しました。
サンバイザー(add2)もラジエータグリルと同じ要領で作成すると、私が公開しているスキンと同じ物の完成です。
これで説明は終わりですが、基本的な流れを理解して頂けたでしょうか。
他のトラックからデータを拝借 → 余計な部分をアルファチャンネルを利用して消し、位置を調整する。
これが全てです。
応用すればスリーパーをバッサリ削除したデイキャブ仕様(日本で言うところのベッドレスとかショートキャブ)とかでかいスリーパーを装備したトラックとかいろいろ作れます。あと、アルファチャンネルを利用すると光沢処理がされなくなるのでShowRoomやCamera5で眺めた時に照からなくなります。これが唯一の不満です。
補足事項1
MOD作成中はゲームを何度も起動し直す事になると思いますが、新たにパーツを付け足した時はニューゲームから始めるか既存のセーブデータをロードした場合はトラックを買い替えて下さい。
新たにパーツを付け足した時に限り、セーブデータをロードしただけではそのパーツは反映されません。
パーツの位置を修正したとかフレアマーカーの色を変えた等ならロードでも問題ありません。
このページを例にすると、ラジエータグリルを追加した→既にPeterbilt 362に乗っているセーブデータがあったので、これをロード→追加したはずのラジエータグリルが反映されていない、という感じです。
ShowRoomではきちんと反映されますので、軽くチェックする程度ならニューゲームやロードしなくてもこちらで充分です。
補足事項2
きちんと動作しているか(エラーが出ていないか)を知るにはコンソール(チートを入力する時に開くヤツ)を開くと良いです。あるパーツを表示するのに必要なファイルが足りない、とかの場合には赤文字でエラーの内容を教えてくれます。
この場合にはゲーム終了後にマイドキュメントの 18 WoS Across America フォルダにある prism3d.log にその時のログが残されているので、後から調べる時に参考になります。prism3d.log が無い場合はPCのスタートメニューからグラフィックセットアップを起動して"Create log file"という部分にチェックを入れてからゲームを起動すれば作られるようになります。
エラーの例
[] *** ERROR *** Unable to load def /makes/truck/p362/acc/add_flares_red/!desc.def
また、明らかに設定がおかしい、*.psm ファイルをバイナリエディタで弄って壊した、とかの場合は prism3d.exe がアプリケーションエラーを起こしてゲームが止まるのですぐにわかります。
この場合、ゲームが正常に終了されないので prism3d.log にも内容が書かれないので注意して下さい。