Please enable JavaScript.
Coggle requires JavaScript to display documents.
Character Cration - Coggle Diagram
Character Cration
start_lab_session (main file)
Gets the vars (from blender scene)
Loads in humanoid object from template according to character_identifier config (and renames it)
Create
Humanoid
Init Database
Create
SkeletonEngine
Constructor
Sets filenames
(based on characters_config [character_identifier])
joints_base_file
joints_offset_file
Sets skeleton vars
(based on rigging type)
skeleton_template_name
groups_filename (vertexgroup files)
Loads in
Joints database (JSON)
Joint offsets (JSON)
Skelton rig from
skeleton_template
name (blend file)
store_z_axis
Reimports the same native template_skeleton temporarly
stores
armature_z_axis
on self
3 more items...
Eliminates temporary object
align_bones_z_axis
for each bone in current armature calls bone.align_roll(armature_z_axis[bone])
load_groups
Loads
Vertgroup data
(JSON)
group_names = Json.getKeys (sorted)
foreach group_name:
2 more items...
add_armature_modifier
Sets variables
character_template_name
tranformations_path
phenotype_path
presets_path
restposes_path
Adds Corrective modifier
Create
MorphEngine
Constructor
Sets data paths
verts
expressions
morphs
morphs_extra
shared_morphs
shared_morphs_extra
antropometry
measures
bounding_box
Nulls variables
verts_to_update = set()
morph_data = {}
morph_data_cache = {}
forma_data = None
bbox_data = {}
morph_values = {}
morph_modified_verts = {}
boundary_verts = None
measures_data = {}
measures_relat_data = []
measures_score_weights = {}
body_height_Z_parts = {}
proportions = {}
proportion_index = None
init_final_form
final_form = [ ]
foreach vertex in object (scene)
append it to the final form
Loads Morph Database
shared_morph
morph_data_path
extra_morph_data
all user variants
load_morphs_database
4 more items...
load_bboxes_database
2 more items...
load_measures_database
5 more items...
calculate_measures
3 more items...
Create
Material Engine
Constructor
Gather texture file paths from the config file
Image file paths = { "img_id": path }
image_file_names = { "img_id: filename }
load images
get_material_parameters
Set Vars
self.
character_data
= {}
self.
character_metaproperties
= "last_character_age": 0.0,
"character_age": 0.0,
"last_character_mass": 0.0,
"character_mass": 0.0,
"last_character_tone": 0.0,
"character_tone": 0.0
self.
character_material_properties
self.
transformations_data
= {}
self.
no_categories
= "BasisAsymTest"
init_character_data
Called for every
Morphengine::morph_data
key (eg. Nose_SizeY_max)
Creates categories and properties from shapekey name
(excludes if the name contains self.nocategories keyword)
category_name
=
first word on string
(eg. Nose)
Creates
and adds it to self.
categories
HumanCategory
Modifier
self.
name
= (Eg. "Nose_SizeX")
self.
properties
= []
A group of related
properties
Holds a set of.
modifiers
that are related
self.
name
: (eg. "Nose")
self.
modifiers
= []
modifier_name
= category_name +
second word on string
(eg Nose_SizeY)
if HumanCategory::get_modifier(modifier_name) exists
else
Create
Add modifier to humanCategory
foreach
element
in
second word on the string
.split(-) (eg. Cheeks_Mass-Tone => ["Mass", "Tone"])
property
= category_name + element
(eg. Cheeks_Mass)
Add it to the modifier (if not already present
self.
character_data
[prop] = 0.5
Sets refs
self.
measures
= MorphEngine.measures
self.
delta_measures
= {}
init_delta_measures
for each
relation
in MorphEngine.
measures_relat_data
m_name = relation[0]
modifier_name = relation[1]
for each
category
in self.
get_categories
()
(no excludes, just returns the categories values)
1 more item...
Add Mesh Modifiers
corrective smooth
subdivision
displacement
Vars
(from characters_config.json)
character_identifier
base_model_name
rigging_type