POV-Ray: アニメーション


POV-Rayのシーンファイル(.pov)の中では、clock という 変数が定義されている。

デフォルトでは、clockの値は最初のフレームでは0, 最後のフレームでは1.0となる。

もしclockを0.0〜1.0ではなくて、コマ割りのように1.0〜整数値(たとえば18) として扱いたければ、Initial_Clock=1.0, Final_Clock=10.0, Final_Frame=10 などと定義すればclockは1.0, 2.0, ..., 10.0と変化してコマ番号となる。

内部アニメーションループ

Initial_Frame=n最初のフレーム番号をnに設定する。
Final_Frame=n最後のフレーム番号をnに設定する。
Initial_Clock=n.n最初のクロック値をn.nに設定する。
Final_Clock=n.n最後のクロック値をn.nに設定する。
+KFInInitial_Frame=nと同じ
+KFFnFinal_Frame=nと同じ
+KIn.nInitial_Clock=n.nと同じ
+KFn.nFinal_Clock=n.nと同じ

時間を0.0から1.0まで経過させて、18枚の画像を生成するには Render Option に +KFF18 という指定を追加する。 時間を0.0から17.0まで経過させて、18枚の画像を生成するには Render Option に +KI0.0 + KF17.0 +KFF18 という指定を追加する。

Macにおける注意 [2020/07/01追記]

Macのpovray ではclockの指定はメニューから行う。 「詳細」→ "Clock Settings" において "Animation Settings (Clock)" にチェックを入れ、 "Fial Frame" を "18" に、 "Subset" を"17" に変更する。

また、Macの場合は Finder で見ると animated png が動いて表示されるので、 わざわざブラウザで見る必要はあまりないかも


回転する円錘 anim01.pov

anim01.pov (+W320 +H240 +KFF18 +FN)
#include "colors.inc"
#include "shapes.inc"
#include "stones.inc"

camera {
  location <15,5,10>
  look_at <0,0,0>
  angle 25
}

light_source { <5,-10,-10> color White }
light_source { <10,10,10> color White*2 }

object {
  Cone_X
  texture { T_Stone13 }
  translate <1,0,0>
  rotate <0,360*clock,0>
}

background { color SummerSky }

+KFF18というレンダリングオプションを指定すると、 シーンファイル anim01.pov から anim0101.pov 〜 anim0118.pov という 画像ファイルが連続して生成される。

この例ではclockが0.0〜1.0まで変化することに注意。 最初のフレームでは clock=0.0, 最後のフレームではclock=1.0となる。



くまの2足歩行 bearleg02.pov

bearleg02.pov (+W320 +H240 +KI0.0 +KF17.0 +KFF18 +FN)
// Nitta 2008.04.20
#include "colors.inc"
#include "shapes.inc"
#include "woods.inc"

camera {
  location <25,15,20>
  look_at <0,2,0>
  angle 10
}

light_source { <30,20,20> color White*2 }
light_source { <-30,20,20> color White }

#declare LEG_LENGTH = 1.2;
#declare SOLE_HEIGHT = 0.4;

#declare THETA = 2 * 3.14 * clock/18;
#declare PHI = 30*sin(THETA);

#declare BEAR_LEG =
union {
  object {
    Sphere
    texture { T_Wood7 }
    scale <0.45,LEG_LENGTH,0.45>
    translate <0,-LEG_LENGTH,0>
  }
  object {
    Sphere
    texture { T_Wood7 }
    scale <0.7,SOLE_HEIGHT,0.45>
    translate <0.15,-LEG_LENGTH*2,0>
  }
}

object {
  BEAR_LEG
  rotate <0,0,-PHI>
  translate <0,LEG_LENGTH*2+SOLE_HEIGHT,0.35>
}

object {
  BEAR_LEG
  rotate <0,0,PHI>
  translate <0,LEG_LENGTH*2+SOLE_HEIGHT,-0.35>
}

+KI0.0 +KF17.0 +KFF18というレンダリングオプションを指定すると、 シーンファイル anim01.pov から anim0101.pov 〜 anim0118.pov という 画像ファイルが連続して生成される。

この例ではclockが0.0〜17.0まで変化することに注意。 最初のフレームでは clock=0.0, 最後のフレームではclock=17.0となる。