I am planning on making an FPS. For this i need to make some guns and such. However i have a problem.
First i need to explain how my fps arms and weapons are set up. First i make some arms, then i rig those along with a 'weapon' bone. Then this is exported to UE4 and used as a skeleton. Then each weapon adds extra bones for that weapon, and it's then exported as a skeletal mesh, using the fps arms skeleton. This allows me to both have unique weapon animations with lot's of things going on and reuse animations between weapons. It also means i don't need to redo basically the same animation blueprint for each and every weapon, and also allows for these animations to transition into each other. Basically this is the only way i currently know that doesn't suck.
My problem is that i can't get my models or my skinning perfect the first time. But i might first spot such mistakes after i start animating. Then i go fix it in the fps arms file. And then all animation files don't have that fix (even though it works fine in-game).
I am working in blender and because the rig changes between weapon files i can't link the rig, or even just the mesh (since blender considers them entirely different skeletons in a way ue4 does not).
All of this means that any mesh changes means redoing ALL animations. Or dealing with a potentially extremely inaccurate preview of what the animation looks like.
So what do actual game devs do?
Do they finish the mesh the first time and never change it. Leaving in any mistakes?
Does Maya or 3ds Max have a solution to this?
Am i screwed if i use this method of making weapons?
Replies
Max uses the Skinwrap modifier that targets the old mesh and then converts to skin.
Maya uses bind and then copy weights.
It looks like blender might have some ways of transfering weights, maybe?
https://stackoverflow.com/questions/34719718/transferring-rig-weights-from-one-mesh-to-another-in-blender-2-76/34760742#34760742
You can find more information on the subject here: https://docs.unrealengine.com/en-us/Engine/Animation/RetargetingDifferentSkeletons