Project Ether

Capstone game featuring stealth mechanics and a diverse narrative

30-minute vertical slice featuring approachable stealth mechanics, diverse story, and unique visuals.


Contributions

Towards the end of this Capstone group’s development window, they were still experiencing a lot of animation bugs and their main 3D animator had just taken leave. Luckily, through a mutual friend who was heavily involved in the game’s systems programming, I was brought along and was able to resolve many of these issues over the course of 2 weeks. A quick summary of my work involved:

  • Debug critical animation, movement, and texture bugs with models
  • Debugged Animation Montage triggers
  • Smoothed out AnimGraph states
  • Fixed faulty render textures produced from Blender to Unreal pipeline

While I worked, I also kept a list of changes I pushed to Perforce to report to my team lead (see below).

    04/06/2024 6:19 PM
  • Added EtherOn and EtherOff anims
  • Fixed logic in AnimGraph -> Locomotion
  • Created "Disable Ether" function in BP_ThirdPersonCharacter - > "Ether Functionality" to trigger when Energy depletes to 0 (so game doesn't hang anymore)"

  • 04/10/2024 2:00 AM
  • zoomed out cam and aimed it down to show full model
  • implemented couch_walk_idle anim
  • set AM_Zhay_HexShoot slot to UpperbodySlot so it only blends the upperbody

  • 04/10/2024 11:43 PM
  • Added 0.6 Delay before "Set Dying" in Guard EventGraph and removed link between "Takedown" and "Dead" states in "GuardBotAnimBP", which fixed Takedown timing and overshooting "Takedown" state
  • Reimported Zhay_Takedown with -90 rotation as "Zhay_Takedown_Fixed" to rotated animation
  • Set "Ether" bool as deciding condition in "On Component Begin Overlap (Sight") event, since "Hex Toggle" var wasn't working
  • Moved "Enable Input" to play after 2nd Delay in Event Interface Interact and set Delay to "1.5" seconds for timing
  • Fixed Guards idle walking by adding an "Idle" state to GuardBotAnimBP, which triggers when not moving
  • Created "isStunned" bool in Guard EventGraph, which is set to true when "Stun Guard" is called and set to false after Event Interface Interact is called. This is checked when "On Component Begin Overlap (AttackHurtbox)" is triggered and is a condition of attacking, elimnating the event of a player stunning a Guard and still getting attacked.

  • 04/20/2024 7:24 PM
  • Fixed dead Guard models being rotated when Ether Off by creating If/Branch conditional in "Look In Direction" section of Guard EventGraph
  • Fixed Guard moonwalk by skipping "Set Actor Rotation" in "Scan" MotionWarp


Demo Video