GIRL: Unreal & Mocap

Play Video

About

For this project I designed and modeled, textured and weight painted a character in Maya. I then created a control rig in MotionBuilder and rigged extra body parts with extensions so that I could do all animations in MotionBuilder. I also rigged the eyes and the mouth on the girl in MotionBuilder.

The focus for this project was to tweak mocap in MotionBuilder and then to implement gameplay features in Unreal. The Girl has mostly mocap with a few exceptions such as the animation for mounting the FishBird which was keyframe animated in MotionBuilder. By using a lot of mocap I learned a lot about tweaking mocap but also got more time to implement gameplay features, iterate on animations and debug in Unreal.

I had a lot of fun implementing gameplay in Unreal and have gained more experience as well as become a bit more comfortable with Unreal. To get a better understanding of how things worked I wanted to be thorough and create as much from the ground up in Unreal as I could. I created my own gamemode, blueprints and animation blueprints. My character has a run and a sprint with added start and stop animation. She can also jump and has a roll which uses root motion. When running and sprinting she also leans in the direction she turns which was implemented using a blendspace. I also created a climbing system with a start climb, climbing in four directions, a ledge grab, a wall jump and a climb over the edge animation. The climbing also makes it possible for her to climb on 90° slopes. My character can also tell the FishBird to stop following her, mount the FishBird and ride it, but more on that on the breakdown page for the FishBird.

Motion Builder Rig Tanya Bengtsson
MotionBuilder Control Rig with Extensions

About

For this project I designed and modeled, textured and weight painted a girl in Maya. I then created a control rig in MotionBuilder and rigged extra body parts with extensions so that I could do all animations in MotionBuilder. I also rigged the eyes and the mouth on the girl in MotionBuilder.

The focus for this project was to tweak mocap in MotionBuilder and then to implement gameplay features in Unreal. The Girl has mostly mocap with a few exceptions such as the animation for mounting the FishBird which was keyframe animated in MotionBuilder. By using a lot of mocap I learned a lot about tweaking mocap but also got more time to implement gameplay features, iterate on animations and debug in Unreal.

I had a lot of fun implementing gameplay in Unreal and have gained more experience as well as become a bit more comfortable with Unreal. To learn more I wanted to be thorough and create as much from the ground up in Unreal as I could. I created my own gamemode, blueprints and animation blueprints. My character has a run and a sprint with added start and stop animation. She can also jump and has a roll which uses root motion. I also created a climbing system with a start climb, climbing in four directions, a ledge grab and a climb over the edge animation. The climbing also makes it possible for her to climb on 90° slopes. My character can also tell the FishBird to stop following her, mount the FishBird and ride it, but more on that on the breakdown page for the FishBird.

Motion Builder Rig Tanya Bengtsson

Climbing

For my climbing I used line trace to check for walls. If my line trace is true I set movement to flying and set orient rotation to movement to false so that the character does not rotate around when climbing. Then I use a MoveComponentTo node to move the character to the wall. Before attaching my character to a wall I play a start climbing montage.

Unreal: Climb Wall & Reset Rotation in Blueprint Event Graph

Then I made my climbing blendspace. In my animation blueprint I connected a Blend Poses (EMovementMode) node to my Output Pose and connected my climbing blendspace to my flying pose. I also made speed variables for X, Y and Movement Mode and connected these in the EventGraph. Then, in my movement input, I added a SwitchOnEMovementMode as well as a new Wall Climb Movement function. I also created a DetachFromWall function to be able to let go and stop climbing. Then, to be able to climb angled walls, I made a custom event called Reset Rotation which I added to the end of my Detach from Wall function so that my rotation always will be correct when detaching from walls. I then created two Float variables, a MaxClimbAnge with a value of 45 and a MinClimbAngle with a value of -75. Then, in my Wall Climb Movement function, I used these nodes to check the angle of the wall to see if my player could keep climbing or not.

To be able to jump up walls I added a switch on EMovementMode node in my existing jump setup. Then, in my Wall Climb Movement function, I added extra functionality for jumping up when climbing.

When adding the functionality of hanging on an edge and climbing up the edge I used a Forward Trace Function as well as a Height Trace Function to check for the edge and where the wall ends. These two functions use elongated SphereTraceByChannels which stops the player movement when detecting an edge as well as calls the Hang function in the Blueprint Event Graph.

Rolling

To add something small and fun to my project I made a mocap root motion roll. I first made a montage from my roll animation and then I created functionality in my blueprint which also executes on server. Then I connected everything in my AnimGraph and Event Graph in my animation blueprint.

Run & Sprint

For this project I have an idle, run and sprint for the player. The idle, run and sprint animations are all mocap while the start and stop animations are keyframe animation. When running or sprinting there is also functionality for leaning left and right. For this I created a blendspace for the sprint and one for the run. There is also a stop and a start animation with their own blendspaces so that they can lean. In the end I also added some camera shake when my character is sprinting using a camera shake blueprint. 

Unreal: Animation State Machine

Attached Bag

To make my character look a bit more interesting from behind I created a bag and attached it to my character using a socket. This bag also has its own Blueprint, animation blueprint and some physics on it to move the zippers. This Bag is my least favorite feature. My design does not work well since one can not see the details of the bag and thus almost never see the zippers moving. But I learned a lot that I will take with me for my next project such as how to better design with both functionality and usability in mind.

Unreal: Bag Animation State Machine

Credits

Scroll to Top