Recommendation to get 2 imported GLTF humanoid meshes interacting with each other

Thanks @labris @carolhmj @PatrickRyan, this helps sort out some workflow questions I had and sheds more light on how to properly generate these animations. Very helpful!

I have a followup question about making the pre-fight animations blend together (Mesh 1 walking toward the fight and “put up your dukes” part as both meshes get ready for battle).

  1. Since I am using Animation Groups accessed from the mesh, is there a canonically best way to smoothly interpolate between idle animation group and another group?

Some examples I’ve found on the forums here are:

A) https://playground.babylonjs.com/#IQN716#9
B) https://playground.babylonjs.com/#6I67BL#321
C) https://playground.babylonjs.com/#IRJ10K#6
D) https://www.babylonjs-playground.com/#PSR2ZX#33

  • A) This one blends animations using animation weights, but accessed through the scene object. Mine will need to be accessed through the .glb mesh, and there doesn’t appear to be a beginWeightedAnimation method for animation groups.

  • B) This makes use of AnimationGroup.MakeAnimationAdditive and MakeAnimationAdditive seems to be best used when characters are standing still.

  • C) This one by Drigax appears to be used when all animations are on the same NLA track. Mine will be on separate tracks, so not sure if that applies. This playground doesn’t seem to work properly but came from a forum thread here: Weighted animations from animation group ? (with web example) - #10 by bghgary

  • D) This one makes use of scene.AnimationPropertiesOverride and this seems the most promising. However, he accesses the animation group through the scene object and mine will need to be accessed through the .glb mesh directly. Is an Animation Group a valid target for overrides or am I missing something here?

Which one do you think is best for the use case of pre-determined animation groups accessed through the .glb?

Thanks all for your time looking into this, answers have been very helpful already!