This is an idea that I’ve been pondering about how to make work for quite a while. Essentially, this is a playermodel whose entire texture is pulled from the Internet. Every animation and possibly sound effect could be brought in from the Internet somewhere and used in-game, allowing for players to play as 2D characters, such as those from retro videogames.
How to make them rotate and work in a first person environment is one of the tricky parts, but I’ve drawn up an image to help explain my idea better:
Using this, the issue is now handling 3D objects that the characters hold, such as the confetti gun. However, if certain limbs of the characters, such as arms, would be dynamic (not tied to the same image as the body of the character), then it would be a matter of knowing where to position the arms so that they grab the 3D object. Other things, like accessories, will need to be moveable by the player manually at some point. A more interesting alternative is to have the option to hide 3D objects entirely - make them invisible - so players can manually draw whatever object a 3D character would be holding into the hands of their custom 2D character.
Furthermore, there needs to be a way to actually get the images in-game. Because I want this playermodel to be usable in any situation, I can’t just bundle a bunch of images together in the mod itself, because that would limit the player’s options. Perhaps there is a way to use a bunch of sprites lined up in a grid from an image from the Internet that the player can assign to different “limbs” of the playermodel. Sounds aren’t nearly as big of a concern, but playing short .mp3 from the Internet could be simple.
Players would need to customize the animations, the textures, and possibly the sounds to get a fully functional 2D sprite playermodel in a 3D first-person world. There will need to be a menu for customizing where items are held, and what the custom playermodel should look like, as well as include any idle/walking/jumping/falling/crouching animations that may be necessary. A specified template will need to be used in order to get this to work and to make the sharing of sprite playermodels easy.
Finally, there’s bound to be that guy who uses an inappropriate image for their playermodel. They are subject to that Unranked server’s rules, and whatever condo host can easily kick them from their condo. There might not be any further action necessary, but hopefully the Parental Controls are able to block any access to any type of image globally in-game.
I believe I've covered everything that I needed to cover. If there's an issue, I can think of a way to work around it. I'll work on this once I know for certain how custom playermodels will be handled.