Full comprehension of BGE animation blend-in function

Hi guys,

I don’t know if you already tried to understand how to blend animations in each others, but it seems to be a bit tricky and not always easy to observe each effect marginally to others…

  • priority , layer number, number blended frame , playing mode, blending mode (add, blend) , add, force , continue… so many option

beside this, blending seems to work as long as animations don’t perform on the same channel (example : anim A rotates X axis, anim B rotates Z axis ) ; launching A and B on same time freezes the game unless 1 has a lower priority number , but it doesn’t freeze if not same layer . Animations blending doesn’t work on object but on bones ? Only child bones and not root bones ? Playing mode : PingPong, Flipper, Loop (stop and end) …

For my game i’m building a animation tree system in python but I really have to get a precise documentation on action logic brick and it’s relative blending option.

Do anyone had made a complete and exhaustive study of this ? For the sake of the community, shall we make a tutorial .blend ?

I didn’t get a view on UPGE, but does it brings something new with animation nodding (like Armory or Godot ) ?

well, first observation on the action actuator :

the blending option and the layer (and layer weight) are 2 separates things. The first 1 permits to blend 1 channel on another 1, the second requires to work on different channels.

blend, the frames used to blend into other animations, priority witch animation to play first (lower number is higher prio), layer the layer the animation is played on.

if you do all in python then why do you even need the brick?


obj.playAction('action','start','end')

# name, start, end, layer, priority, blendin, mode(0=play,1=loop), layerWeight, ipoFlags, speed
obj.playAction('','','','','','','','','','')

oh and true animations blending need them on separated layers

i prefer to use some bricks (not too much) and decorate them with python. Keeping some logic bricks is good to structure… a bit like bones in a body :slight_smile:

yes, i know all this. But i really want to understand in deep. I started to build a little .blend to examine things. I noticed some strange behaviors sometimes. It seems simple but there’s lot of possibilities … for example : using the same brick for 2 different actions (switch with python) , what happens when change priority in time ; using 2 different layers for 2 different animations but what happens when 1 starts during the second… etc … do all this works the same when using different animation modes ?
When i use a big blending time, the blend is linear ? it seems not. The layer weight has nothing to do with the blending function . What happens when the blending time is bigger than the action ? etc etc

1 Like