Webots 使い方まとめ

15. アニメーションの撮影

wb_supervisor_start_movie()を用いると、シミュレーションの状態を動画ファイルとして保存することができる。

.1 関数

supervisor.hで定義されている wb_supervisor_start_movie()を使用する。

#include<webots/supervisor.h>
void wb_supervisor_start_movie( const char *filename , int width , int height , int type , int quality);
void wb_supervisor_stop_movie();

一つ目の関数 void wb_supervisor_start_movie() は録画を開始する関数である。 最初の引数filenameは保存する動画ファイルの名前を指定する。拡張子は".avi"とする。 width・height動画のサイズ、 typeはムービーのエンコーダーの種類であり、0または1で指定する。これはOS等に依存するため、試してから良い方を選択する。 最後のqualityは画質であり、0から100までの整数で指定する。100が最も高画質。
二つ目の関数、void wb_supervisor_stop_movie() は録画を終了する関数である。この関数が呼ばれた時に動画ファイルが出力される。

.2 使用例

次のサンプルは開始から8秒間のアニメーションを動画ファイルとして出力するプログラムである。

#include <webots/robot.h>
#include <webots/supervisor.h>

#define TIME_STEP 64

int main(int argc, char **argv)
{
  wb_robot_init();
  
  wb_supervisor_start_movie("test.avi",240,180,0,60); //録画の開始
  
  wb_robot_step(8000); //8秒間待つ
  
  wb_supervisor_stop_movie(); //録画の終了
  
  wb_robot_cleanup();
  while(true){}
  
  return 0;
}

動画のサイズを240*180、画質60%で、"test.avi"ファイルが出力される。

HOME > Webots 使い方まとめ > 15. アニメーションの撮影