summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcharacter/llheadrotmotion.cpp201
-rw-r--r--indra/llcharacter/llheadrotmotion.h4
-rw-r--r--indra/newview/character/avatar_lad.xml450
-rw-r--r--indra/newview/character/avatar_skeleton.xml10
4 files changed, 429 insertions, 236 deletions
diff --git a/indra/llcharacter/llheadrotmotion.cpp b/indra/llcharacter/llheadrotmotion.cpp
index 812c4201af..e91de7a11d 100644
--- a/indra/llcharacter/llheadrotmotion.cpp
+++ b/indra/llcharacter/llheadrotmotion.cpp
@@ -285,7 +285,10 @@ LLEyeMotion::LLEyeMotion(const LLUUID &id) : LLMotion(id)
mName = "eye_rot";
mLeftEyeState = new LLJointState;
+ mAltLeftEyeState = new LLJointState;
+
mRightEyeState = new LLJointState;
+ mAltRightEyeState = new LLJointState;
}
@@ -318,18 +321,38 @@ LLMotion::LLMotionInitStatus LLEyeMotion::onInitialize(LLCharacter *character)
return STATUS_FAILURE;
}
+ mAltLeftEyeState->setJoint( character->getJoint("mFaceEyeAltLeft") );
+ if ( ! mAltLeftEyeState->getJoint() )
+ {
+ LL_INFOS() << getName() << ": Can't get alt left eyeball joint." << LL_ENDL;
+ return STATUS_FAILURE;
+ }
+
mRightEyeState->setJoint( character->getJoint("mEyeRight") );
if ( ! mRightEyeState->getJoint() )
{
- LL_INFOS() << getName() << ": Can't get Right eyeball joint." << LL_ENDL;
+ LL_INFOS() << getName() << ": Can't get right eyeball joint." << LL_ENDL;
+ return STATUS_FAILURE;
+ }
+
+ mAltRightEyeState->setJoint( character->getJoint("mFaceEyeAltRight") );
+ if ( ! mAltRightEyeState->getJoint() )
+ {
+ LL_INFOS() << getName() << ": Can't get alt right eyeball joint." << LL_ENDL;
return STATUS_FAILURE;
}
mLeftEyeState->setUsage(LLJointState::ROT);
+ mAltLeftEyeState->setUsage(LLJointState::ROT);
+
mRightEyeState->setUsage(LLJointState::ROT);
+ mAltRightEyeState->setUsage(LLJointState::ROT);
addJointState( mLeftEyeState );
+ addJointState( mAltLeftEyeState );
+
addJointState( mRightEyeState );
+ addJointState( mAltRightEyeState );
return STATUS_SUCCESS;
}
@@ -343,17 +366,98 @@ BOOL LLEyeMotion::onActivate()
return TRUE;
}
-
//-----------------------------------------------------------------------------
-// LLEyeMotion::onUpdate()
+// LLEyeMotion::adjustEyeTarget()
//-----------------------------------------------------------------------------
-BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
+void LLEyeMotion::adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_state, LLJointState& right_eye_state)
{
// Compute eye rotation.
+ BOOL has_eye_target = FALSE;
LLQuaternion target_eye_rot;
LLVector3 eye_look_at;
F32 vergence;
+ if (targetPos)
+ {
+ LLVector3 skyward(0.f, 0.f, 1.f);
+ LLVector3 left;
+ LLVector3 up;
+
+ eye_look_at = *targetPos;
+ has_eye_target = TRUE;
+ F32 lookAtDistance = eye_look_at.normVec();
+
+ left.setVec(skyward % eye_look_at);
+ up.setVec(eye_look_at % left);
+
+ target_eye_rot = LLQuaternion(eye_look_at, left, up);
+ // convert target rotation to head-local coordinates
+ target_eye_rot *= ~mHeadJoint->getWorldRotation();
+ // eliminate any Euler roll - we're lucky that roll is applied last.
+ F32 roll, pitch, yaw;
+ target_eye_rot.getEulerAngles(&roll, &pitch, &yaw);
+ target_eye_rot.setQuat(0.0f, pitch, yaw);
+ // constrain target orientation to be in front of avatar's face
+ target_eye_rot.constrain(EYE_ROT_LIMIT_ANGLE);
+
+ // calculate vergence
+ F32 interocular_dist = (left_eye_state.getJoint()->getWorldPosition() - right_eye_state.getJoint()->getWorldPosition()).magVec();
+ vergence = -atan2((interocular_dist / 2.f), lookAtDistance);
+ llclamp(vergence, -F_PI_BY_TWO, 0.f);
+ }
+ else
+ {
+ target_eye_rot = LLQuaternion::DEFAULT;
+ vergence = 0.f;
+ }
+
+ //RN: subtract 4 degrees to account for foveal angular offset relative to pupil
+ vergence += 4.f * DEG_TO_RAD;
+
+ // calculate eye jitter
+ LLQuaternion eye_jitter_rot;
+
+ // vergence not too high...
+ if (vergence > -0.05f)
+ {
+ //...go ahead and jitter
+ eye_jitter_rot.setQuat(0.f, mEyeJitterPitch + mEyeLookAwayPitch, mEyeJitterYaw + mEyeLookAwayYaw);
+ }
+ else
+ {
+ //...or don't
+ eye_jitter_rot.loadIdentity();
+ }
+
+ // calculate vergence of eyes as an object gets closer to the avatar's head
+ LLQuaternion vergence_quat;
+
+ if (has_eye_target)
+ {
+ vergence_quat.setQuat(vergence, LLVector3(0.f, 0.f, 1.f));
+ }
+ else
+ {
+ vergence_quat.loadIdentity();
+ }
+
+ // calculate eye rotations
+ LLQuaternion left_eye_rot = target_eye_rot;
+ left_eye_rot = vergence_quat * eye_jitter_rot * left_eye_rot;
+
+ LLQuaternion right_eye_rot = target_eye_rot;
+ vergence_quat.transQuat();
+ right_eye_rot = vergence_quat * eye_jitter_rot * right_eye_rot;
+
+ left_eye_state.setRotation( left_eye_rot );
+ right_eye_state.setRotation( right_eye_rot );
+}
+
+//-----------------------------------------------------------------------------
+// LLEyeMotion::onUpdate()
+//-----------------------------------------------------------------------------
+BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
+{
//calculate jitter
if (mEyeJitterTimer.getElapsedTimeF32() > mEyeJitterTime)
{
@@ -426,83 +530,10 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
}
}
- BOOL has_eye_target = FALSE;
LLVector3* targetPos = (LLVector3*)mCharacter->getAnimationData("LookAtPoint");
- if (targetPos)
- {
- LLVector3 skyward(0.f, 0.f, 1.f);
- LLVector3 left;
- LLVector3 up;
-
- eye_look_at = *targetPos;
- has_eye_target = TRUE;
- F32 lookAtDistance = eye_look_at.normVec();
-
- left.setVec(skyward % eye_look_at);
- up.setVec(eye_look_at % left);
-
- target_eye_rot = LLQuaternion(eye_look_at, left, up);
- // convert target rotation to head-local coordinates
- target_eye_rot *= ~mHeadJoint->getWorldRotation();
- // eliminate any Euler roll - we're lucky that roll is applied last.
- F32 roll, pitch, yaw;
- target_eye_rot.getEulerAngles(&roll, &pitch, &yaw);
- target_eye_rot.setQuat(0.0f, pitch, yaw);
- // constrain target orientation to be in front of avatar's face
- target_eye_rot.constrain(EYE_ROT_LIMIT_ANGLE);
-
- // calculate vergence
- F32 interocular_dist = (mLeftEyeState->getJoint()->getWorldPosition() - mRightEyeState->getJoint()->getWorldPosition()).magVec();
- vergence = -atan2((interocular_dist / 2.f), lookAtDistance);
- llclamp(vergence, -F_PI_BY_TWO, 0.f);
- }
- else
- {
- target_eye_rot = LLQuaternion::DEFAULT;
- vergence = 0.f;
- }
-
- //RN: subtract 4 degrees to account for foveal angular offset relative to pupil
- vergence += 4.f * DEG_TO_RAD;
-
- // calculate eye jitter
- LLQuaternion eye_jitter_rot;
-
- // vergence not too high...
- if (vergence > -0.05f)
- {
- //...go ahead and jitter
- eye_jitter_rot.setQuat(0.f, mEyeJitterPitch + mEyeLookAwayPitch, mEyeJitterYaw + mEyeLookAwayYaw);
- }
- else
- {
- //...or don't
- eye_jitter_rot.loadIdentity();
- }
-
- // calculate vergence of eyes as an object gets closer to the avatar's head
- LLQuaternion vergence_quat;
-
- if (has_eye_target)
- {
- vergence_quat.setQuat(vergence, LLVector3(0.f, 0.f, 1.f));
- }
- else
- {
- vergence_quat.loadIdentity();
- }
-
- // calculate eye rotations
- LLQuaternion left_eye_rot = target_eye_rot;
- left_eye_rot = vergence_quat * eye_jitter_rot * left_eye_rot;
-
- LLQuaternion right_eye_rot = target_eye_rot;
- vergence_quat.transQuat();
- right_eye_rot = vergence_quat * eye_jitter_rot * right_eye_rot;
-
- mLeftEyeState->setRotation( left_eye_rot );
- mRightEyeState->setRotation( right_eye_rot );
+ adjustEyeTarget(targetPos, *mLeftEyeState, *mRightEyeState);
+ adjustEyeTarget(targetPos, *mAltLeftEyeState, *mAltRightEyeState);
return TRUE;
}
@@ -519,11 +550,23 @@ void LLEyeMotion::onDeactivate()
joint->setRotation(LLQuaternion::DEFAULT);
}
+ joint = mAltLeftEyeState->getJoint();
+ if (joint)
+ {
+ joint->setRotation(LLQuaternion::DEFAULT);
+ }
+
joint = mRightEyeState->getJoint();
if (joint)
{
joint->setRotation(LLQuaternion::DEFAULT);
}
+
+ joint = mAltRightEyeState->getJoint();
+ if (joint)
+ {
+ joint->setRotation(LLQuaternion::DEFAULT);
+ }
}
// End
diff --git a/indra/llcharacter/llheadrotmotion.h b/indra/llcharacter/llheadrotmotion.h
index 569dbef2dd..53ae1813bc 100644
--- a/indra/llcharacter/llheadrotmotion.h
+++ b/indra/llcharacter/llheadrotmotion.h
@@ -176,6 +176,8 @@ public:
// it will be deactivated
virtual BOOL onActivate();
+ void adjustEyeTarget(LLVector3* targetPos, LLJointState& left_eye_state, LLJointState& right_eye_state);
+
// called per time step
// must return TRUE while it is active, and
// must return FALSE when the motion is completed.
@@ -193,6 +195,8 @@ public:
LLJoint *mHeadJoint;
LLPointer<LLJointState> mLeftEyeState;
LLPointer<LLJointState> mRightEyeState;
+ LLPointer<LLJointState> mAltLeftEyeState;
+ LLPointer<LLJointState> mAltRightEyeState;
LLFrameTimer mEyeJitterTimer;
F32 mEyeJitterTime;
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 76a603db06..e9ce4725e5 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -807,6 +807,39 @@
<bone
name="mHindLimb2Right"
scale="0 0 0.1" />
+
+ <bone
+ name="mWing1Left"
+ offset="0 0 0" />
+ <bone
+ name="mWing2Left"
+ offset="-0.015 0.015 0" />
+ <bone
+ name="mWing3Left"
+ offset="-0.025 0.025 0" />
+ <bone
+ name="mWing4Left"
+ offset="-0.03 0.03 0" />
+ <bone
+ name="mWing4FanLeft"
+ offset="-0.03 0.03 0" />
+
+ <bone
+ name="mWing1Right"
+ offset="0 0 0" />
+ <bone
+ name="mWing2Right"
+ offset="-0.015 -0.015 0" />
+ <bone
+ name="mWing3Right"
+ offset="-0.025 -0.025 0" />
+ <bone
+ name="mWing4Right"
+ offset="-0.03 -0.03 0" />
+ <bone
+ name="mWing4FanRight"
+ offset="-0.03 -0.03 0" />
+
</param_skeleton>
</param>
@@ -1163,56 +1196,57 @@
name="mEyeRight"
scale="0 0 0"
offset="0 -.009 0" />
-
- <bone
+
+ <bone
name="mFaceEyeAltLeft"
scale="0 0 0 "
- offset="0 .009 0" />
+ offset="0 .0090 0" />
<bone
name="mFaceEyeAltRight"
scale="0 0 0 "
- offset="0 -.009 0" />
-
+ offset="0 -.0090 0" />
+
<bone
name="mFaceEyeLidLowerLeft"
scale="0 0 0 "
- offset="0 .00930 0" />
+ offset="0 .0090 0" />
<bone
name="mFaceEyeLidLowerRight"
scale="0 0 0 "
- offset="0 -.00930 0" />
+ offset="0 -.0090 0" />
+
<bone
name="mFaceEyeLidUpperLeft"
scale="0 0 0 "
- offset="0 .00930 0" />
+ offset="0 .0090 0" />
<bone
name="mFaceEyeLidUpperRight"
scale="0 0 0 "
- offset="0 -.00930 0" />
+ offset="0 -.0090 0" />
<bone
name="mFaceEyebrowInnerLeft"
scale="0 0 0 "
- offset="0 .00930 0" />
+ offset="0 .0090 0" />
<bone
name="mFaceEyebrowInnerRight"
scale="0 0 0 "
- offset="0 -.00930 0" />
+ offset="0 -.0090 0" />
<bone
name="mFaceEyebrowCenterLeft"
scale="0 0 0 "
- offset="0 .00930 0" />
+ offset="0 .0090 0" />
<bone
name="mFaceEyebrowCenterRight"
scale="0 0 0 "
- offset="0 -.00930 0" />
+ offset="0 -.0090 0" />
<bone
name="mFaceEyebrowOuterLeft"
@@ -1257,16 +1291,16 @@
name="mEyeRight"
scale="0 0 0"
offset="0 0 -.004" />
-
- <bone
+
+ <bone
name="mFaceEyeAltLeft"
scale="0 0 0"
offset="0 0 .004" />
- <bone
+ <bone
name="mFaceEyeAltRight"
scale="0 0 0"
- offset="0 0 -.004" />
+ offset="0 0 -.004" />
<bone
name="mFaceNoseRight"
@@ -1421,11 +1455,6 @@
value_min="-1"
value_max="1">
<param_skeleton>
- <bone
- name="mFaceRoot"
- scale="0.25 0 0"
- offset="0 0 0" />
-
<bone
name="mEyeLeft"
scale="0 0 0"
@@ -1436,131 +1465,6 @@
scale="0 0 0"
offset=".016 0 0" />
- <bone
- name="mFaceEyeAltLeft"
- scale="0 0 0"
- offset=".016 0 0" />
-
- <bone
- name="mFaceEyeAltRight"
- scale="0 0 0"
- offset=".016 0 0" />
-
- <bone
- name="mFaceEyeLidUpperLeft"
- scale="0 0 0"
- offset="-0.0038 0 0" />
-
- <bone
- name="mFaceEyeLidUpperRight"
- scale="0 0 0"
- offset="-0.0038 0 0" />
-
- <bone
- name="mFaceEyeLidLowerLeft"
- scale="0 0 0"
- offset="-0.0038 0 0" />
-
- <bone
- name="mFaceEyeLidLowerRight"
- scale="0 0 0"
- offset="-0.0038 0 0" />
-
- <bone
- name="mFaceNoseCenter"
- scale="0 0 0"
- offset=".01 0 0" />
-
- <bone
- name="mFaceNoseRight"
- scale="0 0 0"
- offset=".005 0 0" />
-
- <bone
- name="mFaceNoseLeft"
- scale="0 0 0"
- offset=".005 0 0" />
-
- <bone
- name="mFaceNoseBase"
- scale="0 0 0"
- offset=".005 0 0" />
-
- <bone
- name="mFaceLipUpperLeft"
- scale="0 0 0"
- offset="0.005 0 0" />
-
- <bone
- name="mFaceLipUpperCenter"
- scale="0 0 0"
- offset="0.005 0 0" />
-
- <bone
- name="mFaceLipUpperRight"
- scale="0 0 0"
- offset="0.005 0 0" />
-
- <bone
- name="mFaceLipCornerRight"
- scale="0 0 0"
- offset="0.005 0 0" />
-
- <bone
- name="mFaceLipCornerLeft"
- scale="0 0 0"
- offset="0.005 0 0" />
-
- <bone
- name="mFaceLipLowerLeft"
- scale="0 0 0"
- offset="0.01 0 0" />
-
- <bone
- name="mFaceLipLowerCenter"
- scale="0 0 0"
- offset="0.01 0 0" />
-
- <bone
- name="mFaceLipLowerRight"
- scale="0 0 0"
- offset="0.01 0 0" />
-
-
- <bone
- name="mFaceCheekLowerLeft"
- scale="0 0 0"
- offset="0.007 0 0" />
-
- <bone
- name="mFaceCheekLowerRight"
- scale="0 0 0"
- offset="0.007 0 0" />
-
- <bone
- name="mFaceChin"
- scale="0 0 0"
- offset="0.014 0 0" />
-
- <bone
- name="mFaceTeethUpper"
- scale="0.28 0 0"
- offset="0 0 0" />
- <bone
- name="mFaceTeethLower"
- scale="0.28 0 0"
- offset="0 0 0" />
-
- <bone
- name="mFaceTongueBase"
- scale="0.3 0 0"
- offset="0 0 0" />
-
- <bone
- name="mFaceTongueTip"
- scale="0 0 0"
- offset="0.004 0 0" />
-
</param_skeleton>
</param>
@@ -1584,6 +1488,7 @@
name="mEyeRight"
scale="0 0 0"
offset=".005 0 0" />
+
<bone
name="mFaceEyeAltLeft"
scale="0 0 0"
@@ -1593,7 +1498,7 @@
name="mFaceEyeAltRight"
scale="0 0 0"
offset=".005 0 0" />
-
+
<bone
name="mFaceEyeLidLowerLeft"
scale="0 0 0 "
@@ -1727,17 +1632,17 @@
name="mEyeRight"
scale="1 1 1"
offset="0 0 0" />
-
+
<bone
name="mFaceEyeAltLeft"
scale="1 1 1"
- offset="0 0 0" />
+ offset="0 0 -0.001" />
<bone
name="mFaceEyeAltRight"
scale="1 1 1"
- offset="0 0 0" />
-
+ offset="0 0 -0.001" />
+
<bone
name="mFaceForeheadLeft"
scale="1 1 1"
@@ -2087,6 +1992,16 @@
offset=" 0 0 0" />
<bone
+ name="mFaceEyeAltLeft"
+ scale="0 0 0"
+ offset="0 0 0" />
+
+ <bone
+ name="mFaceEyeAltRight"
+ scale="0 0 0"
+ offset="0 0 0" />
+
+ <bone
name="mFaceEyeLidUpperRight"
scale="0 0.3 0.7"
offset=" 0 0 0" />
@@ -3173,6 +3088,16 @@
name="mFaceEyeLidUpperLeft"
scale="0 0.1 0.2"
offset=" 0 0 0" />
+
+ <bone
+ name="mFaceEyeAltLeft"
+ scale="0 0 0"
+ offset="0 0 0" />
+
+ <bone
+ name="mFaceEyeAltRight"
+ scale="0 0 0"
+ offset="0 0 0" />
</param_skeleton>
</param>
@@ -3351,6 +3276,16 @@
name="mFaceEyebrowInnerLeft"
scale="0 0 0"
offset="0 0.00225 -0.0048" />
+
+ <bone
+ name="mFaceEyeAltRight"
+ scale="0 0 0"
+ offset="0 -0.0042 -0.0035" />
+
+ <bone
+ name="mFaceEyeAltLeft"
+ scale="0 0 0"
+ offset="0 0.0042 -0.0035" />
<bone
name="mFaceEyeLidUpperRight"
@@ -3756,6 +3691,16 @@
scale="0 0 0"
offset="0 0 -.006" />
+ <bone
+ name="mFaceEyeAltLeft"
+ scale="0 0 0"
+ offset="0 0 -.006" />
+
+ <bone
+ name="mFaceEyeAltRight"
+ scale="0 0 0"
+ offset="0 0 -.006" />
+
</param_skeleton>
</param>
@@ -3929,6 +3874,16 @@
offset = "0.015 0.00 0.005"
scale = "0.0 0.0 0.0" />
+ <bone
+ name="mFaceEyeAltRight"
+ scale="0 0 0"
+ offset="0 -0.0033 0.0025" />
+
+ <bone
+ name="mFaceEyeAltLeft"
+ scale="0 0 0"
+ offset="0 0.0033 0.0025" />
+
<bone
name="mFaceEyeLidLowerRight"
scale="0 0 0"
@@ -4098,9 +4053,183 @@
name="mFaceEyeAltRight"
scale="0.3195 0.3280 0.3280"
offset="-0.005 0 0" />
+
+ </param_skeleton>
+ </param>
+
+ <param
+ id="30772"
+ group="1"
+ name="EyeBone_Head_Elongate"
+ value_min="-1"
+ value_max="1">
+ <param_skeleton>
+
+ <bone
+ name="mFaceRoot"
+ scale="0.25 0 0"
+ offset="0 0 0" />
+
+ <bone
+ name="mFaceEyeLidUpperLeft"
+ scale="0 0 0"
+ offset="-0.0038 0 0" />
+
+ <bone
+ name="mFaceEyeLidUpperRight"
+ scale="0 0 0"
+ offset="-0.0038 0 0" />
+ <bone
+ name="mFaceEyeLidLowerLeft"
+ scale="0 0 0"
+ offset="-0.0038 0 0" />
+
+ <bone
+ name="mFaceEyeLidLowerRight"
+ scale="0 0 0"
+ offset="-0.0038 0 0" />
+
+ <bone
+ name="mFaceNoseCenter"
+ scale="0 0 0"
+ offset=".01 0 0" />
+
+ <bone
+ name="mFaceNoseRight"
+ scale="0 0 0"
+ offset=".005 0 0" />
+
+ <bone
+ name="mFaceNoseLeft"
+ scale="0 0 0"
+ offset=".005 0 0" />
+
+ <bone
+ name="mFaceNoseBase"
+ scale="0 0 0"
+ offset=".005 0 0" />
+
+ <bone
+ name="mFaceLipUpperLeft"
+ scale="0 0 0"
+ offset="0.005 0 0" />
+
+ <bone
+ name="mFaceLipUpperCenter"
+ scale="0 0 0"
+ offset="0.005 0 0" />
+
+ <bone
+ name="mFaceLipUpperRight"
+ scale="0 0 0"
+ offset="0.005 0 0" />
+
+ <bone
+ name="mFaceLipCornerRight"
+ scale="0 0 0"
+ offset="0.005 0 0" />
+
+ <bone
+ name="mFaceLipCornerLeft"
+ scale="0 0 0"
+ offset="0.005 0 0" />
+
+ <bone
+ name="mFaceLipLowerLeft"
+ scale="0 0 0"
+ offset="0.01 0 0" />
+
+ <bone
+ name="mFaceLipLowerCenter"
+ scale="0 0 0"
+ offset="0.01 0 0" />
+
+ <bone
+ name="mFaceLipLowerRight"
+ scale="0 0 0"
+ offset="0.01 0 0" />
+
+
+ <bone
+ name="mFaceCheekLowerLeft"
+ scale="0 0 0"
+ offset="0.007 0 0" />
+
+ <bone
+ name="mFaceCheekLowerRight"
+ scale="0 0 0"
+ offset="0.007 0 0" />
+
+ <bone
+ name="mFaceChin"
+ scale="0 0 0"
+ offset="0.014 0 0" />
+
+ <bone
+ name="mFaceTeethUpper"
+ scale="0.28 0 0"
+ offset="0 0 0" />
+ <bone
+ name="mFaceTeethLower"
+ scale="0.28 0 0"
+ offset="0 0 0" />
+
+ <bone
+ name="mFaceTongueBase"
+ scale="0.3 0 0"
+ offset="0 0 0" />
+
+ <bone
+ name="mFaceTongueTip"
+ scale="0 0 0"
+ offset="0.004 0 0" />
+
</param_skeleton>
</param>
+
+ <param
+ id="31772"
+ group="1"
+ name="EyeBone_Head_Elongate"
+ value_min="0"
+ value_max="1">
+ <param_skeleton>
+
+ <bone
+ name="mFaceEyeAltLeft"
+ scale="0 0 0"
+ offset="0.0058 0 0" />
+
+ <bone
+ name="mFaceEyeAltRight"
+ scale="0 0 0"
+ offset="0.0058 0 0" />
+
+ </param_skeleton>
+ </param>
+
+ <param
+ id="32772"
+ group="1"
+ name="EyeBone_Head_Elongate"
+ value_min="0"
+ value_max="1">
+ <param_skeleton>
+
+ <bone
+ name="mFaceEyeAltLeft"
+ scale="0 0 0"
+ offset="-0.0032 0 0" />
+
+ <bone
+ name="mFaceEyeAltRight"
+ scale="0 0 0"
+ offset="-0.0032 0 0" />
+
+ </param_skeleton>
+ </param>
+
<!-- Eye Brow sliders -->
@@ -14577,6 +14706,23 @@ render_pass="bump">
<driven
id="772" />
+
+ <driven
+ id="30772" />
+
+ <driven
+ min1="0"
+ max1="0"
+ max2="0"
+ min2="0.45"
+ id="31772" />
+
+ <driven
+ min1="0.5"
+ max1="1"
+ max2="1"
+ min2="1"
+ id="32772" />
</param_driver>
</param>
diff --git a/indra/newview/character/avatar_skeleton.xml b/indra/newview/character/avatar_skeleton.xml
index 2c63b8092d..2241a12545 100644
--- a/indra/newview/character/avatar_skeleton.xml
+++ b/indra/newview/character/avatar_skeleton.xml
@@ -21,11 +21,11 @@
<bone aliases="head avatar_mHead" connected="true" end="0.000 0.000 0.079" group="Torso" name="mHead" pivot="0.000000 -0.000000 0.075630" pos="0.000 -0.000 0.076" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" support="base">
<collision_volume end="0.000 0.000 0.100" group="Collision" name="HEAD" pos="0.02 0 0.07" rot="0.000000 0.000000 0.000000" scale="0.11 0.09 0.12" support="base"/>
<bone aliases="figureHair avatar_mSkull" connected="false" end="0.000 0.000 0.033" group="Extra" name="mSkull" pivot="0.000000 0.000000 0.079000" pos="0.000 0.000 0.079" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" support="base"/>
- <bone aliases="avatar_mEyeRight" connected="false" end="0.100 0.000 0.000" group="Extra" name="mEyeRight" pivot="0.098466 -0.036000 0.079000" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 -0.000000" scale="1.000 1.000 1.000" support="base"/>
- <bone aliases="avatar_mEyeLeft" connected="false" end="0.100 0.000 0.000" group="Extra" name="mEyeLeft" pivot="0.098461 0.036000 0.079000" pos="0.098 0.036 0.079" rot="0.000000 -0.000000 0.000000" scale="1.000 1.000 1.000" support="base"/>
- <bone connected="false" end="0.022 0.000 0.000" group="Face" name="mFaceEyeAltRight" pivot="0.098466 -0.036000 0.079000" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
- <bone connected="false" end="0.022 0.000 0.000" group="Face" name="mFaceEyeAltLeft" pivot="0.098461 0.036000 0.079000" pos="0.098 0.036 0.079" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
- <bone connected="false" end="0.020 0.000 0.000" group="Face" name="mFaceRoot" pivot="0.025 0.000 0.045" pos="0.025 0.000 0.045" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended">
+ <bone aliases="avatar_mEyeRight" connected="false" end="0.025 0.000 0.000" group="Extra" name="mEyeRight" pivot="0.098466 -0.036000 0.079000" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 -0.000000" scale="1.000 1.000 1.000" support="base"/>
+ <bone aliases="avatar_mEyeLeft" connected="false" end="0.025 0.000 0.000" group="Extra" name="mEyeLeft" pivot="0.098461 0.036000 0.079000" pos="0.098 0.036 0.079" rot="0.000000 -0.000000 0.000000" scale="1.000 1.000 1.000" support="base"/>
+ <bone connected="false" end="0.020 0.000 0.000" group="Face" name="mFaceRoot" pivot="0.025000 0.000000 0.045000" pos="0.025 0.000 0.045" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended">
+ <bone connected="false" end="0.025 0.000 0.000" group="Face" name="mFaceEyeAltRight" pivot="0.073466 -0.036000 0.0339300" pos="0.073 -0.036 0.034" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
+ <bone connected="false" end="0.025 0.000 0.000" group="Face" name="mFaceEyeAltLeft" pivot="0.073461 0.036000 0.0339300" pos="0.073 0.036 0.034" rot="0.000000 0.000000 0.000000" scale="1.00 1.00 1.00" support="extended"/>
<bone connected="false" end="0.024 0.004 0.018" group="Face" name="mFaceForeheadLeft" pivot="0.061 0.035 0.083" pos="0.061 0.035 0.083" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended"/>
<bone connected="false" end="0.024 -0.004 0.018" group="Face" name="mFaceForeheadRight" pivot="0.061 -0.035 0.083" pos="0.061 -0.035 0.083" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended"/>
<bone connected="false" end="0.023 0.013 0.000" group="Eyes" name="mFaceEyebrowOuterLeft" pivot="0.064 0.051 0.048" pos="0.064 0.051 0.048" rot="0.000 0.000 0.000" scale="1.00 1.00 1.00" support="extended"/>