ImportableHair
human/hair/basehair.pyInherits from BaseHair, PreviewCollectionContent, SavableContent
Further specialization of BaseHair for hair that can be imported from a pcoll.
| Attributes | ||
|---|---|---|
| lightness | NodeInput | —from BaseHair |
| redness | NodeInput | —from BaseHair |
| roughness | NodeInput | —from BaseHair |
| salt_and_pepper | NodeInput | —from BaseHair |
| roots | NodeInput | —from BaseHair |
| root_lightness | NodeInput | —from BaseHair |
| root_redness | NodeInput | —from BaseHair |
| roots_hue | NodeInput | —from BaseHair |
| fast_or_accurate | NodeInput | —from BaseHair |
| hue | NodeInput | —from BaseHair |
| particle_systems | PropCollection | Get propcollection of particle systems on the human used by this hair type.from BaseHair |
| modifiers | PropCollection | Modifiers associated with the particle systems of this hair type.from BaseHair |
| haircard_obj | Optional[bpy.types.Object] | Blender object of haircards IF generated.from BaseHair |
| materials | list[bpy.types.Material] | List of materials used for this type of hair.from BaseHair |
| nodes | PropCollection | PropCollection of nodes used in the materials for this type of hair. # noqafrom BaseHair |
| Methods | ||
| set() | Loads hair system the user selected. | |
| save_to_library() | Save the currently active hair system of this type to the HG library. | |
| remove_all() | Remove all modifiers of this hair type from the human. | |
| randomize() | Pick a random hairstyle from the library and apply it to the human. | |
| convert_to_haircards() | bpy.types.Object | Convert the hair of this type to haircards.from BaseHair |
| get_evaluated_particle_systems() | PropCollection | Get an evaluated version of the particle systems of this hair type.from BaseHair |
| delete_all() | —from BaseHair | |
| randomize_color() | Randomize the color of the hair of this type.from BaseHair | |
| 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() | str | Remove 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
No description yet.
No description yet.
No description yet.
ImportableHair.salt_and_pepper: NodeInputfrom BaseHair
sourceNo description yet.
No description yet.
ImportableHair.root_lightness: NodeInputfrom BaseHair
sourceNo description yet.
ImportableHair.root_redness: NodeInputfrom BaseHair
sourceNo description yet.
No description yet.
ImportableHair.fast_or_accurate: NodeInputfrom BaseHair
sourceNo description yet.
No description yet.
ImportableHair.particle_systems: PropCollectionread-onlyfrom BaseHair
sourceGet propcollection of particle systems on the human used by this hair type.
ImportableHair.modifiers: PropCollectionread-onlyfrom BaseHair
sourceModifiers associated with the particle systems of this hair type.
ImportableHair.haircard_obj: Optional[bpy.types.Object]read-onlyfrom BaseHair
sourceBlender object of haircards IF generated.
List of materials used for this type of hair.
Usually singleton, but will contain multiple values if haircards are generated.
ImportableHair.nodes: PropCollectionread-onlyfrom BaseHair
sourcePropCollection of nodes used in the materials for this type of hair. # noqa
Methods
Loads hair system the user selected.
| Parameter | Type | Description |
|---|---|---|
| preset | str | Name of the preset to load. Must be in the preview collection. Options can be retreived from `get_options()`. |
| context | C default None | Blender context. bpy.context if not provided. |
ImportableHair.save_to_library(particle_system_names: list[str], hairstyle_name: str, category: str, for_male: bool = True, for_female: bool = True, thumbnail: Optional[Image] = None, context: C = None)
sourceSave the currently active hair system of this type to the HG library.
| Parameter | Type | Description |
|---|---|---|
| particle_system_names | list[str] | Names of the particle systems to save. |
| hairstyle_name | str | Name to save this hairstyle as. |
| category | str | Category to save this hairstyle in. If this category does not already exist, a new folder will be created. |
| for_male | bool default True | Whether this hairstyle is available for male humans. |
| for_female | bool default True | Whether this hairstyle is available for female humans. |
| thumbnail | Optional[Image] default None | Thumbnail to save with this hairstyle. Pass a Blender Image object here. If None, no thumbnail will be used. |
| context | C default None | Blender context. bpy.context if not provided. |
ImportableHair.remove_all()
sourceRemove all modifiers of this hair type from the human.
Pick a random hairstyle from the library and apply it to the human.
| Parameter | Type | Description |
|---|---|---|
| context | C default None | Blender context. bpy.context if not provided. |
ImportableHair.convert_to_haircards(quality: Literal['ultra', 'high', 'medium', 'low', 'haircap_only'] = 'high', context: C = None, triangle_budget: Optional[int] = None) → bpy.types.Objectfrom BaseHair
sourceConvert the hair of this type to haircards.
Will generate a mesh object consisting of a haircap and haircards, skinned to the rig of the human. For eye systems only a haircap will be generated. The object follows the expressions of the human.
| Parameter | Type | Description |
|---|---|---|
| quality | Literal['ultra', 'high', 'medium', 'low', 'haircap_only'] default 'high' | Quality of the haircards, which sets the number of triangles of the generated object. Defaults to high. |
| context | C default None | Blender context. bpy.context if not provided. |
| triangle_budget | Optional[int] default None | Maximum number of triangles of the generated object, overrides the budget of the quality. |
Returns bpy.types.Object — bpy.types.Object: Blender object of the haircap and haircards
Raises HumGenException — If this human has no hair of this type to convert.
ImportableHair.get_evaluated_particle_systems(context: C = None) → PropCollectionfrom BaseHair
sourceGet an evaluated version of the particle systems of this hair type.
| Parameter | Type | Description |
|---|---|---|
| context | C default None | Blender context. bpy.context if not provided. |
Returns PropCollection — PropCollection of evaluated particle systems
ImportableHair.delete_all()from BaseHair
sourceNo description yet.
ImportableHair.randomize_color()from BaseHair
sourceRandomize the color of the hair of this type.
ImportableHair.set_random(context: C = None, update_ui: bool = False)from PreviewCollectionContent
sourceSet this content type to a random content item.
This will use random.choice to select a random item from the output of get_options().
| Parameter | Type | Description |
|---|---|---|
| context | C default None | Blender context. bpy.context if not provided. |
| update_ui | bool default False | Will also show the chosen item as the active thumbnail in the template_icon_view. Defaults to False. |
ImportableHair.get_options(context: C = None, category: str = 'All') → List[str]from PreviewCollectionContent
sourceGet 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.
| Parameter | Type | Description |
|---|---|---|
| context | C default None | Blender context. bpy.context if not provided. |
| category | str 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.
ImportableHair.get_categories() → list[str]from PreviewCollectionContent
sourceGet 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.
ImportableHair.refresh_pcoll(context: C = None, override_category: Optional[str] = None, ignore_searchterm: bool = False)from PreviewCollectionContent
sourceRefresh 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.
| Parameter | Type | Description |
|---|---|---|
| context | C default None | Blender context. bpy.context if not provided. |
| override_category | Optional[str] default None | Override the category to use, if not provided all items regardless of category will be shown. |
| ignore_searchterm | bool default False | If True, the searchterm set by the user will be ignored. Defaults to False. |
ImportableHair.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
sourceSaves the passed objects as a new blend file.
opening the file in the background to make it as small as possible
| Parameter | Type | Description |
|---|---|---|
| context | bpy.types.Context | Blender context. |
| objs | Iterable[bpy.types.Object] | List of objects to save |
| folder | str | Folder to save the file in |
| filename | str | Name to save the file as |
| clear_sk | bool default True | Remove all shapekeys from objs. Defaults to True. |
| clear_materials | bool default True | Remove all materials from objs. Defaults to True. |
| clear_vg | bool default True | Remove all vertex groups from objs. Defaults to True. |
| clear_ps | bool default True | Remove all particle systems from objs. Defaults to True. |
| run_in_background | bool default True | Open the new subprocess in the background. Defaults to True. |
| clear_drivers | bool default True | Remove all drivers from objs. Defaults to True. |
ImportableHair.remove_number_suffix(name: str) → strstatic methodfrom SavableContent
sourceRemove the number suffix from the passed name (i.e. Box.004 becomes Box).
| Parameter | Type | Description |
|---|---|---|
| name | str | name to remove suffix from |
Returns str — name without suffix