Samsara (Peacock Fan Mirror)

Unreal Engine Unreal Engine
C++ C++
Blueprints 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

Fan Mirror Shield Ripples
  • 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)

Amrita Area in Editor
  • 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.

Phone

I am not comfortable putting my personal phone number on this public site, please use my email, or contact via LinkedIn.

Address

Newcastle Upon Tyne, United Kingdom