Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 24 – Accents

I used a set of cobweb textures on polygonal planes. These textures are really detailed, creating a realistic spider web look, I just applied a grey vector color and changed it slightly for each texture variation to add depth.

I placed these planes strategically in the room corners – they’re just simple polygonal planes but the opacity masks do all the heavy lifting to create that web effect. Each texture has a different web pattern which helps avoid obvious repetition. The beauty of using planes with opacity is that it’s way more performance-friendly than trying to model actual geometric webs or use splines.

Looking at the content browser here, I’ve got both the base textures and their corresponding materials set up. The textures are essentially black and white patterns that translate perfectly into opacity masks – white areas become visible web strands while black areas become transparent. I tweaked the material settings to get that subtle light interaction just right – enough to make them visible without being too obvious.

I added these exposed cables running along the ceiling beams, just spline meshes following the natural contours of the beams. I like how they hang slightly between attachment points, giving them that authentic drooping power cable look. Using the ceiling light as a key reference point helps tell the story of the room’s electrical setup.

What really makes them work is how they interact with the lighting. I positioned the cables to cast these long, linear shadows that add another layer of detail to the scene. The shadows help break up the uniformity of the ceiling texture and create these interesting shapes when the light hits them at different angles.

I created this cable spline connecting the lamp to the outlet, making it follow a natural path along the floorboards. I used a simple spline mesh with a dark cable material, adding a slight sag in the middle to make it look properly weighted.

For the floor detail, I scattered some wood chip decals around – they create these subtle marks and scrapes that make the floorboards feel properly lived-in. I grabbed a tileable wood damage texture and created several decal variants from it. Each one shows different types of wear – little chips, scratches, and worn spots that you’d expect to find on old wooden flooring.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 23 – LightSwitch

Here I made and imported a plug socket for the lamp to connect to, the modeling itself was pretty straightforward.

Looking at my blueprint setup here, I created a straightforward interaction system. When the player clicks on the socket, it triggers both a visual state change and plays a mechanical click sound effect I recorded. I chose the sound carefully – wanted that distinctive snap you get from old light switches.

The blueprint flow starts with the interaction trigger, which then branches out to handle both the audio playback and the light control. I have it connected to multiple point light components I used for the lamp, including the emissive texture on it that gives the lampshade its glow, all controlled through this single switch interaction. The socket’s state drives the visibility of these lights, creating a proper cause-and-effect relationship.

I set up this system to create some natural light variation in the room. The blueprint works on tick, using a random float in range node to occasionally trigger a sequence of light toggles. I’m basically creating this subtle flicker effect by rapidly switching the point and spot lights on and off at random intervals.

This is actually how I learned that you can reference the component type directly instead of having to call the actor and then searching for the light type/ mesh type/ component type after!

I placed fluorescent stars around the light switch so that it’s visible at all times, otherwise the player would have to struggle to place their mouse over it during the tense moments before a scare. It also helps for when you turn the lights out because otherwise the room is almost completely pitch black

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 22 – Trigger2

I made this chair interaction mechanic that acts as the main focus of the game, having the player push it towards the window in order to end it. The logic flow starts with a simple interaction system – when the player clicks on the chair, it triggers this whole chain of events that I have set up.

The core movement logic uses a Timeline node, which I connected to a Vector Lerp for smooth chair movement. I wanted that slower drag effect rather than just snapping the chair to its end position. The Timeline gives me precise control over the movement duration and curve which was really crucial for pacing.

I also set up a branch condition that constantly checks the chair’s displacement from its initial position. If the chair moves beyond a certain threshold and within the specific time window it triggers the scare. This uses a simple Vector Distance node, but getting the timing right took some trial and error.

I’m particularly happy with how the sound implementation turned out. I connected an Audio Component that triggers this scratching sound effect when the chair starts moving. The scare trigger logic feeds into this sequence controller I set up. When the distance threshold is exceeded, it spawns the monster actor and initiates its sequencer animation toward the room.

One thing I’m still tweaking is the timing between the chair movement and the monster spawn. Currently using a slight delay node to create this moment of dread between when the chair stops moving and when the monster appears. Those few seconds of anticipation really amplify the scare, it also gives the player time to save themselves by turning the lights out!

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 21 – Trigger + Animation

I developed this node setup to create a dynamic monster encounter that triggers based on player interaction with the curtain. I wanted the whole thing to feel dynamic and reactive to what the player’s doing. The logic starts with that UpdateStateMovement node there to track where the monster is and what state it’s in. This thing is just standing out in the field, completely visible through the bedroom window while players are poking around the room.

The branching logic I set up handles the state transition when the curtain interaction begins. Those Get Movement Component and Set Movement Mode nodes let me control exactly how the monster switches from just standing there to full-on pursuit. I specifically chose to trigger this during the curtain closing animation rather than after it completes – that moment when the player thinks they’re making themselves safer is exactly when I want to subvert their expectations.

The Animation Blueprint setup was key for making the monster’s movement feel natural. Made this state machine that handles the transition between idle and run animations based on velocity. It’s super smooth – doesn’t just snap from standing to sprinting, there’s this acceleration period where the animations blend together.

Making it a Character class instead of a basic actor was crucial. Now it’s got all that physics and collision handling built in, so when it’s charging across the landscape toward the window, it’s actually reacting to all those little elevation changes in the terrain. The window is actually a little above the landscape so the character actually ends up under the stage, so I added a ramp that I’ve set to not be visible during gameplay, this lets the monster reach the window while keeping it clean.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 20 – Antagonist2

I had to run through multiple Mixamo animations to see how the cloth physics would react with the vertex weighted sections. I set up this test scene with various movement types, which really helped identify problem areas in the cloth simulation.

Each time I thought I had it optimized enough, I’d import into UE5 only to get hit with that same error. The cloth generation would fail instantly. It was this constant back-and-forth process:

  1. Reduce poly count in C4D
  2. Export to UE5
  3. Try to generate cloth
  4. Watch it fail
  5. Back to C4D to optimize further

Had to be really strategic about where to reduce polygons while keeping enough detail for the patch seams. Those areas where the red and blue sections meet were particularly troublesome – I needed enough geometry for the cloth simulation to work but too many polys would create those degenerate triangles UE5 hates so much.

Working with Octane’s dirt texture node seemed like a good approach initially for generating the vertex map – the idea was to automate the vertex painting process, I’d set it up to accumulate at the fabric folds and seams. However, I never ended up following through with this idea since I couldn’t find a way to import the texture or even use vertex maps in the cloth painting.

Here I boole the mesh so that it is hollow, allowing me to use cloth physics in a way that the cloth hangs off the body instead of starting inside it and bulging outward.

The polygon reduction actually ended up working in my favor here – that lower poly count created these more angular, almost crude transitions between the cloth sections that really enhanced the horror aesthetic. You can see in the viewport how the simplified geometry still maintains those key patch divisions while giving the cloth simulation something it can actually work with.

Working with the character rigging required some careful adjustments to prevent those classic cloth collision issues. I had to modify the bone structure to create better collision volumes – basically giving the cloth simulation more accurate surfaces to interact with. This was crucial for preventing that annoying cloth clipping where the fabric would phase through the body during animations.

Going back to Cinema 4D to tackle the UV mapping was essential to get that burlap texture working properly across the patches. The initial UV layout was causing the burlap texture to stretch and distort in weird ways, especially around those crucial seam areas where different sections meet.

Adding grunge layers to the burlap texture really brought out that weathered, unsettling quality I was after. Used a combination of darker patches and worn areas to suggest where the fabric’s been stressed and damaged – particularly important around those sewn sections where the patches meet. The material variation helps sell the idea that these pieces were scavenged and roughly stitched together.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 19 – Antagonist 1

The process of creating this antagonist started with a base Mixamo mesh – I wanted something with that distinctly human silhouette but needed to transform it into something more unsettling. The idea was to create this figure that looks like someone’s had burlap cloth roughly sewn onto their body, creating this unsettling effect where it’s clearly humanoid but wrong in all the right ways.

Looking at the mesh topology here, I used Cinema 4D’s deformer tools to create these organic-looking bulges and irregularities that suggest poorly sewn patches of burlap. The wireframe really shows how I manipulated the base mesh, those denser polygon clusters around the joints and torso create these natural-looking fabric bunches. Working with the deformer was crucial for achieving that patchwork effect. Built up layers of subtle deformation, focusing on areas where you’d expect the burlap to bunch up or strain against the underlying form. Those bulging sections around the chest and shoulders help sell the idea that this is fabric stretched and stitched over a human frame.

I used Cinema 4D’s noise deformer to create two distinct but complementary surfaces (one of them just had the same noise displacement but with inverted height). The red and blue colouring really helps visualise how I split the burlap patches. Each colour represents a different mesh that was deformed with inverse noise patterns, creating this interlocking patchwork effect that’ll become the foundation for the sewn-together look.

The way the patches interlock is crucial for selling that cobbled-together aesthetic. Using inverse noise patterns means where one mesh bulges out, the other dips in – creates these natural-looking seam lines where the “fabric pieces” meet. Playing with the noise scale and intensity helped achieve those organic, irregular transitions between patches that make it look like someone actually stitched this thing together by hand.

After the initial noise deformation, had to clean up the mesh distribution to make it more practical for UE5’s vertex painting workflow. Smoothed out some of the more chaotic noise patterns and consolidated the patches into larger, more defined sections. The cleaner separation between red and blue areas will make it much easier to paint different material properties onto each section in Unreal’s vertex painting system.

Here you can see the three meshes, including the skin beneath the cloth

I set the simulation weights to zero specifically along those stitched borders – you can see where the green highlights trace the seams between patches. This precise weight distribution ensures the cloth physics respond realistically while maintaining the overall humanoid form.

As you can see here the cloth bulges out, which took me a while to realise why it was happening. The whole time I was working with a mesh that hadn’t been hollowed out! I fix this and clean it up later on in development.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 18 – Outside

The transformation of this HDRI from day to night really sets the foundation for the horror atmosphere I’m trying to create. Started with this forest panorama – perfect mix of tall trees creating these natural vertical lines that draw the eye upward. The original capture has this golden hour quality, catching nice rim lighting on the tree trunks that actually helped inform where I wanted shadows to fall in the night version.

Working in Photoshop, the first step was isolating those trees from the sky. The thick canopy made for natural masking points; those gaps between branches created perfect transition areas for the new night sky. Pushed the overall exposure down significantly, but kept some of that original lighting information in the tree silhouettes to maintain depth.

The night version introduces this deep blue palette that’s crucial for the feel of the environment. I added subtle star points in the visible sky sections, being careful not to overdo it – I wanted that sense of isolation that comes with a partially clouded night sky. The stars provide just enough ambient lighting to suggest scale without breaking the oppressive darkness I need for the bedroom scenes.

I used Photoshop to trace the key shapes from reference pine trees, focusing on those sharp, vertical forms. The irregular heights and varying densities create this natural-looking forest line that reads well in complete darkness. Performance-wise, this is way more efficient than trying to populate the scene with actual tree meshes, since it’s just a texture mapped to simple geometry in the background.

Set up a rectangular area light behind the treeline to simulate moonlight. The positioning was crucial, having to get that balance between illuminating the edges of the trees while maintaining deep shadows in the foreground. The light’s soft blue tint works with the night sky HDRI, creating this cohesive moonlit atmosphere.

You can see the moon in the back, it’s actually a sphere I just placed behind all the environment components. I like how it glows behind the branches, but I may go back to it later and see if I can make it a bit more visible while maintaining the general feel of the environment I made.

The landscape grass implementation really adds another layer of depth to the night forest scene. UE5’s landscape foliage tool let me scatter these simple grass meshes across the ground plane easily. I went with a mix of shorter and taller blades. It’s basic geometry, but when clumped together, they create this convincing ground cover. Especially when properly lit.

I bumped up the specular values to create these subtle glints when the rectangular backlight hits the grass, similar to how real grass catches moonlight. The increased reflection means each blade can potentially catch and reflect light, creating highlights in what would otherwise be a flat, boring ground.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 17 – Doors

The door’s texture treatment became a focal point for showcasing advanced material decay. Using multiple wear patterns and paint layers, I created this effect of severely peeled and cracked paint that suggests this door is significantly older than other elements in the room. The technique involved layering different grunge maps and creating varied levels of paint deterioration that expose what appears to be the original dark wood underneath.

That contrast between the damaged black paint and the exposed underlayer really sells the age.

I then added these claw-like scratch patterns along the door frame to add to the overall feel of the room. I deliberately placed these marks around the side of the frame, suggesting something on the other side had been trying to get out. Working with the texture, I made sure these marks felt more realistic – varying the depth and angle of each scratch to suggest they were made over time, rather than in a single incident.

I actually handled the material layering by splitting the object into multiple meshes, this meant I had a bit more control and freedom over how the paint sits on top of the wood.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 16 – Wallpaper 2

This vintage damask pattern emerged as the perfect foundation for the bedroom’s wallpaper design. The ornate Victorian flourishes and aged sepia tones instantly creates that period-appropriate atmosphere I was aiming for. The way the pattern’s elaborate floral motifs repeat created this sense of grandiosity that you’d expect in an old family home, which is exactly the kind of unsettling familiarity I want to capture.

On the colour correction nodes – they were essential for pushing the wallpaper toward those sickly yellow-brown tones that suggest decades of neglect. The preview sphere shows how the final material responds to light, with those darker patches creating natural shadow areas that enhance the pattern’s depth.

The inclusion of this gradient “decay” texture was essential for creating that sense of creeping deterioration from the ceiling down, which perfectly simulates the way moisture seeps through old wallpaper. When layered over the base damask pattern, it created areas of water damage that suggest long-term neglect.

These variations in darkness across the wall’s surface helped break up any obvious tiling in the wallpaper pattern. The way the moisture effect darkens near the top edge through texture placement and lighting implies age and structural issues.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 15 – Creepy Phone

Analyzing this scene from Skinamarink – those cold, unblinking eyes emerging from darkness really nail what I’m trying to achieve in my bedroom environment. The way they’re presented through this VHS-style degradation creates this perfect uncanny valley effect. In this blog entry I will go over an experiment I conducted with lighting and positioning to integrate this feeling into my project.

After finding the low-poly base, I started by removing the static eye geometry while maintaining the model’s structure. The clean topology of the original mesh helped in this process, leaving precise circular sockets in the face that I filled in for adding some dynamic eye elements.

The next phase involved testing various eye replacement approaches.While skeletal animation remained an option for complex movement patterns, some initial tests suggested simple transform manipulation was a much better option for more robust and reactive animation.

Working with UE5’s lighting system, I focused on creating that same sense of spatial uncertainty that Skinamarink masters. The trick was finding that sweet spot where objects become barely recognisable but just visible enough to suggest familiar shapes while maintaining that dreamlike feel.

The experimentation with those glow-in-the-dark stars proved particularly poignant. While I ultimately opted for different lighting solutions, that concept of having small, isolated points of light directing player attention carried through to other elements in my scene.