Actions don'y always play start to end

I use loop end and play modes for my actuator actions but still actions don’t always play start to end though sometimes they do, Each action
is in a different state but i don’t think that makes a difference. Also sometimes when actions go from one action to another action it is not smooth even though i use blendin Any ideas?

digiman

For blend-in to work, you need to have make sure that only one is playing at a time. For example, if I am transitioning from walk to run, the walk action actuator needs to be turned off as the run actuator is turned on.

The “Play” mode for action actuators is not ideal for blend-in, but they should work (As long as you aren’t using a “Play” mode as a “Loop End”, where the animation keeps playing over and over because a True pulse is being sent over and over.

Usually, when animations don’t get to play fully is because they are were interrupted before (this is from personal experience). Sometimes when you are playing an animation and you interrupt it with another, the first one can start to skip when you use it afterwards. Once again, this is from personal experience, it may just be coincidence.

I’m not exactly sure how the animations in blender work but I usually have no trouble after I make sure that only one animation is playing at a time… Unless I intentional put an animation over another.

Good luck!
Linkxgl

They are being interrupted. Here is my setup My object has like 8 different actions, each state has one action like walking for example
but this object had radar sensors so when another object comes close it triggers another action before the previous action has finished how would this be setup so all actions are played and only then can another action be triggered? I have tried several modes and even different sensors. For the most part it works okay, but it would be better if it worked consistently

digiman

Very simple, use priorities. The lower the priority number, the more importance it has. If you have your walk animation as priority 1, then it will play on top of anything that is over 1. I’m not still not sure if this works, if it stops the animation completely, but it’s worth a shot. Otherwise, you just need a way making sure that only 1 animation plays at a time, unless you intend for more to play at 1 time.

I know about priorities, but that does not seem to work. Example If object A is playing an action and Object B comes close, it will trigger Object A radar sensor chasing Object B, interrupting the action Object A was playing. Must be a way around this problem. I will keep fooling with it.
Thanks for your suggestions

digiman

digiman,

First, make sure that the Animation Framerate and the game engine (logic) framerate are set to the same value. Then go to your Object A and create an integer property for each action. These properties will be used to tell if the action is done playing. Go to the action actuators and put the corresponding property into the “frame property” option at the bottom of the actuator. This will put the frame of the action as it is being played into the property. Now before any action can be played, have the logic check to make sure that all the properties have a value that is equal to the last frame of the corresponding action. You will probably need to use python for this. You should also set the default value of these properties to the last frame of the actions so that when the game starts it will play the actions. Hope this makes sense.

There are bugs with the actionActuator and states. They are reported in the BugTracker already.

Unfortunately this means you need to find a way around it.

My experience with the least problems:

  • the actions should have the same length
  • play one action at the time
  • explicit deactivate ActionActuators (negative signal e.g via INV or NAND) before activating another one

I’m not sure if that fits your situation

Monster