サンプル プラグインの概要
 
 
 

Maya 開発ツール キットには、数多くの付属のサンプル プラグインがあります。この章の情報は、目的の操作に合ったサンプル プラグインを探すのに役立ちます。これらのサンプルでは、ファイル名からサンプル プラグインの種類がわかるように、次の命名規則を使用しています。

接尾部 説明

Cmd

新規のコマンドを作成するプラグイン。

Tool

新規のインタラクティブ ツールを作成するプラグイン。

Node

新規のノード型を作成するプラグイン。

Translator

新規のファイル トランスレータを作成するプラグイン。

Shader

新規のシェーディング ノードを作成するプラグイン。

Manip

新規のマニピュレータを作成するプラグイン。

Field

新規のダイナミック フィールドを作成するプラグイン。

Emitter

新規のダイナミック エミッタを作成するプラグイン。

Spring

新規のダイナミック スプリングを作成するプラグイン。

Shape

新規のシェイプを作成するプラグイン。

MEL コマンド プラグイン

blindComplexDataCmd

ユーザ定義のデータ型として、より複雑なブラインド データをオブジェクトに追加する例を示すコマンド。詳細については、 blindComplexDataCmdを参照してください。

blindDoubleDataCmd

ユーザ定義のデータ型として、ブラインド データをオブジェクトに追加する例を示すコマンド。詳細については、 blindDoubleDataCmdを参照してください。

blindShortDataCmd

ブラインド データをオブジェクトに追加する例を示すコマンド。詳細については、 blindShortDataCmdを参照してください。

closestPointCmd

MMeshIntersector クラスを使用して、ポイント ライトとメッシュの間の最近接ポイントを検索する方法を示すコマンド。

closestPointOnCurve

数学関数に応じてクラスタの複数の CV にウェイトを設定するコマンド。詳細については、 closestPointOnCurveを参照してください。

convertBumpCmd

API を使用したノンリニア アニメーション クリップの作成に必要な手順を示すコマンド。詳細については、 convertBumpCmdを参照してください。

convertEdgesToContainedFacesCmd

選択したエッジを相互にコネクトしたフェースに変換するコマンド。詳細については、 convertEdgesToContainedFacesCmdを参照してください。

convertVerticesToContainedEdgesCmd

選択した頂点をオリジナルの頂点と相互にコネクトしたエッジに変換するコマンド。詳細については、 convertVerticesToContainedEdgesCmdを参照してください。

convertVerticesToContainedFacesCmd

選択した頂点をオリジナルの頂点と相互にコネクトしたフェースに変換するコマンド。詳細については、 convertVerticesToContainedFacesCmdを参照してください。

cvExpandCmd

NURBS CV の選択範囲を分割して、選択されている 1 つの CV あたり 1 つの文字列を適用するコマンド。詳細については、 cvExpandCmdを参照してください。

cvPosCmd

NURBS CV またはポリゴン頂点のワールド空間またはローカル空間を返すコマンド。詳細については、 cvPosCmdを参照してください。

dagPoseInfoCmd

スケルトンのバインド ポーズまたは「dagPose」コマンドで作成されるその他のポーズについて、DAG ポーズ情報を抽出する方法を示すコマンド。詳細については、 dagPoseInfoCmdを参照してください。

deletedMsgCmd

使用可能な各ノード削除コールバックを示します。

deletedMsgCmd

API で使用可能な各ノード削除コールバックを示すコマンド。このコマンドは、選択したノードにコールバックを登録し、コマンド実行中にコンソールにメッセージをトリガします。

dynExprFieldTest

クラス MPxFieldNode に追加された、パーティクル単位のフィールド アトリビュート サポートを示します。

exportJointClusterDataCmd

すべてのジョイント クラスタ ノードの検索方法を例示し、MFnWeightGeometryFilter 関数セットと MItGeometry イテレータを使用して、各ジョイント クラスタによって変形するジオメトリごとに、1CV あたりのウェイトをエクスポートするコマンド。

exportSkinClusterDataCmd

スムース スキン データを別のフォーマットにエクスポートするコマンド。

findFileTexturesCmd

シーン内のファイル テクスチャ ノードを見つけるコマンド。

findTexturesPerPolygonCmd

各ポリゴンに割り当てられたファイル テクスチャ ノードを見つけるコマンド。

flipUVCmd

UV を操作する MPxPolyTweakUVCommand クラスの使用例。

helix2Cmd

元に戻すとやり直しを実装するコマンド。

helixTool

OpenGL を使用してガイドラインを引くツール。

helloCmd

引数を取る小さなコマンド。

helloWorldCmd

最初の単純なコマンド。

idleTest

ノード内におけるアトリビュートの依存状況を表示するコマンド。

instanceCallbackCmd

インスタンスの追加と削除のメッセージの受け取りの例を示します。

instancerListCmd

MFnInstancer と MItInstancer クラスを使用して、シーンですべてのパーティクル インスタンスを列挙する方法を示します。

intersectCmd

メッシュとスポット ライトの間にある交差ポイントを発見する方法を例示します。この例では、高速化された MFnMesh 交差手法がデモされます。

listLightLinksCmd

ライト リンク情報を検索するコマンド。

listPolyHolesCmd

選択された各ポリゴン メッシュのすべての穴のリストを生成するコマンド。

lockEvent

ノードとプラグのロックに関する API コールバックの例。

marqueeTool

マウス選択を実装するコマンド。

meshOpCmd

MFnMesh に追加されたハイレベルなポリゴン API メソッドの使用例。

meshReorderCmd

ユーザ定義の開始フェースに基づいてポリゴン メッシュを再インデックスするコマンド。

motionPathCmd

モーション パスに沿ってオブジェクトをアニメートするコマンド。

motionTraceCmd

キーフレームが設定されたオブジェクトの位置を段階的に評価し、モーション パス カーブを描くコマンド。

moveCurveCVsCmd

複数の CV を原点に移動するコマンド。

nodeInfoCmd

ディペンデンシー グラフ走査の例を示すコマンド。

nodeMessageCmd

アクティブ セレクション リストにあるすべてのノードに対してコールバックを追加するコマンド。

particlePathsCmd

API からのパーティクル ID 情報を使用し、時間の経過に伴いパーティクルの位置から一連の NURBS カーブを得るコマンド。

particleSystemInfoCmd

パーティクル情報を読み込むための新しい MFnParticleSystem クラスの使用例。

pfxInfoCmd

Maya® Paint Effects からレンダリング ライン情報を抽出する方法を例示します。

pickCmd

名前別にオブジェクトを選択するコマンド。

pointOnMeshInfo

ワールド空間の位置とポリゴン メッシュ上の法線を計算する MEL コマンドと DG ノード。

polyMessageCmd

頂点、エッジおよびフェース コンポーネントの ID 変更を受け取る MPolyMessage クラスの使用法を示します。

polyPrimitiveCmd

ポリゴンを作成するコマンド。

progressWindowCmd

MProgressWindow クラスの使用法を示します。

referenceQueryCmd

シーン内のリファレンス ファイルについて有益な情報を検索するコマンド。

renderViewInteractiveRenderCmd

MRenderView クラスの startRender() メソッドに追加された即座のフィードバック設定の例を示します。

scanDagCmd

DAG 走査の例を示すコマンド。

scanDagSyntax

DAG 走査の例を示すとともに、構文オブジェクトを使用して、受け取る引数を解析するコマンド。

spiralAnimCurveCmd

オブジェクトをらせん形に移動させるコマンド。

splitUVCmd

ポリゴン メッシュ上の選択した UV の共有を解除する(UV を分割する)コマンド。

surfaceCreateCmd

MFnNurbsSurface 関数セットを使用して、複数の CV とノットから NURBS サーフェスを作成するコマンド。

surfaceTwistCmd

NURBS サーフェスの CV 位置またはポリゴンの頂点位置を変更することで、y 軸中心にサーフェスをツイストするコマンド。

threadTestCmd

MThreadPool スレッド クラスの使用方法を示すコマンド。

threadTestWithLocksCmd

MThreadPool および MSpinLock スレッド クラスの使用方法を示すコマンド。

translateCmd

オブジェクトを移動するコマンド。

undoRedoMsgCmd

MEventMessage クラスに追加された新しい元に戻す(Undo)とやり直し(Redo)イベントの使用法を示します。

userMsgCmd

MUserEventMessage クラスの使用法を示します。この例では、文字列で識別されるユーザ定義イベントの作成、削除および表示が可能です。

userMsgCmd

ユーザ定義メッセージの使用方法を示すコマンド。このコマンドは、API を介して名前付きイベントを登録、登録解除、および表示するオプションをサポートします。この例では、入力時に単純にメッセージを出力するコールバックを使用します。

viewCallbackTest

プリ レンダリング コールバック、ポスト レンダリング コールバック、およびビュー破壊コールバックを受け取る方法を例示します。

volumeLightCmd

MFnVolumeLight クラスの使用例。

whatisCmd

オブジェクトに関する API 型の情報を出力するコマンド。

zoomCameraCmd

カメラを通したビューを拡大するコマンド。

ディペンデンシー グラフ ノード プラグイン

affectsNode

MPxNode::setDependentsDirty() メソッドの新しい使用例を示します。この新しいメソッドは、ダイナミックおよび非ダイナミックな(つまりスタティックな)Maya アトリビュートに関連する attributeAffects() リレーションシップを考慮に入れています。

animCubeNode

初めからポリゴン メッシュを作成し、そのメッシュをディペンデンシー グラフ アトリビュートに出力するディペンデンシー ノードのサンプル。

apiMeshShape

新しい型のポリゴン メッシュとそのシェイプに特有のジオメトリ データを登録するシェイプ ノード、および、その新しいシェイプ型を作成するノードのサンプル。

apiSimpleShape

コンポーネントの操作方法をデモしたシェイプ ノードの例。MPxComponentShape クラスを使用します。

arcLenNode

ジオメトリを入力として取る単純なノードのサンプル。

buildRotationNode

代数計算を行う単純なノード。

circleNode

比較的複雑なプロシージャ アニメーションのサンプル。

closestPointOnCurve

数学関数に応じてクラスタの複数の CV にウェイトを設定するコマンド。

componentScaleManip

スケール マニピュレータで頂点の位置を制御する変換機能の使い方を示す複雑なサンプル。

curveArrowsNode

透明度の使用方法と、MPxLocatorNode の「最新」の描画機能を示します。

customImagePlane

ユーザ定義イメージ プレーンの作成方法を示します。

cvColorNode

NURBS サーフェスの各 CV の上部に、カラーを適用したポイントを描くロケータ ディペンデンシー ノードのサンプル。

cvColorShader

頂点カラー(CPV)をソフトウェア レンダリングすることを可能にします。

exampleMRampAttribute

カスタム ノードでランプ アトリビュートを実行する手順を示すサンプル。

footPrintManip

対応するマニピュレータがあるロケータ ディペンデンシー ノードのサンプル。footPrint ロケータを選択して footPrint マニピュレータを表示するには、マニピュレータの表示ツール(Show Manipulator Tool)を使用します。

footPrintNode

ロケータ ディペンデンシー ノードのサンプル。実はロケータとは、ユーザによるオーバーライドが可能な複数の draw メソッドが設定された DAG ノードです。この特定のロケータによって、足跡が描かれます。

fullLoftNode

NURBS カーブの配列から NURBS サーフェスを作成するリアルなロフト ディペンデンシー ノードのサンプル。

genericAttributeNode

ノードで汎用アトリビュートを作成および使用する方法を示します。

geometrySurfacConstraint

ユーザ定義コンストレインの作成方法を示します。

jitterNode

単純な汎用プロシージャ ノード。

latticeNoise

ディペンデンシー ノードにおける複雑なジオメトリ変更の例。低レベルのディペンデンシー グラフにアクセスしてノードをフックするコマンドを伴います。

multiCurveNode

MArrayDataBuilder クラスを使用するディペンデンシー ノードのサンプル。

NodeMonitor

指定されたノードをモニタするクラス。

offsetNode

CV のウェイトに従って頂点のオフセットを行う、デフォーマ ディペンデンシー ノードのサンプル。

particleAttrNode

パーティクル単位のデータをパーティクル シェイプにマッピングするカスタム ノードの定義方法を示します。

pnTrianglesNode

ATI Radeon 固有のハードウェア シェーダ プラグイン。

pointOnMeshInfo

ワールド空間の位置とポリゴン メッシュ上の法線を計算する MEL コマンドと DG ノード。

pointOnSubdNode

ディペンデンシー ノードへの入力としてサブディビジョン サーフェスを検索する方法を示すサンプル。

polyTrgNode

poly API クラス MPxPolyTrg を使用してメッシュのユーザ定義の三角分割を追加する方法を示すサンプル。

quadricShape

OpenGL gluQuadric 関数を使用して 2 次シェイプを実装する、単純なシェイプ ノードのサンプル。

rockingTransform

ロッキング モーションを定義する MPxTransform の実施手順を例示するサンプル。

rockingTransformCheck

ロッキング モーションを定義してユーザ入力値をチェックする MPxTransform の実施手順のサンプル。

rotateManip

回転マニピュレータに対する別の設定を示すサンプル。

shellNode

手順を追って貝殻を生成し、それらをメッシュとして出力するディペンデンシー グラフ ノード。

simpleLoftNode

コンストラクション ヒストリを設定した状態で、カーブに対してユーザ定義のロフト関数を実装するノード。内部のディペンデンシー ノードにジオメトリ(NURBS サーフェス)を渡す方法も示します。

sineNode

単純なプロシージャ アニメーションのサンプル。

stringFormatNode

入力と出力アトリビュートとして文字列を使用する方法を示します。

surfaceBumpManip

この例では、pointOnSurface マニピュレータを使ってサーフェス上のマニピュレータの位置の近くにある頂点を変更する方法を示します。

swissArmyManip

既存のユーザ定義マニピュレータをすべて 1 つのノードにアタッチしたサンプル。

transCircleNode

移動アトリビュートを入力および出力として使用するディペンデンシー ノードのサンプル。単一のディペンデンシー グラフ コネクションを介して、X、Y、Z のアトリビュートをすべて転写する方法を示します。また、アトリビュート エディタ(Attribute Editor)のサンプル テンプレートも組み込まれています。

weightListNode

デフォーマの weightList アトリビュートにあるマルチアトリビュートを操作する方法を例示します。

yTwistNode

変形した頂点を Y 軸中心にツイストするデフォーマ ディペンデンシー ノードのサンプル。

ユーザ定義のディペンデンシー グラフ ノード - ダイナミクス ノードの作成

以下に示すユーザ定義のディペンデンシー グラフ ノードによって、MPxEmitterNode、MPxSpringNode、および MPxFieldNodeThese から派生するダイナミクス ノードが作成されます。

ownerEmitter

particleShape によって定義される複数のポイントから一定方向に放射する、パーティクル エミッタ ノードのサンプル。

simpleEmitter

単一のポイントから一定方向に放射するパーティクル エミッタ ノードのサンプル。

simpleFluidEmitter

新しい MPxFluidEmitterNode クラスを使用して Maya の標準的な流体エミッタの大半の機能を実行する手順を示すサンプル流体エミッタ ノード。

simpleSpring

シミュレーションに使用するばねの法則を定義するスプリング ノードのサンプル。

sweptEmitter

カーブまたはサーフェス上のポイントから一定方向に放射する、パーティクル エミッタ ノードのサンプル。

torusField

それ自体と一定距離との間で attract-repel フィールドを実装する、フィールド ノードのサンプル。

レンダリング プラグイン

blastCmd

オフ スクリーン レンダリング API 拡張機能を使用する方法を示します。

blindDataMesh

カラー情報をハードウェア シェーディング ノードに供給するためのブラインド データの使用例。

CgFx Shader

詳細な機能を数多く備えたハードウェア シェーダ プラグイン。

renderAccessNode

レンダリング コールバックの処理方法を示します。

renderViewRenderCmd

MRenderView クラスを使用してレンダー ビュー(Render View)ウィンドウにフル イメージをレンダリングする方法を示します。

renderViewRenderRegionCmd

MRenderView クラスを使用して Maya のレンダー ビュー(Render View)で現在選択されている領域をレンダー(Render Region)を更新する方法を示します。

sampleCmd

MRenderUtil::sampleShadingNetwork() を使用して、シェーディング グループまたはノードをサンプリングする方法を示します。

sampleParticles

MRenderUtil::sampleShadingNetwork() を使用して、シェーディング グループまたはノードをサンプリングし、パーティクル オブジェクトにカラーを割り当てる方法を示します。

ShadingConnection

シェーダのアトリビュートに関する有益な情報を保存しているクラス。上流にコネクトされるものを含みます。

ShapeMonitor

シェイプ ノードやテクスチャ ノードをモニタし、最後のエクスポート以降の変更内容を記録するクラス。

shiftNode

テクスチャ プラグイン内からの uvCoord と refPointCamera を変更する例を示します。

hwManagedTextureShader

テクスチャ キャッシュを効率的に管理する方法を示します。

OpenGLViewportRenderer

Maya ビューポート描画をオーバーライドする方法を示します。

D3DViewportRenderer

Direct3D を使用して Maya ビューポートにレンダーする方法を示します(Windows のみ)。

その他のプラグイン

その他のプラグインを次に示します。

conditionTest

Maya 内で変更中の「条件」を表示します。

ddsFloatReader

.dds float ファイル フォーマット リーダの定義方法を示します。

eventTest

Maya 内で変更中の「イベント」を表示します。

filterAsciiFile

Maya ASCII ファイルのフィルタリングを制御する方法を示します。

hairCollisionSolver

MHairSystem を使用して、Maya のオブジェクトをヘア コリジョン アルゴリズムにオーバーライドする方法を示します。

helixMotifCmd

押すとらせん形を作成するボタンを備えた Motif ウィンドウを新たに作成します。このプラグインは、Linux のみで使用可能です。

idleTest

アイドル メッセージと UI から削除されたメッセージをプラグインで使用します。

iffInfoCmd

IFF イメージ ファイルから情報を抽出します。

iffPixelCmd

IFF イメージ ファイルからピクセル値を抽出します。

iffPpmCmd

IFF イメージ ファイルを PPM イメージ ファイルに変換します。

jlcVcrDevice

JL-Cooper MIDI VCR コントロール ボックスにユーザ定義の MIDI 入力デバイスを作成します。このプラグインは、Linux のみで使用可能です。

lepTranslator

独自のマジック ナンバーを定義し、MEL コマンドを読み取るファイル トランスレータのサンプルです。

maTranslator

MayaAscii ファイルに近い形式に変換するファイル トランスレータの例。

moveManip

ユーザ定義コンテキストを使った freePointTriad と距離マニピュレータの使用方法を示す単純なマニピュレータ。

moveNumericTool

正射投影ビューでの移動を実行するとともに、移動ツール(Move Tool)の使用時にユーザが精密な移動値を入力できるようにする選択アクション ツールです。

moveTool

正射投影ビューでの移動を実行する選択アクション ツールです。

pnTrianglesNode

このノードは、ディペンデンシー ノードへの入力としてサブディビジョン サーフェスを検索する方法を示す、単純なサンプルです。

simpleImageFile

新規のイメージ ファイル フォーマットの定義方法を示します。

simpleSolverNode

createNode を介して登録した、xy プレーン上の単純なユーザ定義シングル ボーン IK ソルバのサンプル。createNode を介してプラグイン ソルバを登録すると、ikMCsolver などのデフォルト以外の IK ソルバと同じ登録手順になります。

tiffFloatReader

.tif float ファイル フォーマット リーダの定義方法を示します。

viewCaptureCmd

OpenGL を使用してカレントの 3D ビューを取り込み、そのビューを PPM ファイルに書き込みます。

シェーダのソース コードのサンプル

シェーダのソース コードのサンプルは、 シェーダのソース コードのサンプルに記載されています。

システム プラグイン

次の表に、Maya に付属している一部のシステム プラグインのソースを示します。その他のほとんどのサンプル コードと異なり、これらのソース コードは、複雑な実稼動用プラグインのサンプルです。

各ソースの詳細については、『トランスレータ機能』マニュアルを参照してください。このマニュアルのコンパイル版は、Maya パッケージに同梱されています。次に、カレント リストを示します。

animImportExport

アニメーション情報をシーン間で移動できるようにするトランスレータ。

objExport

Wavefront OBJ エクスポート トランスレータ。

ribExport

Pixer® RenderMan® RIB エクスポート トランスレータ。