ユーザ用ツール

サイト用ツール


opengl:dcc_tools

DCC tools

Maya

  • 動作環境: Windows, Mac OS X, Linux
  • Y-up
  • mel
    • Maya 独自の script 言語。内部のオペレーションは men コマンドの集合で表現できる。Attribute Editor (AE) 等 UI の記述にも利用。
  • C++
    • OpenMaya API を介して、mel よりも深い情報へのアクセスが可能。C++ Object ベース。
    • Object と Function を完全に分離している、階層構造の他に Attribute の Connection 情報 (DAG) を保持できるなど。
    • 初期の Plug-in はすべて C++ で記述されていた。
  • Python 2.x
    • Maya 8.5 より Python をサポート。python からは mel コマンドと C++ API の両方にアクセスできる。
    • AE などの組み込み UI はやはり mel を使う。

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

  • 動作環境: Windows
  • Z-up
  • C言語
    • Plug-in は C言語で Windows API を直接利用する形。
    • Maya のように OS から完全に独立した API セットではなく Windows に依存している。
    • 初期の頃はマニュアルが整備されておらず、API リファレンスがなかった。
  • MAXScript
    • Maya のように内部構造と一致していない。
  • Python 2.x
    • 2014 より対応したらしい。

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

Blender

  • 動作環境: Windows, Mac OS X, Linux
  • Z-up

Plug-in

Houdini

opengl/dcc_tools.txt · 最終更新: 2014/04/22 22:28 by oga