mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-13 20:07:07 +02:00
Revert "Added FacialAnimationData class"
This reverts commit fc9fb11e4f
.
This commit is contained in:
parent
7c89201ce8
commit
ba9d896856
5 changed files with 60 additions and 130 deletions
|
@ -92,7 +92,7 @@ function playRandomSound() {
|
|||
botNumber = getRandomInt(1, 100);
|
||||
|
||||
if (botNumber <= 20) {
|
||||
newFaceFilePrefix = "amber";
|
||||
newFaceFilePrefix = "bot" + botNumber;
|
||||
newBodyFilePrefix = "defaultAvatar_body"
|
||||
} else {
|
||||
if (botNumber <= 40) {
|
||||
|
|
|
@ -32,6 +32,18 @@ Faceshift::Faceshift() :
|
|||
_eyeGazeLeftYaw(0.0f),
|
||||
_eyeGazeRightPitch(0.0f),
|
||||
_eyeGazeRightYaw(0.0f),
|
||||
_leftBlinkIndex(0), // see http://support.faceshift.com/support/articles/35129-export-of-blendshapes
|
||||
_rightBlinkIndex(1),
|
||||
_leftEyeOpenIndex(8),
|
||||
_rightEyeOpenIndex(9),
|
||||
_browDownLeftIndex(14),
|
||||
_browDownRightIndex(15),
|
||||
_browUpCenterIndex(16),
|
||||
_browUpLeftIndex(17),
|
||||
_browUpRightIndex(18),
|
||||
_mouthSmileLeftIndex(28),
|
||||
_mouthSmileRightIndex(29),
|
||||
_jawOpenIndex(21),
|
||||
_longTermAverageEyePitch(0.0f),
|
||||
_longTermAverageEyeYaw(0.0f),
|
||||
_longTermAverageInitialized(false)
|
||||
|
@ -95,14 +107,14 @@ void Faceshift::reset() {
|
|||
|
||||
void Faceshift::updateFakeCoefficients(float leftBlink, float rightBlink, float browUp,
|
||||
float jawOpen, QVector<float>& coefficients) const {
|
||||
coefficients.resize(max((int)coefficients.size(), _facialAnimationData._jawOpenIndex + 1));
|
||||
coefficients.resize(max((int)coefficients.size(), _jawOpenIndex + 1));
|
||||
qFill(coefficients.begin(), coefficients.end(), 0.0f);
|
||||
coefficients[_facialAnimationData._leftBlinkIndex] = leftBlink;
|
||||
coefficients[_facialAnimationData._rightBlinkIndex] = rightBlink;
|
||||
coefficients[_facialAnimationData._browUpCenterIndex] = browUp;
|
||||
coefficients[_facialAnimationData._browUpLeftIndex] = browUp;
|
||||
coefficients[_facialAnimationData._browUpRightIndex] = browUp;
|
||||
coefficients[_facialAnimationData._jawOpenIndex] = jawOpen;
|
||||
coefficients[_leftBlinkIndex] = leftBlink;
|
||||
coefficients[_rightBlinkIndex] = rightBlink;
|
||||
coefficients[_browUpCenterIndex] = browUp;
|
||||
coefficients[_browUpLeftIndex] = browUp;
|
||||
coefficients[_browUpRightIndex] = browUp;
|
||||
coefficients[_jawOpenIndex] = jawOpen;
|
||||
}
|
||||
|
||||
void Faceshift::setTCPEnabled(bool enabled) {
|
||||
|
@ -205,40 +217,40 @@ void Faceshift::receive(const QByteArray& buffer) {
|
|||
const vector<string>& names = static_cast<fsMsgBlendshapeNames*>(msg.get())->blendshape_names();
|
||||
for (size_t i = 0; i < names.size(); i++) {
|
||||
if (names[i] == "EyeBlink_L") {
|
||||
_facialAnimationData._leftBlinkIndex = i;
|
||||
_leftBlinkIndex = i;
|
||||
|
||||
} else if (names[i] == "EyeBlink_R") {
|
||||
_facialAnimationData._rightBlinkIndex = i;
|
||||
_rightBlinkIndex = i;
|
||||
|
||||
} else if (names[i] == "EyeOpen_L") {
|
||||
_facialAnimationData._leftEyeOpenIndex = i;
|
||||
_leftEyeOpenIndex = i;
|
||||
|
||||
} else if (names[i] == "EyeOpen_R") {
|
||||
_facialAnimationData._rightEyeOpenIndex = i;
|
||||
_rightEyeOpenIndex = i;
|
||||
|
||||
} else if (names[i] == "BrowsD_L") {
|
||||
_facialAnimationData._browDownLeftIndex = i;
|
||||
_browDownLeftIndex = i;
|
||||
|
||||
} else if (names[i] == "BrowsD_R") {
|
||||
_facialAnimationData._browDownRightIndex = i;
|
||||
_browDownRightIndex = i;
|
||||
|
||||
} else if (names[i] == "BrowsU_C") {
|
||||
_facialAnimationData._browUpCenterIndex = i;
|
||||
_browUpCenterIndex = i;
|
||||
|
||||
} else if (names[i] == "BrowsU_L") {
|
||||
_facialAnimationData._browUpLeftIndex = i;
|
||||
_browUpLeftIndex = i;
|
||||
|
||||
} else if (names[i] == "BrowsU_R") {
|
||||
_facialAnimationData._browUpRightIndex = i;
|
||||
_browUpRightIndex = i;
|
||||
|
||||
} else if (names[i] == "JawOpen") {
|
||||
_facialAnimationData._jawOpenIndex = i;
|
||||
_jawOpenIndex = i;
|
||||
|
||||
} else if (names[i] == "MouthSmile_L") {
|
||||
_facialAnimationData._mouthSmileLeftIndex = i;
|
||||
_mouthSmileLeftIndex = i;
|
||||
|
||||
} else if (names[i] == "MouthSmile_R") {
|
||||
_facialAnimationData._mouthSmileRightIndex = i;
|
||||
_mouthSmileRightIndex = i;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include <fsbinarystream.h>
|
||||
|
||||
#include "FaceTracker.h"
|
||||
#include "FacialAnimationData.h"
|
||||
|
||||
/// Handles interaction with the Faceshift software, which provides head position/orientation and facial features.
|
||||
class Faceshift : public FaceTracker {
|
||||
|
@ -43,20 +42,20 @@ public:
|
|||
float getEyeGazeRightPitch() const { return _eyeGazeRightPitch; }
|
||||
float getEyeGazeRightYaw() const { return _eyeGazeRightYaw; }
|
||||
|
||||
float getLeftBlink() const { return getBlendshapeCoefficient(_facialAnimationData._leftBlinkIndex); }
|
||||
float getRightBlink() const { return getBlendshapeCoefficient(_facialAnimationData._rightBlinkIndex); }
|
||||
float getLeftEyeOpen() const { return getBlendshapeCoefficient(_facialAnimationData._leftEyeOpenIndex); }
|
||||
float getRightEyeOpen() const { return getBlendshapeCoefficient(_facialAnimationData._rightEyeOpenIndex); }
|
||||
float getLeftBlink() const { return getBlendshapeCoefficient(_leftBlinkIndex); }
|
||||
float getRightBlink() const { return getBlendshapeCoefficient(_rightBlinkIndex); }
|
||||
float getLeftEyeOpen() const { return getBlendshapeCoefficient(_leftEyeOpenIndex); }
|
||||
float getRightEyeOpen() const { return getBlendshapeCoefficient(_rightEyeOpenIndex); }
|
||||
|
||||
float getBrowDownLeft() const { return getBlendshapeCoefficient(_facialAnimationData._browDownLeftIndex); }
|
||||
float getBrowDownRight() const { return getBlendshapeCoefficient(_facialAnimationData._browDownRightIndex); }
|
||||
float getBrowUpCenter() const { return getBlendshapeCoefficient(_facialAnimationData._browUpCenterIndex); }
|
||||
float getBrowUpLeft() const { return getBlendshapeCoefficient(_facialAnimationData._browUpLeftIndex); }
|
||||
float getBrowUpRight() const { return getBlendshapeCoefficient(_facialAnimationData._browUpRightIndex); }
|
||||
float getBrowDownLeft() const { return getBlendshapeCoefficient(_browDownLeftIndex); }
|
||||
float getBrowDownRight() const { return getBlendshapeCoefficient(_browDownRightIndex); }
|
||||
float getBrowUpCenter() const { return getBlendshapeCoefficient(_browUpCenterIndex); }
|
||||
float getBrowUpLeft() const { return getBlendshapeCoefficient(_browUpLeftIndex); }
|
||||
float getBrowUpRight() const { return getBlendshapeCoefficient(_browUpRightIndex); }
|
||||
|
||||
float getMouthSize() const { return getBlendshapeCoefficient(_facialAnimationData._jawOpenIndex); }
|
||||
float getMouthSmileLeft() const { return getBlendshapeCoefficient(_facialAnimationData._mouthSmileLeftIndex); }
|
||||
float getMouthSmileRight() const { return getBlendshapeCoefficient(_facialAnimationData._mouthSmileRightIndex); }
|
||||
float getMouthSize() const { return getBlendshapeCoefficient(_jawOpenIndex); }
|
||||
float getMouthSmileLeft() const { return getBlendshapeCoefficient(_mouthSmileLeftIndex); }
|
||||
float getMouthSmileRight() const { return getBlendshapeCoefficient(_mouthSmileRightIndex); }
|
||||
|
||||
void update();
|
||||
void reset();
|
||||
|
@ -103,9 +102,23 @@ private:
|
|||
float _eyeGazeRightPitch;
|
||||
float _eyeGazeRightYaw;
|
||||
|
||||
// stores blendshape indexes
|
||||
FacialAnimationData _facialAnimationData;
|
||||
int _leftBlinkIndex;
|
||||
int _rightBlinkIndex;
|
||||
int _leftEyeOpenIndex;
|
||||
int _rightEyeOpenIndex;
|
||||
|
||||
// Brows
|
||||
int _browDownLeftIndex;
|
||||
int _browDownRightIndex;
|
||||
int _browUpCenterIndex;
|
||||
int _browUpLeftIndex;
|
||||
int _browUpRightIndex;
|
||||
|
||||
int _mouthSmileLeftIndex;
|
||||
int _mouthSmileRightIndex;
|
||||
|
||||
int _jawOpenIndex;
|
||||
|
||||
// degrees
|
||||
float _longTermAverageEyePitch;
|
||||
float _longTermAverageEyeYaw;
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
//
|
||||
// FacialAnimationData.cpp
|
||||
// interface/src/devices
|
||||
//
|
||||
// Created by Ben Arnold on 7/21/2014.
|
||||
// Copyright 2014 High Fidelity, Inc.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
#include "FacialAnimationData.h"
|
||||
|
||||
FacialAnimationData::FacialAnimationData() :_leftBlinkIndex(0), // see http://support.faceshift.com/support/articles/35129-export-of-blendshapes
|
||||
_rightBlinkIndex(1),
|
||||
_leftEyeOpenIndex(8),
|
||||
_rightEyeOpenIndex(9),
|
||||
_browDownLeftIndex(14),
|
||||
_browDownRightIndex(15),
|
||||
_browUpCenterIndex(16),
|
||||
_browUpLeftIndex(17),
|
||||
_browUpRightIndex(18),
|
||||
_mouthSmileLeftIndex(28),
|
||||
_mouthSmileRightIndex(29),
|
||||
_jawOpenIndex(21) {
|
||||
}
|
||||
|
||||
float FacialAnimationData::getBlendshapeCoefficient(int index) const {
|
||||
return (index >= 0 && index < (int)_blendshapeCoefficients.size()) ? _blendshapeCoefficients[index] : 0.0f;
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
//
|
||||
// FacialAnimationData.h
|
||||
// interface/src/devices
|
||||
//
|
||||
// Created by Ben Arnold on 7/21/2014.
|
||||
// Copyright 2014 High Fidelity, Inc.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
#ifndef hifi_FacialAnimationData_h
|
||||
#define hifi_FacialAnimationData_h
|
||||
|
||||
#include <QObject>
|
||||
#include <QVector>
|
||||
|
||||
/// Stores facial animation data for use by faceshift or scripts
|
||||
class FacialAnimationData : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
friend class Faceshift;
|
||||
|
||||
FacialAnimationData();
|
||||
|
||||
float getLeftBlink() const { return getBlendshapeCoefficient(_leftBlinkIndex); }
|
||||
float getRightBlink() const { return getBlendshapeCoefficient(_rightBlinkIndex); }
|
||||
float getLeftEyeOpen() const { return getBlendshapeCoefficient(_leftEyeOpenIndex); }
|
||||
float getRightEyeOpen() const { return getBlendshapeCoefficient(_rightEyeOpenIndex); }
|
||||
|
||||
float getBrowDownLeft() const { return getBlendshapeCoefficient(_browDownLeftIndex); }
|
||||
float getBrowDownRight() const { return getBlendshapeCoefficient(_browDownRightIndex); }
|
||||
float getBrowUpCenter() const { return getBlendshapeCoefficient(_browUpCenterIndex); }
|
||||
float getBrowUpLeft() const { return getBlendshapeCoefficient(_browUpLeftIndex); }
|
||||
float getBrowUpRight() const { return getBlendshapeCoefficient(_browUpRightIndex); }
|
||||
|
||||
float getMouthSize() const { return getBlendshapeCoefficient(_jawOpenIndex); }
|
||||
float getMouthSmileLeft() const { return getBlendshapeCoefficient(_mouthSmileLeftIndex); }
|
||||
float getMouthSmileRight() const { return getBlendshapeCoefficient(_mouthSmileRightIndex); }
|
||||
|
||||
private:
|
||||
float getBlendshapeCoefficient(int index) const;
|
||||
|
||||
int _leftBlinkIndex;
|
||||
int _rightBlinkIndex;
|
||||
int _leftEyeOpenIndex;
|
||||
int _rightEyeOpenIndex;
|
||||
|
||||
int _browDownLeftIndex;
|
||||
int _browDownRightIndex;
|
||||
int _browUpCenterIndex;
|
||||
int _browUpLeftIndex;
|
||||
int _browUpRightIndex;
|
||||
|
||||
int _mouthSmileLeftIndex;
|
||||
int _mouthSmileRightIndex;
|
||||
|
||||
int _jawOpenIndex;
|
||||
|
||||
//Only used by agents, since FaceTracker has its own _blendshapeCoefficients;
|
||||
QVector<float> _blendshapeCoefficients;
|
||||
};
|
||||
|
||||
#endif // hifi_FacialAnimationData_h
|
Loading…
Reference in a new issue