Putting aside my thoughts on multi-threading, I’ve decided to prototype a paper doll for Godot. Godot is a cool, light-weight game engine that’s gaining in popularity, right now. Adding a paper doll to Godot will allow me to experiment with some character variety ideas that I have. Mixamo is a great place to start for animations and it offers two skinned characters that I think will be a great starting point for a stylized paper doll: XBot and YBot.
Wikipedia describes briefly, on this page, the thousand years history behind paper dolls. The original concept is simple: you draw, on paper, one doll body and a large set of interchangeable accessories that the child can choose and attach to the doll body. The idea behind paper dolls translates easily into 2D games. In a 3D world, the concept resembles more the Mr. Potato Head toy. A paper doll uses a set of interchangeable static meshes and animates them separately, on top of a skeleton. A paper doll system can be opposed to the skinned character system that AAA video games use. But there exists mixed systems that successfully include both skinned character ideas and paper doll ideas, such as Daz3D’s impressive realistic 3D human figures, or Klei Entertainment’s beautiful character sprites.
In the early 2000’s, using a set of static meshes was the standard to display 3D human characters, in video games. In terms of quality and performance, skinned characters offer a great improvement over multiple static meshes. There’s one advantage where paper dolls beat skinned characters and that’s quickly generating variety, using material changes. Since the body parts of the character are separated meshes, you can easily change the color of the character’s skin, hair or clothing, programatically.
For this prototype, I’m going to split the body parts of the YBot from Mixamo, into its elemental parts. I want to introduce <a href=https://www.blender.org/”>Blender</a> as a necessary step, so I can do simplifications to the YBot. I don’t need fingers and eyes in my personal projects. Later, using Blender, I can author new accessories and bring them into Godot to add a variety of shapes to the paper doll.
Adding a bind-pose animation in Godot is necessary creating a paper doll system. When attaching an accessory to the paper doll skeleton (hair, a shovel, boots..), it needs to be done in its bind-pose. Creating and fitting new accessories, in Blender, is also done on the paper doll skeleton that is in its bind pose.
A stylized paper doll in Godot isn’t useful without animations. This is the pipeline that I devised to easily bring the Mixamo animations into Blender and into Godot, so they can be used with the paper doll skeleton.
In this image, you can see the YBot paper doll on the left and the YBot skinned character on the right. Both are playing a walking animation from Mixamo.
I think the idea shows a promise of generating a lot of variety, but as you can see in the screenshot, there are a few differences: