OpenEXR : BitmapIO

OpenEXR クラスは、3ds Max 2011 で導入された OpenEXR 出力プラグインの設定にアクセスするためのインタフェースを公開します。

この BitmapIO は、以前使用可能だった MaxOpenEXR BitmapIO プラグインの完全な置き換えです。以前の 3ds Max 8 で導入されたプラグインは完全に削除されました。

コンストラクタ:

Class instances not creatable by MAXScript

エイリアス:

OpenEXR fopenexr

インタフェース: fopenexr

fopenexr interface は、プロパティを公開せず、次のメソッドがあります。

メソッド:

既定

<boolean>fopenexr.setDefaults ()

OpenEXR 処理とその既定値を初期化します。

<boolean>fopenexr.loadEXRParams <&String>exrName

exrName is In and Out parameter

指定の EXR ファイル名から EXR パラメータをロードします。

<boolean>fopenexr.saveEXRParams <&String>exrName

exrName is In and Out parameter

指定の EXR ファイル名から EXR パラメータを保存します。

<boolean>fopenexr.delAllAppDatas ()

すべての AppData を削除します。

成功した場合は true を返し、成功しなかった場合は false を返します。

メイン レンダリング出力

次のメソッドは、[OpenEXR 設定](OpenEXR Configuration)ダイアログにある[メイン レンダリング出力](Main Render Output)グループの[形式] (Format)と[タイプ] (Type)設定へのアクセスを提供します。

形式

Type

グローバル オプション

次のメソッドは、[OpenEXR 設定](OpenEXR Configuration)ダイアログダイアログにある、[圧縮] (Compression)、[ストレージ タイプ](Storage Type)、[イメージ領域](Image Region)の設定へのアクセスを提供します。

圧縮

<integer>fopenexr.getCompression ()

[圧縮] (Compression)ドロップダウン リストの選択インデックスに対応する整数を返します。

有効な値については次の表を参照してください。

選択インデックスの基数は 0 ですので注意してください。

<boolean>fopenexr.SetCompression <integer>compression

[圧縮] (Compression)ドロップダウン リストを整数引数によって指定されたリストに設定してください。

使用可能な値は次のとおりです。

コード 圧縮タイプ
0 圧縮なし
1 Run Length Encoding (RLE)
2 ZLIB 圧縮、スキャンラインごと
3 ZLIB 圧縮、16 スキャンライン ブロック
4 PIZ ベース ウェーブレット圧縮
5 ロッシー 24 ビット 浮動小数圧縮
6 ロッシー 4 x 4 ピクセル ブロック圧縮
7 ロッシー 4 x 4 ピクセル ブロック圧縮 (固定圧縮率)

ストレージ タイプ

<boolean>fopenexr.getSaveScanline ()

[ストレージ タイプ](Storage Type)が[イメージをスキャンラインとして保管](Store Image as Scanlines)に設定されている場合は true、[イメージをタイルとして保管](Store Image as Tiles)に設定されている場合は false を返します。

<boolean>fopenexr.setSaveScanline <boolean>saveScanline

引数が true の場合は[ストレージ タイプ](Storage Type)を[イメージをスキャンラインとして保管](Store Image as Scanlines)に設定します。

引数が false の場合は[ストレージ タイプ](Storage Type)を[イメージをタイルとして保管](Store Image as Tiles)に設定します。

<integer>fopenexr.getTileSize ()

[ストレージ タイプ](Storage Type)が[スキャンライン] (Scanline)に設定されたときは、使用されているタイル サイズを返します。

タイル サイズはユーザ インターフェースに公開されていません。

注: [タイル サイズ](Tile Size)オプションはユーザ インターフェースに公開されていません
<boolean>fopenexr.setTileSize <integer>tileSize

[ストレージ タイプ](Storage Type)が[スキャンライン] (Scanline)に設定されたときは、使用されているタイル サイズを設定します。

タイル サイズはユーザ インターフェースに公開されていません。

注: [タイル サイズ](Tile Size)オプションはユーザ インターフェースに公開されていません

イメージ領域

<boolean>fopenexr.getSaveRegion ()

[イメージ領域](Image Region)ドロップダウン リストが[地域を保存](Save Region)に設定されている場合、true を返します。

[イメージ領域](Image Region)ドロップダウン リストが[完全なイメージを保存](Save Full Image)に設定されている場合、false を返します。

<boolean>fopenexr.setSaveRegion <boolean>saveRegion

ブール値の引数が true の場合、[イメージ領域](Image Region)オプションを[地域を保存](Save Region)に設定します。

ブール値の引数が false の場合、[イメージ領域](Image Region)オプションを[完全なイメージを保存](Save Full Image)に設定します。

OpenEXR レイヤ

<integer>fopenexr.numLayers ()

EXR ファイル内の現在のレイヤ数を返します。

<integer>fopenexr.getLayerType <integer>layer

0 インデックス付きレイヤのタイプを整数として返します。

有効な値は次のとおりです。

0 - メイン レンダリング レイヤ - 引数 0 の場合常に返されます。

1 - レンダリング要素 レイヤ

2 - G-バッファ チャネル レイヤ

<Stringby value>fopenexr.getLayerName <integer>layer

0 ベースの引数で指定されたレイヤの 3ds Max で使用される名前を返します。

メイン レンダリング レイヤ(整数 0)の場合、値は常に空の文字列("")になります。

これは、[レンダリング要素](Render Elements)の場合、[レンダリング設定](Render Setup)ダイアログの[レンダリング要素](Render Elements)パネルに表示される名前になります。

G-バッファ チャネルの場合、ユーザ インターフェースに表示される標準の名前になります。

<boolean>fopenexr.setLayerName <integer>layer <&String>name

name is In and Out parameter

3ds Max の名前を指定のレイヤーに設定します。

<Stringby value>fopenexr.getLayerOutputName <integer>layer

引数で指定されたレイヤの EXR ファイルで使用される名前を返します。

これは、[レンダリング要素](Render Elements)および[G-バッファ ID チャネル](G-Buffer Channels) リストの[レイヤ] (Layer)列に表示される名前になります。

<boolean>fopenexr.setLayerOutputName <integer>layer <&String>name

name は入出力パラメータです

0 ベースの 1 番目の引数で指定されたレイヤの EXR ファイルで使用される名前を設定します。この場合、0 はメイン レンダリング レイヤを表します。

これは、[レンダリング要素](Render Elements)および[G-バッファ ID チャネル](G-Buffer Channels) リストの[レイヤ] (Layer)列に表示される名前になります。

<integer>fopenexr.getLayerOutputType <integer>layer

指定された破片のタイプを返します。

可能なレイヤの出力タイプは次の通りです。

0 - RGBA

1 - RGB

2 - モノ

3 - XYZ (G-バッファ チャネルのみ)

4 - XY (G-バッファ チャネルのみ)

5 - UV (G-バッファ チャネルのみ)

<boolean>fopenexr.setLayerOutputType <integer>layer <integer>type

1 番目の引数で指定されたレイヤの出力タイプを 2 番目の引数の値に設定します。

1 番目の引数が 0 として指定されている場合、メイン レンダリング レイヤのタイプが設定されます。

2 番目の引数として可能な値は次の通りです。

0 - RGBA

1 - RGB

2 - モノ

3 - XYZ (G-バッファ チャネルのみ)

4 - XY (G-バッファ チャネルのみ)

5 - UV (G-バッファ チャネルのみ)

<integer>fopenexr.getLayerOutputFormat <integer>layer

指定されたレイヤの出力フォーマットを返します。

有効な値は次のとおりです。

0 - FLOAT32

1 - FLOAT16

2 - INT32

<boolean>fopenexr.setLayerOutputFormat <integer>layer <integer>format

1 番目の引数で指定されたレイヤの出力フォーマットを 2 番目の引数で指定されたタイプに設定します。

1 番目の引数が 0 として指定されている場合、メイン レンダリング レイヤのフォーマットが設定されます。

2 番目の引数として可能な値は次の通りです。

0 - FLOAT32

1 - FLOAT16

2 - INT32

例:

以下に、メイン レイヤの出力フォーマットとタイプを設定する例を示します。

    fopenexr.setLayerOutputFormat 0 0 -- set Main Render to FLOAT32
    fopenexr.setLayerOutputType 0 1 -- set Main Render to RGB

レンダリング要素 レイヤ

<maxObject>fopenxr.getRenderElementByLayer <integer>layer

レンダリング要素を指定したレイヤの MAXObject として返します。3ds Max 2017 以降で使用可能です。

<boolean>fopenxr.getLayerEnabled <integer>layer

指定したレイヤが有効な場合は、true を返します。3ds Max 2017 以降で使用可能です。

<boolean>fopenexr.isAutoAddRenderElements ()

[レンダリング要素の自動的な追加/削除](Automatically Add/Remove Render Elements)オプションの現在の状態を返します。

<boolean>fopenexr.setAutoAddRenderElements <boolean>add

[レンダリング要素の自動的な追加/削除](Automatically Add/Remove Render Elements)オプションの現在の状態を設定します。

<boolean>fopenexr.addRenderElementLayer <&String>name <&String>outname <integer>type <integer>format

name is In and Out parameter
outname is In and Out parameter

レンダリング要素レイヤを追加します。 (3ds Max) の名前、出力 (EXR) の名前、タイプ、フォーマットを指定する必要があります。

<boolean>fopenexr.delRenderElementLayer <&String>name

name is In and Out parameter

レンダリング要素レイヤを、(3ds Max) での名前で指定して、削除します。

<boolean>fopenexr.addRenderElementLayerRef <maxObject>element <&String>outname <integer>type <integer>format

outname is In and Out parameter

標準のレンダリング要素マネージャから取得した MAXObject をレンダリング要素として追加します。

<boolean>fopenexr.delRenderElementLayerRef <maxObject>element

MAXObject として渡される指定のレンダリング要素レイヤを削除します。

例:

以下は、MAXObject 変数を使用してレンダリング要素レイヤに追加する例です。

    reMgr = maxOps.GetCurRenderElementMgr ()
    el = reMgr.getRenderElement 1
    fopenexr.addrenderelementlayerref el "diffuse" 0 0
注:

上記の 2 つの参照関数で、同じ名前を持つレンダリング要素レイヤを管理できます。

<integer>fopenexr.delAllRenderElementLayers ()

すべてのレンダリング要素レイヤを削除します。

削除されたレイヤの数を返します。

G-バッファ チャネル レイヤ

<boolean>fopenexr.addGBufferChannelLayer <integer>channel <&String>name <integer>type <integer>format

name is In and Out parameter

G-バッファ チャネル レイヤを追加します。チャネル、(3ds Max) 名前、タイプ、形式を指定する必要があります。

<boolean>fopenexr.delGBufferChannelLayer <&String>name

name is In and Out parameter

(3ds Max) 名前で指定された G-バッファ チャネル レイヤを削除します。

<integer>fopenexr.delAllGBufferLayers ()

すべての G-バッファ レイヤを削除します。

削除されたレイヤの数を返します。

カスタム属性

MAXScript を使用して、カスタム アトリビュートまたは「メタデータ」を OpenEXR ファイルに保存できます。これらのアトリビュートは、任意のデータを含むことができ、3ds Max で無視されます。

他の OpenEXR アプリケーションで読み込んで使用できるアトリビュートは、データ (ここで説明されているカメラ アトリビュートなど)のmight be場合もあります。

注:

目的は 3ds Max のユーザ インターフェースでオブジェクトのプロパティとして定義できるカスタム アトリビュートと似ていますが、EXR ファイルのカスタム アトリビュートは、オブジェクトのアトリビュートから完全に独立しています。

カスタム アトリビュートごとに名前とインデックスがあります。

名前はユーザ定義の文字列です。

インデックスは、アトリビュートがファイルに追加された順序を示す基数 0 のインデックスです。

カスタム OpenEXR アトリビュートを取得する

<integer>fopenexr.numAttributes ()

EXR ファイルのカスタム アトリビュートの数を返します。

<Stringby value>fopenexr.getAttributeName <integer>attribute

基数 0 のインデックスが付いたアトリビュートの名前を返します。

<integer>fopenexr.getAttributeType <integer>attribute

整数値に基数 0 のインデックスが付いたアトリビュートのタイプを返します。

アトリビュートのタイプのコードは以下のとおりです。

FOPENEXR_ATTRIB_STRING=0

FOPENEXR_ATTRIB_FLOAT=1

FOPENEXR_ATTRIB_INT=2

FOPENEXR_ATTRIB_MATRIX=3

<Stringby value>fopenexr.getAttributeStringValue <integer>attribute

指定された基数 0 インデックスが付いた文字列アトリビュートの値を返します。

<float>fopenexr.getAttributeFloatValue <integer>attribute

指定された基数 0 インデックスが付いた浮動小数点アトリビュートを返します。

<integer>fopenexr.getAttributeIntValue <integer>attribute

指定された基数 0 インデックスが付いた整数アトリビュートを返します。

<matrix3 by value>fopenexr.getAttributeMatrixValue <integer>attribute

指定された基数 0 インデックスが付いた変換行列のアトリビュートを返します。

カスタム OpenEXR アトリビュートを追加する

<boolean>fopenexr.addStringAttribute <&String>attribute <&String>value

attribute is In and Out parameter
value is In and Out parameter

文字列値のアトリビュートを追加し、名前と値を指定します。

<boolean>fopenexr.addFloatAttribute <&String>attribute <float>value

attribute is In and Out parameter

浮動小数点値のアトリビュートを追加し、名前と値を指定します。

<boolean>fopenexr.addIntAttribute <&String>attribute <integer>value

attribute is In and Out parameter

整数値のアトリビュートを追加し、名前と値を指定します。

<boolean>fopenexr.addMatrixAttribute <&String>attribute <matrix3 by value>value

attribute is In and Out parameter

変換行列値のアトリビュートを追加し、名前と値を指定します。

カスタム OpenEXR アトリビュートを削除する

<boolean>fopenexr.delAttribute <&String>attribute

attribute is In and Out parameter

指定された頂点を削除します。

<integer>fopenexr.delAllAttributes ()

EXR ファイルからすべてのカスタム アトリビュートを削除します。

削除されたアトリビュートの数を返します。

SavingCamera アトリビュート

EXR ファイルでカメラ アトリビュートを保存できます。

[カメラ] (Camera)ビューポートからレンダリングする必要があります。

注: カメラ アトリビュートの保存がユーザ インタフェースに公開されていなく、MAXScript でのみアクセス可能です。

EXR ファイルに保存されるカメラ アトリビュートは以下のとおりです。

カメラ アトリビュートは、カスタム アトリビュートの特殊なケースです。

<boolean>fopenexr.getSaveCameraAttributes ()

[カメラ アトリビュートの保存](Save Camera Attributes)オプションの現在の状態を返します。

True の場合カメラ アトリビュートは OpenEXR で保存されます。

False の場合カメラ アトリビュートは OpenEXR で保存されません。

<boolean>fopenexr.setSaveCameraAttributes <boolean>saveCamera

ブール値の引数に対してカメラ アトリビュートの保存の状態を設定します。