|
スクリプトの概要
生物を考えてみよう。生物はまず、外界を感覚器によって知覚する。 これは、視覚、聴覚、嗅覚、触角.....などなどである。生物は入力された信号を神 経によって脳/神経系に伝える。 脳では何らかの複雑な処理をして、今度は運動系に信号を出力する。その信号はまた 神経を通り、手足を動かしたり、ものを食べたりする動作を行わせるのである。つま り、
VRMLプログラミングもこれらとまったく同様の構成となっている。
フィールドはSFVec3f、SFInt32などさまざまな型があるが、イベントアウトで出力さ れたデータは、同じ型のイベントインに入力されて、VRMLのノード間でデータが受け 渡されて行くのである。 このイベントインとイベントアウトを結びつけるものがROUTE(経路)という特殊コ マンドである。 スクリプトノードは、こんな感じで使用する。
|
Transform {
children [
DEF TOUCH TouchSensor { }
DEF SHPERE Group { .......... }
]
}
DEF MOVER Script {
eventIn SFTime click
eventOut SFVec3f pos
url "vrmlscript:
function click (value, ts)
{
pos = new SFVec3f(0, 0, 0);
}"
}
ROUTE TOUCH.isActive TO MOVER.click
ROUTE MOVER.pos TO SPHERE.translation
|
|
この例では、TOUCHというタッチセンサーがクリックされると、isActive信号がスク
リプトMOVERのイベントインclickに入る。 すると、posというイベントアウトが出され、ROUTEにより、SPHEREというジオメトリ の位置を変換する。 |
|
|
|
