Well this is strange, I did not see your reply and the fact that you solved the problem, when I wrote my reply. Which is really strange because you solved the problem and posted it 3 hours before I did… I dunno what happened that I didn’t see that you solved your problem.
However, just a tip, there are 2 main ways of controlling a mesh object with an armature in blender. First way is to use an armature modifier and weighting the mesh to the bones. This is what happens when you parent a mesh to an armature and choose auto weighting. This method is good for organic things, humans, plants, animals, etc… The 2nd way to control a mesh object is by parenting the individual mesh object to a specific bone. This is great for mechanical objects, like a backhoe, all parts of the backhoe’s arm would be separate mesh objects, and you just parent the object to the bone controlling it. Using this method, the mesh objects won’t deform (bend or twist) but just move as the bone does.
In your case, it appears all the parts of the gun are just one mesh object. It’s mechanical and you don’t want to deform it, but it is one mesh object so it’s parts can’t be parented to it’s control bones. The best way to rig this is to add an armature modifier to the mesh object, then create vertex groups manually for the parts. If you have a bone named ‘slide’, then in edit mode, select all the verts that make the slide object, and assign them to a vertex group named ‘slide’. Same name as the bone to control it. Like wise, if you have a trigger bone, select the trigger vertices and create a group call trigger. When you do this, by default the weight is set to 1 for the vertex group and now all the verts are controlled 100% by the bone, like a mechanical object.
Hope that makes sense…
Thanks for the comment on my quote.