ワークフローでの考慮点
 
 
 

Maya で OpenFlight ファイルを扱う場合、ワークフローに関して次の事項を考慮しておく必要があります。

ファイルのインポート時

OpenFlight モデルは Z アップ軸を上向きにして構築されます。 ファイル > シーンを開く(File > Open Scene)を使用してモデルを Maya に読み込む場合、Maya のデフォルトの方向が再配置されて Z 軸がアップ ベクトルになります(通常 Maya では、Y 軸がアップ ベクトル)。

ファイル > インポート(File > Import)を使用して Maya にファイルを読み込む場合、方向はインポートによって左右されます。インポートされたデータを正しい方向に向ける必要があります。

ファイルのエクスポート時

ここでは、Maya から OpenFlight ファイルをエクスポートする際の制限についていくつか挙げます。

モデルのシェーディング時

フラット シェーディング

OpenFlight オブジェクトにはフラット シェーディングのフラグがあります。これは、オブジェクトをフラット シェーディングで描画するか、Gouraud(スムース)シェーディングで描画するかを指定します。このフラグは、Maya のポリゴンのスムース シェーディング(Smooth Shading)アトリビュートにコネクトされるようになりました(アトリビュート エディタ(Attribute Editor)のシェイプ(Shape)ノードのレンダリング詳細(Render Stats)セクション参照)。

OpenFlight は、フェース レベルとオブジェクト レベルの両方でフラット シェーディング フラグをサポートしますが、Maya では、オブジェクト レベルのフラグのみをサポートします。このため、Maya にインポートするオブジェクトのフラット シェーディング フラグは、オブジェクトとそのすべてのフェースで必ず等しい値に設定する必要があります。

照明

OpenFlight オブジェクトの照明フラグは、オブジェクトを近くのライトで照らすか、自己照明のみを適用するかを指定します。

自己照明オブジェクトをインポートすると、該当する Maya オブジェクトの次のアトリビュートがオフになります: シャドウの投影(Casts Shadows)シャドウの受像(Receive Shadows)反射に現れる(Visible in Reflections)屈折に現れる(Visible in Refractions)。インポートされたオブジェクトが自己照明オブジェクトではない場合、これらのアトリビュートはすべてオンになります。

Maya オブジェクトを OpenFlight にエクスポートすると、Maya オブジェクトのシャドウの受像(Receive Shadows)アトリビュートがオフになっている場合に限り、自己照明フラグが設定されます。

スイッチ ノードの使用時

Maya では OpenFlight スイッチ ノードがサポートされています。スイッチ ノードでは、グループのトランスフォーム(Transform)ノードに適用される表示マスク配列が許されます。表示マスクでは、子ノードが 1 ビットで表示されます(カレントの実装でサポートされているのは、32 個までの子ノードです)。

スイッチ ノードがグループ トランスフォーム ノードに適用され、ハイパーグラフ(Hypergraph)を通して見たり、選択したりできるヘルパー(Helper)ノードとして実装されています。現在選択されているマスクは、スイッチ ノードに関連するアトリビュート エディタ(Attribute Editor)を通して修正できます。

スイッチ ノードは、スイッチ ノード付きの OpenFlight データベースが Maya に読み込まれるときに自動的に作成されます。また、このノードは、Maya モデリング環境内で fltSwitch コマンドを使用して作成することもできます。

スイッチ ノードのアトリビュート

ロング ネーム(ショート ネーム) タイプ デフォルト フラグ

outputVis(out)

Tint32

0

R

curMask(in)

Tint32

0

RWSK

maskWidth(mkw)

Tint32

0

RWS

numMasks(nmk)

Tint32

0

RWS

masks(mks)

Tint32

0

ARWS

fltSwitch コマンド

書式

FltSwitch [flags]

戻り値

[string[]](作成時のオブジェクト名またはノード名)

説明

このコマンドは、Maya でスイッチ ノードの作成、編集、または照会を行う際に使用されます。

フラグ

-p(c)親グループのトランスフォーム ノード

-cm(eq)カレントのスイッチ ノード マスクの設定または照会

-n(ceq)扱うノードの名前

-am(e)選択されているオブジェクトに応じたマスクの追加

-em(e)選択されているオブジェクトに応じたアクティブなマスクの編集

-dm(e)カレント マスクの削除

// Create a Switch node
fltSwitch -n sw1;
// After some geometry has been added under sw1, masks maybe created by selecting the geometry to be visible under the switch for the mask and and then using the fltSwitch command as follows.
fltSwitch -e -am -n sw1;
// Setting the current mask to the desired switch will enable that mask.
fltSwitch -e -cm 0 -n sw1;

ライト ポイント(Light Point)を使用する場合

Maya では OpenFlight ライト ポイント(Light Point)がサポートされています。ライト ポイントを使用して、レンダー プロパティのないライトの配列を作成することができます。

この光源は、OpenFlight ファイルにインポートおよびエクスポートすることができます。ただし、次の制限があります。

インポート

エクスポート

ライト ポイントは Maya のシェイプとして実装されます。ライト ポイントは、ライト ポイント付き OpenFlight データベースが Maya に読み込まれる際に自動的に作成されます。または、OpenFlight のメニュー コマンドや MEL コマンド fltLightPoints を使って Maya で作成することもできます。

LightPointShape にはそれぞれ、任意の数のライト ポイントを含めることができます。LightPointShape を選択してそのアトリビュート エディタ(Attribute Editor)を開くと、ライト ポイント アトリビュートがすべて使用可能な状態になります。このアトリビュートには、Maya では可視となるエフェクトがなくても編集、保存、エクスポートはできるものがたくさんあります。

ライト ポイント アトリビュート

ロング ネーム(ショート ネーム) タイプ デフォルト フラグ

LightPointsMin(lpmn)

double3

0

RWS

LightPointsMax(lpmx)

double3

0

RWS

SurfaceMaterialCode(smc)

Tint16

0

RWS

FeatureId(fid)

Tint16

0

RWS

BackColor(bc)

Tint32

0

RWS

DisplayMode(dm)

enum

0

RWS

Intensity(ity)

float

0

RWS

BackIntensity(bit)

float

0

RWS

MinimumDefocus(mndf)

float

0

RWS

MaximumDefocus(mxdf)

float

0

RWS

FadingMode(fm)

Tint32

0

RWS

FogPunchMode(fpm)

Tint32

0

RWS

DirectionalMode(drm)

Tint32

0

RWS

RangeMode(rm)

Tint32

0

RWS

MinimumPixelSize(mnps)

float

0

RWS

MaximumPixelSize(mxps) float 0 RWS
ActualSize(aps) float 0 RWS
TransparentFalloffPixelSize(tfps) float 0 RWS
TransparentFalloffExponent(tfe) float 0 RWS
TransparentFalloffScalar(tfs) float 0 RWS
TransparentFalloffClamp(tfc) float 0 RWS
FogScalar(fs) float 0 RWS
SizeDifferenceThreshold(sdt) float 0 RWS
DirectionalType(drt) enum 0 RWS
HorizontalLobeAngle(hla) float 0 RWS
VerticalLobeAngle(vla) float 0 RWS
DirectionalFallofExponent(dfe) float 0 RWS
DirectionalAmbientIntensity(dai) float 0 RWS
AnimationPeriod(ap) float 0 RWS
AnimationPhaseDelay(apd) float 0 RWS
AnimationEnabledPeriod(aep) float 0 RWS
Significance(sig) float 0 RWS
Calligraphic(call) Tint32 0 RWS
Flags(flgs) Tint32 0 RWS
XanimRotateAxis(xra) float 0 RWS
YanimRotateAxis(yra) float 0 RWS
ZanimRotateAxis(zra) float 0 RWS
LightColors(lc) Double3 0 ARWS
LightNormals(ln) Double3 0 ARWS
InputLightPoints(ilp) 0x58000014 0 RW
OutputLightPoints(olp) 0x58000014 0 RS
WorldLightPoints(wlp) 0x58000014 0 ARS
CachedLightPoints(clp) 0x58000014 0 RWS
DisplayNormals(dn) Boolean false RWSK
DisplayLobe(dl) Boolean false RWSK

ライト ポイントの機能が拡張されて、表示されるライト ポイント シェイプのアトリビュートがいくつか増えました。

表示 > 法線(Display > Normals)表示 > ローブ(Display > Lobe)には共に Creator に該当するオプションがありません。これらは、Maya 内でシーンを作成するときに、法線の可視性とライト ポイントのローブを制御する場合に使用します。全方向ライトのローブを表示することはできません。

現在のところ、実際に設定されている値に関係なく、背景のカラーは赤でのみ表示されます。ただしこのデフォルト カラーは、背景およびアンビエント強度に反応します。これにより、さらに高度なシミュレーションを行うことができます。

fltLightPoints コマンド

書式

fltLightPoints [flags]

戻り値

[string[]](オブジェクト名またはノード名)

説明

このコマンドは、Maya でライト ポイントを作成するときに使用します。

フラグ

-d(c)ライト ポイント間の距離

-c(c)作成すライト ポイント数

-n(c)作成するノードの名前

-p(c)親グループのトランスフォーム ノード

-nt(c)これが指定されている場合、親のトランスフォーム ノードは作成されません。この場合、親も –p フラグで指定する必要があります。

-clr(ce)作成されたすべてのライト ポイントに適用される RGB のカラー値。それぞれの値は 0.0 から 1.0 の範囲になるはずです。編集モードでは、ライト ポイントが選択されていなければ、-n を使ってライト ポイント シェイプの名前を指定する必要があります。

-nml(ce)作成されたすべてのライト ポイントに適用される法線。編集モードでは、ライト ポイントが選択されていなければ、-n を使ってライト ポイント シェイプの名前を指定する必要があります。

-dt(ce)タイプは、"OMNIDIRECTIONAL"、"UNIDIRECTIONAL"、または "BIDIRECTIONAL" のいずれかでなければなりません。デフォルトでは、ライト ポイントは全方向(OMNIDIRECTIONAL)になります。

-dnml(ce)は、法線の表示の有効/無効を切り替えます(true/false)。

// Create 3 light points spaced 0.5 UI units apart
fltLightPoints –c 3 –d 0.5/
/ this creates a light point string with 5 light points and visible normals
fltLightPoints -c 5 -dnml true;
// this makes the normals of the selected light points string invisible and
// changes the light type to be Unidirectional.
fltLightPoints -e -dnml false -dt UNIDIRECTIONAL;

fltLightsOnCurve スクリプト

書式

fltLightsOnCurve [arguments]

戻り値

なし(None)

説明

このスクリプトは、既存のカーブを使用し、配置のガイドとして現在選択されているカーブを使って、指定された数のライト ポイントを作成します。ライト ポイントはこのカーブに沿って均等な間隔で配置されます。

: このカーブは構築専用であり、このスクリプトで変更されます

このスクリプトを使用するには

  1. カーブを作成してライト ポイントを配置する際のガイドとして使用します。
  2. カーブを選択してこのスクリプトを実行します。

// Create 3 Red Light Points equally spaced along the selected curve
fltLightsOnCurve 3 1.0 0.0 0.0;
引数

Arg1 作成するライト ポイントの数を指定する整数

Arg2 ライト ポイントに割り当てられたカラーの赤(Red)コンポーネントを指定する浮動小数点(0.0~ 1.0)

Arg3 ライト ポイントに割り当てられたカラーの緑(Green)コンポーネントを指定する浮動小数点(0.0~ 1.0)

Arg4 ライト ポイントに割り当てられたカラーの青(Blue)コンポーネントを指定する浮動小数点(0.0~ 1.0)

DOF(Degree Of Freedom)ノード

Maya のトランスフォーム ノードはすべて DOF ノードを表すことができます。DOF ノードにはそれぞれ使用できる情報に制限があり、デフォルトではそれぞれ独自の座標空間で動作します。

Maya トランスフォーム ノードから DOF を作成するには

LOD(Level Of Detail)ノード

Maya の LOD ノードの動作は、OpenFlight の LOD ノードとは若干異なっています。OpenFlight の LOD ノードの動作をシミュレーションするには、LOD ノードで制御される単一のグループのトランスフォーム ノードに、OpenFlight LOD ノードの子をすべてグループ化します。Maya の switch in/switch out 要件にあわせて制御さした LOD ノードの前や後に、null のトランスフォーム ノードを挿入することもできます。

注:このノードを削除すると、LOD が正しく動作しなくなります。

また、Maya の LOD は特定のカメラに関連付けられています。OpenFlight ファイルをインポートする際に、fltLOD という名前のカメラが作成されます。LOD の動作を有効にするには、このカメラを使用する必要があります。Maya で新しい LOD ノードが作成されると、同様に LOD カメラに関連付けられます。