Cypher Characters

o kit building, balancing and anything to do with the actual character creation aspect- especially mechanically is something I enjoy. It’s something that I spend a lot of time thinking about because it influences, more than any aspect of a class based system in a game, how the user interacts with his/her world and in our case for a multiplayer game, how the user interacts with another user (be it their teammates or the enemy). As such, this game wasn’t necassarily an exploration into interesting kits and designs for characters so I decided to keep these simple. From an engineering and design aspect- this was a lot of fun because of how I coded each of the abilities. Each ability would sit on a script independently and would access the appropriate animations from the asset resources independently. What this meant is that I could drag and drop abilities (scripts) onto different characters and try them out in conjunction with other abilities and characters to find the kit that I thought fit the characters best. Speaking of characters, all characters are based on a DnD campaign by my friend and fellow designer Hudson Bielstein. Bonaparte: The Tank * Most health out of our three characters * Not meant to be fast in terms of movement * A Ability: Thor/GoW style axe throw and return for damage * B Ability: A shield that will increase individual health aiding team fights Eaglor: The Magic Archer * The sniper like class in our set of three * Very powerful sniper hits * A Ability: Animation locking bow shot that does incredible DPS * B Ability: A light AoE DoT

To make the character’s, I started by taking a fresh scene for each of the characters and constructing a test level to get them working. The challenge would be two fold since later, there would be a networking aspect as well. To start though, I ignored the latter and started by making myself a third person character. Using Cinemachine, animations from mixamo and their default body model, I hooked up the animations, made an animator and coded the movement. To move the character nice and smoothly on the ground I used a blend tree to nicely, and I also messed with animation layers to be able to attack and move at the same time without it looking completely odd. The movement scriptactually had variable factors like speed and more so using that script I could bring up another character in a pinch. To blend between animation layers themselves, I made some helper coroutines along the lines of the below to help me out.

IEnumerator AnimationFadeIn(int layer, float time)
{

	float elapsedTime = 0f;
	float currentWeight = 0f;
	while (elapsedTime < time)
	{

		currentWeight = Mathf.Lerp(currentWeight, 1.0f, (elapsedTime / time));
		anim.SetLayerWeight(layer, currentWeight);
		elapsedTime = elapsedTime + Time.deltaTime;

		yield return null;
	}

	yield return null;


}

I started with Bonaparte the tank and after setting him up with another script for handling health and what would later become his shield, I copied that level, Bonaparte included and got tweaking to make Eaglor. Now for Eaglor, I just had to set up his health properly and make his abilities. For particle effects, I used some free assets on the Unity store. To make more feel based adjustments, I used Cinemachine’s perlin noise (my version of Unity didn’t support the 4D noise plugin they now have), and added a script for calculating those values to Bonaparte and Eaglor based on what they should feel. I tried to make Eaglor’s shot have heavy recoil while bonapartes axe re-grab would have a slight “click” feel. I used similar coroutines to the animation fade in and out to get the camerashake working as I wanted to as well.

After getting the characters to a certain point, I decided to head off and try to get multiple players on the same scene!

image-center

image-center

But there we have it! These are the tentative characters proposed for the game right now.

-Kshaya

Back to Top ↑

Updated: