gmaxによるシーナリ作成情報

GMax Scenery Tutorial 日本語訳を公開しました!!!
ここからダウンロードできます。


gmaxを使って制作中のセントラルタワーズ

gmaxを使って制作中のオアシス21

はじめに

遅ればせながら gmax を使ったシーナリ作成を開始しました。今ままでは FreeSC/SCASM をメインに使ってシーナリを作っていたのですが、さすがに複雑なオブジェクト作成には限界を感じたため乗り換えることとなりました。

しかし、FreeSC/SCASM なら当然のことのようにできた表現が、gmax でどうやったら実現できるのか調べるのは結構大変です。このページではシーナリ作成中に蓄積したノウハウをすこしずつ公開して いきたいと思います。(まあ、私の場合、100% 全部 gmax に移行するのは無茶なので、当分はFreeSCと併用になりますが。)

すでに gmax でシーナリ/機体をばりばり作成されている方には「何を今さら、、、」かもしれませんが、以外と日本語でこの手の情報を扱っているページが少ないように思います。多少なりとも役に立てば幸いです。

また、私が作成した gmax のデータもここで公開していきます。

サンプルデータ

私が作った gmax のデータを公開します。どれもまだ作りかけ&未公開のものですが、、、

チュートリアル

最初はチュートリアル的なものも作ろうかと考えたのですが、すでにしろくまさんが作成されたすばらしいチュートリアルがありますので、止めました :-)
それから、FS2002 SDK の一部である GMAX Scenery Tutorial も必読で、これに従って一通りオブジェクトを作ってみるのが早道だと思います。日本語訳は私が作成しました。

それから以下のページも必見です。

また、gmax は 3ds max というソフトウェアのほぼ機能縮小版なので、3ds max 関連のサイトや書籍を当たってみるのもいいと思います。

ちなみに私が参考にしている書籍は「3ds max 4 FUNDAMENTALS COURSEWARE (Autodesk,Inc.)」という本です。この本の11章「ローポリゴンモデリング」が特に参考になると思います。

透過テクスチャ

ポリゴンを透過させたい場合は、「アルファチャネル入りのテクスチャ」を作る必要があります。このため、

が必要になります。

ペイントソフトのほうですが、私は Paint Shop Pro 7 を使っています(Photo Shop は高くて買えん)。画像フォーマットに関しては、しろくまさんのページでも述べられていますが Targa (.tga) フォーマットがよいでしょう。なぜなら、Targa フォーマットはアルファチャネルをサポートし、かつ gmax で直接扱うことができ、さらにさらに Imagetool (FS2002で使うフォーマットに変換するツール)でも扱えるフォーマットだからです。

Paint Shop Pro でのアルファチャネルの操作にはちょっと癖があります。直接アルファチャネルを編集することはできず、アルファチャネルを「マスク」にロードしたり、「マスク」をアルファチャネルにセーブする機能だけがあります。なので、まずは「マスク」を作ることから始めます。

メニューの「マスク」から「新規作成」でまずマスクを作り、「マスク編集」「マスクイメージの表示」を選びます。これでマスクを編集できます。

黒色を選んで塗ると、その部分が透過になります。中間調を選べば、半透明なテクスチャを作ることができます。

マスクができたら、「アルファチャネルに保存」でアルファチャネルに保存してください。

アルファチャネル保存中

 

ポリゴンを両面から見えるようにするには

表側だけでなく裏側からも見えるような面、たとえば手すりのようなものを作る場合、どうやれいいでしょうか?

これは簡単です。マテリアルの名前を 'DS_' で始めるだけです。これだけで、ポリゴンの両面が見えるようになります。gmax 上では片面しか見えませんが、MSFS 上ではちゃんと両面から見えるようになっています。

オアシス21の手すり部分のポリゴンの両面にテクスチャを貼る

灯火を作る

これ、最初やりかたがわからなくて困りました。以下のように作るみたいです。

  1. ポリゴンを1個作ります。三角形を一個作ればいいです。ポリゴンの大きさがそのまま灯火の強さになります。
  2. マテリアルを作ります。Diffuse Color を灯火の色にセットします。
  3. マテリアルの名前を特定の名前にする。

マテリアルの名前ですが、これは MakeMDL SDK に以下のように記述があります。

DS_

Polygons are drawn double sided.

BRIGHT_

The material is bright (emits light).

LIGHT_BEACON

A beacon point light is drawn, and the diffuse color is the light color.

LIGHT_STROBE

A strobe point light is drawn, and the diffuse color is the light color

LIGHT_RECO

A recognition point light is drawn, and the diffuse color is the light color

LIGHT_WING

A wing point light is drawn, and the diffuse color is the light color.

LIGHT_LOGO

A logo point light is drawn, and the diffuse color is the light color.

LIGHT_NAV

A navigation point light is drawn, and the diffuse color is the light color.

LIGHT_TAXI

A taxi spotlight is drawn, and the diffuse color is the light color.

LIGHT_LAND

A landing spotlight is drawn, and the diffuse color is the light color.

常時点灯する灯火は LIGHT_LOGO で作ればいいようです。

あとは、これを「夜間だけ」点灯するようにしたいのですが、これは gmax だけではできないようです。BGLC のソースファイルをはき出すようにして、手で .asm ファイルを修正する必要があります。具体的には、以下のようにします。

IFIN1 daytime,028ch,2,4
(夜間のみ表示したいコード)
daytime label word

あとは、これを BGLC.EXE でコンパイルすれば OK です。

アニメーション

アニメーションは、普通に gmax の「キーフレームアニメーション」で作ればいいです。アニメーションは 18フレーム/秒で、フレーム数は 1024個に制限されています。

なお、アニメーションの種類は結構限られていて、オブジェクトの移動と回転くらいしかできず、サイズ変更などは使えません。gmax 上ではアニメーションできていても、シーナリに変換するときにエラーになります。

ですので、アニメーションを入れたら、すぐに一旦シーナリに変換してみて、正しく変換されたかどうか確認したほうがいいでしょう。でないと、長時間かけて作ったアニメーションが全部パァになるおそれがあります。


戻る