THE GUILD VR - TECH BREAKDOWN
Due to short development time and small team, Mixamo was utilized for the rigging and animations
SKIN WEIGHTING
Problem: Mixamo's Auto Rigging really dropped the ball on the face / shoulder region.
Solution: Manually repainted weights for problem regions, then skinned costume pieces to appropriate bones.
Outcome: Decent looking setup, compatable with Mixamo's large animation library, and fairly quick to impliment.
BLEND SPACES
Problem: Goblins would have to move at set speeds for animations to sync up. When ramping up speed or direction, would look like they are sliding, and look unbelieveable.
Solution: Using a couple of animations, we can blend between standing idle, walking, running, and strafing using a speed and direction variable fed in through the character blueprint.
Outcome: Seamlessly transition between movement animations, and using blends, match movement speed with animations.
MORPH TARGETS
Problem: Working with an auto-rigged Mixamo Skeleton, I decided to use morph targets rather than add additional bones for facial animation, otherwise every new animation downloaded from the database would have to be editted, wasting time.
Solution: Morph Target support, allows for complex facial animations to be made and overlaid over existing body animations, allowing the existing animations and pipeline to remain the same.
Outcome: Created targets using the Facial Action Coding System as a guideline - realized how cumbersome they were to work with, so I consolidated, choosing ~8 targets to use for Goblin Shenanagins. Made it less overwhelming and better optimized.
Thrown weapons hit and stick to goblins
Bladed Weapons can be thrown and stick to objects based on their Physical Material
THROWING KNIVES
Problem: As the main mechanic, the throwing knives have many different tasks.
Solution: Created an object type in Unreal called "Weapons" which allows specific queries for hitboxes on Goblins or Interactive Objects. On collision hits, the knife determines the material impacted, and plays an appropriate sound and function. For example, sticking to wood or flesh, and clattering off stone.
Outcome: A throwing knife that feels good and is fun to throw!
MELEE WEAPONS
Problem: While holding a weapon, it has different properties, removing collision.
Solution: Created an overlap event on hitboxes to test for any weapons that may "slash" through enemies. On success, the weapon would become embedded and fall with enemy. This prevents players from holding a knife infront of themselves and mowing down tons of goblins.
Outcome: A melee system that worked as a last resort, but still incentivies throwing.
RAGDOLLS
Problem: After playing the death animation, goblins would just freeze in place looking strange. Players would try to interact with them and be disappointed.
Solution: Using Unreal Engine's Physics Asset System, reworked joint tolerances and added a function inside the goblin to activate ragdoll, be it on death or when hit with a large environmental obstacle.
Outcome: Goblins became much more satisfying to kill, environmental obstacles felt better, upped the fun factor!
Three different costumes, a color swap, and a couple other goodies can be manually set and changed in-editor without any hassle.
ANIMATION STATES
Problem: With many animations from a large database, most did not match up with eachother.
Solution: Using Unreal's Anim Blueprint, I set up blends between the many animations gathered from Mixamo.
Outcome: An easily editable and debuggable animation system
BEHAVIOR TREES
Problem: Goblins did not react to many outside stimulus, and their simple mechanics could be easily exploited. They became very boring and too easy to fight.
Solution: Using Unreal's Behavior Tree System, created dynamic mechanics and reusable functions with edittable variables.
Outcome: An easily debugged and additive system that controls the actions of the Goblins in The Guild.
STEALTH MECHANICS
Problem: With so many goblins around, when spotted and swarmed, it was fairly difficult for more casual players.
Solution: Make it so goblins would "notice" a player from far away if they are not behind some sort of cover, come investigate, and when close then begin calling out to nearby goblins. If allowed to yell out, all goblins in the area would move to attack.
Outcome: A risk vs reward stealth system that allowed more casual players to take their time and pick off enemies.
Copyright - Michael Filipek 2019