mirror of
https://github.com/lubosz/overte.git
synced 2025-04-25 21:35:19 +02:00
374 lines
16 KiB
JavaScript
374 lines
16 KiB
JavaScript
|
|
//
|
|
// touchControllerConfiguration.js
|
|
//
|
|
// Created by Ryan Huffman on 12/06/16
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
/* globals TOUCH_CONTROLLER_CONFIGURATION_LEFT:true, TOUCH_CONTROLLER_CONFIGURATION_RIGHT:true,
|
|
Quat, Vec3, Script, MyAvatar, Controller */
|
|
/* eslint camelcase: ["error", { "properties": "never" }] */
|
|
|
|
var controllerStandard = Controller.Standard;
|
|
|
|
var leftBaseRotation = Quat.multiply(
|
|
Quat.fromPitchYawRollDegrees(-90, 0, 0),
|
|
Quat.fromPitchYawRollDegrees(0, 0, 90)
|
|
);
|
|
var rightBaseRotation = Quat.multiply(
|
|
Quat.fromPitchYawRollDegrees(-90, 0, 0),
|
|
Quat.fromPitchYawRollDegrees(0, 0, -90)
|
|
);
|
|
|
|
// keep these in sync with the values from OculusHelpers.cpp
|
|
var CONTROLLER_LENGTH_OFFSET = 0.0762;
|
|
// var CONTROLLER_LATERAL_OFFSET = 0.0381;
|
|
// var CONTROLLER_VERTICAL_OFFSET = 0.0381;
|
|
// var CONTROLLER_FORWARD_OFFSET = 0.1524;
|
|
|
|
var leftBasePosition = Vec3.multiplyQbyV(leftBaseRotation, {
|
|
x: -CONTROLLER_LENGTH_OFFSET / 2.0,
|
|
y: CONTROLLER_LENGTH_OFFSET / 2.0,
|
|
z: CONTROLLER_LENGTH_OFFSET * 1.5
|
|
});
|
|
var rightBasePosition = Vec3.multiplyQbyV(rightBaseRotation, {
|
|
x: CONTROLLER_LENGTH_OFFSET / 2.0,
|
|
y: CONTROLLER_LENGTH_OFFSET / 2.0,
|
|
z: CONTROLLER_LENGTH_OFFSET * 1.5
|
|
});
|
|
|
|
var BASE_URL = Script.resourcesPath() + "meshes/controller/touch/";
|
|
|
|
TOUCH_CONTROLLER_CONFIGURATION_LEFT = {
|
|
name: "Touch",
|
|
controllers: [
|
|
{
|
|
modelURL: BASE_URL + "touch_l_body.fbx",
|
|
jointIndex: MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_LEFTHAND"),
|
|
naturalPosition: { x: 0.01648625358939171, y: -0.03551870584487915, z: -0.018527675420045853 },
|
|
dimensions: { x: 0.11053799837827682, y: 0.0995776429772377, z: 0.10139888525009155 },
|
|
rotation: leftBaseRotation,
|
|
position: leftBasePosition,
|
|
|
|
parts: {
|
|
tips: {
|
|
type: "static",
|
|
modelURL: BASE_URL + "Oculus-Labels-L.fbx",
|
|
naturalPosition: { x: -0.022335469722747803, y: 0.00022516027092933655, z: 0.020340695977211 },
|
|
naturalDimensions: { x: 0.132063, y: 0.0856, z: 0.130282 },
|
|
|
|
textureName: "blank",
|
|
defaultTextureLayer: "blank",
|
|
textureLayers: {
|
|
blank: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Blank.png"
|
|
},
|
|
trigger: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Trigger.png"
|
|
},
|
|
arrows: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Rotate.png"
|
|
},
|
|
grip: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Grip-oculus.png"
|
|
},
|
|
teleport: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Teleport.png"
|
|
},
|
|
both_triggers: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-L.fbx/Oculus-Labels-L.fbm/Grip-Trigger.png"
|
|
},
|
|
}
|
|
},
|
|
|
|
trigger: {
|
|
type: "rotational",
|
|
modelURL: BASE_URL + "touch_l_trigger.fbx",
|
|
naturalPosition: { x: 0.0008544912561774254, y: -0.019867943599820137, z: 0.018800459802150726 },
|
|
naturalDimensions: { x: 0.027509, y: 0.025211, z: 0.018443 },
|
|
|
|
// rotational
|
|
input: controllerStandard.LT,
|
|
origin: { x: 0, y: -0.015, z: -0.00 },
|
|
minValue: 0.0,
|
|
maxValue: 1.0,
|
|
axis: { x: 1, y: 0, z: 0 },
|
|
maxAngle: 17,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_l_trigger.fbx/touch_l_trigger.fbm/L_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_l_trigger.fbx/touch_l_trigger.fbm/L_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
grip: {
|
|
type: "linear",
|
|
modelURL: BASE_URL + "touch_l_bumper.fbx",
|
|
naturalPosition: { x: 0.00008066371083259583, y: -0.02715788595378399, z: -0.02448512241244316 },
|
|
naturalDimensions: { x: 0.017444, y: 0.020297, z: 0.026003 },
|
|
|
|
// linear properties
|
|
// Offset from origin = 0.36470, 0.11048, 0.11066
|
|
input: "OculusTouch.LeftGrip",
|
|
axis: { x: 1, y: 0.302933918, z: 0.302933918 },
|
|
maxTranslation: 0.003967,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_l_bumper.fbx/touch_l_bumper.fbm/L_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_l_bumper.fbx/touch_l_bumper.fbm/L_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
joystick: {
|
|
type: "joystick",
|
|
modelURL: BASE_URL + "touch_l_joystick.fbx",
|
|
naturalPosition: { x: 0.0075613949447870255, y: -0.008225866593420506, z: 0.004792703315615654 },
|
|
naturalDimensions: { x: 0.027386, y: 0.033254, z: 0.027272 },
|
|
|
|
// joystick
|
|
xInput: "OculusTouch.LX",
|
|
yInput: "OculusTouch.LY",
|
|
originOffset: { x: 0, y: -0.0028564, z: -0.00 },
|
|
xHalfAngle: 20,
|
|
yHalfAngle: 20,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_l_joystick.fbx/touch_l_joystick.fbm/L_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_l_joystick.fbx/touch_l_joystick.fbm/L_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
button_a: {
|
|
type: "linear",
|
|
modelURL: BASE_URL + "touch_l_button_x.fbx",
|
|
naturalPosition: { x: -0.009307309985160828, y: -0.00005015172064304352, z: -0.012594521045684814 },
|
|
naturalDimensions: { x: 0.009861, y: 0.004345, z: 0.00982 },
|
|
|
|
input: "OculusTouch.X",
|
|
axis: { x: 0, y: -1, z: 0 },
|
|
maxTranslation: 0.001,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_l_button_x.fbx/touch_l_button_x.fbm/L_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_l_button_x.fbx/touch_l_button_x.fbm/L_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
button_b: {
|
|
type: "linear",
|
|
modelURL: BASE_URL + "touch_l_button_y.fbx",
|
|
naturalPosition: { x: -0.01616849936544895, y: -0.000050364527851343155, z: 0.0017703399062156677 },
|
|
naturalDimensions: { x: 0.010014, y: 0.004412, z: 0.009972 },
|
|
|
|
input: "OculusTouch.Y",
|
|
axis: { x: 0, y: -1, z: 0 },
|
|
maxTranslation: 0.001,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_l_button_y.fbx/touch_l_button_y.fbm/L_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_l_button_y.fbx/touch_l_button_y.fbm/L_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
}
|
|
}
|
|
]
|
|
};
|
|
|
|
TOUCH_CONTROLLER_CONFIGURATION_RIGHT = {
|
|
name: "Touch",
|
|
controllers: [
|
|
{
|
|
modelURL: BASE_URL + "touch_r_body.fbx",
|
|
jointIndex: MyAvatar.getJointIndex("_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND"),
|
|
naturalPosition: { x: -0.016486231237649918, y: -0.03551865369081497, z: -0.018527653068304062 },
|
|
dimensions: { x: 0.11053784191608429, y: 0.09957750141620636, z: 0.10139875113964081 },
|
|
rotation: rightBaseRotation,
|
|
position: rightBasePosition,
|
|
|
|
parts: {
|
|
tips: {
|
|
type: "static",
|
|
modelURL: BASE_URL + "Oculus-Labels-R.fbx",
|
|
naturalPosition: { x: 0.009739525616168976, y: -0.0017818436026573181, z: 0.016794726252555847 },
|
|
naturalDimensions: { x: 0.129049, y: 0.078297, z: 0.139492 },
|
|
|
|
textureName: "blank",
|
|
defaultTextureLayer: "blank",
|
|
textureLayers: {
|
|
blank: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Blank.png"
|
|
},
|
|
trigger: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Trigger.png"
|
|
},
|
|
arrows: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Rotate.png"
|
|
},
|
|
grip: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Grip-oculus.png"
|
|
},
|
|
teleport: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Teleport.png"
|
|
},
|
|
both_triggers: {
|
|
defaultTextureURL: BASE_URL + "Oculus-Labels-R.fbx/Oculus-Labels-R.fbm/Grip-Trigger.png"
|
|
},
|
|
}
|
|
},
|
|
|
|
trigger: {
|
|
type: "rotational",
|
|
modelURL: BASE_URL + "touch_r_trigger.fbx",
|
|
naturalPosition: { x: -0.0008544912561774254, y: -0.019867943599820137, z: 0.018800459802150726 },
|
|
naturalDimensions: { x: 0.027384, y: 0.025201, z: 0.018425 },
|
|
|
|
// rotational
|
|
input: "OculusTouch.RT",
|
|
origin: { x: 0, y: -0.015, z: 0 },
|
|
minValue: 0.0,
|
|
maxValue: 1.0,
|
|
axis: { x: 1, y: 0, z: 0 },
|
|
maxAngle: 17,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_r_trigger.fbx/touch_r_trigger.fbm/R_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_r_trigger.fbx/touch_r_trigger.fbm/R_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
grip: {
|
|
type: "linear",
|
|
modelURL: BASE_URL + "touch_r_bumper.fbx",
|
|
naturalPosition: { x: -0.0000806618481874466, y: -0.027157839387655258, z: -0.024485092610120773 },
|
|
naturalDimensions: { x: 0.017268, y: 0.020366, z: 0.02599 },
|
|
|
|
// linear properties
|
|
// Offset from origin = 0.36470, 0.11048, 0.11066
|
|
input: "OculusTouch.RightGrip",
|
|
axis: { x: -1, y: 0.302933918, z: 0.302933918 },
|
|
maxTranslation: 0.003967,
|
|
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_r_bumper.fbx/touch_r_bumper.fbm/R_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_r_bumper.fbx/touch_r_bumper.fbm/R_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
joystick: {
|
|
type: "joystick",
|
|
modelURL: BASE_URL + "touch_r_joystick.fbx",
|
|
naturalPosition: { x: -0.007561382371932268, y: -0.008225853554904461, z: 0.00479268841445446 },
|
|
naturalDimensions: { x: 0.027272, y: 0.033254, z: 0.027272 },
|
|
|
|
// joystick
|
|
xInput: "OculusTouch.RX",
|
|
yInput: "OculusTouch.RY",
|
|
originOffset: { x: 0, y: -0.0028564, z: 0 },
|
|
xHalfAngle: 20,
|
|
yHalfAngle: 20,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_r_joystick.fbx/touch_r_joystick.fbm/R_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_r_joystick.fbx/touch_r_joystick.fbm/R_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
button_a: {
|
|
type: "linear",
|
|
modelURL: BASE_URL + "touch_r_button_a.fbx",
|
|
naturalPosition: { x: 0.009307296946644783, y: -0.00005015172064304352, z: -0.012594504281878471 },
|
|
naturalDimensions: { x: 0.00982, y: 0.004345, z: 0.00982 },
|
|
|
|
input: "OculusTouch.A",
|
|
axis: { x: 0, y: -1, z: 0 },
|
|
maxTranslation: 0.001,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_r_button_a.fbx/touch_r_button_a.fbm/R_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_r_button_a.fbx/touch_r_button_a.fbm/R_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
|
|
button_b: {
|
|
type: "linear",
|
|
modelURL: BASE_URL + "touch_r_button_b.fbx",
|
|
naturalPosition: { x: 0.01616847701370716, y: -0.000050364527851343155, z: 0.0017703361809253693 },
|
|
naturalDimensions: { x: 0.009972, y: 0.004412, z: 0.009972 },
|
|
|
|
input: "OculusTouch.B",
|
|
axis: { x: 0, y: -1, z: 0 },
|
|
maxTranslation: 0.001,
|
|
|
|
textureName: "tex-highlight",
|
|
defaultTextureLayer: "normal",
|
|
textureLayers: {
|
|
normal: {
|
|
defaultTextureURL: BASE_URL + "touch_r_button_b.fbx/touch_r_button_b.fbm/R_controller_DIF.jpg",
|
|
},
|
|
highlight: {
|
|
defaultTextureURL: BASE_URL + "touch_r_button_b.fbx/touch_r_button_b.fbm/R_controller-highlight_DIF.jpg",
|
|
}
|
|
}
|
|
},
|
|
}
|
|
}
|
|
]
|
|
};
|