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)

関連記事

『ローグ・ワン/スター・ウォーズ・ストーリー』のVFXブレイ...

日本でMakersは普及するだろうか?

Structure from Motion (多視点画像から...

MetaHumanの頭部をBlenderで編集できるアドオン

テスト

白組による『シン・ゴジラ』CGメイキング映像が公開された!

ZBrushのお勉強

PyDataTokyo主催のDeep Learning勉強会

Raspberry Piでセンサーの常時稼働を検討する

ラクガキの立体化 胴体の追加

Maya には3 種類のシェーダSDKがある?

海外ドラマのChromaKey

ZBrushでゴジラ2001を作ってみる 姿勢の変更

Maya LTでFBIK(Full Body IK)

ZBrush 4R8 リリース!

Mayaのプラグイン開発

Google製オープンソース機械学習ライブラリ『Tensor...

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

iPhone x ロボットハッカソン~RomoのiPhone...

AndroidもopenGLも初心者さ (でもJavaは知っ...

BlenderのPython環境にPyTorchをインストー...

Raspberry Pi 2を買いました

cvui:OpenCVのための軽量GUIライブラリ

OpenCVでiPhone6sのカメラをキャリブレーションす...

OpenCV バージョン4がリリースされた!

HerokuでMEAN stack

Human Generator:Blenderの人体生成アド...

Blender 4.2以降のWindowsPortable版...

PolyPaint

NeuralNetwork.NET:.NETで使えるTens...

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

手を動かしながら学ぶデータマイニング

Point Cloud Libraryに動画フォーマットが追...

ZBrush 2018での作業環境を整える

オープンソースの物理ベースGIレンダラ『appleseed』

ZScript

ポリ男をリファイン

定数

Konashiを買った

ラクガキの立体化 3Dプリント注文

ZBrushでアヴァン・ガメラを作ってみる 歯を配置

BlenderでPhotogrammetryできるアドオン

コメント