三日月館【別館】開発・制作Tips集

[Maya] MPlugから任意の時刻の値を高速に取得する

最終更新:

fumiduki1985

- view
管理者のみ編集可
※この情報はMaya2011頃のSDKにて確認した情報で、2017年現在ではインターフェース/性能などの状況が異なる可能性があります。

Maya SDKのMPlugから任意の時刻を取得する場合、MPlug::getValue()関数の第2引数であるMDGContexを使い、任意の時刻を表すMTimeオブジェクトを直接渡すのが最も高速である。

MPlug::getValue()関数はデフォルトではカレントフレームの値を返す。
そのため、下記のようなAPIでカレントフレームに任意のフレームをセットしてからMPlug::getValue()関数を使う方法も考えられるが、カレントフレームのセットは非常に低速であることに注意が必要。
  • MGlobal::viewFrame
  • MAnimControl::setCurrentTime

「ある時刻からある時刻まで全フレームの値を取得したい」といった場合、取得したいフレーム分だけカレントフレームのセットを行うことがボトルネックになる可能性がある。


このページのタグ一覧
C/CPP Maya プログラミング

記事メニュー
ウィキ募集バナー