graphics.hatenablog.com

技術系テクニカルアーティストのあれこれ

Maya .NET API を叩くときの雛形。

Mayaを起動せずにビューの開発を進めるためのテンプレ。
github.com


Maya プラグイン用のアセンブリ属性がついてると Windows アプリとして起動できなかったから、ビルドオプションで付け外しできるようにしたら思いの外便利だった。

  • ビルドターゲットに ViewDebug を新規作成して、VIEWDEBUG を define
  • #if !VIEWDEBUG のときだけ、プラグイン用の定義をビルド
  • プラグイン側の MainWindow を生成するだけのダミープロジェクトを追加して、スタートアップに設定
  • ビュー側の開発中はターゲットを ViewDebug にして F5 で起動
  • プラグイン(Maya依存)側の開発中は、バッチファイルで Maya を再起動しつつバッチビルドから DEBUG ターゲットをビルド、プロセスにアタッチ(Ctrl+Alt+P → "maya"とタイプ)してデバッグ

ちなみにバッチファイルの中身はこんなかんじ↓
これをデスクトップにでも置いて、コマンドラインランチャーに登録しとく。

taskkill /F /IM maya.exe
set MAYA_PLUG_IN_PATH=%MAYA_PLUG_IN_PATH%;D:\home\Documents\Visual Studio 2015\Projects\MayaCsi\MayaCsi\bin\Release
call "D:\Program Files\Autodesk\Maya2014\bin\maya.exe" -command "loadPlugin MayaCsi.nll.dll;ScriptEditor;"

バッチに書いてある MayaCsi ってのはこれ↓
Roslyn の C# Scripting を Maya 上から駆動するコマンドプラグイン
ものすごく雑な実装だけど、ここ1週間ぐらい使ってみて超便利だった。
github.com

あと、VisualStudio の [ツール]-[オプション]-[キーボード] でバッチビルドにショートカットを割り当てておくと、今回のケースに限らずとても便利。