Hercules

Having endured his legendary twelve labors, Hercules, the Greek demigod, has his life as a sword-for-hire tested when the King of Thrace and his daughter seek his aid in defeating a tyrannical warlord.

Watch the official Trailer

Milk created a series of effects, creatures, weapons and environments for Hercules from Brett Ratner/ MGM/Paramount, working for Double Negative.

Number of VFX shots: 88
Size of crew: 35 artists
Duration of production: 11 months in total, 8 months for assets plus R&D with 8 overlapping months for turnover

Key VFX work:

Athens
Milk created a full CG environment of Ancient Athens and the Acropolis. This proved to be one of the most complex and challenging parts of our work on Hercules.

We started by creating the terrain using Google map’s aerial view plus ancient maps as reference. We also had to create and build the terrain and tweak it on a per shot basis. We imported all the cameras for our shots into a master view so we could create one master asset for Athens that would cover all the shots.

In parallel we created an asset library of buildings (with hero buildings for close-ups, including temples, houses and courtyards); props (cranes, carts, canopy, scaffolding) and vegetation (trees, flowers). These assets were ingested into a library and cached individually into an Arnold source scene. Then these assets were grouped and positioned strategically on the terrain as if it were a giant Lego set. We also tried to minimise the amount of work to do for texturing by using procedural and tile textures for each element/material.

Arnold was indispensable to render all this geometry. We had 9,859 trees for instance and every leaf was modeled.

One of the key shots was a full CG, wide flyover shot that required a populated amphitheatre and background crowd. We used Golaem crowd software inside Maya to tackle this challenge. We created 3 main agents – a soldier a male and a female followed by different props and clothing. Golaem was then used to randomise all of these elements in order to make the people in the crowd look different and thus realistic. We had a total of 15,000 people in the scene; Their actions included walking around, standing and clapping. The combination of Golaem rendering with Arnold was again essential to achieve the shot.

Other DMP work
We also worked on 2.5D digital matte paintings in the Athens environment and throughout the film. We created the dmp elements in Photoshop and Maya, which were then assembled in 3D space in Nuke. We also added a lot of FX CG water, CG fire, CG mist/fog and CG rain. Houdini was used for these elemental effects. In a few hero shots – including a shot overlooking the Ancient Greek Shipping Yard in the early part of the film – the mist was rendered with deep camera map information in order to give extra control over shadows and lighting in comp. Fire assets were created to populate wide shots, whilst bespoke sims with more specific details were used when interaction with characters or matching the live action was required.

CG Snakes
Milk worked on the scene involvingtwo full CG snakes over 8 shots.

The brief was specific; to match the snakes with the Director’s choice of the Emerald Tree Boa. We spent some R&D time writing tools that would allow us to tackle the technical challenges involved in realising snakes and the way they move.

Milk has created CG snakes before and from our experience our best results come when scales are fully modelled. We looked at filmed reference of similar snakes to get an idea of what we should be seeing. The musculature and the articulation of snakes’ scales are very visible in certain conditions. Using Houdini and low-resolution animation we were able to extract information about which areas of the snake were going to be stretched or compressed as the snake moves. We also created collision geometry from either the lidar scans or the tracking scenes, which we then sampled the snake against for contact data. We used these two data sets to apply effects such as flaring of the scales during stretching and contact with the ground, drag along the snakes’ underside and a muscular expansion with ‘peaking’ of the snake’s body when the snakes are turning. We needed very tight control on these effects and how they were blended in and out, so a lot of time was spent tweaking how the deformations were set up. Houdini afforded us a lot of control over this and most of the deformations had controls for their intensity with length, time, height and radial length, as well as with how they combined with the other deformation/s. This gave us a very controllable and very stable result, which was ideal for making shot specific modifications.

Our brief also included a full CG statue with a marble look – to replace the one used on set. We also designed a ‘breaking’ effect where the snakes magically dig and push themselves out from the statue’s eye sockets. A flexible and procedural approach was created in Houdini to accommodate an evolving brief and maintain repeatability between revisions. The setup was modular so that each module would feed into the successive one and was broken down into a fracturing stage; a main rigid body sim stage; secondary rbd sims; dusty smoke sims and particles and debris sims. Choreographed fractures and chunks were created using a combination of Booleans and voronoi patterns. This was accomplished by creating digital assets wherever possible in order to maintain a tidy workflow and history between revisions.

The stability of the rbd sim was a key factor due to the confined space in which the objects had to be simulated, so the traditional rbd solver was preferred over the faster bullet due to the better volume collision handling. The smaller particle debris was partly driven by the advected smoke simulations. All solid caches were finally exported in the Arnold .ass format for rendering through the lighting pipeline back in Maya. The dusty smoke sims were rendered in Houdini using Mantra PBR.

Finally, we had quite a bit of work to augment the snake interaction in the live action (Rigid body debris on floor, bed sheet cloth replacement using ncloth in Maya). It was a fun sequence, and challenging as the snake asset color and model was continuously evolving right up until final delivery.

CG weapons
We had to enhance and/or extend a number of key weapons over 2 sequences. One of the deadly weapons was a fully digitally created whip made of human bones.

We created a full replica of the prop used on set, modeled from photos in Maya and textured using Mari. We had to create 3 variations of the length of the bone whip in order to achieve the required choreography for different shots. The regular whip had 85 vertebrae; the extended version 112 vertebrae and the super long version had 333.

The animation was quite challenging because it had to be dictated by the motion of the actor’s hand position and his actions. We also had to play with motion blur in order to have readability of the whip in the fast shots. We also developed a setup allowing us to create digital gore automatically. The setup was done in Houdini and whatever geometry fed into the pipeline created procedurally indented wounds, blood on both objects and squirts of blood with fluids. A lot of digital ‘gore’ was created for each whip impact.

CG baby Hercules arm
A real baby was shot on green screen, on set representing the baby Hercules. We were asked on one shot to replace the baby’s elbow/forearm with a CG version for a shot of baby Hercules trying to reach lightning on a distant painting of Zeus. As they couldn’t make the baby on set perform this specific action we had to go to a full 3D close up of baby Hercules arm. The animation was tough, as we had to respect the arm shake from the real shots.

CG crow
Milk created a full CG crow that flaps its wings while perched on a severed head and then picks out an eyeball with its beak.

To achieve a ‘photo real’ crow we upgraded our feather pipeline and decided to avoid polygons with transparency mapping for the feathers. As a consequence our crow feathers are only made up of curves. We also used curves on the beak and legs by adding coarse fur. We also used a full muscle system rig in Maya to make the crow skin move realistically. We used our proprietary wing rig module to create realistic wing movement; A lot of time went into the animation and the wing feather flex was hand animated. The grooming of the feathers and fur was done with Yeti in Maya. Our crow had 8406 feathers in total.

The crow’s eye was hand animated to give it a nice snappy elastic quality. This adds a lot of character to the crow and did not require us to engineer a lot of additional movement, as is sometimes the case. We used Houdini’s vdb tools to create an accurate representation of the severed head, with a slight modification to include a cavity inside the eye socket. Using Houdini’s FLIP fluids, we injected a small reservoir of viscous fluid into the socket that the eyes optic nerve would bathe in for a short number of pre-roll frames. As previously mentioned the animation drove much of the effects in terms of timing and energy. Most of the refinement period for this shot was adjusting the amount of gore to have oozing from the eye cavity; the viscosity of the fluid and perhaps most importantly, encouraging the optic nerve to display a realistic amount of fluid as it was liberated from the eye socket.

  • Director
    Brett Ratner
  • Producers
    Barry Levine, Beau Flynn & Brett Ratner
  • Production Companies
    Paramount Pictures, Metro-Goldwyn-Mayer Pictures, Flynn Picture Company, Radical Studios, Film 44, RatPac Entertainment & Mid Atlantic Films
  • Distributor
    Paramount Pictures
  • Milk VFX Supervisor
    Nicolas Hernandez
  • Milk VFX Producer
    Nick Drew
  • Release Date
    25 July 2014

We all made this happen…

This team of amazing people made this happen. Join our lovely community to work on the most exciting projects with our amazing people.

  • Nick Drew
  • Lorna Dumba
  • Nicolas Hernandez
  • Sara Bennett
  • Darren Byford
  • Liam Tully
  • Collette Nunes
  • Sam Lucas
  • Neil Roche
  • Amy Felce
  • David Bennett
  • James Reid
  • Jason Brown
  • Stef Brown
  • David Jones
  • TJ Singh
  • Robert N’Zengou- Tayo
  • Will Correia
  • Joe Tarrant
  • Jean-Claude Deguara
  • Dominic Carus
  • Luca Zappala
  • Nick Webber
  • Jan Schubert
  • Dom Alderson
  • Darren Byford
  • Henry South
  • Simon Wicker
  • Kelsey Gow
  • Vasco Cecerqueira
  • Elisa Simoncelli
  • Luan Hall
  • Henning Glabbart
  • Theajo Nagarajan
  • Luka Leskovsek
  • Matt McDougal
  • Sarah Iduwe
  • Iyi Tubi
  • Neil Alford
  • James Moxon
  • Eleanor Sutton
  • Nick Drew
  • Lorna Dumba
  • Nicolas Hernandez
  • Sara Bennett
  • Darren Byford
  • Liam Tully
  • Collette Nunes
  • Sam Lucas
  • Neil Roche
  • Amy Felce
  • David Bennett
  • James Reid
  • Jason Brown
  • Stef Brown
  • David Jones
  • TJ Singh
  • Robert N’Zengou- Tayo
  • Will Correia
  • Joe Tarrant
  • Jean-Claude Deguara
  • Dominic Carus
  • Luca Zappala
  • Nick Webber
  • Jan Schubert
  • Dom Alderson
  • Darren Byford
  • Henry South
  • Simon Wicker
  • Kelsey Gow
  • Vasco Cecerqueira
  • Elisa Simoncelli
  • Luan Hall
  • Henning Glabbart
  • Theajo Nagarajan
  • Luka Leskovsek
  • Matt McDougal
  • Sarah Iduwe
  • Iyi Tubi
  • Neil Alford
  • James Moxon
  • Eleanor Sutton
  • Nick Drew
  • Lorna Dumba
  • Nicolas Hernandez
  • Sara Bennett
  • Darren Byford
  • Liam Tully
  • Collette Nunes
  • Sam Lucas
  • Neil Roche
  • Amy Felce
  • David Bennett
  • James Reid
  • Jason Brown
  • Stef Brown
  • David Jones
  • TJ Singh
  • Robert N’Zengou- Tayo
  • Will Correia
  • Joe Tarrant
  • Jean-Claude Deguara
  • Dominic Carus
  • Luca Zappala
  • Nick Webber
  • Jan Schubert
  • Dom Alderson
  • Darren Byford
  • Henry South
  • Simon Wicker
  • Kelsey Gow
  • Vasco Cecerqueira
  • Elisa Simoncelli
  • Luan Hall
  • Henning Glabbart
  • Theajo Nagarajan
  • Luka Leskovsek
  • Matt McDougal
  • Sarah Iduwe
  • Iyi Tubi
  • Neil Alford
  • James Moxon
  • Eleanor Sutton
  • Nick Drew
  • Lorna Dumba
  • Nicolas Hernandez
  • Sara Bennett
  • Darren Byford
  • Liam Tully
  • Collette Nunes
  • Sam Lucas
  • Neil Roche
  • Amy Felce
  • David Bennett
  • James Reid
  • Jason Brown
  • Stef Brown
  • David Jones
  • TJ Singh
  • Robert N’Zengou- Tayo
  • Will Correia
  • Joe Tarrant
  • Jean-Claude Deguara
  • Dominic Carus
  • Luca Zappala
  • Nick Webber
  • Jan Schubert
  • Dom Alderson
  • Darren Byford
  • Henry South
  • Simon Wicker
  • Kelsey Gow
  • Vasco Cecerqueira
  • Elisa Simoncelli
  • Luan Hall
  • Henning Glabbart
  • Theajo Nagarajan
  • Luka Leskovsek
  • Matt McDougal
  • Sarah Iduwe
  • Iyi Tubi
  • Neil Alford
  • James Moxon
  • Eleanor Sutton
  • Nick Drew
  • Lorna Dumba
  • Nicolas Hernandez
  • Sara Bennett
  • Darren Byford
  • Liam Tully
  • Collette Nunes
  • Sam Lucas
  • Neil Roche
  • Amy Felce
  • David Bennett
  • James Reid
  • Jason Brown
  • Stef Brown
  • David Jones
  • TJ Singh
  • Robert N’Zengou- Tayo
  • Will Correia
  • Joe Tarrant
  • Jean-Claude Deguara
  • Dominic Carus
  • Luca Zappala
  • Nick Webber
  • Jan Schubert
  • Dom Alderson
  • Darren Byford
  • Henry South
  • Simon Wicker
  • Kelsey Gow
  • Vasco Cecerqueira
  • Elisa Simoncelli
  • Luan Hall
  • Henning Glabbart
  • Theajo Nagarajan
  • Luka Leskovsek
  • Matt McDougal
  • Sarah Iduwe
  • Iyi Tubi
  • Neil Alford
  • James Moxon
  • Eleanor Sutton