Update:
Linux、macOS、Xcode、Visual Studio、.NET、および CMake の新しくサポートされる最小バージョンがあります。「新しくサポートされる最小バージョン」を参照してください。
Apple Silicon マシン上にビルドされたプラグインの新しいビルド手順があります。「Apple Silicon マシン上でプラグインをビルドするための新しいビルド手順」を参照してください。
Qt のサンプルは専用フォルダに移動されました。「Qt のサンプルが移動されました」を参照してください。
MFnAnimCurve::evaluate() と MFnAnimCurve::addKey() が MTime を正しく処理できない原因となったバグが修正されました。このバグを処理するために追加した回避策を削除する必要があります。「MFnAnimCurve のメソッドによって MTime を処理する方法の修正」を参照してください。
apiMeshShape のサンプルが更新され、OpenGL を使用できるようになりました。コードをマイグレートして glFunctionTable ではなく OpenGL 呼び出しを使用できるようにする方法については、この例に含まれる Readme を参照してください。
{{toc}}
オペレーティング システム、コンパイラ、またはツール | 最小バージョン |
---|---|
Linux | RHEL 8.6 以降、gcc 11.2.1 を備えた DTS-11 を使用 |
macOS | macOS 11 |
Xcode | 13.4 |
Visual Studio | Visual Studio 2022 |
.NET | 4.8.1 |
CMake | 3.22.1 |
Maya プラグインは、Apple Silicon マシンでビルドできます
Apple Silicon マシンの既定の arm64 ターミナルでプラグインをビルドすると、arm64 バイナリが生成されます。
Intel アーキテクチャ用のバイナリを生成するには、CMAKE_OSX_ARCHITECTURES cmake オプションを使用します。
たとえば、Intel86_64 バイナリを生成するには、次を使用します。
sh cmake -H. -Bbuild -G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64
また、Intel86_64 と arm64 のバイナリを生成するには、次のコマンドを使用します。
cmake -H. -Bbuild -G Xcode -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
Apple Silicon マシンで Maya を実行する場合、いくつかの制限事項があります。
devkit に付属している Qt のサンプルは移動されました。
各 Qt サンプルは、plug-ins フォルダのそれぞれのフォルダにあります。
ファイル | plug-ins の新規のフォルダ |
---|---|
grabUV.pro、grabUVMain.cpp、grabUVProperties.mel、grabUVValues.mel | grabUV |
helixQtCmd.pro、helixQtCmd.cpp、helixQtCmd.h | helixQtCmd |
qtAdskStyleProxy.pro、qtAdskStyleProxy.cpp、qtAdskStyleProxy.h、qtAdskStyleProxy.json | qtAdskStyleProxy |
qtForms.pro、qtForms.cpp、qtForms.h、qtForms.qrc、sphereForm.ui、cubeForm.ui | qtForms |
saveSwatchesCmd.pro、saveSwatchesCmd.cpp、saveSwatchesCmd.h | saveSwatchesCmd |
workspaceControlCmd.pro、workspaceControlCmd.cpp、workspaceControlCmd.h | workspaceControlCmd |
qtConfig ファイルは最上位の plug-ins フォルダから移動されていません。
MFnAnimCurve の evaluate() メソッドと addKey() メソッドのバグにより MTime が時間ではなくティックとして処理されていた問題が修正されました。
この問題に対する回避策が C++ または Python プラグインに実装されている場合は、それらを削除してプラグインをリビルドする必要があります。
Python ハッシュ サポートが MObjectHandle に追加されました。タイプ MObjectHandle のオブジェクトをハッシュを必要とする Python コンテナのキーとして使用できるようになりました。
Maya devkit に 3 つの新しいクラス MDisplayLayerMessage、MFnDisplayLayer、および MFnDisplayLayerManager が追加されました。
MDisplayLayerMessage はディスプレイ レイヤ メンバーシップの変更に対するコールバックを登録します。
MFnDisplayLayer はディスプレイ レイヤの内容を照会する関数セットです。
MFnDisplayLayerManager は Ufe アイテムが含まれるディスプレイ レイヤを照会するために使用される関数セットです。
新しいデータ サーバ クラス MDataServerOperation が OpenMayaRender に追加されました。
MDataServerOperation により、ビューポートによって生成された未処理のレンダリング可能なジオメトリ データを、カスタム レンダリング用の独自のプラグインで使用できます。
MDataServerOperation はまだ開発中の機能のテクノロジ プレビューです。これは時間の経過とともに変更されます。プラグインでこのクラスを使用する場合は、Maya の新しいリリースごとにこのクラスの API リファレンスを確認してください。
パブリック MayaUSD git リポジトリで使用可能な MayaHydra プラグインは、この新しいクラスの使用例を示します。
MPxContext に、inAlternateContext() と doExitRegion() の 2 つの新しいメソッドが追加されました。
bool MPxContext::inAlternateContext() const MStatus MPxContext::doExitRegion ( MEvent & event )
inAlternateContext() は、代替コンテキストがアクティブな場合に true を返します。
doExitRegion() はマウスがビューポートから離れるときに呼び出されます。これは、マウスがビューポートから離れるときに何らかのアクションを実行する必要がある場合にオーバーライドする必要がある仮想メソッドです。
MPxDeformerNode に、indexMapper() と envelopeWeights() の 2 つの新しいメソッドが追加されました。
indexMapper() はデフォーマの indexMapper を返し、envelopeWeights() はデフォーマのエンベロープ ウェイトを返します。これはペイントされたウェイトと減衰ウェイトの組み合わせです。
const float* envelopeWeights( MDataBlock& block, unsigned int multiIndex, unsigned int* numWeights); const MIndexMapper& indexMapper(unsigned int multiIndex, MStatus* ReturnStatus) const;
indexMapper() が MPxGeometryFilter に追加されました。
const MIndexMapper& indexMapper(unsigned int multiIndex, MStatus* ReturnStatus) const;
blendShape デフォーマの操作状態にアクセスするための 2 つの新しいメソッド manipulationActive() と contextGraph() が MEvaluationGraph に追加されました。
```cpp bool manipulationActive() const;
static MEvaluationGraph contextGraph(const MDGContext &context); ```
MHWRender::MUIDrawManager に、新しいメソッド setOverrideBlendState() が追加されました。
void setOverrideBlendState (const MHWRender::MTargetBlendDesc &blendStateDesc)
setOverrideBlendState() では、新しいブレンド状態を指定して、UI ペインタの既定のブレンド状態をオーバーライドできます。新しいブレンド状態は、MTargetBlendDesc で設定できる任意の構成にすることができます(乗算済みアルファ ブレンドを含む)。
オーバーライド ブレンド状態は、メッシュ、ライン、ポイント、円、球など、描画マネージャを介して描画されたメッシュライクの UI オブジェクトに適用されます。テキストまたはアイコンの UI オブジェクトには適用されません。
MPxGPUDeformer に、新しいメソッド lastEvaluatedOnGPU() が追加されました。
bool MPxGPUDeformer::lastEvaluatedOnGPU() const
このメソッドは、このノードの以前の評価が GPU 上にあった場合に true を返します。
MPlug に、新しいメソッド isExactlyEqual() が追加されました。
bool isExactlyEqual (const MPlug &other) const
このメソッドは、== および != 演算子の代わりにマルチインデックスを比較するために使用されます。
== および != 演算子はマルチインデックスの比較には使用できません。
MFnTransform に balanceTransformation() が追加されました。このメソッドは、ワールド行列をジョイントに適用する場合に変換のバランスを調整します。
void MFnTransform::balanceTransformation( MVector& localTranslate, MEulerRotation& localRotate, MVector& localScale, const MTransformationMatrix& mtx, const MQuaternion& rotateAxis = MQuaternion::identity, const MQuaternion& jointOrient = MQuaternion::identity, const bool segmentScaleCompensate = true, const MVector& inverseScale = MVector::one, const MEulerRotation::RotationOrder& rotateOrder = MEulerRotation::kXYZ )
この新しいメソッドの使用方法を示すため、rebalanceTransform のサンプルが追加されました。
MRenderItem に、isHideOnPlayback()、setHideOnPlayback()、setDrawLast()、 および isDrawLast() の 4 つの新しいメソッドが追加されました。
void MHWRender::MRenderItem::setHideOnPlayback(bool state) bool MHWRender::MRenderItem::isHideOnPlayback() void MRenderItem::setDrawLast(bool state) bool MRenderItem::isDrawLast()
true を setHideOnPlayback() に渡すと、再生中にレンダー項目を非表示にする必要があることを示します。isHideOnPlayback() は、レンダー項目が再生中に非表示になっている場合、true を返します。それ以外の場合は false を返します。
true を setDrawLast() に渡すことは、レンダー項目がシーン内の他のすべてのオブジェクトの後に描画されることを示します。項目がシーンの最後に描画される場合、isDrawLast() は true を返します。それ以外の場合は false を返します。
MPxGPUStandardDeformer に次の 4 つの新しいメソッドが追加されました。
unsigned int multiIndex() const; const MPlug& inputPlug() const; const MIndexMapper& indexMapper() const; virtual bool passThroughWithZeroEnvelope() const;
MHWRender::MFrameContext に 新しいメソッド getDisplayStyleOfAllViewports() が追加されました。このメソッドは、アクティブなすべての表示可能な 3D ビューポートの表示スタイルの和を返します。
unsigned int getDisplayStyleOfAllViewports() const
以下のクラスは廃止されました。
cvColorNode のバグが修正されました。サンプルの最新バージョンでは、線
cpp cvColorData->pointArray = cvData.array(&stat);
は、次に置き換えられました:
cpp cvData.copyTo(cvColorData->pointArray);
apiMeshShape のサンプルが更新され、OpenGL を使用できるようになりました。
このサンプルに含まれる Readme には、glFunctionTable ではなく、OpenGL 呼び出しを使用できるようにコードをマイグレートする方法についての情報が記載されています。
absolute | acos | and | asin | atan | atan2 |
average | ceil | clampRange | cos | Determinant | equal |
floor | greaterThan | inverseLerp | length | lerp | lessThan |
log | max | min | modulo | multiply | negate |
normalize | not | or | pi | power | round |
rotateVector | sin | smoothStep | sum | truncate | tan |