Home 3D Art Showcase & Critiques

Brutal Knights - Game Project/Learning Experience

greentooth
Offline / Send Message
Bolovorix greentooth
So an old co-worker and myself decided to collaborate on a game project idea. It's mostly an opportunity to learn some new areas of game development at the same time as make something that is fun and looks cool.

He'll be streaming some of his programming on twitch: HERE

I figured I would make a thread on polycount to document what I learn during the process.

Anyways, here's a crazy proportioned knight that we're going to use as a starting point. 

Figure it might be worth mentioning that all of these models have been made with Zmodeler. Something else I'm trying to get better at using. I think if it had a simple "cut polygon" tool like Max or Maya it would be even more powerful. You can get similar functionality using the zsphere method but it's so cumbersome to get the mesh into there in order to modify it.




A few different weapons






Replies

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    I picked this project back up a few years ago when I started learning Unity. Lately I've been experimenting with a visual style that is simpler/faster for a solo project.
    Here's a little WIP of the player character.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    I made the transition over to blender for personal projects at the beginning of the year so I have been reworking my old animations on a new rig.
    Here's a first pass attack animation on the new rig that will get broken up into 2 separate animations for use with my combo system in Unity. 
    I'm purposefully keeping the amount of keyframes pretty minimal in order to try to speed up the process.
  • Phoenix995
    Offline / Send Message
    Phoenix995 interpolator
    OMG you are doing the unthinkable! you are trying to pick up an old project to finish it!!! 
    Every Artist in the world looks at this and is jalous^^

    back to topic, your keyframes look juicy already :) keep it up
    also i like the gradient you had on the assets 3 years ago :) looks nice!
  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Phoenix995  thanks! Originally I was intending to do a UE4/PBR style project but once it became a solo project I didn't want to be tackling too many things all at once. Learning some basic C#/Unity was already a heavy enough challenge, lol.
  • DavidCruz
    Offline / Send Message
    DavidCruz interpolator
    i like the character, best of luck a solo adventure, everyone of us wish they could do that don't they.  My issue is trusting others, lol with today's climate seems 1000% valid.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Thanks DavidCruz! It definitely hasn't been the easiest to remain focused on one project for so long.
  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Here are some clips from 2020 of my old animations that I used for a long time.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    A clip from an early prototype from 2019.

    Essentially this was the first complete "loop."


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Ran into an issue when implementing my new animations; The melee attacks were missing the enemy when they felt like they should be hitting them.

     I overlooked the significance of the keyframe placement of my first pass animations, which, just by luck were placed in a way that made the melee "feel" good right off the bat.
     The spheres represent my spherecasts that are casting back to their position from the last frame, essentially creating a filled area that is checking if there is an enemy to damage.
    My old animations had a nice perpendicular area, like a slice of pie, out if front that felt really nice whereas the new animation create a triangular shape that keeps missing.

    At least... I think that's what is causing the issue, lol. 

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    I adjusted the new attack animations and added an extra frame to get a better spherecast arch which solved the issue of the melee attack missing when it "felt" like it should have hit. 

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    While I was implementing the new animations into my animation controller I had to resolve the undesired effect of my melee attack animations playing in the direction the hips were facing. Since my Forward-Left, Forward-Right, etc... animations were just the run Forward animation rotated 45-degrees in either direction I need to address this in order to get the melee to feel right.
    The goal was to achieve a similar feel of your typical 3rd person shooter where the upper body faces forward while the lower body animations face the direction the player is moving.

    For this I ended up using 3 layers and avatar masks for my locomotion animations: 
    -One for the lower-body
    -One for the hips
    -One for the upper-body
    I synced the layers to the base locomotion layer so that all three layers share the same state-machine structure. This allowed me to customize the blend trees for each state in each layer. (I should probably put the Death state on it's own layer...)



    This also worked well for combining the attack animations with the lower-body locomotion animations. For the full body attack animations I just set the layer weight through the player controller script based on whether the player is grounded and movement speed is zero.

             
  • Crazy_pixel
    Offline / Send Message
    Crazy_pixel interpolator
    I like the project, the new fight animation is really nice.
  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Crazy_pixel thanks!
    All the animations are going to need at least another pass but its getting there. Trying to nail the "feel" before I start polishing anything.
  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Added a simple hit flash effect to my enemies and the player.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Started blocking out a base for my skeleton enemies and got him skinned to the knight's rig for testing.



    A few animation tests

         


  • Oaken
    Offline / Send Message
    Oaken polycounter lvl 8
    I can imagine him picking up his tiny hat between two fingers ,keep it up.
  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth
    Footsoldier modeled and unwrapped, just packing the UVs so I can start drawing on him.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    A rough texture pass. Going to get him rigged up and in engine before going any further. I want to mess around with a fresnel to help add some depth that feels like its lacking and eventually add shading to all of the armor. But I'll do that on another pass.


  • Crazy_pixel
    Offline / Send Message
    Crazy_pixel interpolator

    Very nice progress 👍👍👍👍👍

  • Gussketchbook
    Offline / Send Message
    Gussketchbook polycounter lvl 2

    Loving this project so far!

  • Temppe
    Offline / Send Message
    Temppe polycounter lvl 10

    Yo, I like it. The animations are cute, they remind me of old games.

    I would suggest breaking the symmetry a bit more. Right now the only asymmetric element is the belt across the torso.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    @Crazy_pixel @Gussketchbook @Temppe thanks, I'm glad you're liking it!

    In regards to more asymmetry I could definitely see that. Ideally I'll do another pass on everything so I'll have to do some iterating when I come back around to it.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Got the skeleton hooked up in Unity and having a bit of fun beating up on him. Animations are currently the same as the player character since they share the same rig - I'll be making new animations at some point in the future.

    I've also been playing through Hyper Light Drifter again for some inspiration and got my hit flash effect working more closely to the functionality in HLD. It now flashes from white to black 3 times each hit, rather than just flashing white.

    Something else I'd like to get working is the slight model shake that happens in HLD when the enemy is hit. So I might mess around with that next.

    Screen freeze and screen shake are also on the list.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Took some time to learn how to make my own custom font with FontForge and scanned in some hand-drawn letters as well as scripted a simple ScreenFader class for transitions; also did a pass on a menu screen logo.

    I'm planning on doing a 3D scene as a backdrop so going to start doing some experimentation for that along with some general environment art tests.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Made a rough tiling brick texture with Bpainter this morning. I think I need some more size variation in it so gonna keep messing with it. Might do an extreme weathered version of it as well.



  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    I've been working on some more environment art modeling/texturing experiments over the last few days; did another pass on the brick wall texture and played around with various trim techniques.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Starting to get a small scene put together and setup in Unity. Doing most of the scene layout in Blender, including some of the collision, and then I'm going to use ProBuilder to create collision for things like the floor, ceiling, walls etc, in engine.

    Mostly trying to learn some environment best practices so I was asking our Environment Art Lead at work how they go about some things. Working on applying some of the things I was told.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Some more lighting experimenting and learning. Still very much WIP but getting closer to the feel I'm trying to achieve with this scene.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Here's a super simple brightness/contrast shader graph I made to give some control over how the diffuse texture looks with the dark lighting.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    This is a really annoying issue I always seem to run into when importing FBX animations from Blender into Unity since there is usually a bit of a time gap in-between so I decided to write a post in order to remember how I solve it. (I need to start utilizing Export Presets...)

    The issue is jittery animations when using IK on the hands/feet:

    In order to solve this issue set the "Bake Animations" settings accordingly, specifically "Sampling Rate" and "Simplify":

    In Unity disable "Resample Curves" and turn "Anim. Compression" to off:

    The result should be smooth IK animations:

    Some of the Unity settings are a bit specific to the way I'm trying to maintain a "stepped" animation look by using minimal keyframes but the export settings are the ones I forget and go through a number of trial/error attempts to figure out.

    Something else worth noting is that occasionally updating the animation in Unity doesn't always seem to work so Its worth deleting the animation entirely and dragging it in fresh to see if that solves the issue.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Now that I got my IK jitter issue fixed I got a new simple spawn animation hooked up for my basic skeleton enemy (who still needs another texture pass).

    It's pretty fun spawning a bunch of these in and seeing all of the hands popping up out of the ground.

    Next I need to get some VFX and sound FX created for these guys as well as some new basic anims.


  • killnpc
    Offline / Send Message
    killnpc interpolator

    i really like this character, the proportions are really fun.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Thanks, @killnpc, I'm having fun with them!

  • vilop1998

    I think may you will have a problem in the future if you keep going in this way, the main character and the enemy have a too similar silhouette, from a normal distance read similar and I think that is a problem, mmm maybe you can fix it with colors but dk..

    Overall looks really cool your models and design ^^

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Hey @vilop1998 thanks and I appreciate the feedback! Admittedly, I hadn't really thought about the similarity between the enemy and player silhouette causing a readability issue but it's definitely a valid critique and I'll be thinking of ways to address it. Nothing is set in stone and the player character will be getting a redesign at some point so I can try to push their silhouettes further apart once I get to that stage.

    I'm planning on making more exaggerated enemy types on unique rigs in the future but for now the focus has been on getting the most out of one rig. The challenge your feedback presents will be a good exercise to see how far I can push things on the current rig.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    I've been playing around with a VFX for my spawn animation which has been a lot of fun.

    First there are a few particle systems with some smoke and bone fragments with small variations to each of them. The bone fragments use a dissolve material which I found could be controlled through the "custom data" property within the particle system.

    And here's the simple dissolve setup that I'm using based on THIS video but I added branch so that I could also control the dissolve amount with a slider parameter.

    And this was the result:


    The next part was to create some ground shards like the skeleton is bursting through the surface.

    I took a simple mesh that I created and made an animation in Unity to scale the mesh on the Y axis while also adjusting the dissolve parameter amount on the material from above.

    I did the same thing for despawning only in the opposite direction and then I made a state machine to transition between the two animations based on an exit time.

    And here's how the ground shards were looking so far:


    The particle system was easy enough to get everything timed to the animation but for the meshes I ended up creating a delay timer script and attached it to a parent object of the ground shard meshes.


    Now I could easily control the position, scale, and spawn delay of the ground shards.

    With some more tweaks it was looking like this:

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Got an attack combo system working for enemies!

    First I set an integer and increment by 1 each time the enemy enters the attack state.

    This is then being used to set a parameter on the Animator.

    Then inside of the attack sub-state machine there are the states with the attack animations on them and a transition based on the combo count parameter.

    On each state I can then set an index from an array of weapon effects to control which effect will play with each attack state.

    For the skeleton I used a couple of simple meshes and a dissolve shader with some animated parameters.

    Here's the mesh that was used for combo1 and it was mirrored and adjusted to fit combo2.

    Currently I'm just using some Voronoi noise but I intend on authoring something a little later.

    By animating a couple of parameters I was able to get some nice movement that felt like a swipe.

    After some timing adjustments here's how everything was looking:

  • killnpc
    Offline / Send Message
    killnpc interpolator

    hell yeah man, skeletons xylophoning into a pile has got to be top 10 videogame-y caramels.

  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Spent a good while yesterday trying to get my screen fader to work when going back to the main menu. The fix ended up being adding a fraction of a second(0.1f) to the method loading my menu which allowed for the fader script to complete before loading into the new scene. Spent way too long trying to solve that issue...

    Guess that's how you learn, though.


    Anyways, I now have some simple fades between the Main Menu and the level.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Got dash functionality and visuals roughed in after reworking the superarmor system.


  • Bolovorix
    Offline / Send Message
    Bolovorix greentooth

    Getting some rough VFX in there for the dash and polishing up transitions a bit before doing another pass on the poses/anims.


    I had to script in some functionality to rotate the VFX according to the character's forward direction since the forward vector of the pawn never changes in relation to the camera. This allowed the main vfx to trail behind the player regardless of direction they're moving.


Sign In or Register to comment.