
After implementing the core loop in our game Ostrich Farm, I spent some time modifying our ostrich model so it supports the planned features.
When we started development, I purchased an awesome animated ostrich asset from the Unreal marketplace. This allowed us to start working on game mechanics before the final model was finished. Having animations in the game early on helped with setting up the behavior tree and gave us some ideas for interactions. Since one of the core mechanics of Ostrich Farm is breeding colorful ostriches, I had to make some modifications to the mesh. After a bit of research we decided to go with stylized sculpted feathers. I found a straightforward tutorial by follygon that helped me create that look.
Initially, I thought I could be minimally invasive and just add feathers to the subdivided mesh in ZBrush, then bake it back onto the existing low poly. I assigned polypaint to the feather clusters and used it to generate the color id map in Substance Painter. When I first tried to bake the textures, there were issues with the wings because of their position and shape. Still, I was able to get good enough placeholder textures to prototype a material in Unreal. The material assigns different colors to the individual feather cluster to make a pattern. I'm using the color id map in the shader to mask out individual areas.
An additional requirement for the model was that it should allow for blend shapes. We want to implement different beak lengths and shapes to make the individual ostriches look more unique. This meant that we would need more vertex density in the head to support these deformations without stretching the UV's too much. We also wanted a more stylized, cartoony head shape and the placeholder asset had a more realistic look.
Because of the need for blend shapes and the issues with baking the wings, we decided to remake the model. I used the asset as a base and modified the wings and torso in ZBrush. I also sculpted a new head from scratch. Next, I retopologized the high poly in Maya and made a test bake.
I am happy with the result so far. Since we are using the color id maps directly in our material, creating more patterns is very easy. All I need to do is add polypaint to the feather clusters in ZBrush and bake the assigned colors into the map.
Here you can see two different feather patterns I created using this workflow:
My next steps include creating the new textures, setting up blend shapes and then rigging and animating the model. I want to produce a handful of different color id maps so we can have some variation in the game.
Notes:
Ostrich by Medhue
https://www.unrealengine.com/marketplace/en-US/product/medhue-ostrich
Stylized feathers tutorial by follygon
https://www.youtube.com/watch?v=g-PL_s9Qvzc