Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 14 – Drawing Spawn

Here, I work on the logic in order to spawn the drawings on a wall in a way that randomises their position every time the game starts. The node setup is intentionally minimal right now – just working with a simple loop system that handles drawing spawns based on player interaction. The Event BeginPlay triggers a sequence that feeds into a drawing manager, keeping the system modular and clean.

I wrestled with that sphere overlap system in the event graph above, and had to scrap it despite promising debug results. The idea was solid – using sphere traces to prevent drawings from spawning too close together or overlapping. In debug mode it looked perfect, those blue spheres clearly showing valid spawn points and overlap detection working as intended. I wanted to have the drawings appear anywhere within the room, on any wall I wanted and within reach other player, but unfortunately I had to limit this.

Building on that initial spawn logic, I added proper array handling and some conditional checks, granting more control over how these drawings spawn in the space.

This works *chefs kiss* perfectly

Working on the spawn positioning logic here – wanted more controlled randomisation for where these drawings appear. Set up a system using Random Float in Range nodes to generate semi-random but constrained positions on the wall surface. The drawing scale variable feeds into this too, making sure everything stays proportional regardless of spawn location.

Some basic debug textures here for the drawing spawn system – just numbers to test positioning and material application.

Here, I worked on implementing a system where each blueprint instance would pull a unique texture from the array, using box collisions as spawn volumes. I introduce array creation and management, and material instances, but things got a bit tangled.

Those Length nodes on the left are meant to track available textures in the array, with Contains checks to prevent duplicate assignments. The branching logic using Branch nodes attempted to validate whether a texture was already in use before assignment. Those print string nodes scattered throughout are basically me trying to track where the logic was breaking down, but I still have much more to learn and practise.

The Get Unique Material node at the start feeds into a series of array operations – see how the blue array pins connect through multiple validation steps before hitting the final material assignment. Those SET nodes were supposed to handle material parameter updates, but something in the validation chain was clearly breaking the flow.

The error seems to be within how UE handles code operations, with the meshes, array, array contents and blueprints spawning in at the same time or staggered at different intervals. This code should work in theory, and I’ve consulted multiple sources – I actually don’t even remember if the screenshot above is the one that should work or if I’ve tweaked it so much in frustration that it’s lost all prospective functionality! Anyway… Time to move onto something more productive for a bit.

The blueprints spawning in four 2’s and a 1…
Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 13 – Ceiling

Working with vertex painting here to test out how environmental degradation might spread across the ceiling. Pretty happy with how the intensity builds up naturally in those corner areas – exactly where you’d expect to see mold or water damage starting to form. Was playing around with the brush settings to get that organic spread pattern, wanted to avoid anything that screams “this was manually painted.”

Key thing here was keeping the variation natural-looking. Old rooms develop these kinds of imperfections over time, especially around joints and corners. By concentrating the darker tones in these structurally logical places, it helps ground the space in reality. The gradual fade-out from these areas prevents any harsh lines that might break that illusion.

Working with these exposed ceiling beams as a more efficient alternative to vertex mapping – the natural shadow lines they create break up that ceiling space perfectly. Those white beams against the lighter, cracked paint ceiling create this great depth variation, and their parallel placement adds some natural structure to guide the eye.

Key thing was getting the blend strength right for the “coffee stain” texture – letting just enough of the stain pattern through to create variation without making it look obviously mapped. Those subtle gradients in the original stain texture give us really natural transitions between worn and less worn areas. One key improvement was adjusting the underlying wood tone to sit better with those deep shadows between the beams. When the worn patches reveal the wood underneath, they integrate smoothly with the overall darkness of the ceiling structure.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 12 – Bed

This bed’s design perfectly captures that old-world aesthetic I’m aiming for in the room design. These carvings along the wooden frame – especially those floral patterns gives it an authentic Victorian look (I make my own texture for it anyway but that was the idea). It’s the kind of bed you’d find in an old relative’s guest room, which plays right into that uncanny familiarity I want to create.

Went with this higher elevation off the ground – creates this perfect dark space underneath. Classic horror design, giving players that instinctive urge to check under the bed while simultaneously dreading what they might find there. Those decorative legs with their curved design add to the vintage feel while creating interesting negative space. As you will see in the showing of my development further on, I try to create a feeling of unease by reducing instanes of potential comfort.

This image has an empty alt attribute; its file name is doorandbed-scaled.jpg

The door placement behind the bed creates a great tension mechanism. Using the bed as both a visual anchor and physical obstacle that gets disturbed really plays with player expectations. That slow door push will create this gradual, physical intrusion into the space – you’ll actually see the safe space being violated as the bed slides against its will.

Advancing from where I was in the project from this screenshot, I end up moving the desk lamp and table to the other side of the bed. This was to all the bed to move far enough to be visually significant and to also allow for functionality in moving around the room. I don’t want to limit the player’s movement, it’s a core mechanic and would feel clunky to take away.

I found a screenshot showing the carpet I was thinking of using! (scrapped it, didn’t serve a purpose really)

Moving onto more relevant things, I AI generated a map for the bedsheets, running it through a custom GPT and using the black+white generated image to produce a normal (https://www.smart-page.net/smartnormal/) this site is a LIFE SAVER. I love how the light bounces off the sheets, but I wasn’t too happy with how uniform it is. To remedy this issue, I vertex painted the sides of the duvet and reduced the normal map saturation+contrast where I painted so that the creases and folds appear in the middle but not the edges.

I enjoy the idea of having the bedsheets depict an event that can be interpreted or be used as hints at an overarching story.

Looking at this vintage toile pattern for the bedsheets, I chose it specifically for how it subverts traditional pastoral scenes. The repeating imagery shows these quaint scenes with figures in period dress gathering under palm trees, but there’s something unsettling about using this in a horror context. The faded beige background and weathered quality already has this aged, almost sickly tone that works perfectly for my environment.

Taking some inspiration from the story of Icarus, which has some ties to the story I want to portray in “Burlap Friends!”. Alongside some Doctor Who weeping angel vibes, I drew two poses for a character I want to add to the photo, replacing the three girls in the distance. I tried my best to replicate the artstyle here.

Digitally coloring in these figures and using some other digital techniques to closely mirror the vintage Toile style. Working through the process of bringing this character to life – started with the rough pencil sketch. The sketch has this raw, loose quality that captures the movement I wanted. Those scraggly line marks in the wings ended up working really well for suggesting that rough texture even in the initial drawing.

The character doesn’t fit incredibly well in the texture here, but I layer fabric and imperfections/ grunge on top to where the difference isn’t noticeable.

The implementation of this toile pattern into the scene required some careful consideration. I started by addressing the UV mapping – and had to scale the pattern appropriately so those scenic repeats weren’t too obvious when applied to the bed model.

Crucial part was getting the scale right in-engine. Needed the pattern to be clearly visible when players approach the bed, but not so large that it loses that wallpaper-like quality from a distance.

The intention is to have the texture change over time, signifying the progression into the night as things get more and more intense, slowly revealing to the player that there is something more at play here…

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 11 – Shadow Experiment

Back with a little experiment here, I play with the idea of animating a shadow using a masked material with a crudely drawn monster outline. The idea is to have a shadow creature come out of the closet at certain points in the game to either give the player information or just to create ambience.

Extremely rough!! I know!!! Proof of concept guys

I really liked the concept of having a 2d animated creature within a 3d space, maybe interacting with the 3d space it’s in, so I made a little experimental animation to see if it would work within my chosen genre of horror and the result was quite intruiging.

I picked out important parts of the animation to have beneath the sheets of paper I drew frames on, just to have a frame of reference for positioning and timing.

In retrospect, I didn’t end up using this as part of the build of the game I produced in time for the deadline, but I will complete it for the final build. Everything is set up perfectly for it, the static lighting, the positioning of the lamp in relation to the wall where the closet is, the interactivity and animation of multiple aspects of the room, making it look alive. To go into my inspiration for this idea:

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 10 – More More Wallpaper

Looking at my initial normal map for the wallpaper material, it’s honestly pretty subtle – I went with a predominantly blueish base which means most of the surface stays relatively flat. The network of fine cracks and imperfections I scattered throughout will catch light at sharp angles, but they’re intentionally understated.

I kept the height variations minimal here since I wanted the base wallpaper material to feel worn but not completely deteriorated. Those thin lines create just enough surface disruption to break up that perfectly flat look you’d get from a plain normal map.

This revised normal map is working way better for what I need. The noisier, more varied surface gives me those nice light-catching moments without having to push my mesh displacement so hard.

I particularly like how the noise pattern has this almost fabric-like quality – it’s giving me that subtle wallpaper texture I wanted without being too obvious about it. The way it transitions between higher and lower areas feels more natural than the crack patterns I was using before.

Here I play around with UE’s modeling feature, displacing the wallpaper to make it look worn, like it’s falling off the wall it’s been pasted onto. This screenshot was taken before I updated the normal map and so I relied a bit on geometric displacement. However, it worked well together with the normal.
(moving into the future a bit here) The shadows casted from a single light source really creates a sense of much needed depth to an otherwise flat scene component.
Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 9 – More Wallpaper

The mask design creates an effective atmospheric element for horror environments. The irregular, torn edge profile along the top has a strong organic quality – like real decaying paper or deteriorating tissue. This ragged silhouette was particularly useful for material transitions and aging effects in the wallpaper material.

The scale and detail of the torn edge works well for both distant viewing and close inspection. Those micro-variations in the silhouette prevent it from looking too artificial or procedural.

This texture was made by drawing vectors and combining a few seamless ripped paper textures I found online, and isolating the darker parts for masking.

This was made by layering the texture on top of itself and blurring it, this will act to darken the wallpaper near the rips and tears so that the damage looks a bit more natural.

I blend this with the other damage patterns I’ve developed – could work well as a base layer of general wear before the more dramatic deterioration effects. The scattered nature of the marks means it’ll create interest without drawing too much attention.

The stark black-on-white contrast provides clean mask data while maintaining a resolution-efficient format. I use this to create localised material variations:

  • Areas of slightly different light response
  • Subtle color shifts suggesting age or damage
  • Small surface imperfections that catch light at sharp angles
  • Background noise that adds visual depth without being obvious

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 8 – Wallpaper

This is the base texture for my wallpaper, the idea is to really create a sense of scale in the room, the vertical striping patterns both act as a way to make the walls seem taller than they are and also functions as a period-appropriate style for a 80-90’s kid’s room.

The pattern’s regularity also provides a strong baseline for showing environmental degradation. Any distortions or tears in this pattern will be immediately noticeable to players. The idea was to leverage this for subtle environmental storytelling – areas where the wallpaper bubbles or peels could indicate supernatural/ temporal activity or decay.

Yes, I know this looks like a mess

I found this cracked plaster texture online which I use in multiple textures in this project, when layered with other grunge maps it really adds some variation and a sense of decay. The grunge map on the right was also found through my research, I really like that it can be repeated relatively seamlessly and also inverted to create a completely different, effective grunge texture.

The resolution and detail density for this texture works well for both close inspection and distant viewing. Fine speckled pattern will create subtle surface variation under dynamic lighting – crucial for flashlight interactions or TV glow effects. Those mid-gray zones will generate interesting transitional areas between clean and heavily degraded sections.

This cracking pattern provides deeper, more pronounced material erosion states – higher contrast between surface and damaged areas. Those darker patches showing through create immediate points of visual interest. More dramatic height differences in the cracks themselves – better normal map data for creating convincing surface relief.

Once I completed all the surface textures, I utilised this “coffee stain” texture. The coffee stain texture functions perfectly as a natural variation map – those organic, diffused edges and irregular saturated areas create convincing localized aging effects. Running this through color correction nodes to affect both saturation and hue shifts gives materials that crucial non-uniform quality. Perfect for breaking up the artificial perfection of digital textures.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 7 – Poster

To refresh my mind, having spent a while getting to grips with UE5’s nodes and blueprints, I started playing around with C4D to create a poster to have on a wall. I made the eyes without pupils so I could potentially add functionality for them to follow the player around the room when things get more scary and stressful as the game goes on. I chose for there to be three characters to mirror the three antagonists/ hazards in the game.

Going with this vintage kid’s show aesthetic for “Burlap Friends” – I rendered the initial shot with deliberate golden hour lighting to emphasize texture and create this artificial warmth. The burlap material catches light in an interesting way, giving the character this uncanny quality even in its most “friendly” form. Positioned it on a victory podium with a “#1” marker – standard promotional material composition, deliberately generic.

The post-processing transformation pushes it into psychological horror territory. Added a blue-to-red gradient skyline that mimics those 80s horror posters, complete with VHS degradation and film grain. The wear patterns aren’t random – concentrated them around the edges and corners to suggest years of neglect. Dark processing makes those white eyes more prominent, creates this sense of watching.

The creases and rips are somewhat parallel to the aesthetic I’m going for, kind of like a distorted, neglected VHS tape. For environmental storytelling, I want to integrate this fictional franchise’s history into the room itself. Torn poster placement, scattered merchandise, old promotional materials – all serving as breadcrumbs and hinting to an alternate timeline where these toys exist.

Here I add circular planes where I want the eyes to be, and create blueprints so that I can implement functionality later on.

Making the eyes follow the player around was a challenge. I was essentially mapping 2d movement within a texture to reflect a player in 3d space, the initial idea was to map the player position on the floor as a 2d object and move the eyes accordingly, but this required so much trial and error. This way of development really pushed me to learn how the event graph works in unreal, and acted as the basis for my understanding later on, the functionality of the nodes above essentially have the eyes snap to the player once they stand in front of the poster, since the eye movements (following them around) were so janky and I really didn’t like the result.

I initially had two planes on top of each other, but opted to dynamically alter an instanced material instead. This meant that I could have the pupil move beyond the constraints of the whole eye, making it look more three dimensional, but this functionality proves redundant until I am able to complete this game in my own time.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 5+6 – Curtain

One of the biggest aspects of the room I want to create is the curtain, it represents a large and comforting first step to the nightmare our player is going to experience. Once the curtain has been drawn, the game essentially begins. I began by looking for assets, and opted to create my own cloth in order to have more control over the dynamics.

I am essentially learning Blender from scratch, so I’m documenting my process here too to look back on. I start by adding a line mesh.

Then, subdividing it and selecting all points, selecting in checker mode and moving every odd point forward on the X axis.

I then extruded it down the Z axis and subdivided it, ensuring that I also subdivide on the top and side edges in order to have something to constrain it by. This will make sure the overall shape of the curtain is maintained.

I wasn’t quite sure what the problem was here, maybe I had accidentally extruded it on the X axis, creating an object that acts more as a cushion than a flat cloth.

Here is the cloth mesh with all the appropriate subdivisions.

Separating and creating vertex groups in order to control the cloth animation more.

Here I show the lines I selected in order to do so.

By viewing and correcting normals, I can ensure that the animation won’t have jagged or unnatural movements.

This is the end result. After the curtain was simulated using cloth dynamics, I removed the pressure in order to have it rest at a natural position. I then keyframed animation to have the curtain expand on an axis, this was baked in and the asset was exported as an FBX.

Then, I added the FBX file to UE. Adding a blueprint, painting the mesh with a cloth brush – leaving the polygons at the top. I then tweaked the cloth settings in order to create a more natural, realistic look.

Here is a bug I encountered, causing the curtain to bug even though there aren’t any objects colliding with it and I had self-collisions turned off.

I intend for the animation to play once the play has clicked on the curtain, this is what the event player looks like.

I then added a few more nodes so that the animation doesn’t play again once it’s already been triggered



Just some further experimentation with ideas, I like the visual of having a creature so big that it can stand up at a high windowsill and look in, this was quite fun to draw as well.

And now for some more practical experiements:

I got started on getting the room together, this curtain asset proved helpful for creating a sense of scale and knowing how things will be positioned in my scene, but I want to actually create my own assets so that I can produce and manipulate cloth dynamics, and make my game feel a little bit more alive.

For this, I have been using Blender. I am actually completely new to this software, but its modeling capabilities and malleability is actually a lot better than C4D so you know what? Sure. I’ll bite. Here are a few screenshots from my journey in creating this curtain mesh.

Already noticing how easy it is to manipulate points and splines in Blender.
Just learning how to fix the normals in this screenshot

And here is the first issue I ran into during this project! I think I had extruded the polygons incorrectly, causing the dynamics to act as if the mesh is more of a pillow than a curtain, this took me a while to fix but when I had it sorted it was kind of smooth sailing.

I introduced some dynamics and then baked a position I liked into a mesh, this will essentially be what UE starts off with before I reapply cloth dynamics to it, allowing it to rest in a more natural position that it would be in otherwise.

In this screenshot I start playing around with these cloth dynamics, the way it’s handled in UE is quite unique compared to c4d and Blender but I’m getting the hang of it. After a little while, once I had read up on the mechanics online I got it into a shape that I was happy with.
Clearly I had some more learning to do.
One thing I forgot to mention, I animated the curtain expanding (closing) in blender and exported it alongside the curtain mesh in unreal, here is my first node logic attempt. In retrospect, now I know how node logic actually works, this is kind of funny.
Here I find a few meshes that I liked and positioned them in the scene to both start shaping everything out and to also have a better idea of how I want the game mechanics to work together. The smaller window is a copy of the big one but with half of it booled off, I use UE’s boole function a lot to quickly model parts of the scene.
In this screenshot I display how I set up the event to trigger at the end of the curtain animation, which should in theory stop the animation from looping. I don’t use this as there are better and easier ways to track this sort of stuff, but I just wanted to show my thought process.

I familiarised my self with boolean variables and custom events here, I also learned how to utilise components within blueprints as references. This BP doesn’t have a lot of capabilities that I end up adding in later on.

Here is some node logic that I played around with for hours trying to make work, the idea here was to make it so that the curtain animates where I click, so that there is some distortion and an increased connection between the player and the game. I want to make it look like a hand is pulling at the curtain as it moves towards closing. Unfortunately, this took way too long and I was making zero progress, I tried every single way I could imagine but to no avail, time to move on.

Categories
3D Computer Animation Fundamentals Immersion

Unreal Engine – Immersion Project – 4 – Further Planning

I want to incorporate a CRT TV in my scene in some way, it’s a large aspect of the short films I’ve produced (I have some sort of infatuation with CRTs apparently) and can be used as a storytelling device by showing short clips on it in certain situations. The TV itself could be part of the scares too. These old sets have such a specific look when they’re acting up – that warped static, the way the picture rolls, that weird high-pitched whine they make. Plus there’s something really unsettling about a TV turning itself on in a dark room, casting a cold glow everywhere.

As you can see in the top right, I include a shelf with picture frames. I plan on either having a photograph of a family or maybe some pictures of old people to really drive home that we’re in an old, lived-in room. The wainscoting in the back I plan to have be relatively ornate, potentially saying that the house used to be quaint and lovely but slowly decayed into disrepair.

The bed itself needed to feel messy, lived-in – like someone just jumped out of it or is about to climb in. Those loose pencil marks for the sheets create this chaotic energy
Playing with perspective in this concept, with those vertical stripes on the wallpaper drawing your eye right to where the monster’s face emerges. The bed frame’s simple metal design feels deliberately old-school, like something you’d find in a grandparent’s spare room.
The composition creates this triangle of tension – the monster’s face, the girl’s silhouette, and the burlap friend on the bed. The loose pencil lines for the bedding suggest comfort and safety, which makes the threat above feel even more intrusive and wrong.

I had fun with a couple doodles to sort of come up with the feel I want to produce. I doubt I’ll have the time to create an experience that will really capture what is being shown in these concept arts, but I want to push myself to the absolute limit and see what I produce in this timeframe.