What is the proper way to implement first person animations?

Hello everyone,

I have a rigged first person arms mesh and weapon meshes. I want to make first person animations but I don’t know the proper way to implement the animations? These are the way I’m thinking of:

  • Animate arms and weapons in the same fbx files. For example, if I have 3 weapon meshes then I’ll have 3 fbx files which includes arms and weapon animations. Then I need to create animation blueprints for each weapons because their skeleton tree will be different for each fbx files. When player switches the weapon, I need to switch animation blueprints as well.
  • Animate arms without weapon mesh. By doing that, the animation tree will be same because there’s only arms. Then I need to animate weapons separately for reloading and shooting animations (for magazine in-out and ejection animations). Then I need to create only one animation blueprint and animation state machines in the blueprint for each weapons.

I researched this subject on the Internet and I saw that arms and weapons are animated in the same fbx files. Creating animation blueprint for each weapons looks like not the best way but I don’t know.

Which one is the proper way to implement first person animations? Or is there another way to implement this?

I think animating each weapon separately will be better, because it will provide more accuracy. Since you’ll still create hand animations for each weapon, adding a few bones per weapon won’t increase a work load in a 3D editor much, but will greatly facilitate the work in the UE.

Thank you for your answer. I just realized that making weapon animations separately doesn’t work in some cases. For example, I need to attach the weapons to the right hand if I follow the second solution (animating weapons separately). However, if I have a bolt action rifle, the weapon should be held with left hand while right hand doing that bolt action.

I’m so confused right now. First solution will need many animation blueprints and it doesn’t look like a good way to implement this.

I really think that for your animations to be correct you have to create separate static meches for each weapon (weapon + hands), and switch the mesh when you switch the weapon in the game. Thus you won’t have to deal with snapping to sockets / parenting weapon to left/right hand and with positioning them relatively to each other. Yes, it will result in multiple assets instead of one, but I truly believe that will provide more natural and realistic animations.