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)


スポンサーリンク

関連記事

SIGGRAPH Asia
fSpy:1枚の写真からカメラパラメーターを割り出すツール
Quartus II
2D→3D復元技術で使われる用語まとめ
clearcoat Shader
『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた
ゴジラ(2014)のディティール制作の舞台裏
服飾デザインツール『CLO』
Faceshiftで表情をキャプチャしてBlender上でMakeHumanのメッシュを動かすデモ
スクラッチで既存のキャラクターを立体化したい
ZBrush 2018へのアップグレード
Open3D:3Dデータ処理ライブラリ
3Dディープラーニング用のPyTorchライブラリ『Kaolin』
Mean Stack開発の最初の一歩
この連休でZBrushの スキルアップを…
『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイクダウン
生物の骨格
Maya LTのQuick Rigを試す
UnityでARKit2.0
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
C#で使えるNumPyライクな数値計算ライブラリ『NumSharp』
読みやすくて高速なディープラーニングのフレームワーク『Caffe』
Unity MonoBehaviourクラスのオーバーライド関数が呼び出される順番
『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン まとめ
ZBrush キャラクター&クリーチャー
オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』
ZBrushCoreのTransposeとGizmo 3D
3DCG Meetup #4に行ってきた
Mayaのプラグイン開発
科学技術計算向けスクリプト言語『Julia』
CreativeCOW.net
『PIXARのひみつ展』に行ってきた
HerokuでMEAN stack
JavaによるCGプログラミング入門サイト (日本語)
Maya 2015から標準搭載されたMILA
Google Earth用の建物を簡単に作れるツール Google Building Maker 公...
HD画質の無駄遣い その2
書籍『OpenCV 3 プログラミングブック』を購入
Paul Debevec
オープンソースの3Dメッシュデータライブラリ『OpenMesh』
マルコフ連鎖モンテカルロ法
書籍『ROSプログラミング』

コメント