Tips/3DMOD関連/乗り物


■概要
2009.7.26
 乗り物系3Dモデル編集に関する関する小ネタ集です。


.
■乗り物dffの構造
2009.7.26
 私がイメージしている乗り物dffの構造を図に示します。あくまでイメージ図です。



 乗り物dffは、キャラクタスキンと異なり多数のメッシュオブジェクトを持つことができ、これらのメッシュデータや各ヘルパーが、リンクによって一つの構造となっています。このリンク構成を間違えるとゲーム内でフリーズすることがあるのでご注意を。リンク構成については既存dffの構成を参考にするか、ryosukeさんのサイト(参考URL(1))のノードリストを参照されることを強くお勧めします

 またdff内部にcolセクションを持つことも特徴と言えるかもしれません(MAP系のdffはコリジョンデータが.colファイルとして独立している)。colについては下のTipsで少し触れますのでご参照ください。

<参考URL>
(1) GTA SA Modification Center:http://hotmist.ddo.jp/index.html
ダミーヘルパー(ノード)のリストは「GTA SA Modification Center > ID / Type > Vehicle Node」に掲載されています。





.
■乗り物dffのインポート
2009.7.26
 乗り物dffのインポート手順です。dffインポータとしてKAMSを使用しています。インポート作業で特に問題となる手順は無いと思います。

(1)
コマンドパネル"Utility"タブ(A1)の"DFF IO"または"DFF IO without CHARexp"(A2)を押して"DFF IO Gmax"パネルを起動。

(2)
パネル上部の"Import DFF"(B1)を押してメニューを展開し、ボタンの"Import DFF"(B2)を押してインポートするdffファイルを指定。オートスキンは不要。




 以上でインポート操作完了ですが、インポートしたばかりのモデルにはテクスチャが表示されません。テクスチャ表示方法についてはTips「モデル操作(3)」の「モデラ内テクスチャ表示」をご参照ください。




.
■乗り物dffのエクスポート
2009.7.26
 KAMSで乗り物系のdffをエクスポートするときには、全てのメッシュとダミーヘルパーを選択しなければなりませんが、選択の方法によってはSAでロードした時にフリーズしてしまいます。 どうやらフレーム書出の順番に問題があるようなのですが、スクリプト細部がモジュール化されているため確認はできていません。

 以下、既存のdffをインポート/編集した場合を仮定して手順を書きます。乗り物dffのエクスポートでお困りの方は、おまじないと思って手順を追ってみてください。

 使用するエクスポータはGSSさん修正版KAMSです。"GTAMax.exe"の起動も忘れないようにしてください。

(1)
'H'キーを押して"Select Object"パネルを開く。
"Display Subtree"(A1)をチェック。
"All"(A2)→"Select"(A3)で全選択。



(2)
KAMSの"GTA_gDFF_IO_backward"(B1)を起動(*1)
設定項目はとりあえず図のとおりに設定(*2)
"Select COL3/COL"(B2)を押してインポートしたdffを選択
"Export DFF"(B3)を押してエクスポート。


(*1)
GSSさんfix版KAMSを使っていない場合には図の(B1)が表示されません。その場合Gmaxメニューの"MAXScript">"Run Script"でKAMSフォルダの奥にある"GTA_gDFF_IO_backward.ms"を起動してください。

(*2)
エクスポートスケールを変える場合や"Vertex Color"を使用する場合は適宜設定を変更します。





 以下余談です。

 (1)で全選択する時に、ビューポートで全選択したり、サブツリー表示せず"ALL"選択して出力した場合には、冒頭に書いたようなフリーズを起こします。 RWAで確認したところ、全選択の方法によってdffに書き出されるframe順が変わっていました。 ただ、親子関係は正しく出力されるため、Gmaxに再インポートしても階層は再現されます。GTA側の問題でしょうか?

 また、(2)で"GTA_gDFF_IO_backward"を使う理由は、GSSさんのサイトにも書いてあるように、普通にutilitiesメニューにロードされる"DFF IO"では、 エラーでdff出力できないためです(MMCの書き出しに問題があるように見えます)。キャラ非対応版が同梱となっているはそのせいかと思います。




.
■colセクション
2009.7.26
 SAの3Dモデルは衝突判定や影の生成元となる形状データをcolというセクションで扱っています。 SAのMAPモデルやVCの乗り物モデルではこのセクションが".col"ファイルとして独立していましたが、SAの乗り物モデルではdffファイルに含まれる形となっています。

 なお、".col"ファイルの編集についてはGOSUKEさんのサイト(参考URL(1))などで丁寧に解説されています。ぜひご覧ください。ここではcolセクションに含まれるデータの種類について少し説明したいと思います。解説はGOSUKEさんのサイト(参考URL(1))とGTAModding様(参考URL(2))を参考にさせて頂きました。

(1)衝突判定用データ(コリジョンメッシュ/球オブジェクト)
 ゲーム内での衝突判定を行うための形状を表すデータ。 使用できるEditableMeshはひとつまでとされていて、これだけではしばしば壁などを貫通してしまいます。 そこで個数制限にかからないPrimitive(球オブジェクト)を多数使用して判定を補っているようです。


(2)影生成用データ(シャドウメッシュ)
 光源の位置から影を計算するための形状を表すデータ。 コリジョンと同じく使用できるEditableMeshはひとつまで。 投影の計算が複雑なためか、頂点が密集すると処理が重くなり、ゲーム中でフリーズの原因となる(頂点の数にはよらない)。 また、メッシュが"閉じていない"と「浮いた影」が発生するのでご注意を。


(3)計算範囲?(Bounding Sphare/Box)
 詳細は良くわかりません。衝突判定を計算する範囲を示しているのかなと思います。KAMSの"Collision IO"では、エクスポート時にコリジョンデータを内包するように自動生成されますので、col編集時には削除してしまうことをお勧めします


※KAMS collision IOでの表示例。





<参考URL>
(1) 3ds Max(Gmax)でのcollisionの作り方(GOSUKE FACTORY):http://arikai.com/gtasa/col1.html
(2) Collision File (GTAModding):http://www.gtamodding.com/index.php?title=Collision_File





.
■colのインポート
2009.7.26
Latest : 2009.9.26
 SAの乗り物モデルは、colデータがdffに含まれています。3dsMaxは使用したことが無いのでわからないのですが、Gmax版KAMSの"Collision IO"では、".col"ファイルをdffに取り込む操作に不具合があるようです。

 なお、既存dffからcolを取り込む場合はKAMSで問題なく取り込むことができます。編集したcolファイルを新規に取り込む場合のみ以下の方法をお試しください。

 ここではRWA(RW Analyze)を使う方法と、同じくSteve.Mさん作の"CollEditor2"(入手は参考URL(1))というツールを使う方法を紹介します。私はRWAを使用していますが、どちらも結果は同じかと思います。

■RWA(RW Analyze)を使う方法
(1)
colデータを適用したいdffをRWAで開く

(2)
ツリーのいちばん最後にある"Extension"の下のID:"0253F2FA"の"Unknown"セクション(C1)(*1)をクリックして、下のバイナリ窓のテキスト部に「COL3」と書いてあるのを確認(C2)。
(*1):設定によっては"Collision Model"等と表記される。

(3)
この"Unknown"を右クリックして、"Impoot Section Data"(C3)を選択。編集したcolファイルを指定してインポート。


(4)
セーブして完了。



■"CollEditor2"を使う方法(2009.09.26追記)
(1)
colファイルを"Col Editor2"で開く。

(2)
リスト中のcolを右クリック > "Export" > "Attach to DFF"で適用したいdffファイルを選択。


(3)
完了。



<参考URL>
(1) CollEditor 2 (steve-m.com):http://ce2.steve-m.com





.
■handling.cfg
2009.7.26
 3Dモデルから話が外れますが、私がhandling.cfgをいじる際に参考にさせていただいているサイト様を紹介します。数値を変えた時の違いがゲーム内でわかりにくいので、調整が面倒ですね。

 参考URL(1)は、ryosukeさんのサイトです。他にもいろいろな設定ファイルのフォーマットを解説されていますので、ぜひご参照ください。

 参考URL(2)〜(4)は、Ben MillardさんのサイトProject Cerberaです。(2)はhandling.cfgフォーマットの説明、(3)はhandling.cfgの中でも最高速度と加速度について考察されています。英語ですがグラフつきなのでわかりやすいです。

 サイト主様に感謝いたします。

<参考URL>
(1)
GTA SA Modification Center:http://hotmist.ddo.jp/index.html
handling.cfgの書式は「GTA SA Modification Center > Dat > handling.cfg」に掲載されています。

(2)
GTA San Andreas handling.cfg (Project Cerbera):http://projectcerbera.com/gta/sa/tutorials/handling

(3)
GAcceleration in GTA San Andreas Handling (Project Cerbera):http://projectcerbera.com/gta/sa/tutorials/acceleration







.
■色のつけ方1(MMC)
2009.7.26
 乗り物MOD(MAP/武器も?)に色をつける方法は大きく3つあります。ひとつはテクスチャを貼って着色する方法、ひとつはマテリアルに色をつける方法、もうひとつは"Vertex Color"を使って頂点に色をつける方法です。

 なお、マテリアル色とテクスチャ色は減算扱いなのか、濃い色をつけたマテリアルにテクスチャを貼るとテクスチャの色が暗くなってしまうようです。マテリアルのテクスチャ設定で変更できるかもしれませんが、ご注意ください。SAモデルではマテリアル色とテクスチャの両方を使用する場合、シールのように面を重ねて、テクスチャの余った部分を透過させるようにしているようです。(パトカーのデカール等)

 ここではマテリアルに色をつける方法について説明します。といってもマテリアルの色設定は別のTipsで説明済みですので、マテリアル色のゲーム内での反映され方について書いておきます。

 テクスチャの貼り方はTips「モデル操作(4)」で、Vertex Colorについては下のTipsで説明します。

MMC
 マテリアルに設定した色を出力し、ゲーム内で反映させるには、エクスポータの「MMC」ボタンをチェックします。デフォルトでチェックが入っているので間違えることはないと思いますが。ちなみにMMCとは"Modulate Material Color"のことらしいです。



carcols.datとの関係
 普通にマテリアルに色を設定した場合、ゲーム内では何度車を出現させてもきちんと設定した色が反映されます。オリジナル車のようにcarcols.datにしたがって色を変化させたい場合は、マテリアルに特定の色を設定する必要があります。

 詳細は参考Dexxさん著のForums記事(URL(1))を参照していただきたいのですが、抜粋すると、以下の色が特殊な色になっていて、この色が設定されたマテリアルには、carcols.datに設定した色がロードされるようになっているようです。

Primary - 60, 255, 0 - This color
Secondary- 255, 0, 175 - This color
Third - 0 255, 255 - This color
Fourth - 255, 0, 255 - This color


 ほとんどのSA車両はcarcols.datで"car2"(2色設定)となっていますので、たいていの車では"Primary"と"Secondary"までしか使えません。"Fourth"まで可変色を使用したい場合は、carcols.datの"car4"の欄の車種を使うか、carcols.datを編集して、置き換えたい車種を"car4"の欄に設定します。

 下の画像は、拙作パンダ1号の白黒のマテリアルにPrimaryとSecondaryの可変色を使用して繰り返し出現させた時の色の変化です。目の部分はテクスチャで着色していますので変化していません。



 carcols.datの書式については、ryosukeさんのサイト(参考URL(2))に記載があります。使いそうなデータはすべてこの方のサイトに解説があるといっても過言ではありません。また上で紹介したDexxさんの記事も前後タイヤサイズの調整方法が書かれていたりしてとてもためになります。お二人をはじめとするすべてのModder様に心より感謝致します。





<参考URL>
(1)
San Andreas Vehicle Tech Doc (GTA Forums):http://www.gtaforums.com/index.php?showtopic=158088
マテリアル色の設定については二つ目のquoteに掲載されています。

(2)
GTA SA Modification Center:http://hotmist.ddo.jp/index.html
carcols.datの書式は「GTA SA Modification Center > Dat > carcols.dat」に掲載されています。







.
■色のつけ方2(VCOL)
2009.7.26
Latest : 2010.2.11
 ここでは"Vertex Color"でオブジェクトに色をつける方法について説明します。"Vertex Color"の説明はGOSUKEさんのサイト(参考URL(1))でわかりやすく解説されていますので、詳しくはそちらをご参照ください。

 Vertex Colorは他の着色方法と異なり、マテリアルを使用していません。また、他の着色方法が光源依存の反射色なのに対して、こちらは頂点自体が色をもっているため、暗い場所でも明るく表示され(てしまい)ます。([2010.02.11追記])ゲーム内では他の光源色と加算合成、場合によっては乗算合成される場合もあるようです(GOSUKEさんサイト参考URL(2)より)。

 GOSUKEさんのサイトで紹介されているのはZmodeler2を使った設定方法ですので、ここではGmaxを使った設定方法を説明しておきます。

GmaxでのVertex Color設定方法
(1)
頂点または面(*1)を選択した状態で、コマンドパネルの"Surface Propaties"の"Edit Vertex Color"欄にある"Color"(A1)をクリックして色を設定。
(*1)
面編集モードで編集した場合は、モデラ表示とゲーム内表示が異なってしまう場合があります。なるべく頂点モードで編集するようにしてください(2009/08/08修正/追記)



(2)
dffエクスポート時に"VCOL"のボタン(A2)をonにして出力する。図ではボタンの字が読めませんが、赤枠のボタンです。





ゲーム内での見え方
 またもや拙作パンダ1号の例です。頭部のメッシュに"Vertex Color"{255,0,255}を設定しています。

 Vertex Colorを設定した部分のマテリアル色を、左から{0,0,0},{128,128,128},{255,255,255}に変化させています。上がゲーム時間昼間の、下が夜間の画像になります。



 マテリアル色の影響を受けますので、マテリアル色{0,0,0}のものは真っ黒にしか見えません。逆にマテリアル色{255,255,255}のものは昼間の色が薄く見えてしまいます。マテリアル色{128,128,128}あたりがちょうど良いかなとおもいますが、好みの発色にあわせてVertex Colorとマテリアル色を調整してください

 また、夜でも明るく見えてしまうので、モデル全体の着色をVertex Colorでやってしまうと非常に不自然なモデルになってしまいます。逆にそれを利用してネオンや光るデカール・インパネとして使用されることが多いようです。ちなみに夜だけ効果のある"Night Vertex Color"は乗り物MODには効果がありませんでした

 下の画像も拙作改造車です。異なるVertex Colorを与えた頂点の間は、周囲の色が合成されて見えますので、画像のbfinjectの屋根のようなグラデーションも簡単に付けることができます。テクスチャを光らせたい場合は、ボンネットなどの下地にかぶせてデカール用のメッシュを作り、不要な部分をアルファで透過させればよいです。





 改造車は本サイト"Download"の"SOS詰め合わせ"に同梱していますので、興味のある方はdffを開いて中を見てみてください。





<参考URL>
(1)
ZModerlerでのVertex Colorの使い方 (GOSUKE FACTORY):http://arikai.com/gtasa/vcol1.html

(2)
頂点カラー (GOSUKE FACTORY):http://arikai.com/gtasa/index.php?p=2010020901&t=gtasa







.
■モデラ上でのVCOL表示方法
2009.8.8
 上のTipsの補足です。デフォルトのオブジェクト設定では、モデラ上で"Vertex Color"の色が表示されません。下の手順で設定してください。設定はオブジェクトごとなので、設定したいオブジェクトに対して操作を繰り返してください。

(1)
オブジェクトを選択した状態で画面を右クリックして"Properties"(A1)を選択し、Object Properties窓を起動。

(2)
下のプルダウンから"Vertex Color"を選びチェックを入れる(A2)
好みでシェーディングon/offを設定(A3)。



(3)
下の画像はすべてのメッシュオブジェクトに頂点カラー表示設定をしたところ(*1)(*2)マテリアル色は表示されなくなるのでご注意。


(*1)
「頂点カラーを一度も編集していないオブジェクト」については、モデラのデフォルト色はゲーム内で反映されません(図の黄枠参照)。一箇所でも頂点カラーを変更すればゲーム内で反映されるようになります。

(*2)
面編集モードで編集した場合は、モデラ表示とゲーム内表示が異なってしまう場合があります。なるべく頂点モードで編集するようにしてください





 注釈(*2)に記載した「面編集モードで頂点カラー編集した時の問題点」は、モデラのVertex ColorとGTAのVertex Colorの使用の違いからくるもののようです。問題が発生した場合にはツールを使って修正できます。修正方法については、別Tipsで紹介したいと思っています(未執筆)。



.
■VCOLへの陰影焼き込み
2010.7.5
 3Dモデルに陰影を持たせる手段として、3Dモデラ上で光源を設置し、モデル形状から計算される陰影を頂点カラーに設定する方法が広く使用されています。

 これは陰影の焼き込みなどと呼ばれる手法で、影のつく部分をモデラが計算してくれるので、テクスチャに陰影を書き込むより簡単に陰影をつけることができます。

 ここではGmaxで提供されている焼き込み機能を簡単に説明します。例として乗り物MODで説明しますが、MAP MODでも陰影を焼きこんで出力することはできますし、もちろんNVCとして出力してもOKです。

■陰影の焼きこみ
 モデラ内にライトを設置し、拡散光と陰影を頂点カラーとして設定します。

(1)
コマンドパネル"Create"タブ(A1)の"Light"(A2)アイコンを押し、好みの光源(A3)を選んでビューポートに配置。

下の画像では、"Target Direct"(指向性平面光源と、光源の向く方向を決めるターゲットを設置するライトオブジェクト)を選択しましたが、omni(無指向性点光源)等、他の光源を用いても問題ありません。いろいろ試してみてください。

光源を選択すると、"Modify"タブ'(A4)内の"General Parameters"(A5)で光源の色を設定できます。パネル内には他にもさまざまな設定項目がありますが、私は把握できていません。




(2)
光源の位置と色を決めたら、オブジェクトに陰影を焼きこむ。

コマンドパネル"Utility"タブ(B1)の"Assign Vertex Colors"(B2)を押し、パネル下部の同名パネル(B3)の設定項目を下図のように設定する(*1)

陰影を焼きこむオブジェクトを選択し(複数可、ダミーヘルパーを巻き込んでも無視してくれるようです)、"Assign to Selected"(B4)を押すと、光源による拡散光と陰影が頂点カラーとして設定されます。

タイヤに陰影を焼きこんでしまうと、陰影ごと回転してしまうのでご注意。手動で一様に頂点カラー'黒'を設定しておくと良いと思います。

(*1)デフォルトでチェックの入っている"Use Map"は法線?マッピング情報が無い状態では不自然な陰影となってしまうようです。また、"Mix Vertex"をONしない場合、面を分けている個所で陰影に不連続が生じる場合があります。意図的に使用しない場合、ONにしておくと良いと思います。




(3)
焼きこみが完了したら、普通にVCOL付乗り物dffとしてエクスポートする。エクスポート時に作成した光源を選択してしまうとエクスポートできませんのでご注意を。既に頂点カラーは設定されていますので、光源を消してしまっても問題ありません。

また、それぞれのオブジェクトに"Vertex Colors"モデファイアが作成されますが、集約しなくてもそのままエクスポートされます。もちろん集約してもOKですが、deleteしてしまうと陰影が反映されません。

エクスポート時には、パネルの"VCOL"(C1)のチェックを忘れずに。これを忘れると、今まで何をやっていたのか、ということになってしまいます。




(4)
出力したdffをSAで表示させたところ。右が陰影を焼き込んだものになります。焼き込み無しの物に比べて、多少立体感が出ています。

なお、画像の陰影を焼きこみモデルではマテリアルの色を暗く設定しています(R=G=B=128の灰色)。白いマテリアルのまま陰影を焼きこむとオブジェクトが強烈に明るくなってしまいますのでご注意を。光源の色とあわせて、好みで調整してください。








.
■2dfx
2009.7.26
 dffファイルフォーマット(Renderwareフォーマット)には、2dfxというセクションがあって、"ライト効果"や炎や水煙などの"パーティクル効果"、"アニメーションテクスチャ"などをモデルに設定できます。

 この操作もGOSUKEさんのサイト(参考URL(1))で非常にわかりやすく解説されていますので、ぜひご参照ください。Gmaxでも編集可能です。また、2dfxに関しては、GTAModding.com様(参考URL(2))にフォーマットが掲載されていますので、興味のある方はご参照ください。セクション構造が比較的簡単なので、バイナリエディタとRWAだけでエフェクト追加できるかもしれません。

 GOSUKEさんの解説どおりにすれば特に問題はないと思いますので、ここでは改造トラクターに"flame"のパーティクル効果を付けた拙作モデルの画像を掲載して終わりにします。



<参考URL>
(1)
ライトとパーティクルの解説 (GOSUKE FACTORY):http://arikai.com/gtasa/effect1.html

(2)







inserted by FC2 system