3D Modeling Optimization Guide by Category
21 min
these guidelines provide instructions for creating and optimizing 3d assets to ensure system stability and prevent the app from crashing when users play zepeto on mobile devices, while also maximizing rendering efficiency to prevent rejection during review and ensure a smooth gaming experience, all creators must strictly adhere to the guidelines listed below when creating assets 💡 general modeling optimization ㅣ✔️ use of blendshapes is prohibited in all categories items uploaded to zepeto cannot contain blend shape data this is not intended to limit creators’ artistic expression, but is a necessary measure to optimize the mobile environment so that all users can enjoy the world comfortably exponential increase in data size (file overload) accumulation of hidden coordinate data blendshapes must internally store additional coordinate data for the movement of numerous vertices in order to record a mesh’s motion and shape changes layer accumulation this data has a structure similar to animation layers stacked one on top of another within an fbx file as a result, the overall data size of the asset becomes excessively large real time processing overload (causing device overheating and lag) limitations of real time mobile processing in a 3d world where multiple avatars gather simultaneously, it places a significant burden on mobile devices to process this blend shape data in real time hardware performance degradation consequently, the hardware becomes severely overloaded, leading to extreme overheating of the user’s device and frame drops (lag) memory overload and app crashes memory (ram) shortage when items containing blend shapes are loaded into the world simultaneously, they instantly fill up the mobile device’s limited ram capacity fatal oom error this causes an oom (out of memory) error, triggering the worst case scenario where the smartphone system (ios/android) forcibly terminates the zepeto app (crash) to protect the device polycount strictly use triangles topology calculations and data limits for all categories are based on triangles, not quads check before exporting before exporting fbx from tools such as blender, maya, or 3ds max, be sure to check that the tri ( triangle ) count in the 3d viewport layout is below the maximum limit for each category modeling for backface culling compliance with backface culling the zepeto engine uses backface culling by default to optimize rendering operations structural finishing required for areas such as the inside of clothing sleeves, the inside of skirts, and collars—which may be exposed during animation—you must either completely close the faces or use object finishing modeling to create physical thickness in order to prevent the face normals from flipping and causing transparency cleaning up defective mesh data if “defective fragments” remain in the modeling data, they are the primary cause of graphics processing errors and engine crashes please be sure to remove this unnecessary data through “clean up” before submission please delete isolated vertices floating in mid air that do not form faces, as well as edges with a length of 0, as they incur unnecessary computational costs non manifold structures are prohibited these are structures that can be calculated mathematically but cannot exist in the real world please review the four major types listed below and clean them up during the modeling process four major types of non manifold defects a y or t shaped structure where three or more faces are geometrically interlocked and adjacent along a single edge an hourglass shaped structure where two or more independent faces are connected by intersecting at exactly one vertex without sharing any edges a structure where a “ghost face”—invisible from the outside—cuts across the interior of a completely closed mesh space (typically caused by mesh merging or extraction errors) a condition within a continuous mesh flow where the direction of the normal vector for a specific face is reversed, causing it to be misaligned with adjacent faces deleting invisible faces base body mesh culling mesh faces that are positioned on the inside and completely obscured by the base avatar body— due to the outer surface of clothing or attached accessory items—should be boldly removed resource optimization removing unnecessary internal meshes reduces the load on the gpu, improving rendering performance this contributes to a smoother gaming experience and significantly helps reduce memory usage optimizing topology density at joints for highly mobile joint areas such as the knees, elbows, and shoulders, please place at least three loop edges to ensure the mesh bends naturally after skinning conversely, for fixed areas with minimal shape changes, avoid unnecessarily subdividing the faces; keeping them as simple as possible will improve the avatar’s performance ㅣ✔️ clothing (dr, top, otr, btm) max triangle count modeling specifications dr (single outfit) max 10,000 tris top (top) / otr (outerwear) max 6,000 tris btm (pants, skirts) max 5,000 tris modeling guide seam line vertex alignment the waistline where the top (top) and bottom (btm) meet is the area that undergoes the most deformation when the avatar moves therefore, please ensure that the number of vertices and the flow of lines (topology) on the boundary between the top and bottom match perfectly if the vertex structure or normal direction of the boundary surface is misaligned, defects such as gaps or openings between the clothes may occur when the avatar moves, causing the interior to show through the key is to carefully align the mesh at the boundary so that it connects naturally, as if it were a single piece of clothing 3 loop edge structure for joints areas with high mobility, such as the knees, elbows, and hips, are prone to mesh twisting or distortion when bent to prevent this and ensure smooth movement, please evenly distribute at least 3–4 rows of edges in a dense pattern along the areas where the joints bend finishing the edges of the garment (adding thickness) for the edges of the garment—such as sleeves or hems—don’t simply end them with a single line instead, add an inner layer of fabric to give them a thick, realistic finish, just like a real garment however, there is no need to preserve fabric that extends deep inside the garment and is completely invisible from the outside be sure to neatly trim or remove these hidden areas to prevent unnecessary polygon waste that could degrade game performance ㅣ✔️ hair types (f hair, m hair) max triangle count modeling specifications f hair (female hair) max 10,000 tris m hair (men's hair) max 10,000 tris modeling guide dual structure modeling (solid base mesh + alpha plane mesh) to achieve both visual quality and optimized performance on mobile devices, model 70% of the total polygons as a closed, opaque mesh that wraps around the skull to ensure sufficient volume please place the remaining 30% of the polygons along the outer edges in the form of an alpha plane to represent the ends of the hair, stray hairs, and side hair ensuring sufficient spacing to prevent z fighting 3d graphics engines have a chronic issue where, if multiple transparent planes overlap, they become confused about the rendering order—which plane is in front and which is behind—depending on the camera angle if the alpha planes are too close together or if the strand meshes overlap, a sorting issue may occur where transparent surfaces flicker depending on the camera angle please model the alpha plane meshes so that a minimum physical distance is maintained between them ㅣ✔️ body hugging and deformable props (sox, glove, nail, tail, wing, shoulder) max triangle count shoulder max 5,000 tris glove / bag max 4,500 tris wing (wings) max 4,000 tris sox (socks) max 3,500 tris tail max 2,000 tris nail (nail art) max 1,500 tris modeling guide finger topology synchronization when modeling gloves (glove) and nails (nail), the positions where the finger joints bend must match the offset coordinates of the “finger ” joint in zepeto’s default guide dummy with absolute precision please maintain at least 3 edges per joint contact surface optimization for surfaces that are in full contact with the skin of the finger—such as nail art and the inside of gloves—and are physically 100% embedded, please delete them entirely for optimization ㅣ✔️ attachable accessories (sh, headwear, eyemask, glasses, bracelet, necklace, earring, ring) max triangle count sh (shoes) / headwear max 4,000 tris eyemask (mask) max 3,000 tris glasses ring (glasses, bracelet, necklace, earrings, ring) max 2,000 tris modeling guide optimizing cylindrical modeling when creating curved rigid props such as rings (ring), bracelets (bracelet), and eyeglass frames (glasses), limit the number of sides on the initial cylindrical base shape to between 6 and 8 to establish a low polygon structure any gaps in the curved silhouette must be covered using soft edges and normal maps ㅣ✔️ special body types (mask, body) this is the most technically challenging category, involving completely overwriting the base avatar’s unique appearance (head and full body meshes) or inducing changes to the body shape max triangle count body (special body type) max 10,000 tris mask (special body type face) max 5,000 tris modeling guide neck seam line matching the neck boundary area where the face mask (mask) and body (body) meet must perfectly match the vertex index numbers, absolute 3d coordinate values, and vertex normal directions of the zepeto default body model if this weld line is misaligned by even 0 001 mm, the neck will separate, resulting in a defect where a gap is visible note) category specific data for item optimization all data is based on the maximum limit all categories are based on 1 texture map, except for dr (one piece) max triangle count (tris) recommended / max max texture resolution (map size) recommended / max max material (additional shaders allowed per attribute) dr one piece outfit 10,000 512x512 (2 images) 4(recommended) top top 6,000 512x512 3(recommended) otr outerwear 6,000 512x512 3(recommended) btm pants, skirts 5,000 512x512 3(recommended) sox socks 3,500 / 4500 256x256 / 512x512 3(recommended) sh shoes 4,000 256x256 / 512x512 3(recommended) f hair women's hair 10,000 256x256 / 512x512 3(recommended) m hair men's hair 10,000 256x256 / 512x512 3(recommended) headwear headwear 4,000 256x256 / 512x512 3(recommended) shoulder shoulder 5,000 512x512 3(recommended) glasses glasses 2,000 256x256 / 512x512 3(recommended) bracelet bracelet 2,000 256x256 / 512x512 3(recommended) necklace necklace 2,000 256x256 / 512x512 3(recommended) earring earrings 2,000 256x256 / 512x512 3(recommended) bag bag 4,500 256x256 / 512x512 3(recommended) glove glove 4,500 256x256 / 512x512 3(recommended) ring ring 2,000 256x256 / 512x512 3(recommended) nail nail art 1,500 / 2000 256x256 / 512x512 3(recommended) eyemask mask 3,000 512x512 3(recommended) wing wing 4,000 512x512 3(recommended) mask special face shapes 5,000 512x512 3(recommended) body special body types 10,000 512x512 3(recommended) tail tail 2,000 / 3000 256x256 / 512x512 3(recommended)
