Avastars: turning a PFP project into interoperable VRM avatars
This is some text inside of a div block.
This is some text inside of a div block.
Sep 28, 2023
Dive into the process of creating Avastars as interoperable 3D VRM avatars
Avastars is the first on-chain intentional digital identity NFTs built on the Ethereum blockchain in 2020.
Each token in this PFP collection is totally unique, and has its artwork and metadata stored on the chain. In addition, their owners have the right to use them for commercial purposes and create Replicants with them, PFP's with their corresponding avatar resulting from mixing the traits of their Avastars.
Our goal as a 3D creative studio that designs experiences and characters for virtual worlds, is to meticulously create VRMs that faithfully reproduce the intricate details and nuances of the original PFP.
In our support of translating our digital identities to as many virtual worlds as possible and making NFTs as useful as possible, we proudly accept this challenge.
Let's dive into the process of creating Avastars as interoperable 3D VRM avatars!
First of all, before going deeper into development details, we should stop and understand how we are able to create digital identities with 3D avatars.
Why are we using VRM format?
VRM is a specialized 3D file format designed for humanoid avatars, gaining popularity in the VR community for its real-time rendering and cross-platform compatibility. It streamlines avatar creation and distribution for VR and AR apps, ensuring easy interoperability and customization without the need for format conversions.
Before we start production, we must understand how the original characters are created. To do this, we will first go to OpenSea to identify which traits can be replicated in 3D and assess their complexity.
By doing this, we can estimate the project's timeline and break it down into smaller tasks. The more traits there are, the more complex a generation will be as every trait will become a file for the 3D character assembler.
When creating a body for a VRM collection it is very important to define the size of the avatar, as making changes in the future can be disastrous and cost many hours of work.
Generally male characters are taller than female characters, but in Avastars we found that there are also non-binary characters, which share traits with both genders. Because of this we had to make the male, female and non-binary bodies the same size so that the trait exchange would be optimal in all cases.
When the client agrees with the physical proportions of the bodies, we go on to make the clothing concepts. In the case of Avastars, many proposals were made (futuristic, pirate vibes, 80s inspired clothes, etc.) and it was decided to choose 4 different styles for Primes, Founders, Exclusives and Replicants.
In the original PFP, we cannot see the bodies of the Avastars, so we need to imagine and create how Avastars would dress in a way that matched their vibe, lore and art style.
Solving technical budgets
One crucial step in our process is the categorization of traits. However, this is only the beginning; we must also establish a steady and optimized pipeline that takes into account things like poly count for each piece of the avatar trait.
This step is critical, given the limitations of each metaverse platform, where the limit standard lies on 15.000 triangles, 2 materials and 1024px textures. We need to ensure that we keep on working to never surpass those hard limits as that would lead to not being usable in some metaverse platforms or low end devices like mobile and VR headsets.
To accomplish this, we take into consideration various factors, including the physical size of the trait, its significance, and its complexity on the shape it has. Based on this criteria, we assign each trait a specific polygon budget: in this case 7.000 triangles is the max for the clothes.
By carefully managing these aspects of trait categorization and polygon allocation, we can ensure that our avatars remain efficient and visually appealing, even within the limitations of the platform.
Once we have completed the poly count analysis. Now, we focus on determining the number of materials required for the collection and how we will go about unwrapping the UVs. In this project the distribution of the UVs is very important due to the number of different traits that have to be combined with each other.
A UV map is a flattened representation of the surface of a 3D model, which is used to efficiently apply textures. Just as with polygon distribution, we need to allocate space on the UV map based on their importance, complexity, and size.
Knowing the project characteristics we assigned 1 material for the body and the clothes and 1 for the head and its traits.
Entering 3D Avatar production
When we enter the production stage, we usually encounter a significant challenge related to facial features.
Working on Avastars with traits like Hair was relatively straightforward – we would examine the image and meticulously craft a 3D representation of the hair that closely matched the source material (while keeping an eye on the polygon budget), before applying it to the character model.
However, when we embarked on creating the initial facial traits, such as noses, ears, and mouths, we quickly realized that creating them as separate entities would lead to difficulties in seamlessly integrating them into the character's face.
This became quite a dilemma until we arrived at the solution: utilizing blend-shapes during the production of traits. By using it, we simplify the way we create facial features, as they are all created from a base head.
A blend-shape is a technique used in 3D animation and digital modeling to create changes in the shape of a three-dimensional model. Also known as morph targets or shape keys.
As mentioned before, the facial features such as the nose are made with blend shapes - or by deforming the 3D mesh to shape it differently.
For this, we need a base nose from which we will start to create all the others by sculpting and moving vertices, then we will paint the points and lines in Substance painter. Lastly, we will repeat this for the ears, eye sockets, mouths and jaws.
Texturing: how the 3D absorbs the 2D style
Alongside with this innovative blend-shapes workflow, we found another challenge when dealing with noses, mouths, and ears, as they are integral parts of a facial structure and cannot possess separate textures.
Therefore, we embarked on a creative journey within Blender to develop a comprehensive material that seamlessly blends various elements: points, lines, normal maps, facial paints, makeup, and colors.
For elements like piercings, hair, glasses, and other mesh-based traits, we adopted a different approach. We designed them separately, each with its unique material. Eventually, these distinct elements are skillfully combined and merged with the facial components during the baking process.
Think of it as a bunch of Photoshop layers on top of each other that are put together into a single image.
Another pipeline: getting into the Hair and Eyes
Both the eyes and hair come in a variety of color, it's not a practical choice to individually texture and export them in Substance Painter with all their respective colours.
This would require a significant amount of production time and storage space for numerous images that would need renaming. Instead, we've opted for a black and white texturing approach. From there on, in Blender, we've developed a node system to introduce color during the assembly phase.
We create a structure of bones and controls within a geometry to animate the body. The purpose is for the avatar to be able to move: walk, run, jump, etc. VRM is a humanoid standard so there is a clear vision on where we need to get in terms of movements and motion possibilities.
Due to technical limitations it's essential to maintain an optimal bone count: ideally, one bone per joint. However, there are instances, particularly when dealing with clothing or other flexible elements, where we can employ dynamic bones. These dynamic bones respond live to external forces such as gravity or movement, enhancing the realism and fluidity of character movement. This spring bone will be enabled on any platform that allows it, and if not, these dynamic parts will remain still.
As male and female bodies have anatomical differences, we had to create two different rigs. One belongs to female clothes and the other to male clothes.
Assembling the Avastars
Once we have the blender file containing all the traits and the rigged bodies. The next step is to automate the avatar creation process, enabling us to replicate it and produce the 26,000 avatars that are part of the collection.
In addition, we have to bake all the textures that form the facial features into a single texture map within the same material as if it were a puzzle. That's why it is very important when creating the UV's of each trait to place them in their right spot following the UV template previously created. Otherwise, when assembling the character it may result in texture errors and overlaps.
To accomplish this, we provide instructions to our programming team on how to generate an Avastar, and they subsequently translate these instructions into functional code.
To create an avatar, there are two consecutive processes. Firstly, the creation of textures, as mentioned earlier, involves merging all the character's textures into a single map. Next, the character is assembled using all its components, so we require a Blender file in which all the traits, bodies, and skeletons are hidden. These elements will be activated when they are needed to generate the avatar.
Our mission to convert over 26,000 PFP into 3D VRM avatars for the Avastars project has been a complex journey.
We've tackled various challenges, from defining traits and managing polygon budgets to creating blend-shapes for facial features. Overall we achieved to create a well defined collection of 3D avatars that have complex textures and still keep a good compression of 10mb per file, which makes it perfect for metaverse and mobile platforms.
Our team's technical expertise and creative solutions have ensured that these avatars exceed metaverse and virtual worlds expectations. We've also woven a compelling narrative inspired by the Avastars Collective pioneers, adding depth to the characters.
The Avastars project is not just about creating 3D digital identities; it's about building a bridge between the digital and physical world, allowing users to immerse themselves in a metaverse filled with characters born from their own online personas.
We are excited about the possibilities that lie ahead and look forward to seeing how these avatars become an integral part of the metaverse experience for users around the world!
3D Character Artist
I’m a 3D lover, I enjoy bringing characters to life