Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 27 – Burlap Friends!2

I reworked the shelf layout to accommodate this old CRT TV model, removing one of the middle shelves to create the perfect slot for it. The placement feels really natural – like this TV’s been sitting there for years between those worn books and Burlap Friends. Planning out the TV’s interactivity got me excited about all these possible mechanics – I want it randomly powering on to catch players off guard, or maybe responding when they interact with the alphabet poster in the room.


The system I had in mind would have the screen come alive, showing these brief unsettling images, or activating based on which letters the player’s focusing on in the poster. Had to “shelve” all that for now though since the deadline was coming up fast. Just one of those features that’ll have to wait for the next development phase when I’ve got more time to really nail the implementation.

Even without being functional yet, I love how the TV sits there among everything – really sells that period-appropriate vibe I’m going for. The way I positioned the Burlap Friends around it worked out perfectly too – they’re all angled around the screen like they’re watching it. Can’t wait to get back to this after the deadline and implement all the interactive elements I’ve got planned.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 26 – Burlap Friends!

I began adding some Burlap Friends around the room, starting with a setup on the bookshelf. Their white eyes and teeth make perfect focal points in the dark. I placed them at varying heights to naturally guide the player’s eyes upward, creating and pushing the sense of something looming over them.

I’m particularly happy with how the shelf placement worked out – having them at different levels creates this sense of being watched from multiple angles. There’s something deeply unsettling about their expressions being just barely visible in the shadows. I’ve got plans to make those eyes functional later, adding some subtle rotational tracking so they follow the player’s movement. Should be pretty straightforward to implement – just need to set up a simple look-at system tied to the player’s position, but make it subtle enough that players might question whether they really saw the eyes move or not.

I started modeling these Burlap Friends in Cinema 4D, really focusing on getting that balance between rough texture and soft form that makes them feel unsettling but still toy-like. The base mesh was pretty simple – just a sphere that I deformed to get those initial chunky shapes, but the real character came from layering different effects.

Using a combination of subdivision surface modifiers and displacers turned out to be key for achieving that specific look I wanted. The subdivision surface gives them that overall smooth, plush toy feel, while the displacers create all those subtle bumps and irregularities you’d expect from burlap fabric. I set up multiple displacer effectors with different noise patterns – you can see in the hierarchy how I’ve got them organized for each character variation.

The way the stitches follow that V-pattern really emphasizes the patchwork nature of these toys. I positioned the UV islands so that the stitch lines would fall in places that make sense structurally

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 25 – Lighting

Playing around with these different light sources to really nail the atmosphere I wanted – using an IES profile for the table lamp gives me this much more authentic light pattern than default spots would. I love how it creates these natural falloff patterns and catches the edges of furniture in ways that feel real instead of that typical game-engine uniformity.

I experimented with the lamp’s intensity and falloff settings in order to get that perfect balance. I wanted to illuminate what needed to be shown while still maintaining deep shadows in the corners of the room.

Working with multiple light sources turned out to be key to getting the exact mood right. I’ve got the IES-driven table lamp doing the heavy lifting for that main warm glow, then I’m using that rectangle light with the channel isolation for the bed sheets, and there’s this subtle ambient light that just helps soften those completely black areas without ruining the darkness. It’s like painting with light – each source adds its own little contribution to the final look.

Working with light channels proved really crucial for achieving that subtle illumination I needed for the bedsheets. I set up a rectangle light at the top of the scene. By assigning this light to channel 1 and setting the bedsheet material to only receive light from that channel, I managed to only illuminate what I wanted to have lit up.

I spent a while getting these subsurface values just right for the bed sheets -I wanted that subtle translucent quality you get with real fabric. The Mean Free Path Distance at 1.5 and World Unit Scale at 0.1 create that initial scatter effect, while the transmission settings (Extinction Scale 1.0, Normal Scale 0.08) control how light penetrates the material. That Scattering Distribution at 0.93 spreads the effect through the fabric, and I’m using a Dual Specular setup with different roughness values (0.75 and 1.0) to get two distinct specular responses that blend together at 0.85 in the Lobe Mix. Those pinkish tones in the Surface Albedo and Mean Free Path Color give me that warm, slightly translucent quality you see in real bedsheets when light hits them.

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.