ZachAR3 So you animated an empty bone for each weapon and then attached the weapon in godot to get around the nla strip problems? Is it possible to use two rigs in a single nla strip / action or do you have to do it like that?
Yeah. I had an empty bone for each weapon (and potentially other bones) and then I animated it using that. Then in Godot I would add BoneAttachments to have the weapons in the correct place. As long as the weapon is the same size and shape as what I was animating for, it worked decently. It was a single rig, the FPS character and all weapon combinations were rigged, but many of the weapons were just empty bones. For animating, I parented the weapons to the armature, did a super simple rig alongside with the FPS character, and then once I was finished I deleted the weapons so it was only the character. Each weapon animation was it’s own action in the rig, and then I just swapped them in code. For transitions, I had each weapon have an equip and un-equip animation that would have the weapon go completely outsize of the camera to hide the weapon suddenly disappearing and a new one appearing, similar to how I did it with the scaling.
However, this was rather time consuming and I didn’t like the results. It also enforced a constraint of all weapons that I wanted to swap out to have the same general shape, otherwise the animations wouldn’t be reusable. I scrapped the project in the end for other reasons (time primarily), but that was the last method I tried for FPS animations. I don’t have the files anymore though, so this is all off memory.
The way I did in the FPS tutorial, rigging the character and all the weapons and then scaling the weapon bones to 0 when not in use, allows for a lot more custom animations and is way easier to animate since you can see the objects how they will look in the end result, but it is not very useful for animation swapping, and the project I was working on prior to scrapping was going to have changeable weapons.
I also looked into IK as a possible solution - but this didn’t work out either. It did send me down the rabbit hole of learning IK though, so that’s something 🙂
Ultimately, it is just a tricky issue and I think all the choices are a compromise between easy to animate, easy to use, and easy to swap/customize through code.