【例】2つのタッチセンサーで回転軸を変えて回転させる
球を2つ表示し、左の球をタッチするとZ軸回転、右の球をクリックするとX軸回転を行う。
#VRML V2.0 utf8 #2つのタッチセンサーで回転軸を変えて回転させる DEF WHEELS Transform{ translation 0.0 1.5 0.0 #表示位置 center 0.0 -1.5 0.0 #回転中心 children[ Shape{ appearance Appearance{ material Material{ diffuseColor 0.0 1.0 0.0 } } geometry Cone{ bottomRadius 0.2 height 3.0 } } ] } #TimeSensor1の定義 DEF TIMER1 TimeSensor{ #DEFによるインスタンス処理 cycleInterval 5.0 #1周期の時間を設定 loop FALSE #繰り返しの設定 } #TimeSensor2の定義 DEF TIMER2 TimeSensor{ #DEFによるインスタンス処理 cycleInterval 2.0 #1周期の時間を設定 loop FALSE #繰り返しの設定 } #回転に関するアニメーションの定義 DEF OI1 OrientationInterpolator{ #回転するアニメーションの設定 key[ 0.0 0.5 1.0 #動作を起こす時間ポイント ] keyValue[ #値の変化を設定 0.0 0.0 1.0 0.0, #回転軸 X Y Z 回転角度 0.0 0.0 1.0 3.14, 0.0 0.0 1.0 6.28 ] } #回転に関するアニメーションの定義 DEF OI2 OrientationInterpolator{ #回転するアニメーションの設定 key[ 0.0 0.5 1.0 #動作を起こす時間ポイント ] keyValue[ #値の変化を設定 1.0 0.0 0.0 0.0, #回転軸 X Y Z 回転角度 1.0 0.0 0.0 3.14, 1.0 0.0 0.0 6.28 ] } #球1にTouchSensorを付加する Transform{ translation -3.0 0.0 0.0 children[ Shape{ appearance Appearance{ material Material{ diffuseColor 1 0 0 specularColor 1 1 1 } } geometry Sphere{ radius 0.5 } } DEF TS1 TouchSensor{ } ] } #球2にTouchSensorを付加する Transform{ translation 3.0 0.0 0.0 children[ Shape{ appearance Appearance{ material Material{ diffuseColor 1 0 0 specularColor 1 1 1 } } geometry Sphere{ radius 0.5 } } DEF TS2 TouchSensor{ } ] } #ROUTE文の定義 ROUTE TS1.touchTime TO TIMER1.set_startTime ROUTE TIMER1.fraction_changed TO OI1.set_fraction ROUTE OI1.value_changed TO WHEELS.set_rotation #ROUTE文の定義 ROUTE TS2.touchTime TO TIMER2.set_startTime ROUTE TIMER2.fraction_changed TO OI2.set_fraction ROUTE OI2.value_changed TO WHEELS.set_rotation 実行例