HomeBlog
Rigging

How to Build a Wing Rig in Maya for Easy Animation Control

Wing setup for fast animation. made in Maya using lattices, joints and blendshapes.

Arnout Meysman

Rigging Artist

3 min. read
24 Feb 2026
Quick summary

This wing rig supports both flying and acting with a minimal set of controls for faster animation. It uses a skinned proxy plane to generate a lattice that drives clean feather card deformation, plus a joint and skin layer for finger feathers with automatic spread and secondary feather controls. Corrective blendshapes reduce lattice stretching and improve feather spacing, and a fly mode switch enables dynamic spring chains on the wing for smooth motion.

Client request

A flexible wing rig for flying as well as acting. Controllers kept to a minimum to speed up animation. Separate finger feather setup. Minimum deformation for the feather cards which will drive the groom in Houdini.

โ€

Features of our solution

  • Standard IK/FK setup with bendy arms
  • Lattice based setup with simple controls
  • A joint based layer on top for the finger feathers
  • Corrective blendshapes for a more even spread and better feather deformation
  • Controls for secondary finger feathers
  • Automatic finger feather spread
  • A switch to โ€˜fly modeโ€™ with dynamic spring chains on the entire wing mesh

โ€

Detailed overview of the process

โ€

Lattice part one

We build the rig on top of a simplified plane, which is skinned to the arm-, wing-and finger joints. This plane and itโ€™s skinning allows us to generate a lattice on top to which we copy said skin weight. Te lattice method gives us clean deformation of the feathers without them clipping. It also handles the arm deformation. ย We create a duplicate of the original mesh, the lattice mesh.

Wing plane with joints

โ€

Blendshape and skin

Next, the fingers are skinned to the main finger joints, as the finger meshes are connected to the same feather mesh, we make a duplicate โ€˜skin meshโ€™ from the lattice mesh. We use NGSkinTools2 to quickly assign base weights per joint and do a manual pass afterwards.

We then create a blendshape to the original (output) mesh. We have two targets coming together on the output blendshape at this point. A lattice target and a skin target. Which we separate by excluding one them in the weight paint and inverting that map onto the second. Something that is easy to do with the SHAPES plugin. This prevents all double transforms.

Blendshape influence map fingers

โ€

Finger spread

Now in order for the fingers to be able to spread with the wrist wing controller, a controller that drives the feathers via the lattice, we can add a curve, extracted from the edge of the plane. We can attach one locater per finger to this curve. It is skinned the same way as the lattice. The finger chains are aimconstrained to the locators, resulting in the fingers being able to spread between the spread controller and the wing wrist controller. The skinning for this is also done on the simple plane and copied to the curve.

Finger spread with the curve visible

โ€

Correctives

To prevent the lattice from stretching the feather cards too much, we compensate the movements with an array of corrective blendshapes. We can create these shapes by making an automated rig setup script that separates the feathers, skins them to a joint placed at the base, merges the skinned meshes and transfers the original vertex order to the newly created mesh. From this setup we can create a series of shapes for a few saved poses in animation library. The process is sped up a lot by using the SHAPES plugin here to create automatic deltas. It is easy to quickly edit blendshapes and connect to the right drivers. We use a combination of the vector weight drivers, driven keys and some combo shapes to get the right results.

Example of a corrective that spreads the feathers more evenly + counteracts lattice stretching

โ€Fly mode

We can create a 4th mesh with FK chains to enable dynamics with the spring node on the fingers. This gives us an alternative to have smooth automatic bending fingers when the birds need to fly. The FK chains have a lot of joints for smooth bending and one controller driving 3 joints for faster animation. This is also blendshaped to the output mesh. Via a switch, we can enable/disable the finger targets we choose: acting or flying.

โ€

Lattice part two

Something that the lattice can cause when moving it in combination with skinning and blendshapes is ugly deformations which are quite unpredictable. A solution for this is moving the lattice base together with the shoulder of the wing. Since this will cause the mesh to stay in place now, we can constrain it to move with the shoulder again. Now we have full range movement of the shoulder and lattice deformation on the feathers without unpredictable deformations.

โ€