Categories
Advanced and Experimental 3D computer Animation Techniques Project 2

Week 3 Write character and weapon blue print in Unreal engine

This week, I completed the following tasks in the character blueprint:

  • Set up footstep sounds
  • Added mouse input for aiming down sights
  • Created a transition to zoom the head during aiming
  • Adjusted walking speed while aiming
  • Added depth of field effect when aiming
  • Set footstep sounds specifically for aiming movement
  • Created the weapon blueprint
  • Wrote a custom event for weapon firing
  • Added a weapon state machine
  • Added weapon sound effects, bullet effects, and reload effects
  • Implemented bullet hit effects
  • Created a function to count bullets
  • Built the reload blueprint
  • Added natural bullet spread
  • Added recoil effect when firing
  • Added bullet glow effects

This week, my main focus was still on blueprint scripting. Once the character and enemy blueprints are done, I can just drag them into the map and use them directly. Although there are many follow-up steps afterward, the blueprints are definitely the top priority.

After finishing them, I’ll move on to reworking some model textures, building the scenes, creating the UI and main menu, and finally packaging the game.

Last week’s recording wasn’t very clear, and Windows Game Bar can’t capture multiple windows well.

Especially when I opened the blueprint editor, it kept recording the main window—pretty awkward!

This week, I found a recording software called OBS Studio, and I’ve discovered it works really well.

Set up footstep sounds:

I selected the audio files and created a single cue. Then, I added an audio modulator to unify the pitch and volume across these sounds, while also introducing random variations in pitch and volume. This way, when played back, the audio feels much more dynamic and natural:

Then, I went back to the animation asset and added a “Notify” — “Play Sound” — selecting the sound cue I just created.

Added mouse input for aiming down sights

Similar to before, I added mouse input, set it up as IA_focus (for aiming function), and linked it inside the character blueprint. This lets me control the focus with the mouse smoothly.

I used a timer to make the aiming zoom effect transition more smoothly. This approach will also come in handy later for toggling the flashlight and handling other action transitions.

Adjusted walking speed while aiming:

In the speed calculation function, I added a condition that if the character is aiming, the selected float value becomes 150(150 for the speed of walk with aiming).

Then I add blueprints for the weapon, cause there are some functions like reload ammo and ammo calculation, I need to split these from character blueprint, otherwise, it will be mass.

Then, in the weapon blueprint, attach (or spawn) the weapon to the character’s arm.

In the weapon blueprint, I set up the following event icons: fire_weapon, change bullets, and recoil.

In fire_weapon, I configured three states: start firing, firing, and stop firing. Then I used play animation montage to connect the animation assets to each of these states.

The rest of the operations are all shown in my screen recording:

Categories
Advanced and Experimental 3D computer Animation Techniques Project 2

Week 2 Write character blue print in Unreal engine

This week, I mainly worked on setting up the character blueprint, including:

  • Character capsule setup and camera setup
  • Character state machine setup (idle, walk, run)
  • Implemented camera rotation control using mouse movement
  • Added shift key input to trigger the running state and linked it to the state machine, enabling communication between the character blueprint and the animation blueprint
  • Added weapon drag effect (weapon swings slightly caused by camera movement)
  • Added character detail lighting (I wanted to create a warm light to simulate a body-attached light source, combined with a cold light for contrast)
  • Effect testing

Before getting started, I will provide all the assets I used and the link to the tutorial I followed. Since the tutorial I found is from the Chinese platform Bilibili, I won’t be able to share a YouTube link for the video resource.

Assets used:

1.Environment:

Dark fantasy greatsword pack | Unreal Engine 5 + UNITY – Naked Singularity Studiohttps://www.youtube.com/watch?v=_xR6SHgfhPU

2. Morbid Pack

Morbid Pack Volume 1 – https://www.fab.com/listings/8b88ac2e-9b50-4381-91d1-46683a89178b

3. Serpent Model I Created in Last Semester — Collaboration Units
(Full process: modeling, UVs, texturing, rigging)

4. Gargoyle Model I Created in Last Semester — Collaboration Units
(Full process: modeling, UVs, texturing, rigging)

5. Tutorial:

The course is taught by the creator of the game “Deathly Stillness”, which is available on Steam. Through the course, I learned how to create character and enemy blueprints, The character and zombie asset packs (including skeletal meshes, animation assets, and audio assets) were provided as part of the course and used for practice.

https://www.bilibili.com/cheese/play/ss32685?csource=Share_copylink&from_spmid=333.873.selfDef.purchased_lecture&plat_id=362&share_from=lesson&share_medium=iphone&share_plat=ios&share_session_id=B94F4E1E-BB07-40B1-83E1-A53774E26305&share_source=COPY&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1747402290&unique_k=528infI

Character capsule setup and camera setup

At the beginning, I set up the Animation Blueprint, Character Blueprint, and Blend Space for the character.

When I started setting up my character, the first step was to create a Character Blueprint. Inside the blueprint, I added the character mesh and carefully adjusted its position so it sat correctly within the capsule collider. This ensures that the character’s mesh and collision boundaries are properly aligned, which is really important for smooth movement and interaction.

I applied the same process for setting up the camera. I attached the camera to the character blueprint and positioned it in a way that works well with the gameplay perspective I want to achieve.

These might seem like basic steps, but getting them right early on saves a lot of trouble later in the pipeline—especially when starting to work with the animation blueprint and player controls.

Since the screenshots were taken later in the process, they include some updates like the arm texture and a few event icon features I added along the way.

Character state machine setup (idle, walk, run)

Inside the Animation Blueprint, I set up the State Machine, including Idle, Walk, and Run states.

Idle
Move

In the Blend Space, I blended the Idle, Walk, and Run animations, and set up the corresponding movement speeds.

For example, I set the walking speed to 300 and running speed to 750. Since my scene is quite large, I needed the character to move a bit faster to fit the scene.

Implemented camera rotation control using mouse movement

在角色蓝图的文件夹中,我增加了输入的文件夹,并加入了鼠标可以控制角色摄像机视野旋转的input action:

I also changed the bool input to Axis 2D, since the mouse controls the camera rotation based on X and Y movement on the screen plane. Using a bool would only allow simple on/off states, while Axis 2D lets me read continuous input values, which is more suitable for smooth camera control.

I used the Input Mapping Context to organize all the input settings and define the input devices, making the control setup more clean and modular.

I added a Look event in the event graph to call IA_look

Added shift key input to trigger the running state and linked it to the state machine, enabling communication between the character blueprint and the animation blueprint

In IA_run, I used a bool because it’s a simple on/off check—whether the key is pressed or not.

Similarly, I set up the Shift key input within the Input Mapping Context.

I added an if-run boolean check in the running graph. Then, I created a speed calculation function that uses this boolean—if the character is running, it sets the speed to 750, otherwise to 300.

Added character detail lighting (I wanted to create a warm light to simulate a body-attached light source, combined with a cold light for contrast)

This was my first attempt at adding a warm light attached to the character, so I added a point light inside the capsule.

Later during testing, I adjusted the light settings and created a toggleable flashlight-like feature for illumination.

IA_open_light
Open light function
I added this feature in the later stage, so I recorded it using the current version of the project files.

Categories
Advanced and Experimental 3D computer Animation Techniques Project 2

Week 1 Research and Production Plan

This week, teacher introduced some experimental opportunities we can explore this semester, so I’m thinking that I might take this chance to push myself and create an FPS shooting game.

Recently, the second season of The Last of Us has been airing, and I really love its art style. The decaying cities are covered by plants, and people embark on a survival journey.

What sets this work apart from other zombie-themed works is that it more realistically reflects a cruel and heartless world. For example, under the rampant spread of cordyceps fungus, the government not only fails to provide shelter to the people but instead takes those who are uninfected in surrounding towns under the pretext of sending them to safety zones, only to kill and cremate them in the wilderness. The reason is that the higher-ups believe that if these people die, they won’t be infected in the future, which would reduce their workload.

After the outbreak, other survivors desperately scavenge for resources in order to live. Some even use lies to lure others in, only to kill them and steal their supplies when they least expect it. In that world, humans seem to have become even more terrifying than the zombies.

Inspired by this, I want to make a zombie FPS game. However, I need to think about how to make it and what the protagonist’s purpose in the game would be.

So, I’ve been researching the art design of The Last of Us to get some inspiration:

We can see that most of the city scenes are open and spacious, while enclosed areas usually feature a focal point that draws the player’s attention, along with strong lighting contrasts to guide them in the right direction. Since I’ve never tried designing game levels before, I don’t really have a clear idea of where to start.

I’ve built a game level in Unreal Engine where the player can move back and forth. The layout is shaped like a “U”. The player spawns underneath a collapsed overpass and needs to find the correct path by navigating through the wreckage and abandoned cars. Along the way, zombies will appear to challenge the player.

In terms of gameplay expectations, the player can see their destination—an area filled with tall buildings—in the distance from the overpass. This visual cue encourages the player to explore and figure out how to reach that location. When the player discovers a way to climb the collapsed structure and get onto the overpass, they gain the opportunity to observe their surroundings from a higher vantage point.

The first area is designed like an isolated island, so the player needs to traverse vehicles and the overpass to reach the second section. I want the player to do more than just stand in one place shooting zombies—I want them to actively explore the city, using collapsed structures and debris to discover new paths and move from one location to the next.

The second area the player reach is partially submerged in water, so they have to move forward by stepping on sunken cars. If the player falls into the water, they will die.

I referenced this picture:

Then, while building the level, I imported Unreal Engine’s first-person shooter template to test it. Through testing, I discovered that there are some issues with the scene.

For example, the player needs a strong motivation to explore the map and receive positive feedback—but figuring out how to design that feedback loop is quite challenging.

The second issue is that the scene is too open and expansive, which results in endless skylines in the distance. If I were to build out all the surrounding buildings, it would require a massive amount of work.

A massive map would make the entire gameplay flow more complex. So I think I need to find an alternative approach, even though I’m quite reluctant to let go of this level.

Find Plan 2:

How can a zombie shooting game remain engaging when the scene is smaller in scale? How can I make the decaying environment more interesting?

I was reminded of Escape Room, where the protagonist is tricked by a company—thinking they were just joining a regular escape room game, only to realize that failure means death. So I started wondering if I could incorporate something similar into my game.

For example, the protagonist could also be participating in what they believe is a live-action immersive experience, but it turns out they’ve been deceived and thrown into a zombie-filled environment. They must outsmart the zombies and gather materials to repair the safehouse door lock in order to escape. Meanwhile, everything is being livestreamed by the company for profit. When the protagonist defeats a zombie, viewer reactions and comments would pop up in the bottom left corner of the screen, showing the audience’s responses in real time.

However, although this idea is quite diverse, it would be difficult to implement. For example, how to write the blueprint for delivering items(like find, pick tool to fix the safe door), and how to design a real-time feedback system in the bottom left corner similar to a live stream. I searched online for tutorials but couldn’t find much to reference, so I need alternative solutions.

Find Plan 3:

I thought I could continue my game design based on some tasks I completed last semester. In our group project last semester, we designed a dungeon short film, but due to some factors, the entire scene turned out quite dark, and my model didn’t look great in the scene. So, I thought I could design my own dungeon game, using the gargoyle as one of the enemies.

I tried using Mixamo’s animation library and motion mapping to implement actions like attack, chase, idle, knockdown, and hit reactions. However, I still need to adjust the animation blending and manually keyframe the wing animations:

This way, I can apply the model assets I previously created to design a game, which I think will be quite meaningful.

So, I plan to create a first-person, single-player game set in a dungeon. The protagonist is a member of a mysterious organization, sent to investigate supernatural occurrences and deal with the roaming monsters. The story’s opening is somewhat similar to the beginning of Resident Evil, where the protagonist goes to a strange village or eerie mansion to investigate and ends up killing the leader inside.

Although the game might not have deep spiritual themes or messages, I want to learn how to write blueprints and the process of creating game enemies, and I believe I will gain a lot from it.

Art style

In terms of art style, I suddenly thought of a game I played back in my primary school: Dark Meadow: The Pact,which was developed by Phosphor Games Studio based in Chicago, was built using the Unreal Engine 3 and was first released on the iOS platform (iPhone and iPad) on October 5, 2011.

The player wakes up in an abandoned hospital, having lost all memories of the past.

The only “guidance” comes from a man speaking through a loudspeaker. He claims he was once trapped here as well and tells you that the only way to escape this nightmare is to kill a being known as The Witch.

As the player battles monsters in the hallways, gains experience, and ascends to higher floors, the story unfolds—eventually revealing that The Witch is, in fact, the player’s own daughter.

Game Plan:

So, I wrote down all my game ideas to make sure I won’t forget them later. I’m planning to create two maps: the first one is a forest map on the surface, and the second is a dungeon map. I hope I’ll have enough time to finish both of them: