Asset Production Best Practices

Production Guidelines

Below are some general guidelines that have helped the Yuga create Avatar collections. This aren’t hard requirements but should help in the production of 10s of thousands unique avatars.

General Approach 3D Asset Production

Concept Art

  • Clarity of Design: Does the concept art clearly convey the character’s design, including front, side, and back views?

  • Consistency with Brief: Does the character design align with the initial brief and the project’s artistic style?

  • Detail Level: Are the details sufficient to guide the modeling process?

Modeling

  • Proportions: Are the character’s proportions accurate and consistent with the concept art?

  • Topology Quality: Is the topology clean, with appropriate edge flow for animation and deformation?

  • Detail Level: Does the model capture all necessary details while maintaining a reasonable polygon count?

  • Maya Mesh Clean up: To use the Mesh Cleanup tool in Maya, follow these steps:

  1. Select the Mesh:

    1. First, select the mesh object you want to clean up. You can do this by clicking on the object in the viewport or selecting it from the Outliner.

  2. Open the Mesh Cleanup Tool:

    1. Go to the top menu and navigate to Mesh > Cleanup.

  3. Adjust Cleanup Options:

    1. The Cleanup Options window will pop up. Here, you can choose specific issues to clean up. The options include:

    2. Remove Geometry: For deleting specific types of geometry like non-manifold edges, lamina faces, zero area faces, etc.

    3. Tessellation Cleanup: For correcting tessellation problems, like polygonal faces with more than four edges.

    4. Repair Geometry: Fixes issues such as zero length edges and zero geometry area.

  4. Set the Operation Mode:

    1. Select Matching Polygons: This highlights the problematic areas in the mesh without making changes, allowing you to see where issues exist.

    2. Cleanup Matching Polygons: Automatically fixes the problems based on the criteria you set.

    3. Cleanup Non-Planar Faces: Specifically targets and fixes non-planar faces.

  5. Execute the Cleanup:

    1. Once you've set your options, click Apply or Cleanup to execute the operation.

  6. Review the Results:

    1. After the cleanup, review the mesh to ensure that the issues have been resolved. You can use the Select Matching Polygons option again to double-check.

This tool is handy for preparing a mesh for further processing, especially when dealing with 3D models that need to be optimized for gaming or other real-time applications.

If you encounter specific issues during cleanup, you can adjust the options or manually fix the geometry where necessary.'

Here are key areas to consider as 3D Modeler:

1. Topology and Geometry

  • Clean Topology: Ensure the mesh is clean, with evenly spaced polygons and no unnecessary vertices or edges. This helps with smoother animation and better performance.

  • Avoiding N-gons: Stick to quads or tris, as N-gons can cause issues during subdivision or when deforming the model.

  • Edge Flow: Proper edge flow is crucial for smooth deformations in animations, especially in character modeling.

2. UV Mapping

  • Efficient UV Layout: Avoid stretching or overlapping UVs to ensure textures map correctly and appear consistent.

  • UV Packing: Maximize texture space by efficiently packing UVs, but avoid distorting the model in the process.

  • Seams Placement: Place UV seams in less visible areas to minimize noticeable texture breaks.

3. Scale and Proportion

  • Consistent Scale: Ensure all models are scaled consistently to avoid issues during the integration into scenes or with other models.

  • Correct Proportions: Keep the model's proportions accurate, especially when working from concept art or real-world references.

4. Detail Level

  • Appropriate Detail for Context: Balance the level of detail according to the model's use case (e.g., close-up vs. background assets).

  • Normal Maps for Detail: Use normal maps to add fine details without increasing polygon count.

5. Texture Quality

  • High-Resolution Textures: Ensure textures are of high resolution and free from artifacts, especially for hero assets.

  • Consistent Texturing: Maintain consistent texturing across the model, avoiding visible seams or inconsistencies.

6. Performance Optimization

  • Polygon Count: Keep the polygon count as low as possible without sacrificing quality, especially for real-time applications.

  • LOD (Level of Detail) Models: Create multiple levels of detail for the model to ensure it performs well at different distances.(Consider if LOD option is required)

7. File Organization

  • Naming Conventions: Use clear and consistent naming conventions for all assets, materials, and textures.

  • Layer Management: Organize your layers and groups logically to make the file easy to navigate.


Sculpting

  1. Detail Accuracy: Are the high-resolution details well-defined and true to the concept art?

  2. Subdivision Levels: Are the subdivision levels managed correctly to provide smooth transitions between levels of detail?

  3. Baked Maps: Are normal maps and other baked maps free from artifacts and accurately represent the sculpted details?

SubD modeling

Subdivision surface (SubD) modeling is a technique that allows you to create smooth, high-resolution surfaces from a low-resolution base mesh. To achieve optimal results in SubD modeling, there are several important rules to follow:

1. Use Quads Exclusively

  • Stick to four-sided polygons (quads) as much as possible. Quads subdivide cleanly, creating smooth surfaces without causing artifacts. Avoid using triangles and n-gons, as they can create pinching and distortion when subdivided.

2. Maintain Even Polygon Distribution

  • Keep the topology evenly distributed across the model. This ensures that when the mesh is subdivided, the surface remains smooth and consistent. Avoid areas with overly dense or sparse polygons, as this can result in uneven smoothing.

3. Ensure Good Edge Flow

  • Design your edge loops to follow the natural contours and anatomy of the model. This helps maintain smooth deformations, especially in areas that bend or flex, such as joints. Proper edge flow also aids in adding detail to specific areas without affecting the entire model.

4. Use Edge Loops for Definition

  • Add edge loops strategically to define sharp edges and detailed areas. Placing an additional edge loop close to an existing one can help control the sharpness of the resulting subdivided edge. This technique is useful for creating crisp corners or specific details in the model.

5. Avoid Overlapping Vertices

  • Ensure that no vertices are overlapping or too close together. Overlapping vertices can cause issues during subdivision, leading to artifacts or unintended surface distortions.

6. Minimize Pole Usage

  • A pole is a vertex where more than four edges meet. While sometimes unavoidable, poles should be minimized and placed in less noticeable areas of the model. Poorly placed poles can cause pinching and other artifacts when the mesh is subdivided.

7. Use Crease and Hard Edges Sparingly

  • Some 3D software allows you to mark edges as creased or hard, preventing them from being smoothed during subdivision. Use this feature sparingly, as overuse can result in unnatural transitions between smooth and sharp areas.

8. Keep Base Mesh Simple

  • Start with a simple base mesh before adding details. SubD modeling is most effective when the initial mesh is clean and simple, allowing for easy adjustments and predictable results after subdivision.

9. Check Topology with Subdivision Preview

  • Regularly preview your model with subdivision applied to ensure that the topology holds up and that there are no unexpected issues. This helps catch potential problems early in the modeling process.

10. Maintain Model Symmetry

  • When working on symmetrical models, ensure that the symmetry is maintained throughout the modeling process. This simplifies the modeling workflow and ensures that both sides of the model behave consistently when subdivided.

11. Plan for UV Mapping

  • Keep in mind how the topology will affect UV mapping. Clean, evenly distributed quads will make UV unwrapping more straightforward, reducing the potential for stretching or distortion.

12. Avoid Non-Manifold Geometry

  • Non-manifold geometry (edges shared by more than two faces or disconnected vertices) can cause problems during subdivision and rendering. Always check your model for non-manifold elements and correct them as needed.

By following these SubD modeling rules, you can create high-quality, smooth models that are well-suited for animation, rendering, and other advanced workflows.

SubD Examples:

Retopology

Optimization: Has the polygon count been optimized without losing important details?

Edge Flow: Is the edge flow appropriate for animation, particularly around joints and areas of high deformation?

Topology Efficiency: Is the topology efficient, minimizing unnecessary polygons while maintaining shape integrity?

In 3D retopology, there are several common mistakes to avoid to ensure the model is optimized for animation, performance, and texturing. Here are some key things not to do:

  1. Overly Dense Topology: Avoid creating too many polygons, especially in areas that don’t require high detail. This can make the model unnecessarily heavy and hard to manage.

  2. N-Gons and Triangles: N-gons (polygons with more than four sides) and triangles should generally be avoided, particularly in areas that will deform during animation. They can cause unpredictable shading and deformation issues. Aim for quads (four-sided polygons) as much as possible.

  3. Uneven Distribution of Polygons: Don’t create a topology with uneven polygon distribution. This can result in poor deformation during animation and can make it difficult to achieve smooth surface details.

  4. Ignoring Edge Flow: Proper edge flow is crucial for smooth deformation, especially in areas that bend or stretch. Avoid creating random or chaotic edge loops that don’t follow the natural contours of the model.

  5. Pinching and Stretching: Don’t create areas where edges are too close together (pinching) or too far apart (stretching). This can lead to issues with texturing and shading, as well as poor deformation in animations.

  6. Overcomplicating the Mesh: Avoid adding unnecessary loops or geometry that doesn’t contribute to the form or function of the model. This can lead to increased file size and more complex rigging and animation processes.

  7. Inconsistent Polygon Sizes: Keep polygon sizes as consistent as possible, especially in areas that require smooth deformation. Large variations in polygon size can cause issues with normal maps and other texturing processes.

  8. Ignoring the Silhouette: Don’t neglect the silhouette of the model when retopologizing. Ensure that the topology supports the overall shape and form, maintaining the original design's integrity.

  9. Neglecting UV Layout Considerations: Retopology should consider the eventual UV layout. Avoid creating complex topology that would make UV unwrapping difficult.

  10. Overlapping Geometry: Ensure that there are no overlapping vertices, faces, or edges. Overlapping geometry can cause issues in rendering, texturing, and animation.

By avoiding these mistakes, you can create a clean, efficient, and functional topology that will serve well in the final stages of the production pipeline.

UV Unwrapping

  • Seam Placement: Are seams placed strategically to minimize visibility in prominent areas?

  • UV Layout: Is the UV layout efficient, maximizing texture space and minimizing stretching?

  • Packing Efficiency: Are UV islands packed effectively to ensure high-resolution textures?

Hard surface UV examples: straighten UVs where you can.

Texturing (Hand painted)

When creating 3D hand-painted textures, particularly for games or stylized art, there are several key rules and best practices to follow to ensure a consistent and high-quality result. Here’s a guide to help you with the process:

  1. Understand the Style:

    1. Art Direction: Know the style you're aiming for. Hand-painted textures often emphasize stylization over realism, with exaggerated colors and simplified details.

    2. Reference Gathering: Collect references of the style you're targeting, whether it’s cartoony, fantasy, or another specific aesthetic.

  2. UV Mapping:

    1. Efficient UV Layout: Ensure your UVs are well laid out with minimal stretching. This will make painting easier and more accurate.

    2. Texture Space Optimization: Use as much of the UV space as possible to maximize texture resolution, avoiding empty areas in the UV layout.

    3. Consistent Texel Density: Maintain consistent texel density across the model, so the details are uniform in size.

  3. Base Colors and Gradients:

    1. Block in Base Colors: Start by laying down base colors, defining the overall color scheme of the object. This serves as a foundation for further details.

    2. Gradient Application: Apply subtle gradients to avoid flatness. Gradients can suggest light direction or simply add visual interest.

  4. Painting Details:

    1. Use of Brushes: Work with soft and hard brushes to create sharp edges where needed and soft transitions elsewhere. Experiment with different brush settings for unique textures.

    2. Material Definition: Clearly define different materials (wood, metal, cloth) by painting in their characteristic details and surface qualities.

    3. Hand-Painted Shading: Paint light and shadow directly onto the texture. This is a key part of the hand-painted style, as it doesn’t rely on real-time lighting.

    4. Highlights and Speculars: Manually add highlights to areas where light would naturally catch, avoiding the need for dynamic lighting. Stylized highlights can enhance the visual appeal.

  5. Color and Contrast:

    1. Color Harmony: Stick to a defined color palette to maintain harmony across the texture. Avoid over-saturating or under-saturating colors unless the style specifically calls for it.

    2. Contrast: Add contrast by differentiating between light and dark areas. This adds depth and helps the texture read better at a distance.

  6. Detailing and Wear:

    1. Texture Details: Add small details like scratches, wear and tear, or seams where appropriate. These details can make a texture feel more lived-in and believable.

    2. Edge Highlighting: Use edge highlights to emphasize the edges of objects, making them stand out more.

    3. Consistent Detailing: Ensure that the level of detail is consistent across the entire texture, preventing any one area from looking too busy or too plain.

  7. Avoiding Procedural Looks:

    1. Hand-Paint Everything: Avoid procedural or automatic tools as much as possible. The charm of hand-painted textures comes from their personal, crafted feel.

    2. Break Repetition: Add small variations to prevent patterns from looking too uniform or repeated.

  8. Final Touches:

    1. Texture Review: Continuously review the texture on the model to see how it looks from various angles and distances.

    2. Polishing: Once the main texture work is done, add any final touches like subtle noise, color adjustments, or small details that enhance the overall look.

    3. Testing in Engine: If the texture is for a game, always test it in the engine to see how it looks under different lighting conditions and in the context of the game.

Rigging

  • Bone Structure: Is the skeleton appropriately structured for the character’s anatomy and intended range of motion?

  • Skinning: Does the character deform correctly during animation, with smooth transitions and minimal distortions?

  • Control Rig: Are the controls intuitive and functional for the animators, allowing for a wide range of expressions and movements?

Animation

  • Cycle Quality: Are standard animation cycles (e.g., walk, run, idle) smooth, natural, and loop seamlessly?

  • Custom Animations: Do custom animations meet the character’s role requirements, showing personality and purpose?

  • Fluidity: Are the animations fluid and believable, with no noticeable errors or jerks?

Generalized QA Approach

Our approach to QA’ing large collections quickly and effectively.

  • Most collections minimum number of Avatars that represent all traits is between 50-300, we iterate on that subset of avatars fixing issues until all traits have been validated in an Assembled Avatar.

  • Then we add that list to a larger list (usually 25% of total collection size) to identify any issues that would have been missed in the 50-300 QA group.

We feel this is a good compromise between speed and coverage, however each collection poses unique challenges this QA strategy might not be applicable to all cases.

Load GLBs into an M2 Editor

To test avatars as close to how they will appear being loaded into the game from an external source without going through any ODK tooling you can use the gltf runtime plugin GitHub - rdeioris/glTFRuntime: Unreal Engine Plugin for loading glTF files at runtime to load GLBs into unreal. You can load an individual GLB into the editor by dragging and dropping into the content browser.

Check Textures

Do a visual inspection of textures to ensure they look correct.

Common Issues:

  • Lines appear at UV seams, items appear concave when they should appear convex or vice versa.

    • The normal map format for GLB is Y+, this is common for opengl shaders. This is different than directx or Y-

  • Lines appear at UV seams, depth of detail is not as deep as it is supposed to be.

    • At some point in the pipeline the texture is being set to an sRGB Gamma Curve. Make sure the image transfer function is raw/linear.

  • Item is shinier than it is supposed to be.

    • At some point in the pipeline the texture is being set to an sRGB Gamma Curve. Make sure the image transfer function is raw/linear.

  • Texture appears blocky

    • Try to avoid using JPG compression with Normal Maps, especially on almost flat surfaces.

    • If normal map is fine check compression settings on other texture maps.

Check for Overlapping Polygons

Based on topology and weighting it is very common for overlapping polygons to intersect. For example if the topology and weighting of a t-shirt doesn’t exactly match the topology the body may clip through the shirt while the avatar is deforming. There are two main routes to remediate this issue.

  • Model the traits/slots so when the body has the t-shirt, there are no polygons on the body under the shirt.

  • Create overlap masks that hide polygons under the overlapping slot.

Check Skin Weighting

Visually identify any portions of the Avatar which is not deforming as expected with the set of animations that are included in the ODK .

Checking every single animation sequence may not be feasible, if not checking against the entire list, skipping variations of the same type of animation, i.e. idle and clapping is fine. Prioritize locomotion for general gameplay, however the range of motion will be pushed to the limit in emotes, i.e. any of the dancing.

Creating an animation blueprint that loops through animations, or allows the selection of specific animations may be useful if opening up animations to a QA team natively on ODK/M2, but loading a skeletal mesh into unreal with the UE5 skeleton set as the mesh skeleton will allow you to play animations on the mesh in the Editor quickly and easily.

Last updated