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.
What are roots, bones, and effectors?
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.