dagSetMembers[] アトリビュートで MPlug::numElements() を使用する
シェーディング エンジン ノードの dagSetMembers[] アトリビュートで MPlug::numElements() を使用すると、誤ったエレメント数が返されます。
MPxGlBuffer を使用した場合、オフスクリーン カラー インデックス バッファに格納されたピクセル データが正しく読み込めない
MPxGlBuffer を使用した場合、オフスクリーン カラー インデックス バッファに格納されたピクセル データは正しく読み込めません。オフスクリーン バッファは、RGB モードで説明したとおりの動作をします。
たとえば、端と頂点のように、複数の種類のオブジェクト コンポーネントが選択されている場合、アクティブ選択リストに割り当てられている MSelectionList には、最後に選択されたコンポーネントの種類だけが含まれます。たとえば、端を選択した後で、Shift キーを押しながら頂点を選択すると、アクティブ選択リストを表す MSelectionList には、頂点コンポーネントを表す MObject が 1 つだけ含まれます。
MItSelectionList リストでは、選択されたコンポーネントが区別されるので、選択したさまざまなコンポーネントを識別するためにこのリストを使用することができます。
MItSelectionList::getDagPath()
MItSelectionList::getDagPath() は、常に、インスタンス化されたノードのオリジナル dagPath を返します。たとえば、Shape ノードが 2 つ選択されていて、これらの dagPaths が
pCube1|pCubeShape1
pCube2|pCubeShape1
の場合、getDagPath() は、リスト内の各オブジェクトについて、
pCube1|pCubeShape1
pCube1|pCubeShape1
MSelectionList::getDagPath() は、リスト内の各オブジェクトについて、正しい dagPath を返します。
カメラを作成した直後、MFnCamera::setEyePoint をコールする
次のように、カメラを作成した直後、MFnCamera::setEyePoint をコールした場合
fnCamera.create ();
fnCamera.setEyePoint ( MPoint (sceneCamera->eyePt[0], sceneCamera->eyePt[1], sceneCamera->eyePt[2]) );
このコールは失敗します。これは、MFnCamera::create でノードのパス ポインタ変数が適切に設定されないからです。
MFnCamera fnCamera;
MDagPath cameraPath;
MDagPath::getAPathTo (fnCamera.create(), cameraPath);
fnCamera.setObject (cameraPath);
fnCamera.setEyePoint (...);
コンテキスト プラグインをアンロードすると Maya がクラッシュする
シーンにコンテキストのインスタンスが存在するときに、コンテキスト プラグインをアンロードすると、Maya はクラッシュします。これには marqueeTool や moveTool などの開発キットのサンプル コンテキスト ツールが含まれます。
クラッシュを防ぐには、このプラグインを使用して作成したコンテキストの名前を覚えておき、プラグインをアンロードする前に、まず、「file -f new」を実行し、続けて「deleteUI contextName」を実行します。
起動時、Maya がカスタム MEL コマンド プラグインを認識しない
Maya の前のバージョンでは、起動 MEL スクリプトから、API プラグイン経由で実装されたカスタム MEL コマンドをコールすることが可能でした。しかし、プラグインは Maya の起動時に最初にロードされるオブジェクトの 1 つなので、これにより初期化時に問題が発生します。Maya 4.0 以降、API プラグインのロードは Maya の起動処理の後半に行われるようになったため、すでにロードされているプラグインに依存している起動 MEL スクリプトは正しく動作しなくなります。