• LockNodeState class added. This helps to lock and temporarily unlock all keyable attributes of a node to attr module.
  • Joint orientation attributes now have 2nd child up position. This can be used to have first child be aim, and second child be up axis.
  • Mirror Transforms will now unlock attributes before mirroring, and lock again after the mirror is done. This allows for more guided structure setups.
  • Added lock_translate_attributes and lock_rotate_attributes to attr module.
  • Added button Convert to Orient Joint beside Orient Joints button. If a joint is selected, this will convert the joint to a special auto orient configuration that uses 2 children to figure out the orientation.
  • Added get_hierarchy_path to space module. If you have joint_arm_L, joint_elbow_L, joint_wrist_L, it will find the path between joint_arm_L and joint_wrist_L without getting confused if joint_elbow_L branches. This can help find a limb if a skeleton is complex.
  • Added open_data() to process. Opening can be faster than importing. Open should probably be at the start of the code manifest.
  • Added get_bounding_box_size to space module. Good for adapting scripts to the size of a mesh. For example scale the controls when a mesh is larger/smaller. Being used to auto rig props with a single control that fits to the mesh.
  • is_cv_count_same function added to geo module
  • Shape Combo UI can now work with groups of meshes. If you set your base as a group with meshes under it, you can Add by selecting a different group with the same ( but duplicated ) meshes under it. Meshes must be in same order between base an group to be added.
  • Shape Combo UI, combos are now organized by hero selection.
  • Added Matrix class to the maya_lib.api module. Good for reading matrices and getting the translation, rotation.
  • Added Quaternion class to maya_lib.api module. Good for reading quaternions and getting the rotation in Euler.
  • Added leo cad ldr reader (very basic) to data module
  • Added read_lxfml_file reader (very basic) to data module. Needs to be export LXFML4 from Lego Digital Designer. Will return the id, position, rotation of parts listed in the file.
  • Added exists function to util_file for checking if a folder or file exists, instead of just is_file or is_dir

  • Fixed get_files_with_extension in util_file module. When setting full_path to True, it wouldn't return the full path.
  • Fixed versions not being deletable. Now you should be able to delete versions like version.1 verion.2 etc and the remaining versions should still show up in the ui. Let me know if not.
  • Fixed Scale Controls slider undo.
  • Fixed Fix Sub Controls button. It searches controls connect to subVisibility. Now it sorts the controls so they are always in the right order when scaling.
  • lock_attributes now works on double3 attributes like translate and rotate as well as translateX, translateY, etc.
  • MirrorControlKeyframes now lives in rigs_util module and has some more feedback when things are wrong.
  • Fixed issue with Animation data import in the ui.
  • Fixed minutes and seconds not printing properly when running processes.
  • Fixed set_attach_joints() on Sparse rigs. Sparse rigs would get created but wouldn't attach the controls to the joints.
  • Moved BoundingBox class to space module

  • Removed file save block when saving code that hasn't changed.