I tested making animated doors for my drivable vehicle and instead of adding sockets and attaching meshes for doors and steering wheel, I just added additional bones for these objects. It turned out to be so simple to animate these:
- The Apply A percentage of Rotation node does the trick for the steering wheel. Completely independent from the Actor Blueprint.
- For the doors, a simple Transform Bone node for the doors in the AnimBP using a timeline in the Actor Blueprint with GetAnimInstance works perfect.
In this case, this was the obvious way to do it, as the vehicle is a skeletal mesh anyway.
But also, for other objects I believe this could be interesting. Attaching meshes via sockets means, that more than one mesh has to be rendered, resulting 2 or more draw calls, even worse, if multiple material slots are used. Particularly for mobile, to my understanding too many draw calls are still something to avoid if possible.
So one advantage of using a skeletal mesh like with the vehicle, this is one single mesh only, so we can save draw calls.
Not sure about the disadvantages in terms of overhead by the skeletal animations, but as the skeletons are so simple, I don’t believe, this causes much overhead.
I’m quite sure, that there are many more aspects, so I’d be happy to hear what you think about this.