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)


スポンサーリンク

関連記事

WordPressの表示を高速化する
顔モデリングのチュートリアル
Unityで使える数値計算ライブラリ『Math.NET Numerics』
Shader.jp:リアルタイム3DCG技術をあつかうサイト
Maya LTでFBIK(Full Body IK)
シン・ゴジラのファンアート
ZBrushで仮面ライダー3号を造る 仮面編 Dam Standardブラシでディティールを彫る
『ピクサー展』へ行ってきた
AR (Augmented Reality)とDR (Diminished Reality)
ZBrushのZmodelerとDynamic Subdivisionを学ぶ
写真から3Dメッシュの生成・編集ができる無料ツール『Autodesk Memento』
WebGL開発に関する情報が充実してきている
手を動かしながら学ぶデータマイニング
機械学習で流体シミュレーションを近似する『Physics Forests』
グローバルイルミネーションに手を出す前に、やり残したことがあるんじゃない?
OpenCVで平均顔を作るチュートリアル
Faceshiftで表情をキャプチャしてBlender上でMakeHumanのメッシュを動かすデモ
Pythonの自然言語処理ライブラリ『NLTK(Natural Language Toolkit)』
pythonの機械学習ライブラリ『scikit-learn』
Unityで360度ステレオVR動画を作る
Zbrushでメカ物を作るチュートリアル動画
インタラクティブにComputer Visionコーディングができるツール『Live CV』
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
Maya には3 種類のシェーダSDKがある?
UnityのGameObjectの向きをScriptで制御する
UnityでLight Shaftを表現する
OpenCVの超解像処理モジュール『Super Resolution』
Amazon Web ServicesでWordPress
日立のフルパララックス立体ディスプレイ
オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』
UnityでTweenアニメーションを実装できる3種類の無料Asset
ArUco:OpenCVベースのコンパクトなARライブラリ
ガメラ生誕50周年
ヘッドマウントディスプレイとビジュアリゼーションの未来
ZBrushで手首のモデリングをリファイン
CGWORLD CHANNEL 第21回ニコ生配信は『シン・ゴジラ』メイキングスペシャル!
AndroidもopenGLも初心者さ (でもJavaは知ってるよ)
Windows Server 2008にAutodesk Maya 2009をインストール
UnityプロジェクトをGitHubで管理する
ニューラルネットワークの構造を可視化するフレームワーク『TensorSpace.js』
粘土をこねるようなスカルプトモデリング
ZBrushのTranspose Masterでポーズを付ける

コメント