Emulate3Dで時間の操作

皆さんこんにちは、Emulate3Dの技術担当の飯田です。

今回はEmulate3Dで利用する「時間の操作」についてまとめます。

指定の時間でモデルを停止、時間カウントと秒数カウントの表示切り替え、スクリプトで待機時間の実装を紹介します。

目次

指定の時間でモデルを停止

再生途中から指定の時間でモデルを停止

時間カウントと秒数カウントの表示切り替え

スクリプトで待機時間を入れる

終わりに

指定の時間でモデルを停止

動画を撮影するときに時間を指定して撮影したいときはありませんか?
(例:最初の60秒間だけ動画を撮影したい。)
この機能を使用すれば再生してから任意の時間でモデルを停止することができます。

手順

Settingsを押下します。

Emulate3D Settings 表示方法

StopAtTimeに止めたい時間を入力します。(画像では60秒で設定)

Emulate3D Setting画面 表示

再生を押下します。
入力した時間に止まります。(画像では60秒で停止)

Emulate3D 時間 表示

再生途中から指定の時間でモデルを停止

動画を撮影するときに再生途中から指定の時間数だけ撮影したいときはありませんか?
(例:30秒から10秒間だけ動画を撮影したい。)
この機能を使用すれば再生途中から指定の時間数だけ撮影することができます。

手順

Settingsを押下します。

Emulate3D Settings 表示方法

StopAfterDurationに現在の再生時間から止めたい時間を入力します。(画像では10秒で設定)

Emulate3D Setting 表示

再び再生を押下します。
入力した時間で止まります。(画像では30秒の状態から10秒経過した40秒で停止)

Emulate3D 時間 表示

時間カウントと秒数カウントの表示切り替え

画面の右下にあるモデルの再生時間を秒数表示でみたいときはありませんか?
この機能を使用すれば時間表示と秒数表示を切り替えることができます。

手順

画面右下の再生時間をクリックすることで時間から秒数表示に切り替わります。

Emulate3D 時間 切り替え

スクリプトで待機時間を入れる

モデルを作成しているときに待機時間がほしいときはありませんか?
この機能を使用すれば待機時間を実装することができます。

手順

スクリプトで待機時間を入れる方法を紹介します。

下記のコードではBoxをMoveTo関数で動かして2秒待機、再度Boxを動かすコードを書いています。

JScriptでは待機するときにWait関数を使用します。

function Box2_OnInitialize( sender : Demo3D.Visuals.BoxVisual )
{
    //BoxがX1,Y0.5,Z0に移動
    sender.MoveTo(new Vector3(1,0.5,0),1,0,0);
	
  //2秒待機
    wait(2);
	
    //BoxがX0,Y0.5,Z0に移動
    sender.MoveTo(new Vector3(0,0.5,0),1,0,0);
}

C#ではWaitクラスのForSeconds関数を使用します。
イテレータを使用する必要があるのでIEnumerableyied returnを使用して実装します。

注意
イテレータを使用しないと待機を無視して次の処理が実行されます。

[Auto]
IEnumerable OnInitialize(Visual sender)
{
    //BoxがX1,Y0.5,Z0に移動
    sender.MoveTo(new Vector3(1, 0.5, 0), 1, 0, 0);

    //2秒待機
    yield return Wait.ForSeconds(2);

    //BoxがX0,Y0.5,Z0に移動
    sender.MoveTo(new Vector3(0, 0.5, 0), 1, 0, 0);
}

待機時間を実装した動画です。

終わりに

いかがでしたでしょうか。
待機時間を使用する場合はJScriptとC#で書き方が変わるのは難しいですね。
今後もブログを書いていくのでご活用ください。