Animating Weapons for Counter-Strike Source/Questions

Why should you think of an animation ahead of time?
Before you even begin to animate, it is vital to know ahead of time what you are going to animate. You should have a very detailed view in your mind, or you can record a simulation with a camera from multiple angles to get a more accurate final animation. If you do not think of it now, you might have a hard time animating later.

What is an SMD?
An SMD is the model and animation format used by the source engine. There are three types of SMDs: model, animation and physbox
 * Model SMDs store model vertex data and skeletal positions.
 * Animation SMDs store skeletal positions and alter the values of them to make animations.
 * Physbox SMDs store sets of vertices that collapse. (e.g. You shoot a table and a leg falls off because it's in its own vertex group.) We will not be using these for viewmodels.

Roots
The root is the first joint in a chain hierarchy and holds location data for the rest of the chain. If the root is moved, the rest of the chain moves according to the same data (the shoulder joint as the origin of the arm).

Bones
Bones are solid (non-deforming) links between the joints of a rigging skeleton, and provide a rigid structure that follows the rotation of all joints between the root, additional bones and the effector (as the arm bones provide connections from the wrist to the elbow to the shoulder).

Effectors
An effector is the node that manipulates the entire inverse kinematic chain (as a hand that moves to grab an object will cause a series of rotations throughout the arm). While it cannot change the location data of a root, the effector causes rotational deformations in each joint starting from itself and ending at the root (highest in the hierarchy) to link every bone in the chain. This can have interesting side effects as multiple valid bone placement solutions might be found for the same effector movement, unless rotational limits are imposed on the joints.

What is IK and FK?
FK means Forward Kinematic. In a forward kinematic skeletal system, a bone can only deform its own specified set of vertices. IK means Inverse Kinematic. In an inverse kinematic skeletal system, there is a chain of bones. The end of the chain (usually called the effector) deforms all of the bones in the chain (and obviously vertex groups of the bones) given a set of constraints specified by the user. An example would be a human finger. There are 3 phalanges on each finger. In an inverse kinematic finger skeleton, there are 3 bones: The proximal phalanx, the intermediate phalanx, and the distal phalanx. These 3 bones can be set up as an inverse kinematic chain. In order to achieve realistic deformation, the user would need to specify constraints for each joint. Once the constraints would be set up, moving the effector around would adjust where the finger points in a realistic manner.

Notes: An IK chain can contain any natural number of bones. If there is only 1 bone, the root acts as a pivot and the effector acts as a rotational modifier. Effectors never change the root's position in space.