Files
streaming_world/assets/blender/scripts/mixamo/lib/version.py
2025-01-28 11:30:59 +03:00

36 lines
1.2 KiB
Python

import bpy
class ARP_blender_version:
_string = bpy.app.version_string
blender_v = bpy.app.version
_float = blender_v[0]*100+blender_v[1]+blender_v[2]*0.01
#_char = bpy.app.version_string
blender_version = ARP_blender_version()
def convert_drivers_cs_to_xyz(armature):
# Blender 3.0 requires Vector3 custom_shape_scale values
# convert single uniform driver to vector3 array drivers
drivers_armature = [i for i in armature.animation_data.drivers]
for dr in drivers_armature:
if 'custom_shape_scale' in dr.data_path:
if not 'custom_shape_scale_xyz' in dr.data_path:
for i in range(0, 3):
new_dr = armature.animation_data.drivers.from_existing(src_driver=dr)
new_dr.data_path = new_dr.data_path.replace('custom_shape_scale', 'custom_shape_scale_xyz')
new_dr.array_index = i
new_dr.driver.expression += ''# update hack
armature.driver_remove(dr.data_path, dr.array_index)
print("Converted custom shape scale drivers to xyz")
def get_custom_shape_scale_prop_name():
if blender_version._float >= 300:
return 'custom_shape_scale_xyz'
else:
return 'custom_shape_scale'