Added blender scripts
This commit is contained in:
60
assets/blender/scripts/mixamo/lib/custom_props.py
Normal file
60
assets/blender/scripts/mixamo/lib/custom_props.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import bpy
|
||||
from .version import blender_version
|
||||
|
||||
|
||||
def get_prop_setting(node, prop_name, setting):
|
||||
if blender_version._float >= 300:
|
||||
return node.id_properties_ui(prop_name).as_dict()[setting]
|
||||
else:
|
||||
return node['_RNA_UI'][prop_name][setting]
|
||||
|
||||
|
||||
def set_prop_setting(node, prop_name, setting, value):
|
||||
if blender_version._float >= 300:
|
||||
ui_data = node.id_properties_ui(prop_name)
|
||||
if setting == 'default':
|
||||
ui_data.update(default=value)
|
||||
elif setting == 'min':
|
||||
ui_data.update(min=value)
|
||||
elif setting == 'max':
|
||||
ui_data.update(max=value)
|
||||
elif setting == 'soft_min':
|
||||
ui_data.update(soft_min=value)
|
||||
elif setting == 'soft_max':
|
||||
ui_data.update(soft_max=value)
|
||||
elif setting == 'description':
|
||||
ui_data.update(description=value)
|
||||
|
||||
else:
|
||||
if not "_RNA_UI" in node.keys():
|
||||
node["_RNA_UI"] = {}
|
||||
node['_RNA_UI'][prop_name][setting] = value
|
||||
|
||||
|
||||
def create_custom_prop(node=None, prop_name="", prop_val=1.0, prop_min=0.0, prop_max=1.0, prop_description="", soft_min=None, soft_max=None, default=None):
|
||||
if soft_min == None:
|
||||
soft_min = prop_min
|
||||
if soft_max == None:
|
||||
soft_max = prop_max
|
||||
|
||||
if blender_version._float < 300:
|
||||
if not "_RNA_UI" in node.keys():
|
||||
node["_RNA_UI"] = {}
|
||||
|
||||
node[prop_name] = prop_val
|
||||
|
||||
if default == None:
|
||||
default = prop_val
|
||||
|
||||
if blender_version._float < 300:
|
||||
node["_RNA_UI"][prop_name] = {'use_soft_limits':True, 'min': prop_min, 'max': prop_max, 'description': prop_description, 'soft_min':soft_min, 'soft_max':soft_max, 'default':default}
|
||||
else:
|
||||
set_prop_setting(node, prop_name, 'min', prop_min)
|
||||
set_prop_setting(node, prop_name, 'max', prop_max)
|
||||
set_prop_setting(node, prop_name, 'description', prop_description)
|
||||
set_prop_setting(node, prop_name, 'soft_min', soft_min)
|
||||
set_prop_setting(node, prop_name, 'soft_max', soft_max)
|
||||
set_prop_setting(node, prop_name, 'default', default)
|
||||
|
||||
# set as overridable
|
||||
node.property_overridable_library_set('["'+prop_name+'"]', True)
|
||||
Reference in New Issue
Block a user