Action Editor: cyclic yes but want cycle to be cropped from frame 25 onwards.

How do I offset or crop the “cycle” to a specific part of an animation curve in the action editor?

Using the games engine, I have a character which enters the scene from left (this takes one second, or the first 25 frames) and then walk around in circles (frames 26 - 525) until he his halted by other game events.

The animation is really all one action, but it games engine I am making the animation play frames 1-25 (to enter) and then loop frames 26 to 525 after this. My problem is that when he’s doing the loop, there is visible change of pace the end/start loop. As an animator I know the proper way to fix this would be to use the graph editor, set as cyclic and make sure the start / end transitions meet at a smooth angle. But in the action editor, the cycle includes the first 25 frames. I want it to show me the cycle from 26 onwards. I have played with “restrict frame range” options but can’t seem to get it to just start the cycle from frame 25. It seems simple but how?

This is more about animation but anyway:

I trust you have copied the keyframes from 26 to 525 since you want it seamless? But that only makes the x,y location of the keyframes the same.

If you look at the graph editor you can see that the curves arrive at the seam point in different angles from each of the ends. So you really just need to adjust the tangent handles so that the curves meet in the same angle. “Make cyclic” is really pretty cheap fix to this if you think of it and also it would likely ruin the other transition ie. from entering to walk around.

What could be a better and more scalable and modular approach would be to simply have different animations for entering and walking around. You can just copy the animation you have via “+”, rename the two and delete what you don’t use in each of them. Then you just script it together in the game engine in various ways according to what you need.

Hello
if I understood well, “States” could help you, more or less like this:
Add a “Int?” property to check which frame is played
Then in first State layer
Always -> AND - Action Actuator
Property Sensor (check for frame 25) -> AND -> State Actuator - Set layer2
In States Layer 2
Always Actuator -> AND -> Action Actuator

Bye

Kheetor: I did (originally until I changed it) have separate animations for entering and walking around, the problem is that in doing so there is more likelihood of having a skip between the end of the entry and the start of the main loop (that is, once I start tweaking the curves). By having them as one continual curve, any changes to the beginning of the main loop are automatically smoothed to the end of the entry (and vice versa). The problem remains that I’d still want to temporarily crop between either ends of the main cycle to make sure they match. I can copy / paste the start loop bezier over the end loop one which might indeed be an answer for making the most seamless result.

OTO: You seem to be telling me how to run actions? I belive I’m already doing that. (Please elaborate if you mean something else)

Am I wanting a feature Blender simply does not have?

I’m attaching an example file of the kind of game engine I mean… three balls enter and then start moving around in a loop. It would be good for aliens in a game of space invaders / galaxians etc. I have it pretty smooth already in this example, but there is a tiny skip, and my question on the temporary crop to the cyclic curve still stands.

Thanks for your help so far, btw.

Here’s the blender file: loopmovement.blend (601 KB)
Push “P” over the camera view to watch, then go to layer 2 to examine the animation object.