VRML とJavaによる 3次元動作シミュレーションの実現 1998.11.13 Takashi KOSHIDA Department of Information Technology Matsue National Collage of Technology 1 1.はじめに • CALSの枠組みの中で、 – VRML(Virtual Reality Modeling Language)を3次 元CAD/CAM 設計・検証に適用できないか? – インターネット上で3次元グラフィクスを実現する 技術。 – インターネットを利用したデータの相互活用(イ ントラネット、エクストラネット) 利点 • 動きが扱える。 → 動作シミュレーションの実現 2 2. VRMLのビヘイビァ機能 • 動作の実現 – VRMLとJavaを組み合わせる。 – データは VRMLで作成、データの変化 をJavaでプログラム化する。 – データ変化の基になる理論(数式) に基づいて、ユーザがプログラム化 できる。 – 拡張性、自由度が高い。 3 2. VRMLのビヘイビァ機能 (Cont.) • その概要 VRMLデータ マウス・ク リック等 イベント API Javaスクリプト イベント・ハンドラ (Javaメソッド) 処 理 VRMLデータ の変更 4 API 2. VRMLのビヘイビァ機能( Cont.) • 具体例 – クランク・ピストン機構 スレンダ クランク ピストン 5 2. VRML のビヘイビァ機能(Cont.) • クランク・ピストン機構(モデル 図) O ‘ A l B r θ O x C x=r(λcosθ+(1-λ2sin2θ)1/2)/λ (1) 6 3. 動作シミュレーション • 理論解析 X = r (λcosθ+(1-λ2sin2θ)1/2 ) /λ (1) プログラムでは、この変位Xを原点O、O’を中心 としたxy平面上での回転として、表現した。 7 3.動作シミュレーション(Cont.) • VRML ファイルの実装 マウス・ク リック等 イベント test.class (イベント・ハンドラを 含むJavaコード) VRMLデータ シーンノード Scriptノード: Script{ url[“http:/~ /test.class” ] } Routeノード: Route ノード・フィールド TO ノード・フィールド 8 3. 動作シミュレーション(Cont.) • VRMLファイルの実装 – 動作の開始は、マウス・クリックで行う。 • TouchSensorノード と TimeSensorノード を利用する 。 – クランクとスレンダをグループ化。 • 相対座標を利用する。 9 3. 動作シミュレーション(Cont.) • 動作の表現 – Interpolatorノードを利用。 – まず、クランクの回転運動を定義する。 – 具体的には、Z軸回りの回転運動を表現す る、OrientationInterpolatorを用いた。 DEF CLANK_INTP OrientationInterpolator{ key [0, 0.25, 0.5, 0.75, 1.0] # keyValue is set by Script. } 10 3.動作シミュレーション(Cont.) • Javaスクリプトのコール – クランクの回転運動に伴い、スレンダが変位 する。 – その変位をJavaスクリプトで計算し、VRML ファイルに戻す。 DEF CLANK_SCRIPT Script { url "RotationMecha12.class" eventIn SFTime touched eventOut MFRotation setClankPosition eventOut SFTime setClankstartTime 11 } 3.動作シミュレーション(Cont.) • 動作の伝達の指定 – ROUTEノードを使う。 – マウス・クリックによる動作の開始からクランク の回転運動、それに連動したスレンダーの動き を順番に指定する。 ROUTE CLANK_TOUCH.touchTime TO CLANK_SCRIPT.touched ROUTE CLANK_SCRIPT.setClankPosition TO CLANK_INTP.set_keyValue ……………………….. 12 3.動作シミュレーション(Cont.) • Java スクリプトについて – VRMLライブラリ • vrml パッケージを import する。 – processEvent() メソッド • VRMLからのイベントを受ける。 • 必ず、必要なメソッドである。 • マウス・クリックを検知して、その後のス レンダの回転角度を計算する。 13 4. まとめ • メリット – 3次元データの作成が、プログラミング感覚で行え る。 • 寸法指定でデータが作成できる。操作をする意識 が余り必要ない。 – 設計に基づいた動作シミュレーションが行える。 • 理論式のプログラム化。 • 設計者が自ら動作確認が可能である。 – 拡張性、柔軟性に富む。 • Javaが利用できる。 14 4. まとめ (Cont.) • デメリット – 複雑な形状データ作成が難しい。 • 基本形状データの種類が少ない。 • ライブラリ的に形状データが必要。 • センスの問題(?) – 座標軸や座標値の表示がない。 • 原点の位置、寸法が見えない。 • 基本単位がm(メートル)である。 15 5. 実験環境 • 実験環境 – OS : Windows 95 – VRMLブラウザ • Sony Community Place VRML2.0 Browser version 2.0 Preview Release D2 – Java : JDK 1.1_Final 16 謝辞 助言を頂いた情報計画デザイン研究所の松宮氏 並びにソニー株式会社の桃井氏に感謝致します。 17
© Copyright 2025 ExpyDoc