#VRML V2.0 utf8 #バックグランドを白にする Background{ skyColor 1 1 1 } #ヘッドライトをオフにする NavigationInfo{ headlight FALSE } #ディレクショナルライトをオフにする DirectionalLight{ on FALSE } %ポイントライトをオフにする DEF MyLight PointLight{ on FALSE color 1 1 0.7 location 0 0 0 } #VRML V2.0 utf8 #直方体群を一つにまとめる #アニメーションで全部動かす為 DEF MAIN Transform{ children[ Transform{ translation 0 3 0 children[ DEF HAKO Shape{ appearance Appearance{ material Material{} } geometry Box{ size 1 1 12 } } ] } Transform{ translation 2.598 1.5 0 rotation 0 0 -1 1.04666 children[ USE HAKO ] } Transform{ translation 2.598 -1.5 0 rotation 0 0 -1 2.09332 children[ USE HAKO ] } Transform{ translation 0 -3 0 rotation 0 0 -1 3.14 children[ USE HAKO ] } Transform{ translation -2.598 -1.5 0 rotation 0 0 -1 4.18664 children[ USE HAKO ] } Transform{ translation -2.598 1.5 0 rotation 0 0 -1 5.2333 children[ USE HAKO ] } ] } #スイッチに使う物体定義 Transform{ translation 0 0 -2 children[ DEF SWITCH TouchSensor{} Shape{ appearance Appearance{ material Material{diffuseColor 1 0 0} } geometry Sphere{} } ] } #タイマーセンサーの設定 DEF MyTimer TimeSensor{ cycleInterval 14 loop TRUE enabled FALSE } #アニメーションする内容の設定 DEF ROT OrientationInterpolator{ #0〜1間にどれだけ動かすかの設定(下に設定する量だけ割り振る) #今回は9個用意したので9分割している key [ 0, 0.0125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1] #アニメーションの内容(今回はz軸を中心に回すだけ) keyValue[ 0 0 1 0, 0 0 1 785, 0 0 1 1.57, 0 0 1 2.355, 0 0 1 3.14, 0 0 1 -2.355, 0 0 1 -1.57, 0 0 1 -0.785, 0 0 1 0 ] } #センサーにふれたらライトを「on FALSE」から「on TRUE」にする ROUTE SWITCH.isOver TO MyLight.on #センサーにふれたら タイマーを起動する ROUTE SWITCH.isOver TO MyTimer.enabled #タイマーが起動したら、アニメーション内容をセットする ROUTE MyTimer.fraction_changed TO ROT.set_fraction #アニメーションが開始したら物体を動かす ROUTE ROT.value_changed TO MAIN.set_rotation