Going Backstage for 'Black Swan'

Dan Schrecker of Look Effects tells us how they pulled off Darren Aronofsky's Oscar contender.

Check out the Black Swan trailer at AWNtv!

2D image animations by Look Effects illustrate Nina's mental state. All images courtesy of Fox Searchlight.

In Darren Aronofsky's menacing Black Swan, a psychological thriller set inside the New York City Ballet (channeling Brian DePalma and David Cronenberg as well as Powell & Pressburger), Nina (Natalie Portman) battles personal demons to pull off the dark side of Swan Lake.

Look Effects (under the supervision of Dan Schrecker) used a combination of 2D and 3D digital effects in about 220 shots. Highlights include the film's dream sequence prologue, 2D image animations to illustrate Nina's mental state and show her evolution. Meanwhile, the vfx team worked very closely with the prosthetics crew to enhance the practical effects, while designing and building their own solutions. The narrative demanded a good deal of head and face replacement, which, again, was accomplished through 2D and 3D means.

"The first big challenge with this was making sure everything lived in the world -- a hand-held, verite, super 16 style that Darren and Matty [Labatique, the cinematographer] created," suggests Schrecker. "And the second challenge was a budgetary one. I don't want to dwell on it, but it was something that Darren had to face. He's always facing it but maybe on The Wolverine he won't.

The look of the feathers came from an anisotropic shader; the wings were built based on a compromise between the concept drawings and the dancer rig.

"We had to come up with a lot of solutions for things. For example, our face and head replacements were all 2D. We didn't really need to do the full-on 3D Benjamin Button thing because it wasn't part of the performance. It was much more part of the action -- dance doubles and Nina fighting with herself. By shooting the doubles normal speed hand-held exactly how Matty and Darren wanted to and then bringing Natalie out, doing her in slow-motion and having her just walk through the exact same sequence so that her head matched the lighting, matched the motion, matched the angle. And then it was just a 2D composite.

"For the skin rashes, it started out as appliances and prosthetic builds that we then brought in and animated. Deron wanted emotion in everything, but at the same time he likes to shoot practically, and it's great that Matty had [something tangible] that he could light and shoot.

"There weren't a lot of groundbreaking technology solutions: it was all tried and true methods that we've used before. Obviously the wings at the end were a big one, and a lot went into that in terms of research and design and builds."

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.

Growth images were read in by an expression in Maya, which drove feather scale and other properties.

There were 10 primaries, eight secondaries, and five generic body feathers in total. Each set was mirrored producing 46 feather textures. The look of the feathers came from an anisotropic shader, which provided the smooth geometry you'd expect from a real feather composed of thousands of individual barbs. The shader was slightly translucent to allow light through when the wings crossed in front of stage lights. Special care was given to reflection falloff, since there is essentially no diffuse lighting on the feathers due to the dark plate and dark texture maps being multiplied against the diffuse lighting values.

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.

Primary and secondary feathers were animated by keyframing scale attributes and keyframing the wire deformers of the individual feather rigs.

Growth was one of the more challenging aspects, according to Lipowski. He animated black-and-white maps in After Effects and generated some low-res image sequences. Those growth images were read in by an expression in Maya, which drove feather scale and other properties (such as rotation for feather ruffling). Each feather had extra data associated with it, like UV position, which had been stored previously when rigged by the instancing mel scripts. Lipowski suggests it was a crude but effective feather system.

When it came to animation, the primary and secondary feathers were grown by hand by keyframing scale attributes and keyframing the wire deformers of the individual feather rigs, which allowed growth outwards (the barbs pop out of the rachises). Additionally, keyframes were set by hand every couple of frames to keep the wing from twisting (often around the elbows) and to minimize interpenetration. As the shot progressed, the matchmove often had to be tightened up with additional keyframes.

Lighting was done entirely with conventional Maya area and spot lights. They had enough images to generate HDRIs, but the lighting changes and large camera movement made it impossible for one or two HDRIs to cover the wild shifts in luminance. Lights were built based on the camera track and plate with numerous stage lights above and to the sides of Portman; six large chandeliers were approximated, several bright footlights near the orchestra were added and three very bright spot lights casting rim light were critical. Even with all these lights, the black levels in the plate changed dramatically due to the smoke in the theater (a volumetric effect lights alone could not approximate). A lot of color correction in comp had to be done as a result to make the wing feel integrated.

The shot was rendered in mental ray using the Rasterizer because of the huge amount of motion blur. Most of the wing is captured in one big beauty pass with an additional shadow pass and numerous mattes for the compositor.

Bill Desowitz is senior editor of AWN & VFXWorld.