mirror of
https://github.com/overte-org/overte.git
synced 2025-08-07 23:49:55 +02:00
changing keybaord mapping
This commit is contained in:
parent
16bb992d8d
commit
fe363e7f2a
7 changed files with 28 additions and 20 deletions
|
@ -8,8 +8,6 @@
|
||||||
{ "from": "Keyboard.D", "when": "Keyboard.RightMouseButton", "to": "Actions.LATERAL_RIGHT" },
|
{ "from": "Keyboard.D", "when": "Keyboard.RightMouseButton", "to": "Actions.LATERAL_RIGHT" },
|
||||||
{ "from": "Keyboard.E", "when": "Keyboard.Shift", "to": "Actions.BOOM_IN", "filters": [ { "type": "scale", "scale": 0.05 } ] },
|
{ "from": "Keyboard.E", "when": "Keyboard.Shift", "to": "Actions.BOOM_IN", "filters": [ { "type": "scale", "scale": 0.05 } ] },
|
||||||
{ "from": "Keyboard.C", "when": "Keyboard.Shift", "to": "Actions.BOOM_OUT", "filters": [ { "type": "scale", "scale": 0.05 } ] },
|
{ "from": "Keyboard.C", "when": "Keyboard.Shift", "to": "Actions.BOOM_OUT", "filters": [ { "type": "scale", "scale": 0.05 } ] },
|
||||||
{ "from": "Keyboard.S", "when": "Keyboard.Shift", "to": "Actions.PITCH_DOWN" },
|
|
||||||
{ "from": "Keyboard.W", "when": "Keyboard.Shift", "to": "Actions.PITCH_UP" },
|
|
||||||
|
|
||||||
|
|
||||||
{ "comment" : "Mouse turn need to be small continuous increments",
|
{ "comment" : "Mouse turn need to be small continuous increments",
|
||||||
|
@ -90,8 +88,8 @@
|
||||||
|
|
||||||
{ "from": "Keyboard.W", "when": "!Keyboard.Control", "to": "Actions.LONGITUDINAL_FORWARD" },
|
{ "from": "Keyboard.W", "when": "!Keyboard.Control", "to": "Actions.LONGITUDINAL_FORWARD" },
|
||||||
{ "from": "Keyboard.S", "when": "!Keyboard.Control", "to": "Actions.LONGITUDINAL_BACKWARD" },
|
{ "from": "Keyboard.S", "when": "!Keyboard.Control", "to": "Actions.LONGITUDINAL_BACKWARD" },
|
||||||
{ "from": "Keyboard.C", "to": "Actions.VERTICAL_DOWN" },
|
{ "from": "Keyboard.Shift", "to": "Actions.SPRINT" },
|
||||||
{ "from": "Keyboard.E", "to": "Actions.VERTICAL_UP" },
|
{ "from": "Keyboard.Control", "to": "Actions.VERTICAL_DOWN" },
|
||||||
{ "from": "Keyboard.Left", "when": "Keyboard.RightMouseButton", "to": "Actions.LATERAL_LEFT" },
|
{ "from": "Keyboard.Left", "when": "Keyboard.RightMouseButton", "to": "Actions.LATERAL_LEFT" },
|
||||||
{ "from": "Keyboard.Right", "when": "Keyboard.RightMouseButton", "to": "Actions.LATERAL_RIGHT" },
|
{ "from": "Keyboard.Right", "when": "Keyboard.RightMouseButton", "to": "Actions.LATERAL_RIGHT" },
|
||||||
{ "from": "Keyboard.Left", "when": "Keyboard.Shift", "to": "Actions.LATERAL_LEFT" },
|
{ "from": "Keyboard.Left", "when": "Keyboard.Shift", "to": "Actions.LATERAL_LEFT" },
|
||||||
|
@ -128,7 +126,7 @@
|
||||||
{ "from": "Keyboard.MouseWheelLeft", "to": "Actions.BOOM_OUT", "filters": [ { "type": "scale", "scale": 0.02 } ]},
|
{ "from": "Keyboard.MouseWheelLeft", "to": "Actions.BOOM_OUT", "filters": [ { "type": "scale", "scale": 0.02 } ]},
|
||||||
{ "from": "Keyboard.MouseWheelRight", "to": "Actions.BOOM_IN", "filters": [ { "type": "scale", "scale": 0.02 } ]},
|
{ "from": "Keyboard.MouseWheelRight", "to": "Actions.BOOM_IN", "filters": [ { "type": "scale", "scale": 0.02 } ]},
|
||||||
|
|
||||||
{ "from": "Keyboard.Space", "to": "Actions.SHIFT" },
|
{ "from": "Keyboard.Space", "to": "Actions.VERTICAL_UP" },
|
||||||
{ "from": "Keyboard.R", "to": "Actions.ACTION1" },
|
{ "from": "Keyboard.R", "to": "Actions.ACTION1" },
|
||||||
{ "from": "Keyboard.T", "to": "Actions.ACTION2" },
|
{ "from": "Keyboard.T", "to": "Actions.ACTION2" },
|
||||||
{ "from": "Keyboard.Tab", "to": "Actions.ContextMenu" }
|
{ "from": "Keyboard.Tab", "to": "Actions.ContextMenu" }
|
||||||
|
|
|
@ -352,7 +352,7 @@ static const QString AVA_JSON_EXTENSION = ".ava.json";
|
||||||
static const QString WEB_VIEW_TAG = "noDownload=true";
|
static const QString WEB_VIEW_TAG = "noDownload=true";
|
||||||
static const QString ZIP_EXTENSION = ".zip";
|
static const QString ZIP_EXTENSION = ".zip";
|
||||||
|
|
||||||
static const float MIRROR_FULLSCREEN_DISTANCE = 0.389f;
|
static const float MIRROR_FULLSCREEN_DISTANCE = 0.789f;
|
||||||
|
|
||||||
static const quint64 TOO_LONG_SINCE_LAST_SEND_DOWNSTREAM_AUDIO_STATS = 1 * USECS_PER_SECOND;
|
static const quint64 TOO_LONG_SINCE_LAST_SEND_DOWNSTREAM_AUDIO_STATS = 1 * USECS_PER_SECOND;
|
||||||
|
|
||||||
|
@ -2812,12 +2812,13 @@ void Application::updateCamera(RenderArgs& renderArgs, float deltaTime) {
|
||||||
+ mirrorBodyOrientation * hmdOffset);
|
+ mirrorBodyOrientation * hmdOffset);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
auto boomZOffset = boomOffset * Vectors::UNIT_Z;
|
||||||
_myCamera.setOrientation(myAvatar->getWorldOrientation()
|
_myCamera.setOrientation(myAvatar->getWorldOrientation()
|
||||||
* glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)));
|
* glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)));
|
||||||
_myCamera.setPosition(myAvatar->getDefaultEyePosition()
|
_myCamera.setPosition(myAvatar->getDefaultEyePosition()
|
||||||
+ glm::vec3(0, _raiseMirror * myAvatar->getModelScale(), 0)
|
+ glm::vec3(0, _raiseMirror * myAvatar->getModelScale(), 0)
|
||||||
+ (myAvatar->getWorldOrientation() * glm::quat(glm::vec3(0.0f, _rotateMirror, 0.0f))) *
|
+ (myAvatar->getWorldOrientation() * glm::quat(glm::vec3(0.0f, _rotateMirror, 0.0f))) *
|
||||||
glm::vec3(0.0f, 0.0f, -1.0f) * MIRROR_FULLSCREEN_DISTANCE * _scaleMirror);
|
glm::vec3(0.0f, 0.0f, -1.0f) * myAvatar->getBoomLength() * _scaleMirror);
|
||||||
}
|
}
|
||||||
renderArgs._renderMode = RenderArgs::MIRROR_RENDER_MODE;
|
renderArgs._renderMode = RenderArgs::MIRROR_RENDER_MODE;
|
||||||
}
|
}
|
||||||
|
@ -3324,8 +3325,6 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
||||||
} else {
|
} else {
|
||||||
setFullscreen(nullptr);
|
setFullscreen(nullptr);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
Menu::getInstance()->triggerOption(MenuOption::AddressBar);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3387,13 +3386,6 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_F: {
|
|
||||||
if (isOption) {
|
|
||||||
_physicsEngine->dumpNextStats();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case Qt::Key_Asterisk:
|
case Qt::Key_Asterisk:
|
||||||
Menu::getInstance()->triggerOption(MenuOption::DefaultSkybox);
|
Menu::getInstance()->triggerOption(MenuOption::DefaultSkybox);
|
||||||
break;
|
break;
|
||||||
|
@ -3413,7 +3405,11 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
||||||
case Qt::Key_S:
|
case Qt::Key_S:
|
||||||
if (isShifted && isMeta && !isOption) {
|
if (isShifted && isMeta && !isOption) {
|
||||||
Menu::getInstance()->triggerOption(MenuOption::SuppressShortTimings);
|
Menu::getInstance()->triggerOption(MenuOption::SuppressShortTimings);
|
||||||
} else if (!isOption && !isShifted && isMeta) {
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Qt::Key_P:
|
||||||
|
if (!isOption && !isShifted && isMeta) {
|
||||||
AudioInjectorOptions options;
|
AudioInjectorOptions options;
|
||||||
options.localOnly = true;
|
options.localOnly = true;
|
||||||
options.stereo = true;
|
options.stereo = true;
|
||||||
|
@ -4853,6 +4849,7 @@ void Application::cameraMenuChanged() {
|
||||||
if (!isHMDMode() && _myCamera.getMode() != CAMERA_MODE_MIRROR) {
|
if (!isHMDMode() && _myCamera.getMode() != CAMERA_MODE_MIRROR) {
|
||||||
_myCamera.setMode(CAMERA_MODE_MIRROR);
|
_myCamera.setMode(CAMERA_MODE_MIRROR);
|
||||||
getMyAvatar()->reset(false, false, false); // to reset any active MyAvatar::FollowHelpers
|
getMyAvatar()->reset(false, false, false); // to reset any active MyAvatar::FollowHelpers
|
||||||
|
getMyAvatar()->setBoomLength(MyAvatar::ZOOM_DEFAULT);
|
||||||
}
|
}
|
||||||
} else if (menu->isOptionChecked(MenuOption::FirstPerson)) {
|
} else if (menu->isOptionChecked(MenuOption::FirstPerson)) {
|
||||||
if (_myCamera.getMode() != CAMERA_MODE_FIRST_PERSON) {
|
if (_myCamera.getMode() != CAMERA_MODE_FIRST_PERSON) {
|
||||||
|
@ -5145,6 +5142,8 @@ void Application::update(float deltaTime) {
|
||||||
myAvatar->setDriveKey(MyAvatar::ZOOM, userInputMapper->getActionState(controller::Action::TRANSLATE_CAMERA_Z));
|
myAvatar->setDriveKey(MyAvatar::ZOOM, userInputMapper->getActionState(controller::Action::TRANSLATE_CAMERA_Z));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
myAvatar->setSprintMode((bool)userInputMapper->getActionState(controller::Action::SPRINT));
|
||||||
|
|
||||||
static const std::vector<controller::Action> avatarControllerActions = {
|
static const std::vector<controller::Action> avatarControllerActions = {
|
||||||
controller::Action::LEFT_HAND,
|
controller::Action::LEFT_HAND,
|
||||||
controller::Action::RIGHT_HAND,
|
controller::Action::RIGHT_HAND,
|
||||||
|
|
|
@ -225,21 +225,21 @@ Menu::Menu() {
|
||||||
|
|
||||||
// View > First Person
|
// View > First Person
|
||||||
auto firstPersonAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash(
|
auto firstPersonAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash(
|
||||||
viewMenu, MenuOption::FirstPerson, Qt::CTRL | Qt::Key_F,
|
viewMenu, MenuOption::FirstPerson, Qt::SHIFT | Qt::Key_F,
|
||||||
true, qApp, SLOT(cameraMenuChanged())));
|
true, qApp, SLOT(cameraMenuChanged())));
|
||||||
|
|
||||||
firstPersonAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup));
|
firstPersonAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup));
|
||||||
|
|
||||||
// View > Third Person
|
// View > Third Person
|
||||||
auto thirdPersonAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash(
|
auto thirdPersonAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash(
|
||||||
viewMenu, MenuOption::ThirdPerson, Qt::CTRL | Qt::Key_G,
|
viewMenu, MenuOption::ThirdPerson, Qt::SHIFT | Qt::Key_G,
|
||||||
false, qApp, SLOT(cameraMenuChanged())));
|
false, qApp, SLOT(cameraMenuChanged())));
|
||||||
|
|
||||||
thirdPersonAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup));
|
thirdPersonAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup));
|
||||||
|
|
||||||
// View > Mirror
|
// View > Mirror
|
||||||
auto viewMirrorAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash(
|
auto viewMirrorAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash(
|
||||||
viewMenu, MenuOption::FullscreenMirror, Qt::CTRL | Qt::Key_H,
|
viewMenu, MenuOption::FullscreenMirror, Qt::SHIFT | Qt::Key_H,
|
||||||
false, qApp, SLOT(cameraMenuChanged())));
|
false, qApp, SLOT(cameraMenuChanged())));
|
||||||
|
|
||||||
viewMirrorAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup));
|
viewMirrorAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup));
|
||||||
|
|
|
@ -71,6 +71,7 @@ const float YAW_SPEED_DEFAULT = 100.0f; // degrees/sec
|
||||||
const float PITCH_SPEED_DEFAULT = 75.0f; // degrees/sec
|
const float PITCH_SPEED_DEFAULT = 75.0f; // degrees/sec
|
||||||
|
|
||||||
const float MAX_BOOST_SPEED = 0.5f * DEFAULT_AVATAR_MAX_WALKING_SPEED; // action motor gets additive boost below this speed
|
const float MAX_BOOST_SPEED = 0.5f * DEFAULT_AVATAR_MAX_WALKING_SPEED; // action motor gets additive boost below this speed
|
||||||
|
const float AVATAR_RUN_SPEED = DEFAULT_AVATAR_MAX_WALKING_SPEED * 2.0f;
|
||||||
const float MIN_AVATAR_SPEED = 0.05f;
|
const float MIN_AVATAR_SPEED = 0.05f;
|
||||||
const float MIN_AVATAR_SPEED_SQUARED = MIN_AVATAR_SPEED * MIN_AVATAR_SPEED; // speed is set to zero below this
|
const float MIN_AVATAR_SPEED_SQUARED = MIN_AVATAR_SPEED * MIN_AVATAR_SPEED; // speed is set to zero below this
|
||||||
|
|
||||||
|
@ -2821,6 +2822,12 @@ float MyAvatar::getWalkSpeed() const {
|
||||||
return _walkSpeed.get();
|
return _walkSpeed.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyAvatar::setSprintMode(bool sprint) {
|
||||||
|
_sprint = sprint;
|
||||||
|
float sprintSpeed = _sprint ? AVATAR_RUN_SPEED : DEFAULT_AVATAR_MAX_WALKING_SPEED;
|
||||||
|
_walkSpeed.set(sprintSpeed);
|
||||||
|
}
|
||||||
|
|
||||||
void MyAvatar::setWalkSpeed(float value) {
|
void MyAvatar::setWalkSpeed(float value) {
|
||||||
_walkSpeed.set(value);
|
_walkSpeed.set(value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -395,6 +395,7 @@ public:
|
||||||
// Set what driving keys are being pressed to control thrust levels
|
// Set what driving keys are being pressed to control thrust levels
|
||||||
void clearDriveKeys();
|
void clearDriveKeys();
|
||||||
void setDriveKey(DriveKeys key, float val);
|
void setDriveKey(DriveKeys key, float val);
|
||||||
|
void setSprintMode(bool sprint);
|
||||||
float getDriveKey(DriveKeys key) const;
|
float getDriveKey(DriveKeys key) const;
|
||||||
Q_INVOKABLE float getRawDriveKey(DriveKeys key) const;
|
Q_INVOKABLE float getRawDriveKey(DriveKeys key) const;
|
||||||
void relayDriveKeysToCharacterController();
|
void relayDriveKeysToCharacterController();
|
||||||
|
@ -839,6 +840,7 @@ private:
|
||||||
mutable std::mutex _controllerPoseMapMutex;
|
mutable std::mutex _controllerPoseMapMutex;
|
||||||
|
|
||||||
bool _hmdLeanRecenterEnabled = true;
|
bool _hmdLeanRecenterEnabled = true;
|
||||||
|
bool _sprint = false;
|
||||||
AnimPose _prePhysicsRoomPose;
|
AnimPose _prePhysicsRoomPose;
|
||||||
std::mutex _holdActionsMutex;
|
std::mutex _holdActionsMutex;
|
||||||
std::vector<AvatarActionHold*> _holdActions;
|
std::vector<AvatarActionHold*> _holdActions;
|
||||||
|
|
|
@ -183,6 +183,7 @@ namespace controller {
|
||||||
makeButtonPair(Action::ACTION2, "ACTION2"),
|
makeButtonPair(Action::ACTION2, "ACTION2"),
|
||||||
makeButtonPair(Action::CONTEXT_MENU, "CONTEXT_MENU"),
|
makeButtonPair(Action::CONTEXT_MENU, "CONTEXT_MENU"),
|
||||||
makeButtonPair(Action::TOGGLE_MUTE, "TOGGLE_MUTE"),
|
makeButtonPair(Action::TOGGLE_MUTE, "TOGGLE_MUTE"),
|
||||||
|
makeButtonPair(Action::SPRINT, "SPRINT")
|
||||||
};
|
};
|
||||||
return availableInputs;
|
return availableInputs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,6 +174,7 @@ enum class Action {
|
||||||
TRACKED_OBJECT_13,
|
TRACKED_OBJECT_13,
|
||||||
TRACKED_OBJECT_14,
|
TRACKED_OBJECT_14,
|
||||||
TRACKED_OBJECT_15,
|
TRACKED_OBJECT_15,
|
||||||
|
SPRINT,
|
||||||
|
|
||||||
NUM_ACTIONS
|
NUM_ACTIONS
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue