目次

DCC tools

Maya

Scripting

mel は関数型の書式と、Unix のような Command Line 型の書式が混在している。 そのため C言語と ShellScript (csh) が混在したような形となっている。 静的な型付けあり。

// Function Type
string $result= func( param1 ~ );

// Command Line Type
string $result= `command -flag1 param1 ~`;

Command Line 型引数では、Expression 範囲が明確にならないため必ず括弧 '('~')' で囲む必要がある。

print ( $param + $param2 );

関数名とファイル名を一致させておくと自動的に検索が行われ、勝手に読み込んでくれる。 既存の UI はすべて mel で書かれているので、ユーザーサイドの同名の mel コマンドで上書きできる。 検索パスはユーザー側の mel を優先する。

Plug-in

基本的には mel Command を実装して mel で UI を作成し、必要に応じて Command を呼び出す。 Command 以外の Plugin 形式も多数存在する。 Viewport の拡張も可能。

独自ノードの追加には ID 割り当てが必要。

Data access

情報は Node 単位で保持されている。 JavaScript などの Object と同じで、情報は名前付きの Attribute に格納されている。 自由に追加削除が可能。

他の言語と異なるのは、Attribute 同士の入出力を Connection 可能なこと。 必要な情報を得るためには、Node 同士の Connection (Plug) をたどって関連する情報を調べる必要があり。

Node の各アトリビュートは mel と同じように名前でアクセスできる。

自由度が非常に高いので、データの決め打ちはできない。 どのような構造になっているのかその都度調べていく。

ShaderFX

Maya 2015 よりサポートした Connection Base の Hardware シェーダーエディタ。 Maya 上で Rendring できる他、直接 hlsl/glsl/cg の出力が可能。

従来の Shading Network とは完全に別物で、Shading Network の 1 Node の中に HW 専用の Node 構造が含まれている。 Maya から見れば 1 Material 扱いとなる。

ShaderFX Node の情報は “Expose as Material Input” にチェックを入れると外部から Connection できる情報となる。 チェックがない場合は Shader 内部の定数値とみなす。

“Expose as Material Input” を指定した場合、Material node の Attribute として公開される。

3ds Max

基本的に情報は番号管理でシンプル。

Blender

Plug-in

Houdini