forked from bartvdbraak/blender
Presets for hair dynamics.
This is necessary because the hair dynamics settings are not part of the ParticleSettings datablock, but part of the convoluted cloth modifier inside the particle system struct. In the future this will be recoded properly, but in the meantime presets provide a simple an unobtrusive way to have reusable dynamics settings for hair. Conflicts: release/scripts/startup/bl_ui/properties_particle.py
This commit is contained in:
parent
db2ac79fc7
commit
bb76e96339
17
release/scripts/presets/hair_dynamics/default.py
Normal file
17
release/scripts/presets/hair_dynamics/default.py
Normal file
@ -0,0 +1,17 @@
|
||||
import bpy
|
||||
psys = bpy.context.particle_system
|
||||
cloth = bpy.context.particle_system.cloth
|
||||
settings = bpy.context.particle_system.cloth.settings
|
||||
collision = bpy.context.particle_system.cloth.collision_settings
|
||||
|
||||
settings.quality = 5
|
||||
settings.mass = 0.30000001192092896
|
||||
settings.bending_stiffness = 0.5
|
||||
psys.settings.bending_random = 0.0
|
||||
settings.bending_damping = 0.5
|
||||
settings.air_damping = 1.0
|
||||
settings.internal_friction = 0.0
|
||||
settings.density_target = 0.0
|
||||
settings.density_strength = 0.0
|
||||
settings.voxel_cell_size = 0.10000000149011612
|
||||
settings.pin_stiffness = 0.0
|
@ -365,6 +365,36 @@ class AddPresetFluid(AddPresetBase, Operator):
|
||||
preset_subdir = "fluid"
|
||||
|
||||
|
||||
class AddPresetHairDynamics(AddPresetBase, Operator):
|
||||
"""Add or remove a Hair Dynamics Preset"""
|
||||
bl_idname = "particle.hair_dynamics_preset_add"
|
||||
bl_label = "Add Hair Dynamics Preset"
|
||||
preset_menu = "PARTICLE_MT_hair_dynamics_presets"
|
||||
|
||||
preset_defines = [
|
||||
"psys = bpy.context.particle_system",
|
||||
"cloth = bpy.context.particle_system.cloth",
|
||||
"settings = bpy.context.particle_system.cloth.settings",
|
||||
"collision = bpy.context.particle_system.cloth.collision_settings",
|
||||
]
|
||||
|
||||
preset_subdir = "hair_dynamics"
|
||||
|
||||
preset_values = [
|
||||
"settings.quality",
|
||||
"settings.mass",
|
||||
"settings.bending_stiffness",
|
||||
"psys.settings.bending_random",
|
||||
"settings.bending_damping",
|
||||
"settings.air_damping",
|
||||
"settings.internal_friction",
|
||||
"settings.density_target",
|
||||
"settings.density_strength",
|
||||
"settings.voxel_cell_size",
|
||||
"settings.pin_stiffness",
|
||||
]
|
||||
|
||||
|
||||
class AddPresetSunSky(AddPresetBase, Operator):
|
||||
"""Add or remove a Sky & Atmosphere Preset"""
|
||||
bl_idname = "lamp.sunsky_preset_add"
|
||||
|
@ -63,6 +63,14 @@ def particle_get_settings(context):
|
||||
return None
|
||||
|
||||
|
||||
class PARTICLE_MT_hair_dynamics_presets(Menu):
|
||||
bl_label = "Hair Dynamics Presets"
|
||||
preset_subdir = "hair_dynamics"
|
||||
preset_operator = "script.execute_preset"
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
||||
draw = Menu.draw_preset
|
||||
|
||||
|
||||
class ParticleButtonsPanel():
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@ -308,6 +316,11 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel):
|
||||
|
||||
layout.enabled = psys.use_hair_dynamics and psys.point_cache.is_baked is False
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.menu("PARTICLE_MT_hair_dynamics_presets", text=bpy.types.PARTICLE_MT_hair_dynamics_presets.bl_label)
|
||||
row.operator("particle.hair_dynamics_preset_add", text="", icon='ZOOMIN')
|
||||
row.operator("particle.hair_dynamics_preset_add", text="", icon='ZOOMOUT').remove_active = True
|
||||
|
||||
split = layout.column()
|
||||
|
||||
col = split.column()
|
||||
|
Loading…
Reference in New Issue
Block a user