3.2 JavaからVRMLをコントロールする。(1)EAIについて

EAI
(External Auhtoring Interface)

 Webブラウザ用のVRMLプラグイン「CosmoPlayer 2.0」へのアクセスを実現するためのインターフェースである。

 VRMLの外部からVRMLの世界をコントロールするための技術。すなわち、ホームページ上にそれぞれ独立して存在するJavaアプレットとVRMLシーンをEAIで結び付けることにより、JavaからVRMLを結びつけることにより、JavaからVRMLを制御することが可能になる。

 EAIによって、VRMLは単独で存在する3次元グラフィックの技術から、Javaアプレットやその他のWebコンテンツと連携して動作する高度なマルチメディア技術に発展するのである。

 構成パッケージ

vrml.external, vrml.external.field, vrml.external.exception

JavaとVRMLの接続

 EAIを利用したJavaアプレットの作成には、「Cosmo Player」、それに付属するクラスライブラリ(ファイル名"Npcosmop.zip")が必要である。

 また、JavaアプレットとCosmoPlayerとの接続を確立する際に、ネットスケープが提供している「LiveConnect」用の、クラスライブラリも必要としている。

 Nscosmp.zipのパスは、「c:\Program Files\Netscape\Commnicator\Program\Plugins」に入ってある。(jarファイルという場合もある。それはその入ってるパスはzipと同じだが、その時のファイル名は”npcosmop21.jar”です)

 これだけでは難しいと思う。例を挙げてみよう。
 Javaプログラムの中でオブジェクトを生成するには、以下のようにクラスに対してnew演算子を使用する。

クラス名 x = new クラス名();
 しかし、このnew演算子によって生成されるのは、あくまでもJavaの世界におけるオブジェクトであり、VRMLの世界でのオブジェクトではない。だが、JavaアプレットとVRMLとを連携させるためには、オブジェクトをVRMLの領域に生成する必要がある。Javaの領域に生成しても意味はないのである。

 そこで、用いられるのはEAIが提供するクラスは、VRMLの世界に新たなオブジェクトを生成するための役割、もしくはVRMLの世界にすでに存在するオブジェクトのいわばインターフェースの役割を果たすことになる。

Node SometingNew = new Node(”Cone”);
ではなく、
Node[] SomethingNew =
browser.createVrmlFromString(”Cone{}”);
というようにする。これは、VRMLの世界にConeノードを生成するように依頼をする。(ここでは createVrmlFromString)そして、新しく生成されたオブジェクト(=Coneノード)をJavaプログラムの中へ示し、このオブジェクトへの具体的なインターフェースを実現しているのが、JavaプログラミングにおけるNodeのインスタンス=「SometingNew」である。

 やっぱり難しいっておっしゃる方には朗報です。要するにクラスはオブジェクトへのインターフェースであると考えていいというのである。

 現段階では、ここまででしか表現することしかできません。

参考文献‐月間Java World3月号、5月号 瀬川健児著

※LiveConnect

 JavaScript、Javaアプレット、およびプラグインの機能を相互に利用するための「LiveConnect」という技術が組み込まれてある。

 これを利用すれば、JavaScriptでできなかったこと(例えば、スレッドやネットワーク機能)、Javaでできなかったこと(ブラウザの機能をフルに使うこと)を、Javaアプレット側からJavaScriptを経由したり、またその逆も利用できるのである。

 さらに、この機能を利用してプラグイン機能も経由できる。

←BACK VRMLトップページへ NEXT→