Hello everyone, I’m Zach and welcome back to another HitFilm and Blender tutorial. Today
I’ll be showing you how I created some of the effects in this Sub-Zero vs Scorpion fight
scene inspired by Mortal Kombat. We’ll use Blender, which is free, to create a wall of
ice, animate Scorpion’s spear, and shatter the ice wall. I’d recommend getting familiar
with Blender before following along, so be sure to check out the Blender Masterclass
in the card onscreen. You can find the project files for this effect in the description as
well, if you’d like to follow along.
When recording your footage, be sure to take note of your lighting setup so you can replicate
it digitally later on. The footage for this fight scene was filmed against a green screen,
allowing Javert to place a digital matte painting behind the actors. If you want to pre visualize
your 3D environment while recording your video, you should check out our iOS app CamTrackAR,
which was recently featured in Apple’s keynote event. To learn more about digital environments
using CamTrackAR and Unreal Engine, check out Javert’s tutorial linked in the card
on screen.
Let’s hop into Blender and model our 3D ice wall. The first thing we need to start
this model is a nice cube. Perfect! We already have one. Scale the cube to be the size of
your wall, then tab into Edit Mode. I’ll select the top face and scale it down so the
wall gets smaller towards the top. Next I’ll create the icicle, which we’ll scatter all
over this cube. In Object Mode, add in a new Cone object. Adjust the radius settings to
make it the right shape, then go into Edit Mode. Add many Loop Cuts to create more geometry
to work with, then select two vertices. Scale them down slightly, then enable Proportional
Editing, setting the type to Random. Changing the Scale and Size allows you to add some
variation to the shape of the icicle. Select all, then move the geometry so the origin
point is towards the bottom of the object. Merge the top ring of vertices to create a
point. Back in Object Mode, enable Smooth Shading for this object. I’ll hide the icicle
from view, then select the cube again. To scatter icicles across the cube, I’ll be
using Geometry Nodes. Click and drag the corner of this window to add a new panel, then set
the type to Geometry Node editor. Click the “new” button. First we need to scatter
some points by adding a Point Distribute node. To add an icicle to every one of these points,
add a Point Instance node, selecting the icicle object. Let’s add some variation to this
model. Add an Attribute Randomize node and set it to Vector, then type in “rotation”
for the attribute. Increase the Max values to something like 10. I want these spikes
to be generally pointing upwards, so I’ll add an Align Rotation To Vector node, selecting
the Z axis. Reduce the Factor setting to combine this with our randomized rotation. The icicles
are looking a little stretched, so remember to apply the object’s scale. Add another
Attribute Randomize node, this time typing in “scale.” Increase the Min value so
that no icicles are scaled to 0. Cool! We now have a procedural ice wall. We can adjust
the number of points to change the density, and can even go back and adjust the icicle
model. To shatter this ice wall later on we will have to convert it into a mesh, resulting
in a huge amount of geometry. I’d recommend lowering the number of points if you find
your computer can’t handle it. Animating these icicles to grow into the shot required
some more node work. You can see how it was set up in the downloadable project file. Let
us know if you'd be interested to see a tutorial covering this in the future.
I’ve already gone ahead and created Scorpion’s chain weapon in Blender. You can download
this rigged model in the video description,and I’ll show you how to animate it. To bring
the model into your project, go to File, Append. Navigate to the downloaded file, selecting
all the objects. The chain is created along a Bezier Curve, and that Curve is attached
to an Armature, allowing the shape to be changed and animated. If the length of the Curve is
altered, new chain segments are automatically created to fill the Curve. The Armature Bones
have a ‘Child Of’ constraint, targeting the last Bone in the chain. This essentially
parents these Bones to that last Bone, similar to parenting layers in HitFilm. Move the chain
into place by moving the Armature. Don’t move the other objects. By scaling that base
controller along the X-axis, you can extend or retract the chain. Once your chain length
is animated, animate the Influence of the ‘Child Of’ Constraints. By setting these
to zero, the other bones are no longer parented to the main control bone. This is helpful
if you have tracked the base controller to your actor's hand, and don’t want the other
end of the chain to follow its movement. If the chain links appear too large for your
scene, scale them down in Edit Mode, not Object Mode. My chain is now in place and extending
through the ice wall. To make it feel less static, I will manually animate the armature.
First I’ll move the camera into place, so I don’t have to animate anything that won’t
be visible. Select the Armature and go into Pose Mode. Select each bone, then animate
their location and rotation to add more movement and interest to the chain. If you are going
for realism, make sure to look at reference videos to see how a chain moves in real life.
Manual animation like this can take some time and effort, but gives you full control. Simulating
the chain is an option to automatically create realistic movement, but it is harder to control
for a specific result.
With our ice wall built, and our chain animated, it is time to break the ice. The quickest
and easiest way to create this shattering effect is to use Blender’s Quick Explode
feature. First, we have to convert our ice wall into an actual mesh, baking in the work
we did with the Geometry Nodes. I’ll save this as a separate file. Select the object,
then go to Object, Apply, Make Instances Real. Press M to put these objects into their own
Collection. Now we can delete the original Cone and Cube objects. Right click the new
collection and choose Select Objects, then join them into one object with Ctrl+J. Next
we can select the area we want to shatter. In Edit Mode, go into Wireframe view, then
select the area using Circle Selection. Separate this selection into its own object. Go to
the frame where you want the object to shatter, and select Object, Quick Effects, Quick Explode.
If you hit play, your object should now shatter and fall down. Let’s adjust the simulation
settings to make this more interesting. Go into the Particle Properties, and increase
the Velocity in the direction you want your particles to fly. If the angle seems off,
make sure to Apply the rotation on this object. Enable Rotation and check Dynamic to add some
spin to the particles. If you need your particles to collide with the ground, add a new Plane
object, scale it up, and select Collision in the Physics Properties. Adjust the different
values like friction to control how the particles interact with the ground. Once you are happy
with your simulation, you can increase the Number of particles to create more small pieces.
I chose to add a Solidify modifier so the shattered pieces would have some thickness.
Let’s make this animation look more realistic with some proper lighting and materials. I’ll
be rendering with Cycles, as it allows for much more realistic ice or glass. If you have
a fast graphics card, make sure to use it for rendering instead of your CPU. The chain
object is already set up with a basic metal material, similar to the metal Cyborg head
in a previous video. For the ice wall, add a new material, and open up the Shading workspace.
Delete the default Principled Shader and add in a Glass BSDF. I’ll give the glass a slight
blue color, and I’ll increase the roughness a little. Set the Index of Refraction to that
of ice, which is 1.309. To make this material more interesting, I’ll duplicate the Glass
shader and increase the roughness. Combine these two shaders with a Mix Shader node.
To control how they mix, add a Layer Weight node, plugging the Fresnel into the Factor
input. Now parts of the object that are facing less directly towards the camera will be more
rough. To add some detail to the ice, add a Noise Texture plugged into a Bump node.
Plug that node into the Normal input of the other nodes. Now we can adjust the settings
on the Noise to add some small bumpy detail on the ice. To match the lighting of the surrounding
video footage, I added two Point lights, one with a blue color, and the other with an orange
color. In the World settings, I used the background image as the Environment texture to add some
reflections. Enable Transparent in the Film settings so our render will have a transparent
background. Also make sure to enable Motion Blur, as it will make our shattering ice look
much more realistic. When you are happy with how your image is looking, you can create
a new folder for the image sequence and render the animation.
Let’s jump into HitFilm to add the finishing touches with some compositing. Here’s what
my ice wall render looked like on its own. And here’s what it looked like after being
composited. I’ll break down this final composite layer by layer. At the bottom of the stack
we have the background video. Javert created this digital matte painting by compositing
a stock photo in HitFilm. There’s a heavy Lens Blur effect to make it appear out of
focus, adding contrast between the foreground ice and this distant background. Next up is
the actual ice wall render itself. This Curves effect matches the color and contrast of the
background, and this Light Wrap helps blend the edge between the CG render and the matte
painting. A Fractal Noise effect was applied with a blend mode of Add, creating some small
bright sparkles on the ice. To further enhance the shine and sparkle of the ice, a couple
of Light Streaks effects were applied to a Grade layer. Various stock footage elements,
including fog, ash, embers, and snow, were layered together to add more movement and
interest to the foreground of this composite. You can find a link in the description to
where you can get your own high quality stock footage. The Radial Gradient effect was applied
to a Grade layer to brighten up the shot with some fake lighting. A great way to tie everything
together is to apply a heavy color grade. Javert used effects like Curves and Bleach
Bypass to create a high-contrast, stylized look. Lens Blur, Zoom Blur, and Vignette effects
were all used to draw attention towards the center of the image. Some camera movement
was added to this comp using the Shake and Lens Distort effects. The Shake effect was
animated to enhance the intensity of the ice breaking. The Lens Distort effect was used
not to distort the image, but to scale it up over time, creating the illusion that the
camera was moving. This fake camera movement was improved further by animating the scale
of the background layer, adding some parallax between the foreground and background. Chromatic
Aberration, Lens Dirt, and Film Grain were used to add some imperfections to the shot,
increasing the realism.
And that’s how you can create your own Mortal Kombat Sub-Zero VFX in Blender and HitFilm!
Feel free to explore the Blender project files provided in the video description and to leave
a comment if you have any questions or if you learned something new. Tune in next week
for another Mortal Kombat themed effect. Subscribe for more tutorials like this, and be sure
to give this video a like. See you next time!