Project Details

Type: Team Project
Engine: Unreal Engine 4.18.3
Platform: PC
Team size: N/A Solo project

Desctiption

Hunter game prototype where the player plays the role of a young native American on his first hunting trip. As the player, you need to help the other hunters with their quota.

Intro

Since this was a solo project I did pretty much everything. The stuff I didn’t make where the forest assets the animals, trees, and rocks I bought those from https://www.cgtrader.com. Below is the collapse headers you can see what I did do/made.

My Work



Art Work

I am by no means an artist and was not my focus. I Bought a big portion of the assets used in this project. all the assets that where bought came from a package that include the animal’s trees and rocks. What I did do was model the character, all the camp assets, the big animal rig/stretcher, the bow & arrow, and the water and landscape.
character
The character is modeled with just base knowledge of Maya starting from a cube and reference images extruding etc. I used Mixamo to rig my character and also used an animation pack from Mixamo. Some animations had distorted the mesh but it was easily fixed with skinning brush thing in Maya I am not going to pretend that I know how to do skinning an artist friend told me how to fix it.
Landscape
I used world machine to get a base point, a general landscape to important to unreal. In Unreal I cleaned it all up, removed all sharp edges/hills, etc. used the unreal sculpting tools to make a lake and the rivers. Tried to do a landscape layer paint but that didn’t turn out the way I envisioned. I made 1 material that uses the height map of the landscape to assign different colors this way I last some control over the look but is much more consistent than painting by hand and looked much better.
assets
I bought a really nice art package but it didn’t have everything I wanted. I created all of the camp assets and the water

  • 2 difrent drying/butcher racks
  • camp fire + particle effect
  • Shelter
  • Bow*
  • Large animal Rig
  • water + river spline

*cant take credit followed tutorial to the letter



Shooting Mechanic

The shooting mechanic isn’t over complicated. You can only shoot when you are aiming simple bool check to see if the player is aiming the aim button needs to behold down when you press the aim button the character draws an arrow. On release the arrow is put back in the quivers holding the shoot button will put more power in the arrow.

animation triggers
For this project I needed to make use of animation triggers, I need them on two different occasions once to reparent the bow and one to spawn/kill the arrow. In the timeline where the hand of the character reaches to its back when it’s about to reverse the animation, I placed the trigger. From there on trigger parent to the socket in the hand. For the other scenarios exactly the same.
update arrow transform
To update the arrow rotation I needed to get the bone location of the string and arrow point on the bow and draw a vector between them using the direction of the vector and make a rotation. Using the right hand for the location I can update the arrow to stay on the bow.
Aim Arrow
The player can only aim when the bow is equipped as soon as the player starts aiming movement speed is limited and an arrow is drawn and at the same time camera view switch to a first-person view. As the camera switch start, I set a transition camera to the location and rotation of the current camera. Using a timeline and a lerp to move the transition camera to the other camera position and activate that camera.
Shoot
Firing the arrow happens as soon as the player lets go of the power/shoot button. Setting the power to the projectile velocity and the gravity back to its original value the arrow is fired.


AI
The AI for this project is simple it wasn’t my focus point I made use of the behavior tree that comes with Unreal.
The animals have 2 parts to their behavior, wandering & fight-or-flight. The hunters only have a wandering behavior with an interrupt to look at the player when talked too.Wandering behavior picks a random location in the radius of its spawn location. Move to a location on arrive play a delay animation eating, looking around, laying down with random delay between 2 values. When the animation is complete repeate the wandering branch.

Fight or flight behavior branch checks if the animal is an aggressive animal or not. If they are and see the player they run to the player within range play attack animation. So if they are not and pick the flight sub-branch well they run away. I picked the vector between the animal and the player used that direction and alter it with a random int between -30 & 30 in the yaw axis make a new vector with that direction and an X amount for the length. Use that point to run too. Repeat that at least 3 times before going back to wandering.



Dialog / Quests
So the Hunters have 3 arrays with dialog sentences to tell the player.

  • Quest correct
  • Quest Wrong
  • General

The first time talking with a hunter it always picks the first from the quest correct and will be the actual quest. How many boars he still needs for his quota for example.
If the player talks again with an animal other than he asked for pick a line from Quest wrong. Talk with the hunter without holding any animal or if the quest is complete it will pick from the general text pool.
I have built 2 types for the quests simple quota hunting animals and a find type.



Collecting
I was inspired by a show I saw once on national geographic a hunter game out of the jungle with a boar on his back like he was wearing a backpack. For the smaller animals, I could have him carry it on his shoulder but a moose and a bear were a bit too much. When I was researching more into native Americans, I came across a picture where a dog was wearing a stretcher. Small animals
I parented the animal to a socket on his back and tried to ragdoll was little more difficult than I anticipated so I only made the neck of the animal’s ragdoll as I was running out of time
Big Animals
So, for the bigger animals, I needed a stretcher to carry them out. Implementing I had two problems that I didn’t think of beforehand
One was the problem was rotation point
The second problem was the pitch of the rig which one should have anticipated.