スクリプト・エディタ

このページの内容: クイック・リファレンス | スクリプト言語 | スクリプトの例 |

操作手順: をクリックします。

スクリプト・エディタを使ってフィールドとイベントを定義し、シーンで実行するためのスクリプトを作成できます。また、このエディタには、シーンの中にセンサーを設置するためのボタンが用意されており、センサーによるスクリプトの起動が可能です。

スクリプトは、VrmlScript で書かれます。VrmlScript は、軽量でプラットフォームに依存しないプログラミング言語です。また、JavaScript に非常によく似ています。VrmlScript には、イベントがスクリプトに入ってくると呼び出される関数が用意されています。このほかにも VrmlScript は、スクリプト内のフィールドへのアクセス、フィールド上で演算するためのロジック、およびスクリプトからイベントを送り出す機能を提供します。

クイック・リファレンス

次に、スクリプト・エディタ のクイック・ガイドを示します。

イメージをクリックすると全体が拡大表示されます。

スクリプト言語の説明

VrmlScript に関する詳細な説明は、次の場所にあります。

http://vrml.sgi.com/moving-worlds/spec/vrmlscript.html

Cosmo Worlds では、スクリプトはスクリプト・ノードの url フィールドに単一の文字列として含まれます。スクリプトは、必ず vrmlscript: で始めます。スクリプトでは、各 eventIn に対応する関数を定義します。また、内部のフィールドと eventOut は変数として使用可能です。

スクリプトの例

次に示すのは、VRML ファイルのスクリプト・ノードを含む簡単なスクリプトの例です。

#VRML V2.0 utf8
DEF XFORM Transform {
  children [
    Shape {
      geometry Cone {}
    },
    DEF SENSOR TouchSensor {
    },
    DEF SCRIPT Script {
      eventIn SFBool triggerIn
      eventOut SFFloat fractionOut
      field SFFloat fraction 0
      url "vrmlscript:
        function triggerIn(trigger) {
          if (trigger) {
            fraction = fraction + 0.1;
            fractionOut = fraction;
          }
        }"
     },
   DEF INTERP PositionInterpolator {
     keys [0.0, 1.0]
     values [0 0 0, 3 0 0]
   }
 ]
}
ROUTE SENSOR.isActive TO SCRIPT.triggerIn
ROUTE SCRIPT.fractionOut TO INTERP.set_fraction
ROUTE INTERP.outValue TO XFORM.translation
 

参照: スクリプトの作成