Maya の内部モデリング、アニメーション、レンダリング オブジェクト、およびすべての有向グラフ ノードとそのアトリビュートは、モデル オブジェクトと呼ばれます。
MFn プリフィックスが付いている関数セット クラスには、特定のモデル オブジェクトを操作する関数が用意されています。たとえば、MFnNurbsSurface には、NURBS サーフェスを操作する関数が用意されています。
MObject クラスには、モデル オブジェクトにアクセスするジェネリック インタフェースが用意されています。各 MObject は、関数セットによって操作される基本のモデル オブジェクトのハンドルです。したがって、MObject でデストラクタを呼び出すと、MObject のみが破棄され、MObject が示す元のモデル オブジェクトは破棄されません。
MObject は、関数セットの create() メソッドを使用して作成されます。各関数セットは独自の create() メソッドを実装し、作成された MObject はその関数セットのタイプを取得します。MObject は継承されるため、その関数セット タイプの派生元すべての関数セットと互換性があります。
注: MObject は、その関数セット タイプから派生した関数セットとは互換性がありません。
さまざまなメソッドを使用して、MObject のタイプを照会することができます。MObject のタイプがわからない場合は、apiType() メソッドを使用して MObject のタイプを取得します。戻り値は MFn::Type のタイプです。MObject が特定の関数セットと互換性があるかどうかを確認するには、関数セットのタイプを hasFn() メソッドに渡します。
MObject はジェネリック型であるため、互換性のない関数セットに MObject を渡してもコンパイラ エラーは発生しません。エラーは実行時にのみ発生します。