Hey @farzher I definitely echo what @Deltakosh is saying here.
This is a friendly community and we’re more than happy to help everyone learn, but it all starts with calm mutual respect.
You’re making it very evident that you’re frustrated and we’re sorry to hear that, but let’s remain respectful please.
How can we help? I’m very bias on the subject, but I do think the Demystifying Animation Groups video does a decent job of explaining how animation systems in Babylon.js work.
Here’s the high level gist:
“Animation data” can be used to create an “Animation” in Babylon. For example, let’s say you have some generic animation data like (int 0 at frame 0 and int 5 at frame 30).
You take that data and create a Babylon “Animation” with it. In Babylon an “Animation” is independent of an object because we want you to be able to apply that “Animation” to any object property in the scene. So you could take your int 0 at frame 0 and int 5 at frame 30 and apply that to anything from a box position, to camera clipping planes.
So a generic “Animation” can be applied to just about anything in Babylon.
To apply an animation to something you create what we call a “Targeted Animation.” This is the “Animation” that we created earlier, but applied to a specific target. For example the box position or the camera clipping plane would be the target. With a “Targeted Animation” you now have an “Animation” that affects a specific “target.”
“Animation Groups” are groupings of 1 or more “Targeted Animations”. Let’s say you want to take our int 0 at frame zero and int 5 at frame 30 “Animation” and apply that to both a cube position AND a camera clipping plane…and play them both at the exact same time. You would take that animation, create 2 different “Targeted Animations,” and then put them inside of an “Animation Group.” The animation group then has some nice methods that you can use to control all of the “Targeted Animations” inside of it at the same time. so “Animation Group.play()” will play all of the Targeted Animations together at once.
I’ll refer you back to this specific part of the video that touches on this subject: https://youtu.be/BSqxoQ-at24?t=441
Now things get SLIGHTLY more complicated when you bring in a 3D object that has animation data in it that comes from another piece of software like Blender. Let’s say you have a cube that rotates around Z in Blender. If you export that object out of Blender and include the animations, Babylon will load that object with an Animation group already set up for you that has the Targeted Animation in it. So a lot of heavy lifting is already done for you.
Here’s the cool thing. Because animations are separate entities from objects, you can very easily extract that animation data and use it elsewhere in the scene.
It takes a little getting used to understand how it’s set up, but once you understand the hierarchy hopefully you can understand the power of what’s possible with the animation system.
I hope this helps make things a little more clear.
Cheers!