During the production of my reel and some TGA Game projects, I've had to add and modify some of the rigs I animated with. For my "Combat partners" shot I used a rig I bought from Joe Daniels and made it so the character could hold and interact with a gun.
I modeled an M16 to fit the art style and gave it some controls. I wanted the hands to follow the M16 so I parented the IK-hand controller's null groups to a "gun-space" locator. I then made an attribute on the guns controller to switch the parent's weight 0 to 1. This allowed me to animate either of the characters hands to follow the weapon and let go of it.
In this game project, I had the opportunity to work together with 2 riggers and order a custom-made rig for the hands and gun models I made. The riggers and I held up a conversation about the rig so that it could be as personalized as possible.
Later on in the project I had more time to polish and modify the player weapon, so I sat down again and looked at it. I wanted to have more movement so that the weapon could feel more dynamic and activated, therefore I created 3 rings on the back of the gun to look like some sort of holographic, moving UI.
I created the rings and joints and placed them where I wanted them. Added 3 controllers, put them in their own groups and rotated the groups so that the controller's local y-axis always would be "up/out" because I wanted the rings to only have one curve for it. Lastly, I parented the rings with both parent and scale constraints.
I specifically wanted a scale constraint to be able to get the squash and stretch effect. The small problem I had was that Quantum Games homemade game engine at this time did not completely support scaling. If a joint was scaled it's children would also scale, naturally, but I wanted the rings to scale by themselves. So I made a joint hierarchy where all the rings joints were in the same hierarchy level and did not have children.