gmaxでのテクステャ貼り付け方法 & テクスチャ形式
( FSX+SP2用)

 FSX用オブジェクトにテクスチャを貼り付ける前に、Gmaxでの作成段階において重要な注意点 ( 以下のA.B.C) がある。

A.テクスチャ貼り付けに慣れるまでは、作成するBGL1個につき1枚のテクスチャファイルのみを使用する
 2枚のテクスチャファイルを使ってもうまくいく場合もあるが、複雑で込み入った複数のオブジェクト群を1個のBGLでまとめ、そこに2枚以上のテクスチャを使用するようにすると、Gmax内ではうまく貼り付けられているようにみえても、FSXではうまく表示されないというトラブルが発生しやすくなる。
 このトラブルへの対処法は、"ひぐまさん”のページ(GmaxWorld)のGmaxMemo-No.17に解説があるので、慣れたらこの対処法で複数のテクスチャを使うようにすればよい
 とにかく慣れるまでは、たくさんのオブジェクト群(建物等)を作る場合、1枚のテクスチャで済むように幾つかのBGLに分割するような作り方をしたほうが無難である。
 
テクスチャが1枚で足りなくなったら新たなテクスチャを作り、その新たなテクスチャを使うオブジェクト群は別のBGLファイルにする訳である。

B.透過テクスチャ(透過・半透過の部分を作る)を貼り付け、Gmax上では上手くいっているのに、FSX内の表示画面でどうしてもうまく透過しない部分が出来てしまうことがある。何をどうやっても透過しなかったり、または透過したりと、訳が分からなくなるのである。
 しかし大抵は、1個のbglにするつもりで作っているオブジェクト群が、かなり込み入ってきて複雑になっている場合にこの現象が起きる。
 こんな時は、思い切って作っているオブジェクトを2つに分割(2つのbglに)するとよい。だいたいはこれで狙い通りに透過・半透過するようになる。

C.透過テクスチャをフェンス状の1枚板に貼り付ける時も、何をどうやっても透過しない場合がある。
  幾つかの経験からみると、どうも「Plane Object」で板を作って、それに透過テクスチャを貼り付けるとダメな場合が多いようである。
  そんな時は、BoxObjectで箱を作ってから不要な5面を消し、必要な1面のみ残したものをフェンスにして、それに透過テクスチャを貼ると良い結果になる事が多かった。
  フェンスはBoxObjectで作るのをおまじないにするとよいと感じた。
 




 gmaxでテクスチャを貼り付ける方法については、幾つかのやり方があるのかもしれないし、gmax自体、メニューバーを使う方法とアイコン(ボタン)を使う方法との2通りのやり方が存在している。
 ここでは、「ひぐまさん」のページに紹介されているやり方を基本にして、手順を概略的にまとめてみた。

 −−重要−−
 FSX+SP2用のオブジェクトにテクスチャを貼るなら、まず始めに、FSXのSDKをSP2用にアップデートしておく。アップデートされているかどうか分からない場合は、SDKのトップフォルダにあるHelp用のファイルを見てみると分かる。SP2用のSDKにアップ済みなら、ヘルプファイルが、fsxsdk.chm という名前になっているはずだ。
 SP2用のSDKアップデートファイルはこのリンンクからダウンロードする。211MBほどある。


テクスチャ貼り付け手順

 貼り付け作業に入る前に、当然のことながら、テクスチャ画像を用意。
 形式は、通常のBMP形式の画像。拡張BMPは、gmaxで読み込めない。要するに、Windowsで「普通に」使っているBMP画像を用意する。
 BMP画像のサイズについては、128の倍数にしておいた方が無難。例えば256ピクセル四方とか512ピクセル四方、1024x512ピクセルとかにする。

 (追記 2016年4月)
 作るオブジェクトが沢山になると、どうしてもテクスチャサイズが大きくなる。
 大きくなる際は縦横の比率を 1:1 とか 2:1 または 1:2 にするとよい。使用するソフトにもよると思うが、後述のようにBMP画像をddsに変換する際に、私はDXTBmpというフリーソフトを使用しているが、1792x1024のBMP画像は、自動的に2048x1024に変換されてしまった。
 ならば、最初から2048x1024のBMP画像を準備したほうが、さらにいろいろなテクスチャを盛り込めて都合が良さそうという訳である。

 (追記 2016年11月。 作業時のテクスチャ解像度)
 gmaxは他のフリーの3Dオブジェ作成ソフトと較べても、優劣つけがたいソフトだと言われている。しかし、ただ1点、テクスチャ貼付け作業時のテクスチャ表示(の解像度)が粗いという弱点がある。
 しかしこの弱点も、以下の設定によって相当改善できる。1024ピクセル四方よりも小さい画像なら効果は大きいので、忘れずに以下のセットを行う。
 gmaxメニューバーの「Customize」--「Preferences」--「Viewports」窓の右下側にある「Configure Driver...」をクリック----で表示された「Match Bitmap Size as Closely as ....」にチェックを入れる。----「OK」を押す。


手順1 : 作成したオブジェクトの読み込み −−−−−> 使用テクスチャの指定

@ オブジェクト指定用アイコンをクリック。
A テクスチャを貼りたいオブジェクトを指定。
  (大抵の建造物は、複数のオブジェクトで構成されている。ここで指定されたオブジェクトにはxyzギズモが表示される。)
B マテリアルエディターをクリック。(エディターのプロパティ窓が表示される。)
C 「New」をクリック。(一つのオブジェクトの貼り付けが終わり、他のオブジェクトの貼り付け作業に移る時も「New」から始める。)
D 表示された「New Material」窓で、「FlightSimX」をクリック。
E 「OK」をクリック。

  
F マテリアルエディター窓の「Diffuse」の右にある灰色の■をクリック。
G 表示されたマテリアルナビゲーター窓で、「Bitmap」をクリック。(もし「Checker」を選ぶと、テクスチャが格子状に貼られる、はず。)
H マテリアルナビゲーター窓で「OK」をクリック。
I 表示されたビットマップファイル選択窓で、準備しておいた画像ファイルをクリック。(私の場合、256、512、1024ドット四方などの画像)
J ビットマップイメージ選択窓の「開く」をクリック。
 この後に透過テクスチャを使うつもりや、テクスチャの両面貼り付けをするつもりなら、マテリアルエディターのメニュー内にある、
   2side, allowBloom, SetDefaultTransParence, Z-Test(50にセット), AlphaTestMode=GreaterEqual,Z-Write, DoubleSided
    をON
にする必要がある。
詳しくは、ひぐまさんのWEBのGmaxMemo14を参照のこと。また具体的手順は、このページ内の「透過テクスチャ」の項を参照。
K 「Show Map in Viwport」をクリックしてONにする。
L 「Apply」をクリック。

(注意点)
 gmaxで一連の作業を終わった後、bglにコンパイルしてFSXで表示してみると、テクスチャが剥がれていたり、透過や両面表示が失敗している事がある。
 貼り付け時のミスの場合もあるが、どうやり直しても上手くいかない時もある。

 そんな時のおまじないのために、上のL「Apply」クリックの時、1回だけでなく2度以上押しておくと良い。
 左図の「C」の欄が空白ではテクスチャ貼り付けが上手くいかないようであるが、「A」を押して「B」を押す、つまり上の手順説明のKLをやっても、「C」の欄が空白の時がある。それではまずいので、「C」欄にコマンド表示が現れるまで「B」を押す(つまりLを行う)。
 こうするといろいろと上手くいくように感じられる。絶対的な検証は行っていないが、特に両面透過テクスチャがうまくいかないのはここの所が原因であるように思われる。




 以下、「手順2」画像貼り付け作業 を続ける。



手順2 : 画像貼り付け作業

 <以下の手順は、作業画面右側にあるプルダウンのモディファイヤーリストから作業を選ぶ、という方法で説明しているが、この方法以外に、画面上部にメインツールバー ( 上の2枚の画像では表示されていない..) を表示させ、その中のモディファイヤータブを表示した中のアイコンで選ぶ方が単純で簡単である。>

@ 作業画面の右にあるメニュー窓で、「Modify」アイコンをクリック。
A モディファイヤーリストの▼をクリック。
B 表示されたリストから「Edit Mesh」を選択。
C 下側に表示されたメニューで、赤の■(Polygon)をクリック。
   (オブジェクトの、ある1面に画像を貼り付けたいのでPolygonを選択したが、オブジェクト全面に同じ画像を貼り付けるなら、
     右横にある「Element」を選択してもよい。)
D オブジェクトのウインドウに戻って(カーソルが+形になっているはず)、画像を貼り付けたい面を指定する。指定面が赤色に
  変わらない場合は、F2キーを押してみる。
  「Ctrl」キーを押しながら選択すれば、複数の面を指定できる。Box状オブジェクトの周囲面に、同じ画像を貼り付ける時など便利。
E モディファイヤーリストの▼をクリック。
F 表示されたリストから「UVW Map」を選択。
G 下側に表示されたメニューから「Face」を選択。(円盤状や球体のオブジェクトの場合は、他のものがいい場合もある。)
H モディファイヤーリストの▼をクリック。
I 表示されたリストから「Unwrap UVW」を選択。
J 下側に表示されたメニューから「Edit」を選択。テクスチャ画像窓が表示される。
  テクスチャ画像窓にうまくテクスチャが表示されていない時は、Aの右上(Mの下側)の▼をクリックして、
  「Pick Texture」をクリックすれば、テクスチャファイル選択画面が表示される。
K 表示された、マッピング指定画面で「Move」アイコンをクリック。(表示時に、既に選択されているが、一応確認。)
L 画像の四隅にある小さな四角点をドラッグして、オブジェクト面に貼り付けたい部分を囲む。
   表示された2個の(ある場合は1個の三角形は、実際には多数の三角形が重なって表示されている場合がある。つまり、
   ドラッグすべき小四角点も、多数が重なっていて一つに見えている訳である。
   その時にBの四角点の様に、普通のままドラッグすると、後で他を正確に重ね合わせるのが困難になってくる。
   これをスマートにやるには、Aの様に四角点の周囲をドラッグして、四角い選択部分を表示させてから四角点をドラッグすれば、
   多数の四角点を一度に同じポイントにドラッグできて便利だ。
   また、Cのアイコンは、重なっている多数の小四角形を1個の小四角形にまとめる機能がある。必要に応じて使用すると便利。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
 以上の手順で、オブジェクトの1面へのテクスチャの貼り付けが完了する。
 同じオブジェクトの他の面にテクスチャを貼り付けるために、手順2のAからの作業を繰り返す
 必要な全ての面への貼り付けが完了したら、
M 「X」をクリックして、貼り付け作業完了。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
 ほとんどの建造物は、Boxやシリンダーや球体や面などの多くのオブジェクトで構成されているので、手順1と手順2によってひとつのオブジェクトへのテクスチャ貼り付けが完了した後は、他のオブジェクトへのテクスチャ貼り付け作業に移る。

N 手順1に戻って、他のオブジェクトへの貼り付け作業開始
   手順1の@で開始したら、手順1のCで記したように、必ず「New」を押してから、改めてテクスチャ指定から作業すること。
   たとえ同じテクスチャを使う場合でも、「New」から始めないと、FSX内では2つ目以降のオブジェクトのテクスチャが表示されないことがある。

   この点を忘れると、Gmax画面では2つ目以降のオブジェクトにテクスチャがきちんと貼りついていても、FSX内では表示されない場合がある。


テクスチャの形式について

 gmaxで貼り付け作業を行っている時のテクスチャ形式は、通常のbmp形式である。拡張BMPやFSXになってから使われているDDS形式では、作業中にgmaxが読み込んでくれない。
 しかし、FSXでは、このBMP画像をそのまま使うのはお薦めできない。ファイルサイズが大きすぎて、何枚も画像を使う場合はフレームレートに悪影響を与えるとか。
 そこで、FSXで使用する画像は、次の手順でDDS形式に変換して使用する。
1.gmaxで使った通常のBMP画像を、FSX用SDK(FSX+SP2ならSDKもSP2にアップデート)にあるImageTool.exeで読み込む。
2.ImageTool.exeのImageメニュー「Create MipMaps」でミップマップを作る。
3.Imageメニューの「Format」でDXT1かDXT3を選ぶ。(FSX専用で、半透明の透過をさせるならDXT3がよい)。
4.Save As で、「ファイルの種類」をDDSを選んで保存する。この時、ファイル名は必ずBMP画像と同じものにする。
  拡張子はもちろんDDSでよい。
5.出来上がったDDS画像を、オブジェクトのbglを入れるSceneryフォルダーと等位に配置したtextureフォルダに入れる。つまり、FSの普通通りのファイル配置の御作法に従う。
6.DDS画像に変換する前のBMP画像は、FSXが読み込むTextureフォルダーからは消去しておく。
  (FSXが誤ってサイズの大きいBMP画像の方を読み込んでしまわないようにするため。)

ImageTool.exeの代わりにフリーソフトのDXTBmpを使っても、同様の作業が出来る。しかし、私の場合、DXTBmpの「Image」メニュー「Flip Image」でテクスチャの上下を反転してから変換作業を行い、上下反転したままでDDS形式保存しないと、FS内でのマッピングがずれてしまった。
 DXTBmpでの手順については、次項の記事を参考にする。


透過テクスチャの作成法

 gmaxでの作業と並行してテクスチャを作らねばならないが、FSXでの透過テクスチャの作成についてまとめてみる。
 特に、FSX+SP2の場合は、透過テクスチャにトラブルが出ることがあるので、Gmax側できちんと設定をしておく必要がある。
 具体的には、マテリアルエディターのメニュー内にある、
   2side, allowBloom, SetDefaultTransParence, Z-Test(50にセット), AlphaTestMode=GreaterEqual, Z-Write, DoubleSided
    をON。
に設定するのだが、その詳細は、ひぐまさんのWEBのGmaxMemo14に書かれてある。
 ・FSXでは、FS2004までのようにテクスチャの真っ黒(RGB0,0,0)の部分が自動的に透過になるわけではない。
  オブジェクトに透過や半透過の部分を作るには、オブジェクトに貼り付けるテクスチャに、必ずアルファチャンネルを作ること。
 ・アルファチャンネルを扱える画像処理ソフトを用いること。後述の方法では、PaintShopProとDXTBmpを用いる。
 ・FSXではオブジェクトに半透明の部分を作る事ができるが、そのためのテクスチャはDXT3形式である。
  DXT3は4ビット(16階調の濃度)のアルファチャンネルを内蔵するので、微妙な半透明の部分を設定できる。
 ・単に、全透過の部分を作るだけなら、ファイルサイズが小さくなるDXT1形式で保存する。
  DXT1形式は、1ビット(2階調、つまり白か黒)のアルファチャンネルを内蔵するので、透過か非透過のみを設定できる。
 ・アルファチャンネルを扱うにはadobeのPhotoshopの方が、PaintShopProよりも便利である。
  だがPhotoshopは高価なので、安価なPaintoShopProやフリーソフトなどでテクスチャを作成し、その後、フリーソフトのDXTBmpを使ってアルファチャンネルを(一瞬で)作る方法をとる。

作成手順
 ・テクスチャをPaintやPaintShopProやフリーソフトなどを使って作成し、通常のBMP形式で保存する。
  その際、透過(半透過)させたい部分を真黒(RGB0,0,0)にしておく。FSXでは例えば緑(RGB0,255,0)など何色にしても良いのだが、後のアルファチャンネル作成時の利便性のため、真黒か真緑などの純色にしておく。
 ・テクスチャを、フリーソフトのDXTBmpで読み込む。(最新版を使うこと)
 ・「Image」−「Flip Image」で、テクスチャを上下反転させる。
   (注意) gmaxでは、上下反転していないBMP画像で貼り付け作業を行うこと。
 ・「Alpha」−「Create Alpha channel(Black)」でアルファチャンネルを作成する。(一瞬で出来る!)
 ・「File」−「Save as」−「DDS Texture」− 保存ダイアログでのファイルの種類は「DDS DXT1」を選ぶ。
  「DDS DXT1(NoAlpha)」ではアルファチャンネルが保存されない。
 ・以上でFSXが必要とするDDS形式のテクスチャが完成。
  必要なMipMapテクスチャも、DXTBmpが自動的に作成して保存している。
 ・半透過テクスチャを作るなら、DXTBmpでアルファチャンネルを作った後、「Alpha」−「Export Alpha channel」でアルファチャンネルを一旦書き出し、それをPaintShopProで16階調のアルファチャンネルに編集し、その後再び、DXTBmpの「alpha」−「Import Alpha channnel」で読み込んだ後、DDS(DXT3)形式で保存する。
 ・テクスチャを透過させるには、前述のとおりGmaxで適切な設定をしておくことも重要。ひぐまさんのWEBで確認。
  そして、Gmaxでオブジェクト作成後、MDLデータにExportする際、表示されるメニューの内、「Export FS10」のチェックを入れること、である。



  -----------------------------------------------------------------------------------------------------------------------------------
  透過テクスチャを貼り付けた 物体内部のオブジェクト の見え方について

 透過テクスチャを貼り付けた物体の内部に、さらに物体を置いた場合の見え方に注意。

 ・単純に物体を作成して内部に置いた場合は、その物体は見えない。

 ・単純に物体を作成して、内部と外部にまたがるように置いた場合、外部にはみ出した部分は見える

 ・物体を作成し、その物体にテクスチャを施した場合は、透過テクスチャ内部の部分も外部の部分も見える。


 ・透過テクスチャを貼った物体の内部に、アタッチポイントツールで、光などの「効果(Effect)」を配置した場合、
  「効果」は見えない


gmaxの作業画面にバックグラウンド画像を表示する方法と注意点

 gmaxの作業画面のバックグラウンド(背景)に、製作するオブジェクトの三面図等を表示させておくと、オブジェクトの形をきちんとトレースしやすい。また、オブジェクト周辺の航空写真を表示させておいた場合は、複数のオブジェクトを並べていく時も、その配置関係がいとも簡単につかめる。
 このようにとても便利なバックグラウンド画像であるが、使用にあたっては、その画像サイズをgmax作業画面の縮尺(グリッドのスケール)に合わせる、いわゆるキャリブレーションをきちんと行わなければならない。
 また、ダミーのboxを使ってキャリブレーションした後、そのダミーを消し忘れないようにしなければならない。

キャリブレーションのひとつの方法は、以下の通り。
 ( この例では50m×156mのスケールを書き込んである画像を使う )
 (参考文献:GmaxTutorials)

1.バックグラウンドにしたい画像を準備する。jpg形式でよい。
2.GmaxのTopView画面をクリックしてアクティヴにしてから、
  メニューバー  Views - Viewport Background - Files で画像を選ぶ。
  その際、「Lock」にチェックを入れ、「MatchBitmap」のボタンも選んでおく。
   - OKをクリック。
3.表示された画像を、ズームさせて、全体が表示されるようにする。
4.50m×156m×0.3m高のBOXを作る。
  これはキャリブレーション用のダミーなので、高さは適当でよい。
  また、作る位置も適当でよい。
5. メニューバー - Views - Viewport Background で、先ほど2.でチェックした「Lock」のチェックを外す。- OKをクリック。
次の6.の方法で、BOXの大きさを画像のスケールと一致させる。
6.TopViewをズームさせて(ホールを回すより左ドラッグの方が微調整が効く)、画像内に書き込んだスケールとBOXの大きさを合わせる。
  この時、バックグラウンド画像はズームしていないはず。
  Gmax画面の最右下の段のツールバーから、掌のアイコン「Pan」を選んで、TopViewを移動させれば、BOXと画像に書き込んだスケールとを比べやすい。

7.キャリブレーションが終わったら、メニューバー - Views - Viewport Background で、「Lock」に再びチェックを入れる。
8.この後は、BOXは消してしまってもかまわない。
9.画像の大きさや位置に合わせて、Gmaxでオブジェクトを作製する。


マテリアルエディター(MaterialEditor)が開かないトラブルについて (2015年9月追記)

 gmaxの製作にもそれなりに慣れたころ、鳥取空港の進入灯を作っていて、基本の形が出来たのでテクスチャを貼り付けようとしたら、あれまぁ、マテリアルエディターのボタンを押してもEditorが起動しません。
 今まで何の問題も無くgmaxを使っていたVistaマシンなので、急にトラブルが発生するのもおかしいと思うのですが、何をやっても起動しません。
 Win7マシンも並行して使っていて、gmaxの必要ファイルをVistaから7にコピーしたときに、何か重要なファイルを消してしまったのか....?

 ああでもないこうでもないと半日ほど原因究明に努め、ようやく発見しました。備忘録として経緯を記述します。

 ・gmax.exeを直接クリックしてgmax起動するとMaterialEditorが開く。=gmaxもEditor関連ファイルもOK。
 ・FSXgamepack用にカスタマイズしたgmaxショートカットでgmax起動するとMaterialEditorが開かない。=きっとiniファイルに問題あり。
 ・最近になって、3画面モニターから1画面に戻した。=MaterialEditorの表示位置に問題ありの可能性大。
 ・ルートのgmax.iniを調べると、MaterialEditorの表示位置は適正値になっている。=???
 ・gmax.iniをファイル検索すると2つある! FSXgamepackフォルダにもある! =FSXgamepackフォルダのiniファイルが怪しい
 ・gmax.iniフォルダ内の[MtlEditorPosition]の項目で値を見ると、やはりX軸が−650とマイナス値になっている! =当たり!!

 で、X軸の記述を+値にしてiniファイルを上書きして、gmaxを起動したら、万事OKとなりました。



HOME (Top page)