新機能 > 
API の新機能
 
 
 

API の変更内容は、次のセクションで説明します。

全般的な更新事項

コンパイラ情報

const の変更

オブジェクトに修正を加えない、いくつかのメソッドを const に変更しました。

メソッドによって修正されない、いくつかのメソッド パラメータを const に変更しました。

リファレンス マニュアル

Maya の API リファレンス マニュアルがより使いやすく読みやすくなるように、次のように、スタイルが改良され、新機能が加わりました。

新しいクラス

このリリースには多くの新しいクラスが追加されました。

MAtomic

MAtomic クラスでは、増分および減分カウンタなどのクロスプラットフォームのアトミック操作を実行でき、マルチスレッド コードを作成する場合に便利です。

MContainerMessage

MContainerMessage クラスでは、コンテナのパブリッシュされたアトリビュートを変更するためのにコールバック関数を登録できます。

MFnContainerNode

MFnContainerNode クラスは、コンテナの作成、照会、編集用の関数セットです。

MFnRenderPass

MFnRenderPass クラスは、レンダー パスの操作用の関数セットです。

MFnUint64SingleIndexedComponent

MFnUint64SingleIndexedComponent クラスは、サブディビジョン サーフェスの頂点 ID などの MUint64 (64 ビット符号なし整数)によってインデックス付けされたコンポーネントを操作するための関数セットです。

MMeshSmoothOptions

MMeshSmoothOptions クラスは、MFnMesh::generateSmoothMesh メソッドで使用するオプションを設定して読み出すことができます。

MNurbsIntersector

MNurbsIntersector クラスを使用して、NURBS サーフェスの最近接ポイントを効率よく見つけることができます。

MPlane

MPlane クラスは、数学的なプレーンを記述するユーティリティ クラスです。

MPxCacheFormat

MPxCacheFormat を使用して、Maya で新しいキャッシュ ファイル フォーマットを実装することができます。

MPxManipulatorNode

MPxManipulatorNode クラスを使用して、単独あるいはMPxManipContainer と併用するユーザ定義のマニピュレータを作成します。

MPxRenderPassImpl

MPxRenderPassImpl クラスは、カスタム レンダー パスを作成するために使用します。

MRenderPassDef

MRenderPassDef クラスでは、レンダー パスを作成、照会、編集することができます。

MRenderPassRegistry

MRenderPassRegistry クラスを使用して、レンダー パス定義を Maya に登録し、登録済みのレンダー パス定義を読み出すことができます。

MRichSelection

MRichSelection クラスでは、ソフト選択と対称に関する情報を保持するセレクション リストを使用できます。

MThreadUtils

MThreadUtils クラスでは、スレッド式のプラグインの作成する場合に便利なユーティリティ メソッドを使用できます。

MWeight

MWeight クラスは、ソフト選択と対象選択のウェイトにアクセスするために使用します。

新しいメソッド

このリリースでは、次の新しいメソッドが追加されました。

M3dView

void getScreenPosition( int& x, int& y, MStatus* ReturnStatus = NULL ) const

ビューの左上隅の位置をスクリーンの座標で返します。

MStatus colorMask( bool& r, bool& g, bool& b, bool& a )

カレントのカラー マスクを読み出します。

MStatus setColorMask( bool r, bool g, bool b, bool a )

カラー マスクを設定します。

MDGMessage

static MCallbackId addPreConnectionCallback( MMessage::MPlugFunction func, void* clientData = NULL, MStatus* ReturnStatus = NULL )

コネクションが作成または解除される直前にコールされるコールバックを追加します。

MDrawInfo

bool inUserInteraction() const

ユーザのシーン操作によってカレントのリフレッシュが発生した場合に true を返します。

bool userChangingViewContext() const

ユーザがタンブル、ドリー、トラックなどのビュー コンテキスト ツールを操作したことによってカレント リフレッシュが発生した場合に true を返します。これは、描画モードをより簡単なモードに変更して、インタラクティブな再描画を行う場合に便利です。

MFileIO

static MPxFileTranslator* beforeOpenUserFileTranslator( MStatus* ReturnStatus = NULL )

MSceneMessage::kBeforeOpen と MSceneMessage::kBeforeOpenCheck コールバック内で使用し、プラグインのファイル トランスレータが使用されている場合にそれを返します。

static MPxFileTranslator* beforeImportUserFileTranslator( MStatus* ReturnStatus = NULL )

MSceneMessage::kBeforeImport と MSceneMessage::kBeforeImportCheck コールバック内で使用し、プラグインのファイル トランスレータが使用されている場合にそれを返します。

static MPxFileTranslator* beforeSaveUserFileTranslator( MStatus* ReturnStatus = NULL )

MSceneMessage::kBeforeSave と MSceneMessage::kBeforeSaveCheck コールバック内で使用し、プラグインのファイル トランスレータが使用されている場合にそれを返します。

static MPxFileTranslator* beforeExportUserFileTranslator( MStatus* ReturnStatus = NULL )

MSceneMessage::kBeforeExport および MSceneMessage::kBeforeExportCheck コールバック内で使用し、プラグインのファイル トランスレータが使用されている場合にそれを返します。

static MPxFileTranslator* beforeReferenceUserFileTranslator( MStatus* ReturnStatus = NULL )

MSceneMessage::kBeforeReference と MSceneMessage::kBeforeReferenceCheck コールバック内で使用し、プラグインのファイル トランスレータが使用されている場合にそれを返します。

MFileObject

void setResolveMethod( MFileResolveMethod method )

ファイル パスの解決法を設定します。

MFileResolveMethod resolveMethod() const

ファイル パスの解決法を読み出します。

MFnCamera

MStatus getViewParameters( double windowAspect, double& apertureX, double& apertureY, double& offsetX, double& offsetY, bool applyOverscan = false, bool applySqueeze = false ) const

MFnCamera::getViewingFrustum と MFnCamera::getRenderingFrustum が計算で内部的に使用する、処理前の表示パラメータを返します。

MStatus setDisplayGateMask( bool displayGateMask )

フィルムまたはレゾリューション ゲートがアクティブの場合に、このメソッドを使用してゲート外側のマスキングされた部分をより見やすくするためにシェーディングするかどうかを設定できます。

MFnComponent

bool hasWeights() const

コンポーネントにソフト選択または対称のウェイト データがアタッチされている場合に true を返します。

MWeight weight( int index, MStatus* ReturnStatus = NULL ) const

コンポーネント内の指定したエレメントのソフト選択または対称のウェイト データを返します。

MFnDependencyNode

MStatus dgTimerOn()

ノードのディペンデンシー グラフ タイマーをオンにします。DG タイマ―を使用して、パフォーマンス分析用のタイミング情報を収集することができます。

MStatus dgTimerOff()

ノードのディペンデンシー グラフ タイマーをオフにします。DG タイマ―を使用して、パフォーマンス分析用のタイミング情報を収集することができます。

MdgTimerState dgTimerQueryState( MStatus* ReturnStatus = NULL )

ノードのディペンデンシー グラフ タイマーのカレントの状態を返します。DG タイマ―を使用して、パフォーマンス分析用のタイミング情報を収集することができます。

MStatus dgTimerReset()

ノードのディペンデンシー グラフ タイマーとカウンタをゼロにリセットします。DG タイマ―を使用して、パフォーマンス分析用のタイミング情報を収集することができます。

double dgTimer( const MdgTimerMetric timerMetric, const MdgTimerType timerType, MStatus* ReturnStatus = NULL ) const

ノードの指定したタイマー値を返します。DG タイマ―を使用して、パフォーマンス分析用のタイミング情報を収集することができます。

MStatus dgCallbacks( const MdgTimerType type, MStringArray& callbackName, MDoubleArray& value )

ノードの DG タイマ―に記録された、各種コールバックの消費時間を返します。DG タイマ―を使用して、パフォーマンス分析用のタイミング情報を収集することができます。

MStatus dgCallbackIds( const MdgTimerType type, const MString& callbackName, MCallbackIdArray& callbackId, MDoubleArray& value )

ノードの DG タイマ―に記録された、指定したコールバックの各コールバック メソッドの消費時間を返します。DG タイマ―を使用して、パフォーマンス分析用のタイミング情報を収集することができます。

MString pluginName( MStatus* ReturnStatus = NULL ) const

ノードがプラグイン由来である場合、このメソッドはプラグインのパス名を返します。

MFnMesh

MStatus getSmoothMeshDisplayOptions( MMeshSmoothOptions& options ) const

メッシュのカレントの表示スムージング オプションを読み出します。

MStatus setSmoothMeshDisplayOptions( const MMeshSmoothOptions& options )

メッシュのカレントの表示スムージング オプションを設定します。

MStatus booleanOp( BoolOperation op, MFnMesh& mesh1, MFnMesh& mesh2 )

2 つのメッシュ間のブーリアン演算を実行します。

const float* getRawPoints( MStatus* ) const

このメッシュの内部頂点リストのポインタを返します。

const float* getRawNormals( MStatus* ) const

このメッシュの内部法線リストのポインタを返します。

MStatus getVertexNormal( int vertexId, bool angleWeighted, MVector& normal, MSpace::Space space = MSpace::kObject ) const

この getVertexNormal の変形型を使用して呼び出し側は、法線を計算する場合に Maya が通常使用するウェイト付けされた平均計算をオフにし、より高速な単純平均を使用することができます。

MStatus getVertexNormals( bool angleWeighted, MFloatVectorArray& normals, MSpace::Space space ) const

この getVertexNormals の変形型を使用して呼び出し側は、法線を計算する場合に Maya が通常使用するウェイト付けされた平均計算をオフにし、より高速な単純平均を使用することができます。

MStatus getColorSetFamilyNames( MStringArray& familyNames ) const

オブジェクトにあるすべてのカラー セット ファミリの名前を取得します。

MStatus getColorSetsInFamily( const MString& familyName, MStringArray& setNames ) const

カラー セット ファミリに属するカラー セットの名前を取得します。

bool isColorSetPerInstance( const MString& name, MStatus* ReturnStatus ) const

指定したカラー セットがインスタンス単位である場合は true を返し、すべてのインスタンスに共有されている場合は false を返します。

MStatus getAssociatedColorSetInstances( const MString& setName, MIntArray& instances ) const

指定したカラー セットを使用するすべてのインスタンスのインスタンス番号を返します。

MFnNurbsSurface

MObject getDataObject() const

クラスが MFn::kNurbsSurfaceData エンティティによって構成されている場合は MObject を返し、それ以外の場合は MObject::kNullObj を返します。

MFnPlugin

MStatus registerCacheFormat( const MString& cacheFormatName, MCreatorFunction creatorFunction )

カスタム キャッシュ フォーマットを Maya に登録します。

MStatus deregisterCacheFormat( const MString& cacheFormatName )

カスタム キャッシュ フォーマットを Maya から登録解除します。

MStatus registerRenderPassImpl( const MString& passImplId, MRenderPassDef* passDef, MCreatorFunction creatorFunction, bool overload )

カスタム レンダー パスの実装を Maya に登録します。

MStatus deregisterRenderPassImpl( const MString& passImplId )

カスタム レンダー パスの実装を Maya から登録解除します。

MFnRenderLayer

MStatus externalRenderPasses( MObjectArray& renderPassArray ) const

レンダー レイヤにあるすべてのレンダー パス ノードの配列を返します。

bool passHasObject( const MObject& renderPass, const MDagPath& objectPath, MStatus* ReturnStatus ) const

指定したオブジェクト インスタンスが特定のレンダー パスに作用する場合は true を返します。

bool passHasLight( const MObject& renderPass, const MObject& light, MStatus* ReturnStatus ) const

指定したライトが特定のレンダー パスに作用する場合は true を返します。

MGlobal

static MStatus getRichSelection( MRichSelection& dest, bool defaultToActiveSelection )

ソフト選択と対称が適用されたアクティブな選択項目を返します。

static SelectionMethod selectionMethod( MStatus* ReturnStatus )

現在アクティブなビューポートで使用する選択方法を返します。

MItGeometry

MWeight weight( MStatus* ReturnStatus ) const

カレント コンポーネントのウェイトを返します。

int exactCount( MStatus* ReturnStatus )

この反復内にある正確な項目数を返します。

MStatus allPositions( MPointArray& points, MSpace::Space space ) const

すべてのポイント/CV/頂点の位置を返します。イテレータで値を 1 つずつ取得するよりも効率的です。

MStatus setAllPositions( const MPointArray& points, MSpace::Space space )

すべてのポイント/CV/頂点の位置を同時に設定します。イテレータで値を 1 つずつ設定するよりも効率的です。

MItSelectionList

MStatus getPlug( MPlug& plug )

カレントの選択項目をプラグとして読み出します。

MObjectHandle

unsigned int hashCode() const

この MObjectHandle 内の MObject によって参照される Maya の内部オブジェクトのハッシュ コードを返します。これにより、Python ディクショナリなど、Maya の内部オブジェクトをハッシュ検索のキーとして安全に使用することができます。

MPxGlBuffer

virtual void beginBufferNotify()

このメソッドは、GL バッファがビューポート レンダラによって設定されるときにコールされます。

virtual void endBufferNotify()

このメソッドは、GL バッファがビューポート レンダラによってシャットダウンされるときにコールされます。

MPxManipContainer

MStatus addMPxManipulatorNode( const MString& manipTypeName, const MString& manipName, MPxManipulatorNode*& proxyManip )

このメソッドは、カスタム MPxManipulatorNode を作成し、それをマニピュレータ コンテナに追加します。

MPxModelEditorCommand

MStatus setResult( const MDoubleArray& result )

このメソッドは、パネル コマンドの結果が double 配列の場合にコールします。

MStatus setResult( const MIntArray& result )

このメソッドは、パネル コマンドの結果が int 配列の場合にコールします。

virtual MString editorCommandName() const

モデル エディタ コマンドの名前を返します。

virtual MPx3dModelView* makeModelView( MStatus* ReturnStatus )

このメソッドは、modelEditor が作成されるときにコールされ、ユーザは modelView の配分を直接処理するか、コマンド フラグに基づいて作成を変更することができます。

MRenderUtil

static MString mainBeautyPassName()

レンダラがトークンの代入に使用するメインのビューティ パスの名前を返します。

MSceneMessage

static MCallbackId addCallback( Message, void (*func)( const MStringArray&, void* ), void* clientData, MStatus* ReturnStatus )

このバージョンのメソッドでは、文字配列を取るコールバック関数を使用します。これは新しいプラグインのロード/アンロード メッセージをサポートします。

修正されたメソッド

既存のメソッドの一部が変更されました。変更によって新しいコール シーケンスが以前のものと互換性を持たなくなった場合、従来のコール シーケンスの下位互換性も保持されますが、マニュアルには非推奨事項として記述されます。

メソッドまたはそのパラメータの const 性のみが変更されたメソッドは記載していません。

MColor

いくつかのメソッドのパフォーマンスが改良されました。

MFileIO

MStatus open( const MString& fileName, const char* type = NULL, bool force = false, ReferenceMode refMode = kLoadDefault, bool ignoreVersion = false )

オプションの ignoreVersion パラメータが追加されました。これはファイルを開くときにバージョン番号を無視するかどうかを示します。

MFnMesh

MStatus createColorSet( MString& colorSetName, MDGModifier* modifier, bool clamped, MColorRepresentation rep, const MUintArray* instances = NULL )

オプションの instances パラメータが追加され、カラー セットを特定のノードのインスタンスのみにコネクトすることができます。

MString createColorSetWithName( const MString& colorSetName, MDGModifier* modifier = NULL, const MUintArray* instances = NULL, MStatus* ReturnStatus = NULL )

オプションの instances パラメータが追加され、カラー セットを特定のノードのインスタンスのみにコネクトすることができます。

MString currentColorSetName( int instance = kMFnMeshInstanceUnspecified, MStatus* ReturnStatus = NULL ) const

オプションの instance パラメータが追加され、インスタンス固有のカラー セットを返します(存在する場合)。

MObject generateSmoothMesh( MObject parentOrOwner = MObject::kNullObj, MMeshSmoothOptions* options = NULL, MStatus* ReturnStatus = NULL )

オプションの options パラメータが追加され、呼び出し側からスムース メッシュの生成時に使用するオプションを設定できます。

MStatus getCurrentColorSetName( MString& setName, int instance = kMFnMeshInstanceUnspecified )

オプションの instance パラメータが追加され、インスタンス固有のカラー セットを返します(存在する場合)。

MGlobal

MStatus selectFromScreen( const short& x_pos, const short& y_pos, MGlobal::ListAdjustment listAdjustment = kAddToList, MGlobal::SelectionMethod selectMethod = kWireframeSelectMethod )

オプションの selectMethod パラメータが追加され、ワイヤフレームまたはサーフェスとしてオブジェクトを選択するかどうかを指定します。

MStatus selectFromScreen( const short& start_x, const short& start_y, const short& end_x, const short& end_y, MGlobal::ListAdjustment listAdjustment = kAddToList, MGlobal::SelectionMethod selectMethod = kWireframeSelectMethod ) 

オプションの selectMethod パラメータが追加され、ワイヤフレームまたはサーフェスとしてオブジェクトを選択するかどうかを指定します。

MProgressWindow

オプションの ReturnStatus パラメータが次のメソッドに追加されました。

MPxConstraintCommand

virtual MStatus handleNewTargets( MDagPath& dagObject )

dagObject パラメータが、MObject から MDagPath に変更されました。これにより、同じノードのさまざまなインスタンスを区別できるようになりました。

virtual MStatus connectTarget( MDagPath& targetPath, int index )

以前は、ターゲットが不透明ポインタとして渡されていました。これが MDagPath に変更されたことで、開発者はこのバーチャル メソッドをより柔軟に変更できるようになりました。

MStatus connectTargetAttribute( MDagPath& targetPath, int index, MObject& tarAttr, MObject& constraintAttr, bool instanced = false )

以前は、ターゲットが不透明ポインタとして渡されていました。これが MDagPath に変更されたことで、開発者はこのバーチャル メソッドをより柔軟に変更できるようになりました。

オプションの instanced パラメータが追加され、ターゲット アトリビュートがインスタンス化されているかどうかを示します。

新しい enum

このリリースでは、既存のクラスに複数の enum が新しく追加されました。

修正された enum

MFn::Type

MGlobal::ListAdjustment

MPxManipContainer::baseType

MPxNode::Type

MSceneMessage::Message

MSelectionMask::SelectionType

サンプルの変更

新しい C++ サンプル プラグイン

新しい Python サンプル プラグイン

新しくローカライズされたプラグイン

修正された不具合

次に、本リリースで修正された不具合の中で、API ユーザにとって最も興味深いであろうものを列記します。