02 / Observation & photography
Picture Entity
A photograph is a decision about distance, light and time.
An Unreal Engine wildlife-photography prototype built with C++ and Blueprint integration. A first-person camera turns observing animals into a technical interaction: find the subject, choose settings, compose, capture and review.
01 / Behind the viewfinder
More than pointing at an animal.
The native camera exposes zoom, manual focus, aperture, shutter speed, ISO, exposure compensation, white balance and stabilization. Those settings connect to the photographic pipeline; the portfolio selects only zoom, focus and shutter speed to keep the first encounter approachable.
The browser clearing is an authored interpretation. It fixes aperture at f/4 and ISO at 100. Shutter speed changes the motion-quality calculation, without simulating the original exposure pipeline or rendering motion blur. The still photograph preserves the view you actually composed.
02 / A living subject
Wait for an opening.
PhotographableCreature implements timed Idle, Grazing and Wander states, plus threat-related Alert, RunAway and Attack paths. Movement and state transitions run through its update code. Blueprint configuration determines species and presentation; a deer package references this native class and deer mesh/animation assets.
This small clearing uses a predictable grazing and walking cycle. It demonstrates waiting, framing and foreground obstruction, without reproducing navigation, threat detection or the complete wildlife system.
03 / Evaluating a moment
Geometry, optics and image measurements.
PhotoCameraComponent projects photographable actor bounds into the frame and traces toward the subject to check visibility. Composition combines position and frame coverage. Focus compares the subject distance with the chosen focus distance; motion considers shutter duration, subject/camera movement and focal length.
Captured pixel luminance and clipping inform exposure quality. ISO determines noise quality. PhotoRecord combines the technical factors using a geometric mean, then multiplies by composition, visibility and the species score value.
Focus × Motion × Exposure × Noise
↓ fourth root
Technical quality × Composition × Visibility
04 / Implementation challenges
Capture is a small lifecycle of its own.
The native capture path prepares photograph-specific actors, defers completion to a later tick, captures the final texture, stores the photograph and records it through the game mode. Keeping temporary actors, capture state and cleanup in agreement is a concrete engineering challenge visible in the source. Host/client capture ordering and persistent image round-trips still need runtime verification.
The project also contains sunset-related state and conditional post-sunset photographic anomalies. They suggest a more unsettling direction beyond wildlife observation. This slice does not recreate those systems, and their complete runtime behavior has not been certified.
05 / Development record
From viewfinder to evidence.
Viewfinder settings beside a poor and improved shot; photograph review; wildlife state changes; a short manual-focus sequence.
Future companion material: a camera capture-lifecycle diagram, annotated scoring examples and a wildlife state diagram. These spaces contain no substitute gameplay imagery.
Source & contribution notes
Inspected: Private/Photography/PhotoCameraComponent.cpp, PhotoRecord.cpp, Private/Creatures/PhotographableCreature.cpp, player input bindings and Content/PictureEntity/Creature/PE_Deer.uasset.
The source audit attributes rangefinder work (dac2979), run flow (4d17bd6), menu/session work (cc6ef97) and cutscene loading (a17c8b3) to cayden in the local Git history. This does not establish sole authorship of the camera, scoring, wildlife or bundled art. A completed species checklist was not verified.