Question about customizable characters

Good day panda3d community.

I am returning to my game development after a series of surgeries, and one important feature of my game project is its character creation system (being the other its game editor). I was in the process of making myself a system for that using panda3d when I saw at the manual something about “multiple part actors”, which I could already load a fully assembled character with its animations.

The great point is, which I need the loaded parts to be replaced at will using a quite common character creation menu; and I do not know if that “multiple part actor” feature of panda3d supports that. Should I instead load each part and attach one to another myself? Not only the parts must be loaded and unloaded, but animations too.

Hints about the logic of such a thing using panda3d are also welcome.

Have a good week,

Yes, you have to implement the menu logic yourself and replace the parts of the character. Panda is a versatile engine that does not limit the creativity of programming, you decide how it should be implemented.

Hello serega-kkz

In other words, you are saying it is better for me to do it myself instead of using the panda3d feature of loading an already assembled character with animations by means of the “multi part actor” feature said in the manual?

If that “multi part actor” also accepted changing a given part of a character set after it is loaded by its special function, it would be save me time.

The fact that in the manual this is a wrapper written in python, you can use it if you are satisfied with the functionality, note I’m not dissuading you.

If you look deeper, then at the C++ level, an actor consists of several classes.

This is the container class: Character, description of skeleton: PartGroup and CharacterJoint,
skin in form of a table of vertices: transform_blend, then comes description of bone transformations: TransformBlendTable

I note that it is difficult to use it at the moment. Theoretically, you can divide an actor into these classes, and then combine them in the sequence you need.

Thanks for your time, serega-kkz

Very well, I will try doing it myself using panda3d and python. That way the character parts management code will be something I can fully understand with my programming level, which is not low but is not high either; I will have better control. I already had such a code, I will just need to adapt it to panda3d. I could also always simplify the character creation system to speed things up, make it more limited until I have more time for that.

Although after reading a bit the manual I understood how to load a “multi part actor” and which it could in theory save me time by being already there instead of the need of me to write that code, I cannot easily understand what I can and can not do with it after it is loaded. One of the disadvantages of doing a game solo, is which you do not have much time to study the engine code, as you have to take care of other things as well.

I feel like you should be able to swap out the parts on a multi-part Actor, but I don’t know off hand how it’s done nor the time to look it up. I’d recommend skimming through the the code for the Actor class (it’s in Python) to see what kind of capabilities it has and how it uses the lower-level Character APIs. Also, if you have not already read over it, here is the manual page on multi-part actors.