Categories
WIP

Postgraduate Show Day

The Time of Sin – Screen capture video
Poster for Postgraduate Show

Categories
WIP

Assembling the Cinematic SequencesLevel

Taking all the individual performance assets (Mocap data, facial animation, dialogue audio, and subtitles) and assembling them into the final, playable cinematic moments.

1.Building the Performance Sequences

Asset Integration: For every question and action in the script (e.g., Q1A2, T2, T5), I created dedicated Level Sequences.

Layering the Assets: Within each sequence, the MetaHuman character served as the central track. I then layered the following:

Body Animation: The retargeted Mocap data was placed on the Skeletal Mesh track to drive the interrogator’s body movements.

Facial Animation: Dedicated face animation data was added to ensure the character’s lip sync and expressions matched the performance.

Dialogue & Subtitles: The voice audio file was added to the audio track, and corresponding subtitle text was timed precisely to match the dialogue delivery (as seen in the sequencer view with the audio waveform and text boxes).

2.Orchestrating the Master Sequence (The Grand Conductor)

Master Sequence: To control the flow of the entire scene, a Master Sequence was created. This acts as the conductor for the overall interrogation, combining all the smaller Q- and T-sequences.

Event Tracks & Branching: The key feature here is the use of Event Tracks within the Master Sequence.

I use these events to dynamically trigger different animation paths (e.g., jumping from T2 to either Q1A or Q1B logic).

This allows the game’s Blueprint logic (which tracks the player’s choices) to seamlessly tell the Master Sequence which branch of the cinematic to play next, making the entire scene feel continuous despite its underlying non-linear structure.

3.Scene Previsualization

The final result is the fully lit and propped interrogation room (as seen in the screenshots) where the character delivers their lines, complete with props like the lie detector and the documents on the table. This setup is now ready to receive the dynamic instructions from the player choice logic.

Categories
WIP

Audrino & Heart Rate Sensor 

int PulseSensorPurplePin = A0;    // Pulse Sensor connected to analog pin A0
int LED = LED_BUILTIN;            // On-board LED
int Threshold = 550;              // Threshold for detecting a heartbeat

int Signal;                       // Holds raw analog reading
bool PulseDetected = false;       // True when a beat is detected
unsigned long lastBeatTime = 0;   // Time (ms) of the last beat
float BPM = 0;                    // Calculated Beats Per Minute

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  // Read the sensor
  Signal = analogRead(PulseSensorPurplePin);

  // Check if signal crosses the threshold upward (beat detected)
  if (Signal > Threshold && !PulseDetected) {
    PulseDetected = true;  // mark that we’re in a beat

    unsigned long currentTime = millis();
    unsigned long delta = currentTime - lastBeatTime;

    if (lastBeatTime > 0) {  // skip first beat (no interval yet)
      BPM = 60000.0 / delta;  // 60000 ms per minute
      Serial.print("BPM: ");
      Serial.println(BPM);
    }

    lastBeatTime = currentTime;
    digitalWrite(LED, HIGH);  // flash LED on beat
  }

  // When signal goes back below threshold, reset for next detection
  if (Signal < Threshold && PulseDetected) {
    PulseDetected = false;
    digitalWrite(LED, LOW);
  }

  // Small non-blocking pause (optional for stability)
  // Just ensures serial output isn’t too fast
  static unsigned long lastPrint = 0;
  if (millis() - lastPrint > 20) {
    //Serial.print("Signal: ");
    //Serial.println(Signal);
    lastPrint = millis();
  }
}
Categories
WIP

UI & Core Logic: Making Choices Matter

1. Title Screen & Player Choice (UI Design)

More importantly, I finished the initial UI element for the critical first choice. This dialogue box asks the player to select their birthplace (“Please select your birthplace / 請選擇你的出生地”).

2. The Choice Blueprint (Game Logic)

  1. Behind that UI button lies the logic blueprint. I’ve implemented the functionality for the UI buttons (the “on click” events).
  2. When a player makes a choice, the Blueprint takes the selected option and saves it as a string variable.
  3. This variable is stored within a custom Game Instance or Game State class. The critical part is that this class persists across different levels/maps, allowing me to carry the player’s choice from the very first scene all the way to the end.

Categories
WIP

FMP Final Critic

Categories
WIP

Building and Lighting the Interrogation Room

1.Model Assembly and Prop Placement

I imported and arranged all the custom static mesh assets to define the interrogation space:

Room Structure: The scene is framed by dark walls and a tiled floor, featuring the imposing Chinese characters on the background wall.

Key Props: The centerpiece is the dark wooden Table, upon which key investigative and bureaucratic items are placed:

The Device (implied lie detector/recording unit).

Stacks of official Paper/Documents.

A lone Chair sits opposite the interrogator’s side.

2.Dramatic Lighting and Atmosphere


The lighting design was used to maximize tension and focus attention on the interaction

The Spotlight: The scene is lit almost exclusively by the Desk Lamp (Lamp1), which casts a harsh, focused circle of light onto the table and the papers.

Shadow and Mood: This high-contrast setup plunges the rest of the room into deep shadow, creating an immediate sense of isolation, intimidation, and power imbalance between the brightly lit table and the dark periphery.

Material Focus: The lighting highlights the textures of the old paper documents and the stern face of the MetaHuman Interrogator, ensuring the player’s focus remains on the core elements of the interrogation.

Categories
WIP

Mocap Retargeting & MetaHuman Experiments

It’s been a mix of technical animation work and some creative character design.

First, I tackled the motion capture retargeting process in Unreal Engine.

I started by setting up the T-pose as a reference for the MetaHuman character, making sure the rig was correctly aligned.

I also used a proxy mesh to help with the initial retargeting setup.

After getting the base pose right, I was able to apply some mocap data. Here’s a shot of the character in a dynamic crouching pose, testing the retargeted animation.

Categories
WIP

Mocap Shooting Day

The week started with a dedicated Mocap Shooting Day to capture the performance data we need for our MetaHuman characters.

  • Vicon Shogun: We used the Vicon Shogun system to record the actor’s movements. You can see the initial data acquisition and skeleton setup in the software.

Scene Overview and Takedown

The entire shoot was structured around a series of Questions (Q-takes) and Transitional/Setup Actions (T-takes), designed to cover both normal and high-stress scenarios.

Categories
WIP

Home scene DoneScene Assembly: Lighting, Props, and Finalizing the home scene

1.Environment Build and Prop Placement

I imported and arranged the assets to create a mid-20th-century Taiwanese bedroom:

Custom Static Meshes: The scene is built using imported furniture models, including the Bed, a dark wooden Desk, and a Bookshelf.

Atmospheric Clutter: The desk is intentionally cluttered with specific props that ground the setting in the era, such as the stack of Books/Magazines, an enamel Mug, and the Newspaper spread out under the desk lamp.

2.Lighting and Mood


The lighting is the most crucial element for setting the pre-abduction mood:

High Contrast: The room is dominated by darkness, with two main light sources: the focused, warm glow of the Desk Lamp and the cool, faint light of the moon visible through the Window.

Vulnerability: This moody, low-key lighting scheme enhances the feeling of late night and solitude, which is essential to underscore the player’s vulnerability when the attack begins.

3.Setup for the Opening Cinematic (The Kidnapping)

The environment is laid out to support the 3-minute opening sequence:

The Approach: The layout features the door and the initial corridor, setting the stage for the narrative: “Late one night, you hear frantic knocking outside your door.”

The Threat: The presence of the dark figures standing near the door in the gloom suggests the immediate and overwhelming threat.

The Climax: The player’s final action—walking forward to open the door—will trigger the cinematic event where the masked men seize the player

Categories
WIP

Setting up the Player Pawn

The VR Player Pawn (BP_VRMANPawn)

I started by setting up the main Blueprint for the VR player character.

The Blueprint structure includes components for the camera, motion controllers (left and right), and likely the VR root component for managing scale and height.

In the Interrogation Scene, we are implementing key changes to the player’s VR Pawn to enhance narrative immersion and visual feedback.

  1. Narrative Purpose: The Interrogator’s Gear
    For the interrogation sequence, the player needs to be visibly wearing specialized equipment—specifically, a hand sensor (a wrist cuff or similar device).

This visual change serves a critical narrative purpose, signifying that the player’s character is now under surveillance or control within the scene’s context.

  1. Technical Implementation: Material and Mesh Swapping
    To achieve this visual transition, the BP_VRMANPawn (or the Level Blueprint for Level 4) will execute the following logic:

Hand Mesh Modification: We are preparing a separate mesh for the player’s hands that includes the 3D model of the sensor device.

Material Swap/Override: The existing hand material on the VR Pawn needs to be replaced or overridden when the player enters this level. This change can be executed by:

Swapping the Static Mesh: Replacing the basic VR hand mesh with the new mesh that has the sensor built-in.

Applying a New Material Instance: Applying a new material to the hand mesh, which includes a texture of the sensor or a special shader effect (like a glowing overlay) to represent the device.