【Java3D】マウスピックのテスト

Channel:
Subscribers:
117
Published on ● Video Link: https://www.youtube.com/watch?v=2SxwIf8XE0M



Duration: 0:00
29 views
0


結局カメラのTransformGroupにぶら下げればビルボードにする必要ないのでOrientedShape3Dじゃなく自分でUIの位置設定する事に。
問題なのはJava3D標準のマウスピック機能で、PickCanvasのpick系メソッド使う限りどうやってもShape3Dしかピックできない(BoundingLeafノードとかをピックできない)。
それだけならまだいいけど、どういう内部ピック処理してるのか、どうやってもShape3Dの外形の形状でしかピックできない。例えばBoundingBoxをShape3DにsetしてAutoCompute falseしてもその形状でピックできないし、RasterやText3Dとかで内部がnullのShape3DにBoundingBoxセットすると、なぜかピック範囲が無限大になる。マジでどーなってんの。

結局、PickCanvasにはgetPickShapeという3D空間上のマウスピックRayを生成できるメソッドがあるので、そっから自力で3D空間上のBoundingBoxとintersect()処理実装してマウスピックにした。getPickShapeがあるのだけは便利だけどマジで意味不明。どーせいずれマウスピックRayとの接触座標まで出さなきゃいけないから駄目ってわけじゃないんだが…。

Java3Dには特定Nodeまでの行列全部の合計を即出してくれるgetLocalToVworld()メソッドがあるので、自力でBoundingBox計算して当たり判定とるの自体は簡単。時間が無駄になっただけ。




Other Videos By Manaful Games


2025-09-27【初見ACマスターオブアリーナ】強パーツ全部使って全てを粉砕する初見ACMoA【ARMORED CORE MASTER OF ARENA】
2025-09-23【Java3D】Ogg Vorbis音声ファイルを距離減衰で鳴らす
2025-09-20【初見ACPP】PPに転生したらいきなりアリーナ1位になったので核ミサと指マシでストーリーを全て破壊する初見プロジェクトファンタズマ【ARMORED CORE PROJECT PHANTASMA】
2025-09-15【Java3D】逆行列を使用したOBB衝突判定と壁移動の実装【Java3D OBB collision by inverted 4x4 affine matrix】
2025-09-14【初見プロジェクトファンタズマ】18年前のPS3が動いたので初見ACPPプレイ【ARMORED CORE PROJECT PHANTASMA】
2025-09-14【初代アーマードコア】18年前のPS3が動いたので初見ACプレイ。ミッション全クリアと隠しパーツ集め【Armored Core】
2025-09-13【初代アーマードコア】18年実家で放置されたPS3が動いたので初見ACプレイします【Armored Core】
2025-09-06【OMEGA PHENEX ALPHA version】見た目アーマードコアなアレの体験版やる【メカゲー】
2025-08-30【MachineClad体験版】個人製作の実質アーマードコアやる【アーマードコアライク】
2025-08-20【デモエクTC】ロックオンと偏差射撃等の検証する【DAEMON X MACHINA TITANIC SCION】
2025-08-16【Java3D】マウスピックのテスト
2025-08-13【Java3D】OrientedShape3Dテスト
2025-08-03【実質アーマードコア】ニトロプラス製アーマードコア3週目やる。 #18【Dolls Nest】
2025-08-02【実質アーマードコア】ニトロプラス製アーマードコア2週目やる。 #17【Dolls Nest】
2025-08-01【実質アーマードコア】ニトロプラス製アーマードコア2週目やる。 #16【Dolls Nest】
2025-07-27【実質アーマードコア】ニトロプラス製アーマードコアやる。2週目 #15【Dolls Nest】
2025-07-26【Mecha BREAK】深夜のランクマ【メカブレ】
2025-07-25【Mecha BREAK】少しだけやる【メカブレ】
2025-07-20【Mecha BREAK】深夜に【メカブレ】
2025-07-19【Mecha BREAK】もうちょいやる【メカブレ】
2025-07-14【Mecha BREAK】ちょっとだけやる【メカブレ】