• General Chat
  • Customizable 3D character generation: Easy, hard, or really hard?

Just a quick sanity check for the premise to avoid getting into the concept and then finding no way forward.

The basic idea is that the player character is a robot, with several base frames available, a variety of heads and trim parts ala the usual visible equipment in RPGs, and then a pair of sliders to go from neutral at center to masculinized or feminized and (separately) bulky or slim, and a few color pickers and a decal layer used to finish it off. I know how I'd do the geometry in Blender with multiple morph targets and if worse comes to worst only having a few skins to pick between is hardly uncommon in gaming, but can Godot do that kind of thing in a reasonable way? Ideally without eating too much frame rate so unique NPCs can be procedurally generated and (possibly, later) multiplayer models don't need to be traded around and cached before a scene instance starts up, just drawn from a common library of geometry and shaders with the unique settings applied as needed.

I've done far more modeling compared to my limited programming experience, and any RPG is a huge project, but a character editor like in City of ____, Champions--, or Star Trek-- Online just needs a lit room and a starting set of morph targets, and should be an ample supply of shiny new hotness to keep me motivated to learn what I need to give them environments to be seen in and plot lines to act out, and to keep the character parts flowing to see in them.

Godot supports blend shapes / morph targets, so it should be possible. I don't know if there are any limitations (such as a max number of shapes) but I think in theory it should work. From what I understand, the blend shapes are done on the GPU side, so should be fairly performant. But you'd probably want this in real-time during the character customize screen and then save out a mesh (as I would assume having too many shapes active during gameplay, especially with a skinned mesh, might be slow or not possible). However, I am not sure if you can save out the results of blend shaped meshes, as I think the tools like MeshDataTool only work on the original mesh, not the modified one. So this would be difficult. But maybe there is a way to figure it out.

Customizable attachments and color changes should be easy to achieve without impacting performance noticeably. (Look into using the Detail texture slot in SpatialMaterial to overlay a fixed-color texture on top of a modulated albed otexture.)

Customizing the character bodies themselves can also be done using blendshapes, although it's a bit more involved overall (especially if you want to avoid uncanny/unrealistic combinations).

5 days later

Thanks Calinou - the detail slot looks like exactly what I was trying to find without knowing the right search terms, and I found a youtube video with a sample project for (a much more involved version of) blendshapes character creation as well.

another good one:

Hopefully the rest I can figure out by the time honored method of poking at things and seeing what happens :)