Going Backstage for Black Swan
Indeed, the feathers, created by CG artist Shawn Lipowski, were crucial in achieving the swan transformation shot. The wing feathers consisted of simple models, according to Lipowski: curved planes for the barbs and cylindrical geometry from extruded curves for the rachises. Each feather had a deformer rig to add bend in two directions and also to allow growth from the rachis outward. The body feathers were simplified and usually didn't contain rigs or separate rachis geometry. Feather silhouettes, though, were created with a cutout map from hi-res scans of actual Swan Tundra feathers (a white swan) provided by the U.S. Fish & Wildlife Service Feather Atlas project. Those same scans were darkened down in Photoshop and painted over to produce a more plausible black swan feather. Normal maps were generated through ShaderMap to add barb roughness.
In terms of layout and rigging, the wings were built based on a compromise between the concept drawings and the dancer rig. The dancer rig was built in LA with the arms divided into multiple joints to allow for greater tracking flexibility. To match the rig, the wing has the same number of joints and is constrained to follow the arm's movement and twist at each extra joint location, but also contains extra groups to allow for additional twists and offsets. This was critical because what was good for the track was not necessarily natural for the wing. Twisting was especially an issue that resulted in a lot of additional keying on the wing rig.
The joints of the wing rig were skinned to a NURBS foil shape, which was more bird-like in proportion than arm-like. The larger feathers, the primaries and secondaries, were hand positioned on this NURBS surface. The smaller feathers that fill in the wings were placed by mel scripts, which Lipowski wrote to instance based on texture maps. Additional mel scripts constrained the feathers to the NURBS geometry using Maya's follicle nodes. The body feathers were also entirely positioned and scaled based on texture maps and the mel instancing scripts. The total feather count was around 11,000 and Lipowski wrote around 1,500 lines of mel code for rigging and scene management. When the wing rig was fully built and attached to the dancer rig, the reference to the dancer in the master file could simply be swapped with the updated wing version.