Elias555 Posted July 4, 2016 Author Share Posted July 4, 2016 This does work but only when set to FF and Self. I need it to work with FF and Aimed. I have already tried MySpell.Cast(PlayerRef) but it didn't play the animation. Event OnEffectStart(Actor akTarget, Actor akCaster) Debug.SendAnimationEvent(PlayerRef, "ShoutStart") EndEvent Event OnEffectFinish(Actor akTarget, Actor akCaster) Debug.SendAnimationEvent(akCaster, "ShoutStop") EndEvent Link to comment Share on other sites More sharing options...
lofgren Posted July 4, 2016 Share Posted July 4, 2016 It's not working for aimed because that event doesn't fire unless the effect hits an actor. Try putting it in your projectile script. Link to comment Share on other sites More sharing options...
Elias555 Posted July 4, 2016 Author Share Posted July 4, 2016 (edited) It's not working for aimed because that event doesn't fire unless the effect hits an actor. Try putting it in your projectile script.Can't do that. The point of it is to simulate blowing, if the projectile is already out the animation doesn't make sense. I'm going to try and reverse it, have the projectile fire but the spell by FF and Self. Wish me luck! Edit: That seems to work! Only problem is the animation lasts like 0.7s and the I can't set the duration to that as far as I know. Edited July 4, 2016 by Elias555 Link to comment Share on other sites More sharing options...
lofgren Posted July 4, 2016 Share Posted July 4, 2016 You could also try putting the animation in the OnInit block of the spell. That will always fire regardless of whether or not there is a target. I'm still fairly certain that PlayIdle is the preferred function here. Refer to the notes under SendAnimationEvent in the CK Wiki: http://www.creationkit.com/index.php?title=SendAnimationEvent_-_Debug This bypasses the check on ObjectReference that prevents sending events to actors. If you use it to send an event to actors, you will most likely mess up the actor permanently as the internal actor data may no longer match their animation state. Link to comment Share on other sites More sharing options...
Elias555 Posted July 4, 2016 Author Share Posted July 4, 2016 You could also try putting the animation in the OnInit block of the spell. That will always fire regardless of whether or not there is a target. I'm still fairly certain that PlayIdle is the preferred function here. Refer to the notes under SendAnimationEvent in the CK Wiki: http://www.creationkit.com/index.php?title=SendAnimationEvent_-_Debug This bypasses the check on ObjectReference that prevents sending events to actors. If you use it to send an event to actors, you will most likely mess up the actor permanently as the internal actor data may no longer match their animation state. It already fires regardless of a target or not. :confused: Doesn't that only happens when you don't tell the animation to stop? Debug.SendAnimationEvent(akCaster, "ShoutStop") Does it apply to any actor or NPC only? Link to comment Share on other sites More sharing options...
lofgren Posted July 4, 2016 Share Posted July 4, 2016 (edited) I'm by no means the expert on animations, so probably best to get somebody else to answer that. It was just my impression that the debug function was really for testing purposes and PlayIdle is the function that is intended to be used to make actors perform animations. The player's animation variables seem to reset more often than other actors, but I don't know if that resolves this issue. According to the wiki, in order to prevent issues you should use PlayIdle(IdleStop_Loose) in order to reset the actor and prevent issues with SendAnimationEvent. Edited July 4, 2016 by lofgren Link to comment Share on other sites More sharing options...
Elias555 Posted July 4, 2016 Author Share Posted July 4, 2016 (edited) Alright, here's what it looks like now. Actor Property PlayerRef Auto Idle Property MyAnimation Auto Idle Property MyAnimation2 Auto Spell Property MySpell Auto Float Property duration Auto Event OnEffectStart(Actor akTarget, Actor akCaster) PlayerRef.PlayIdle(MyAnimation) ;VoiceStart Utility.Wait(Duration) MySpell.Cast(PlayerRef) EndEvent Event OnEffectFinish(Actor akTarget, Actor akCaster) PlayerRef.PlayIdle(MyAnimation2);VoiceInterruptRoot. Should I change this to what you said or is this fine? Seems to be so far. EndEvent Edit: It needs to be VoiceInterruptRoot. Edited July 4, 2016 by Elias555 Link to comment Share on other sites More sharing options...
Recommended Posts