Samsara (Peacock Fan Mirror)
Blueprints
Implemented the functionality for the Peacock-Feathered Fan Mirror, a defensive offhand weapon for Samsara in Unreal Engine 5. The weapon projects a projectile-absorbing shield that converts blocked damage into stored charge, which can be spent on a directional area ability that heals allies and stuns enemies. I also implemented a custom impact-reactive shield material, and integrated animations and audio cues into the weapon.
Project Summary
- Implemented an offhand weapon in Unreal Engine 5.
- Created functionality for a projectile-absorbing shield which accumulates charge based on received damage.
- Created dynamic ripple shader for shield which reacts to impacts.
- Developed AOE ability that heals allies and stuns enemies, using the built-up weapon charge.
- Integrated animations, audio, resource logic, and gameplay states into the item.
My Contributions
- Blueprint implementation of item functionality.
- Custom material shader development.
- Animation/Action integration.
- Audio event integration.
- Resource balancing and player feedback systems.
Flow Diagrams
Projectile Collision With Shield
flowchart LR A[Projectile Hits Shield] --> B[Destroy Projectile] B --> C[Damage Converted to Charge] C --> D[Shield Changes Colour] D --> E[Data Given to Ripple Material] A --> F[Player Performs Impact Animation] F --> G[Shield Impact Sound Played]
AOE Ability Used
flowchart LR
A[Player Activates Ability] --> B[AOE Effect Active]
B --> C[Heal Allies]
C --> D[Stun Enemies]
D --> E{Exceeded Max Age?}
E -- No --> B
E -- Yes --> F[Destroy Effect]
A --> G[Player Performs Ability Animation]
G --> H[Ability Used Sound Played]
Energy Shield
- Activated by holding the parry button when offhand item is equipped.
- Disabled when using two-handed weapons.
- Consumes Focus Points1 over time.
- Absorbs incoming projectiles.
- Projectile damage converted to weapon charge.
- Visual colour change to indicate charge level (blue → red).
- Includes sound cues for raising/lowering, projectile impact, and when the weapon becomes fully charged.
1 Focus Points are a resource in the game that is generated by parrying, killing, and other player actions.
Shield Material
- Built a custom Unreal Engine material system, driven by projectile impact data.
- Impact position and timestamp are passed to the material to generate ripple effects at the correct point on the shield's surface.
- Ripple behaviour is fully parameterised, including: frequency, intensity, radius, colour, and lifetime.
- Ripple fade-out is implemented using an exponential falloff for smooth dissipation.
- Modular design so that (if necessary) multiple ripples could coexist simultaneously.
Amrita Area (AOE Ability)
- Developed a cone-shaped area ability which can be triggered when shield charge is at or above 50% of its maximum charge.
- The specified amount of shield charge is consumed when the ability is used.
- Allies (including the player) within the area are healed, while enemies within the area are put into a stunned state.
- Stunned enemies are tracked internally to ensure they are only stunned once for each time they enter the area.
- Automatically destroys itself after a fixed duration.
- Includes a looping sound cue which plays while the area exists, and a sound which plays when the area dissipates.
Animations and Actions
- Implemented animation events for shield activation, impact reactions, and ability execution.
- Integrated Unreal Engine action system to ensure gameplay and animation synchronisation.
- Created a custom action for AOE ability, with a per-character adjustable translational offset.
- Integrated audio triggers directly into action pipeline to ensure consistency across the project.
Focus Depletion
- Implemented a continuous drain on the player's Focus points while the shield is raised.
- Drain occurs over time, instead of a one-off activation cost.
- Introduced the use_focus flag which can enable or disable the focus-related features easily.
- Displays a contextual UI warning when the shield cannot be raised because there isn't enough Focus.
- Balances defensive gameplay by forcing the player to perform resource management.