Frontend: UNITY & Vuforia
NFTs and accessories are built as 3D models in UNITY and Vuforia to deliver quality-focused, high-end avatars; ready for the Petaverse.
Their mesh and rig are stored off-chain to ensure scalability and low gas fees. Lower quality rendered images of the avatars/accessories are stored on IPFS to optimize storage costs. The NFTs' metadata are stored on-chain.
The NFTs can be used in the DOGAMÍ game which is developed in UNITY.
The following diagram describes the procedure used for the generation of unique 3D NFTs:
In this phase we use 3DS Max, Maya and ZBrush to generate all the 3D generic designs including the mesh, the animations and the base textures for all the different breeds.
This step involves generating the 3D specific variants such as the masks and all the different texture details.
The objective of this phase is to generate the entire library of unit variations for every breed, their different eye colors, fur colors, and various sizes. We can distinguish 12 different fur variations, 35 eye color variations and 3 different sizes per gender for each of the 10 breeds.
Once this phase is done, we load all the data in a .fbx file and we export maps in .png files containing all the different unit variations that will then be imported into Unity Editor.
The second step for generating thousands of unique NFTs quickly is referred to as the configuration phase. We use Unity Editor for scripting, batching and exporting. Unity Editor is the software that allows the development of Unity games. We opted for Unity due to its great compatibility with iOS and Android applications.
Once in Unity, we write a script that mixes the different traits in a random manner while respecting the real life probabilities of occurrence of every trait and generate the entire list of different combinations possible. We end up with over 100,000 different combinations possible.
In the third & last step, we export the entire list of possible 3D combinations in a .glb file and feed it into model viewer which is an .html plugin that allows a 3D vizualisation of webGL files on mobile. It also includes an option for AR (Augmented Reality) vizualisation.
The same assets that have been assembled together in Unity can be exported and used for developing iOS and Android games.