サイトアイコン NegativeMindException

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++を読む羽目になってるけど気にしない。
今日はここまで。

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



スポンサーリンク

関連記事

  • 映画『ジュラシック・ワールド』のVFXメイキング
  • ZBrush 4R7
  • Managing Software Requirements: A Unified Approach
  • ZBrushトレーニング
  • OpenVDB:3Dボリュームデータ処理ライブラリ
  • Unity MonoBehaviourクラスのオーバーライド関数が呼び出される順番
  • Point Cloud Utils:Pythonで3D点群・Meshを扱うライブラリ
  • ラクガキの立体化 分割ラインの変更・バランス調整
  • 仮想関数
  • SIGGRAPH Asia
  • OpenMayaRender
  • 組み込み向けのWindows OS 『Windows Embedded』
  • 第1回 3D勉強会@関東『SLAMチュートリアル大会』
  • BlenderProc:Blenderで機械学習用の画像データを生成するPythonツール
  • Faster R-CNN:ディープラーニングによる一般物体検出手法
  • MeshLab:3Dオブジェクトの確認・変換に便利なフリーウェア
  • OpenCVの超解像(SuperResolution)モジュールを試す
  • Mayaのポリゴン分割ツールの進化
  • 映画『シン・ウルトラマン』 メイキング記事まとめ
  • OpenMesh:オープンソースの3Dメッシュデータライブラリ
  • UnityのGameObjectの向きをScriptで制御する
  • adskShaderSDK
  • ラクガキの立体化 反省
  • SDカードサイズのコンピューター『Intel Edison』
  • AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
  • UnityでLight Shaftを表現する
  • BGSLibrary:OpenCVベースの背景差分ライブラリ
  • TeleSculptor:空撮動画からPhotogrammetryするツール
  • 『ハン・ソロ/スター・ウォーズ・ストーリー』のVFXブレイクダウン まとめ
  • Google XML Sitemap Generatorプラグインを3.4.1へダウングレード
  • ZBrushでアヴァン・ガメラを作ってみる 腕の作り込み
  • Mean Stack開発の最初の一歩
  • 網元AMIで作ったWordpressサイトのインスタンスをt1microからt2microへ移行した
  • 生物の骨格
  • 顔のモデリング
  • ZBrushのTranspose Masterでポーズを付ける
  • ディープラーニング
  • 「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作ったのか
  • フィーリングに基づくタマムシの質感表現
  • Transformers ”Reference & Bulid” Siggraph 2007
  • OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
  • fSpy:1枚の写真からカメラパラメーターを割り出すツール
  • モバイルバージョンを終了