Java3Dのアプレットを公開する方法

  • 投稿日:
  • by
  • カテゴリ:

Java3Dがインストールされていない環境でもJavaアプレットでJava3Dを動かす方法があることを知ったので、試しに簡単なアプリを公開する。

Java3Dアプレットのページへのリンク
ソースコード

コードは、Java3Dのデモパッケージに入っているHelloUniverse.javaに少し味をつけただけのものである。この3次元世界にあり得ない動きなので、ちょっと気持ち悪いかもしれない。

Canvas3dのインスタンスを貼り付けたAppletのクラスを、普通にHTMLの<applet>タグで公開すると、Java3Dのランタイムがインストールされていない環境では実行できない。しかし、org.jdesktop.applet.util.JNLPAppletLauncherを使って起動するように公開すると、(メジャーな環境では)Java3Dのランタイムがインストールされていなくても実行可能になる。

より具体的な方法は、Java3Dがインストールされた環境で動くJavaアプレット(Canvas3dのインスタンスを貼り付けたAppletのクラス)をJAR形式で用意し、AppletLauncherのページにある通りに、下記のようなHTMLで起動を指示する。少々長いが、最低限の設定なら、触る所は
・width/heightの部分
・アプレットの指定部分(下記で言うと、2ヶ所あるHello4dUniverseの部分)
・subapplet.displaynameの部分
くらいで良いと思う。

<applet code="org.jdesktop.applet.util.JNLPAppletLauncher2"
  width=400 height=400
  archive="Hello4dUniverse.jar,
               http://download.java.net/media/applet-launcher/applet-launcher.jar,
               http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dcore.jar,
               http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dutils.jar,
               http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jar,
               http://download.java.net/media/gluegen/webstart/gluegen-rt.jar,
               http://download.java.net/media/java3d/webstart/release/vecmath/latest/vecmath.jar">
  <param name="codebase_lookup" value="false">
  <param name="subapplet.classname" value="Hello4dUniverse">
  <param name="subapplet.displayname" value="My Java 3D Applet">
  <param name="jnlpNumExtensions" value="1">
  <param name="jnlpExtension1" value="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp">
  <param name="progressbar" value="true">
  <param name="noddraw.check" value="true">
</applet>

蛇足だが、Java3Dを使うソースコードをコンパイルするには、Java3Dのクラスパッケージが必要である。(Java3Dがインストールされていれば問題ない。)

Canvas3dは、デフォルトで適当な描画領域のサイズを返してくれないようで、FlowLayoutを使うと大抵正しく表示されない。しかし、実行環境によっては、サイズ無しのCanvas3dがFlowLayoutでも表示されてしまう(Windows XP+JRE 6.0+IE7にてこの現象を確認)ようなので、要注意である。

WindowsにJava3Dをインストールする場合、何かの間違いでバージョン1.5.1をインストールすると、JNLPAppletLauncherが動かなくなる。このリンク先のやり取りでは、Java3Dをアンインストールしたら直ったとあるが、筆者の環境ではJava3Dをアンインストールしても直らず、Documents and Settingsフォルダの下の"j3d"や"jnlp"を含む全てのファイルとjre\ext\libフォルダのj3d*.jarとvecmath.jarを手作業で消して、PCを再起動すると、やっと直った。このバグは1.5.2で修正されている。