LHLUCAS
HOELZLEUNREAL ENGINE DEVELOPER
CV (EN)
/
All projects
01 / COMBAT / ANIMATION / AICompleted prototype showcase

Nightfall: Tactical Encounter

From movement to encounter.

A third-person combat prototype in a nighttime barn environment. Layered animation, camera-based shooting and enemy patrol / pursuit come together in Blueprints.

MY ROLEGameplay, animation & AI integration
ENGINEUnreal Engine 5.8.3
FOCUSAnimation Blueprint, ADS, Behavior Tree
PROJECT TYPEIndependent portfolio project
Nightfall: Tactical Encounter gameplay screenshotWatch gameplayACTUAL PROJECT SCREENSHOT / Unreal Engine 5.8.3
THE PROJECT

The idea. The work. The result.

01

The challenge

Connect locomotion, upper-body combat animation, aim camera, shot detection and enemy behavior into a coherent third-person encounter.

02

The approach

An Animation Blueprint blends movement and pistol poses. Input drives a reversible ADS Timeline; a camera line trace feeds damage. AI Perception updates Blackboard state, and a Behavior Tree selects pursuit or patrol.

03

The outcome

A completed personal prototype demonstration, supported by original gameplay, editor screenshots and technical documentation. The public repository is a media showcase; a packaged game and the full Unreal project are not distributed.

MY CONTRIBUTION

I implemented and integrated the Blueprint gameplay, Animation Blueprint, aim camera, crosshair, shot / damage flow and enemy AI, then tested the encounter locally in Unreal Editor. Environment, character, animation and audio assets come from third-party content; my focus is their gameplay integration.

SEE IT PLAY

In motion. In engine.

Download video
ABOUT THE FOOTAGE

Original 36.5-second recording with game audio: exploration, movement, enemy encounters, aiming, shooting and barn traversal. Captured locally in Unreal Editor on Windows; development debug messages are visible.

TECHNICAL BREAKDOWN

How the pieces connect.

BlueprintsAnimation BlueprintBehavior TreeAI Perception
01

Locomotion & animation state

ABP_Lab_Basico / SM_Character / BlendSpace

The animation update reads planar velocity for Speed and Character Movement for IsJumping. SM_Character switches between Locomotion and Jump; the documented BlendSpace covers idle, walk and run. AimAlpha is interpolated toward the aiming state for a gradual blend.

02

Layered pistol animation

Layered Blend per Bone / Slots / Modify Bone

The supplied AnimGraph layers the pistol ADS sequence over the locomotion base using AimAlpha. A cached pose and UpperBodyFire montage slot feed another per-bone blend. Transform (Modify) Bone adjusts spine_03 from AimPitch, connecting the upper body to the view direction.

03

Aim camera & crosshair

IA_Aim → TL_CameraAim → SpringArm

Starting and completing the aim input play or reverse TL_CameraAim. Its Alpha lerps the SpringArm length and socket offset between normal and aiming values. The crosshair follows the aiming state, with a reload montage guard in the captured input graph.

04

Camera-based shots & damage

EVT_ExecuteShot / Line Trace by Channel / AnyDamage

The shot event plays MSS_Pistol_Fire and traces on Visibility from the FollowCamera world location along its forward vector × 5000. The visible graph reports HitSomething through OnShotFired. The repository documents ApplyDamage on a blocking hit and enemy AnyDamage reducing health until elimination; those downstream damage nodes are outside this capture.

05

Detection & enemy decisions

BP_EnemyAIController → BB_Enemy → BT_Enemy

The controller starts BT_Enemy when possessing an enemy. AI Perception is documented as updating TargetActor and CanSeePlayer. In the supplied tree, the CanSeePlayer Blackboard decorator guards the pursuit branch, with observer aborts set to Both; otherwise execution reaches the patrol branch.

06

Navigable patrol

BTT_FindPatrolLocation / PatrolLocation / Move To

The task obtains the controlled Pawn location and requests a random reachable point within a 1000-unit radius. Success writes PatrolLocation to the Blackboard and completes the task; failure finishes without success. The tree then moves to PatrolLocation and waits 2 seconds before another patrol iteration.

07

Montages, notifies & sound

IA_Reload / Animation Notifies / MSS_Pistol_Fire

The reload input checks whether a montage is playing, exits aiming and starts AM_Lab_Reload. Animation Notify events are visible in the animation event graph, including DashMoment triggering sound at a location. The documentation also describes randomized pitch in the pistol MetaSound.

08

Event-driven training iteration

OnTargetDestroyed / OnTargetDamaged / UMG

A development capture shows BeginPlay creating the crosshair widget, then binding Event Dispatchers on BP_TrainingTarget instances. Damage and destruction callbacks provide debug feedback, and the destruction callback adds 100 to Score. This documents a training-target iteration rather than a finished enemy-scoring HUD.

9 ORIGINAL EDITOR CAPTURES

Behind the encounter.

Download walkthrough

A 1 min 30 sec technical walkthrough: original graphs, English explanations and optional Portuguese subtitles. No narration. Open the full-resolution captures below to inspect the nodes.

The captures include development and training-target iterations. AI Perception and downstream damage handling are described in the repository; the supplied images show the decision tree and camera trace.

STATUS & NEXT STEPS

Still building.

Completed as a personal Blueprint prototype and tested locally in Unreal Editor on Windows. The public material documents a focused patrol / pursuit encounter. Future polish could refine encounter feedback, remove debug prints and prepare a packaged build.

AUTHORSHIP & ASSETS

Clear contributions. Proper credit.

Blueprint implementation, gameplay integration and local testing by Lucas Hoelzle. Environment, character, animations and audio use third-party assets. Their individual asset-pack and creator names are not specified in the current repository; original art and audio belong to their respective creators.

NEXT PROJECT

Core Escape