FishBird: Unreal, Mocap & Keyframe

Play Video

about

I have modeled, textured and weight painted my FishBird in Maya. Then I created a  control rig in MotionBuilder which I also rigged with extensions to be able to animate everything in MotionBuilder. 

In Unreal I created blueprints and a state machine for my creature. FishBird can both idle, run and sprint as well as wait when told by the girl. It can also be mounted and the player can ride it with synchronized animation between the FishBird and its rider. I also implemented that the fish can lean when it is turning  while running or sprinting. To add some extra follow through and overlapping action I combined animation and physics on the FishBirds fins.

When working from MotionBuilder to Unreal my focus has been to be iterative and build my functionality in Unreal using very basic placeholder animations. Then, when my gameplay features become more reliable and works, I start to work more on polishing up animations. This way I have been able to work a lot more back and forth between MotionBuilder and Unreal making sure that I have functionality before I put time and effort into polishing animations for a feature that I might cut.

.

Fish Motion Builder Rig Tanya Bengtsson
MotionBuilder: Rigging & Mocap

About

I have modeled, textured and weight painted my FishBird in Maya. Then I created a  control rig in Motion Builder which I also rigged with extensions to be able to animate everything in Motion Builder. 

In Unreal I created blueprints and a state machine for my creature. FishBird can both idle, run and sprint as well as wait when told by the girl. It can also be mounted and the player can ride it with synchronized animation between the FishBird and its rider. I also implemented that the fish can lean when it is turning  while running or sprinting. To add some extra follow through and overlapping action I combined animation and physics on the FishBirds fins.

When working from MotionBuilder to Unreal my focus has been to be iterative and build my functionality in Unreal using very basic placeholder animations. Then, when my gameplay features become more reliable and works, I start to work more on polishing up animations. This way I have been able to work a lot more back and forth between MotionBuilder and Unreal making sure that I have functionality before I put time and effort into polishing animations for a feature that I might cut.

Fish Motion Builder Rig Tanya Bengtsson
MotionBuilder: Rigging & Mocap

Mounting

This was the hardest and most problematic feature to create out of all the things I created. I knew that I wanted my player to be able to walk up to the FishBird and for them both to get into the right position and then play their animation. My first approach was to use SphereTraceForObjects and then to move the FishBird into the right position next to the player and then for their animations to play. This never worked well. My second approach used a OnComponentBeginOverlap where I instead moved the player in position to play both animation montages. Then I called the mount custom event in the FishBird blueprint where I attached the player to a socket on the FishBird and gave over the control (possess) to the mount. I also created functionality for demounting FishBird using DetachFromActor and then possessing the player again. (I keyframe animated the mounting animations for both the Girl and the FishBird in MotionBuilder.)

Unreal: FishBird Blueprint Mount Custom Event

Riding

To implement riding I use one ride blendspace for the girl when the FishBird is running where she leans when the FishBird leans. Then I also have one blendspace for when the FishBird is sprinting and one for when the FishBird is idle. Since the girl no longer is the possessed character (Player) when she is riding I had to make some changes in her Animation Blueprint Event Graph so that her animations change depending on the speed of the FishBird. The riding animations created for the girl are keyframe animation made in MotionBuilder and the run, idle and sprinting animations for the FishBird are mocap.

Run & Sprint

FishBird has a simple idle to run to sprint where he leans when he turns left or right. For this he has two blendspaces. I have also implemented a camera shake when FishBird is sprinting.

Unreal: FishBird Animation State Machine

To Follow or Not to Follow...

 At Event BeginPlay the FishBird will look for the Girl and follow her. This functionality was created using AIMoveTo with an AcceptanceRadius of 400. Since it can be annoying to always be followed I also implemented that the player character can tell the FishBird to stay put. For this I used a LineTraceForObjects which, when it hits FishBird, calls the Sit event in the FishBirds blueprint.

Credits

  • Music: Tales from the Valley by Geoff Harvey
  • Environment: Dreamscape Nature by Polyart Studio
Scroll to Top