Rookie Awards 2024 - Open for Entries!
Headlights
Share  

Headlights

Set in modern day England, a traveller breaks down on a woodland road after following a diversion. Stranded, unusual things start to happen around him until he is eventually confronted by an alarming and unsettling creature. Headlights is a film by 5 students from the University of Hertfordshire.

42 2027 4
Round of applause for our sponsors

                                                                                Linked In:
 Ivaylo Yanev ● Josh HockeyLewis Reynolds ● Nicola Petch ● Josefina Sales Ramirez 

Pre Production

You can view our Pre Production Portfolio here.

Pre Vis & Test Shoots

Over the first couple of months of pre-production we tried to start as early as possible on getting down the shots for the film and how the acting/ action would play out on screen.

Below is a comparison of our 3D previs and our Live action footage before we started test shoots:

We completed roughly 5 test shoots, changing lighting set ups and trialling filming during the day, at dusk and at nightfall. This was to determine if we could grade from day to night, or if filming at night was necessary. Due to filming in late November / December, the overcast sky and bare tree branches caused our plate to be very blown out, making shooting at night the best option.

Below is our final test shoots which was shot on location with the equipment we would use on the day, so we could all practice how the production would run. It also allowed us to gauge how long the shoot would take, as well as get any last minute feedback on the film:

Josh also used these tests as a way to start narrowing down the options for on-set lighting. Noting the lights positions also helped to create a final shoot order, making the production run smoother on the day with the actor.

Shot Lighting diagrams were made, here is a video of theme alongside the footage and you can view more examples in our Pre Production Portfolio:

Here are some comparisons from our 3D and Live Action Previs’ up against the final shots:

Modelling, Texturing & Look Development

Since we wanted the creature to look gruesomely realistic, we gathered references of both real life animals, focusing specifically on elks and animals of the cervidae family, and concept art of imaginary monsters. This would ensure that, while the creature would have identifiable similarities to elks, there would still be that sense of wrongness and creepiness to it inspired by the concept art. 

I started off with modelling all the individual bones that would make up the creature’s skeleton. This would ensure that the creature would be as anatomically correct as possible, and it would give us a very early idea of its range of motion and what behaviour it might display when taken into the animation stage

I then moved onto the muscles, sculpting all of the individual muscles that the creature would have given its modified anatomy. Using references of human and cervidae muscles, I made sure to connect the muscles to the proper bones to facilitate the simulation of them later on.

To fit with the story, a lot of research went into finding out how muscles could look and move if they’re atrophied, as this would later affect the look and movement of the creature as a whole. 

Texturing

The texturing was done inside Mari using a nodal-based approach. High-res images taken from real life were used for the various body parts, such as using real bones found and photographed in farms to create high quality seamless texture maps that could then be implemented in the texturing process.

The texturing of all the assets went through numerous different iterations as we experimented with the lighting of the scene, with the look development occurring simultaneously. Overall, there are roughly eight to fifteen different iterations for all of the parts of the creature. 

Velvet

To add more realism to the antlers (and increase the grotesque nature of the creature) we also added ripped and rotting antler velvet. This was initially created in Houdini using a procedural curve technique that was then converted into geometry and brought into Zbrush to further sculpt and add detail. I then textured it inside Mari, as well as adapting the antler textures to fit with the new look of the velvet.

Following this, Ivaylo set up the simulation inside Houdini, which was then handed back to me to tweak with the values. The groom elements were added after this was completed by Nicola, you can see a breakdown of this in the Groom section further down.

Animation

We wanted our creature to feel malnourished and vacant but have enough strength to be able to pounce on its prey. To achieve this, we decided to make the creature slower and steadier when it is crawling to convey a sense of stealth and cautiousness, like real world predators. 

When the creature is ready to pounce and stand on two legs, it has less control but is a lot faster and unhinged, using its hands to relentlessly swipe towards the protagonist. Whilst we referenced fictional creatures like the Demogorgon from Stranger Things and the Death Angels from A Quite Place, most of the reference was based on recordings of Lewis crawling around his bedroom floor and acting out each shot. This proved to be very useful as it made identifying key poses and story beats much easier.

Groom

The build process of the Groom for our creature was interesting and challenging, as it was a concept and therefore not based on anything in reality. With the teams input, I collated a range of references from real life human and elk hair, as well as concept art of Wendigos / Were-creatures and existing horror monsters in VFX. This was then whittled down throughout the build process in order to have clarity when discussing options for different areas. 

Below is a breakdown video of my process in Houdini. A mixture of direct and procedural approaches were used, as integrating seperate systems into the main body and having control over individual densities was crucial for the overall look of our creature. The main base was focused on dark, thick human hair (which my team mates assisted with often by offering to show me their limbs!), with the ingested systems drawing inspiration from multiple references. This meant that their clump, sub clump systems and guide processes could be art directed to create interesting shapes and a satisfying silhouette that was continuously updated and refined with feedback and the changes to the model and animation.

The look development was also challenging, as a creature with varying hair density being graded / rendered in specific lighting for a night shoot, there was a lot of back and forth. Due to the differences between a mid grey look dev turntable and the shots, ultimately we decided to have a dark base with a lot of break up to catch the lighting. This was achieved through randomising attributes using an attribute vop, and using them to drive the variation in the karma / MTL X subnet.

Here is a breakdown of the changes to the groom and other elements between our Beta and Final versions:

CFX & FX

The Creature FX was entirely done in Houdini. Muscle, fascia and skin simulations were done for the body of the creature following the art direction of a starving and disgusting creature but still with an intimidating look, that we decided on. 

Custom Pre-roll Tool

After the animation is done in Autodesk Maya, it is fed into the muscle setup in Houdini as an FBX export of the skinned and animated bone geometry. The reason I prefer FBX files to Alembic caches is the pre-roll that all the CFX shots need. A pre-roll is a transition between the bind pose of the character in which the muscles, fascia and skin are set up with all their attributes and constraints and the first frame of the animation. A simple pre-roll would start from the center of the world where the setup is built and would blend to the first frame of the animation. However, this becomes a problem when the layout is big and sometimes the animation starts extremely far from point (0,0,0). That would mean that the setup should travel long distance until the real start of the animation, which makes the pre-roll duration, hence simulation times, needlessly longer. 

Houdini’s built-in pre-roll tool  partially addresses these problems but is not entirely functional because, for example, it supports only animation starting from frame 0 and mostly squashes and stretches the bones due to its Alembic-centered functionality - which breaks the muscles before the shot even starts. Due to this, I created a Houdini tool that takes advantage of the fact that FBX files preserve rig-skeleton and skinning data and procedurally creates pre-roll in Houdini which doesn’t start form the world origin but from the closest, most optimal point to the animation. This offers a completely predictable deformation behaviour of the bones in the pre-roll. 

Muscle Simulation

You can have a look the procedural pipeline I used in the screenshots below, but here is a breakdown aswell:

Import Bones Animation as FBX >> Create pre-roll >> Import Muscles Geometry >> Set attributes and attachment and sliding constraints to the muscles (paintable) >> Create flexing lines attached to the bones that control the excitation of the muscles >> Connect them to the respective muscles or muscle groups >> Simulate and cache muscle simulation >> Import Base mesh that will be used as a tissue (fat/fascia) geometry >> Pull the geometry inwards so there is space for the skin layer later >> Define a core layer which is a firm inner layer of the fat which contributes to a solid and non-jelly-like look of the tissue layer >> Set attributes and constrains of outer and core tissue layer (paintable) >> Simulate and cache tissue simulation (Tip: try ABC cache if you experience issues) >> Shot sculpt if needed >> Import Base mesh again, this time to use it as a skin geometry >> Set skin thickness >> Set skin attributes and constrains (paintable) >> Simulate and cache skin simulation >> Shot sculpt >> Bring back nice quad topology with UVs to the skin simulation triangulated cache >> Paint the areas that use non simulated but skinned rig animation like head, feet, hands.

Hair Simulation

The hair simulation was also done in Houdini with a custom setup that lets you easily select groups of hair (normally the longer ones) that are to be simulated. The setup divides the shorter hairs which are then simply deformed, and the rest of the hair is simulated with the vellum solver, allowing for different properties for different hair groups. Part of the hairs are deleted and so a sparser version of the groom is simulated and then the rest of it is deformed based on that. This way creates results very similar to the result of a simulation of all hairs, at the same time it is much faster and allows for more iterations in less time. This way produces better-quality results than simulating the guides and then deforming the hair.

Below is a breakdown of the hair simulation and also the saliva simulations I created:

Compositing & Lighting

On-set we collected a lot of data about the lighting so after recreating this in Houdini’s Solaris, the Creature was already sitting in the shot nicely. Animating the torch was trickier as our actor’s performance often left the creature in the dark when matchmove was done accurately, so this was given some ‘artistic license’, and some tweaks in nuke to animate the hand so we could light the creature as we pleased.

Almost all 20 shots of the film required some level of cleanup. Shooting in the pitch-black woods meant that the only light created would be from our on-set lights, which was excellent for creating artistic lighting. However this often meant there were often lighting rigs in the backgrounds of shots, or reflections.

More breakdowns of the shot by shot cleanup can be found in our Pre Production Portfolio at the top:

Thank you for reading, we hope you enjoy our film!


Comments (4)