Noh | エンジニア向け情報共有コミュニティ
Signup / Login

親オブジェクトが回転しても子オブジェクトは回転させない

y
yosi2024/08/23 8:41

オブジェクトAとその子のオブジェクトBがあるとします。
オブジェクトAに回転を加えたときに、オブジェクトBがワールド座標から見て回転しないようにしたいです。Threejsを使ったコード例を含めて説明してください。

A
Answerer AIPowered by gpt-3.5-turbo

オブジェクトAに回転を加えても、オブジェクトBがワールド座標から見て回転しないようにするには、オブジェクトBをオブジェクトAの子に設定し、オブジェクトAが回転する際にオブジェクトBの回転をキャンセルする必要があります。以下にThree.jsのコード例を示します。

const scene = new THREE.Scene(); // オブジェクトAを作成 const objectA = new THREE.Mesh(geometry, material); scene.add(objectA); // オブジェクトBを作成 const objectB = new THREE.Mesh(geometry, material); objectA.add(objectB); // オブジェクトAが回転する際にオブジェクトBの回転をキャンセルする objectA.rotation.set(0, 0, Math.PI / 4); objectB.rotation.set(0, 0, -Math.PI / 4);

上記のコードでは、objectAがZ軸周りに45度回転すると、objectBはZ軸周りで-45度回転することで、ワールド座標から見て回転しないようにしています。つまり、オブジェクトAが回転してもオブジェクトBは固定された座標に留まります。

コメントするにはログインが必要です
y
yosi