再生中の各フレーム変更におけるコマンドを実行する

 
 
 

再生中のフレームが変わるたびに迅速なコマンドの実行が必要な場合もあります。たとえば、現在のアニメーションに基づいてシーン情報の一部をログに記録する場合などです。 PlayControl プロパティ セットには、フレームの変更ごとに実行される簡単な VBScript コードを保持できるパラメータがあります。 これは、OnFrameChangeCommand パラメータです(「VBScript の例: 各フレーム変更時のオブジェクト位置のログを記録する」を参照)。

重要:

このパラメータは再生中にのみ起動します。 レンダリング中のフレーム変更によって起動されるイベントを使用したい場合は、OnBeginFrame イベントまたは OnEndFrame イベントのイベント ハンドラを実装する必要があります。 詳細については、「レンダリング用イベント ハンドラに関する注意事項」を参照してください。

VBScript の例: 各フレーム変更時のオブジェクト位置のログを記録する

この例では、Application.LogMessage を個別に 3 回呼び出すことで、ヌルの位置をログに記録します。

ヒント:

このコマンドでサポートされている言語は VBScript のみです。 VBScript では行末を改行文字でマークするので、1 行以上のコマンドを実行する場合は、コードの各行を vbCrLf(改行文字を示す VBScript 列挙型)で区切る必要があることに注意してください。

dim cmd2run
cmd2run = "Application.LogMessage GetValue(" & Chr(34) & "null.kine.local.posx" & Chr(34) & ")" & vbCrLf _
& "Application.LogMessage GetValue(" & Chr(34) & "null.kine.local.posy" & Chr(34) & ")" & vbCrLf _
& "Application.LogMessage GetValue(" & Chr(34) & "null.kine.local.posz" & Chr(34) & ")"
SetValue "PlayControl.OnFrameChangeCommand", cmd2run

レンダリング用イベント ハンドラに関する注意事項

レンダリング中に各フレーム更新で何かを実行する必要がある場合、以下のいずれかのイベントを使用できます(これらのイベントの実装方法の詳細については、「カスタム イベント」を参照)。

  • OnBeginFrame:フレームがレンダリングされる前に発生します。これらのイベントは siOnBeginFrame 列挙型を使って登録されます。

  • OnEndFrame:フレームがレンダリングされた後に発生します。これらのイベントは siOnEndFrame 列挙型を使って登録されます。

ヒント:

レンダリング中のフレーム変更によってイベントを発生させる場合は、siOnBeginFrame イベント ハンドラまたは siOnEndFrame イベント ハンドラのいずれかを使用する必要があります。OnFrameChangeCommandパラメータは再生中にのみ起動します。