Maya 2018の主なAPIの変更についてお話しましょう。 モデリング、アニメーション、レンダリング、評価、パフォーマンスなど、多くの改善点があります。 Limelightプログラムでビデオレコーディングを行い、Maya SDKヘルプの「Maya 2018 APIの新機能」のセクションを参照してください。 これらの改善の詳細についてはここではもう一度説明するつもりはありませんが、開発者にとって重要な変更がいくつかあります。
何よりも先に知っておくべき重要な変更がいくつかあります。たとえば、Windows上のコンパイラはVS 2015にアップグレードされ、Macの場合、SDK 10.11でXcode 7.3.1にもアップグレードされています。しかし、私は最も重要な変更は新しいOpenMayaネームスペースだと信じています。 要するに、Maya 2018以降、すべてのMaya C ++クラスはグローバルネームスペースではもはや宣言されず、代わりに "OpenMaya20180000"ネームスペースの下となります。
これは主に、Mayaプラグイン開発の混乱を最小限に抑え、Maya APIのバイナリ互換性を複数のアップデートにわたって拡張するように設計されています。プラグインでアップデート版の新しいAPI機能を利用したくない場合は、理論的には、ほとんど心配することはなく、これ以上クラス名を前方宣言できない以外はすべてが自動的に処理されますが、これらの前方宣言ステートメントを削除するには、プラグインコードを変更する必要があります。
次のコードを確認してください。例えば、いつものようにあなたのクラスをMPxNodeから派生させることができ、MPxNodeはすでに正しいネームスペースの下にあることがわかります。
しかし、Mayaアップデート版で新しいAPIを利用したい場合は、正しいネームスペースを指定する必要があります。 Update 1のマクロの例を次に示します。
- #define OPENMAYA_UPDATE1_NAMESPACE OpenMaya20181000
- #define OPENMAYA_UPDATE1_NAMESPACE_OPEN OPENMAYA_NAMESPACE_OPEN(OPENMAYA_UPDATE1_NAMESPACE)
- #define OPENMAYA_UPDATE1_NAMESPACE_SCHEMA OPENMAYA_NAMESPACE_SCHEMA(OPENMAYA_UPDATE1_NAMESPACE)
Maya 2018 Update1の場合、OPENMAYA_UPDATE1_NAMESPACEの下にMNewClassForUpdateという名前の新しいクラスが追加され、このクラスを使用する場合は、OPENMAYA_UPDATE1_NAMESPACE:MNewClassForUpdateのようなネームスペースでフルネームを指定する必要があります。そしてまた、Updateバージョンのいずれかの新しいクラスを使用している場合は、プラグインは、他のバージョンでは動作しないことを覚えておいてください。
ところで、Python 1.0および.NET APIは現在、新しいOpenMayaネームスペースでサポートされていません。 私はすぐに機能の詳細についてのフォローアップブログを準備します。
こちらの記事は下記を元に作成されています。
http://around-the-corner.typepad.com/adn/2017/07/new-api-changes-for-maya-2018.html