プラグインを作る
プラグインを作るには開発用のMFC VC++がいります、MAYAはMFC VC++で開発されていますが本来1990年代代にはCG用のOSとして完成されています。
今回から複数回に渡りこのプラグインの構造と作成方法を具体的に説明して行こうと思います、勿論C++の基礎が必要です、」アルゴリズムから説明を始めて詳細に入って行こうと思います。是非作成したいと思っている方はこれを機会に挑戦したら良いでしょう私のMFCのバージョンは2005年で10年以上前(古い~でも何ら問題は有りませんが)のツールですが、今のMAYAの根幹は私のMFCより古いのを皆さんは知らない。

この私が作成したプラグインをMEL言語を使いMAYAのメニューにも追加する事も出来るのですが、貴方はどの様なツールを考えていますか?又作りたいですか?私はこの非常に古~いMAYAが大好きです。この考えは死ぬまで変わりません。噂ではMAYAの2011年制はバグだらけと言われていますがそれは使う人が無知だからです、私のMAYAは安定しています何の問題もありません。
CONF1

CONF2

CONF3

CONF4

CONF5

CONF6

MAYA側に記載するMEL言語です。これが外部のプラグインを呼び出します、プラグインは1回毎に呼び出し最短で終了しなければなりません、これはPC側ではデータを一切保持できないと言う事になります。皆さんはピンとこないと思いますが徐々に理解できると思います。
プラグインの構造体
これは必須の構造体です、非常に便利な物です


下記の画像はVC++側のヘッダファイルの一部分ですがこの様な文字列であるダグパスが絶えず送られて来ます、この中から自分の制御するドライバをMAYAから取得して動かす事になります。

さてこれから関数の説明をしたいと思いますが、基本構造は割と簡単ですがMAYA側にはライブとヘッダーがインストールしてある必要が有りますので、無い方はインストールして置いて下さい。
販売中のD51 PURAG7
今回説明するのは下記の動輪駆動用のプラグインです。下記画像の動輪を動かしています、各軸の中心にはロケータが組み込まれていますがそのロケータをプログインで動かしながら距離を三角関数を使いながら各メカの移動量を計算しながら動かします。
このD51はCGtraderで現在も販売中ですが既に日本人の方に10両近く販売しています。下記画像の動きは複雑な動きをしているのですがどの様に動かしているのかは皆さんに開示したいと思います、少しでも参考になれば幸いです。

動輪を動かす動画です。
include fileは多い
コンフィグに設定が出来たらヘッダーファイルが必要ですがその前にプロジェクトの作成が上手く出来ているかを確認して置きます、MAYAのプラグインはDLLで構築します出来たファイルのプロパテイで設定をします、その項目がCONFIGです、MAYAの付属するヘッダファイルとライブは他のディスクにコピーしてから使います、又ローカルディスクのプラグインを保存するフォルダのパスも通しておく必要が有ります、ま!この辺までが最初の段階になります。今後はデバッグが出来ないと思い心に銘記して置きます但し情報はMAYAの出力画面を利用して情報を見る事ができるので問題は有りません。作成されてプラグインに問題があればMAYA側でシステム例外で落ちてくれるので問題は有りません、MFC側でMAYAとの協調動作は諦めてしまいましょう、出来たプラグインは作成したプラグインフォルダー内に出力します。
プラグインを認識するか?
一番最初にプラグインが認識されているか?これが全てです。まずは最初に認識してくれるまで頑張りましょう、MAYAが起動してからプラグインのチェックが入れられるかですが入ると直ぐに一度起動されて来ますので注意が必要です、作成されたプラグインがMAYAから認識されるとチェックボックス内に作成したプラグインの名前がリストが表示されて来ます、赤枠内分が作成したプラグインです。

ヘッダーファイルに挿入します
下記の画像の様に「目をつぶってでも」リストの項目を追加して下さい、勿論注訳、コメントは挿入する必要はありませんよ!(笑い)。

