初めての JavaFX 3D その2

JavaFX

JavaFX の 3D API と戯れてみたのですが、問題発生しました。

この前、試しに作ったアプリのカメラアングルを変更したところ下図のような状態となりました。

1

これではスライダーが上手く操作できません。(そこか!?

カメラアングル変更のコードは下記のようで間違いなさそうです。

cam.getTransforms().add(new Rotate(90, Rotate.Y_AXIS));

さて、困った。。。

カメラアングル変更の対象となる物を限定したい場合どうすればいいのだろうか?

そこで SubScene が颯爽と姿を現すのであった!

つまり、SubScene に専用カメラを設置して、動いて欲しくないものは今までの Scene 用のカメラで映す。

実に論理的かつ合理的ですね。(^_^)

でも、FXML アプリとしてはどのようにすればいいのか解らなかった。

SceneBuilder で簡単にできるようになればいいのにね。

ってことで久しぶりにコードで UI を構築するはめとなった。

従って手抜きのいつもより汚くておかしなコードになっているかもしれない。(^_^;)

これだけだと面白くないし、現実的に 3D データは専用のソフトで作成された物を使うケースが一般的だろう。

今回は、OBJ ファイルを読み込んでそれをグリグリすることにしました。

と言っても ジムさんがネット上で公開していたサンプルを参考にさせていただきました。

Thank you from the bottom of my heart!

まだ JavaFX 本体にそれらを読み込む機能は搭載されてないので早期お試しライブラリを使用しました。

Java One でもこれについては実装予定であると言及されていましたので良い子のみんなはおとなしく待ちましょうね♡

困ったちゃんの私は玉砕覚悟で突き進みます。(ヲヒ

ということでこんなのができちゃいました。

2

 

3

 

4

 

えっ?

よく解らないって?

そうでしょう。そうでしょう。

そういうあなたのために動画も用意しました。

動画みても感激はなかったって?

たしかにただ絵が動くにすぎないですからね。

でもこのご時世 3D をなめていたらあっというまに時代の波に飲み込まれてしまうかもしれません。

それだは興味のあるかたはこの面白くもなく役にたたないアプリのソースコードをご覧くださいませ。

最後に Java 8 実行環境をお持ちの勇者様には Java Web Start をご用意させていただいております。

Webstart: click to launch this app as webstart (Java 8 実行環境必須)

ちなみにこの素敵な 3D データは SaYaKaProject 様のものを使用させていただきました。

このように創造性豊かな作者様には本当に尊敬します。

私は以前 Shade を購入してわずか3ヶ月で挫折した経験をもってます。(>_<。)

それだはまたね~♪

Hatena タグ: