6

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');
        });
    }

4

1 に答える 1