パンダでも分る説明書

タイトル: ZM2でMAPを作ろう
筆者: 41aeimi

試しに何か書いてみようと思います

必要なツール(最低限のもののみ)
・ZModeler2
・ZModeler
・GMAX
・GTAMAX(KAMS)
・CollEditor2
・TXDWorkShop
・gta3.imgを編集できるツール
・MEd
・その他画像編集ソフトなど

MAPの作り方の流れとしては
1dff、txdの作成
2colの作成
3MEdで配置
となります
txdとMEdについては詳しい解説がたくさんありますので省略



1)dffの構造について
MAPMODのdffはアニメーションしたり壊れたりする特殊な物を除いて
以下のような構造になっています


XXX(dff名).dff
└xxx(任意のオブジェクト名)

非常にシンプルです
後でCollisionを作る際に手間になるため
XXX(dff名)とxxx(任意のオブジェクト名)は同じにしておいた方が良いでしょう

また、通常は一つのdffに対して3Dオブジェクト一つしか含めることはできません
(複数のオブジェクトを入れた場合は未確認。落ちたり、正常に出現しない可能性があります)

タイトル: ZM2でMAPを作ろう2

※(1)で書き損ねましたが、ZM2がある程度使える人向けとして書いていくつもりなので
細かい部分を端折るかもしれません


2)MAPオブジェクト出力時の制限
まず、MAPオブジェクトには二つの制限があります

一つは、大きさに上限があること
dffには特に制限は無いようですが、dffに付随するCollision(当たり判定のモデル)には
中心から半径250mの球体に収めなければならない、という制限があります
これを超えると、超えた部分が折り畳まれて不自然な当たり判定になってしまいます

また、どのみちLODモデル以外は
IDEファイルで描画距離が最大299mまでしか設定できないので
dff一つあたりは半径200m程度までに収めておいた方が無難です


二つ目として、オブジェクトひとつあたりの頂点数
dffのオブジェクトひとつあたりの頂点数には上限があります
具体的な数字は検証していませんので不明ですが
dffで2MB以上あったらアウト、くらいに考えておいて下さい
SAに入れても落ちたりはしませんが、出現していないと思います

対処法としては、複数に分割してしまうか、不要な部分を削ってしまうのがいいでしょう
頂点が結合されていない個所はWeldをかけてやるのも有効です


また、Collisionの頂点数制限はdffのそれよりも厳しいようです
頂点数が多過ぎると、SAに出しても近づいただけで落ちます

また、細かい頂点が密集していると、見えない壁が発生したりすることもあるようです
当たり判定用のモデルは必要最小限で良いので、両面ポリゴンのモデルは片面にしたり
不要な部分は削除したり、簡略化したモデルと置き換えたりするのもいいでしょう

タイトル: ZM2でMAPを作ろう3

さて、ここから実際に作る作業をしていきたいと思います
作るというか、dffにするための下準備とか、そういう作業が暫く続きます

3)dffを作る
いきなりですがMAPにしたい3Dモデルを用意しましょう
用意したモデルはZM2にインポートして、マテリアルにテクスチャを適用させて下さい

ここからは節目節目でZ3Dに保存しながら作業することを推奨します

<1>マテリアルの設定について

乗り物系のdffに見られる光沢(spec)や反射(env)などは使用できないので
マテリアル名に[env;5,spec]などと書かれている場合は一応消しておきましょう
SecularHighlightもチェックを外しましょう

transについては不明ですが、透過させる場合はテクスチャのアルファを使用しているケースが多いようです

また、コンバート物などでひとつのマテリアルに複数のテクスチャを含む(バンプマップなど)場合は必要なテクスチャ1枚を残して削除して下さい
マテリアル名に[]などでくくられた箇所がある場合は消しておきます

要するに何かというと、何のオプションも付いてない、テクスチャ1枚入れただけのマテリアルになっていればいいです

<2>オブジェクトをまとめる
1)dffの構造について 、で書きましたが
通常、MAPのdffには3Dオブジェクトを一つしか含むことが出来ません
なので最終的には存在しているオブジェクトを全て一つにまとめる必要があります

それにはModify\Attachを使います
AttachはSELECTED MODEがオフの状態で、Objectモードでのみ使用できます

一つにまとめる、と書きましたが
植物や看板など、パーツ群ごとにまとめた状態でセーブしておくと
後で修正したいときなどに便利です

次回の切り離しのときに、パーツごとに切り離して、あとからまとめることもできます

パーツの数が多いと一番しんどい作業かもしれません

タイトル: ZM2でMAPを作ろう4

前回はオブジェクトをまとめるところまででしたね
オブジェクトを全てAttachでくっつけたので、今度は切り離す作業に入りましょう
この作業はdffが複数必要になる
比較的大型のMAPを作成する際に重要になります

<3>オブジェクトの切り離し


1)切り離すサイズの決定

まず初めに、
ZM2でMAPを作ろう(2)

2)MAPオブジェクト出力時の制限
をもう一度読み直してみましょう

今回重要なのは
”中心から半径250mの球体に収めなければならない”という制限です

これはCollisionファイルのみに適用される制限ですが、
通常はdff=Collisionなので
dff作成の段階から半径250m以内で作成していた方が無難でしょう

ただし、dffにはIDEファイルの制限で
中心から半径299m以内に行かないと描画されない、という制限もある
(半径250m以内ギリギリでdffを作成した場合、dffの端に到達する50m手前でようやく描画される)ため
最大でも直径300~400m程度で作成するのが最適でしょう

具体的なサイズの測り方は
ZM2の目盛りで縦横300mの正方形に収まっていれば大抵は大丈夫ですが
TOPビューでSSを撮り、画像編集ソフトなどに貼り付けてそこに円を描き、
おおよその切り離しサイズを測ってみるのもいいと思います
map1.jpg
上の画像では直径400m(半径200m)で円を描いてみました
なお、今回は円を描いただけでやっていますが、上下方向に大きなものを作る場合は
当然上下の長さも計算に入れる必要があります

また、縮尺がわからないときは、車などのdffをインポートして比較してみるといいと思います
乗用車なら全長5m程度のはずですので、そこからスケールを割り出して下さい

タイトル: ZM2でMAPを作ろう5

2)切り離し
どのくらいのサイズに切るか決めたら
実際に切り離す作業に入りましょう

1.
まず、Polygon(面編集)モードで対象のオブジェクトをクリックし、編集できるようにします

2.
そして切り離したい部分を任意の手段でSelectします
map2.jpg
なるべくギザギザにならないように選択した方が
あとで配置したときに見た目が綺麗になると思います

3.
選択したら最後にModify\Submesh\Detatch
切り離します

4.
Objectモードに戻して
さらに切り離す箇所がある場合は1.に戻り
同じ手順で切り離して下さい

map2.jpg
全て切り離したらこんな感じに
(わかり易いように選択して色を付けています)

なお、サイズごとで切り離しても頂点数が多すぎる場合は
小物類などをさらに切り離してみるといいと思います




3)ピボット位置の修正
まず、ピボット(Pivot)とは
オブジェクトにカーソルを合わせたときに出現する
フレミング左手の法則みたいな
3方向を指し示す矢印のことです

これは各オブジェクトの軸となり、3つの矢印の中心はそのオブジェクトの中心軸を示します

車MODではドアなどの回転軸として利用されますが
MAPMODにおいては描画距離の計算の基準となります

とりあえずピボットはモデルの中心にあればいいので、
Display\LocalAxes
を使って中心に移動させましょう

1.
まずはObjectモードでSelectAll(選択できれば何でも可)します

2.
map4.jpg
画像のように
KeepObjectとOffsetにチェックを入れ、
Center to Objectをクリックしてから
画面上をクリックします

3.
ピボットがオブジェクトの中心に移動したのを確認したら
SelectNoneで選択を解除し、この作業は終了です

次はdffの仕上げになる予定

タイトル: ZM2でMAPを作ろう6

4)明るさの設定
ここで設定するのはMAPのdff自体の明るさになります
これは車MODでも使われることがある方法なので知っている方もいると思いますが
VertexColorを用いた方法です

これを設定しない場合には、かなり暗くなってしまう反面dffが少し軽くて済む利点もあります

1.
まず、Objectモードで、同じ明るさに設定したいオブジェクト全てをselectします
※このとき選択しなかったオブジェクトがあった場合、ここからやり直しになるので忘れたオブジェクトが無いか確認しましょう

2.
そのまま頂点(Vertex)モードへ移行し、左クリックします
モデルの頂点が表示されるのでSelectAllで全選択しましょう
以下ずっと頂点モードのままです

3.
右クリックするとメニューが出てくるので、PropertiesをクリックしSelectionProperties画面を呼び出します

4.
ここで、Mesh\Vertices\Formatとタブを開いていき
DiffuseColorかSpecularColorのどれか、もしくは両方でもいいのでチェックを入れます
両者に特に違いは無いようです
map5.jpg
Normalsのチェックが外してありますが、これは今はチェックを入れたままにしておきます

5.
SelectionProperties画面を閉じ、Surface\PaintのColorのタブを開きます
Colorと書いてある右側に水色の長方形があると思うのでそれをクリックしましょう

6.
すると画像のようにRGBの色設定画面が出るので
任意の色に設定してOKをクリックします
map6.jpg
通常は濃さの違いはあれどグレーにしておくのが無難でしょう
ここで設定した色がSA上でも反映されるため、必要に応じて青や赤などを使うのもアリです

7.
先ほどの水色の長方形の下にFillSelectionというボタンがあるので、これを数回クリックします
クリックした回数に応じて、色の補正が無い一番明るい状態から、段々設定した色に近く、そして暗くなっていきます
ZM2ではイマイチわかりづらいので、ExportしてSA上で確認した方が良いです

8.
ここで、もう一度SelectionProperties画面を開き
Normalsのチェックを外しましょう

9.
以下は必要がなければor面倒なら省略しても問題無いです
この工程はPC環境やモデルの頂点数によっては処理が重くやたら時間がかかるので、dffひとつずつやった方がいいでしょう
Surface\Paint\Prelit Colorを使い左クリック
dff上で面上に頂点が重なるような箇所で影みたいなものができます

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

※VertexColorの設定をリセットする場合
SelectionProperties画面でDiffuseColorとSpecularColorのチェックを外し
一度SelectionProperties画面を開きなおしてから
3.~7.の工程をやり直すことでVertexColorの設定をリセットすることができます

また、5.~7.の工程を省くとdffが最大限の明るさになり
4.の段階でDiffuseColor、SpecularColor、Normalsのチェックを全て外すとやたら暗いdffになります

なお、MAPMOD上のPedや車の明るさは
dffではなく接地している当たり判定の明るさで設定でされています



5)dff化
長かったですがとりあえずdffは完成ですのでExportしましょう
dffの数が多い場合は、ツールバー上のExportにあるタブを開き
MultipleExportを使ってExport先を指定して一括出力することもできます


このあとはCollision作成ですね

タイトル: ZM2でMAPを作ろう7

dffができたので今度はCollision(当たり判定モデル)を作っていきます

6)当たり判定の作成
<ZM2上での作業>
1.
まず、dff作成で使ったZ3Dファイルをコピーして
Collision作成用の作業ファイルとして名前は何でもいいので分かり易いようにリネームします

2.
ZM2を起動し、先程のZ3Dを開きましょう
下準備として、前回書いたVertexColorの設定をリセットする場合の手順を行います
全てのdffを選択し、全ての頂点を選択した状態で
SelectionProperties画面でDiffuseColorとSpecularColorのチェックを外し、Normalsのチェックを入れた状態にします

3.頂点削減その1
峠などの諸々全部一体になったものを作った場合、当たり判定としては不要なもの(植物など)や、両面にポリゴンを張ったもの(ガードレールなど?)などがあると思います
手始めにそういったものを削除しましょう
方法は何でも構いませんが、頂点モードや面モードでそれらをSelectしてDeleteするだけです
植物など使っているマテリアルの分かり易いものはSelect\[By Material]で選択していくとラクです

4.頂点削減その2
Collisionモデルの中に頂点の大量に密集したオブジェクトが含まれると高確率で当たり判定がバグります
この場合は
・当たり判定の必要が無い=プレイ中直接触れることのない箇所を肉抜きしたり
・ボルトとナットのような小さすぎて当たり判定として意味を成さないものを削除したり
・同じような形で、より簡素で頂点数の少ないオブジェクトを作成して置き換えるなどするといいでしょう
※この際に作ったオブジェクトにはマテリアルやUVマッピングの設定は必要ありません

5.頂点削減その3
また、2)MAPオブジェクト出力時の制限でも書きましたがCollisionモデル一つ当たりの頂点数が多すぎてもバグります
要らないものを削除して、頂点数の多いオブジェクトを簡易なものに置き換えてもこのケースに該当する場合は
オブジェクトの切り離しへ戻り、dffを更に細かく分離して作り直しましょう
モデルの中央で真っ二つに割るだけでも頂点数は半減できると思います

これらはZM2やGMAX、ColEditor2などでモデルを参照しても特に異変が無いため、SA上に出してから気が付くことの多い不具合です


「Grand Theft Auto」は「Rockstar Games」様の登録商標です

inserted by FC2 system