三日月館【別館】開発・制作Tips集
[Maya] MPlugから任意の時刻の値を高速に取得する
最終更新:
fumiduki1985
-
view
※この情報はMaya2011頃のSDKにて確認した情報で、2017年現在ではインターフェース/性能などの状況が異なる可能性があります。
Maya SDKのMPlugから任意の時刻を取得する場合、MPlug::getValue()関数の第2引数であるMDGContexを使い、任意の時刻を表すMTimeオブジェクトを直接渡すのが最も高速である。
MPlug::getValue()関数はデフォルトではカレントフレームの値を返す。
そのため、下記のようなAPIでカレントフレームに任意のフレームをセットしてからMPlug::getValue()関数を使う方法も考えられるが、カレントフレームのセットは非常に低速であることに注意が必要。
そのため、下記のようなAPIでカレントフレームに任意のフレームをセットしてからMPlug::getValue()関数を使う方法も考えられるが、カレントフレームのセットは非常に低速であることに注意が必要。
- MGlobal::viewFrame
- MAnimControl::setCurrentTime
「ある時刻からある時刻まで全フレームの値を取得したい」といった場合、取得したいフレーム分だけカレントフレームのセットを行うことがボトルネックになる可能性がある。