Mesh Utilities
The purpose of the following methods is to provide:
a simple mechanism for building meshes from a given DNA file path
return and print information about the meshes contained in the DNA file
Importing
from dna_viewer import DNA, Config, build_meshes
DNA_PATH_ADA = f"{ROOT_DIR}/data/dna_files/Ada.dna"
DNA_PATH_TARO = f"{ROOT_DIR}/data/dna_files/Taro.dna"
Create Config Instance(Config
)
Create a configuration object that will be used in the mesh building process.
config = Config(
add_joints=True,
add_blend_shapes=True,
add_skin_cluster=True,
add_ctrl_attributes_on_root_joint=True,
add_animated_map_attributes_on_root_joint=True,
lod_filter=[0, 1],
mesh_filter=["head"],
)
These are just some attributes of Config
class:
add_joints: bool
- A flag representing if joints should be added, defaults toTrue
.add_blend_shapes: bool
- A flag representing if blendshapes should be added, defaults toTrue
.add_skin_cluster: bool
- A flag representing if skin clusters should be added, defaults toTrue
.add_ctrl_attributes_on_root_joint: bool
- A flag representing if control attributes should be added to the root joint as attributes, defaults toFalse
. They are used as animation curves for Rig Logic inputs in the engine.add_animated_map_attributes_on_root_joint: bool
- A flag representing if animated map attributes should be added to the root joint as attributes, defaults toTrue
. They are used as animation curves for animated maps in the engine.
IMPORTANT: Some combinations of flag values can lead to an unusable rig or disable some features!
Building the meshes (build_meshes
)
Used for building rig elements (joints, meshes, blendshapes and skin clusters) without Rig Logic. It returns long names of meshes that have been added to the scene.
config = Config(
add_joints=True,
add_blend_shapes=True,
add_skin_cluster=True,
add_ctrl_attributes_on_root_joint=True,
add_animated_map_attributes_on_root_joint=True,
lod_filter=[0, 1],
mesh_filter=["head"],
)
mesh_names = build_meshes(
dna=dna_ada,
config=config
)
This uses the following parameters:
dna: DNA
- Instance of DNA got withDNA
.config: Config
- Instance of configuration.
mesh_names = build_meshes(dna=dna_ada)
Which defaults to adding all the meshes within the DNA file.
Example
Important: The environment setup provided above needs to be executed before running this example.
from dna_viewer import DNA, Config, build_meshes
# if you use Maya, use absolute path
ROOT_DIR = f"{ospath.dirname(ospath.abspath(__file__))}/..".replace("\\", "/")
# Sets DNA file path
DNA_PATH_ADA = f"{ROOT_DIR}/data/dna_files/Ada.dna"
dna_ada = DNA(DNA_PATH_ADA)
# Starts the mesh build process with all the default values
build_meshes(dna=dna_ada)
# Creates the options to be passed in `build_meshes`
config = Config(
add_joints=True,
add_blend_shapes=True,
add_skin_cluster=True,
add_ctrl_attributes_on_root_joint=True,
add_animated_map_attributes_on_root_joint=True,
lod_filter=[0, 1],
mesh_filter=["head"],
)
# Starts the mesh building process with the provided parameters
# In this case it will create every mesh contained in LODs 0 and 1 with 'head` in it's name,
build_meshes(
dna=dna_ada,
config=config,
)