【文法】
色変化アニメーションは次の(1)〜(4)の手順で設定を行う。
(1)Transformノードの定義
(2)TimeSensorの定義
(3)色変化に関するアニメーションの定義
(4)ROUTE文の定義
【例1】球の色が変化する #VRML V2.0 utf8 #色変化アニメーション Transform{ translation 0.0 0.0 0.0 children[ Shape{ appearance Appearance{ material DEF Color1 Material{ diffuseColor 0.0 1.0 0.0 } } geometry Sphere{ radius 1.0 } } ] } #TimeSensorノードの定義 DEF TIMER TimeSensor{ cycleInterval 5.0 #1周期の時間の設定(秒) loop TRUE #繰り返しの設定 } #色の変化に関するアニメーションの定義 DEF CI1 ColorInterpolator{ key[ 0.0 1.0 #cycleInterval時間の中で動作を起こすポイント(0.0から1.0の間で指定) ] keyValue[ #色の変化を設定 0.0 1.0 0.0, 0.0 0.0 0.0, ] } #ROUTE文の定義(青) ROUTE TIMER.fraction_changed TO CI1.set_fraction ROUTE CI1.value_changed TO Color1.set_diffuseColor 実行例
【問題】
1つの球を、赤色、緑色、青色に順に変化させなさい。
実行例
【例2】2つの球の色が変化する #VRML V2.0 utf8 #色変化アニメーション #1つ目の球 Transform{ translation -2.0 0.0 0.0 children[ Shape{ appearance Appearance{ material DEF Color1 Material{ diffuseColor 1.0 0.0 0.0 } } geometry Sphere{ radius 1.0 } } ] } #2つ目の球 Transform{ translation 2.0 0.0 0.0 children[ Shape{ appearance Appearance{ material DEF Color2 Material{ diffuseColor 0.0 0.0 0.0 } } geometry Sphere{ radius 1.0 } } ] } #TimeSensorノードの定義1 DEF TIMER1 TimeSensor{ cycleInterval 5.0 #1周期の時間の設定(秒) loop TRUE #繰り返しの設定 } #TimeSensorノードの定義2 DEF TIMER2 TimeSensor{ cycleInterval 5.0 #1周期の時間の設定(秒) loop TRUE #繰り返しの設定 } #色の変化に関するアニメーションの定義1 DEF CI1 ColorInterpolator{ key[ 0.0 1.0 #動作を起こす時間ポイント ] keyValue[ #値の変化を設定 1.0 0.0 0.0, 0.0 0.0 0.0, ] } #色の変化に関するアニメーションの定義2 DEF CI2 ColorInterpolator{ key[ 0.0 1.0 #動作を起こす時間ポイント ] keyValue[ #値の変化を設定 0.0 0.0 0.0, 0.0 0.0 1.0, ] } #ROUTE文の定義 ROUTE TIMER1.fraction_changed TO CI1.set_fraction ROUTE CI1.value_changed TO Color1.set_diffuseColor ROUTE TIMER2.fraction_changed TO CI2.set_fraction ROUTE CI2.value_changed TO Color2.set_diffuseColor 実行例
【問題】
信号機を作りなさい。
実行例