• 締切済み

java3D の pickobject について

java3Dでcolorcubeを3つ作り(a,b,cとします。) マウスで、aをピックすると、a,b,cが一体となって 動き、bをピックするとbとcが一体となって動き、 cをピックするとcだけ動かすようにしたいのですが、 どのようにpickobjectを使えば良いのか分からず 困っています。(今はどれをピックしても全体が 動いてしまいます。) この説明で分からなければ、もっと詳しく書きます。 誰か助けて下さい。お願いします。

  • Java
  • 回答数1
  • ありがとう数5

みんなの回答

noname#86982
noname#86982
回答No.1

もう解決されたかもしれないですが…。 久々のJava3D&現在試す環境がないため、自信はありません。 要は、TransformGroupを3つ作って、 1つ目 aの範囲でのアクション→a,b,c動く 2つめ bの範囲でのアクション→b,c動く 3つ目 cの範囲でのアクション→c動く という設定にしてやれば良いということでしょうか。 確かPickMouseBehaviorクラスのサブクラスのオブジェクトを使用して、2つある物体の片方ずつを動かすことができたように記憶しています。でもそれじゃだめなんですよね(^^; 何だか墓穴を掘ってきた気がするので、とりあえず私がJava3Dを学習した際に、よく利用させていただいていたサイトを紹介します。もしかしたらもうご存知ですか?

参考URL:
http://cgi14.plala.or.jp/antun/java3d/index.shtml
shootingfish
質問者

お礼

ありがとうございます。 ようやく思い通りに動くようになりました。 PickRotateBehaviorクラスのupdatascene のSceneGraphPathの設定ミスだったようです。 今卒業制作でかなりせっぱつまってます。

関連するQ&A

  • JAVA3D実行時のエラー

    JAVA3Dを使って3次元で描画をしてみようかと思ったのですが セットアップしているときに以下のようなエラーがでてしまい 解決方法が分かりません どなたか、教えていただけないでしょうか? ---------------------------------------------------------------- Sample3D.java:5: com.sun.j3d.utils.geometry.ColorCube にアクセスできません。 クラスファイル C:\j2sdk1.4.2_14\jre\lib\ext\j3dutils.jar(com/sun/j3d/utils/geome try/ColorCube.class) は不正です。 クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 import com.sun.j3d.utils.geometry.ColorCube; ^ エラー 1 個 ---------------------------------------------------------------- インストール環境は 今までは j2sdk1.4.2_14(win)を使っていました そこに java3d-1_5_0(win) インストールしようとしたという感じです よろしくお願いします

    • ベストアンサー
    • Java
  • java3Dについておききします

    javaのバージョンは1.6.0_27です 困ってる内容は現在javaSDをEclipse3.5で使おうとjavaSDをインストールしてネットで調べながらやってますがうまくいいかないです いまどうなってるか画像をみて欲しいです 上手く言ってない理由はこのようなエラーが返ってなかなかすすみません 説明 リソース パス ロケーション 型 アクセス制限: 型 BranchGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 31 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 SimpleUniverse は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dutils.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 28 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 Transform3D は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 37 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 TransformGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 34 Java 問題 //****************************************************************************** //Java3D とりあえず動作確認するプログラム //カラーキューブ回転 //****************************************************************************** //============================================================================== //インポート・ファイル import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; import java.util.Timer; public class Java3D_first_test { //============================================================================= //クラスのフィールド //仮想空間全体 SimpleUniverse universe; //オブジェクトのためのグループ BranchGroup group1; //オブジェクトの座標変換のためのグループ TransformGroup transform_group1; //オブジェクトの座標変換のためのクラス Transform3D transform1; //回転角を管理 float rot_value; //============================================================================= //メイン・メソッド public static void main(String[] args) { Java3D_first_test test = new Java3D_first_test(); } } javaSDのライブラリはインポート文はエラー返ってないですが・・・ お優しくお願いします。なにが原因かわからずじまいな状態です

    • ベストアンサー
    • Java
  • Javaでわからないことがあります。

    Javaの問題で質問あります。 このコードに対して解説の図でA、B⬅️C⬅️Dという、クラス、インターフェースの関係図が書いてありました。CとDってぎゃくじゃないですか?

    • ベストアンサー
    • Java
  • CでいうポインタみたいなことをJAVAでも・・・

    Cでいうポインタを使ったプログラム #include <stdio.h> void nibai (int *a , int *b) {   *a *= 2;   *b *= 2; } int main(void) {   int a=3 , b=5;   nibai(&a,&b);   printf("a=%d b=%d\n",a,b);   return 0; } nibai関数はint型のアドレスを貰ってそのアドレスが指す値を書き換えているためmain関数に戻った際に値が変化している。 このようなことをJAVAでやりたいんですけど方法が見当たりません。 グローバルで共有するしか方法はないのでしょうか? CかつJAVAを知っている方限定の質問になってしまいますが よろしくお願いします。

    • ベストアンサー
    • Java
  • javaでcsvファイル処理

    プログラミング初心者の者です。 以下の様なデータの入ったcsvファイルを、javaで処理しなければならなくなりました。 #1 #2 #3 B 00 00 00 A 00 00 00 C 00 00 00 B 00 00 00 A 00 00 00 D 00 00 00 C 00 00 00 A,B,C,Dそれぞれのデータを、#1,#2,#3それぞれのテーマで集計 したいのですが、どういったプログラムを書けばいいのかよくわかりません。 csvファイルを読み込んで、吐き出す事だけはできているので、 間にどんなプログラムを書けば良いのか、ヒントを頂ければ幸いです。 宜しくお願い致します。

  • javaを使ってマウスオンでの画像切替について

    javaを使って、ある1つの画像にマウスを乗せると、 他の場所にある画像2つが同時に入れ替わるという事を行いたいのですが どうしても上手くいきません。 例えば・・・ ┌─────┐ │◇画像A◇ │ └─────┘ ┌─────┐ │○画像B○ │ └─────┘ ┌─────┐ │☆画像C☆ │ └─────┘ とあるとしたら、 画像Aにマウスを乗せた場合、画像Cと画像Dが 他の画像になるようにしたいのです。 ┌─────┐ │◇画像A◇ │←これにマウスオン └─────┘ ┏━━━━━┓ ┃●画像B● ┃ ┗━━━━━┛←画像Bと画像Cが ┏━━━━━┓←同時に他の画像に変わる ┃★画像C★ ┃ ┗━━━━━┛ 画像Aはマウスを乗せても変化は無いままで、 画像Bと画像Cは異なる画像です。 マウスを画像Aから放したら、元の画像に戻るようにしたいと考えています。 さらに、同ページ内に複数使用したいのです。      ~~~~~~~~~~~~~~~~~~~~~ if (document.images) { var img0 = new Image(); img0.src = "○画像B○"; var img1 = new Image(); img1.src = "●画像B●"; function On(name) { if (document.images) { document.images['ネーム'].src = eval(name + '.src');}} function Off() { if (document.images) { document.images['ネーム'].src = img0.src;}} を応用して、どうにかならないかな…と思ったのですが、 どうにもなりませんでした。 もしかしたら、応用のやり方が間違えているのかもしれません。 あまり詳しくないので・・・。 どこを探してもサンプル等見つからず、困っています。 どなたか教えて下さい。どうぞ宜しくお願いします。

  • javaについて質問です

    javaについて質問です javaを使ってゲームを作っているのですが、他のページに飛ばせません どうすればいいのでしょうか? 大体で言うと、こんな感じです 本文 選択肢A → メモ帳で作ったページAへ 選択肢B → メモ帳で作ったページBへ すみません、まだ初心者なのでうまく説明できません もし足りないところがありましたらご説明お願いします

  • javaについて質問です

    javaについて質問です javaを使ってゲームを作りたいのですが 「選択肢をクリックしたら他のページに飛ばす」 にはどうしたらいいのでしょうか ざっくり過ぎる説明ですみませんが、よろしくお願いします ちょっと説明 本文を読んで選択肢を選び、進んでいくゲームです 本文 選択肢A → メモ帳で作ったページAへ 選択肢B → メモ帳で作ったページBへ 初心者なので説明がなくてすみません 出来ればどこら辺の説明が足りないのか教えていただけるとうれしいです

  • javaについて

    OSXでjavaゲーム作ろうとしているんですが http://javagame.main.jp/index.php?%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A4%CE%B9%BD%C0%AE のHelloWorld.javaとMainPanel.javaができません ターミナルを開いて public class HelloWorld extends JFrame { public HelloWorld() { // タイトルを設定 setTitle("Hello Worldを表示する"); // メインパネルを作成してフレームに追加 MainPanel panel = new MainPanel(); Container contentPane = getContentPane(); contentPane.add(panel); // パネルサイズに合わせてフレームサイズを自動設定 pack(); } public static void main(String[] args) { HelloWorld frame = new HelloWorld(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } と打ち打ち込み HelloWorld.javaで保存して もう一個もMainPanel.javaをMainPanel.javaのコードをコピーしてペーストして保存して よくわからず同じフォルダにいれて javac Helloworldと打ち込んでもエラーがでます もしかしてEclipseをつかってフレームみたいにしなくてはダメなんでしょうか? よくわかりませんがとりあえず javaでゲーム作りますが何か?でゲームが作れるようになりたいです 応用などきかせて 私はいつも出だしで全部 挫折してしまうのでダメです どなたか詳しい方このHelloWorldが出せるまで教えて下さい

    • ベストアンサー
    • Java
  • Javaの出力とシェルスクリプトの書き方

    Javaとシェルスクリプト初心者です. macをしようしています. ちょっと混乱しているのでわかりにくいしつもんかもしれませんが, よろしくおねがいします. Javaでテキストファイルから a,b,c (それぞれ整数) のような形でコンソールに出力するようなプログラムを書いたのですが, これを99個のファイル(01.txt ~ 99.txt)に適用して, 1,a1,b1,c1 2,a2,b2,c2 . . 99,a99,b99,c99 という形のテキストファイルを出力するような シェルスクリプトを書きたいのですが, どのようにすればよいでしょうか. Javaかどうかはこの際関係ないかもしれないのですが, とりあえず,Javaの出力を多くのファイルに適用して, ひとまとめにしたテキストファイルを作りたい,という意図です.

    • ベストアンサー
    • Java