Merge pull request #16423 from hyperlogic/bug-fix/third-person-look-at-fix-2

DEV-2302: Fix for head not turning in third person look at camera mode
This commit is contained in:
Shannon Romano 2019-10-29 13:41:13 -07:00 committed by GitHub
commit 8fc135d972
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 9 deletions

View file

@ -733,7 +733,7 @@ void MyAvatar::update(float deltaTime) {
_physicsSafetyPending = getCollisionsEnabled();
_characterController.recomputeFlying(); // In case we've gone to into the sky.
}
if (_goToFeetAjustment && _skeletonModelLoaded) {
if (_goToFeetAjustment && _skeletonModel->isLoaded()) {
auto feetAjustment = getWorldPosition() - getWorldFeetPosition();
_goToPosition = getWorldPosition() + feetAjustment;
setWorldPosition(_goToPosition);
@ -2501,7 +2501,6 @@ void MyAvatar::setSkeletonModelURL(const QUrl& skeletonModelURL) {
_headBoneSet.clear();
_cauterizationNeedsUpdate = true;
_skeletonModelLoaded = false;
std::shared_ptr<QMetaObject::Connection> skeletonConnection = std::make_shared<QMetaObject::Connection>();
*skeletonConnection = QObject::connect(_skeletonModel.get(), &SkeletonModel::skeletonLoaded, [this, skeletonModelChangeCount, skeletonConnection]() {
@ -2520,8 +2519,6 @@ void MyAvatar::setSkeletonModelURL(const QUrl& skeletonModelURL) {
_fstAnimGraphOverrideUrl = _skeletonModel->getGeometry()->getAnimGraphOverrideUrl();
initAnimGraph();
initFlowFromFST();
_skeletonModelLoaded = true;
}
QObject::disconnect(*skeletonConnection);
});
@ -6781,7 +6778,7 @@ glm::vec3 MyAvatar::aimToBlendValues(const glm::vec3& aimVector, const glm::quat
}
void MyAvatar::resetHeadLookAt() {
if (_skeletonModelLoaded) {
if (_skeletonModel->isLoaded()) {
_skeletonModel->getRig().setDirectionalBlending(HEAD_BLEND_DIRECTIONAL_ALPHA_NAME, glm::vec3(),
HEAD_BLEND_LINEAR_ALPHA_NAME, HEAD_ALPHA_BLENDING);
}
@ -6797,7 +6794,7 @@ void MyAvatar::resetLookAtRotation(const glm::vec3& avatarPosition, const glm::q
}
void MyAvatar::updateHeadLookAt(float deltaTime) {
if (_skeletonModelLoaded) {
if (_skeletonModel->isLoaded()) {
glm::vec3 lookAtTarget = _scriptControlsHeadLookAt ? _lookAtScriptTarget : _lookAtCameraTarget;
glm::vec3 aimVector = lookAtTarget - getDefaultEyePosition();
glm::vec3 lookAtBlend = MyAvatar::aimToBlendValues(aimVector, getWorldOrientation());
@ -6919,7 +6916,7 @@ bool MyAvatar::setPointAt(const glm::vec3& pointAtTarget) {
Q_ARG(const glm::vec3&, pointAtTarget));
return result;
}
if (_skeletonModelLoaded && _pointAtActive) {
if (_skeletonModel->isLoaded() && _pointAtActive) {
glm::vec3 aimVector = pointAtTarget - getJointPosition(POINT_REF_JOINT_NAME);
_isPointTargetValid = glm::dot(aimVector, getWorldOrientation() * Vectors::FRONT) > 0.0f;
if (_isPointTargetValid) {
@ -6933,7 +6930,7 @@ bool MyAvatar::setPointAt(const glm::vec3& pointAtTarget) {
}
void MyAvatar::resetPointAt() {
if (_skeletonModelLoaded) {
if (_skeletonModel->isLoaded()) {
_skeletonModel->getRig().setDirectionalBlending(POINT_BLEND_DIRECTIONAL_ALPHA_NAME, glm::vec3(),
POINT_BLEND_LINEAR_ALPHA_NAME, POINT_ALPHA_BLENDING);
}

View file

@ -2930,7 +2930,6 @@ private:
bool _haveReceivedHeightLimitsFromDomain { false };
int _disableHandTouchCount { 0 };
bool _skeletonModelLoaded { false };
bool _reloadAvatarEntityDataFromSettings { true };
TimePoint _nextTraitsSendWindow;