Maya の API のバージョンが更新されました(現在の MAYA_API_VERSION は 201700 です)。Maya 2016 Extension 1、2、または Service Pack のリリースを含む Maya 2016 でコンパイルされたすべてのプラグインは、Maya 2017 バージョンによって認識されるように Maya 2017 に対して再コンパイルする必要があります。
Maya は現在 Qt バージョン 5.6.1 および PySide バージョン 2.0 を使用しています。
Qt プラグインのビルド方法の更新された手順については、「プラグインのビルド」を参照してください。
開発キットは https://apps.exchange.autodesk.com/MAYA/ja/Home/Index の Autodesk Exchange からオンラインで入手できます。
Maya 2016 Extension 2 の API ガイドは、http://www.autodesk.com/maya-sdkdoc-2016-jpnからオンラインで利用可能です。また、http://www.autodesk.com/me-sdk-docs-2016でダウンロード可能なバージョンを取得することもできます。
Maya 2016 および Maya 2016 Extension 1 の API ガイドのダウンロード可能なバージョンは、http://www.autodesk.com/me-sdk-docs-2016から利用できます。
次のセクションにジャンプします。
サンプル プラグイン viewRenderOverrideFromFragments が追加されました。これはシーンおよび希望するポスト エフェクトをレンダリングするためにスクリプト フラグメントとフラグメント グラフを使用できるように、新しい API セットの使用を示します。スクリプト フラグメントは、標準ビューポート レンダリングのエフェクト用に Maya 内部で使用される構築ブロックで、Maya インストール フォルダ内の bin/ScriptFragment フォルダにある一連の .xml ファイルに保存されています。
次の API クラスとインタフェースが追加され、フラグメント レンダラの作成が可能となりました。
登録してスクリプト フラグメント .xml から呼び出すことができるコールバック関数を、このクラスから派生させて作成します。execute() 関数が実装され、現在のレンダラ グラフから MRenderParameters を、およびスクリプトから 3 つのオプション値を取得することができます。このメソッドを使用して目的の動作を計算し、MRenderParameters::setParameter() を呼び出し、スクリプトまたはグラフ内の接続された他のフラグメントに結果を戻します。詳細については、「スクリプト フラグメント コマンド」トピックの呼び出しコマンドについての説明を参照してください。
「ビューポートへのレンダリング用にフラグメントとフラグメント グラフを書く」を参照してください。
詳細については、footPrintNode_GeometryOverride デベロッパー キット サンプルを参照してください。「セレクション マスクの使用」も参照してください。
このメソッドは、Python API 2.0 でも使用できます。
デベロッパー キット内の viewObjectSetOverride プラグイン サンプルを参照してください。
最適なパフォーマンスを実現するには、このパラメータを false に設定して、静的な描画コールバックを使用しないようにします。
詳細については、pyFootPrintNode.py デベロッパー キット サンプルを参照してください。
MShaderInstance::createShaderInstanceWithColorManagementFragment() を使用して MShaderInstance にカラー管理フラグメントを追加するときに、シェーダ インスタンスに設定されたすべてのプリ レンダラおよびポスト レンダラのコールバックが消失しなくなりました。以前はこれらはどちらも null に設定されていました。
詳細については、uiDrawManager、lineManipContainer (C++ API) および pyUiDrawManager.py (Python API 2.0) デベロッパー キット サンプルを参照してください。
新しいメソッドが追加されました。
const MFrameContext* MRenderOverride::getFrameContext()
このメソッドにより、MRenderOverride::setup() と MRenderOverride::cleanup() 間で利用できる現在のフレーム レンダーのコンテキスト情報にアクセスできるようになります。オブジェクト単位およびレンダー項目の情報は、パイプラインがまだ実行されていないセットアップ時には使用できません。この情報は、ビューポート、プレイブラスト、レンダー ビューまたはバッチ レンダリングでオーバーライドが呼び出されるかどうかに関係なく提供されることに注意してください。
フレームごとの各種データを抽出する MRenderOverride.getFrameContext() の使用を説明する、pyFrameContexTest.py プラグイン サンプルを参照してください。
ノードを登録するときに、"drawdb/light" と "drawdb/geometry" の両方の分類を指定することにより、カスタム描画オーバーライドと内部 ビューポート 2.0 ライティングのサポートを結合できるようになりました。
使用例では、ビューポート 2.0 内でネイティブの Maya ライトのようなライティングを実行するカスタム オブジェクトをビューポート内に描画しています。詳細については、apiDirectionalLightShape プラグイン サンプル、および「登録 」を参照してください。
頂点 ID、フェース ID、およびローカル パラメータ設定のアクセスが、MGeometryExtractor インタフェースを介して公開されるようになりました。完全に共有されていないジオメトリ データを DAG シェイプから抽出するには、MGeometryExtractor インスタンスを構築するときに kPolyGeom_NotSharing を指定する必要があります。
MPxShaderOverride と同様、頂点 ID、フェース ID、およびローカル パラメータ設定を要求する MGeometryExtractor に新しいインタフェースはありません。これらの頂点バッファを設定するには、次のセマンティック名を使用して MVertexBufferDescriptor を指定する必要があります。
詳細については、geometryReplicator プラグインの例を参照してください。このプラグインの例を実行するには、まず次の環境変数を設定してから、geometryReplicator シェイプに hwPhongShader を割り当てます。
「ビューポート 2.0: MGeometryExtractor のアクセス」を参照してください。
カスタム エバリュエータを定義できる、新しい API 拡張が追加されました。カスタム エバリュエータにより、評価マネージャが DG ノードをスケジュールして実行する方法を変更することができます。カスタム エバリュエータの概要を参照してください。デベロッパー キット内の MPxCustomEvaluator、simpleEvaluator および constraintEvaluator プラグイン サンプルも参照してください。
新しい MObjectHandle::objectHashCode() インタフェースが追加され、MObjectHandle を作成または破棄せずに、提供された MObject に対してハッシュ コードを返すことが可能となりました。MObjectHandle の作成および破棄がスレッド セーフではないため、プラグインがスレッド化されている場合は、このインタフェースを MObjectHandle::hashCode() の代わりに使用する必要があります。
新しい MPxAssembly::postActivateRep() 仮想関数が追加され、リプリゼンテーションがアクティブ化された後に、アセンブリで操作を実行することが可能となりました。
このメソッドは、Python API 2.0 でも使用できます。
このメソッドは、Python API 2.0 でも使用できます。
Maya ビューポート 2.0 のホワイトペーパーは、http://www.autodesk.com/developmaya で参照できます。
このドキュメントは 2 つのパートに分かれています。1 つ目のパート『Viewport 2.0 API Porting Guide(英語)』は、ビューポート 2.0 の概要を示すとともに、旧式の既定ビューポートとビューポート 2.0 との違いについて説明します。2 つ目のパート『Viewport 2.0 API Porting Guide Details(英語)』は、より詳細な内容について触れており、推奨するインタフェースを指定し、一般的なタスク向けのサンプル コードを提供します。
ホワイトペーパー『Improving Performance with Parallel Evaluation(英語)』 は、http://www.autodesk.co.jp/maya-docs で参照できます。
新しい評価マネージャの使い方に関する詳細は、このドキュメントを参照してください。シーンレベルのグラフ解析と並列化を通して、アニメートされたシーンの再生と操作を改善することができます。さらにこのドキュメントは、プラグインに実装してこれらの機能を活用するための API 拡張に関する情報を提供するとともに、シーンのパフォーマンスを評価するためのプロファイラの使い方についても解説しています。