Inherits from BaseClothing

Class for adding/changing the outfit of a human.

Most of the functionality of this class comes from the BaseClothing class, since outfits and footwear work the same.

Attributes
objectslist[bpy.types.Object]Get a list of the objects this human's outfit consists of.
patternPatternSettingsGives access to PatternSettings to add/change patterns on this clothing.from BaseClothing
Methods
add_obj()strAdd an object you created yourself as footwear to this human.
set()Gets called by pcoll_outfit or pcoll_footwear to load the selected outfit.from BaseClothing
add_obj_steps()Steps[str]The work of `add_obj` as resumable steps, see `HumGen3D.common.progress`.from BaseClothing
deform_cloth_to_human()Deforms the cloth object to the shape of the active HumGen human.from BaseClothing
remove()list[str]Removes the cloth objects of this category that are currently on the human.from BaseClothing
save_to_library()list[subprocess.Popen]Save the currently active footwear/clothing to the HumGen library.from BaseClothing
set_texture_resolution()Sets the texture resolution of the passed clothing to the passed resolution.from BaseClothing
randomize_colors()Randomizes the colors of the passed clothing object.from BaseClothing
set_random()Set this content type to a random content item.from PreviewCollectionContent
get_options()List[str]Get a list of options you can use for the set() method of this content.from PreviewCollectionContent
get_categories()list[str]Get a list of categoris this content type is organized in.from PreviewCollectionContent
refresh_pcoll()Refresh the items of this preview collection.from PreviewCollectionContent
save_objects_optimized()Saves the passed objects as a new blend file.from SavableContent
remove_number_suffix()strRemove the number suffix from the passed name (i.e. Box.004 becomes Box).from SavableContent
as_dict()Save these settings to a dict and restore them from one.

Attributes

human.clothing.outfit.objects: list[bpy.types.Object]read-only

source

Get a list of the objects this human's outfit consists of.

human.clothing.outfit.pattern: PatternSettingsread-onlyfrom BaseClothing

source

Gives access to PatternSettings to add/change patterns on this clothing.

Methods

human.clothing.outfit.add_obj(cloth_obj: bpy.types.Object, cloth_type: Literal['pants', 'torso', 'full'], recalculate_weights = True, context: C = None, progress: Optional[Callable[[float], None]] = None) → str

source

Add an object you created yourself as footwear to this human.

ParameterTypeDescription
cloth_objbpy.types.ObjectBlender object to add as footwear. Make sure it's located in the correct place (on the feet of this human).
cloth_typeLiteral['pants', 'torso', 'full']What part of the body this clothing item covers. This influences what corrective shapekeys are added to the item.
recalculate_weights
default True
Whether to recalculate weights of the vertex groups. Only disable if you manually set the weights.
contextC
default None
Blender context. bpy.context if not provided.
progressOptional[Callable[[float], None]]
default None
Called with a fraction from 0 to 1 as the conversion advances, for a progress indicator.

Returns str — How the weights were computed. "closest_point" means the weight solver failed and the weights will need manual cleanup.

human.clothing.outfit.set(preset: str, context: C = None)from BaseClothing

source

Gets called by pcoll_outfit or pcoll_footwear to load the selected outfit.

ParameterTypeDescription
presetstrRelative path of the preset to load. Get options from the `get_options` method.
contextC
default None
Blender context. bpy.context if not provided.

human.clothing.outfit.add_obj_steps(cloth_obj: bpy.types.Object, cloth_type: Literal['pants', 'torso', 'footwear', 'full'], recalculate_weights: bool, context: bpy.types.Context) → Steps[str]from BaseClothing

source

The work of add_obj as resumable steps, see HumGen3D.common.progress.

Yields the fraction of the work that is done. The object is only changed in the last step, so a generator that is closed early leaves it as it is.

ParameterTypeDescription
cloth_objbpy.types.Object—
cloth_typeLiteral['pants', 'torso', 'footwear', 'full']—
recalculate_weightsbool—
contextbpy.types.Context—

Returns Steps[str] — How the weights were computed, see `add_obj`.

human.clothing.outfit.deform_cloth_to_human(context: bpy.types.Context, cloth_obj: bpy.types.Object)from BaseClothing

source

Deforms the cloth object to the shape of the active HumGen human.

Mainly meant for internal use, but might be useful. Expects the base shape of the passed cloth_obj to fit a standard HG human with no adjustments. Stores the shape that fits the current body proportions and height of the human in the "Body Proportions" shape key.

See HumGen3D.human.clothing.garment_fit for the vertex group and custom properties a clothing object can use to steer how loosely it is fitted.

ParameterTypeDescription
contextbpy.types.ContextBlender context.
cloth_objbpy.types.Objectcloth object to deform

human.clothing.outfit.remove(remove_masks = True) → list[str]from BaseClothing

source

Removes the cloth objects of this category that are currently on the human.

ParameterTypeDescription
remove_masks
default True
Remove geometry masks used by this clothing, default True

Returns list[str] — list of geometry masks that need to be removed

human.clothing.outfit.save_to_library(name: str, for_male: bool = True, for_female: bool = True, open_when_finished: bool = False, category: str = 'Custom', thumbnail: Optional[bpy.types.Image] = None, objects: Optional[list[bpy.types.Object]] = None, context: C = None) → list[subprocess.Popen]from BaseClothing

source

Save the currently active footwear/clothing to the HumGen library.

This will make this item accessible in future projects.

ParameterTypeDescription
namestrName of the item to save.
for_malebool
default True
Whether to make the item available for male humans. Defaults to True.
for_femalebool
default True
Whether to make the item available for female humans. Defaults to True.
open_when_finishedbool
default False
Whether to open the created .blend files in new windows after saving. Defaults to False.
categorystr
default 'Custom'
Category to save the item to. Defaults to "Custom". This is the folder the item will be saved in.
thumbnailOptional[bpy.types.Image]
default None
Image to use as thumbnail for the item. Has to be loaded in Blender. If None, NO thumbnail will be saved.
objectsOptional[list[bpy.types.Object]]
default None
Which of the objects in `self.objects` to save. Defaults to all of them.
contextC
default None
Blender context. bpy.context if not provided.

Returns list[subprocess.Popen] — The background Blender processes that shrink the saved files. The files are complete once these have finished, wait() for them if you use the files right away.

human.clothing.outfit.set_texture_resolution(clothing_item: bpy.types.Object, resolution_category: Literal['high', 'medium', 'low'])from BaseClothing

source

Sets the texture resolution of the passed clothing to the passed resolution.

ParameterTypeDescription
clothing_itembpy.types.ObjectBlender object that is currently loaded on this human as clothing.
resolution_categoryLiteral['high', 'medium', 'low']Resolution category to set the textures to.

human.clothing.outfit.randomize_colors(cloth_obj: bpy.types.Object, context: C = None)from BaseClothing

source

Randomizes the colors of the passed clothing object.

ParameterTypeDescription
cloth_objbpy.types.ObjectBlender object that is currently loaded on this human as clothing.
contextC
default None
Blender context. bpy.context if not provided.

human.clothing.outfit.set_random(context: C = None, update_ui: bool = False)from PreviewCollectionContent

source

Set this content type to a random content item.

This will use random.choice to select a random item from the output of get_options().

ParameterTypeDescription
contextC
default None
Blender context. bpy.context if not provided.
update_uibool
default False
Will also show the chosen item as the active thumbnail in the template_icon_view. Defaults to False.

human.clothing.outfit.get_options(context: C = None, category: str = 'All') → List[str]from PreviewCollectionContent

source

Get a list of options you can use for the set() method of this content.

These represent the choises the user sees in the UI. The output is a list of relative paths to the content files, starting from the Human Generator folder.

ParameterTypeDescription
contextC
default None
Blender context. bpy.context if not provided.
categorystr
default 'All'
Category to filter the content by. Defaults to "All". You can get a list of categories from the get_categories() method.

Returns List[str] — List[str]: List of relative paths to content files. You can pick one of these and pass it to the set() method.

Raises ValueError — If the passed category is not present in the list of categories.

Raises HumGenException — If no options can be found, this can be caused by the content pack for this type of content not being installed.

human.clothing.outfit.get_categories() → list[str]from PreviewCollectionContent

source

Get a list of categoris this content type is organized in.

You can choose one of these categories to filter the content retreived from get_options().

Returns list[str] — list[str]: List of categories. These are the names of the folders the content is saved in.

human.clothing.outfit.refresh_pcoll(context: C = None, override_category: Optional[str] = None, ignore_searchterm: bool = False)from PreviewCollectionContent

source

Refresh the items of this preview collection.

This is low level functionality, you should not need to use this. It is used to refresh the list of possible content for this human. If you use get_options() this is automatically done for you.

ParameterTypeDescription
contextC
default None
Blender context. bpy.context if not provided.
override_categoryOptional[str]
default None
Override the category to use, if not provided all items regardless of category will be shown.
ignore_searchtermbool
default False
If True, the searchterm set by the user will be ignored. Defaults to False.

OutfitSettings.save_objects_optimized(context: bpy.types.Context, objs: Iterable[bpy.types.Object], folder: str, filename: str, clear_sk: bool = True, clear_materials: bool = True, clear_vg: bool = True, clear_ps: bool = True, run_in_background: bool = True, clear_drivers: bool = True)static methodfrom SavableContent

source

Saves the passed objects as a new blend file.

opening the file in the background to make it as small as possible

ParameterTypeDescription
contextbpy.types.ContextBlender context.
objsIterable[bpy.types.Object]List of objects to save
folderstrFolder to save the file in
filenamestrName to save the file as
clear_skbool
default True
Remove all shapekeys from objs. Defaults to True.
clear_materialsbool
default True
Remove all materials from objs. Defaults to True.
clear_vgbool
default True
Remove all vertex groups from objs. Defaults to True.
clear_psbool
default True
Remove all particle systems from objs. Defaults to True.
run_in_backgroundbool
default True
Open the new subprocess in the background. Defaults to True.
clear_driversbool
default True
Remove all drivers from objs. Defaults to True.

OutfitSettings.remove_number_suffix(name: str) → strstatic methodfrom SavableContent

source

Remove the number suffix from the passed name (i.e. Box.004 becomes Box).

ParameterTypeDescription
namestrname to remove suffix from

Returns str — name without suffix

Serialization: as_dict

human.clothing.outfit.as_dict() → dict[str, Any]from BaseClothing

source

Returns a dictionary representation of this clothing.

Returns dict[str, Any] — dict[str, Any]: Dictionary representation of this clothing.