Maya 2020 devkit の新機能

このリリースで、Maya devkit は次のように変更されました。

新しい最小バージョン

Maya 2020 devkit には、Visual Studio 2017 および Xcode 10.2.1 が必要になりました。

Linux の要件は変更されていません。

修正された機能

以前は、isBounded() が実装され、true が返される場合でも、 MPxTransform::boundingBox() は呼び出されませんでした。

この問題は修正されました。iBounded() を実装し、true が返される場合には、MPxTransform::boundingBox() が呼び出されるようになりました。isBounded() が false を返す場合や isBounded() が実装されていない場合は呼び出されません。

キャッシュされた再生

以下の新しいクラスが追加され、キャッシュされた再生をサポートするようになりました。

新しいメソッドが追加され、キャッシュされた再生をサポートするようになりました

ADSK Standard Surface シェーダ

新しいサーフェス シェーダである ADSK Standard Surface シェーダが Maya に追加されました。

この新しいシェーダをサポートするために、API が変更されました。

MFnStandardSurfaceShader クラスが C++ および Python 1.0 API に追加されました。このクラスによって、standardSurface シェーダ ノードのアトリビュートにアクセスできるようになりました。

MFn.kStandardSurface 型を使用して、MObject が新しい既定のシェーダをサポートするかどうかを決定します。MFn.kStandardSurface は、C++、Python 1.0、Python 2.0 API で使用できます。

ビューポート 2.0 の API では、新しい標準シェーダである k3dStandardSurfaceShader が MStockShader に追加されました。MShaderManager::getStockShader() は、k3dStandardSurfaceShader を最初の引数として使用できます。MShaderInstance::addInputFragmentForMultiParams() で、登録済みの入力フラグメントの複数のパラメータを既存の MShaderInstance に接続できるようになりました。

グラフ エディタのオーバーレイ描画

グラフ エディタ上でプリミティブを描画できるようにする新しい機能が追加されました。

C++ および Python API に MPanelCanvas と MPanelCanvasInfo の 2 つの新しいクラスが追加されました。

その他の新しい Python クラスとメソッド

次のクラスが Python API 2.0 に追加されました。

次のクラスが Python API 2.0 に追加されました。

その他の新しいクラス

イベント待機リストを管理する MGPventList が追加されました。

ジオメトリと、デフォーマの影響を受けるインデックスのサブセット間でインデックスをマップする MIndexMapper が追加されました。

MItGeometry に新しいイテレータ メソッドが追加されました。

サーフェス ジオメトリ上で反復する際に役立つ MItGeometry::positionIndex() が追加されました。

選択パスの新しいレンダリング方法

選択パスの更新に役立つ MPxSubSceneOverride::enableUpdateForSelection()MFrameContext::getSelectionInfo() が追加されました。

サブシーンの作成時に Maya が MPxSubSceneOverride::enableUpdateForSelection() を呼び出します。既定で false が返されます。つまり、更新メソッドは通常のレンダリングでのみ呼び出されます。

このメソッドが true を返すようにオーバーライドすると、選択パスにも更新メソッドが呼び出されます。

MFrameContext::getSelectionInfo() は、選択パスで呼び出された場合は選択状態の情報を返し、それ以外の場合は Null ポインタを返します。

apiMeshSubSceneOverride のサンプルが更新され、これらのメソッド両方を使用するようになりました。

MFnPlugin::registerEvaluator() の変更点

registerEvaluator() のシグネチャが変更されました

MFnPlugin::registerEvaluator(const MString& evaluatorName, unsigned int  uniquePriority, MCreatorFunction creatorFunction)

から

MFnPlugin::registerEvaluator(const MString& evaluatorName, unsigned int  uniquePriority, MCustomEvaluatorCreatorFunction creatorFunction)

MPxNode::configCache() の変更点

configCache() のシグネチャが変更されました

MPxNode::configCache(const MEvaluationNode& evalNode, const MCacheMode& info, MCacheSchema& schema)

から

MFnPlugin::registerImageFile() の変更点

MFnPlugin::registerImageFile() のシグネチャが変更されました。ImageFilePriority パラメータが追加されました。

C++ シグネチャが変更されました

MStatus registerImageFile(const MString& imageFormatName, MCreatorFunction creatorFunction,
const MStringArray& imageFileExtensions);

から

MStatus registerImageFile(const MString& imageFormatName, MCreatorFunction creatorFunction,
const MStringArray& imageFileExtensions, ImageFilePriority priority = kImageFilePriorityDefault);

Meshintersector の変更点

C++、Python 1.0、Python 2.0 API の create() のシグネチャが変更され、対象のフェースをサポートするようになりました。

C++ シグネチャが変更されました

MStatus create (MObject &meshObject, const MMatrix &matrix=MMatrix::identity)

から

MStatus create( MObject &meshObject, const MMatrix& matrix = MMatrix::identity, const MIntArray* facesOfInterest = nullptr);

詳細については、C++ と Python API のリファレンスを参照してください。

MPxGeometryOverride::requireRenderItemUpdate の変更点

MPxGeometryOverride::requireRenderItemUpdate の既定値が false に変更されました。

次の devkit のサンプルは、この変更を反映するように修正されています。

廃止されたクラス

MPxImagePlaneOverride は廃止されました。

ビューポート 2.0 で描画するために、MPxImagePlane を MPxImagePlaneOverride と関連付ける必要はなくなりました。

MPxImagePlane のみを使用するように、MPxImagePlaneOverride を使用するすべてのコードを更新する必要があります。

customImagePlane のサンプルが更新され、MPxImagePlaneOverride が使用されなくなりました。

追加されたサンプル

simpleSimulationNode は、キャッシュされた再生(Cached Playback)の操作方法を示します。

marqueeTool.py、lassoTool.py、squareScaleManipContext.py は、新しい Python API 2.0 クラスの実行方法を示します。

pyPanelCanvasInfo.py と pyPanelCanvas.py は、グラフ エディタのオーバーレイ描画用の MPanelCanvas と MPanelCanvasInfo クラスの実行方法を示します。

更新されたサンプル

削除されたサンプル