親オブジェクトが回転しても子オブジェクトは回転させない
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は固定された座標に留まります。