

現在[こちら](https://hexadrive.jp/hexablog/others/laboratory/25623/)の記事を参考にMayaのプラグインノードを作成しているのですが、この129～140行にあるような

> MFnNAIns_input_offset.create('offset_x', 'ox', om.MFnNumericData.kFloat,
> default_value)

と同様に行列やクォータニオンをinput, output共にcreateしたいと考えております。  
しかし、[こちら](https://help.autodesk.com/view/MAYAUL/2017/JPN/?guid=__py_ref_class_open_maya_1_1_m_fn_numeric_attribute_html)のリファレンスを読む限り、初期値として入れられるのはfloat値のみであり、さらに、[こちら](https://help.autodesk.com/view/MAYAUL/2017/JPN/?guid=__py_ref_class_open_maya_1_1_m_fn_numeric_data_html)をみても、そもそも行列の型みたいなものが存在せずといった状況で、どのように対応すればよいのかが現状はっきりしておりません。

それならばと、直接行列を扱っている既存のノードの実装コードを見ればいいのではとも思ったのですがその方法もわかっておりません。

上記「行列・クォータニオンのinput,
outputの作成方法」もしくは「既存ノードの実装コードの閲覧方法」を知るサイトや手順を教えていただけないでしょうか。

よろしくお願いいたします。


CC BY-SA 4.0
2018-11-15T03:46:34.330
50345
2018-11-15T06:08:06.937
20642
question
python python3
Autodesk Mayaにてプラグインノードを作成する際の行列inputの作成法がわかりません


自己解決しました。

行列に関して、「 _MFnNumericAttribute_ 」ではなく「 _MFnMatrixAttribute_ 」が存在していました。

クォータニオンについては、既存のノードのアトリビュートを確認(カーソルを合わせてTipsを確認)したところ、「 _TDataCompound_
」とあり中身は _FLoat_ 値だったため、どうやらクォータニオン専用のアトリビュートが存在しているわけではなく、4つの _Float_
値を入れ子にして疑似的に表現していたようです。

そのため、クォータニオンに関しては、[こちら](http://flame-blaze.net/archives/2516)の記事を参考に、「
_MFnCompoundAttribute_ 」と「 _MFnNumericAttribute_
」を活用して既存ノードと同様のものを製作することができました。


CC BY-SA 4.0
2018-11-15T06:08:06.937
50349
2018-11-15T06:08:06.937
20642
50345
answer