public override void ActionAnimSkip(ActionAnim action) { if (action.method == AnimMethod.PlayCustom && action._anim && action.clip) { AdvGame.CleanUnusedClips(action._anim); WrapMode wrap = WrapMode.Once; if (action.playMode == AnimPlayMode.PlayOnceAndClamp) { wrap = WrapMode.ClampForever; } else if (action.playMode == AnimPlayMode.Loop) { wrap = WrapMode.Loop; } AdvGame.PlayAnimClipFrame(action._anim, 0, action.clip, action.blendMode, wrap, 0f, null, 1f); } else if (action.method == AnimMethod.StopCustom && action._anim && action.clip) { AdvGame.CleanUnusedClips(action._anim); action._anim.Blend(action.clip.name, 0f, 0f); } else if (action.method == AnimMethod.BlendShape && action.shapeKey > -1) { if (action.shapeObject) { action.shapeObject.Change(action.shapeKey, action.shapeValue, 0f); } } }
override public float Run() { if (!isRunning) { isRunning = true; if (_anim && clip) { if (method == AnimMethod.PlayCustom) { AdvGame.CleanUnusedClips(_anim); WrapMode wrap = WrapMode.Once; if (playMode == AnimPlayMode.PlayOnceAndClamp) { wrap = WrapMode.ClampForever; } else if (playMode == AnimPlayMode.Loop) { wrap = WrapMode.Loop; } AdvGame.PlayAnimClip(_anim, 0, clip, blendMode, wrap, fadeTime, null); } else if (method == AnimMethod.StopCustom) { AdvGame.CleanUnusedClips(_anim); _anim.animation.Blend(clip.name, 0f, fadeTime); } if (willWait) { return(defaultPauseTime); } } return(0f); } else { if (!_anim.IsPlaying(clip.name)) { isRunning = false; return(0f); } else { return(defaultPauseTime); } } }
public override void ActionSpeechSkip(ActionSpeech action) { if (action.speaker.talkingAnimation == TalkingAnimation.CustomFace && (action.headClip || action.mouthClip)) { AdvGame.CleanUnusedClips(action.speaker.GetComponent <Animation>()); if (action.headClip) { AdvGame.PlayAnimClipFrame(action.speaker.GetComponent <Animation>(), AdvGame.GetAnimLayerInt(AnimLayer.Head), action.headClip, AnimationBlendMode.Additive, WrapMode.Once, 0f, action.speaker.neckBone, 1f); } if (action.mouthClip) { AdvGame.PlayAnimClipFrame(action.speaker.GetComponent <Animation>(), AdvGame.GetAnimLayerInt(AnimLayer.Mouth), action.mouthClip, AnimationBlendMode.Additive, WrapMode.Once, 0f, action.speaker.neckBone, 1f); } } }
override public float Run() { dialog = GameObject.FindWithTag(Tags.gameEngine).GetComponent <Dialog>(); stateHandler = GameObject.FindWithTag(Tags.persistentEngine).GetComponent <StateHandler>(); options = stateHandler.GetComponent <Options>(); if (dialog && stateHandler && options) { if (!isRunning) { isRunning = true; string _text = messageText; string _language = ""; if (options.optionsData.language > 0) { // Not in original language, so pull translation in from Speech Manager if (!speechManager) { speechManager = AdvGame.GetReferences().speechManager; } if (speechManager.GetLineByID(lineID) != null && speechManager.GetLineByID(lineID).translationText.Count > (options.optionsData.language - 1)) { _text = speechManager.GetLineByID(lineID).translationText [options.optionsData.language - 1]; _language = speechManager.languages[options.optionsData.language]; } } if (_text != "") { dialog.KillDialog(); if (isBackground) { stateHandler.gameState = GameState.Normal; } else { stateHandler.gameState = GameState.Cutscene; } if (isPlayer) { speaker = GameObject.FindWithTag(Tags.player).GetComponent <Player>(); } if (speaker) { dialog.StartDialog(speaker, _text, lineID, _language); if (headClip || mouthClip) { AdvGame.CleanUnusedClips(speaker.GetComponent <Animation>()); if (headClip) { AdvGame.PlayAnimClip(speaker.GetComponent <Animation>(), (int)AnimLayer.Head, headClip, AnimationBlendMode.Additive, WrapMode.Once, 0f, speaker.neckBone); } if (mouthClip) { AdvGame.PlayAnimClip(speaker.GetComponent <Animation>(), (int)AnimLayer.Mouth, mouthClip, AnimationBlendMode.Additive, WrapMode.Once, 0f, speaker.neckBone); } } } else { dialog.StartDialog(_text); } if (!isBackground) { return(defaultPauseTime); } } return(0f); } else { if (!dialog.isMessageAlive) { isRunning = false; stateHandler.gameState = GameState.Cutscene; return(0f); } else { return(defaultPauseTime); } } } return(0f); }
public override float ActionAnimRun(ActionAnim action) { if (!action.isRunning) { action.isRunning = true; if (action.method == AnimMethod.PlayCustom && action._anim && action.clip) { AdvGame.CleanUnusedClips(action._anim); WrapMode wrap = WrapMode.Once; if (action.playMode == AnimPlayMode.PlayOnceAndClamp) { wrap = WrapMode.ClampForever; } else if (action.playMode == AnimPlayMode.Loop) { wrap = WrapMode.Loop; } AdvGame.PlayAnimClip(action._anim, 0, action.clip, action.blendMode, wrap, action.fadeTime, null, false); } else if (action.method == AnimMethod.StopCustom && action._anim && action.clip) { AdvGame.CleanUnusedClips(action._anim); action._anim.Blend(action.clip.name, 0f, action.fadeTime); } else if (action.method == AnimMethod.BlendShape && action.shapeKey > -1) { if (action.shapeObject) { action.shapeObject.Change(action.shapeKey, action.shapeValue, action.fadeTime); if (action.willWait) { return(action.fadeTime); } } } if (action.willWait) { return(action.defaultPauseTime); } } else { if (action.method == AnimMethod.PlayCustom && action._anim && action.clip) { if (!action._anim.IsPlaying(action.clip.name)) { action.isRunning = false; return(0f); } else { return(action.defaultPauseTime); } } else if (action.method == AnimMethod.BlendShape && action.shapeObject) { action.isRunning = false; return(0f); } } return(0f); }
public override void ActionCharAnimSkip(ActionCharAnim action) { if (action.animChar == null) { return; } Animation animation = null; if (action.animChar.spriteChild && action.animChar.spriteChild.GetComponent <Animation>()) { animation = action.animChar.spriteChild.GetComponent <Animation>(); } if (character._animation) { animation = action.animChar._animation; } if (action.method == ActionCharAnim.AnimMethodChar.PlayCustom && action.clip) { if (action.layer == AnimLayer.Base) { action.animChar.charState = CharState.Custom; action.blendMode = AnimationBlendMode.Blend; action.playMode = (AnimPlayMode)action.playModeBase; } if (action.playMode == AnimPlayMode.PlayOnce) { if (action.layer == AnimLayer.Base && action.method == ActionCharAnim.AnimMethodChar.PlayCustom) { action.animChar.charState = CharState.Idle; action.animChar.ResetBaseClips(); } } else { AdvGame.CleanUnusedClips(animation); WrapMode wrap = WrapMode.Once; Transform mixingTransform = null; if (action.layer == AnimLayer.UpperBody) { mixingTransform = action.animChar.upperBodyBone; } else if (action.layer == AnimLayer.LeftArm) { mixingTransform = action.animChar.leftArmBone; } else if (action.layer == AnimLayer.RightArm) { mixingTransform = action.animChar.rightArmBone; } else if (action.layer == AnimLayer.Neck || action.layer == AnimLayer.Head || action.layer == AnimLayer.Face || action.layer == AnimLayer.Mouth) { mixingTransform = action.animChar.neckBone; } if (action.playMode == AnimPlayMode.PlayOnceAndClamp) { wrap = WrapMode.ClampForever; } else if (action.playMode == AnimPlayMode.Loop) { wrap = WrapMode.Loop; } AdvGame.PlayAnimClipFrame(animation, AdvGame.GetAnimLayerInt(action.layer), action.clip, action.blendMode, wrap, action.fadeTime, mixingTransform, 1f); } AdvGame.CleanUnusedClips(animation); } else if (action.method == ActionCharAnim.AnimMethodChar.StopCustom && action.clip) { if (action.clip != action.animChar.idleAnim && action.clip != action.animChar.walkAnim) { animation.Blend(action.clip.name, 0f, 0f); } } else if (action.method == ActionCharAnim.AnimMethodChar.ResetToIdle) { action.animChar.ResetBaseClips(); action.animChar.charState = CharState.Idle; AdvGame.CleanUnusedClips(animation); } else if (action.method == ActionCharAnim.AnimMethodChar.SetStandard) { if (action.clip != null) { if (action.standard == AnimStandard.Idle) { action.animChar.idleAnim = action.clip; } else if (action.standard == AnimStandard.Walk) { action.animChar.walkAnim = action.clip; } else if (action.standard == AnimStandard.Run) { action.animChar.runAnim = action.clip; } else if (action.standard == AnimStandard.Talk) { action.animChar.talkAnim = action.clip; } } if (action.changeSpeed) { if (action.standard == AnimStandard.Walk) { action.animChar.walkSpeedScale = action.newSpeed; } else if (action.standard == AnimStandard.Run) { action.animChar.runSpeedScale = action.newSpeed; } } if (action.changeSound) { if (action.standard == AnimStandard.Walk) { if (action.newSound != null) { action.animChar.walkSound = action.newSound; } else { action.animChar.walkSound = null; } } else if (action.standard == AnimStandard.Run) { if (action.newSound != null) { action.animChar.runSound = action.newSound; } else { action.animChar.runSound = null; } } } } }
override public float Run() { if (isPlayer) { animChar = GameObject.FindWithTag(Tags.player).GetComponent <Char>(); } if (!isRunning) { isRunning = true; if (animChar) { if (method == AnimMethodChar.PlayCustom && clip) { AdvGame.CleanUnusedClips(animChar.animation); WrapMode wrap = WrapMode.Once; Transform mixingTransform = null; if (layer == AnimLayer.Base) { animChar.charState = CharState.Custom; blendMode = AnimationBlendMode.Blend; playMode = (AnimPlayMode)playModeBase; } else if (layer == AnimLayer.UpperBody) { mixingTransform = animChar.upperBodyBone; } else if (layer == AnimLayer.LeftArm) { mixingTransform = animChar.leftArmBone; } else if (layer == AnimLayer.RightArm) { mixingTransform = animChar.rightArmBone; } else if (layer == AnimLayer.Neck || layer == AnimLayer.Head || layer == AnimLayer.Face || layer == AnimLayer.Mouth) { mixingTransform = animChar.neckBone; } if (playMode == AnimPlayMode.PlayOnceAndClamp) { wrap = WrapMode.ClampForever; } else if (playMode == AnimPlayMode.Loop) { wrap = WrapMode.Loop; } AdvGame.PlayAnimClip(animChar.GetComponent <Animation>(), (int)layer, clip, blendMode, wrap, fadeTime, mixingTransform); } else if (method == AnimMethodChar.StopCustom && clip) { if (clip != animChar.idleAnim && clip != animChar.walkAnim) { animChar.animation.Blend(clip.name, 0f, fadeTime); } } else if (method == AnimMethodChar.ResetToIdle) { animChar.ResetBaseClips(); animChar.charState = CharState.Idle; AdvGame.CleanUnusedClips(animChar.animation); } else if (method == AnimMethodChar.SetStandard && clip) { if (standard == AnimStandard.Idle) { animChar.idleAnim = clip; } else if (standard == AnimStandard.Walk) { animChar.walkAnim = clip; } else if (standard == AnimStandard.Run) { animChar.runAnim = clip; } } if (willWait && clip) { if (method == AnimMethodChar.PlayCustom) { return(defaultPauseTime); } else if (method == AnimMethodChar.StopCustom) { return(fadeTime); } } } return(0f); } else { if (animChar.animation[clip.name] && animChar.animation[clip.name].normalizedTime < 1f && animChar.animation.IsPlaying(clip.name)) { return(defaultPauseTime); } else { isRunning = false; if (playMode == AnimPlayMode.PlayOnce) { animChar.animation.Blend(clip.name, 0f, fadeTime); if (layer == AnimLayer.Base && method == AnimMethodChar.PlayCustom) { animChar.charState = CharState.Idle; animChar.ResetBaseClips(); } } AdvGame.CleanUnusedClips(animChar.animation); return(0f); } } }