three.js と webXR を使用して、oculus quest やその他のデバイスのコントロールをマッピングする方法を見つけたいと思います。コードは機能し、コントローラーを動かしたり、シリンダーを各コントロールにマップしたり、トリガーをコントロールに使用してシリンダーの色を変更したりできます。これは素晴らしいことですが、ジョイスティック、グリップ、およびその他のボタンの軸コントロールの使用方法に関するドキュメントが見つかりません。どのイベントを呼び出すかを知るだけで、他にどのようなイベントが利用できるかがわからないので、簡単だと思いたいと思っています。
これは、私がこれに基づいたチュートリアルへのリンクです。https://github.com/as-ideas/webvr-with-threejs
このコードは期待どおりに機能することに注意してください。
function createController(controllerID, videoinput) {
//RENDER CONTROLLER AS YELLOW TUBE
const controller = renderer.vr.getController(controllerID);
const cylinderGeometry = new CylinderGeometry(0.025, 0.025, 1, 32);
const cylinderMaterial = new MeshPhongMaterial({ color: 0xffff00 });
const cylinder = new Mesh(cylinderGeometry, cylinderMaterial);
cylinder.geometry.translate(0, 0.5, 0);
cylinder.rotateX(-0.25 * Math.PI);
controller.add(cylinder);
cameraFixture.add(controller);
//TRIGGER
controller.addEventListener('selectstart', () => {
if (controllerID === 0) {
cylinderMaterial.color.set('pink')
} else {
cylinderMaterial.color.set('orange');
videoinput.play()
}
});
controller.addEventListener('selectend', () => {
cylinderMaterial.color.set(0xffff00);
videoinput.pause();
console.log('I pressed play');
});
}