ZModerlerで窓ガラスを作る
透明マテリアルの作成
マテリアルを新規作成し、その名前に [spec,trans] を加えます。(例:glass[spec,trans])
マテリアルの名前に[ ]で囲まれた中にtransがある場合は、マテリアルを透明にするという設定で、specは、スペキュラ(オブジェクトの光沢)を有効にする設定です。
次に、Alpha Parametersの項目にあるenableをチェックします。その隣にあるOpacity この値で透明度を調整します。255で透明度が0%、0で透明度が100%になるので255より数値をさげて下さい。(但しGTAでは透明度をある一定の数値までさげると完全な透明になります)
Source、Destinationの項目を次のように設定します。たぶんマテリアルを作成した初期状態でいじる必要はないと思いますが、もし違う設定になっていたら、以下の通りに設定しなおして下さい。
Source を Source Alpha
Destination を Inv.Source Alpha
これで透明度の設定は完成です。次は窓ガラスの色の設定をします。
Basic PalametersのところにあるRGBのスライドバーで色の調整をして下さい。Simple color modeがチェックしてある状態で行います。
色の設定ができたら、次はスペキュラの設定を行います。
マテリアルの名前にspecがいれたので有効になっていますが、どれくらいの強さかの調整をしなければいけません。ExtentionsのところにあるSpecular Highlihgtの項目にチェックをいれて下にあるStrengethのスライドバーで調整をして下さい。
メッシュの設定
ここでは既に窓ガラスになるメッシュを既に作成してあるものとします。メッシュの作成の仕方の解説はしません。窓ガラスとなるメッシュに、先程、作成した透明なマテリアルを割り当てます。そして、そのメッシュのPropertiesを開きます。
Mesh->Vertices->Formatと階層をおりていって、UV channels の項目を 2 にします。
以上で設定は終わりです。エクスポートをしてGTAのゲーム内で確認してみましょう。ちゃんとできていれば、窓ガラスが作成されているはずです。
おつかれさまでした。
(2007/05/05)
考察
本来のやり方からすると結構、省略したやり方ですが、これでも問題ないと思います。私の解説ではガラスに色をつけるのにマテリアル自体の色を調整しましたが、テクスチャを割り当ててやる方法もあります。透明にさせるにもOpacityで調整でなくてアルファチャンネルで調整という方法もあったりと、いろいろなアプローチの仕方がありますので、様々な方法を試してみて下さい。
メッシュの設定でやったUV channels の項目を 2 にしたのも、実際は反射用のマップを付加したわけでもないので、実際は必要がないといえばないのですが、何故かこれを 1 にしたままだと、実際にGTA内でみると透明にならなかったりするんですよね。 2 にするとちゃんと透明になる・・・。でも3ds maxで、ここで書いたような感じで窓ガラスを作成しマップチャンネルを 1 の状態でやっても、ちゃんと透明なオブジェクトになったりと、よくわからない^^;
とまぁ、そういう感じなので、とりあえず、 2 にしとけばいいのかなぁという感じです。
ここで作成した窓ガラスは反射しない設定にしています。反射させる設定をする場合は、マテリアル名に、env を加えて、反射の強さの設定は、それに続く数値になります。(例:env10)
反射させるテクスチャの設定や、反射マップのUV設定のやり方は、前述のリンクで示してあるZmodelerのフォーラムのページを参考にして下さい。
窓ガラスは作成できたが、窓ガラスを通して見る室内のオブジェクトが消えてしまう場合は、窓ガラスのメッシュと透明なマテリアルを複製し、古い方を削除して下さい。これで大抵は改善されると思います。(窓ガラス以外のメッシュがある場合は、窓ガラスのみをデタッチして、アタッチして戻す方法もやり方の一つです)
何故、このようなやり方で改善されるかというと、GTAの仕様上のせいなのかは、わかりませんが、オブジェクトやマテリアルが作成された時期によって描画される順番がきまってる感じで、新しく作成されたものは最後に描画される感じで、透過しないオブジェクトであれば、その順番も問題にならないけれども、透過するオブジェクトの場合だと、透過して見られる側のオブジェクトが先に描画されてないと駄目ですから、きちんと順番通りにやらないといけない・・・と書いてて何だか支離滅裂な事を言っているような気がしないでもありませんが^^;
ようするに、透明なオブジェクトと透明なマテリアルは、順番を一番最後にもっていけばよい(一番最後に作成された状態にする)、という事だと思います。
まぁ、これ以外にもモデリングの仕方によって消えたり消えなかったりとかの現象はあるのですが(メッシュの方向とか)、私自身きちんともよく理解していないです^^;;