This week’s on the Child of Light developer blog we have Technical Architect Jeff Preshing and Gameplay Programmer Clément Menu. They worked many different features for the game but today we’re going to focus on the work they did on the animation tech.
How does mixing 3D and 2D animation work in Child of light?
Clément: The way we animate Aurora is the same as regular 3D games. She is a 3D character that is animated in 3D. But for her to fit in with the 2D world of Lemuria we flatten her completely. Jeff modified the rendering engine so that we can render a 3d mesh as a 2d sprite. This allowed us to use the same lighting, particles, and post process on both 3D and 2D animated characters.
How do you achieve the smoothness in Aurora’s flying animation?
Clément : First, I worked on the physical behavior without any animation. Then, once we were satisfied with the behavior and it was simple to handle, we work with the animators. In order to achieve a reactive and fluid result we experimented with different combinations to get it just right. We benefit a lot in animating Aurora in 3D especially with the transitions when she changes directions in flight or turns around.
What are the changes in setting up the animation pipeline in Child of Light?
Clément: Supporting a mix of 2D and 3D our animation in the pipeline was a unique problem. The main challenge was figuring out a way for the other game systems (the physics, sounds, combat…) to function in the same way whether the characters animated in 2D or 3D. To compensate for the more complex pipeline we simplified the process by reducing the necessary steps to integrate animations in to the engine.
How does Aurora’s hair work in Child of light?
Jeff: Aurora’s hair is the result of an iterative development process. We tried a bunch of things before settling on what we have now. The final result is a set of tentacles modeled in 3D. I was skeptical about this approach, since I thought Aurora would end up looking like Medusa. At first, it really did look like she had snakes for hair but we tweaked it by making each tentacle wider, and modeled them so that they intersect each other in space. This gives the hair more of a sense of volume.
On top of that, each tentacle obeys certain physics constraints. They’re flexible, but they go back to their original shape— sort of like a pool noodle. I will confess that I programmed the physics imperfectly. The system we’re using is unstable, meaning that little movements at the roots of the hair add up as huge motions at the ends. This is something we normally avoid in games but for Aurora’s hair we found it looked pretty cool. So I left it that way.
How does Child of light use fluid dynamics?
Jeff: I added fluid dynamics to the game because Pat (our creative director) said he wanted things to look like they’re floating underwater. At the start of the project Aurora’s hair was 100% driven by this fluid simulation. It was a neat idea, but the results were a bit too lifeless. Her hair ended up looking like a bunch of spaghetti just floating around. That’s why I put additional constraints on the hair to preserve its shape. Even though its not the main driving force behind Aurora’s hair we still use fluid simulation; for example, when Igniculus flies past Aurora, the hair gets swept up in the breeze.
We also use the fluid simulation to move particles around in screen space. You can see it in the trail of sparkles left behind by Aurora and Igniculus, especially when they fly back through their own trails, or each other’s trail.