PythonでMayaのShapeノードプラグインを作る

以前、C++でLocatorノードやShaderノードを作ったことはあったけど、C++はビルドの依存関係が結構面倒。もっと手軽に作りたくて、最近はPythonで書く方法を調べてる。
プラグイン開発の大枠はすでに理解してるんで、まあ、できるだろうと。書籍Maya Python 完全リファレンスも出てるし。

とりあえずロケーター作成の記事を見てみたら、やっぱり全体像はC++と同じみたい。
https://dftalk.jp/?p=3175

そんで、MayaのPython APIはバージョン1.0と2.0があることを知った。2.0はMaya 2012から使えるようになったらしい。
大きな違いはOpenMaya周りっぽい。→Maya Python API 2.0 Reference



今回はShapeノードを作ってみたいんだけど、公開されているサンプルコードはAPI 1.0で書かれていたので、それに倣って今回はAPI 1.0で作ることにする。
ShapeノードのPythonサンプルコードは以下2つ。(C++のリファレンスに混じってて見つけにくい)

さて、試しにこれらのサンプルをロードしてみると、一応Shapeノードとしてロードされるが、compute関数が空なので、ジオメトリはビューポート上に表示されるだけでレンダラには渡されない。つまり、Locatorと大差ないってこと。
全てのMayaノードはcompute関数を心臓部としていて、ここでoutputとなる情報を生成して出力のプラグに繋いでやる必要がある。Shaderの場合は、この出力がレンダラに渡す色になるわけ。
ということで、ちゃんとShapeノードとして機能させるには、ジオメトリのoutputアトリビュートを作ってcompute関数で値を生成してやる必要がある。
ここで参考になるのはC++の方のShapeノードのサンプル。apiMeshShape/~で始まるサンプルコードね。

結局C++を読む羽目になってるけど気にしない。
今日はここまで。

ところで、この手の書籍って何でノードよりもコマンドプラグインの解説が充実してるんだろう。

Maya Python 完全リファレンス (Maya Python for Games and Film)

関連記事

Boost オープンソースライブラリ

Mean Stack開発の最初の一歩

ZBrushでゴジラ2001を作ってみる 頭の概形作り

3分の動画でプログラミングを学習できるサイト『ドットインスト...

サンプルコードにも間違いはある?

Unityをレンダラとして活用する

Verilog HDL

mentalrayのSubsurface Scatterin...

ZBrushのZmodelerとDynamic Subdiv...

ラクガキの立体化 モールドの追加

adskShaderSDK

ROSの薄い本

Quartus II

R-CNN (Regions with CNN featur...

オープンソースの人体モデリングツール『MakeHuman』の...

機械学習で遊ぶ

konashiのサンプルコードを動かしてみた

顔モデリングのチュートリアル

ZBrushでアヴァン・ガメラを作ってみる 首回りの修正・脚...

Model View Controller

ZBrushで仮面ライダー3号を造る ベース編

ZBrushトレーニング

『ローグ・ワン/スター・ウォーズ・ストーリー』"あのキャラク...

ZBrushで仮面ライダー3号を造る 仮面編 DynaMes...

Accord.NET Framework:C#で使える機械学...

第20回 文化庁メディア芸術祭『3DCG表現と特撮の時代』

Iridescence:プロトタイピング向け軽量3D可視化ラ...

Raspberry PiのGPIOを操作するPythonライ...

色んな三面図があるサイト

OpenVDB:3Dボリュームデータ処理ライブラリ

AfterEffectsプラグイン開発

Physics Forests:機械学習で流体シミュレーショ...

ZBrushCore

HerokuでMEAN stack

レンダラ制作はOpenGL とか DirectX を使わなく...

SONYの自律型エンタテインメントロボット『aibo』

布のモデリング

Raspberry Pi 2のGPIOピン配置

ArUco:OpenCVベースのコンパクトなARライブラリ

GoB:ZBrushとBlenderを連携させるアドオン

ちょっと凝り過ぎなWebキャンペーン:全日本バーベイタム選手...

ZBrushで作った3Dモデルを立体視で確認できるVRアプリ...

コメント