1

three.jsで3人称カメラビューを作成しようとしています

私はTHREE.FirstPersonControls();を使用しています。私のカメラで。次に、「プレーヤー」オブジェクトの回転と位置を、いくつかのオフセットを除いてカメラと同じになるように設定します。

これは機能していないようです。

私がもっと疑問に思っているのは、FirstPersonControlsをカメラに追加してから、その前に「プレーヤー」をレンダリングする必要があるかどうかです。または、プレーヤーにコントロールを追加してから、カメラを常にプレーヤーの後ろに向けるようにしますか?

編集:

camera.add(player);を使用して、プレーヤーオブジェクトをカメラのサブオブジェクトに設定してみました。

ただし、カメラを動かしてもプレーヤーは動きません。子要素を追加すると、一緒に移動することになると思いましたか?

編集2:

カメラとプレーヤーの両方をグループに追加してから、1人目のコントロールをそのグループに追加するという別のアプローチを取りました...これで、カメラとプレーヤーの両方がレンダリングされます。しかし、それは最初の人のコントロールがどのように機能したかを完全に捨てています。(例えば、見下ろすと左に行くなど)

助けてくれてありがとう、

ジェームズ

4

1 に答える 1

6

まず、コントロールは、オブジェクトではなく、カメラを制御するように設計されています。また、デフォルトでは、オブジェクトはz軸の「上」に見え、カメラはz軸の「下」に見えるため、カメラ以外に適用した場合にコントロールが期待どおりに機能する可能性は低くなります。

次に、コントロールは例の一部であり、ライブラリではないため、公式にはサポートされていません。あなたはそれらを自由にハックすることができます。

目的を達成する1つの方法は、カメラをプレーヤーの子にすることです。このようなもの:

player.add( camera );
camera.position.set( 0, 50, 100 );

レンダリングループで、次の設定が必要になる場合があります。

camera.lookAt( player.position );

次に、マウスまたはキーボードを使用してプレーヤーを制御します。あなたの最善の策はそれをするためにあなた自身のコントローラーを書くことです。ネット上にはたくさんの例があります。

于 2012-11-15T14:40:27.257 に答える