質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Three.js

Three.jsはWebGLをサポートしているJavaScriptの3D描画用ライブラリです。

Q&A

解決済

1回答

6130閲覧

Three.jsで三次元オブジェクトのブラウザ座標を取得したいです

nasikusa

総合スコア9

Three.js

Three.jsはWebGLをサポートしているJavaScriptの3D描画用ライブラリです。

0グッド

0クリップ

投稿2017/06/12 14:33

編集2017/06/12 14:59

現在、自分が作成したCGモデルの配布サイトでsketchfabのような数字の付いた画像(①のような感じです)をクリックするとその場所へ移動する機能を入れたいと思っているのですが、方法がわからず困っています。
Raycasterを使うことで、ブラウザ座標から3次元空間のオブジェクトの位置等を取得することは出来たのですが、逆に3次元空間のオブジェクトの位置(正確に書くとオブジェクトのある一点の座標です)からブラウザ座標を取得して、画像をその位置に追従させることの方法が皆目検討が付きません。
最初は数字の書かれたテクスチャで機能を実現できないかなぁと思ってたのですが、そうしてしまうと離れたら見えないし、近くなったら邪魔なので(それにdepthTestをfalseにしないと近くにオブジェクトがある状況で埋まってしまいました・・)、やはり画像をそのまま表示して追従させるのが良いのかなと思いました。
面倒くさい質問かもしれないですが、よろしくお願いしますm(__)m。

入れたい機能の例です(sketchfab) : https://sketchfab.com/models/56cce93abd8a485cbdc5bfff37a59f11

追記 : もし難しい場合にはオブジェクト座標とカメラ座標との距離からテクスチャ付きモデルの大きさを変えたりすれば・・いいのかなと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんなことに近いでしょうか?

実際の記事はこちらになります

表示したいものの場所のワールド座標がわかっているのであれば、
(vector3オブジェクト).project(camera);
で、スクリーン座標の位置を得ることができます。
このままだと、左上-1、右下+1、画面中央がゼロという値になってしまっています。これに画面のサイズをかけることで、2D画面上での位置を得ることができます。

投稿2017/06/12 15:19

adrs2002

総合スコア203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nasikusa

2017/06/12 17:23

回答ありがとうございました! おかげさまでモデルの任意の場所の座標と連動させて画像を動かすことが出来ました。 すごいです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問