How to build a 3D character

Godot Version

v4.6.1

Question

Hi! I’m completely new to Godot. I want to build 3D characters from scratch—especially a robot—with rigging that I can later use for movement/animation (e.g., hooking up movement animations, setting up the skeleton, etc.).

Could someone explain what tools/workflow I should use, and the overall process for building the character? For example:

  • how to design the 3D character, should I break the character the into movable parts?

  • how to set up nodes for limbs and a rig/skeleton

  • how to handle rigid vs flexible parts (so some body sections stay solid and don’t twist)

If there are any recommended resources or best practices, I’d really appreciate them.

Thank you!

You’ll have to do the most of it outside of Godot, while you can use 3D models inside the engine it’s not built for creating animated meshes.

Blender is another good piece of free software you can use to create 3D models with it’s own community and tutorials. You may also want to specify a style you are going for, such as low-poly

You probably want to do that in Blender, then import it into Godot. I recommend Gamedev.tv’s courses.

I recommend this bundle: Get Going with Blender - Guided Beginner Bundle | GameDev.tv

I’ve done most of the classes in it and it’s really good. Just keep in mind this is a months-long journey you’re about to go on.

3D modeling is a broad subject. So broad, in fact, that in industry there are multiple sub-disciplines that focus on just one part of making characters (i.e. people who make the mesh, people who do the rigging, and animators who create animations).

I have made, rigged, and animated my own characters from scratch before, but would not dare call myself an expert or even competent. Take that into account when you read this answer.

For creating meshes, you’d use 3D modeling software. There are plenty of programs to choose from, but unless you’re made of money, you should probably choose Blender as it is free, open source, and has plenty of teaching materials that are available (even if most of it is presented in the form of videos, which is unfortunate but understandable.)

Modeling works best if you have reference images to work with. i.e. one front and one side-facing picture of your character, both in the same pose and presented at the same scale. For humanoids you’d probably want a T or an A pose. If your robot isn’t humanoid, then you should figure out the rest position for yourself.

Rigging in Blender can be done from scratch by building an armature bone by bone, or if your character is humanoid, by using Rigify. Animation with Rigify armatures can result in mesh stretching, which is less than ideal when importing the mesh into Godot. Ideally, you only want to export deformation bones. To do that, you can use the Rigodotify add-on for Rigify.

Breaking up the character into submeshes may or may not be a good decision based on the overall mesh. Rigify tends not to work very well if your mesh has intersecting geometry, so if you have that, splitting into parts can be a good idea.

A special consideration in your case is that robots tend to have little in the way of flesh. In your case, rigging will probably consist of assigning 100% weights to specific bones in vertex groups.

I haven’t tried making animations in Godot itself, but I understand that’s possible. What I do is make animations in Blender, animate there, then export them. If you export as a GLTF/GLB, you can attach a Skeleton3D and attach modifiers that let your character hold other meshes (e.g. a weapon) or set up IK.

It took me literal months to make my first character from scratch, rig, texture, and animate her. And then I had to completely redo parts when I learned more about hair works. (Pro-tip: do not give your robot any hair.) Expect lots of searching on the internet, quite a bit of fiddling, and maybe a few dead ends. But if you’re patient, it should all work out in the end.

Oh, and what @gertkeno said about art style is probably your most important consideration. When, for instance, modeling a shoulder, you would use completely different techniques for low-poly and high-poly art.

2 cents from someone else who’s learning too.

  • Should I break the character into movable parts (= separated meshes)?

Separated parts are useful if your character’s parts are rigid (robot is a classic example).

For rigid animations, you build an armature (in an external modeling software, like Blender) and for each movable part you parent it to its associated bone.

For flexible parts, you don’t need to separate them, but you need to actually rig the character and to choose the mesh influence for each bone.

If your character is humanoid there is the famous free service Mixamo with a lot of (free) animation. Mixamo has an auto rig system. You’ll also need a resource (easily found online) to remap bones in Godot. Also, auto rigging works best (if not only) if your character is in T-pose. And don’t touch the rigged model, even if, opening it in Blender, you find strange transformations between rest and pose.

There are also other free tools, which I haven’t used. AccuRig (software) for rigging, or Mesh2motion which also has rig and animations for animals and monsters.

I’ll add a strange bug in Godot where you could see a really distorted animation when importing the rigged model in the software. If there was no problem in the workflow, it should be solved by closing and reopening the scene or by restarting the editor.

  • how to set up nodes for limbs

If you export armature + mesh/meshes, Godot will automatically use Skeleton3D. Add the model file to a scene and, just to see how the hierarchy works, make it local to scene. Read the Godot documentation for special functions.

This “free service” comes with licensing restrictions. Those who don’t care about legal compliance can use it without hesitation, of course. But it’s useful for everyone else to be aware of this.

A lot of great replies in this thread already. I’d like to add that the Auto Rig Pro add on for Blender is fantastic. It saves so much time rigging. The control rig it generates is really nice and has a lot of options. It is also great for retargeting animations. It’ll even extract position from the hips and apply it to the root bone with a single button press which is really handy if you’re retargeting animations from an fbx files.

It should probably be noted that this is a paid product. Since Godot itself is free and there are many links to free resources here, this could give a misleading impression.

Yep, totally true. Didn’t mean to mislead anyone. It’s just been a fantastic tool in my gamedev kit.

The license restrictions for Mixamo, as I read them, are very few, concerning the distribution and/or resale of the ‘raw’ models made with Mixamo, which seems entirely reasonable. Any use in games or videos, for private, public or even commercial use are permitted, even without attribution (although that would be fair to give…). I don’t see any ‘legal’ trap in there, or need to be overly concerned. Just sayin’.

Mixamo is free but requires an Adobe account. Adobe could change the terms or availability at any time.

At a minimum:

  • Use requires registration (but why?)
  • Terms and conditions may change at any time (which must be taken into account).

Having no pre-disposition to paranoia, I’m quite happy to accept the terms and conditions, for Mixamo and many other free or paying services, and enjoy a certain degree of confidence in the honesty and regularity of most to which I adhere. Others may have different views, naturally, but I trust that I will not be ‘bitten’, nor bite others, with my philosophy. Maybe, as I approach 76 at next birthday, I have simply been lucky all this time. :slight_smile:

In case you want to learn Blender:
Gamedev tv course already was mentioned, but it’s paid. The tutor has lots of free blender tutorials on his channel:
https://youtube.com/@grabbitt?si=wcFtyrO0v-_x7jZ8

Mixamo for rigging and animations was mentioned too, there is an free open source alternative that doesn’t require an account:

Can you guarantee that others will be just as lucky as you? And that the rules won’t change in the foreseeable future?

The ‘foreseeable future,’ for me, is, maybe, a matter of weeks..!
I jest (I wish..!), but there is little to ‘guarantee’ in today’s World (was it not ever thus..?). It’s everyone’s personal choice; I chose long ago to make my decisions and accept the consequences. I have, on a few occasions, suffered for this, but, in general, my default trusting nature has served me in good stead, and, on balance, proved to be positive. As I said, there are other views; this is mine. Peace.

Well, we’re not just talking about you right now, but about the general approach. If someone agrees with your position, there’s no problem. But it’s advisable to consider possible scenarios. That’s people’s right.