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

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



スポンサーリンク

関連記事

  • トランスフォーマー/ロストエイジのメイキング
  • 映画『ミュータント・タートルズ』を観てきた
  • 顔追跡による擬似3D表示『Dynamic Perspective』
  • Kubric:機械学習用アノテーション付き動画生成パイプライン
  • C++始めようと思うんだ
  • ZBrushでアヴァン・ガメラを作ってみる 壊れたデータの救出
  • Russian3DScannerのトポロジー転送ツール『WrapX』
  • UnityでTweenアニメーションを実装できる3種類の無料Asset
  • オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
  • FreeMoCap Project:オープンソースのマーカーレスモーションキャプチャ
  • AndroidもopenGLも初心者さ (でもJavaは知ってるよ)
  • MB-Lab:Blenderの人体モデリングアドオン
  • Geogram:C++の3D幾何アルゴリズムライブラリ
  • Shader.jp:リアルタイム3DCG技術をあつかうサイト
  • RSSフィードを読込んで表示するWordpressプラグイン『RSSImport』
  • SIGGRAPH ASIA 2009で学生ボランティア募集してるみたい
  • ROSの薄い本
  • Photogrammetry (写真測量法)
  • HD画質の無駄遣い その2
  • 書籍『メイキング・オブ・ピクサー 創造力をつくった人々』を読んだ
  • TensorFlowでCGを微分できる『TensorFlow Graphics』
  • ゴジラの造形
  • UnityのTransformクラスについて調べてみた
  • ZBrushトレーニング
  • Math Inspector:科学計算向けビジュアルプログラミングツール
  • ManimML:機械学習の概念を視覚的に説明するためのライブラリ
  • OpenCV 3.3.0-RCでsfmモジュールをビルド
  • ラクガキの立体化 分割ラインの変更・バランス調整
  • UnrealCV:コンピュータビジョン研究のためのUnreal Engineプラグイン
  • Deep Learningとその他の機械学習手法の性能比較
  • Amazon Web ServicesでWordPress
  • ZBrushでアヴァン・ガメラを作ってみる
  • BlenderでPhotogrammetryできるアドオン
  • ZBrushと液晶ペンタブレットでドラゴンをモデリングするチュートリアル動画
  • Unity MonoBehaviourクラスのオーバーライド関数が呼び出される順番
  • 科学技術計算向けスクリプト言語『Julia』
  • ゴジラ三昧
  • 自前のShaderがおかしい件
  • OpenVDB:3Dボリュームデータ処理ライブラリ
  • Photoshopで作る怪獣特撮チュートリアル
  • uGUI:Unityの新しいGUI作成システム
  • Mitsuba 2:オープンソースの物理ベースレンダラ
  • モバイルバージョンを終了