diff --git a/interface/resources/avatar/animations/idle_aimoffsets.fbx b/interface/resources/avatar/animations/idle_aimoffsets.fbx new file mode 100644 index 0000000000..6e5ab05fdc Binary files /dev/null and b/interface/resources/avatar/animations/idle_aimoffsets.fbx differ diff --git a/interface/resources/avatar/avatar-animation.json b/interface/resources/avatar/avatar-animation.json index 738d25e8ee..9ab4d5d935 100644 --- a/interface/resources/avatar/avatar-animation.json +++ b/interface/resources/avatar/avatar-animation.json @@ -588,1455 +588,6 @@ "children": [ { "children": [ - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 271, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_talk02.fbx" - }, - "id": "seatedTalk02", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 252, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_talk03.fbx" - }, - "id": "seatedTalk03", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 442, - "loopFlag": true, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_talk04.fbx" - }, - "id": "seatedTalk04", - "type": "clip" - } - ], - "data": { - "currentState": "seatedTalk02", - "randomSwitchTimeMax": 12, - "randomSwitchTimeMin": 7, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seatedTalk02", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 1, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedTalk03", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 1, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedTalk04", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 1, - "resume": true, - "transitions": [ - ] - } - ], - "triggerRandomSwitch": "seatedTalkSwitch" - }, - "id": "seatedTalk", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 800, - "loopFlag": true, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_idle.fbx" - }, - "id": "seatedIdle01", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 800, - "loopFlag": true, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_idle02.fbx" - }, - "id": "seatedIdle02", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 800, - "loopFlag": true, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_idle03.fbx" - }, - "id": "seatedIdle03", - "type": "clip" - } - ], - "data": { - "currentState": "seatedIdle01", - "randomSwitchTimeMax": 20, - "randomSwitchTimeMin": 10, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seatedIdle01", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 1, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedIdle02", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 1, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedIdle03", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 1, - "resume": true, - "transitions": [ - ] - } - ], - "triggerRandomSwitch": "seatedIdleSwitch" - }, - "id": "seatedIdle", - "type": "randomSwitchStateMachine" - } - ], - "data": { - "alpha": 1, - "alphaVar": "talkOverlayAlpha", - "boneSet": "upperBody" - }, - "id": "seatedTalkOverlay", - "type": "overlay" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 44, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_agree_headnod.fbx" - }, - "id": "seatedReactionPositiveHeadNod", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 78, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_agree_headnodyes.fbx" - }, - "id": "seatedReactionPositiveHeadNodYes", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 65, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_agree_longheadnod.fbx" - }, - "id": "seatedReactionPositiveLongHeadNod", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 78, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_agree_cheer.fbx" - }, - "id": "seatedReactionPositiveCheer", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 64, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_agree_acknowledge.fbx" - }, - "id": "seatedReactionPositiveAcknowledge", - "type": "clip" - } - ], - "data": { - "currentState": "seatedReactionPositiveHeadNod", - "endFrame": 30, - "loopFlag": false, - "randomSwitchTimeMax": 12, - "randomSwitchTimeMin": 7, - "startFrame": 0, - "states": [ - { - "id": "seatedReactionPositiveHeadNod", - "interpDuration": 1, - "interpTarget": 1, - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "id": "seatedReactionPositiveHeadNodYes", - "interpDuration": 1, - "interpTarget": 1, - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "id": "seatedReactionPositiveLongHeadNod", - "interpDuration": 1, - "interpTarget": 1, - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "id": "seatedReactionPositiveCheer", - "interpDuration": 1, - "interpTarget": 1, - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "id": "seatedReactionPositiveAcknowledge", - "interpDuration": 1, - "interpTarget": 1, - "priority": 1, - "resume": false, - "transitions": [ - ] - } - ], - "timeScale": 1, - "triggerRandomSwitch": "", - "url": "qrc:///avatar/animations/sitting_idle.fbx" - }, - "id": "seatedReactionPositive", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 64, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_disagree_headshake.fbx" - }, - "id": "seatedReactionNegativeDisagreeHeadshake", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 99, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_disagree_drophead.fbx" - }, - "id": "seatedReactionNegativeDisagreeDropHead", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 124, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_disagree_disbelief.fbx" - }, - "id": "seatedReactionNegativeDisagreeDisbelief", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 70, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_disagree_dismiss.fbx" - }, - "id": "seatedReactionNegativeDisagreeDismiss", - "type": "clip" - } - ], - "data": { - "currentState": "seatedReactionNegativeDisagreeHeadshake", - "endFrame": 30, - "loopFlag": false, - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "startFrame": 0, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seatedReactionNegativeDisagreeHeadshake", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionNegativeDisagreeDropHead", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionNegativeDisagreeDisbelief", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionNegativeDisagreeDismiss", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - } - ], - "timeScale": 1, - "triggerRandomSwitch": "", - "url": "qrc:///avatar/animations/sitting_idle.fbx" - }, - "id": "seatedReactionNegative", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 32, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand_all.fbx" - }, - "id": "seatedReactionRaiseHandIntro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 345, - "loopFlag": true, - "startFrame": 32, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand_all.fbx" - }, - "id": "seatedReactionRaiseHandLoop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 400, - "loopFlag": false, - "startFrame": 345, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand_all.fbx" - }, - "id": "seatedReactionRaiseHandOutro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 18, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand02_all.fbx" - }, - "id": "seatedReactionRaiseHand02Intro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 378, - "loopFlag": true, - "startFrame": 18, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand02_all.fbx" - }, - "id": "seatedReactionRaiseHand02Loop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 435, - "loopFlag": false, - "startFrame": 378, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand02_all.fbx" - }, - "id": "seatedReactionRaiseHand02Outro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 15, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand03_all.fbx" - }, - "id": "seatedReactionRaiseHand03Intro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 233, - "loopFlag": true, - "mirrorFlag": false, - "startFrame": 15, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand03_all.fbx" - }, - "id": "seatedReactionRaiseHand03Loop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 296, - "loopFlag": false, - "mirrorFlag": false, - "startFrame": 233, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_raisehand03_all.fbx" - }, - "id": "seatedReactionRaiseHand03Outro", - "type": "clip" - } - ], - "data": { - "currentState": "seatedReactionRaiseHandIntro", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seatedReactionRaiseHandIntro", - "interpDuration": 8, - "interpTarget": 9, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHandLoop", - "var": "seatedReactionRaiseHandIntroOnDone" - } - ] - }, - { - "id": "seatedReactionRaiseHandLoop", - "interpDuration": 1, - "interpTarget": 1, - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHandOutro", - "var": "reactionRaiseHandDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionRaiseHandOutro", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHandLoop", - "var": "reactionRaiseHandEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionRaiseHand02Intro", - "interpDuration": 8, - "interpTarget": 8, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHand02Loop", - "var": "seatedReactionRaiseHand02IntroOnDone" - } - ] - }, - { - "id": "seatedReactionRaiseHand02Loop", - "interpDuration": 1, - "interpTarget": 1, - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHand02Outro", - "var": "reactionRaiseHandDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionRaiseHand02Outro", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHand02Loop", - "var": "reactionRaiseHandEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionRaiseHand03Intro", - "interpDuration": 8, - "interpTarget": 8, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHand03Loop", - "var": "seatedReactionRaiseHand03IntroOnDone" - } - ] - }, - { - "id": "seatedReactionRaiseHand03Loop", - "interpDuration": 1, - "interpTarget": 1, - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHand03Outro", - "var": "reactionRaiseHandDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionRaiseHand03Outro", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionRaiseHand03Loop", - "var": "reactionRaiseHandEnabled" - } - ] - } - ], - "triggerRandomSwitch": "" - }, - "id": "seatedReactionRaiseHand", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 12, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap_all.fbx" - }, - "id": "seatedReactionApplaudIntro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 76, - "loopFlag": true, - "startFrame": 12, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap_all.fbx" - }, - "id": "seatedReactionApplaudLoop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 99, - "loopFlag": false, - "startFrame": 76, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap_all.fbx" - }, - "id": "seatedReactionApplaudOutro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 12, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap02_all.fbx" - }, - "id": "seatedReactionApplaud02Intro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 112, - "loopFlag": true, - "startFrame": 12, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap02_all.fbx" - }, - "id": "seatedReactionApplaud02Loop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 132, - "loopFlag": false, - "startFrame": 112, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap02_all.fbx" - }, - "id": "seatedReactionApplaud02Outro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 17, - "loopFlag": false, - "startFrame": 0, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap03_all.fbx" - }, - "id": "seatedReactionApplaud03Intro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 111, - "loopFlag": true, - "startFrame": 17, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap03_all.fbx" - }, - "id": "seatedReactionApplaud03Loop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 136, - "loopFlag": false, - "startFrame": 111, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_clap03_all.fbx" - }, - "id": "seatedReactionApplaud03Outro", - "type": "clip" - } - ], - "data": { - "currentState": "seatedReactionApplaudIntro", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaudIntro", - "interpDuration": 8, - "interpTarget": 8, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaudLoop", - "var": "seatedReactionApplaudIntroOnDone" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaudLoop", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaudOutro", - "var": "reactionApplaudDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaudOutro", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaudLoop", - "var": "reactionApplaudEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaud02Intro", - "interpDuration": 8, - "interpTarget": 8, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaud02Loop", - "var": "seatedReactionApplaud02IntroOnDone" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaud02Loop", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaud02Outro", - "var": "reactionApplaudDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaud02Outro", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaud02Loop", - "var": "reactionApplaudEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaud03Intro", - "interpDuration": 8, - "interpTarget": 8, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaud03Loop", - "var": "seatedReactionApplaud03IntroOnDone" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaud03Loop", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaud03Outro", - "var": "reactionApplaudDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaud03Outro", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionApplaud03Loop", - "var": "reactionApplaudEnabled" - } - ] - } - ], - "triggerRandomSwitch": "" - }, - "id": "seatedReactionApplaud", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 21, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_point_all.fbx" - }, - "id": "seatedReactionPointIntro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 100, - "loopFlag": true, - "startFrame": 21, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_point_all.fbx" - }, - "id": "seatedReactionPointLoop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 134, - "loopFlag": false, - "mirrorFlag": false, - "startFrame": 100, - "timeScale": 1, - "url": "qrc:///avatar/animations/sitting_emote_point_all.fbx" - }, - "id": "seatedReactionPointOutro", - "type": "clip" - } - ], - "data": { - "currentState": "seatedReactionPointIntro", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seatedReactionPointIntro", - "interpDuration": 18, - "interpTarget": 18, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionPointLoop", - "var": "seatedReactionPointIntroOnDone" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionPointLoop", - "interpDuration": 18, - "interpTarget": 18, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionPointOutro", - "var": "reactionPointDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionPointOutro", - "interpDuration": 18, - "interpTarget": 18, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "seatedReactionPointLoop", - "var": "reactionPointEnabled" - } - ] - } - ], - "triggerRandomSwitch": "" - }, - "id": "seatedReactionPoint", - "type": "randomSwitchStateMachine" - } - ], - "data": { - "currentState": "seatedTalkOverlay", - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seatedTalkOverlay", - "interpDuration": 25, - "interpTarget": 25, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "seatedReactionPositive", - "var": "reactionPositiveTrigger" - }, - { - "state": "seatedReactionNegative", - "var": "reactionNegativeTrigger" - }, - { - "state": "seatedReactionRaiseHand", - "var": "reactionRaiseHandEnabled" - }, - { - "state": "seatedReactionApplaud", - "var": "reactionApplaudEnabled" - }, - { - "state": "seatedReactionPoint", - "var": "reactionPointEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionPositive", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "seatedTalkOverlay", - "var": "seatedReactionPositiveHeadNodOnDone" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionPositiveHeadNodYesOnDone" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionPositiveLongHeadNodOnDone" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionPositiveCheerOnDone" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionPositiveAcknowledgeOnDone" - }, - { - "state": "seatedReactionNegative", - "var": "reactionNegativeTrigger" - }, - { - "state": "seatedReactionRaiseHand", - "var": "reactionRaiseHandEnabled" - }, - { - "state": "seatedReactionApplaud", - "var": "reactionApplaudEnabled" - }, - { - "state": "seatedReactionPoint", - "var": "reactionPointEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionNegative", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "seatedReactionPositive", - "var": "reactionPositiveTrigger" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionNegativeDisagreeHeadshakeOnDone" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionNegativeDisagreeDropHeadOnDone" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionNegativeDisagreeDisbeliefOnDone" - }, - { - "state": "seatedTalkOverlay", - "var": "seatedReactionNegativeDisagreeDismissOnDone" - }, - { - "state": "seatedReactionRaiseHand", - "var": "reactionRaiseHandEnabled" - }, - { - "state": "seatedReactionApplaud", - "var": "reactionApplaudEnabled" - }, - { - "state": "seatedReactionPoint", - "var": "reactionPointEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionRaiseHand", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "seatedReactionNegative", - "var": "reactionNegativeTrigger" - }, - { - "state": "seatedReactionPositive", - "var": "reactionPositiveTrigger" - }, - { - "state": "seatedTalkOverlay", - "var": "reactionRaiseHandDisabled" - }, - { - "state": "seatedReactionApplaud", - "var": "reactionApplaudEnabled" - }, - { - "state": "seatedReactionPoint", - "var": "reactionPointEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionApplaud", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "seatedReactionNegative", - "var": "reactionNegativeTrigger" - }, - { - "state": "seatedReactionPositive", - "var": "reactionPositiveTrigger" - }, - { - "state": "seatedReactionRaiseHand", - "var": "reactionRaiseHandEnabled" - }, - { - "state": "seatedTalkOverlay", - "var": "reactionApplaudDisabled" - }, - { - "state": "seatedReactionPoint", - "var": "reactionPointEnabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "seatedReactionPoint", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "seatedReactionNegative", - "var": "reactionNegativeTrigger" - }, - { - "state": "seatedReactionPositive", - "var": "reactionPositiveTrigger" - }, - { - "state": "seatedReactionRaiseHand", - "var": "reactionRaiseHandEnabled" - }, - { - "state": "seatedReactionApplaud", - "var": "reactionApplaudEnabled" - }, - { - "state": "seatedTalkOverlay", - "var": "reactionPointDisabled" - } - ] - } - ] - }, - "id": "seated", - "type": "stateMachine" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 500, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/talk.fbx" - }, - "id": "talk", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 325, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/talk02.fbx" - }, - "id": "talk02", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 300, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/talk03.fbx" - }, - "id": "talk03", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 500, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/talk04.fbx" - }, - "id": "talk04", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 215, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/talk_armsdown.fbx" - }, - "id": "talk_armsdown", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 500, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/talk_lefthand.fbx" - }, - "id": "talk_lefthand", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 502, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/talk_righthand.fbx" - }, - "id": "talk_righthand", - "type": "clip" - } - ], - "data": { - "currentState": "talk", - "randomSwitchTimeMax": 12, - "randomSwitchTimeMin": 7, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "talk", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "talk02", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "talk03", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "talk04", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "talk_armsdown", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "talk_lefthand", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "talk_righthand", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": true, - "transitions": [ - ] - } - ], - "triggerRandomSwitch": "idleTalkSwitch" - }, - "id": "idleTalk", - "type": "randomSwitchStateMachine" - }, { "children": [ { @@ -2045,26 +596,99 @@ "children": [ ], "data": { - "endFrame": 300, + "endFrame": 271, "loopFlag": true, "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/idle.fbx" + "url": "qrc:///avatar/animations/sitting_talk02.fbx" }, - "id": "masterIdle1", + "id": "seatedTalk02", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 400, + "endFrame": 252, "loopFlag": true, "startFrame": 1, - "timeScale": 0.75, - "url": "qrc:///avatar/animations/idle02.fbx" + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_talk03.fbx" }, - "id": "masterIdle2", + "id": "seatedTalk03", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 442, + "loopFlag": true, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_talk04.fbx" + }, + "id": "seatedTalk04", + "type": "clip" + } + ], + "data": { + "currentState": "seatedTalk02", + "randomSwitchTimeMax": 12, + "randomSwitchTimeMin": 7, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "seatedTalk02", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedTalk03", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedTalk04", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": true, + "transitions": [ + ] + } + ], + "triggerRandomSwitch": "seatedTalkSwitch" + }, + "id": "seatedTalk", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 800, + "loopFlag": true, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_idle.fbx" + }, + "id": "seatedIdle01", "type": "clip" }, { @@ -2073,893 +697,207 @@ "data": { "endFrame": 800, "loopFlag": true, - "startFrame": 1, + "startFrame": 0, "timeScale": 1, - "url": "qrc:///avatar/animations/idle03.fbx" + "url": "qrc:///avatar/animations/sitting_idle02.fbx" }, - "id": "masterIdle3", + "id": "seatedIdle02", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 902, + "endFrame": 800, "loopFlag": true, - "startFrame": 1, + "startFrame": 0, "timeScale": 1, - "url": "qrc:///avatar/animations/idle04.fbx" + "url": "qrc:///avatar/animations/sitting_idle03.fbx" }, - "id": "masterIdle4", + "id": "seatedIdle03", "type": "clip" } ], "data": { - "currentState": "masterIdle1", - "randomSwitchTimeMax": 30, + "currentState": "seatedIdle01", + "randomSwitchTimeMax": 20, "randomSwitchTimeMin": 10, "states": [ { "easingType": "easeInOutQuad", - "id": "masterIdle1", - "interpDuration": 30, - "interpTarget": 30, + "id": "seatedIdle01", + "interpDuration": 15, + "interpTarget": 15, "interpType": "evaluateBoth", - "priority": 0.25, + "priority": 1, "resume": true, "transitions": [ ] }, { "easingType": "easeInOutQuad", - "id": "masterIdle2", - "interpDuration": 30, - "interpTarget": 30, + "id": "seatedIdle02", + "interpDuration": 15, + "interpTarget": 15, "interpType": "evaluateBoth", - "priority": 0.25, + "priority": 1, "resume": true, "transitions": [ ] }, { "easingType": "easeInOutQuad", - "id": "masterIdle3", - "interpDuration": 30, - "interpTarget": 30, + "id": "seatedIdle03", + "interpDuration": 15, + "interpTarget": 15, "interpType": "evaluateBoth", - "priority": 0.25, - "resume": true, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "masterIdle4", - "interpDuration": 30, - "interpTarget": 30, - "interpType": "evaluateBoth", - "priority": 0.25, + "priority": 1, "resume": true, "transitions": [ ] } ], - "triggerRandomSwitch": "masterIdleSwitch" + "triggerRandomSwitch": "seatedIdleSwitch" }, - "id": "masterIdle", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 91, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_once_slownod.fbx" - }, - "id": "idle_once_slownod", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 154, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_once_headtilt.fbx" - }, - "id": "idle_once_headtilt", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 491, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_once_shiftheelpivot.fbx" - }, - "id": "idle_once_shiftheelpivot", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 1620, - "loopFlag": false, - "startFrame": 1, - "timeScale": 0.7, - "url": "qrc:///avatar/animations/idleWS_all.fbx" - }, - "id": "idleWS_all", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 324, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_once_lookaround.fbx" - }, - "id": "idle_once_lookaround", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 169, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_once_neckstretch.fbx" - }, - "id": "idle_once_neckstretch", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 375, - "loopFlag": false, - "startFrame": 1, - "timeScale": 0.7, - "url": "qrc:///avatar/animations/idle_once_lookleftright.fbx" - }, - "id": "idle_once_lookleftright", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 429, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_once_fidget.fbx" - }, - "id": "idle_once_fidget", - "type": "clip" - } - ], - "data": { - "currentState": "idle_once_slownod", - "states": [ - { - "easingType": "easeInOutQuad", - "id": "idle_once_slownod", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idle_once_headtilt", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idle_once_shiftheelpivot", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idleWS_all", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idle_once_lookaround", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idle_once_neckstretch", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idle_once_lookleftright", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idle_once_fidget", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 0.2, - "resume": false, - "transitions": [ - ] - } - ] - }, - "id": "movement", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 80, - "loopFlag": false, - "startFrame": 1, - "startFrameVar": "", - "timeScale": 0.65, - "url": "qrc:///avatar/animations/idle_LFF_all.fbx" - }, - "id": "transitionToAltIdle1", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 80, - "loopFlag": false, - "startFrame": 1, - "timeScale": 0.65, - "url": "qrc:///avatar/animations/idle_RFF_all.fbx" - }, - "id": "transitionToAltIdle2", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 388, - "loopFlag": true, - "startFrame": 80, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_LFF_all.fbx" - }, - "id": "altIdle1", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 388, - "loopFlag": true, - "startFrame": 80, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_RFF_all.fbx" - }, - "id": "altIdle2", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 472, - "loopFlag": false, - "startFrame": 388, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_LFF_all.fbx" - }, - "id": "alt1ToMasterIdle", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 453, - "loopFlag": false, - "startFrame": 388, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_RFF_all.fbx" - }, - "id": "alt2ToMasterIdle", - "type": "clip" - } - ], - "data": { - "currentState": "transitionToAltIdle1", - "states": [ - { - "easingType": "easeInOutQuad", - "id": "transitionToAltIdle1", - "interpDuration": 20, - "interpTarget": 20, - "interpType": "evaluateBoth", - "priority": 0.5, - "resume": false, - "transitions": [ - { - "randomSwitchState": "altIdle1", - "var": "transitionToAltIdle1OnDone" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "transitionToAltIdle2", - "interpDuration": 20, - "interpTarget": 20, - "interpType": "evaluateBoth", - "priority": 0.5, - "resume": false, - "transitions": [ - { - "randomSwitchState": "altIdle2", - "var": "transitionToAltIdle2OnDone" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "altIdle1", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": -1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "alt1ToMasterIdle", - "var": "finishAltIdle2" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "altIdle2", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": -1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "alt2ToMasterIdle", - "var": "finishAltIdle2" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "alt1ToMasterIdle", - "interpDuration": 24, - "interpTarget": 24, - "interpType": "evaluateBoth", - "priority": -1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "alt2ToMasterIdle", - "interpDuration": 24, - "interpTarget": 24, - "interpType": "evaluateBoth", - "priority": -1, - "resume": false, - "transitions": [ - ] - } - ], - "transitionVar": "finishAltIdle2", - "triggerTimeMax": 60, - "triggerTimeMin": 10 - }, - "id": "alternateIdle", - "type": "randomSwitchStateMachine" - } - ], - "data": { - "currentState": "movement", - "states": [ - { - "easingType": "easeInOutQuad", - "id": "movement", - "interpDuration": 30, - "interpTarget": 30, - "interpType": "evaluateBoth", - "priority": 0.6, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "alternateIdle", - "interpDuration": 30, - "interpTarget": 30, - "interpType": "evaluateBoth", - "priority": 0.4, - "resume": false, - "transitions": [ - ] - } - ] - }, - "id": "fidget", + "id": "seatedIdle", "type": "randomSwitchStateMachine" } ], "data": { - "currentState": "masterIdle", - "states": [ - { - "easingType": "easeInOutQuad", - "id": "masterIdle", - "interpDuration": 30, - "interpTarget": 30, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "fidget", - "var": "timeToFidget" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "fidget", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": -1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "masterIdle", - "var": "idle_once_slownodOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "idle_once_headtiltOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "idle_once_shiftheelpivotOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "idleWS_allOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "idle_once_lookaroundOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "idle_once_neckstretchOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "idle_once_lookleftrightOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "idle_once_fidgetOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "alt1ToMasterIdleOnDone" - }, - { - "randomSwitchState": "masterIdle", - "var": "alt2ToMasterIdleOnDone" - } - ] - } - ], - "transitionVar": "timeToFidget", - "triggerTimeMax": 50, - "triggerTimeMin": 10 + "alpha": 1, + "alphaVar": "talkOverlayAlpha", + "boneSet": "upperBody" }, - "id": "idleStand", - "type": "randomSwitchStateMachine" - } - ], - "data": { - "alpha": 1, - "alphaVar": "talkOverlayAlpha", - "boneSet": "upperBody" - }, - "id": "idleTalkOverlay", - "type": "overlay" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 64, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_agree_acknowledge.fbx" - }, - "id": "positiveAcknowledge", - "type": "clip" + "id": "seatedTalkOverlay", + "type": "overlay" }, - { - "children": [ - ], - "data": { - "endFrame": 55, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_agree_headnod.fbx" - }, - "id": "positiveHeadNod", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 94, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_agree_headnodyes.fbx" - }, - "id": "positiveHeadNodYes", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 68, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_agree_longheadnod.fbx" - }, - "id": "positiveLongHeadNod", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 84, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_agree_thoughtfulheadnod.fbx" - }, - "id": "positiveThoughtfulHeadNod", - "type": "clip" - } - ], - "data": { - "currentState": "positiveAcknowledge", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "positiveAcknowledge", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "positiveHeadNod", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "positiveHeadNodYes", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "positiveLongHeadNod", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "positiveThoughtfulHeadNod", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 0.33, - "resume": false, - "transitions": [ - ] - } - ], - "triggerRandomSwitch": "" - }, - "id": "reactionPositive", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 72, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_disagree_annoyedheadshake.fbx" - }, - "id": "negativeAnnoyedHeadshake", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 92, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_disagree_thoughtfulheadshake.fbx" - }, - "id": "negativeThoughtfulHeadshake", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 158, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_disagree_drophead.fbx" - }, - "id": "negativeDropHead", - "type": "clip" - } - ], - "data": { - "currentState": "negativeAnnoyedHeadshake", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "negativeAnnoyedHeadshake", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "negativeThoughtfulHeadshake", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "negativeDropHead", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - } - ] - }, - "id": "reactionNegative", - "type": "randomSwitchStateMachine" - }, - { - "children": [ { "children": [ { "children": [ ], "data": { - "endFrame": 18, + "endFrame": 44, "loopFlag": false, "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand01_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_agree_headnod.fbx" }, - "id": "raiseHand01Intro", + "id": "seatedReactionPositiveHeadNod", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 378, - "loopFlag": true, - "startFrame": 18, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand01_all.fbx" - }, - "id": "raiseHand01Loop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 435, + "endFrame": 78, "loopFlag": false, - "startFrame": 378, + "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand01_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_agree_headnodyes.fbx" }, - "id": "raiseHand01Outro", + "id": "seatedReactionPositiveHeadNodYes", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 65, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_agree_longheadnod.fbx" + }, + "id": "seatedReactionPositiveLongHeadNod", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 78, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_agree_cheer.fbx" + }, + "id": "seatedReactionPositiveCheer", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 64, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_agree_acknowledge.fbx" + }, + "id": "seatedReactionPositiveAcknowledge", "type": "clip" } ], "data": { - "currentState": "raiseHand01Intro", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, + "currentState": "seatedReactionPositiveHeadNod", + "endFrame": 30, + "loopFlag": false, + "randomSwitchTimeMax": 12, + "randomSwitchTimeMin": 7, + "startFrame": 0, "states": [ { - "easingType": "easeInOutQuad", - "id": "raiseHand01Intro", - "interpDuration": 10, - "interpTarget": 10, - "interpType": "evaluateBoth", + "id": "seatedReactionPositiveHeadNod", + "interpDuration": 1, + "interpTarget": 1, "priority": 1, "resume": false, "transitions": [ - { - "randomSwitchState": "raiseHand01Loop", - "var": "raiseHand01IntroOnDone" - } ] }, { - "id": "raiseHand01Loop", + "id": "seatedReactionPositiveHeadNodYes", "interpDuration": 1, "interpTarget": 1, - "priority": 0, + "priority": 1, "resume": false, "transitions": [ - { - "randomSwitchState": "raiseHand01Outro", - "var": "reactionRaiseHandDisabled" - } ] }, { - "id": "raiseHand01Outro", - "interpDuration": 6, - "interpTarget": 6, - "priority": 0, + "id": "seatedReactionPositiveLongHeadNod", + "interpDuration": 1, + "interpTarget": 1, + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "id": "seatedReactionPositiveCheer", + "interpDuration": 1, + "interpTarget": 1, + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "id": "seatedReactionPositiveAcknowledge", + "interpDuration": 1, + "interpTarget": 1, + "priority": 1, "resume": false, "transitions": [ - { - "randomSwitchState": "raiseHand01Loop", - "var": "reactionRaiseHandEnabled" - } ] } ], - "triggerRandomSwitch": "" + "timeScale": 1, + "triggerRandomSwitch": "", + "url": "qrc:///avatar/animations/sitting_idle.fbx" }, - "id": "raiseHand01", + "id": "seatedReactionPositive", "type": "randomSwitchStateMachine" }, { @@ -2968,92 +906,113 @@ "children": [ ], "data": { - "endFrame": 19, + "endFrame": 64, + "loopFlag": false, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_disagree_headshake.fbx" + }, + "id": "seatedReactionNegativeDisagreeHeadshake", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 99, + "loopFlag": false, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_disagree_drophead.fbx" + }, + "id": "seatedReactionNegativeDisagreeDropHead", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 124, "loopFlag": false, "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand03_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_disagree_disbelief.fbx" }, - "id": "raiseHand03Intro", + "id": "seatedReactionNegativeDisagreeDisbelief", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 237, - "loopFlag": true, - "startFrame": 19, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand03_all.fbx" - }, - "id": "raiseHand03Loop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 300, + "endFrame": 70, "loopFlag": false, - "startFrame": 237, + "startFrame": 0, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand03_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_disagree_dismiss.fbx" }, - "id": "raiseHand03Outro", + "id": "seatedReactionNegativeDisagreeDismiss", "type": "clip" } ], "data": { - "currentState": "raiseHand03Intro", + "currentState": "seatedReactionNegativeDisagreeHeadshake", + "endFrame": 30, + "loopFlag": false, "randomSwitchTimeMax": 10, "randomSwitchTimeMin": 1, + "startFrame": 0, "states": [ { "easingType": "easeInOutQuad", - "id": "raiseHand03Intro", - "interpDuration": 15, - "interpTarget": 15, + "id": "seatedReactionNegativeDisagreeHeadshake", + "interpDuration": 1, + "interpTarget": 1, "interpType": "evaluateBoth", "priority": 1, "resume": false, "transitions": [ - { - "randomSwitchState": "raiseHand03Loop", - "var": "raiseHand03IntroOnDone" - } ] }, { - "id": "raiseHand03Loop", + "easingType": "easeInOutQuad", + "id": "seatedReactionNegativeDisagreeDropHead", "interpDuration": 1, "interpTarget": 1, - "priority": 0, + "interpType": "evaluateBoth", + "priority": 1, "resume": false, "transitions": [ - { - "randomSwitchState": "raiseHand03Outro", - "var": "reactionRaiseHandDisabled" - } ] }, { - "id": "raiseHand03Outro", - "interpDuration": 6, - "interpTarget": 6, - "priority": 0, + "easingType": "easeInOutQuad", + "id": "seatedReactionNegativeDisagreeDisbelief", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionNegativeDisagreeDismiss", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, "resume": false, "transitions": [ - { - "randomSwitchState": "raiseHand03Loop", - "var": "reactionRaiseHandEnabled" - } ] } ], - "triggerRandomSwitch": "" + "timeScale": 1, + "triggerRandomSwitch": "", + "url": "qrc:///avatar/animations/sitting_idle.fbx" }, - "id": "raiseHand03", + "id": "seatedReactionNegative", "type": "randomSwitchStateMachine" }, { @@ -3064,11 +1023,11 @@ "data": { "endFrame": 32, "loopFlag": false, - "startFrame": 1, + "startFrame": 0, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand04_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_raisehand_all.fbx" }, - "id": "raiseHand04Intro", + "id": "seatedReactionRaiseHandIntro", "type": "clip" }, { @@ -3079,9 +1038,9 @@ "loopFlag": true, "startFrame": 32, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand04_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_raisehand_all.fbx" }, - "id": "raiseHand04Loop", + "id": "seatedReactionRaiseHandLoop", "type": "clip" }, { @@ -3092,54 +1051,222 @@ "loopFlag": false, "startFrame": 345, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_raisehand04_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_raisehand_all.fbx" }, - "id": "raiseHand04Outro", + "id": "seatedReactionRaiseHandOutro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 18, + "loopFlag": false, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_raisehand02_all.fbx" + }, + "id": "seatedReactionRaiseHand02Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 378, + "loopFlag": true, + "startFrame": 18, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_raisehand02_all.fbx" + }, + "id": "seatedReactionRaiseHand02Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 435, + "loopFlag": false, + "startFrame": 378, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_raisehand02_all.fbx" + }, + "id": "seatedReactionRaiseHand02Outro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 15, + "loopFlag": false, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_raisehand03_all.fbx" + }, + "id": "seatedReactionRaiseHand03Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 233, + "loopFlag": true, + "mirrorFlag": false, + "startFrame": 15, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_raisehand03_all.fbx" + }, + "id": "seatedReactionRaiseHand03Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 296, + "loopFlag": false, + "mirrorFlag": false, + "startFrame": 233, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_raisehand03_all.fbx" + }, + "id": "seatedReactionRaiseHand03Outro", "type": "clip" } ], "data": { - "currentState": "raiseHand04Intro", + "currentState": "seatedReactionRaiseHandIntro", "randomSwitchTimeMax": 10, "randomSwitchTimeMin": 1, "states": [ { "easingType": "easeInOutQuad", - "id": "raiseHand04Intro", - "interpDuration": 15, - "interpTarget": 15, + "id": "seatedReactionRaiseHandIntro", + "interpDuration": 8, + "interpTarget": 9, "interpType": "evaluateBoth", "priority": 1, "resume": false, "transitions": [ { - "randomSwitchState": "raiseHand04Loop", - "var": "raiseHand04IntroOnDone" + "randomSwitchState": "seatedReactionRaiseHandLoop", + "var": "seatedReactionRaiseHandIntroOnDone" } ] }, { - "id": "raiseHand04Loop", + "id": "seatedReactionRaiseHandLoop", "interpDuration": 1, "interpTarget": 1, "priority": 0, "resume": false, "transitions": [ { - "randomSwitchState": "raiseHand04Outro", + "randomSwitchState": "seatedReactionRaiseHandOutro", "var": "reactionRaiseHandDisabled" } ] }, { - "id": "raiseHand04Outro", - "interpDuration": 6, - "interpTarget": 6, + "easingType": "easeInOutQuad", + "id": "seatedReactionRaiseHandOutro", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", "priority": 0, "resume": false, "transitions": [ { - "randomSwitchState": "raiseHand04Loop", + "randomSwitchState": "seatedReactionRaiseHandLoop", + "var": "reactionRaiseHandEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionRaiseHand02Intro", + "interpDuration": 8, + "interpTarget": 8, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionRaiseHand02Loop", + "var": "seatedReactionRaiseHand02IntroOnDone" + } + ] + }, + { + "id": "seatedReactionRaiseHand02Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionRaiseHand02Outro", + "var": "reactionRaiseHandDisabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionRaiseHand02Outro", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionRaiseHand02Loop", + "var": "reactionRaiseHandEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionRaiseHand03Intro", + "interpDuration": 8, + "interpTarget": 8, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionRaiseHand03Loop", + "var": "seatedReactionRaiseHand03IntroOnDone" + } + ] + }, + { + "id": "seatedReactionRaiseHand03Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionRaiseHand03Outro", + "var": "reactionRaiseHandDisabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionRaiseHand03Outro", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionRaiseHand03Loop", "var": "reactionRaiseHandEnabled" } ] @@ -3147,68 +1274,100 @@ ], "triggerRandomSwitch": "" }, - "id": "raiseHand04", + "id": "seatedReactionRaiseHand", "type": "randomSwitchStateMachine" - } - ], - "data": { - "currentState": "raiseHand01", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "raiseHand01", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "raiseHand03", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - }, - { - "easingType": "easeInOutQuad", - "id": "raiseHand04", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - ] - } - ] - }, - "id": "reactionRaiseHand", - "type": "randomSwitchStateMachine" - }, - { - "children": [ + }, { "children": [ + { + "children": [ + ], + "data": { + "endFrame": 12, + "loopFlag": false, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_clap_all.fbx" + }, + "id": "seatedReactionApplaudIntro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 76, + "loopFlag": true, + "startFrame": 12, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_clap_all.fbx" + }, + "id": "seatedReactionApplaudLoop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 99, + "loopFlag": false, + "startFrame": 76, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_clap_all.fbx" + }, + "id": "seatedReactionApplaudOutro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 12, + "loopFlag": false, + "startFrame": 0, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_clap02_all.fbx" + }, + "id": "seatedReactionApplaud02Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 112, + "loopFlag": true, + "startFrame": 12, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_clap02_all.fbx" + }, + "id": "seatedReactionApplaud02Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 132, + "loopFlag": false, + "startFrame": 112, + "timeScale": 1, + "url": "qrc:///avatar/animations/sitting_emote_clap02_all.fbx" + }, + "id": "seatedReactionApplaud02Outro", + "type": "clip" + }, { "children": [ ], "data": { "endFrame": 17, "loopFlag": false, - "startFrame": 1, + "startFrame": 0, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap01_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_clap03_all.fbx" }, - "id": "applaudClap01Intro", + "id": "seatedReactionApplaud03Intro", "type": "clip" }, { @@ -3219,68 +1378,161 @@ "loopFlag": true, "startFrame": 17, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap01_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_clap03_all.fbx" }, - "id": "applaudClap01Loop", + "id": "seatedReactionApplaud03Loop", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 160, + "endFrame": 136, "loopFlag": false, "startFrame": 111, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap01_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_clap03_all.fbx" }, - "id": "applaudClap01Outro", + "id": "seatedReactionApplaud03Outro", "type": "clip" } ], "data": { - "currentState": "applaudClap01Intro", + "currentState": "seatedReactionApplaudIntro", "randomSwitchTimeMax": 10, "randomSwitchTimeMin": 1, "states": [ { "easingType": "easeInOutQuad", - "id": "applaudClap01Intro", - "interpDuration": 15, - "interpTarget": 15, + "id": "seatedReactionApplaudIntro", + "interpDuration": 8, + "interpTarget": 8, "interpType": "evaluateBoth", "priority": 1, "resume": false, "transitions": [ { - "randomSwitchState": "applaudClap01Loop", - "var": "applaudClap01IntroOnDone" + "randomSwitchState": "seatedReactionApplaudLoop", + "var": "seatedReactionApplaudIntroOnDone" } ] }, { - "id": "applaudClap01Loop", + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaudLoop", "interpDuration": 1, "interpTarget": 1, - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "applaudClap01Outro", - "var": "reactionApplaudDisabled" - } - ] - }, - { - "id": "applaudClap01Outro", - "interpDuration": 6, - "interpTarget": 6, "interpType": "evaluateBoth", "priority": 0, "resume": false, "transitions": [ { - "randomSwitchState": "applaudClap01Loop", + "randomSwitchState": "seatedReactionApplaudOutro", + "var": "reactionApplaudDisabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaudOutro", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionApplaudLoop", + "var": "reactionApplaudEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaud02Intro", + "interpDuration": 8, + "interpTarget": 8, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionApplaud02Loop", + "var": "seatedReactionApplaud02IntroOnDone" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaud02Loop", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionApplaud02Outro", + "var": "reactionApplaudDisabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaud02Outro", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionApplaud02Loop", + "var": "reactionApplaudEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaud03Intro", + "interpDuration": 8, + "interpTarget": 8, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionApplaud03Loop", + "var": "seatedReactionApplaud03IntroOnDone" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaud03Loop", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionApplaud03Outro", + "var": "reactionApplaudDisabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaud03Outro", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionApplaud03Loop", "var": "reactionApplaudEnabled" } ] @@ -3288,7 +1540,7 @@ ], "triggerRandomSwitch": "" }, - "id": "applaudClap01", + "id": "seatedReactionApplaud", "type": "randomSwitchStateMachine" }, { @@ -3297,108 +1549,13 @@ "children": [ ], "data": { - "endFrame": 14, + "endFrame": 21, "loopFlag": false, "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap02_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_point_all.fbx" }, - "id": "applaudClap02Intro", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 78, - "loopFlag": true, - "startFrame": 14, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap02_all.fbx" - }, - "id": "applaudClap02Loop", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 115, - "loopFlag": false, - "startFrame": 78, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap02_all.fbx" - }, - "id": "applaudClap02Outro", - "type": "clip" - } - ], - "data": { - "currentState": "applaudClap02Intro", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "applaudClap02Intro", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "applaudClap02Loop", - "var": "applaudClap02IntroOnDone" - } - ] - }, - { - "id": "applaudClap02Loop", - "interpDuration": 1, - "interpTarget": 1, - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "applaudClap02Outro", - "var": "reactionApplaudDisabled" - } - ] - }, - { - "id": "applaudClap02Outro", - "interpDuration": 6, - "interpTarget": 6, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "applaudClap02Loop", - "var": "reactionApplaudEnabled" - } - ] - } - ], - "triggerRandomSwitch": "" - }, - "id": "applaudClap02", - "type": "randomSwitchStateMachine" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 14, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap03_all.fbx" - }, - "id": "applaudClap03Intro", + "id": "seatedReactionPointIntro", "type": "clip" }, { @@ -3407,62 +1564,2047 @@ "data": { "endFrame": 100, "loopFlag": true, - "startFrame": 14, + "startFrame": 21, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap03_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_point_all.fbx" }, - "id": "applaudClap03Loop", + "id": "seatedReactionPointLoop", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 149, + "endFrame": 134, "loopFlag": false, + "mirrorFlag": false, "startFrame": 100, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_clap03_all.fbx" + "url": "qrc:///avatar/animations/sitting_emote_point_all.fbx" }, - "id": "applaudClap03Outro", + "id": "seatedReactionPointOutro", "type": "clip" } ], "data": { - "currentState": "applaudClap03Intro", + "currentState": "seatedReactionPointIntro", "randomSwitchTimeMax": 10, "randomSwitchTimeMin": 1, "states": [ { "easingType": "easeInOutQuad", - "id": "applaudClap03Intro", - "interpDuration": 15, - "interpTarget": 15, + "id": "seatedReactionPointIntro", + "interpDuration": 18, + "interpTarget": 18, "interpType": "evaluateBoth", "priority": 1, "resume": false, "transitions": [ { - "randomSwitchState": "applaudClap03Loop", - "var": "applaudClap03IntroOnDone" + "randomSwitchState": "seatedReactionPointLoop", + "var": "seatedReactionPointIntroOnDone" } ] }, { - "id": "applaudClap03Loop", + "easingType": "easeInOutQuad", + "id": "seatedReactionPointLoop", + "interpDuration": 18, + "interpTarget": 18, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionPointOutro", + "var": "reactionPointDisabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionPointOutro", + "interpDuration": 18, + "interpTarget": 18, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "seatedReactionPointLoop", + "var": "reactionPointEnabled" + } + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "seatedReactionPoint", + "type": "randomSwitchStateMachine" + } + ], + "data": { + "currentState": "seatedTalkOverlay", + "states": [ + { + "easingType": "easeInOutQuad", + "id": "seatedTalkOverlay", + "interpDuration": 25, + "interpTarget": 25, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "seatedReactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "seatedReactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "seatedReactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "seatedReactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "seatedReactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionPositive", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "seatedTalkOverlay", + "var": "seatedReactionPositiveHeadNodOnDone" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionPositiveHeadNodYesOnDone" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionPositiveLongHeadNodOnDone" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionPositiveCheerOnDone" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionPositiveAcknowledgeOnDone" + }, + { + "state": "seatedReactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "seatedReactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "seatedReactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "seatedReactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionNegative", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "seatedReactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionNegativeDisagreeHeadshakeOnDone" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionNegativeDisagreeDropHeadOnDone" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionNegativeDisagreeDisbeliefOnDone" + }, + { + "state": "seatedTalkOverlay", + "var": "seatedReactionNegativeDisagreeDismissOnDone" + }, + { + "state": "seatedReactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "seatedReactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "seatedReactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionRaiseHand", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "seatedReactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "seatedReactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "seatedTalkOverlay", + "var": "reactionRaiseHandDisabled" + }, + { + "state": "seatedReactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "seatedReactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionApplaud", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "seatedReactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "seatedReactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "seatedReactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "seatedTalkOverlay", + "var": "reactionApplaudDisabled" + }, + { + "state": "seatedReactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "seatedReactionPoint", + "interpDuration": 12, + "interpTarget": 12, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "seatedReactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "seatedReactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "seatedReactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "seatedReactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "seatedTalkOverlay", + "var": "reactionPointDisabled" + } + ] + } + ] + }, + "id": "seated", + "type": "stateMachine" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 500, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/talk.fbx" + }, + "id": "talk", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 325, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/talk02.fbx" + }, + "id": "talk02", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 300, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/talk03.fbx" + }, + "id": "talk03", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 500, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/talk04.fbx" + }, + "id": "talk04", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 215, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/talk_armsdown.fbx" + }, + "id": "talk_armsdown", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 500, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/talk_lefthand.fbx" + }, + "id": "talk_lefthand", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 502, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/talk_righthand.fbx" + }, + "id": "talk_righthand", + "type": "clip" + } + ], + "data": { + "currentState": "talk", + "randomSwitchTimeMax": 12, + "randomSwitchTimeMin": 7, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "talk", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "talk02", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "talk03", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "talk04", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "talk_armsdown", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "talk_lefthand", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "talk_righthand", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": true, + "transitions": [ + ] + } + ], + "triggerRandomSwitch": "idleTalkSwitch" + }, + "id": "idleTalk", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 300, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle.fbx" + }, + "id": "masterIdle1", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 400, + "loopFlag": true, + "startFrame": 1, + "timeScale": 0.75, + "url": "qrc:///avatar/animations/idle02.fbx" + }, + "id": "masterIdle2", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 800, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle03.fbx" + }, + "id": "masterIdle3", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 902, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle04.fbx" + }, + "id": "masterIdle4", + "type": "clip" + } + ], + "data": { + "currentState": "masterIdle1", + "randomSwitchTimeMax": 30, + "randomSwitchTimeMin": 10, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "masterIdle1", + "interpDuration": 30, + "interpTarget": 30, + "interpType": "evaluateBoth", + "priority": 0.25, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "masterIdle2", + "interpDuration": 30, + "interpTarget": 30, + "interpType": "evaluateBoth", + "priority": 0.25, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "masterIdle3", + "interpDuration": 30, + "interpTarget": 30, + "interpType": "evaluateBoth", + "priority": 0.25, + "resume": true, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "masterIdle4", + "interpDuration": 30, + "interpTarget": 30, + "interpType": "evaluateBoth", + "priority": 0.25, + "resume": true, + "transitions": [ + ] + } + ], + "triggerRandomSwitch": "masterIdleSwitch" + }, + "id": "masterIdle", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 91, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_once_slownod.fbx" + }, + "id": "idle_once_slownod", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 154, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_once_headtilt.fbx" + }, + "id": "idle_once_headtilt", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 491, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_once_shiftheelpivot.fbx" + }, + "id": "idle_once_shiftheelpivot", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 1620, + "loopFlag": false, + "startFrame": 1, + "timeScale": 0.7, + "url": "qrc:///avatar/animations/idleWS_all.fbx" + }, + "id": "idleWS_all", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 324, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_once_lookaround.fbx" + }, + "id": "idle_once_lookaround", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 169, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_once_neckstretch.fbx" + }, + "id": "idle_once_neckstretch", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 375, + "loopFlag": false, + "startFrame": 1, + "timeScale": 0.7, + "url": "qrc:///avatar/animations/idle_once_lookleftright.fbx" + }, + "id": "idle_once_lookleftright", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 429, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_once_fidget.fbx" + }, + "id": "idle_once_fidget", + "type": "clip" + } + ], + "data": { + "currentState": "idle_once_slownod", + "states": [ + { + "easingType": "easeInOutQuad", + "id": "idle_once_slownod", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "idle_once_headtilt", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "idle_once_shiftheelpivot", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "idleWS_all", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "idle_once_lookaround", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "idle_once_neckstretch", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "idle_once_lookleftright", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "idle_once_fidget", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 0.2, + "resume": false, + "transitions": [ + ] + } + ] + }, + "id": "movement", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 80, + "loopFlag": false, + "startFrame": 1, + "startFrameVar": "", + "timeScale": 0.65, + "url": "qrc:///avatar/animations/idle_LFF_all.fbx" + }, + "id": "transitionToAltIdle1", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 80, + "loopFlag": false, + "startFrame": 1, + "timeScale": 0.65, + "url": "qrc:///avatar/animations/idle_RFF_all.fbx" + }, + "id": "transitionToAltIdle2", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 388, + "loopFlag": true, + "startFrame": 80, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_LFF_all.fbx" + }, + "id": "altIdle1", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 388, + "loopFlag": true, + "startFrame": 80, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_RFF_all.fbx" + }, + "id": "altIdle2", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 472, + "loopFlag": false, + "startFrame": 388, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_LFF_all.fbx" + }, + "id": "alt1ToMasterIdle", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 453, + "loopFlag": false, + "startFrame": 388, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_RFF_all.fbx" + }, + "id": "alt2ToMasterIdle", + "type": "clip" + } + ], + "data": { + "currentState": "transitionToAltIdle1", + "states": [ + { + "easingType": "easeInOutQuad", + "id": "transitionToAltIdle1", + "interpDuration": 20, + "interpTarget": 20, + "interpType": "evaluateBoth", + "priority": 0.5, + "resume": false, + "transitions": [ + { + "randomSwitchState": "altIdle1", + "var": "transitionToAltIdle1OnDone" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "transitionToAltIdle2", + "interpDuration": 20, + "interpTarget": 20, + "interpType": "evaluateBoth", + "priority": 0.5, + "resume": false, + "transitions": [ + { + "randomSwitchState": "altIdle2", + "var": "transitionToAltIdle2OnDone" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "altIdle1", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": -1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "alt1ToMasterIdle", + "var": "finishAltIdle2" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "altIdle2", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": -1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "alt2ToMasterIdle", + "var": "finishAltIdle2" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "alt1ToMasterIdle", + "interpDuration": 24, + "interpTarget": 24, + "interpType": "evaluateBoth", + "priority": -1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "alt2ToMasterIdle", + "interpDuration": 24, + "interpTarget": 24, + "interpType": "evaluateBoth", + "priority": -1, + "resume": false, + "transitions": [ + ] + } + ], + "transitionVar": "finishAltIdle2", + "triggerTimeMax": 60, + "triggerTimeMin": 10 + }, + "id": "alternateIdle", + "type": "randomSwitchStateMachine" + } + ], + "data": { + "currentState": "movement", + "states": [ + { + "easingType": "easeInOutQuad", + "id": "movement", + "interpDuration": 30, + "interpTarget": 30, + "interpType": "evaluateBoth", + "priority": 0.6, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "alternateIdle", + "interpDuration": 30, + "interpTarget": 30, + "interpType": "evaluateBoth", + "priority": 0.4, + "resume": false, + "transitions": [ + ] + } + ] + }, + "id": "fidget", + "type": "randomSwitchStateMachine" + } + ], + "data": { + "currentState": "masterIdle", + "states": [ + { + "easingType": "easeInOutQuad", + "id": "masterIdle", + "interpDuration": 30, + "interpTarget": 30, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "fidget", + "var": "timeToFidget" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "fidget", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": -1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "masterIdle", + "var": "idle_once_slownodOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "idle_once_headtiltOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "idle_once_shiftheelpivotOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "idleWS_allOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "idle_once_lookaroundOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "idle_once_neckstretchOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "idle_once_lookleftrightOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "idle_once_fidgetOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "alt1ToMasterIdleOnDone" + }, + { + "randomSwitchState": "masterIdle", + "var": "alt2ToMasterIdleOnDone" + } + ] + } + ], + "transitionVar": "timeToFidget", + "triggerTimeMax": 50, + "triggerTimeMin": 10 + }, + "id": "idleStand", + "type": "randomSwitchStateMachine" + } + ], + "data": { + "alpha": 1, + "alphaVar": "talkOverlayAlpha", + "boneSet": "upperBody" + }, + "id": "idleTalkOverlay", + "type": "overlay" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 64, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_agree_acknowledge.fbx" + }, + "id": "positiveAcknowledge", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 55, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_agree_headnod.fbx" + }, + "id": "positiveHeadNod", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 94, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_agree_headnodyes.fbx" + }, + "id": "positiveHeadNodYes", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 68, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_agree_longheadnod.fbx" + }, + "id": "positiveLongHeadNod", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 84, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_agree_thoughtfulheadnod.fbx" + }, + "id": "positiveThoughtfulHeadNod", + "type": "clip" + } + ], + "data": { + "currentState": "positiveAcknowledge", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "positiveAcknowledge", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "positiveHeadNod", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "positiveHeadNodYes", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "positiveLongHeadNod", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "positiveThoughtfulHeadNod", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 0.33, + "resume": false, + "transitions": [ + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "reactionPositive", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 72, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_disagree_annoyedheadshake.fbx" + }, + "id": "negativeAnnoyedHeadshake", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 92, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_disagree_thoughtfulheadshake.fbx" + }, + "id": "negativeThoughtfulHeadshake", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 158, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_disagree_drophead.fbx" + }, + "id": "negativeDropHead", + "type": "clip" + } + ], + "data": { + "currentState": "negativeAnnoyedHeadshake", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "negativeAnnoyedHeadshake", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "negativeThoughtfulHeadshake", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "negativeDropHead", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + } + ] + }, + "id": "reactionNegative", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 18, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand01_all.fbx" + }, + "id": "raiseHand01Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 378, + "loopFlag": true, + "startFrame": 18, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand01_all.fbx" + }, + "id": "raiseHand01Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 435, + "loopFlag": false, + "startFrame": 378, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand01_all.fbx" + }, + "id": "raiseHand01Outro", + "type": "clip" + } + ], + "data": { + "currentState": "raiseHand01Intro", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "raiseHand01Intro", + "interpDuration": 10, + "interpTarget": 10, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand01Loop", + "var": "raiseHand01IntroOnDone" + } + ] + }, + { + "id": "raiseHand01Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand01Outro", + "var": "reactionRaiseHandDisabled" + } + ] + }, + { + "id": "raiseHand01Outro", + "interpDuration": 6, + "interpTarget": 6, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand01Loop", + "var": "reactionRaiseHandEnabled" + } + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "raiseHand01", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 19, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand03_all.fbx" + }, + "id": "raiseHand03Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 237, + "loopFlag": true, + "startFrame": 19, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand03_all.fbx" + }, + "id": "raiseHand03Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 300, + "loopFlag": false, + "startFrame": 237, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand03_all.fbx" + }, + "id": "raiseHand03Outro", + "type": "clip" + } + ], + "data": { + "currentState": "raiseHand03Intro", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "raiseHand03Intro", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand03Loop", + "var": "raiseHand03IntroOnDone" + } + ] + }, + { + "id": "raiseHand03Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand03Outro", + "var": "reactionRaiseHandDisabled" + } + ] + }, + { + "id": "raiseHand03Outro", + "interpDuration": 6, + "interpTarget": 6, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand03Loop", + "var": "reactionRaiseHandEnabled" + } + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "raiseHand03", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 32, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand04_all.fbx" + }, + "id": "raiseHand04Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 345, + "loopFlag": true, + "startFrame": 32, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand04_all.fbx" + }, + "id": "raiseHand04Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 400, + "loopFlag": false, + "startFrame": 345, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_raisehand04_all.fbx" + }, + "id": "raiseHand04Outro", + "type": "clip" + } + ], + "data": { + "currentState": "raiseHand04Intro", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "raiseHand04Intro", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand04Loop", + "var": "raiseHand04IntroOnDone" + } + ] + }, + { + "id": "raiseHand04Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand04Outro", + "var": "reactionRaiseHandDisabled" + } + ] + }, + { + "id": "raiseHand04Outro", + "interpDuration": 6, + "interpTarget": 6, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "raiseHand04Loop", + "var": "reactionRaiseHandEnabled" + } + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "raiseHand04", + "type": "randomSwitchStateMachine" + } + ], + "data": { + "currentState": "raiseHand01", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "raiseHand01", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "raiseHand03", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "raiseHand04", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + } + ] + }, + "id": "reactionRaiseHand", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 17, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap01_all.fbx" + }, + "id": "applaudClap01Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 111, + "loopFlag": true, + "startFrame": 17, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap01_all.fbx" + }, + "id": "applaudClap01Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 160, + "loopFlag": false, + "startFrame": 111, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap01_all.fbx" + }, + "id": "applaudClap01Outro", + "type": "clip" + } + ], + "data": { + "currentState": "applaudClap01Intro", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "applaudClap01Intro", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap01Loop", + "var": "applaudClap01IntroOnDone" + } + ] + }, + { + "id": "applaudClap01Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap01Outro", + "var": "reactionApplaudDisabled" + } + ] + }, + { + "id": "applaudClap01Outro", + "interpDuration": 6, + "interpTarget": 6, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap01Loop", + "var": "reactionApplaudEnabled" + } + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "applaudClap01", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 14, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap02_all.fbx" + }, + "id": "applaudClap02Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 78, + "loopFlag": true, + "startFrame": 14, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap02_all.fbx" + }, + "id": "applaudClap02Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 115, + "loopFlag": false, + "startFrame": 78, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap02_all.fbx" + }, + "id": "applaudClap02Outro", + "type": "clip" + } + ], + "data": { + "currentState": "applaudClap02Intro", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "applaudClap02Intro", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap02Loop", + "var": "applaudClap02IntroOnDone" + } + ] + }, + { + "id": "applaudClap02Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap02Outro", + "var": "reactionApplaudDisabled" + } + ] + }, + { + "id": "applaudClap02Outro", + "interpDuration": 6, + "interpTarget": 6, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap02Loop", + "var": "reactionApplaudEnabled" + } + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "applaudClap02", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 14, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap03_all.fbx" + }, + "id": "applaudClap03Intro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 100, + "loopFlag": true, + "startFrame": 14, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap03_all.fbx" + }, + "id": "applaudClap03Loop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 149, + "loopFlag": false, + "startFrame": 100, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_clap03_all.fbx" + }, + "id": "applaudClap03Outro", + "type": "clip" + } + ], + "data": { + "currentState": "applaudClap03Intro", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "applaudClap03Intro", + "interpDuration": 15, + "interpTarget": 15, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap03Loop", + "var": "applaudClap03IntroOnDone" + } + ] + }, + { + "id": "applaudClap03Loop", + "interpDuration": 1, + "interpTarget": 1, + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap03Outro", + "var": "reactionApplaudDisabled" + } + ] + }, + { + "id": "applaudClap03Outro", + "interpDuration": 6, + "interpTarget": 6, + "interpType": "evaluateBoth", + "priority": 0, + "resume": false, + "transitions": [ + { + "randomSwitchState": "applaudClap03Loop", + "var": "reactionApplaudEnabled" + } + ] + } + ], + "triggerRandomSwitch": "" + }, + "id": "applaudClap03", + "type": "randomSwitchStateMachine" + } + ], + "data": { + "currentState": "applaudClap01", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "applaudClap01", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "applaudClap02", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + }, + { + "easingType": "easeInOutQuad", + "id": "applaudClap03", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + ] + } + ] + }, + "id": "reactionApplaud", + "type": "randomSwitchStateMachine" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 21, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_point01_all.fbx" + }, + "id": "reactionPointIntro", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 100, + "loopFlag": true, + "startFrame": 21, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_point01_all.fbx" + }, + "id": "reactionPointLoop", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 134, + "loopFlag": false, + "startFrame": 100, + "timeScale": 1, + "url": "qrc:///avatar/animations/emote_point01_all.fbx" + }, + "id": "reactionPointOutro", + "type": "clip" + } + ], + "data": { + "currentState": "reactionPointIntro", + "randomSwitchTimeMax": 10, + "randomSwitchTimeMin": 1, + "states": [ + { + "easingType": "easeInOutQuad", + "id": "reactionPointIntro", + "interpDuration": 1, + "interpTarget": 1, + "interpType": "evaluateBoth", + "priority": 1, + "resume": false, + "transitions": [ + { + "randomSwitchState": "reactionPointLoop", + "var": "reactionPointIntroOnDone" + } + ] + }, + { + "id": "reactionPointLoop", "interpDuration": 1, "interpTarget": 1, "priority": 0, "resume": false, "transitions": [ { - "randomSwitchState": "applaudClap03Outro", - "var": "reactionApplaudDisabled" + "randomSwitchState": "reactionPointOutro", + "var": "reactionPointDisabled" } ] }, { - "id": "applaudClap03Outro", + "easingType": "easeInOutQuad", + "id": "reactionPointOutro", "interpDuration": 6, "interpTarget": 6, "interpType": "evaluateBoth", @@ -3470,60 +3612,223 @@ "resume": false, "transitions": [ { - "randomSwitchState": "applaudClap03Loop", - "var": "reactionApplaudEnabled" + "randomSwitchState": "reactionPointLoop", + "var": "reactionPointEnabled" } ] } ], "triggerRandomSwitch": "" }, - "id": "applaudClap03", + "id": "reactionPoint", "type": "randomSwitchStateMachine" } ], "data": { - "currentState": "applaudClap01", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, + "currentState": "idleTalkOverlay", "states": [ { "easingType": "easeInOutQuad", - "id": "applaudClap01", - "interpDuration": 1, - "interpTarget": 1, + "id": "idleTalkOverlay", + "interpDuration": 20, + "interpTarget": 20, "interpType": "evaluateBoth", - "priority": 1, - "resume": false, "transitions": [ + { + "state": "reactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "reactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "reactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "reactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "reactionPoint", + "var": "reactionPointEnabled" + } ] }, { "easingType": "easeInOutQuad", - "id": "applaudClap02", - "interpDuration": 1, - "interpTarget": 1, + "id": "reactionPositive", + "interpDuration": 18, + "interpTarget": 18, "interpType": "evaluateBoth", - "priority": 1, - "resume": false, "transitions": [ + { + "state": "idleTalkOverlay", + "var": "positiveAcknowledgeOnDone" + }, + { + "state": "idleTalkOverlay", + "var": "positiveHeadNodOnDone" + }, + { + "state": "idleTalkOverlay", + "var": "positiveHeadNodYesOnDone" + }, + { + "state": "idleTalkOverlay", + "var": "positiveLongHeadNodOnDone" + }, + { + "state": "idleTalkOverlay", + "var": "positiveThoughtfulHeadNodOnDone" + }, + { + "state": "reactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "reactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "reactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "reactionPoint", + "var": "reactionPointEnabled" + } ] }, { "easingType": "easeInOutQuad", - "id": "applaudClap03", - "interpDuration": 1, - "interpTarget": 1, + "id": "reactionNegative", + "interpDuration": 18, + "interpTarget": 18, "interpType": "evaluateBoth", - "priority": 1, - "resume": false, "transitions": [ + { + "state": "reactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "idleTalkOverlay", + "var": "negativeAnnoyedHeadshakeOnDone" + }, + { + "state": "idleTalkOverlay", + "var": "negativeThoughtfulHeadshakeOnDone" + }, + { + "state": "idleTalkOverlay", + "var": "negativeDropHeadOnDone" + }, + { + "state": "reactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "reactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "reactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "reactionRaiseHand", + "interpDuration": 18, + "interpTarget": 18, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "reactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "reactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "idleTalkOverlay", + "var": "reactionRaiseHandDisabled" + }, + { + "state": "reactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "reactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "reactionApplaud", + "interpDuration": 18, + "interpTarget": 18, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "reactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "reactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "reactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "idleTalkOverlay", + "var": "reactionApplaudDisabled" + }, + { + "state": "reactionPoint", + "var": "reactionPointEnabled" + } + ] + }, + { + "easingType": "easeInOutQuad", + "id": "reactionPoint", + "interpDuration": 18, + "interpTarget": 18, + "interpType": "evaluateBoth", + "transitions": [ + { + "state": "reactionNegative", + "var": "reactionNegativeTrigger" + }, + { + "state": "reactionPositive", + "var": "reactionPositiveTrigger" + }, + { + "state": "reactionRaiseHand", + "var": "reactionRaiseHandEnabled" + }, + { + "state": "reactionApplaud", + "var": "reactionApplaudEnabled" + }, + { + "state": "idleTalkOverlay", + "var": "reactionPointDisabled" + } ] } ] }, - "id": "reactionApplaud", - "type": "randomSwitchStateMachine" + "id": "idle", + "type": "stateMachine" }, { "children": [ @@ -3531,301 +3836,1667 @@ "children": [ ], "data": { - "endFrame": 21, - "loopFlag": false, + "endFrame": 40, + "loopFlag": true, "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_point01_all.fbx" + "url": "qrc:///avatar/animations/walk_short_fwd.fbx" }, - "id": "reactionPointIntro", + "id": "walkFwdShort_c", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 100, + "endFrame": 30, "loopFlag": true, - "startFrame": 21, + "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_point01_all.fbx" + "url": "qrc:///avatar/animations/walk_fwd.fbx" }, - "id": "reactionPointLoop", + "id": "walkFwdNormal_c", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 134, - "loopFlag": false, - "startFrame": 100, + "endFrame": 26, + "loopFlag": true, + "startFrame": 1, "timeScale": 1, - "url": "qrc:///avatar/animations/emote_point01_all.fbx" + "url": "qrc:///avatar/animations/walk_fwd_fast.fbx" }, - "id": "reactionPointOutro", + "id": "walkFwdFast_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 18, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/jog_fwd.fbx" + }, + "id": "walkFwdJog_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 19, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/run_fast_fwd.fbx" + }, + "id": "walkFwdRun_c", "type": "clip" } ], "data": { - "currentState": "reactionPointIntro", - "randomSwitchTimeMax": 10, - "randomSwitchTimeMin": 1, - "states": [ - { - "easingType": "easeInOutQuad", - "id": "reactionPointIntro", - "interpDuration": 1, - "interpTarget": 1, - "interpType": "evaluateBoth", - "priority": 1, - "resume": false, - "transitions": [ - { - "randomSwitchState": "reactionPointLoop", - "var": "reactionPointIntroOnDone" - } - ] - }, - { - "id": "reactionPointLoop", - "interpDuration": 1, - "interpTarget": 1, - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "reactionPointOutro", - "var": "reactionPointDisabled" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "reactionPointOutro", - "interpDuration": 6, - "interpTarget": 6, - "interpType": "evaluateBoth", - "priority": 0, - "resume": false, - "transitions": [ - { - "randomSwitchState": "reactionPointLoop", - "var": "reactionPointEnabled" - } - ] - } + "alpha": 0, + "alphaVar": "moveForwardAlpha", + "characteristicSpeeds": [ + 0.5, + 1.8, + 2.5, + 3.55, + 5.675 ], - "triggerRandomSwitch": "" + "desiredSpeed": 1.4, + "desiredSpeedVar": "moveForwardSpeed" }, - "id": "reactionPoint", - "type": "randomSwitchStateMachine" + "id": "WALKFWD", + "type": "blendLinearMove" + }, + { + "children": [ + ], + "data": { + "endFrame": 13, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/idle_to_walk.fbx" + }, + "id": "idleToWalkFwd", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 59, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/settle_to_idle_small.fbx" + }, + "id": "idleSettle", + "type": "clip" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 37, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/walk_bwd.fbx" + }, + "id": "walkBwdShort_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 28, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/walk_bwd_fast.fbx" + }, + "id": "walkBwdFast_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 20, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/jog_bwd.fbx" + }, + "id": "jogBwd_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 14, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/run_bwd.fbx" + }, + "id": "runBwd_c", + "type": "clip" + } + ], + "data": { + "alpha": 0, + "alphaVar": "moveBackwardAlpha", + "characteristicSpeeds": [ + 0.6, + 1.6, + 2.8, + 4.5 + ], + "desiredSpeed": 1.4, + "desiredSpeedVar": "moveBackwardSpeed" + }, + "id": "WALKBWD", + "type": "blendLinearMove" + }, + { + "children": [ + ], + "data": { + "endFrame": 33, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/turn_left.fbx" + }, + "id": "turnLeft", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 31, + "loopFlag": true, + "mirrorFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/turn_right.fbx" + }, + "id": "turnRight", + "type": "clip" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 30, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_short_left.fbx" + }, + "id": "strafeLeftShortStep_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 20, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_left.fbx" + }, + "id": "strafeLeftStep_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 35, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/walk_left.fbx" + }, + "id": "strafeLeftWalk_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 21, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/walk_left_fast.fbx" + }, + "id": "strafeLeftWalkFast_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 20, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/jog_left.fbx" + }, + "id": "strafeLeftJog_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 19, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/run_fast_left.fbx" + }, + "id": "strafeLeftRun_c", + "type": "clip" + } + ], + "data": { + "alpha": 0, + "alphaVar": "moveLateralAlpha", + "characteristicSpeeds": [ + 0.1, + 0.5, + 1, + 2.55, + 3.35, + 5.25 + ], + "desiredSpeed": 1.4, + "desiredSpeedVar": "moveLateralSpeed" + }, + "id": "STRAFELEFT", + "type": "blendLinearMove" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 30, + "loopFlag": true, + "mirrorFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_short_left.fbx" + }, + "id": "strafeRightShortStep_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 20, + "loopFlag": true, + "mirrorFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_left.fbx" + }, + "id": "strafeRightStep_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 35, + "loopFlag": true, + "mirrorFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/walk_right.fbx" + }, + "id": "strafeRightWalk_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 21, + "loopFlag": true, + "mirrorFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/walk_right_fast.fbx" + }, + "id": "strafeRightFast_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 20, + "loopFlag": true, + "mirrorFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/jog_right.fbx" + }, + "id": "strafeRightJog_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 19, + "loopFlag": true, + "mirrorFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/run_fast_right.fbx" + }, + "id": "strafeRightRun_c", + "type": "clip" + } + ], + "data": { + "alpha": 0, + "alphaVar": "moveLateralAlpha", + "characteristicSpeeds": [ + 0.1, + 0.5, + 1, + 2.55, + 3.4, + 5.25 + ], + "desiredSpeed": 1.4, + "desiredSpeedVar": "moveLateralSpeed" + }, + "id": "STRAFERIGHT", + "type": "blendLinearMove" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 30, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_short_left.fbx" + }, + "id": "stepLeftShort_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 20, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_left.fbx" + }, + "id": "stepLeft_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 16, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_left_fast.fbx" + }, + "id": "strafeLeftAnim_c", + "type": "clip" + } + ], + "data": { + "alpha": 0, + "alphaVar": "moveLateralAlpha", + "characteristicSpeeds": [ + 0, + 0.5, + 2.5 + ], + "desiredSpeed": 1.4, + "desiredSpeedVar": "moveLateralSpeed" + }, + "id": "strafeLeftHmd", + "type": "blendLinearMove" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 30, + "loopFlag": true, + "mirrorFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_short_left.fbx" + }, + "id": "stepRightShort_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 20, + "loopFlag": true, + "mirrorFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_left.fbx" + }, + "id": "stepRight_c", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 16, + "loopFlag": true, + "mirrorFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/side_step_left_fast.fbx" + }, + "id": "strafeRightAnim_c", + "type": "clip" + } + ], + "data": { + "alpha": 0, + "alphaVar": "moveLateralAlpha", + "characteristicSpeeds": [ + 0, + 0.5, + 2.5 + ], + "desiredSpeed": 1.4, + "desiredSpeedVar": "moveLateralSpeed" + }, + "id": "strafeRightHmd", + "type": "blendLinearMove" + }, + { + "children": [ + ], + "data": { + "endFrame": 79, + "loopFlag": true, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/fly.fbx" + }, + "id": "fly", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 16, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_standing_launch_all.fbx" + }, + "id": "takeoffStand", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 15, + "loopFlag": false, + "startFrame": 4, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" + }, + "id": "TAKEOFFRUN", + "type": "clip" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 1, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_standing_apex_all.fbx" + }, + "id": "inAirStandPreApex", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 2, + "loopFlag": false, + "startFrame": 2, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_standing_apex_all.fbx" + }, + "id": "inAirStandApex", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 3, + "loopFlag": false, + "startFrame": 3, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_standing_apex_all.fbx" + }, + "id": "inAirStandPostApex", + "type": "clip" + } + ], + "data": { + "alpha": 0, + "alphaVar": "inAirAlpha" + }, + "id": "inAirStand", + "type": "blendLinear" + }, + { + "children": [ + { + "children": [ + ], + "data": { + "endFrame": 16, + "loopFlag": false, + "startFrame": 16, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" + }, + "id": "inAirRunPreApex", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 22, + "loopFlag": false, + "startFrame": 22, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" + }, + "id": "inAirRunApex", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 33, + "loopFlag": false, + "startFrame": 33, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" + }, + "id": "inAirRunPostApex", + "type": "clip" + } + ], + "data": { + "alpha": 0, + "alphaVar": "inAirAlpha" + }, + "id": "INAIRRUN", + "type": "blendLinear" + }, + { + "children": [ + ], + "data": { + "endFrame": 6, + "loopFlag": false, + "startFrame": 1, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_standing_land_settle_all.fbx" + }, + "id": "landStandImpact", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 68, + "loopFlag": false, + "startFrame": 6, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_standing_land_settle_all.fbx" + }, + "id": "landStand", + "type": "clip" + }, + { + "children": [ + ], + "data": { + "endFrame": 40, + "loopFlag": false, + "startFrame": 29, + "timeScale": 1, + "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" + }, + "id": "LANDRUN", + "type": "clip" } ], "data": { - "currentState": "idleTalkOverlay", + "currentState": "idle", + "outputJoints": [ + "LeftFoot", + "RightFoot" + ], "states": [ { "easingType": "easeInOutQuad", - "id": "idleTalkOverlay", - "interpDuration": 20, - "interpTarget": 20, + "id": "seated", + "interpDuration": 6, + "interpTarget": 6, "interpType": "evaluateBoth", "transitions": [ { - "state": "reactionPositive", - "var": "reactionPositiveTrigger" + "state": "idle", + "var": "isNotMoving" }, { - "state": "reactionNegative", - "var": "reactionNegativeTrigger" + "state": "WALKFWD", + "var": "isMovingForward" }, { - "state": "reactionRaiseHand", - "var": "reactionRaiseHandEnabled" + "state": "WALKBWD", + "var": "isMovingBackward" }, { - "state": "reactionApplaud", - "var": "reactionApplaudEnabled" + "state": "STRAFERIGHT", + "var": "isMovingRight" }, { - "state": "reactionPoint", - "var": "reactionPointEnabled" + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "idle", + "var": "isNotSeated" } ] }, { "easingType": "easeInOutQuad", - "id": "reactionPositive", - "interpDuration": 18, - "interpTarget": 18, + "id": "idle", + "interpDuration": 30, + "interpTarget": 30, "interpType": "evaluateBoth", "transitions": [ { - "state": "idleTalkOverlay", - "var": "positiveAcknowledgeOnDone" + "state": "WALKFWD", + "var": "isMovingForward" }, { - "state": "idleTalkOverlay", - "var": "positiveHeadNodOnDone" + "state": "WALKBWD", + "var": "isMovingBackward" }, { - "state": "idleTalkOverlay", - "var": "positiveHeadNodYesOnDone" + "state": "STRAFERIGHT", + "var": "isMovingRight" }, { - "state": "idleTalkOverlay", - "var": "positiveLongHeadNodOnDone" + "state": "STRAFELEFT", + "var": "isMovingLeft" }, { - "state": "idleTalkOverlay", - "var": "positiveThoughtfulHeadNodOnDone" + "state": "turnRight", + "var": "isTurningRight" }, { - "state": "reactionNegative", - "var": "reactionNegativeTrigger" + "state": "turnLeft", + "var": "isTurningLeft" }, { - "state": "reactionRaiseHand", - "var": "reactionRaiseHandEnabled" + "state": "fly", + "var": "isFlying" }, { - "state": "reactionApplaud", - "var": "reactionApplaudEnabled" + "state": "takeoffStand", + "var": "isTakeoffStand" }, { - "state": "reactionPoint", - "var": "reactionPointEnabled" + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "idleToWalkFwd", + "interpDuration": 8, + "interpTarget": 12, + "transitions": [ + { + "state": "WALKFWD", + "var": "idleToWalkFwdOnDone" + }, + { + "state": "idle", + "var": "isNotMoving" + }, + { + "state": "WALKBWD", + "var": "isMovingBackward" + }, + { + "state": "STRAFERIGHT", + "var": "isMovingRight" + }, + { + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" } ] }, { "easingType": "easeInOutQuad", - "id": "reactionNegative", - "interpDuration": 18, - "interpTarget": 18, + "id": "idleSettle", + "interpDuration": 12, + "interpTarget": 12, "interpType": "evaluateBoth", "transitions": [ { - "state": "reactionPositive", - "var": "reactionPositiveTrigger" + "state": "idle", + "var": "idleSettleOnDone" }, { - "state": "idleTalkOverlay", - "var": "negativeAnnoyedHeadshakeOnDone" + "state": "WALKFWD", + "var": "isMovingForward" }, { - "state": "idleTalkOverlay", - "var": "negativeThoughtfulHeadshakeOnDone" + "state": "WALKBWD", + "var": "isMovingBackward" }, { - "state": "idleTalkOverlay", - "var": "negativeDropHeadOnDone" + "state": "STRAFERIGHT", + "var": "isMovingRight" }, { - "state": "reactionRaiseHand", - "var": "reactionRaiseHandEnabled" + "state": "STRAFELEFT", + "var": "isMovingLeft" }, { - "state": "reactionApplaud", - "var": "reactionApplaudEnabled" + "state": "strafeRightHmd", + "var": "isMovingRightHmd" }, { - "state": "reactionPoint", - "var": "reactionPointEnabled" + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "WALKFWD", + "interpDuration": 10, + "interpTarget": 35, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "idleSettle", + "var": "isNotMoving" + }, + { + "state": "WALKBWD", + "var": "isMovingBackward" + }, + { + "state": "STRAFERIGHT", + "var": "isMovingRight" + }, + { + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "WALKBWD", + "interpDuration": 10, + "interpTarget": 35, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "idleSettle", + "var": "isNotMoving" + }, + { + "state": "WALKFWD", + "var": "isMovingForward" + }, + { + "state": "STRAFERIGHT", + "var": "isMovingRight" + }, + { + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "STRAFERIGHT", + "interpDuration": 8, + "interpTarget": 25, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "idleSettle", + "var": "isNotMoving" + }, + { + "state": "WALKFWD", + "var": "isMovingForward" + }, + { + "state": "WALKBWD", + "var": "isMovingBackward" + }, + { + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "STRAFELEFT", + "interpDuration": 8, + "interpTarget": 25, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "idleSettle", + "var": "isNotMoving" + }, + { + "state": "WALKFWD", + "var": "isMovingForward" + }, + { + "state": "WALKBWD", + "var": "isMovingBackward" + }, + { + "state": "STRAFERIGHT", + "var": "isMovingRight" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" } ] }, { "easingType": "easeInOutQuad", - "id": "reactionRaiseHand", - "interpDuration": 18, - "interpTarget": 18, + "id": "turnRight", + "interpDuration": 15, + "interpTarget": 15, "interpType": "evaluateBoth", "transitions": [ { - "state": "reactionNegative", - "var": "reactionNegativeTrigger" + "state": "idle", + "var": "isNotTurning" }, { - "state": "reactionPositive", - "var": "reactionPositiveTrigger" + "state": "WALKFWD", + "var": "isMovingForward" }, { - "state": "idleTalkOverlay", - "var": "reactionRaiseHandDisabled" + "state": "WALKBWD", + "var": "isMovingBackward" }, { - "state": "reactionApplaud", - "var": "reactionApplaudEnabled" + "state": "STRAFERIGHT", + "var": "isMovingRight" }, { - "state": "reactionPoint", - "var": "reactionPointEnabled" + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" } ] }, { "easingType": "easeInOutQuad", - "id": "reactionApplaud", - "interpDuration": 18, - "interpTarget": 18, + "id": "turnLeft", + "interpDuration": 15, + "interpTarget": 15, "interpType": "evaluateBoth", "transitions": [ { - "state": "reactionNegative", - "var": "reactionNegativeTrigger" + "state": "idle", + "var": "isNotTurning" }, { - "state": "reactionPositive", - "var": "reactionPositiveTrigger" + "state": "WALKFWD", + "var": "isMovingForward" }, { - "state": "reactionRaiseHand", - "var": "reactionRaiseHandEnabled" + "state": "WALKBWD", + "var": "isMovingBackward" }, { - "state": "idleTalkOverlay", - "var": "reactionApplaudDisabled" + "state": "STRAFERIGHT", + "var": "isMovingRight" }, { - "state": "reactionPoint", - "var": "reactionPointEnabled" + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "strafeRightHmd", + "interpDuration": 8, + "interpTarget": 8, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "idleSettle", + "var": "isNotMoving" + }, + { + "state": "WALKFWD", + "var": "isMovingForward" + }, + { + "state": "WALKBWD", + "var": "isMovingBackward" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "STRAFERIGHT", + "var": "isMovingRight" + }, + { + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "strafeLeftHmd", + "interpDuration": 8, + "interpTarget": 8, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "idleSettle", + "var": "isNotMoving" + }, + { + "state": "WALKFWD", + "var": "isMovingForward" + }, + { + "state": "WALKBWD", + "var": "isMovingBackward" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "STRAFERIGHT", + "var": "isMovingRight" + }, + { + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "seated", + "var": "isSeated" } ] }, { "easingType": "easeInOutQuad", - "id": "reactionPoint", - "interpDuration": 18, - "interpTarget": 18, + "id": "fly", + "interpDuration": 24, + "interpTarget": 24, "interpType": "evaluateBoth", "transitions": [ { - "state": "reactionNegative", - "var": "reactionNegativeTrigger" + "state": "idleSettle", + "var": "isNotFlying" + } + ] + }, + { + "id": "takeoffStand", + "interpDuration": 2, + "interpTarget": 2, + "transitions": [ + { + "state": "inAirStand", + "var": "isNotTakeoff" + } + ] + }, + { + "id": "TAKEOFFRUN", + "interpDuration": 2, + "interpTarget": 2, + "transitions": [ + { + "state": "INAIRRUN", + "var": "isNotTakeoff" + } + ] + }, + { + "id": "inAirStand", + "interpDuration": 3, + "interpTarget": 3, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "landStandImpact", + "var": "isNotInAir" + } + ] + }, + { + "id": "INAIRRUN", + "interpDuration": 3, + "interpTarget": 3, + "interpType": "snapshotPrev", + "transitions": [ + { + "state": "WALKFWD", + "var": "isNotInAir" + } + ] + }, + { + "id": "landStandImpact", + "interpDuration": 1, + "interpTarget": 1, + "transitions": [ + { + "state": "fly", + "var": "isFlying" }, { - "state": "reactionPositive", - "var": "reactionPositiveTrigger" + "state": "takeoffStand", + "var": "isTakeoffStand" }, { - "state": "reactionRaiseHand", - "var": "reactionRaiseHandEnabled" + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" }, { - "state": "reactionApplaud", - "var": "reactionApplaudEnabled" + "state": "landStand", + "var": "landStandImpactOnDone" + } + ] + }, + { + "id": "landStand", + "interpDuration": 1, + "interpTarget": 1, + "transitions": [ + { + "state": "WALKFWD", + "var": "isMovingForward" }, { - "state": "idleTalkOverlay", - "var": "reactionPointDisabled" + "state": "WALKBWD", + "var": "isMovingBackward" + }, + { + "state": "STRAFERIGHT", + "var": "isMovingRight" + }, + { + "state": "STRAFELEFT", + "var": "isMovingLeft" + }, + { + "state": "turnRight", + "var": "isTurningRight" + }, + { + "state": "turnLeft", + "var": "isTurningLeft" + }, + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "inAirStand", + "var": "isInAirStand" + }, + { + "state": "INAIRRUN", + "var": "isInAirRun" + }, + { + "state": "idle", + "var": "landStandOnDone" + }, + { + "state": "strafeRightHmd", + "var": "isMovingRightHmd" + }, + { + "state": "strafeLeftHmd", + "var": "isMovingLeftHmd" + }, + { + "state": "seated", + "var": "isSeated" + } + ] + }, + { + "id": "LANDRUN", + "interpDuration": 2, + "interpTarget": 2, + "transitions": [ + { + "state": "fly", + "var": "isFlying" + }, + { + "state": "takeoffStand", + "var": "isTakeoffStand" + }, + { + "state": "TAKEOFFRUN", + "var": "isTakeoffRun" + }, + { + "state": "WALKFWD", + "var": "landRunOnDone" } ] } ] }, - "id": "idle", + "id": "mainStateMachine", "type": "stateMachine" }, { @@ -3834,1668 +5505,175 @@ "children": [ ], "data": { - "endFrame": 40, + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", + "endFrame": 11, "loopFlag": true, - "startFrame": 1, + "startFrame": 11, "timeScale": 1, - "url": "qrc:///avatar/animations/walk_short_fwd.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "walkFwdShort_c", + "id": "lookLeft", "type": "clip" }, { "children": [ ], "data": { + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", "endFrame": 30, "loopFlag": true, - "startFrame": 1, + "startFrame": 30, "timeScale": 1, - "url": "qrc:///avatar/animations/walk_fwd.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "walkFwdNormal_c", + "id": "lookRight", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 26, + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", + "endFrame": 50, "loopFlag": true, - "startFrame": 1, + "startFrame": 50, "timeScale": 1, - "url": "qrc:///avatar/animations/walk_fwd_fast.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "walkFwdFast_c", + "id": "lookUp", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 18, + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", + "endFrame": 70, "loopFlag": true, - "startFrame": 1, + "startFrame": 70, "timeScale": 1, - "url": "qrc:///avatar/animations/jog_fwd.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "walkFwdJog_c", + "id": "lookDown", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 19, + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", + "endFrame": 97, "loopFlag": true, - "startFrame": 1, + "startFrame": 97, "timeScale": 1, - "url": "qrc:///avatar/animations/run_fast_fwd.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "walkFwdRun_c", - "type": "clip" - } - ], - "data": { - "alpha": 0, - "alphaVar": "moveForwardAlpha", - "characteristicSpeeds": [ - 0.5, - 1.8, - 2.5, - 3.55, - 5.675 - ], - "desiredSpeed": 1.4, - "desiredSpeedVar": "moveForwardSpeed" - }, - "id": "WALKFWD", - "type": "blendLinearMove" - }, - { - "children": [ - ], - "data": { - "endFrame": 13, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/idle_to_walk.fbx" - }, - "id": "idleToWalkFwd", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 59, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/settle_to_idle_small.fbx" - }, - "id": "idleSettle", - "type": "clip" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 37, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/walk_bwd.fbx" - }, - "id": "walkBwdShort_c", + "id": "lookUpLeft", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 28, + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", + "endFrame": 110, "loopFlag": true, - "startFrame": 1, + "startFrame": 110, "timeScale": 1, - "url": "qrc:///avatar/animations/walk_bwd_fast.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "walkBwdFast_c", + "id": "lookUpRight", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 20, + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", + "endFrame": 130, "loopFlag": true, - "startFrame": 1, + "startFrame": 130, "timeScale": 1, - "url": "qrc:///avatar/animations/jog_bwd.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "jogBwd_c", + "id": "lookDownLeft", "type": "clip" }, { "children": [ ], "data": { - "endFrame": 14, + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", + "endFrame": 150, "loopFlag": true, - "startFrame": 1, + "startFrame": 150, "timeScale": 1, - "url": "qrc:///avatar/animations/run_bwd.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "runBwd_c", - "type": "clip" - } - ], - "data": { - "alpha": 0, - "alphaVar": "moveBackwardAlpha", - "characteristicSpeeds": [ - 0.6, - 1.6, - 2.8, - 4.5 - ], - "desiredSpeed": 1.4, - "desiredSpeedVar": "moveBackwardSpeed" - }, - "id": "WALKBWD", - "type": "blendLinearMove" - }, - { - "children": [ - ], - "data": { - "endFrame": 33, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/turn_left.fbx" - }, - "id": "turnLeft", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 31, - "loopFlag": true, - "mirrorFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/turn_right.fbx" - }, - "id": "turnRight", - "type": "clip" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 30, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_short_left.fbx" - }, - "id": "strafeLeftShortStep_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 20, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_left.fbx" - }, - "id": "strafeLeftStep_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 35, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/walk_left.fbx" - }, - "id": "strafeLeftWalk_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 21, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/walk_left_fast.fbx" - }, - "id": "strafeLeftWalkFast_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 20, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/jog_left.fbx" - }, - "id": "strafeLeftJog_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 19, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/run_fast_left.fbx" - }, - "id": "strafeLeftRun_c", - "type": "clip" - } - ], - "data": { - "alpha": 0, - "alphaVar": "moveLateralAlpha", - "characteristicSpeeds": [ - 0.1, - 0.5, - 1, - 2.55, - 3.35, - 5.25 - ], - "desiredSpeed": 1.4, - "desiredSpeedVar": "moveLateralSpeed" - }, - "id": "STRAFELEFT", - "type": "blendLinearMove" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 30, - "loopFlag": true, - "mirrorFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_short_left.fbx" - }, - "id": "strafeRightShortStep_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 20, - "loopFlag": true, - "mirrorFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_left.fbx" - }, - "id": "strafeRightStep_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 35, - "loopFlag": true, - "mirrorFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/walk_right.fbx" - }, - "id": "strafeRightWalk_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 21, - "loopFlag": true, - "mirrorFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/walk_right_fast.fbx" - }, - "id": "strafeRightFast_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 20, - "loopFlag": true, - "mirrorFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/jog_right.fbx" - }, - "id": "strafeRightJog_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 19, - "loopFlag": true, - "mirrorFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/run_fast_right.fbx" - }, - "id": "strafeRightRun_c", - "type": "clip" - } - ], - "data": { - "alpha": 0, - "alphaVar": "moveLateralAlpha", - "characteristicSpeeds": [ - 0.1, - 0.5, - 1, - 2.55, - 3.4, - 5.25 - ], - "desiredSpeed": 1.4, - "desiredSpeedVar": "moveLateralSpeed" - }, - "id": "STRAFERIGHT", - "type": "blendLinearMove" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 30, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_short_left.fbx" - }, - "id": "stepLeftShort_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 20, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_left.fbx" - }, - "id": "stepLeft_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 16, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_left_fast.fbx" - }, - "id": "strafeLeftAnim_c", - "type": "clip" - } - ], - "data": { - "alpha": 0, - "alphaVar": "moveLateralAlpha", - "characteristicSpeeds": [ - 0, - 0.5, - 2.5 - ], - "desiredSpeed": 1.4, - "desiredSpeedVar": "moveLateralSpeed" - }, - "id": "strafeLeftHmd", - "type": "blendLinearMove" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 30, - "loopFlag": true, - "mirrorFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_short_left.fbx" - }, - "id": "stepRightShort_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 20, - "loopFlag": true, - "mirrorFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_left.fbx" - }, - "id": "stepRight_c", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 16, - "loopFlag": true, - "mirrorFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/side_step_left_fast.fbx" - }, - "id": "strafeRightAnim_c", - "type": "clip" - } - ], - "data": { - "alpha": 0, - "alphaVar": "moveLateralAlpha", - "characteristicSpeeds": [ - 0, - 0.5, - 2.5 - ], - "desiredSpeed": 1.4, - "desiredSpeedVar": "moveLateralSpeed" - }, - "id": "strafeRightHmd", - "type": "blendLinearMove" - }, - { - "children": [ - ], - "data": { - "endFrame": 79, - "loopFlag": true, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/fly.fbx" - }, - "id": "fly", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 16, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_standing_launch_all.fbx" - }, - "id": "takeoffStand", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 15, - "loopFlag": false, - "startFrame": 4, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" - }, - "id": "TAKEOFFRUN", - "type": "clip" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 1, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_standing_apex_all.fbx" - }, - "id": "inAirStandPreApex", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 2, - "loopFlag": false, - "startFrame": 2, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_standing_apex_all.fbx" - }, - "id": "inAirStandApex", + "id": "lookDownRight", "type": "clip" }, { "children": [ ], "data": { + "baseFrame": 1, + "baseURL": "qrc:///avatar/animations/idle_aimoffsets.fbx", + "blendType": "addAbsolute", "endFrame": 3, - "loopFlag": false, + "loopFlag": true, "startFrame": 3, "timeScale": 1, - "url": "qrc:///avatar/animations/jump_standing_apex_all.fbx" + "url": "qrc:///avatar/animations/idle_aimoffsets.fbx" }, - "id": "inAirStandPostApex", + "id": "lookCenter", "type": "clip" } ], "data": { - "alpha": 0, - "alphaVar": "inAirAlpha" + "alpha": [ + 0, + 0, + 0 + ], + "alphaVar": "lookAroundAlpha", + "centerId": "lookCenter", + "downId": "lookDown", + "downLeftId": "lookDownLeft", + "downRightId": "lookDownRight", + "leftId": "lookLeft", + "rightId": "lookRight", + "upId": "lookUp", + "upLeftId": "lookUpLeft", + "upRightId": "lookUpRight" }, - "id": "inAirStand", - "type": "blendLinear" - }, - { - "children": [ - { - "children": [ - ], - "data": { - "endFrame": 16, - "loopFlag": false, - "startFrame": 16, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" - }, - "id": "inAirRunPreApex", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 22, - "loopFlag": false, - "startFrame": 22, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" - }, - "id": "inAirRunApex", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 33, - "loopFlag": false, - "startFrame": 33, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" - }, - "id": "inAirRunPostApex", - "type": "clip" - } - ], - "data": { - "alpha": 0, - "alphaVar": "inAirAlpha" - }, - "id": "INAIRRUN", - "type": "blendLinear" - }, - { - "children": [ - ], - "data": { - "endFrame": 6, - "loopFlag": false, - "startFrame": 1, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_standing_land_settle_all.fbx" - }, - "id": "landStandImpact", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 68, - "loopFlag": false, - "startFrame": 6, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_standing_land_settle_all.fbx" - }, - "id": "landStand", - "type": "clip" - }, - { - "children": [ - ], - "data": { - "endFrame": 40, - "loopFlag": false, - "startFrame": 29, - "timeScale": 1, - "url": "qrc:///avatar/animations/jump_running_launch_land_all.fbx" - }, - "id": "LANDRUN", - "type": "clip" + "id": "lookAround", + "type": "blendDirectional" } ], "data": { - "currentState": "idle", - "outputJoints": [ - "LeftFoot", - "RightFoot" - ], - "states": [ - { - "easingType": "easeInOutQuad", - "id": "seated", - "interpDuration": 6, - "interpTarget": 6, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "idle", - "var": "isNotMoving" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "idle", - "var": "isNotSeated" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idle", - "interpDuration": 30, - "interpTarget": 30, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "idleToWalkFwd", - "interpDuration": 8, - "interpTarget": 12, - "transitions": [ - { - "state": "WALKFWD", - "var": "idleToWalkFwdOnDone" - }, - { - "state": "idle", - "var": "isNotMoving" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "idleSettle", - "interpDuration": 12, - "interpTarget": 12, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "idle", - "var": "idleSettleOnDone" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "WALKFWD", - "interpDuration": 10, - "interpTarget": 35, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "idleSettle", - "var": "isNotMoving" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "WALKBWD", - "interpDuration": 10, - "interpTarget": 35, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "idleSettle", - "var": "isNotMoving" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "STRAFERIGHT", - "interpDuration": 8, - "interpTarget": 25, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "idleSettle", - "var": "isNotMoving" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "STRAFELEFT", - "interpDuration": 8, - "interpTarget": 25, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "idleSettle", - "var": "isNotMoving" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "turnRight", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "idle", - "var": "isNotTurning" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "turnLeft", - "interpDuration": 15, - "interpTarget": 15, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "idle", - "var": "isNotTurning" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "strafeRightHmd", - "interpDuration": 8, - "interpTarget": 8, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "idleSettle", - "var": "isNotMoving" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "strafeLeftHmd", - "interpDuration": 8, - "interpTarget": 8, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "idleSettle", - "var": "isNotMoving" - }, - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "easingType": "easeInOutQuad", - "id": "fly", - "interpDuration": 24, - "interpTarget": 24, - "interpType": "evaluateBoth", - "transitions": [ - { - "state": "idleSettle", - "var": "isNotFlying" - } - ] - }, - { - "id": "takeoffStand", - "interpDuration": 2, - "interpTarget": 2, - "transitions": [ - { - "state": "inAirStand", - "var": "isNotTakeoff" - } - ] - }, - { - "id": "TAKEOFFRUN", - "interpDuration": 2, - "interpTarget": 2, - "transitions": [ - { - "state": "INAIRRUN", - "var": "isNotTakeoff" - } - ] - }, - { - "id": "inAirStand", - "interpDuration": 3, - "interpTarget": 3, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "landStandImpact", - "var": "isNotInAir" - } - ] - }, - { - "id": "INAIRRUN", - "interpDuration": 3, - "interpTarget": 3, - "interpType": "snapshotPrev", - "transitions": [ - { - "state": "WALKFWD", - "var": "isNotInAir" - } - ] - }, - { - "id": "landStandImpact", - "interpDuration": 1, - "interpTarget": 1, - "transitions": [ - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "landStand", - "var": "landStandImpactOnDone" - } - ] - }, - { - "id": "landStand", - "interpDuration": 1, - "interpTarget": 1, - "transitions": [ - { - "state": "WALKFWD", - "var": "isMovingForward" - }, - { - "state": "WALKBWD", - "var": "isMovingBackward" - }, - { - "state": "STRAFERIGHT", - "var": "isMovingRight" - }, - { - "state": "STRAFELEFT", - "var": "isMovingLeft" - }, - { - "state": "turnRight", - "var": "isTurningRight" - }, - { - "state": "turnLeft", - "var": "isTurningLeft" - }, - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "inAirStand", - "var": "isInAirStand" - }, - { - "state": "INAIRRUN", - "var": "isInAirRun" - }, - { - "state": "idle", - "var": "landStandOnDone" - }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, - { - "state": "seated", - "var": "isSeated" - } - ] - }, - { - "id": "LANDRUN", - "interpDuration": 2, - "interpTarget": 2, - "transitions": [ - { - "state": "fly", - "var": "isFlying" - }, - { - "state": "takeoffStand", - "var": "isTakeoffStand" - }, - { - "state": "TAKEOFFRUN", - "var": "isTakeoffRun" - }, - { - "state": "WALKFWD", - "var": "landRunOnDone" - } - ] - } - ] + "alpha": 0, + "alphaVar": "additiveBlendAlpha", + "blendType": "addAbsolute" }, - "id": "mainStateMachine", - "type": "stateMachine" + "id": "additiveBlend", + "type": "blendLinear" } ], "data": { @@ -5695,6 +5873,7 @@ }, "id": "userAnimStateMachine", "type": "stateMachine" + }, "version": "1.1" -} +} \ No newline at end of file diff --git a/interface/resources/controllers/keyboardMouse.json b/interface/resources/controllers/keyboardMouse.json index 9b3c711c63..ff02142891 100644 --- a/interface/resources/controllers/keyboardMouse.json +++ b/interface/resources/controllers/keyboardMouse.json @@ -3,8 +3,8 @@ "channels": [ { "from": "Keyboard.A", "when": ["Keyboard.RightMouseButton", "!Keyboard.Control"], "to": "Actions.LATERAL_LEFT" }, { "from": "Keyboard.D", "when": ["Keyboard.RightMouseButton", "!Keyboard.Control"], "to": "Actions.LATERAL_RIGHT" }, - { "from": "Keyboard.E", "when": "!Keyboard.Control", "to": "Actions.LATERAL_RIGHT" }, - { "from": "Keyboard.Q", "when": "!Keyboard.Control", "to": "Actions.LATERAL_LEFT" }, + { "from": "Keyboard.E", "when": ["!Application.CameraSelfie", "!Application.CameraLookAt", "!Keyboard.Control"], "to": "Actions.LATERAL_RIGHT" }, + { "from": "Keyboard.Q", "when": ["!Application.CameraSelfie"," !Application.CameraLookAt", "!Keyboard.Control"], "to": "Actions.LATERAL_LEFT" }, { "from": "Keyboard.T", "when": "!Keyboard.Control", "to": "Actions.TogglePushToTalk" }, { "comment" : "Mouse turn need to be small continuous increments", @@ -39,7 +39,6 @@ ] }, - { "from": { "makeAxis" : [ ["Keyboard.Left" ], ["Keyboard.Right"] @@ -85,6 +84,24 @@ "when": ["Application.CameraThirdPerson", "!Keyboard.Shift"], "to": "Actions.Yaw" }, + + { "from": { "makeAxis" : [ + ["Keyboard.Left"], + ["Keyboard.Right"] + ] + }, + "when": ["Application.CameraLookAt", "!Keyboard.Shift"], + "to": "Actions.Yaw" + }, + + { "from": { "makeAxis" : [ + ["Keyboard.Left"], + ["Keyboard.Right"] + ] + }, + "when": ["Application.CameraSelfie", "!Keyboard.Shift"], + "to": "Actions.Yaw" + }, { "from": { "makeAxis" : [ ["Keyboard.A"], @@ -104,6 +121,24 @@ "to": "Actions.Yaw" }, + { "from": { "makeAxis" : [ + ["Keyboard.Q"], + ["Keyboard.E"] + ] + }, + "when": ["Application.CameraLookAt", "!Keyboard.Control"], + "to": "Actions.Yaw" + }, + + { "from": { "makeAxis" : [ + ["Keyboard.E"], + ["Keyboard.Q"] + ] + }, + "when": ["Application.CameraSelfie", "!Keyboard.Control"], + "to": "Actions.Yaw" + }, + { "from": { "makeAxis" : [ ["Keyboard.TouchpadLeft"], ["Keyboard.TouchpadRight"] @@ -122,6 +157,24 @@ "to": "Actions.Yaw" }, + { "from": { "makeAxis" : [ + ["Keyboard.TouchpadLeft"], + ["Keyboard.TouchpadRight"] + ] + }, + "when": "Application.CameraLookAt", + "to": "Actions.Yaw" + }, + + { "from": { "makeAxis" : [ + ["Keyboard.TouchpadLeft"], + ["Keyboard.TouchpadRight"] + ] + }, + "when": "Application.CameraSelfie", + "to": "Actions.Yaw" + }, + { "from": { "makeAxis" : ["Keyboard.MouseMoveLeft", "Keyboard.MouseMoveRight"] }, "when": "Keyboard.RightMouseButton", "to": "Actions.DeltaYaw", @@ -132,7 +185,7 @@ }, { "from": { "makeAxis" : ["Keyboard.MouseMoveUp", "Keyboard.MouseMoveDown"] }, - "when": "Keyboard.RightMouseButton", + "when": ["!Application.CameraSelfie", "!Application.CameraLookAt", "Keyboard.RightMouseButton"], "to": "Actions.DeltaPitch", "filters": [ @@ -140,16 +193,44 @@ ] }, - { "from": "Keyboard.W", "when": "!Keyboard.Control", "to": "Actions.LONGITUDINAL_FORWARD" }, - { "from": "Keyboard.S", "when": "!Keyboard.Control", "to": "Actions.LONGITUDINAL_BACKWARD" }, + { "from": { "makeAxis" : ["Keyboard.MouseMoveUp", "Keyboard.MouseMoveDown"] }, + "when": ["Application.CameraLookAt", "Keyboard.RightMouseButton"], + "to": "Actions.DeltaPitch", + "filters": + [ + { "type": "scale", "scale": 0.3 } + ] + }, + + { "from": { "makeAxis" : ["Keyboard.MouseMoveDown", "Keyboard.MouseMoveUp"] }, + "when": ["Application.CameraSelfie", "Keyboard.RightMouseButton"], + "to": "Actions.DeltaPitch", + "filters": + [ + { "type": "scale", "scale": 0.3 } + ] + }, + + { "from": "Keyboard.W", "when": ["!Application.CameraSelfie", "!Keyboard.Control"], "to": "Actions.LONGITUDINAL_FORWARD" }, + { "from": "Keyboard.S", "when": ["!Application.CameraSelfie", "!Keyboard.Control"], "to": "Actions.LONGITUDINAL_BACKWARD" }, + { "from": "Keyboard.S", "when": ["Application.CameraSelfie", "!Keyboard.Control"], "to": "Actions.LONGITUDINAL_FORWARD" }, + { "from": "Keyboard.W", "when": ["Application.CameraSelfie", "!Keyboard.Control"], "to": "Actions.LONGITUDINAL_BACKWARD" }, + { "from": "Keyboard.A", "when": "Application.CameraLookAt", "to": "Actions.LATERAL_LEFT" }, + { "from": "Keyboard.D", "when": "Application.CameraLookAt", "to": "Actions.LATERAL_RIGHT" }, + { "from": "Keyboard.A", "when": "Application.CameraSelfie", "to": "Actions.LATERAL_RIGHT" }, + { "from": "Keyboard.D", "when": "Application.CameraSelfie", "to": "Actions.LATERAL_LEFT" }, { "from": "Keyboard.Shift", "when": ["!Keyboard.Left", "!Keyboard.Right"], "to": "Actions.SPRINT" }, { "from": "Keyboard.C", "when": "!Keyboard.Control", "to": "Actions.VERTICAL_DOWN" }, { "from": "Keyboard.Left", "when": "Keyboard.Shift", "to": "Actions.LATERAL_LEFT" }, { "from": "Keyboard.Right", "when": "Keyboard.Shift", "to": "Actions.LATERAL_RIGHT" }, { "from": "Keyboard.Up", "when": "Application.CameraFirstPerson", "to": "Actions.LONGITUDINAL_FORWARD" }, { "from": "Keyboard.Up", "when": "Application.CameraThirdPerson", "to": "Actions.LONGITUDINAL_FORWARD" }, + { "from": "Keyboard.Up", "when": "Application.CameraLookAt", "to": "Actions.LONGITUDINAL_FORWARD" }, + { "from": "Keyboard.Up", "when": "Application.CameraSelfie", "to": "Actions.LONGITUDINAL_BACKWARD" }, { "from": "Keyboard.Down", "when": "Application.CameraFirstPerson", "to": "Actions.LONGITUDINAL_BACKWARD" }, { "from": "Keyboard.Down", "when": "Application.CameraThirdPerson", "to": "Actions.LONGITUDINAL_BACKWARD" }, + { "from": "Keyboard.Down", "when": "Application.CameraLookAt", "to": "Actions.LONGITUDINAL_BACKWARD" }, + { "from": "Keyboard.Down", "when": "Application.CameraSelfie", "to": "Actions.LONGITUDINAL_FORWARD" }, { "from": "Keyboard.PgDown", "to": "Actions.VERTICAL_DOWN" }, { "from": "Keyboard.PgUp", "to": "Actions.VERTICAL_UP" }, diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index acac514a18..0863a999bd 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -709,6 +709,8 @@ static const QString STATE_CAMERA_FIRST_PERSON = "CameraFirstPerson"; static const QString STATE_CAMERA_THIRD_PERSON = "CameraThirdPerson"; static const QString STATE_CAMERA_ENTITY = "CameraEntity"; static const QString STATE_CAMERA_INDEPENDENT = "CameraIndependent"; +static const QString STATE_CAMERA_LOOK_AT = "CameraLookAt"; +static const QString STATE_CAMERA_SELFIE = "CameraSelfie"; static const QString STATE_SNAP_TURN = "SnapTurn"; static const QString STATE_ADVANCED_MOVEMENT_CONTROLS = "AdvancedMovement"; static const QString STATE_GROUNDED = "Grounded"; @@ -924,7 +926,7 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { DependencyManager::set(); DependencyManager::set(); controller::StateController::setStateVariables({ { STATE_IN_HMD, STATE_CAMERA_FULL_SCREEN_MIRROR, - STATE_CAMERA_FIRST_PERSON, STATE_CAMERA_THIRD_PERSON, STATE_CAMERA_ENTITY, STATE_CAMERA_INDEPENDENT, + STATE_CAMERA_FIRST_PERSON, STATE_CAMERA_THIRD_PERSON, STATE_CAMERA_ENTITY, STATE_CAMERA_INDEPENDENT, STATE_CAMERA_LOOK_AT, STATE_CAMERA_SELFIE, STATE_SNAP_TURN, STATE_ADVANCED_MOVEMENT_CONTROLS, STATE_GROUNDED, STATE_NAV_FOCUSED, STATE_PLATFORM_WINDOWS, STATE_PLATFORM_MAC, STATE_PLATFORM_ANDROID, STATE_LEFT_HAND_DOMINANT, STATE_RIGHT_HAND_DOMINANT, STATE_STRAFE_ENABLED } }); DependencyManager::set(); @@ -1874,6 +1876,12 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo _applicationStateDevice->setInputVariant(STATE_CAMERA_THIRD_PERSON, []() -> float { return qApp->getCamera().getMode() == CAMERA_MODE_THIRD_PERSON ? 1 : 0; }); + _applicationStateDevice->setInputVariant(STATE_CAMERA_LOOK_AT, []() -> float { + return qApp->getCamera().getMode() == CAMERA_MODE_LOOK_AT ? 1 : 0; + }); + _applicationStateDevice->setInputVariant(STATE_CAMERA_SELFIE, []() -> float { + return qApp->getCamera().getMode() == CAMERA_MODE_SELFIE ? 1 : 0; + }); _applicationStateDevice->setInputVariant(STATE_CAMERA_ENTITY, []() -> float { return qApp->getCamera().getMode() == CAMERA_MODE_ENTITY ? 1 : 0; }); @@ -3586,7 +3594,8 @@ void Application::updateCamera(RenderArgs& renderArgs, float deltaTime) { // Always use the default eye position, not the actual head eye position. // Using the latter will cause the camera to wobble with idle animations, // or with changes from the face tracker - if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON) { + CameraMode mode = _myCamera.getMode(); + if (mode == CAMERA_MODE_FIRST_PERSON) { _thirdPersonHMDCameraBoomValid= false; if (isHMDMode()) { mat4 camMat = myAvatar->getSensorToWorldMatrix() * myAvatar->getHMDSensorMatrix(); @@ -3597,10 +3606,8 @@ void Application::updateCamera(RenderArgs& renderArgs, float deltaTime) { _myCamera.setPosition(myAvatar->getDefaultEyePosition()); _myCamera.setOrientation(myAvatar->getMyHead()->getHeadOrientation()); } - } - else if (_myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) { + } else if (mode == CAMERA_MODE_THIRD_PERSON || mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_SELFIE) { if (isHMDMode()) { - if (!_thirdPersonHMDCameraBoomValid) { const glm::vec3 CAMERA_OFFSET = glm::vec3(0.0f, 0.0f, 0.7f); _thirdPersonHMDCameraBoom = cancelOutRollAndPitch(myAvatar->getHMDSensorOrientation()) * CAMERA_OFFSET; @@ -3615,22 +3622,28 @@ void Application::updateCamera(RenderArgs& renderArgs, float deltaTime) { _myCamera.setOrientation(glm::normalize(glmExtractRotation(worldCameraMat))); _myCamera.setPosition(extractTranslation(worldCameraMat)); - } - else { + } else { _thirdPersonHMDCameraBoomValid = false; - - _myCamera.setOrientation(myAvatar->getHead()->getOrientation()); - if (isOptionChecked(MenuOption::CenterPlayerInView)) { + if (mode == CAMERA_MODE_THIRD_PERSON) { + _myCamera.setOrientation(myAvatar->getHead()->getOrientation()); + if (isOptionChecked(MenuOption::CenterPlayerInView)) { + _myCamera.setPosition(myAvatar->getDefaultEyePosition() + + _myCamera.getOrientation() * boomOffset); + } else { + _myCamera.setPosition(myAvatar->getDefaultEyePosition() + + myAvatar->getWorldOrientation() * boomOffset); + } + } else { + glm::quat lookAtRotation = myAvatar->getLookAtRotation(); + if (mode == CAMERA_MODE_SELFIE) { + lookAtRotation = lookAtRotation * glm::angleAxis(PI, myAvatar->getWorldOrientation() * Vectors::UP); + } _myCamera.setPosition(myAvatar->getDefaultEyePosition() - + _myCamera.getOrientation() * boomOffset); - } - else { - _myCamera.setPosition(myAvatar->getDefaultEyePosition() - + myAvatar->getWorldOrientation() * boomOffset); + + lookAtRotation * boomOffset); + _myCamera.lookAt(myAvatar->getDefaultEyePosition()); } } - } - else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) { + } else if (mode == CAMERA_MODE_MIRROR) { _thirdPersonHMDCameraBoomValid= false; if (isHMDMode()) { @@ -3668,8 +3681,7 @@ void Application::updateCamera(RenderArgs& renderArgs, float deltaTime) { glm::vec3(0.0f, 0.0f, -1.0f) * myAvatar->getBoomLength() * _scaleMirror); } renderArgs._renderMode = RenderArgs::MIRROR_RENDER_MODE; - } - else if (_myCamera.getMode() == CAMERA_MODE_ENTITY) { + } else if (mode == CAMERA_MODE_ENTITY) { _thirdPersonHMDCameraBoomValid= false; EntityItemPointer cameraEntity = _myCamera.getCameraEntityPointer(); if (cameraEntity != nullptr) { @@ -4387,12 +4399,12 @@ void Application::keyPressEvent(QKeyEvent* event) { } case Qt::Key_2: { Menu* menu = Menu::getInstance(); - menu->triggerOption(MenuOption::FullscreenMirror); + menu->triggerOption(MenuOption::SelfieCamera); break; } case Qt::Key_3: { Menu* menu = Menu::getInstance(); - menu->triggerOption(MenuOption::ThirdPerson); + menu->triggerOption(MenuOption::LookAtCamera); break; } case Qt::Key_4: @@ -5484,7 +5496,7 @@ void Application::loadSettings() { // dictated that we should be in first person Menu::getInstance()->setIsOptionChecked(MenuOption::FirstPerson, isFirstPerson); Menu::getInstance()->setIsOptionChecked(MenuOption::ThirdPerson, !isFirstPerson); - _myCamera.setMode((isFirstPerson) ? CAMERA_MODE_FIRST_PERSON : CAMERA_MODE_THIRD_PERSON); + _myCamera.setMode((isFirstPerson) ? CAMERA_MODE_FIRST_PERSON : CAMERA_MODE_LOOK_AT); cameraMenuChanged(); auto inputs = pluginManager->getInputPlugins(); @@ -5842,11 +5854,16 @@ void Application::cycleCamera() { } else if (menu->isOptionChecked(MenuOption::FirstPerson)) { menu->setIsOptionChecked(MenuOption::FirstPerson, false); - menu->setIsOptionChecked(MenuOption::ThirdPerson, true); + menu->setIsOptionChecked(MenuOption::LookAtCamera, true); - } else if (menu->isOptionChecked(MenuOption::ThirdPerson)) { + } else if (menu->isOptionChecked(MenuOption::LookAtCamera)) { - menu->setIsOptionChecked(MenuOption::ThirdPerson, false); + menu->setIsOptionChecked(MenuOption::LookAtCamera, false); + menu->setIsOptionChecked(MenuOption::SelfieCamera, true); + + } else if (menu->isOptionChecked(MenuOption::SelfieCamera)) { + + menu->setIsOptionChecked(MenuOption::SelfieCamera, false); menu->setIsOptionChecked(MenuOption::FullscreenMirror, true); } @@ -5858,11 +5875,11 @@ void Application::cameraModeChanged() { case CAMERA_MODE_FIRST_PERSON: Menu::getInstance()->setIsOptionChecked(MenuOption::FirstPerson, true); break; - case CAMERA_MODE_THIRD_PERSON: - Menu::getInstance()->setIsOptionChecked(MenuOption::ThirdPerson, true); + case CAMERA_MODE_LOOK_AT: + Menu::getInstance()->setIsOptionChecked(MenuOption::LookAtCamera, true); break; - case CAMERA_MODE_MIRROR: - Menu::getInstance()->setIsOptionChecked(MenuOption::FullscreenMirror, true); + case CAMERA_MODE_SELFIE: + Menu::getInstance()->setIsOptionChecked(MenuOption::SelfieCamera, true); break; default: // we don't have menu items for the others, so just leave it alone. @@ -5878,32 +5895,32 @@ void Application::changeViewAsNeeded(float boomLength) { if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON && boomLengthGreaterThanMinimum) { Menu::getInstance()->setIsOptionChecked(MenuOption::FirstPerson, false); - Menu::getInstance()->setIsOptionChecked(MenuOption::ThirdPerson, true); + Menu::getInstance()->setIsOptionChecked(MenuOption::LookAtCamera, true); cameraMenuChanged(); - } else if (_myCamera.getMode() == CAMERA_MODE_THIRD_PERSON && !boomLengthGreaterThanMinimum) { + } else if (_myCamera.getMode() == CAMERA_MODE_LOOK_AT && !boomLengthGreaterThanMinimum) { Menu::getInstance()->setIsOptionChecked(MenuOption::FirstPerson, true); - Menu::getInstance()->setIsOptionChecked(MenuOption::ThirdPerson, false); + Menu::getInstance()->setIsOptionChecked(MenuOption::LookAtCamera, false); cameraMenuChanged(); } } void Application::cameraMenuChanged() { auto menu = Menu::getInstance(); - if (menu->isOptionChecked(MenuOption::FullscreenMirror)) { - if (!isHMDMode() && _myCamera.getMode() != CAMERA_MODE_MIRROR) { - _mirrorYawOffset = 0.0f; - _myCamera.setMode(CAMERA_MODE_MIRROR); - getMyAvatar()->reset(false, false, false); // to reset any active MyAvatar::FollowHelpers - getMyAvatar()->setBoomLength(MyAvatar::ZOOM_DEFAULT); - } - } else if (menu->isOptionChecked(MenuOption::FirstPerson)) { + if (menu->isOptionChecked(MenuOption::FirstPerson)) { if (_myCamera.getMode() != CAMERA_MODE_FIRST_PERSON) { _myCamera.setMode(CAMERA_MODE_FIRST_PERSON); getMyAvatar()->setBoomLength(MyAvatar::ZOOM_MIN); } - } else if (menu->isOptionChecked(MenuOption::ThirdPerson)) { - if (_myCamera.getMode() != CAMERA_MODE_THIRD_PERSON) { - _myCamera.setMode(CAMERA_MODE_THIRD_PERSON); + } else if (menu->isOptionChecked(MenuOption::LookAtCamera)) { + if (_myCamera.getMode() != CAMERA_MODE_LOOK_AT) { + _myCamera.setMode(CAMERA_MODE_LOOK_AT); + if (getMyAvatar()->getBoomLength() == MyAvatar::ZOOM_MIN) { + getMyAvatar()->setBoomLength(MyAvatar::ZOOM_DEFAULT); + } + } + } else if (menu->isOptionChecked(MenuOption::SelfieCamera)) { + if (_myCamera.getMode() != CAMERA_MODE_SELFIE) { + _myCamera.setMode(CAMERA_MODE_SELFIE); if (getMyAvatar()->getBoomLength() == MyAvatar::ZOOM_MIN) { getMyAvatar()->setBoomLength(MyAvatar::ZOOM_DEFAULT); } @@ -8993,9 +9010,9 @@ void Application::setDisplayPlugin(DisplayPluginPointer newDisplayPlugin) { cameraMenuChanged(); } - // Remove the mirror camera option from menu if in HMD mode - auto mirrorAction = menu->getActionForOption(MenuOption::FullscreenMirror); - mirrorAction->setVisible(!isHmd); + // Remove the selfie camera options from menu if in HMD mode + auto selfieAction = menu->getActionForOption(MenuOption::SelfieCamera); + selfieAction->setVisible(!isHmd); } Q_ASSERT_X(_displayPlugin, "Application::updateDisplayMode", "could not find an activated display plugin"); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 0b1cb789f1..89fec3c812 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -177,19 +177,19 @@ Menu::Menu() { firstPersonAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup)); - // View > Third Person - auto thirdPersonAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash( - viewMenu, MenuOption::ThirdPerson, 0, + // View > Look At + auto lookAtAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash( + viewMenu, MenuOption::LookAtCamera, 0, false, qApp, SLOT(cameraMenuChanged()))); - thirdPersonAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup)); + lookAtAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup)); - // View > Mirror - auto viewMirrorAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash( - viewMenu, MenuOption::FullscreenMirror, 0, - false, qApp, SLOT(cameraMenuChanged()))); + // View > Selfie + auto selfieAction = cameraModeGroup->addAction(addCheckableActionToQMenuAndActionHash( + viewMenu, MenuOption::SelfieCamera, 0, + false, qApp, SLOT(cameraMenuChanged()))); - viewMirrorAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup)); + selfieAction->setProperty(EXCLUSION_GROUP_KEY, QVariant::fromValue(cameraModeGroup)); viewMenu->addSeparator(); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index c299dd8c10..0ba1159052 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -129,6 +129,7 @@ namespace MenuOption { const QString Login = "Login/Sign Up"; const QString Log = "Log"; const QString LogExtraTimings = "Log Extra Timing Details"; + const QString LookAtCamera = "Third Person"; const QString LowVelocityFilter = "Low Velocity Filter"; const QString MeshVisible = "Draw Mesh"; const QString MuteEnvironment = "Mute Environment"; @@ -181,6 +182,7 @@ namespace MenuOption { const QString RunTimingTests = "Run Timing Tests"; const QString ScriptedMotorControl = "Enable Scripted Motor Control"; const QString ShowTrackedObjects = "Show Tracked Objects"; + const QString SelfieCamera = "Selfie"; const QString SendWrongDSConnectVersion = "Send wrong DS connect version"; const QString SendWrongProtocolVersion = "Send wrong protocol version"; const QString SetHomeLocation = "Set Home Location"; @@ -201,7 +203,7 @@ namespace MenuOption { const QString AnimStats = "Show Animation Stats"; const QString StopAllScripts = "Stop All Scripts"; const QString SuppressShortTimings = "Suppress Timings Less than 10ms"; - const QString ThirdPerson = "Third Person"; + const QString ThirdPerson = "Third Person Legacy"; const QString ThreePointCalibration = "3 Point Calibration"; const QString ThrottleFPSIfNotFocus = "Throttle FPS If Not Focus"; // FIXME - this value duplicated in Basic2DWindowOpenGLDisplayPlugin.cpp const QString ToggleHipsFollowing = "Toggle Hips Following"; diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index f248495fe9..112685e891 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -99,6 +99,10 @@ static const QString USER_RECENTER_MODEL_FORCE_STAND = QStringLiteral("ForceStan static const QString USER_RECENTER_MODEL_AUTO = QStringLiteral("Auto"); static const QString USER_RECENTER_MODEL_DISABLE_HMD_LEAN = QStringLiteral("DisableHMDLean"); +const QString HEAD_BLENDING_NAME = "lookAroundAlpha"; +const QString HEAD_ALPHA_NAME = "additiveBlendAlpha"; +const float HEAD_ALPHA_BLENDING = 1.0f; + MyAvatar::SitStandModelType stringToUserRecenterModel(const QString& str) { if (str == USER_RECENTER_MODEL_FORCE_SIT) { return MyAvatar::ForceSit; @@ -451,7 +455,7 @@ QByteArray MyAvatar::toByteArrayStateful(AvatarDataDetail dataDetail, bool dropF _globalBoundingBoxDimensions.y = _characterController.getCapsuleHalfHeight(); _globalBoundingBoxDimensions.z = _characterController.getCapsuleRadius(); _globalBoundingBoxOffset = _characterController.getCapsuleLocalOffset(); - if (mode == CAMERA_MODE_THIRD_PERSON || mode == CAMERA_MODE_INDEPENDENT) { + if (mode == CAMERA_MODE_THIRD_PERSON || mode == CAMERA_MODE_INDEPENDENT || mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_SELFIE) { // fake the avatar position that is sent up to the AvatarMixer glm::vec3 oldPosition = getWorldPosition(); setWorldPosition(getSkeletonPosition()); @@ -948,6 +952,13 @@ void MyAvatar::simulate(float deltaTime, bool inView) { head->setPosition(headPosition); head->setScale(getModelScale()); head->simulate(deltaTime); + CameraMode mode = qApp->getCamera().getMode(); + if (_scriptControlsHeadLookAt || mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_SELFIE) { + updateHeadLookAt(deltaTime); + } else if (_headLookAtActive){ + resetHeadLookAt(); + _headLookAtActive = false; + } } // Record avatars movements. @@ -2610,7 +2621,7 @@ void MyAvatar::useFullAvatarURL(const QUrl& fullAvatarURL, const QString& modelN glm::vec3 MyAvatar::getSkeletonPosition() const { CameraMode mode = qApp->getCamera().getMode(); - if (mode == CAMERA_MODE_THIRD_PERSON || mode == CAMERA_MODE_INDEPENDENT) { + if (mode == CAMERA_MODE_THIRD_PERSON || mode == CAMERA_MODE_INDEPENDENT || mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_SELFIE) { // The avatar is rotated PI about the yAxis, so we have to correct for it // to get the skeleton offset contribution in the world-frame. const glm::quat FLIP = glm::angleAxis(PI, glm::vec3(0.0f, 1.0f, 0.0f)); @@ -3133,7 +3144,6 @@ void MyAvatar::initAnimGraph() { } emit animGraphUrlChanged(graphUrl); - _skeletonModel->getRig().initAnimGraph(graphUrl); _currentAnimGraphUrl.set(graphUrl); connect(&(_skeletonModel->getRig()), SIGNAL(onLoadComplete()), this, SLOT(animGraphLoaded())); @@ -3416,11 +3426,19 @@ void MyAvatar::setRotationThreshold(float angleRadians) { } void MyAvatar::updateOrientation(float deltaTime) { - // Smoothly rotate body with arrow keys float targetSpeed = getDriveKey(YAW) * _yawSpeed; + CameraMode mode = qApp->getCamera().getMode(); + bool computeLookAt = (mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_SELFIE) && isReadyForPhysics() && !qApp->isHMDMode(); + if (computeLookAt) { + // For "Look At" and "Selfie" camera modes we also smooth the yaw rotation from right-click mouse movement. + float speedFromDeltaYaw = deltaTime > FLT_EPSILON ? getDriveKey(DELTA_YAW) / deltaTime : 0.0f; + speedFromDeltaYaw *= _yawSpeed / YAW_SPEED_DEFAULT; + targetSpeed += speedFromDeltaYaw; + } + if (targetSpeed != 0.0f) { - const float ROTATION_RAMP_TIMESCALE = 0.1f; + const float ROTATION_RAMP_TIMESCALE = 0.5f; float blend = deltaTime / ROTATION_RAMP_TIMESCALE; if (blend > 1.0f) { blend = 1.0f; @@ -3441,10 +3459,10 @@ void MyAvatar::updateOrientation(float deltaTime) { } } float totalBodyYaw = _bodyYawDelta * deltaTime; - - // Rotate directly proportional to delta yaw and delta pitch from right-click mouse movement. - totalBodyYaw += getDriveKey(DELTA_YAW) * _yawSpeed / YAW_SPEED_DEFAULT; - + if (!computeLookAt) { + // Rotate directly proportional to delta yaw and delta pitch from right-click mouse movement. + totalBodyYaw += getDriveKey(DELTA_YAW) * _yawSpeed / YAW_SPEED_DEFAULT; + } // Comfort Mode: If you press any of the left/right rotation drive keys or input, you'll // get an instantaneous 15 degree turn. If you keep holding the key down you'll get another // snap turn every half second. @@ -3453,7 +3471,6 @@ void MyAvatar::updateOrientation(float deltaTime) { totalBodyYaw += getDriveKey(STEP_YAW); snapTurn = true; } - // Use head/HMD roll to turn while flying, but not when standing still. if (qApp->isHMDMode() && getCharacterController()->getState() == CharacterController::State::Hover && _hmdRollControlEnabled && hasDriveInput()) { @@ -3488,7 +3505,60 @@ void MyAvatar::updateOrientation(float deltaTime) { // update body orientation by movement inputs glm::quat initialOrientation = getOrientationOutbound(); - setWorldOrientation(getWorldOrientation() * glm::quat(glm::radians(glm::vec3(0.0f, totalBodyYaw, 0.0f)))); + glm::vec3 eyesPosition = getDefaultEyePosition(); + const float FPS = 60.0f; + float timeScale = deltaTime * FPS; + + bool faceForward = false; + if (!computeLookAt) { + setWorldOrientation(getWorldOrientation() * glm::quat(glm::radians(glm::vec3(0.0f, totalBodyYaw, 0.0f)))); + _lookAtCameraTarget = eyesPosition + getWorldOrientation() * Vectors::FRONT; + _lookAtYaw = getWorldOrientation(); + _lookAtPitch = Quaternions::IDENTITY; + } else { + // Compute new look at vectors + if (totalBodyYaw != 0.0f) { + _lookAtYaw = _lookAtYaw * glm::quat(glm::radians(glm::vec3(0.0f, totalBodyYaw, 0.0f))); + } + float pitchIncrement = getDriveKey(PITCH) * _pitchSpeed * deltaTime + + getDriveKey(DELTA_PITCH) * _pitchSpeed / PITCH_SPEED_DEFAULT; + if (pitchIncrement != 0.0f) { + glm::quat _previousLookAtPitch = _lookAtPitch; + _lookAtPitch = _lookAtPitch * glm::quat(glm::radians(glm::vec3(pitchIncrement, 0.0f, 0.0f))); + // Limit the camera horizontal pitch + float MAX_LOOK_AT_PITCH_DEGREES = 80.0f; + float pitchFromHorizont = glm::degrees(angleBetween(getLookAtRotation() * Vectors::FRONT, _lookAtYaw * Vectors::FRONT)); + if (pitchFromHorizont > MAX_LOOK_AT_PITCH_DEGREES) { + _lookAtPitch = _previousLookAtPitch; + } + } + bool isMovingFwdBwd = getDriveKey(TRANSLATE_Z) != 0.0f; + bool isMovingSideways = getDriveKey(TRANSLATE_X) != 0.0f; + bool isRotatingWhileSeated = isMovingSideways && _characterController.getSeated(); + faceForward = isMovingFwdBwd || (isMovingSideways && !isRotatingWhileSeated); + // Blend the avatar orientation with the camera look at if moving forward. + if (faceForward || _shouldTurnToFaceCamera) { + const float REORIENT_FORWARD_BLEND = 0.25f; + const float REORIENT_TURN_BLEND = 0.03f; + const float DIAGONAL_TURN_BLEND = 0.02f; + float blend = (_shouldTurnToFaceCamera ? REORIENT_TURN_BLEND : REORIENT_FORWARD_BLEND) * timeScale; + if (blend > 1.0f) { + blend = 1.0f; + } + glm::quat faceRotation = _lookAtYaw; + if (isMovingFwdBwd && isMovingSideways) { + // Reorient avatar to face camera diagonal + blend = DIAGONAL_TURN_BLEND; + float turnSign = getDriveKey(TRANSLATE_Z) < 0.0f ? -1.0f : 1.0f; + turnSign = getDriveKey(TRANSLATE_X) > 0.0f ? -turnSign : turnSign; + faceRotation = _lookAtYaw * glm::angleAxis(turnSign * 0.25f * PI, Vectors::UP); + } + setWorldOrientation(glm::slerp(getWorldOrientation(), faceRotation, blend)); + } else if (isRotatingWhileSeated) { + float rotatingWhileSeatedYaw = -getDriveKey(TRANSLATE_X) * _yawSpeed * deltaTime; + setWorldOrientation(getWorldOrientation() * glm::quat(glm::radians(glm::vec3(0.0f, rotatingWhileSeatedYaw, 0.0f)))); + } + } if (snapTurn) { // Whether or not there is an existing smoothing going on, just reset the smoothing timer and set the starting position as the avatar's current position, then smooth to the new position. @@ -3509,9 +3579,74 @@ void MyAvatar::updateOrientation(float deltaTime) { head->setBaseYaw(YAW(euler)); head->setBasePitch(PITCH(euler)); head->setBaseRoll(ROLL(euler)); + } else if (computeLookAt) { + // Reset head orientation before applying the blending offset + head->setBaseYaw(0.0f); + head->setBasePitch(0.0f); + head->setBaseRoll(0.0f); + + glm::vec3 cameraVector = (faceForward ? _lookAtPitch * getWorldOrientation() : getLookAtRotation()) * Vectors::FRONT; + glm::vec3 cameraYawVector = _lookAtYaw * Vectors::FRONT; + + // Cap and attenuate head's lookat pitch angle + const float START_LOOKING_UP_DEGREES = 5.0f; + const float START_LOOKING_DOWN_DEGREES = 15.0f; + const float MAX_UP_DOWN_DEGREES = 90.0f; + + glm::vec3 avatarVectorUp = getWorldOrientation() * Vectors::UP; + float upDownDot = glm::dot(cameraVector, avatarVectorUp); + float upDownDegrees = MAX_UP_DOWN_DEGREES - glm::degrees(acosf(abs(upDownDot))); + + float lookAttenuation = 0.0f; + if (upDownDot <= 0.0f) { + if (upDownDegrees > START_LOOKING_DOWN_DEGREES) { + lookAttenuation = (upDownDegrees - START_LOOKING_DOWN_DEGREES) / (MAX_UP_DOWN_DEGREES - START_LOOKING_DOWN_DEGREES); + } + } else { + if (upDownDegrees > START_LOOKING_UP_DEGREES) { + lookAttenuation = (upDownDegrees - START_LOOKING_UP_DEGREES) / (MAX_UP_DOWN_DEGREES - START_LOOKING_UP_DEGREES); + } + } + glm::vec3 avatarVectorFront = getWorldOrientation() * Vectors::FRONT; + float frontBackDot = glm::dot(cameraYawVector, avatarVectorFront); + + glm::vec3 avatarVectorRight = getWorldOrientation() * Vectors::RIGHT; + float leftRightDot = glm::dot(cameraYawVector, avatarVectorRight); + + const float REORIENT_ANGLE = 65.0f; + const float TRIGGER_REORIENT_ANGLE = 45.0f; + glm::vec3 ajustedYawVector = cameraYawVector; + if (frontBackDot < 0.0f) { + ajustedYawVector = (leftRightDot < 0.0f ? -avatarVectorRight : avatarVectorRight); + cameraVector = (ajustedYawVector * _lookAtPitch) * Vectors::FRONT; + if (frontBackDot < -glm::sin(glm::radians(TRIGGER_REORIENT_ANGLE))) { + _shouldTurnToFaceCamera = true; + } + } else if (frontBackDot > glm::sin(glm::radians(REORIENT_ANGLE))) { + _shouldTurnToFaceCamera = false; + } + + cameraVector = glm::mix(cameraVector, ajustedYawVector, 1.0f - lookAttenuation); + // Calculate the camera target point. + + glm::vec3 targetPoint = eyesPosition + glm::normalize(cameraVector); + + const float LOOKAT_MIX_ALPHA = 0.25f; + + if (getDriveKey(TRANSLATE_Y) == 0.0f) { + // Approximate the head's look at vector to the camera look at vector with some delay. + float mixAlpha = LOOKAT_MIX_ALPHA * timeScale; + if (mixAlpha > 1.0f) { + mixAlpha = 1.0f; + } + _lookAtCameraTarget = glm::mix(_lookAtCameraTarget, targetPoint, mixAlpha); + } else { + _lookAtCameraTarget = targetPoint; + } + _headLookAtActive = true; } else { head->setBaseYaw(0.0f); - head->setBasePitch(getHead()->getBasePitch() + getDriveKey(PITCH) * _pitchSpeed * deltaTime + head->setBasePitch(getHead()->getBasePitch() + getDriveKey(PITCH) * _pitchSpeed * deltaTime + getDriveKey(DELTA_PITCH) * _pitchSpeed / PITCH_SPEED_DEFAULT); head->setBaseRoll(0.0f); } @@ -3543,7 +3678,7 @@ float MyAvatar::calculateGearedSpeed(const float driveKey) { glm::vec3 MyAvatar::scaleMotorSpeed(const glm::vec3 forward, const glm::vec3 right) { float stickFullOn = 0.85f; auto zSpeed = getDriveKey(TRANSLATE_Z); - auto xSpeed = getDriveKey(TRANSLATE_X); + auto xSpeed = !_characterController.getSeated() ? getDriveKey(TRANSLATE_X) : 0.0f; glm::vec3 direction; if (!useAdvancedMovementControls() && qApp->isHMDMode()) { // Walking disabled in settings. @@ -3581,6 +3716,10 @@ glm::vec3 MyAvatar::scaleMotorSpeed(const glm::vec3 forward, const glm::vec3 rig } else { // Desktop mode. direction = (zSpeed * forward) + (xSpeed * right); + if (qApp->getCamera().getMode() == CAMERA_MODE_LOOK_AT && zSpeed != 0.0f && xSpeed != 0.0f){ + direction = (zSpeed * forward); + } + auto length = glm::length(direction); if (length > EPSILON) { direction /= length; @@ -5236,9 +5375,13 @@ glm::quat MyAvatar::getOrientationForAudio() { glm::quat result; switch (_audioListenerMode) { - case AudioListenerMode::FROM_HEAD: - result = getHead()->getFinalOrientationInWorldFrame(); + case AudioListenerMode::FROM_HEAD: { + // Using the camera's orientation instead, when the current mode is controlling the avatar's head. + CameraMode mode = qApp->getCamera().getMode(); + bool headFollowsCamera = mode == CAMERA_MODE_LOOK_AT || mode == CAMERA_MODE_SELFIE; + result = headFollowsCamera ? qApp->getCamera().getOrientation() : getHead()->getFinalOrientationInWorldFrame(); break; + } case AudioListenerMode::FROM_CAMERA: result = qApp->getCamera().getOrientation(); break; @@ -6334,7 +6477,6 @@ void MyAvatar::sendPacket(const QUuid& entityID) const { void MyAvatar::setSitDriveKeysStatus(bool enabled) { const std::vector DISABLED_DRIVE_KEYS_DURING_SIT = { - DriveKeys::TRANSLATE_X, DriveKeys::TRANSLATE_Y, DriveKeys::TRANSLATE_Z, DriveKeys::STEP_TRANSLATE_X, @@ -6512,3 +6654,70 @@ void MyAvatar::updateLookAtPosition(FaceTracker* faceTracker, Camera& myCamera) getHead()->setLookAtPosition(lookAtSpot); } + +void MyAvatar::resetHeadLookAt() { + if (_skeletonModelLoaded) { + _skeletonModel->getRig().setDirectionalBlending(HEAD_BLENDING_NAME, glm::vec3(), + HEAD_ALPHA_NAME, HEAD_ALPHA_BLENDING); + } +} + +void MyAvatar::updateHeadLookAt(float deltaTime) { + if (_skeletonModelLoaded) { + glm::vec3 lookAtTarget = _scriptControlsHeadLookAt ? _lookAtScriptTarget : _lookAtCameraTarget; + glm::vec3 avatarXVector = glm::normalize(getWorldOrientation() * Vectors::UNIT_X); + glm::vec3 avatarYVector = glm::normalize(getWorldOrientation() * Vectors::UNIT_Y); + glm::vec3 avatarZVector = glm::normalize(getWorldOrientation() * Vectors::UNIT_Z); + glm::vec3 headToTargetVector = lookAtTarget - getDefaultEyePosition(); + if (glm::length(headToTargetVector) > EPSILON) { + headToTargetVector = glm::normalize(headToTargetVector); + } else { + // The target point is the avatar head + return; + } + + float xDot = glm::dot(avatarXVector, headToTargetVector); + float yDot = glm::dot(avatarYVector, headToTargetVector); + float zDot = glm::dot(avatarZVector, headToTargetVector); + // Force the head to look at one of the sides when the look at point is behind the avatar + if (zDot > 0.0f && xDot != 0.0f) { + //xDot /= fabsf(xDot); + } + + // Make sure dot products are in range to avoid acosf returning NaN + xDot = glm::min(glm::max(xDot, -1.0f), 1.0f); + yDot = glm::min(glm::max(yDot, -1.0f), 1.0f); + + float xAngle = acosf(xDot); + float yAngle = acosf(yDot); + + // xBlend and yBlend are the values from -1.0 to 1.0 that set the directional blending. + // We compute them using the angles (0 to PI/2) => (1.0 to 0.0) and (PI/2 to PI) => (0.0 to -1.0) + float xBlend = -(xAngle - 0.5f * PI) / (0.5f * PI); + float yBlend = -(yAngle - 0.5f * PI) / (0.5f * PI); + glm::vec3 lookAtBlend = glm::vec3(xBlend, yBlend, 0.0f); + _skeletonModel->getRig().setDirectionalBlending(HEAD_BLENDING_NAME, lookAtBlend, + HEAD_ALPHA_NAME, HEAD_ALPHA_BLENDING); + + if (_scriptControlsHeadLookAt) { + _scriptHeadControlTimer += deltaTime; + if (_scriptHeadControlTimer > MAX_LOOK_AT_TIME_SCRIPT_CONTROL) { + _scriptHeadControlTimer = 0.0f; + _scriptControlsHeadLookAt = false; + _lookAtCameraTarget = _lookAtScriptTarget; + } + } + } +} + +void MyAvatar::setHeadLookAt(const glm::vec3& lookAtTarget) { + if (QThread::currentThread() != thread()) { + BLOCKING_INVOKE_METHOD(this, "setHeadLookAt", + Q_ARG(const glm::vec3&, lookAtTarget)); + return; + } + _headLookAtActive = true; + _scriptControlsHeadLookAt = true; + _scriptHeadControlTimer = 0.0f; + _lookAtScriptTarget = lookAtTarget; +} diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index be0d1960ad..a6c53c1c0b 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1749,6 +1749,24 @@ public: glm::vec3 getNextPosition() { return _goToPending ? _goToPosition : getWorldPosition(); } void prepareAvatarEntityDataForReload(); + /**jsdoc + * Turn the avatar's head until it faces the target point within the 90/-90 degree range. + * Once this method is called, API calls will have full control of the head for a limited time. + * If this method is not called for two seconds, the engine will regain control of the head. + * @function MyAvatar.setHeadLookAt + * @param {Vec3} lookAtTarget - The target point in world coordinates. + */ + Q_INVOKABLE void setHeadLookAt(const glm::vec3& lookAtTarget); + + /**jsdoc + * Returns the current head look at target point in world coordinates. + * @function MyAvatar.getHeadLookAt + * @returns {Vec3} Default position between your avatar's eyes in world coordinates. + */ + Q_INVOKABLE glm::vec3 getHeadLookAt() { return _lookAtCameraTarget; } + + glm::quat getLookAtRotation() { return _lookAtYaw * _lookAtPitch; } + /**jsdoc * Creates a new grab that grabs an entity. * @function MyAvatar.grab @@ -2626,6 +2644,21 @@ private: glm::vec3 _trackedHeadPosition; + const float MAX_LOOK_AT_TIME_SCRIPT_CONTROL = 2.0f; + glm::quat _lookAtPitch; + glm::quat _lookAtYaw; + glm::vec3 _lookAtCameraTarget; + glm::vec3 _lookAtScriptTarget; + bool _headLookAtActive { false }; + bool _shouldTurnToFaceCamera { false }; + bool _scriptControlsHeadLookAt { false }; + float _scriptHeadControlTimer { 0.0f }; + + // LookAt camera data + float _selfieTriggerAngle { 55.0f }; + float _frontLookAtSpeed { 0.15f }; + float _backLookAtSpeed { 0.25f }; + Setting::Handle _realWorldFieldOfView; Setting::Handle _useAdvancedMovementControls; Setting::Handle _showPlayArea; @@ -2650,6 +2683,8 @@ private: void initHeadBones(); void initAnimGraph(); void initFlowFromFST(); + void updateHeadLookAt(float deltaTime); + void resetHeadLookAt(); // Avatar Preferences QUrl _fullAvatarURLFromPreferences; diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 19e3878d84..d63c2d6a9b 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -1658,7 +1658,7 @@ void Rig::updateHead(bool headEnabled, bool hipsEnabled, const AnimPose& headPos _animVars.set("splineIKEnabled", false); _animVars.unset("headPosition"); _animVars.set("headRotation", headPose.rot()); - _animVars.set("headType", (int)IKTarget::Type::RotationOnly); + _animVars.set("headType", (int)IKTarget::Type::Unknown); } } } @@ -2645,3 +2645,8 @@ float Rig::getUnscaledEyeHeight() const { return DEFAULT_AVATAR_EYE_HEIGHT; } } + +void Rig::setDirectionalBlending(const QString& targetName, const glm::vec3& blendingTarget, const QString& alphaName, float alpha) { + _animVars.set(targetName, blendingTarget); + _animVars.set(alphaName, alpha); +} diff --git a/libraries/animation/src/Rig.h b/libraries/animation/src/Rig.h index a70659b0ae..51ff537d51 100644 --- a/libraries/animation/src/Rig.h +++ b/libraries/animation/src/Rig.h @@ -254,6 +254,7 @@ public: int getOverrideJointCount() const; bool getFlowActive() const; bool getNetworkGraphActive() const; + void setDirectionalBlending(const QString& targetName, const glm::vec3& blendingTarget, const QString& alphaName, float alpha); signals: void onLoadComplete(); diff --git a/libraries/shared/src/shared/Camera.cpp b/libraries/shared/src/shared/Camera.cpp index 787b7bfb1a..b39b8b9169 100644 --- a/libraries/shared/src/shared/Camera.cpp +++ b/libraries/shared/src/shared/Camera.cpp @@ -35,6 +35,18 @@ * your avatar. * * + * Look At + * "look at" + * The camera is positioned behind your avatar. The camera moves and rotates independently from your avatar. + * The avatar's head always faces the camera look at point. + * + * + * Selfie + * "selfie" + * The camera is positioned in front of your avatar. The camera moves and rotates independently from your avatar. + * Your avatar's head is always facing the camera. + * + * * Mirror * "mirror" * The camera is positioned such that you are looking directly at your avatar. The camera moves and rotates with your @@ -67,6 +79,10 @@ CameraMode stringToMode(const QString& mode) { return CAMERA_MODE_INDEPENDENT; } else if (mode == "entity") { return CAMERA_MODE_ENTITY; + } else if (mode == "look at") { + return CAMERA_MODE_LOOK_AT; + } else if (mode == "selfie") { + return CAMERA_MODE_SELFIE; } return CAMERA_MODE_NULL; } @@ -82,6 +98,10 @@ QString modeToString(CameraMode mode) { return "independent"; } else if (mode == CAMERA_MODE_ENTITY) { return "entity"; + } else if (mode == CAMERA_MODE_LOOK_AT) { + return "look at"; + } else if (mode == CAMERA_MODE_SELFIE) { + return "selfie"; } return "unknown"; } diff --git a/libraries/shared/src/shared/Camera.h b/libraries/shared/src/shared/Camera.h index 0df83cfb9a..eecad34838 100644 --- a/libraries/shared/src/shared/Camera.h +++ b/libraries/shared/src/shared/Camera.h @@ -23,6 +23,8 @@ enum CameraMode CAMERA_MODE_MIRROR, CAMERA_MODE_INDEPENDENT, CAMERA_MODE_ENTITY, + CAMERA_MODE_LOOK_AT, + CAMERA_MODE_SELFIE, NUM_CAMERA_MODES }; @@ -182,7 +184,7 @@ private: void recompose(); void decompose(); - CameraMode _mode{ CAMERA_MODE_THIRD_PERSON }; + CameraMode _mode{ CAMERA_MODE_LOOK_AT }; glm::mat4 _transform; glm::mat4 _projection;