Shockwave3Dエクスポータの使用手順

  1. 3ds max のメニューで、[ファイル]-[書き出し] を選択し、[Shockwave 3D シーン書き出し (*.W3D)] を選択します。
  2. ファイル名を入力し、ファイルの保存場所を指定して、[OK] をクリックします。
  3. [Shockwave 3D Scene Export Options] ダイアログボックスが表示されます。
  4. オプションを選択し、[Export] をクリックします。

Shockwave 3D Scene Export Options

書き出しダイアログ
Resource to Export
このグループでは、W3Dファイルに書き出すリソースを設定します。SOLAで使用する W3Dファイルのリソースは、ノード、ジオメトリ、マテリアル、テクスチャ、モーションです。
Scenegraph hierarchy
3ds Max のモデル、ライト、グループ、カメラなどを、ノードとして W3Dファイルに書き込むかどうかです。 シーン全体を書き出す場合は、常にこのオプションを選択する必要があります。このオプションを解除すると、ジオメトリ、マテリアル、テクスチャ、モーションの各リソースのみが書き出されます。
Geometry resources
このオプションを解除すると、形状を持たないモデルノードが書き出されます。
Shaders
マテリアルリソースを書き出すかどうかです。このオプションを解除すると、モデルノードは真っ黒に表示されます。
Animations
モーションリソースを書き出すかどうかです。
Texture map recource
テクスチャマップリソースを書き出すかどうかです。
Enable Toon and SDS
このオプションを使用すると、トゥーンとサブディビジョンサーフェスのための情報が書き込まれます。このオプションを解除するとファイル全体のサイズを小さくすることができます。SOLAのバージョン5では使用しませんが、今後のバージョンでサポートする可能性があります。
Material resources
このオプションは使用しません。選択は解除しないでください。
Light resources
このオプションを解除すると、ライトノードのプロパティが書き出されません。
Camera
デフォルト位置のカメラを指定できます。
Compression Setting
データ圧縮率の設定グループです。
Geometry quality
ジオメトリデータの品質です。通常は100の最大値に設定します。数字が低いほど、ポリゴンリダクションされ書き出されます。ポリゴン数を減らす場合は、MultiResモディファイアなどを使う方が分かりやすいでしょう。
Texture quality
テクスチャデータのJPEG圧縮率です。通常は100の最大値で構いません。Web3Dコンテンツなど、データサイズをコントロールする必要がある場合に調整します。
Animation quality
アニメーションデータの圧縮を制御します。一般に、圧縮率を上げる(品質を下げる)と、シーン内で作成した微妙なモーションが削除され、ところどころで小さなノイズアーティファクトが発生します。モーションキャプチャなどの複雑なアニメーションでない限り、最大値の100で構いません。
Texture Size Limits
テクスチャサイズの上限を設定します。SOLAでは、2の累乗サイズの使用が好まれます。そのため、エクスポータにはテクスチャを自動でサイズ変更するオプションがあります。
[No Limits on texture size]オプション。テクスチャのサイズを変更しません。
[512 by 512 pixels maximum]オプション。テクスチャのサイズを 512 * 512ピクセルに納まるよう変更します。
[256 by 256 pixels maximum]オプション。テクスチャのサイズを 256 * 256ピクセルに納まるよう変更します。
Animation Options
モーションデータの設定グループです。[Sampling interval]は、アニメーションのキーフレーム間隔です。[Range] では、キャプチャするシーンアニメーションのフレームを指定します。キーフレーム間隔を広くすると、W3Dファイルに書き込まれるキーフレームが少なくなるので、ファイルサイズが小さくなります。キーフレーム間のアニメーションは自動補間されますが、間隔が広いとオリジナルのアニメーションと異なる場合があります。一般に、急激に変化するアニメーションほど、キーフレーム間隔を狭くする必要があります。
View after export
書き出し後にプレビューします。プレビューウィンドウでは、書き出さないように指定したリソースが表示される場合があります。また、ライト、テクスチャ、マテリアルについては、完全に正しく表示されるわけではありません。必ずしも .w3d ファイルに書き込まれるシーンとは一致しません。

プレビューウインドウ

プレビューウィンドウでは、書き出さないように指定したリソースが表示される場合があります。また、ライト、テクスチャ、マテリアルについては、完全に正しく表示されるわけではありません。必ずしも .w3d ファイルに書き込まれるシーンとは一致しません。 テクスチャ量やポリゴン量が多いシーンは負荷が大きいため、正常にプレビューできない場合があります。また、極端にサイズの大きなシーンも正常にプレビューできません。SOLAで読み込む際には問題ありません。

回転
  • 左クリック = 旋回
  • 左クリック + y = "Y 軸が上" の状態でカメラを回転 ("Y 軸が上" の環境で作成されたシーンで特に有効)
  • 左クリック + Shift = ローリング (垂直方向の動きは無視)
ドリー
  • 左クリック + Ctrl = ドリー
  • 左クリック + Ctrl + Shift = 高速のドリー
移動
  • 左クリック + スペースキー = 移動
  • 左クリック + Shift + スペースキー = 水平方向または垂直方向 (最初にドラッグしたときの方向によって決まる) に動きを固

書き出しのガイドライン

シーン全体の書き出しのみ
3ds Max の[選択を書き出し]メニューを選択した場合でも、すべてのシーンが書き出されます。また、表示されていないオブジェクトも書き出されます。非表示のオブジェクトは、大抵の場合、グループノードに変換されます。
階層の折りたたみ
グループ化やリンクなどで階層化されたオブジェクトは、単純化され折りたたまれます。ノードの数を少なくするためのエクスポータの仕様ですが、予期せぬシーン階層になる場合があるのでご注意ください。階層の折りたたみの詳細はシーングラフ階層の規則をご覧ください。
固有の名前
オブジェクトは独自の名前が必要です。マテリアルやテクスチャで名前の重複がある場合、最初に書き出されたオブジェクトが使用されます。ノードの場合は、最後に書き出されたオブジェクトが優先されます。
座標系
3ds Max の座標系は Z軸が天を指します。SOLAのデフォルト座標系は Y軸が天です。座標系の違いはカメラコントロールに大きく影響します。3ds Maxで書き出した W3Dファイルを読み込んだ際には、SOLAの"TopAxisIsZ"プロパティをTrueに設定してください。
単位系
3ds Max のシステム単位系で書き出されます。3ds Maxで書き出した W3Dファイルを読み込んだ際には、SOLAの"meterUnit"プロパティを設定してください。システム単位系がミリメートルの場合、meterUnit=1,000とします。単位系が正しく設定されていない場合、ウォークスルーの速度が遅くなったり、"Z-Fighting"が発生することがあります。
リソースの共有
同じ形状のモデルがある場合はインスタンス化にします。インスタンス化した複数のモデルノードは、ひとつのジオメトリデータを共有します。
大きなモデル
数万以上のポリゴンを持つオブジェクトは、書き出しに時間が掛かる場合があります。メモリ搭載量に依りますが、たとえば26万ポリゴンのオブジェクトを書き出すのに必要なメモリは610MBです。オブジェクトを分割するなどして、ポリゴン数をコントロールしてください。一般的に 1万ポリゴン以下のオブジェクトに分割すると良好な結果が得られます。
両面ポリゴン
SOLAではポリゴンの背面はレンダリングされません。ポリゴンの法線を考慮せずモデリングされる方はご注意ください。両面をレンダリングする場合には、背面用のポリゴンを作成する必要があります。また、"sw3d_visibility"ユーザデータを"both"にすることで両面レンダリングが行われます。ただし、ポリゴンの背面には衝突判定しません。
同じ位置のポリゴン
同じ位置にポリゴンが存在すると、ポリゴンが明滅します。これは、"Z-Fighting"といい、どちらが手前に描画されるべきか判断できない状態にあります。この場合、どちらかのポリゴンをオフセットします。
テクスチャチャンネル
W3Dファイルに書き出されるテクスチャチャンネルは常に 1です。それ以外のチャンネルは書き出されません。
周囲光ライト
[環境と効果]ウインドウの[周囲光]カラーが周囲光ライトとして書き出されます。
指向性ライト
SOLAのDirectinalタイプのライトは、常にオーバーシュートされます。 3dsMaxの[オーバーシュート]オプションを選択すると、ライトの効果が分かりやすいでしょう。ライトの[カラー]と[強度]以外のプロパティは無視されます。
スポットライト
[フォールオフ]オプションを使って、円錐の角度を定義します。
減衰度
スポットライトとオムニライトの減衰度が使用できます。[減衰度]の[タイプ]と[開始位置]が W3Dファイルのライトに反映されます。
ライトの数
DirectXの制限上、一度に計算可能なライトは最大 8個までです。少ないと思われる方もいらっしゃると思いますが、幸いにも、リアルタイムレンダリングのコンテンツでは、ライトの効果に頼ることは少ないです。大抵の場合、周囲光、太陽光、補助光の3灯で充分です。さらに照明効果を望む場合は、マテリアルの周囲光を個別に調整したり、テクスチャによる表現で補います。
マテリアルのプロパティ
マテリアルの図
標準マテリアル以外のマテリアルの場合、対応するプロパティが変換されます。
3ds Max SOLA
周囲光 Ambient
拡散反射光 Diffuse
自己照明 Emission
鏡面反射光カラー x 鏡面反射レベル Specular
光沢 Shininess
100 - 不透明度 Transparent

マップの対応関係は、一般に次のようになります。
3ds Max SOLA
拡散反射光カラーマップ DiffuseMap
アルファチャンネルを持つ場合、モデルは透明になります。
フィルタカラーマップ LightMap
現在のカラーに乗算されるマップです。主に影の表現に利用されます。*.lm.w3dファイルのテクスチャ座標と共に使用します。
反射マップ ReflectionMap
現在のカラーにブレンドされるマップです。
光沢マップ GlossMap
ハイライトを作成するためのマップです。*.lm.w3dファイルのテクスチャ座標と共に使用します。
屈折マップ SpecularLightMap
光沢反射をシミュレートする際に使用されます。
不透明度マップ
テクスチャマップを使って不透明度を指定しないでください。不透明効果の作成に使用できるのは、拡散反射光カラーマップ (32 ビットの *.tgaや *.tif) のアルファチャンネルだけです。
ビットマップテクスチャのUVWの操作
ビットマップテクスチャの [ビットマップパラメータ] ロールアウトの [クロップ/配置] にある [UV] や [WH] を変更しないでください。このロールアウトのデフォルト以外の設定は無視されるため、予期しないテクスチャの配置になる可能性があります。テクスチャマッピングは、モデルのテクスチャ座標によって制御されます。
アニメーション
W3Dファイルには、ボーンアニメーションとキーフレームアニメーションを含めることができます。コンストレインなどは自動的に変換できない場合があるので、アニメーションを集約すると良いでしょう。
ボーンの書き出し
ボーンと結びつけるオブジェクトはボーンと共にグループ化します。
アニメートするカメラ
モデル以外のオブジェクトに直接付けられたアニメーションは書き出されません。たとえば、カメラをアニメートさせる場合、アニメートを付けたモデルの子にする方法、もしくはパスコンストレインなどで間接的にアニメートさせる方法があります。
階層の折りたたみとアニメーション
それぞれが独自のアニメーションを持つオブジェクトがグループ化やリンクされている場合は注意する必要があります。大抵の場合、階層が折りたたまれて最上位のオブジェクトのアニメーションのみが書き出されます。階層の折りたたみはシーングラフ階層の規則をご覧ください。
レベルオブディテール(LOD)の制御
レベルオブディテール (LOD) は、モデルから頂点を削除し、少ないデータ量で描画する SOLAの機能です。3ds Maxのエクスポータでは、LODに必要な情報をジオメトリリソースに含めることができます。LODのアルゴリズムは、各頂点の周りのサーフェスの滑らかさ分析し、滑らかなサーフェスは保持され、ぎざぎざしたサーフェスは削除するというものです。 通常は特に設定することなく、エクスポータが適当な情報を書き出します。さらに、"基本頂点"と"ユーザプロパティ"を利用することで、ユーザが詳細にコントロールすることも可能です。
"基本頂点"は、最後まで削除されない頂点です。シャープな形状を維持したい場合などに利用します。[メッシュ選択]や[ポリゴンを選択]モディファイアで選択した頂点が、"基本頂点"として書き出されます。あまり多くの頂点を選択すると LODの意味がありません。
sw3d_lod_adjust_normals、sw3d_lod_minimum_crease_angle、sw3d_lod_max_normal_error の各ユーザープロパティを使用すると、レベルオブディテールをさらに細かく調整できます。
SOLAに読み込んだモデルに穴が空いたり、法線の向きがおかしい場合は、LOD機能がうまく働いていない場合です。その場合は、SOLAでLOD機能をオフにするか、3ds Maxでモデルを修正します。 数万ポリゴンのモデルは細かく分割しましょう。LOD機能はモデルノードとカメラの距離に応じて機能します。モデルの中心が適当に分配されると LODに効果的です。

ユーザプロパティ

ユーザデプロパティは、W3Dエクスポータで書き出しを制御するために利用します。 また、書き出した後に、SOLAで参照することもできます。ユーザプロパティは次のような手順で設定します。

  1. 3ds Max でオブジェクトを選択します。
  2. オブジェクト上で右クリックし、[オブジェクトプロパティ] ダイアログを開きます。
  3. [ユーザ定義] タブを選択します。
  4. テキストボックスに、ユーザープロパティの名前と値を入力します。

ユーザープロパティは、プロパティ名とプロパティ値のペアとして指定します。プロパティ名とプロパティ値を関連付けるには、等号 (=) 記号を使います。プロパティ値の最後には、セミコロン (;) を使います。プロパティ名は、アルファベットで始まる英数字の文字列です。プロパティ名と等号 (=) 記号の間、および等号 (=) 記号とプロパティ値の先頭との間には、スペースは入れません。ユーザープロパティの数に制限はありません。プロパティ値は、現在半角 512 文字までに制限されています。以下はシンタックスの例です。

MyProperty1=A Monster called Fred;
CharacterLife=10;
sw3d_no_lod=true;

 

次は予約されているプロパティ一覧です。

プロパティ 解説
sw3d_no_lod Boolean True に設定すると、SOLAへ読み込み時に LODのデータとメモリが解放されます。 デフォルトはfalseです。
sw3d_visibility front, back, none, both モデルのポリゴンの表示方法です。デフォルトは frontです。
sw3d_lod_adjust_normals Boolean true の場合、モデルが単純化されると、新しいサーフェスの曲率を追跡するための新しい法線が作成されます。
false の場合は、元のモデルの法線が使用され、単純化されたサーフェスを追跡するための追加の法線は作成されません。
デフォルトはtrueです。
sw3d_lod_minimum_crease_angle 角度の 10倍を表す整数値 折り目の角度を設定します。オブジェクトが単純化されると、サーフェス間の角度が変わります。角度がここで設定した値を超えると、それぞれのサーフェスに別々の法線が追加されて、ハードエッジが形成されます。
デフォルトは750(75.0度)です。
sw3d_lod_max_normal_error 角度の 10倍を表す整数値 ファイルサイズとライティングの品質のバランスを調整します。値を大きくすると、ファイルサイズは小さくなりますが、ライティングのエラーが増えます。値を小さくすると、ファイルサイズは大きくなりますが、追加の法線が生成されてライティングの品質が向上します。
デフォルトは1350(135.0度)です。
sola_label 文字列 SOLAでオブジェクト名と異なる名前を表示する場合に使用します。オブジェクト名は通常、半角英数で編集することが無難です。日本語を含むバイト文字列を使用する場合に、このプロパティを使用します。デフォルトは、オブジェクト名です。

シーングラフ階層の規則

SOLAのシーングラフは、次のノードの階層構造で構成されています。

書き出しの処理には、W3Dファイルのノードの数を減らすというもう一つの目的があります。各ノードごとにレンダリング、衝突検出、ピッキングなどのテストが必要になるため、リアルタイムレンダリングのパフォーマンスを維持するためにはノードの数を減らす必要があります。そのため、エクスポータが、自動的に複数のメッシュを 1 つの モデルノードに折りたたみ、シーングラフを単純化します。SOLAでは、階層構造を利用したレイヤー機能など、階層構造の利用を推奨しています。このため、階層構造を維持したい場合には折りたたみの規則を理解する必要があるでしょう。逆に、グループ化を利用して 3ds Maxのモデルを維持しながら、SOLAのモデルノード数を減らすなど、階層の折りたたみを利用することもできます。

  1. 親を持たないノードはそのまま書き出されます。
  2. モデルを子に持つグループやモデルは、ひとつのモデルノードに折りたたまれます。
  3. モデル以外の子は、折りたたまれません。

ヒント: 3ds Max のスプラインオブジェクトは、SOLAのグループノードになります。スプラインを利用して意図的に階層構造を作ることできます。3ds Maxのグループ化は折りたたまれる可能性があるので、スプラインとリンク化を利用することをお奨めします。

透明度を含むモデルの分割

不透明度が 100でない、拡散反射光マップがアルファチャンネルを持つマテリアルのモデルノードは、特別です。SOLAでは、透明度を含むポリゴンを持つモデルを、オブジェクトソートにより描画します。通常の描画(ポリゴンソート)では、面の前後関係を判定し描画されますが、オブジェクトソートでは、面の前後関係を判定しません。奥にあるオブジェクトから順に描画していきます。透明度を含むモデルは適切にオブジェクトソートが行われる位置に配置しなければなりません。

SOLA サポートセンター > SOLA 5 > Tips > Shockwave3D Exporter for 3ds Max