[Dev][GSoC] BGE animations: Looking for testers

The BGE animation project (located in the Pepper branch) has gotten to the point where all games’ animation/logic setup that worked in Blender trunk, should work in Pepper too. So, I’m looking for people to test this and verify. Please grab a Pepper build off of Graphicall and try out your game with it. If anything is different in you game when running on a Pepper build, please post it here so I can fix it!

Thanks,
Moguri

Im on it, my game dont have too mutch animations, but I ll describe if I find something.

Also, feel free to try out the new stuff too (layers, python api). For more information on those, please look here.

Any feedback is welcome!

So far I couldnt download de file, Its downloading at 10 kbps, and when its about 9 mega it stops the download.
I ll try tomorrow morning sorry

For anyone doing tests, it would be best to make sure you grab a build that’s at or later than revision 38108. That revision should help with some compatibility problems.

Also, leonn, did you get anywhere with your download?

Moguri it didnt download, can I try other version as you said? or just the pepper, I dont understand why it dont came.

I tested it out. I made an armature and mesh specifically in your build, so I’m not sure about backwards compatibility, but it’s pretty sweet already. Being able to call actions from the object is very nice. However, it’s a bit odd - the playAction() function binds the specified action animation to a channel (by default, 0, right?). It also sets the blending amount (by way of an optional argument?). It’s a bit odd for the same function to play an animation to do all of those functions - wouldn’t it be better to have a handle control, like Audaspace? Something like:


obj.actions.Add('Walk')   # Add the 'Walk' animation to the object's animation dictionary
obj.actions['Walk'].play() # Plays the walk animation; also can accept the string name of the animation
obj.actions['Walk'].frame = obj['frame'] # Set the current frame of the walking animation
obj.actions['Walk'].endframe = 151       # Set the ending frame of the animation
obj.actions['Walk'].blending = 5             # Set the blending amount

Something like that would be nice, though it’s the same thing as yours, just presented differently. Good job.

EDIT: A problem with my code would be that it would be impossible to have two instances of the same animation since they’re stored in the dictionary by name, so maybe your way would be better.

Also, the way I currently have it makes handles difficult since they could easily “expire” on you. When you play another action in the same layer, it reuses the existing action in that layer (this saves on pose/shape copies).

Moguri, I’ve downloaded it from SVN, I’m with r38278, I’m on a Ubuntu Natty x64 and I had no problems, but if I have, I’ll describe.

I’m still looking for testers and feedback. If people do test, please use a revision after 38719 since this revision brings improved performance. When compared to trunk, I now get about a 2x~3x fps increase in my animation stress test scene, which can be found here.

Pepper builds can be found on GraphicAll.

Its weird, the framerate indeed increase a lot, but look like that we have a frameskip on it, its weird.
This first image you can see the first pc without the pepper branch, the next one you can see on the first pc with the pepper branch.
On the third image you can see the the second pc without pepper branch, the next one with the pepper branch

http://imageshack.us/g/835/testpcbetterpcotherbran.jpg/

the first pc is slower than the seccond.

I hope it help!

Thanks I’ll look into it.

I cant seem to get drivers working in the bge.

Here is what I am doing: I create a shape key > add a driver > change the driver type to averaged value > assign the transform channel to an object > give that object an animation to effect the driver > it works in the viewport but when I start the game engine I dont see any changes.

The rest of the changes work fine (so far) and its great having a unified system, good job!
Ex.

Drivers probably only work with bones in the BGE, and not external objects. Could you try adding a bone to the mesh and driving the shape key with that? Also, did this work in 2.49?

Pepper r38213 / Normal Build
13 fps


Pepper r38961
33 fps


20 fps increase!!!:eek::eek::eek:
Ubuntu Linux 11.04 32 bit

Windows XP 32 bit tested with pepper-r38825 and pepper-39004
Pepper 39004 (Demohero) always crash when i try to rotate the view.

  1. The Ping Pong playback is not working correctly. It plays the animation endless.
    If I import a file with a ping pong playback it works correct for F-Curfes and shape key animations. But if I replace it to the new actuator it did not work any more.

  2. If I don’t set up the layers, blend in is not working.

  3. Not Important but the animations are not smooth. It looks like that the animations calculating steps have been reduced to the halve.

  4. Ther is the “Default” animation (Q-Key) with only one key frame in the CharacterKit.blend that which was only blended in and out with an flipper playback. That is not working any more.

  • Loop end --> Blend in only so long key is pressed. If key released jump to key frame.
  • Loop stop --> Blend in is working.
  • Flipper --> So long the key is pressed blends in only first animation step. If key released jump to key frame.
  • Ping Pong --> Blend in is working.
  • Play --> Play every key press one blending animation step.

Attachments

CharacterKit.blend (871 KB)PingPong25x.blend (331 KB)

Please help me. Here’s an example.
Animation begins. Then press space, it starts the next animation. Unpress space but always does not work.Proverka_Animacii_2.54.blend (290 KB)

@HG1
Thanks for the report and the example files, they are really useful. As of revision 39089, ping pong should better match trunk, but it’s still not exact (there are differences when the action is interrupted). As far as blend in not working right, I’ll need to do some more digging.

@3dmax
Enable pulse mode on the always sensor and set the priority of the “e” action to 1.

Thank you very much:)

@HG1
Your CharacterKit.blend now works better in Pepper. I’ve fixed most of the issues except your flipper animation. I’m not sure on what the problem is there yet. Also, you’ll want to turn on pulse mode on the always sensor for your idle animation. Thanks for the files, they are really helpful for smoothing out these kind of issues. :slight_smile: