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)


スポンサーリンク

関連記事

人間の顔をそっくりそのままCGで復元する『Digital Emily Project』
Blenderでよく使うaddon
書籍『メイキング・オブ・ピクサー 創造力をつくった人々』を読んだ
OpenCVでPhotoshopのプラグイン開発
実写と実写の合成時の色の馴染ませテクニック
Iterator
Maya API Reference
スクレイピング
Stanford Bunny
iPhone 3GSがますます欲しくなる動画
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイクダウン
Raytracing Wiki
軽量なジオメトリ処理ライブラリ『libigl』
フィーリングに基づくタマムシの質感表現
C#で使えるNumPyライクな数値計算ライブラリ『NumSharp』
konashiのサンプルコードを動かしてみた
Unityからkonashiをコントロールする
参考になりそうなサイト
C++ 標準テンプレートライブラリ (STL)
iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
生物の骨格
Blenderの人体モデリングアドオン『MB-Lab』
UnityでOpenCVを使うには?
ラクガキの立体化 1年半ぶりの続き
Houdiniのライセンスの種類
ZBrushのZScript入門
OpenCV 3.3.0-RCでsfmモジュールをビルド
PythonのStructure from Motionライブラリ『OpenSfM』
HerokuでMEAN stack
OpenCVでiPhone6sのカメラをキャリブレーションする
ヘッドマウントディスプレイとビジュアリゼーションの未来
ZBrushで仮面ライダー3号を造る 仮面編 Dam Standardブラシでディティールを彫る
BSDF: (Bidirectional scattering distribution funct...
PGGAN:段階的に解像度を上げて学習を進めるGAN
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
GAN (Generative Adversarial Networks):敵対的生成ネットワーク
ROSの薄い本
UnrealCLR:Unreal Engineで.NET Coreを利用できるプラグイン
ZBrushでアヴァン・ガメラを作ってみる モールドの彫り込み・身体の形出し
BlenderのPython環境にPyTorchをインストールする
ラクガキの立体化 目標設定

コメント