@"EmpereurLeon " said: Someone can help me?

Please be patient, as people here are volunteers and only answer questions if they know the answer.

Note that handling player-uploaded skins in a multiplayer game is far from trivial. There are a lot of considerations (storage, moderation, …). If this is your first multiplayer project, I'd stick to allowing players to select premade skins or choose one or two colors instead.

Though I haven't implemented anything yet, I have been giving this some thought for a project where extreme customizable player models is a key design goal. The best answer I've come up with so far is to require everyone to select a premade skin, then have a default-to-off checkbox in the options to allow custom skins with a confirmation popup that says "WARNING! Downloading custom user skins may cause slightly increased loading times. They cannot be moderated and may contain adult or copyrighted material." The skin select screen then adds a second copy of the character showing the custom skin you select beside the standard one that everyone with the option unchecked will see.

Then have the server pass IP addresses to let the player's custom skin be sent directly from their client to other clients rather than through the server or ever being on server-side storage, where it then gets applied by the client based on model and user name. (Or skin name? That requires a registry of skin names on the server, but also lets multiple players use the custom skin if they want to without taking up more storage/VRAM/load time.) To keep from building up a colossal backlog of old skins, keep track of a date the skin was last used and run a cleanup routine as part of end-of-session shutdown that deletes any that are past a certain age, or the oldest past a user-specified total amount of storage used.

If that doesn't satisfy the legal requirements maybe a second, helper application (like mod manager apps) that talks to the clients but not the server once the IPs are exchanged to further shift any legal liability from the game developer/studio to the users trading skins. If that's still not enough (I haven't even looked at that yet myself, let alone asked an actual legal professional) then modifying premade texture colors with a shader is the best alternative I have so far. I've seen a tutorial for using a gradient map this way on 2d sprites, but I'm not sure if there's an equivalent method in 3D.

Thank you very much for your help. I think I'm going to lean more towards predefined skins for now. To see for the future. If someone else offers me another idea or directs me to a tutorial, I would be very happy to receive their help.

If your project's art style will accommodate it, using tiny texture atlases as in this video you can trivially provide a massive selection of pre-made color schemes without using a lot of storage space, or having to get into shader voodoo if you're not at that point in the million and one things there are to learn about game developing. Obviously, this won't do for a more realistic game world like I was thinking of originally, where you are using actual images as texture maps rather than plain colors or gradients.

edit: better video

8 months later