以前、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/~で始まるサンプルコードね。
- apiMeshShape/apiMeshShape.h
- apiMeshShape/apiMeshShape.cpp
- apiMeshShape/apiMeshShapeUI.h
- apiMeshShape/apiMeshShapeUI.cpp
- apiMeshShape/apiMeshData.h
- apiMeshShape/apiMeshData.cpp
- apiMeshShape/apiMeshGeom.h
- apiMeshShape/apiMeshGeom.cpp
- apiMeshShape/api_macros.h
- apiMeshShape/apiMeshCreator.h
- apiMeshShape/apiMeshCreator.cpp
- apiMeshShape/apiMeshGeometryOverride.h
- apiMeshShape/apiMeshGeometryOverride.cpp
- apiMeshShape/apiMeshIterator.h
- apiMeshShape/apiMeshIterator.cpp
- apiMeshShape/apiMeshSubSceneOverride.h
- apiMeshShape/apiMeshSubSceneOverride.cpp
結局C++を読む羽目になってるけど気にしない。
今日はここまで。
ところで、この手の書籍って何でノードよりもコマンドプラグインの解説が充実してるんだろう。

関連記事
『ローグ・ワン/スター・ウォーズ・ストーリー』のVFXブレイ...
日本でMakersは普及するだろうか?
Structure from Motion (多視点画像から...
MetaHumanの頭部をBlenderで編集できるアドオン
テスト
白組による『シン・ゴジラ』CGメイキング映像が公開された!
ZBrushのお勉強
PyDataTokyo主催のDeep Learning勉強会
Raspberry Piでセンサーの常時稼働を検討する
ラクガキの立体化 胴体の追加
Maya には3 種類のシェーダSDKがある?
海外ドラマのChromaKey
ZBrushでゴジラ2001を作ってみる 姿勢の変更
Maya LTでFBIK(Full Body IK)
ZBrush 4R8 リリース!
Mayaのプラグイン開発
Google製オープンソース機械学習ライブラリ『Tensor...
ZBrushで仮面ライダー3号を造る 仮面編 Clay Po...
iPhone x ロボットハッカソン~RomoのiPhone...
AndroidもopenGLも初心者さ (でもJavaは知っ...
BlenderのPython環境にPyTorchをインストー...
Raspberry Pi 2を買いました
cvui:OpenCVのための軽量GUIライブラリ
OpenCVでiPhone6sのカメラをキャリブレーションす...
OpenCV バージョン4がリリースされた!
HerokuでMEAN stack
Human Generator:Blenderの人体生成アド...
Blender 4.2以降のWindowsPortable版...
PolyPaint
NeuralNetwork.NET:.NETで使えるTens...
ZBrushでアヴァン・ガメラを作ってみる 首回りの修正・脚...
手を動かしながら学ぶデータマイニング
Point Cloud Libraryに動画フォーマットが追...
ZBrush 2018での作業環境を整える
オープンソースの物理ベースGIレンダラ『appleseed』
ZScript
ポリ男をリファイン
定数
Konashiを買った
ラクガキの立体化 3Dプリント注文
ZBrushでアヴァン・ガメラを作ってみる 歯を配置
BlenderでPhotogrammetryできるアドオン


コメント