Maya 2017 の API の新機能

API のバージョンとバイナリ互換性

Maya の API のバージョンが更新されました(現在の MAYA_API_VERSION は 201700 です)。Maya 2016 Extension 1、2、または Service Pack のリリースを含む Maya 2016 でコンパイルされたすべてのプラグインは、Maya 2017 バージョンによって認識されるように Maya 2017 に対して再コンパイルする必要があります。

新しい Qt および PySide のバージョン

Maya は現在 Qt バージョン 5.6.1 および PySide バージョン 2.0 を使用しています。

Qt プラグインのビルド方法の更新された手順については、「プラグインのビルド」を参照してください。

Maya Developer Kit

開発キットは https://apps.exchange.autodesk.com/MAYA/ja/Home/Index の Autodesk Exchange からオンラインで入手できます。

Maya 2016 API ガイド

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 クラスとインタフェースが追加され、フラグメント レンダラの作成が可能となりました。

MSceneRender (const MString &name, const MString &fragmentName)

登録してスクリプト フラグメント .xml から呼び出すことができるコールバック関数を、このクラスから派生させて作成します。execute() 関数を実装して、現在のレンダー グラフから MRenderParameters を取得し、スクリプトから渡された 3 つのオプション値を取得できるようにします。このメソッドを使用して目的の動作を計算し、MRenderParameters::setParameter() を呼び出し、スクリプトまたはグラフ内の接続された他のフラグメントに結果を戻します。詳細については、「スクリプト フラグメント コマンド」トピックの呼び出しコマンドについての説明を参照してください。

ビューポートへのレンダリング用にフラグメントとフラグメント グラフを書く」を参照してください。

ロケータ

詳細については、footPrintNode_GeometryOverride デベロッパー キット サンプルを参照してください。「セレクション マスクの使用」も参照してください。

このメソッドは、Python API 2.0 でも使用できます。

描画

Developer Kit 内の viewObjectSetOverride プラグイン サンプルを参照してください。

最適なパフォーマンスを実現するには、このパラメータを false に設定して、静的な描画コールバックを使用しないようにします。

詳細については、pyFootPrintNode.py デベロッパー キット サンプルを参照してください。

シェーディングおよびカラー管理

選択

レンダー オーバーライド

const MFrameContext* MRenderOverride::getFrameContext()

このメソッドにより、MRenderOverride::setup()MRenderOverride::cleanup() 間で利用できる現在のフレーム レンダーのコンテキスト情報にアクセスできるようになります。オブジェクト単位およびレンダー項目の情報は、パイプラインがまだ実行されていないセットアップ時には使用できません。この情報は、ビューポート、プレイブラスト、レンダー ビューまたはバッチ レンダリングでオーバーライドが呼び出されるかどうかに関係なく提供されることに注意してください。

フレームごとの各種データを抽出するための MRenderOverride.getFrameContext() の使用について説明する、pyFrameContexTest.py プラグイン サンプルを参照してください。

ライト

ノードを登録するときに、"drawdb/light""drawdb/geometry" の両方の分類を指定することにより、カスタム描画オーバーライドと内部 ビューポート 2.0 ライティングのサポートを結合できるようになりました。

使用例では、ビューポート 2.0 内でネイティブの Maya ライトのようなライティングを実行するカスタム オブジェクトをビューポート内に描画しています。詳細については、apiDirectionalLightShape プラグイン サンプル、および Registration を参照してください。

ジオメトリ

頂点 ID、フェース ID、およびローカル パラメータ設定のアクセスが、MGeometryExtractor インタフェースを介して公開されるようになりました。完全に共有されていないジオメトリ データを DAG シェイプから抽出するには、MGeometryExtractor インスタンスを構築するときに kPolyGeom_NotSharing を指定する必要があります。

MPxShaderOverride と同様、頂点 ID、フェース ID、およびローカル パラメータ配置を要求する MGeometryExtractor に新しいインタフェースはありません。これらの頂点バッファを設定するには、次のセマンティック名を使用して MVertexBufferDescriptor を指定する必要があります。

詳細については、geometryReplicator プラグインの例を参照してください。このプラグインの例を実行するには、まず次の環境変数を設定してから、geometryReplicator シェイプに hwPhongShader を割り当てます。

ビューポート 2.0: MGeometryExtractor のアクセス」を参照してください。

アニメーション

カスタム エバリュエータ

カスタム エバリュエータを定義できる、新しい API 拡張が追加されました。カスタム エバリュエータにより、評価マネージャが DG ノードをスケジュールして実行する方法を変更することができます。「カスタム エバリュエータの概要」を参照してください。Developer Kit 内の MPxCustomEvaluatorsimpleEvaluator、および constraintEvaluator プラグイン サンプルも参照してください。

スレッド化

シーン アセンブリ

新しい MPxAssembly::postActivateRep() 仮想関数が追加され、リプリゼンテーションがアクティブ化された後に、アセンブリで操作を実行することが可能となりました。

一般

このメソッドは、Python API 2.0 でも使用できます。

このメソッドは、Python API 2.0 でも使用できます。

Maya ビューポート 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 の拡張機能に関する情報、およびシーンのパフォーマンスを評価するためにプロファイラを使用する方法についてのガイドラインを提供します。