From 9f30e905d7ffd28e6d842e63d1b1274733512a6a Mon Sep 17 00:00:00 2001 From: jeffreytsai1004 Date: Sat, 6 Dec 2025 18:23:17 +0800 Subject: [PATCH] Update --- 2023/icons/QuadRemesher.png | Bin 0 -> 3297 bytes 2023/icons/creaseplus.png | Bin 0 -> 12964 bytes 2023/icons/springmagic.png | Bin 0 -> 11579 bytes 2023/scripts/__init__.py | 2 + .../springmagic/HowToInstall.txt | 8 + .../springmagic/UtilityFunctions.txt | 57 + .../animation_tools/springmagic/__init__.py | 12 + .../animation_tools/springmagic/core.py | 976 +++++++++ .../animation_tools/springmagic/decorators.py | 121 ++ .../animation_tools/springmagic/history.txt | 75 + .../springmagic/icons/China Flag.png | Bin 0 -> 2212 bytes .../springmagic/icons/Shelf.png | Bin 0 -> 5302 bytes .../springmagic/icons/Title.png | Bin 0 -> 4390 bytes .../springmagic/icons/addCapsule.png | Bin 0 -> 16526 bytes .../springmagic/icons/addPlane.png | Bin 0 -> 18787 bytes .../springmagic/icons/bilibili.png | Bin 0 -> 22210 bytes .../springmagic/icons/bitcoin.png | Bin 0 -> 20565 bytes .../springmagic/icons/clearCapsule.png | Bin 0 -> 4732 bytes .../springmagic/icons/ctrl_bake.png | Bin 0 -> 3603 bytes .../springmagic/icons/ctrl_bind.png | Bin 0 -> 4107 bytes .../springmagic/icons/donut.png | Bin 0 -> 1098 bytes .../springmagic/icons/english.png | Bin 0 -> 4265 bytes .../springmagic/icons/info.png | Bin 0 -> 3567 bytes .../springmagic/icons/japanese.png | Bin 0 -> 16328 bytes .../springmagic/icons/language.png | Bin 0 -> 4366 bytes .../springmagic/icons/linkedin.png | Bin 0 -> 5312 bytes .../springmagic/icons/paypal.png | Bin 0 -> 17632 bytes .../springmagic/icons/redo.png | Bin 0 -> 4256 bytes .../springmagic/icons/removeCapsule.png | Bin 0 -> 16499 bytes .../springmagic/icons/spring.png | Bin 0 -> 1277 bytes .../springmagic/icons/update.png | Bin 0 -> 4462 bytes .../springmagic/icons/vimeo.png | Bin 0 -> 20737 bytes .../springmagic/icons/weightBone.png | Bin 0 -> 2581 bytes .../springmagic/icons/wind.png | Bin 0 -> 4543 bytes .../springmagic/icons/youtube.png | Bin 0 -> 18445 bytes .../animation_tools/springmagic/main.py | 13 + .../animation_tools/springmagic/mkDevTools.py | 36 + .../springmagic/springMagic.py | 28 + .../springmagic/springMagic.ui | 1664 +++++++++++++++ .../springmagic/springMagic_chn.ui | 1821 +++++++++++++++++ .../springmagic/springMagic_eng.ui | 1664 +++++++++++++++ .../springmagic/springMagic_jpn.ui | 1760 ++++++++++++++++ .../animation_tools/springmagic/springMath.py | 291 +++ .../scripts/animation_tools/springmagic/ui.py | 460 +++++ .../animation_tools/springmagic/utility.py | 56 + .../animation_tools/springmagic/安装说明.txt | 13 + .../modeling_tools/ModIt/ModIt_Global.py | 17 +- .../ModIt/Preferences/MultiSize.json | 2 +- .../ModIt/Preferences/TabOpen.json | 2 +- .../ModIt/Preferences/settingsFile.ini | 2 +- 2023/scripts/modeling_tools/__init__.py | 3 +- .../modeling_tools/creaseplus/CreasePlus.mel | 1153 +++++++++++ .../creaseplus/CreasePlus_Doc.png | Bin 0 -> 486881 bytes .../creaseplus/CreasePlus_Extension1.mel | 452 ++++ .../modeling_tools/creaseplus/__init__.py | 31 + .../creaseplus/cp_(read)commands.txt | 46 + .../creaseplus/icons/cp_bevel.png | Bin 0 -> 15616 bytes .../creaseplus/icons/cp_bool.png | Bin 0 -> 15692 bytes .../creaseplus/icons/cp_curve_attach.png | Bin 0 -> 15775 bytes .../creaseplus/icons/cp_curve_bevel.png | Bin 0 -> 15607 bytes .../creaseplus/icons/cp_curve_bool.png | Bin 0 -> 15692 bytes .../creaseplus/icons/cp_curve_close.png | Bin 0 -> 15924 bytes .../creaseplus/icons/cp_curve_draw.png | Bin 0 -> 15695 bytes .../creaseplus/icons/cp_eye.png | Bin 0 -> 15374 bytes .../creaseplus/icons/cp_goz.png | Bin 0 -> 15930 bytes .../creaseplus/icons/cp_hard_display.png | Bin 0 -> 15876 bytes .../creaseplus/icons/cp_keep_bool.png | Bin 0 -> 15612 bytes .../creaseplus/icons/cp_mesh_slicer.png | Bin 0 -> 15745 bytes .../creaseplus/icons/cp_mirror.png | Bin 0 -> 15819 bytes .../creaseplus/icons/cp_multiply_curve.png | Bin 0 -> 15717 bytes .../creaseplus/icons/cp_panelbool.png | Bin 0 -> 15783 bytes .../creaseplus/icons/cp_quicksmooth.png | Bin 0 -> 15913 bytes .../creaseplus/icons/cp_sel_hard.png | Bin 0 -> 15657 bytes .../modeling_tools/creaseplus/icons/cp_ss.png | Bin 0 -> 15952 bytes .../creaseplus/icons/sp_crease.png | Bin 0 -> 15956 bytes .../creaseplus/icons/sp_crease_editor.png | Bin 0 -> 15894 bytes .../creaseplus/icons/sp_nocrease.png | Bin 0 -> 15632 bytes .../creaseplus/icons/sp_physical_crease.png | Bin 0 -> 15763 bytes .../creaseplus/icons/sp_smooth.png | Bin 0 -> 15626 bytes .../creaseplus/icons/sp_weight_tool.png | Bin 0 -> 15395 bytes 2023/scripts/userSetup.py | 2 + 2023/shelves/shelf_Nexus_Animation.mel | 35 + 2023/shelves/shelf_Nexus_Modeling.mel | 191 +- 2024/icons/QuadRemesher.png | Bin 0 -> 3297 bytes 2024/icons/creaseplus.png | Bin 0 -> 12964 bytes 2024/icons/springmagic.png | Bin 0 -> 11579 bytes 2024/scripts/__init__.py | 2 + .../springmagic/HowToInstall.txt | 8 + .../springmagic/UtilityFunctions.txt | 57 + .../animation_tools/springmagic/__init__.py | 12 + .../animation_tools/springmagic/core.py | 976 +++++++++ .../animation_tools/springmagic/decorators.py | 121 ++ .../animation_tools/springmagic/history.txt | 75 + .../springmagic/icons/China Flag.png | Bin 0 -> 2212 bytes .../springmagic/icons/Shelf.png | Bin 0 -> 5302 bytes .../springmagic/icons/Title.png | Bin 0 -> 4390 bytes .../springmagic/icons/addCapsule.png | Bin 0 -> 16526 bytes .../springmagic/icons/addPlane.png | Bin 0 -> 18787 bytes .../springmagic/icons/ali_pay.png | Bin 0 -> 31888 bytes .../springmagic/icons/bilibili.png | Bin 0 -> 22210 bytes .../springmagic/icons/bitcoin.png | Bin 0 -> 20565 bytes .../springmagic/icons/clearCapsule.png | Bin 0 -> 4732 bytes .../springmagic/icons/ctrl_bake.png | Bin 0 -> 3603 bytes .../springmagic/icons/ctrl_bind.png | Bin 0 -> 4107 bytes .../springmagic/icons/donut.png | Bin 0 -> 1098 bytes .../springmagic/icons/english.png | Bin 0 -> 4265 bytes .../springmagic/icons/info.png | Bin 0 -> 3567 bytes .../springmagic/icons/japanese.png | Bin 0 -> 16328 bytes .../springmagic/icons/language.png | Bin 0 -> 4366 bytes .../springmagic/icons/linkedin.png | Bin 0 -> 5312 bytes .../springmagic/icons/paypal.png | Bin 0 -> 17632 bytes .../springmagic/icons/redo.png | Bin 0 -> 4256 bytes .../springmagic/icons/removeCapsule.png | Bin 0 -> 16499 bytes .../springmagic/icons/spring.png | Bin 0 -> 1277 bytes .../springmagic/icons/update.png | Bin 0 -> 4462 bytes .../springmagic/icons/vimeo.png | Bin 0 -> 20737 bytes .../springmagic/icons/wechat_pay.png | Bin 0 -> 30092 bytes .../springmagic/icons/weightBone.png | Bin 0 -> 2581 bytes .../springmagic/icons/wind.png | Bin 0 -> 4543 bytes .../springmagic/icons/youtube.png | Bin 0 -> 18445 bytes .../animation_tools/springmagic/main.py | 13 + .../animation_tools/springmagic/mkDevTools.py | 36 + .../springmagic/springMagic.py | 28 + .../springmagic/springMagic.ui | 1664 +++++++++++++++ .../springmagic/springMagic_chn.ui | 1821 +++++++++++++++++ .../springmagic/springMagic_eng.ui | 1664 +++++++++++++++ .../springmagic/springMagic_jpn.ui | 1760 ++++++++++++++++ .../animation_tools/springmagic/springMath.py | 291 +++ .../scripts/animation_tools/springmagic/ui.py | 460 +++++ .../animation_tools/springmagic/utility.py | 56 + .../animation_tools/springmagic/安装说明.txt | 13 + .../modeling_tools/ModIt/ModIt_Global.py | 17 +- .../ModIt/Preferences/MultiSize.json | 2 +- .../ModIt/Preferences/settingsFile.ini | 2 +- 2024/scripts/modeling_tools/__init__.py | 3 +- .../modeling_tools/creaseplus/CreasePlus.mel | 1153 +++++++++++ .../creaseplus/CreasePlus_Doc.png | Bin 0 -> 486881 bytes .../creaseplus/CreasePlus_Extension1.mel | 452 ++++ .../modeling_tools/creaseplus/__init__.py | 31 + .../creaseplus/cp_(read)commands.txt | 46 + .../creaseplus/icons/cp_bevel.png | Bin 0 -> 15616 bytes .../creaseplus/icons/cp_bool.png | Bin 0 -> 15692 bytes .../creaseplus/icons/cp_curve_attach.png | Bin 0 -> 15775 bytes .../creaseplus/icons/cp_curve_bevel.png | Bin 0 -> 15607 bytes .../creaseplus/icons/cp_curve_bool.png | Bin 0 -> 15692 bytes .../creaseplus/icons/cp_curve_close.png | Bin 0 -> 15924 bytes .../creaseplus/icons/cp_curve_draw.png | Bin 0 -> 15695 bytes .../creaseplus/icons/cp_eye.png | Bin 0 -> 15374 bytes .../creaseplus/icons/cp_goz.png | Bin 0 -> 15930 bytes .../creaseplus/icons/cp_hard_display.png | Bin 0 -> 15876 bytes .../creaseplus/icons/cp_keep_bool.png | Bin 0 -> 15612 bytes .../creaseplus/icons/cp_mesh_slicer.png | Bin 0 -> 15745 bytes .../creaseplus/icons/cp_mirror.png | Bin 0 -> 15819 bytes .../creaseplus/icons/cp_multiply_curve.png | Bin 0 -> 15717 bytes .../creaseplus/icons/cp_panelbool.png | Bin 0 -> 15783 bytes .../creaseplus/icons/cp_quicksmooth.png | Bin 0 -> 15913 bytes .../creaseplus/icons/cp_sel_hard.png | Bin 0 -> 15657 bytes .../modeling_tools/creaseplus/icons/cp_ss.png | Bin 0 -> 15952 bytes .../creaseplus/icons/sp_crease.png | Bin 0 -> 15956 bytes .../creaseplus/icons/sp_crease_editor.png | Bin 0 -> 15894 bytes .../creaseplus/icons/sp_nocrease.png | Bin 0 -> 15632 bytes .../creaseplus/icons/sp_physical_crease.png | Bin 0 -> 15763 bytes .../creaseplus/icons/sp_smooth.png | Bin 0 -> 15626 bytes .../creaseplus/icons/sp_weight_tool.png | Bin 0 -> 15395 bytes 2024/scripts/userSetup.py | 2 + 2024/shelves/shelf_Nexus_Animation.mel | 35 + 2024/shelves/shelf_Nexus_Modeling.mel | 191 +- 2025/icons/QuadRemesher.png | Bin 0 -> 3297 bytes 2025/icons/creaseplus.png | Bin 0 -> 12964 bytes 2025/icons/springmagic.png | Bin 0 -> 11579 bytes 2025/scripts/__init__.py | 2 + .../springmagic/HowToInstall.txt | 8 + .../springmagic/UtilityFunctions.txt | 57 + .../animation_tools/springmagic/__init__.py | 12 + .../animation_tools/springmagic/core.py | 976 +++++++++ .../animation_tools/springmagic/decorators.py | 121 ++ .../animation_tools/springmagic/history.txt | 75 + .../springmagic/icons/China Flag.png | Bin 0 -> 2212 bytes .../springmagic/icons/Shelf.png | Bin 0 -> 5302 bytes .../springmagic/icons/Title.png | Bin 0 -> 4390 bytes .../springmagic/icons/addCapsule.png | Bin 0 -> 16526 bytes .../springmagic/icons/addPlane.png | Bin 0 -> 18787 bytes .../springmagic/icons/ali_pay.png | Bin 0 -> 31888 bytes .../springmagic/icons/bilibili.png | Bin 0 -> 22210 bytes .../springmagic/icons/bitcoin.png | Bin 0 -> 20565 bytes .../springmagic/icons/clearCapsule.png | Bin 0 -> 4732 bytes .../springmagic/icons/ctrl_bake.png | Bin 0 -> 3603 bytes .../springmagic/icons/ctrl_bind.png | Bin 0 -> 4107 bytes .../springmagic/icons/donut.png | Bin 0 -> 1098 bytes .../springmagic/icons/english.png | Bin 0 -> 4265 bytes .../springmagic/icons/info.png | Bin 0 -> 3567 bytes .../springmagic/icons/japanese.png | Bin 0 -> 16328 bytes .../springmagic/icons/language.png | Bin 0 -> 4366 bytes .../springmagic/icons/linkedin.png | Bin 0 -> 5312 bytes .../springmagic/icons/paypal.png | Bin 0 -> 17632 bytes .../springmagic/icons/redo.png | Bin 0 -> 4256 bytes .../springmagic/icons/removeCapsule.png | Bin 0 -> 16499 bytes .../springmagic/icons/spring.png | Bin 0 -> 1277 bytes .../springmagic/icons/update.png | Bin 0 -> 4462 bytes .../springmagic/icons/vimeo.png | Bin 0 -> 20737 bytes .../springmagic/icons/wechat_pay.png | Bin 0 -> 30092 bytes .../springmagic/icons/weightBone.png | Bin 0 -> 2581 bytes .../springmagic/icons/wind.png | Bin 0 -> 4543 bytes .../springmagic/icons/youtube.png | Bin 0 -> 18445 bytes .../animation_tools/springmagic/main.py | 13 + .../animation_tools/springmagic/mkDevTools.py | 36 + .../springmagic/springMagic.py | 28 + .../springmagic/springMagic.ui | 1664 +++++++++++++++ .../springmagic/springMagic_chn.ui | 1821 +++++++++++++++++ .../springmagic/springMagic_eng.ui | 1664 +++++++++++++++ .../springmagic/springMagic_jpn.ui | 1760 ++++++++++++++++ .../animation_tools/springmagic/springMath.py | 291 +++ .../scripts/animation_tools/springmagic/ui.py | 460 +++++ .../animation_tools/springmagic/utility.py | 56 + .../animation_tools/springmagic/安装说明.txt | 13 + .../modeling_tools/ModIt/ModIt_Global.py | 45 +- .../ModIt/Preferences/TabOpen.json | 2 +- .../ModIt/Preferences/settingsFile.ini | 2 +- 2025/scripts/modeling_tools/__init__.py | 3 +- .../modeling_tools/creaseplus/CreasePlus.mel | 1153 +++++++++++ .../creaseplus/CreasePlus_Doc.png | Bin 0 -> 486881 bytes .../creaseplus/CreasePlus_Extension1.mel | 452 ++++ .../modeling_tools/creaseplus/__init__.py | 31 + .../creaseplus/cp_(read)commands.txt | 46 + .../creaseplus/icons/cp_bevel.png | Bin 0 -> 15616 bytes .../creaseplus/icons/cp_bool.png | Bin 0 -> 15692 bytes .../creaseplus/icons/cp_curve_attach.png | Bin 0 -> 15775 bytes .../creaseplus/icons/cp_curve_bevel.png | Bin 0 -> 15607 bytes .../creaseplus/icons/cp_curve_bool.png | Bin 0 -> 15692 bytes .../creaseplus/icons/cp_curve_close.png | Bin 0 -> 15924 bytes .../creaseplus/icons/cp_curve_draw.png | Bin 0 -> 15695 bytes .../creaseplus/icons/cp_eye.png | Bin 0 -> 15374 bytes .../creaseplus/icons/cp_goz.png | Bin 0 -> 15930 bytes .../creaseplus/icons/cp_hard_display.png | Bin 0 -> 15876 bytes .../creaseplus/icons/cp_keep_bool.png | Bin 0 -> 15612 bytes .../creaseplus/icons/cp_mesh_slicer.png | Bin 0 -> 15745 bytes .../creaseplus/icons/cp_mirror.png | Bin 0 -> 15819 bytes .../creaseplus/icons/cp_multiply_curve.png | Bin 0 -> 15717 bytes .../creaseplus/icons/cp_panelbool.png | Bin 0 -> 15783 bytes .../creaseplus/icons/cp_quicksmooth.png | Bin 0 -> 15913 bytes .../creaseplus/icons/cp_sel_hard.png | Bin 0 -> 15657 bytes .../modeling_tools/creaseplus/icons/cp_ss.png | Bin 0 -> 15952 bytes .../creaseplus/icons/sp_crease.png | Bin 0 -> 15956 bytes .../creaseplus/icons/sp_crease_editor.png | Bin 0 -> 15894 bytes .../creaseplus/icons/sp_nocrease.png | Bin 0 -> 15632 bytes .../creaseplus/icons/sp_physical_crease.png | Bin 0 -> 15763 bytes .../creaseplus/icons/sp_smooth.png | Bin 0 -> 15626 bytes .../creaseplus/icons/sp_weight_tool.png | Bin 0 -> 15395 bytes .../gs_curvetools/core/tooltips.md | 967 +++++++++ 2025/scripts/userSetup.py | 5 +- 2025/shelves/shelf_Nexus_Animation.mel | 35 + 2025/shelves/shelf_Nexus_DevTools.mel | 2 +- 2025/shelves/shelf_Nexus_Modeling.mel | 191 +- CleanCache.bat | 53 + modules/QuadRemesher.mod | 12 +- plug-ins/QuadRemesher/QuadRemesher.mod | 41 - .../plug-ins/QuadRemesherPlugIn.py | 16 +- .../shelves/QuadRemesher_shelf.mel | 2 +- plug-ins/QuadRemesher/安装方法.txt | 12 - 259 files changed, 33763 insertions(+), 348 deletions(-) create mode 100644 2023/icons/QuadRemesher.png create mode 100644 2023/icons/creaseplus.png create mode 100644 2023/icons/springmagic.png create mode 100644 2023/scripts/__init__.py create mode 100644 2023/scripts/animation_tools/springmagic/HowToInstall.txt create mode 100644 2023/scripts/animation_tools/springmagic/UtilityFunctions.txt create mode 100644 2023/scripts/animation_tools/springmagic/__init__.py create mode 100644 2023/scripts/animation_tools/springmagic/core.py create mode 100644 2023/scripts/animation_tools/springmagic/decorators.py create mode 100644 2023/scripts/animation_tools/springmagic/history.txt create mode 100644 2023/scripts/animation_tools/springmagic/icons/China Flag.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/Shelf.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/Title.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/addCapsule.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/addPlane.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/bilibili.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/bitcoin.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/clearCapsule.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/ctrl_bake.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/ctrl_bind.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/donut.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/english.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/info.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/japanese.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/language.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/linkedin.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/paypal.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/redo.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/removeCapsule.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/spring.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/update.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/vimeo.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/weightBone.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/wind.png create mode 100644 2023/scripts/animation_tools/springmagic/icons/youtube.png create mode 100644 2023/scripts/animation_tools/springmagic/main.py create mode 100644 2023/scripts/animation_tools/springmagic/mkDevTools.py create mode 100644 2023/scripts/animation_tools/springmagic/springMagic.py create mode 100644 2023/scripts/animation_tools/springmagic/springMagic.ui create mode 100644 2023/scripts/animation_tools/springmagic/springMagic_chn.ui create mode 100644 2023/scripts/animation_tools/springmagic/springMagic_eng.ui create mode 100644 2023/scripts/animation_tools/springmagic/springMagic_jpn.ui create mode 100644 2023/scripts/animation_tools/springmagic/springMath.py create mode 100644 2023/scripts/animation_tools/springmagic/ui.py create mode 100644 2023/scripts/animation_tools/springmagic/utility.py create mode 100644 2023/scripts/animation_tools/springmagic/安装说明.txt create mode 100644 2023/scripts/modeling_tools/creaseplus/CreasePlus.mel create mode 100644 2023/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png create mode 100644 2023/scripts/modeling_tools/creaseplus/CreasePlus_Extension1.mel create mode 100644 2023/scripts/modeling_tools/creaseplus/__init__.py create mode 100644 2023/scripts/modeling_tools/creaseplus/cp_(read)commands.txt create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_bevel.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_bool.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_curve_attach.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_curve_bevel.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_curve_close.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_eye.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_goz.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_keep_bool.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_mirror.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_quicksmooth.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/cp_ss.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/sp_crease.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/sp_crease_editor.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/sp_smooth.png create mode 100644 2023/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png create mode 100644 2024/icons/QuadRemesher.png create mode 100644 2024/icons/creaseplus.png create mode 100644 2024/icons/springmagic.png create mode 100644 2024/scripts/__init__.py create mode 100644 2024/scripts/animation_tools/springmagic/HowToInstall.txt create mode 100644 2024/scripts/animation_tools/springmagic/UtilityFunctions.txt create mode 100644 2024/scripts/animation_tools/springmagic/__init__.py create mode 100644 2024/scripts/animation_tools/springmagic/core.py create mode 100644 2024/scripts/animation_tools/springmagic/decorators.py create mode 100644 2024/scripts/animation_tools/springmagic/history.txt create mode 100644 2024/scripts/animation_tools/springmagic/icons/China Flag.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/Shelf.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/Title.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/addCapsule.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/addPlane.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/ali_pay.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/bilibili.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/bitcoin.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/clearCapsule.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/ctrl_bake.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/ctrl_bind.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/donut.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/english.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/info.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/japanese.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/language.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/linkedin.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/paypal.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/redo.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/removeCapsule.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/spring.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/update.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/vimeo.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/wechat_pay.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/weightBone.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/wind.png create mode 100644 2024/scripts/animation_tools/springmagic/icons/youtube.png create mode 100644 2024/scripts/animation_tools/springmagic/main.py create mode 100644 2024/scripts/animation_tools/springmagic/mkDevTools.py create mode 100644 2024/scripts/animation_tools/springmagic/springMagic.py create mode 100644 2024/scripts/animation_tools/springmagic/springMagic.ui create mode 100644 2024/scripts/animation_tools/springmagic/springMagic_chn.ui create mode 100644 2024/scripts/animation_tools/springmagic/springMagic_eng.ui create mode 100644 2024/scripts/animation_tools/springmagic/springMagic_jpn.ui create mode 100644 2024/scripts/animation_tools/springmagic/springMath.py create mode 100644 2024/scripts/animation_tools/springmagic/ui.py create mode 100644 2024/scripts/animation_tools/springmagic/utility.py create mode 100644 2024/scripts/animation_tools/springmagic/安装说明.txt create mode 100644 2024/scripts/modeling_tools/creaseplus/CreasePlus.mel create mode 100644 2024/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png create mode 100644 2024/scripts/modeling_tools/creaseplus/CreasePlus_Extension1.mel create mode 100644 2024/scripts/modeling_tools/creaseplus/__init__.py create mode 100644 2024/scripts/modeling_tools/creaseplus/cp_(read)commands.txt create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_bevel.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_bool.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_curve_attach.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_curve_bevel.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_curve_close.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_eye.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_goz.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_keep_bool.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_mirror.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_quicksmooth.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/cp_ss.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/sp_crease.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/sp_crease_editor.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/sp_smooth.png create mode 100644 2024/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png create mode 100644 2025/icons/QuadRemesher.png create mode 100644 2025/icons/creaseplus.png create mode 100644 2025/icons/springmagic.png create mode 100644 2025/scripts/__init__.py create mode 100644 2025/scripts/animation_tools/springmagic/HowToInstall.txt create mode 100644 2025/scripts/animation_tools/springmagic/UtilityFunctions.txt create mode 100644 2025/scripts/animation_tools/springmagic/__init__.py create mode 100644 2025/scripts/animation_tools/springmagic/core.py create mode 100644 2025/scripts/animation_tools/springmagic/decorators.py create mode 100644 2025/scripts/animation_tools/springmagic/history.txt create mode 100644 2025/scripts/animation_tools/springmagic/icons/China Flag.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/Shelf.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/Title.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/addCapsule.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/addPlane.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/ali_pay.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/bilibili.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/bitcoin.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/clearCapsule.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/ctrl_bake.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/ctrl_bind.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/donut.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/english.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/info.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/japanese.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/language.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/linkedin.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/paypal.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/redo.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/removeCapsule.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/spring.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/update.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/vimeo.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/wechat_pay.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/weightBone.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/wind.png create mode 100644 2025/scripts/animation_tools/springmagic/icons/youtube.png create mode 100644 2025/scripts/animation_tools/springmagic/main.py create mode 100644 2025/scripts/animation_tools/springmagic/mkDevTools.py create mode 100644 2025/scripts/animation_tools/springmagic/springMagic.py create mode 100644 2025/scripts/animation_tools/springmagic/springMagic.ui create mode 100644 2025/scripts/animation_tools/springmagic/springMagic_chn.ui create mode 100644 2025/scripts/animation_tools/springmagic/springMagic_eng.ui create mode 100644 2025/scripts/animation_tools/springmagic/springMagic_jpn.ui create mode 100644 2025/scripts/animation_tools/springmagic/springMath.py create mode 100644 2025/scripts/animation_tools/springmagic/ui.py create mode 100644 2025/scripts/animation_tools/springmagic/utility.py create mode 100644 2025/scripts/animation_tools/springmagic/安装说明.txt create mode 100644 2025/scripts/modeling_tools/creaseplus/CreasePlus.mel create mode 100644 2025/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png create mode 100644 2025/scripts/modeling_tools/creaseplus/CreasePlus_Extension1.mel create mode 100644 2025/scripts/modeling_tools/creaseplus/__init__.py create mode 100644 2025/scripts/modeling_tools/creaseplus/cp_(read)commands.txt create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_bevel.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_bool.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_curve_attach.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_curve_bevel.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_curve_close.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_eye.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_goz.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_keep_bool.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_mirror.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_quicksmooth.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/cp_ss.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/sp_crease.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/sp_crease_editor.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/sp_smooth.png create mode 100644 2025/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png create mode 100644 2025/scripts/modeling_tools/gs_curvetools/core/tooltips.md create mode 100644 CleanCache.bat delete mode 100644 plug-ins/QuadRemesher/QuadRemesher.mod delete mode 100644 plug-ins/QuadRemesher/安装方法.txt diff --git a/2023/icons/QuadRemesher.png b/2023/icons/QuadRemesher.png new file mode 100644 index 0000000000000000000000000000000000000000..70ade3169064c28bdf972b488134fcc9bdc1c08e GIT binary patch literal 3297 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 literal 0 HcmV?d00001 diff --git a/2023/icons/springmagic.png b/2023/icons/springmagic.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b647928c924a505be59dc56815957650e1b32c GIT binary patch literal 11579 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/__init__.py b/2023/scripts/__init__.py new file mode 100644 index 0000000..a5682fb --- /dev/null +++ b/2023/scripts/__init__.py @@ -0,0 +1,2 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- \ No newline at end of file diff --git a/2023/scripts/animation_tools/springmagic/HowToInstall.txt b/2023/scripts/animation_tools/springmagic/HowToInstall.txt new file mode 100644 index 0000000..5333dd4 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/HowToInstall.txt @@ -0,0 +1,8 @@ +1. Unzip all files + +2. copy "springmagic" folder into Maya scripts path, i.e. + "C:\Users\YOUR_USER_NAME\Documents\maya\scripts" + +3. Start Maya and run command below in command bar with Python way + import springmagic + springmagic.main() \ No newline at end of file diff --git a/2023/scripts/animation_tools/springmagic/UtilityFunctions.txt b/2023/scripts/animation_tools/springmagic/UtilityFunctions.txt new file mode 100644 index 0000000..4bc7c22 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/UtilityFunctions.txt @@ -0,0 +1,57 @@ +############################################ +# Utility Functions +############################################ + +# to get object parrent +# parent = obj.getParent() + +# to get all parents of a joint +# parentList = joint.getAllParents() + +# to get root bone +# rootBone = joint.root() + +# to get object all children +# children = pm.listRelatives(obj, allDescendents = 1) + +# to make sure the selection is a mesh +# pm.nodeType(pm.ls(sl=True, type='transform')[0].getShape()) == 'mesh' + +# to get vertex in selection as flatten +# pm.ls(sl=True, type='float3', flatten=True)[0] + +# to get skin cluster +# pm.listHistory(pm.ls(sl=True), type='skinCluster')[0] + +# to get all influcent bone of a skin cluster +# obj.getInfluence() + +# About path module + +# from pymel.util.path import path +# filePath = 'c:/temp/test/myTestFile.txt' +# fpPathObj = path(filePath) +# fpPathObj +# # Result: path('c:/temp/test/myTestFile.txt') # +# fpPathObj.basename() +# # Result: 'myTestFile.txt' # +# # .name is a property which returns the same +# fpPathObj.name +# # Result: 'myTestFile.txt' # +# # namebase returns fileName only w/o extension +# fpPathObj.namebase +# # Result: 'myTestFile' # +# # return directory above file +# fpPathObj.parent +# # Result: path('c:/temp/test') # +# # check extension +# fpPathObj.endswith('txt') +# # Result: True # +# # check existance +# fpPathObj.exists() +# # Result: True # +# # check to see if folder type +# fpPathObj.parent.isdir() +# # Result: True # +# fpPathObj.parent.parent.name +# # Result: 'temp' # \ No newline at end of file diff --git a/2023/scripts/animation_tools/springmagic/__init__.py b/2023/scripts/animation_tools/springmagic/__init__.py new file mode 100644 index 0000000..2c60697 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/__init__.py @@ -0,0 +1,12 @@ +__version__ = "3.5a" + +from springmagic.main import main + + +def version(): + """ + Return the current version of the Spring Magic + + :rtype: str + """ + return __version__ diff --git a/2023/scripts/animation_tools/springmagic/core.py b/2023/scripts/animation_tools/springmagic/core.py new file mode 100644 index 0000000..792a852 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/core.py @@ -0,0 +1,976 @@ +# - * - coding: utf - 8 - * - +# PEP8 formatting + +##################################################################################### +# +# Spring Magic for Maya +# +# Calculate bone chain animation by settings, support collisions and wind force +# Can work with rigging controller as well +# +# Need pringMagic.ui file to work with +# This script need also icon file support, which should be put in same folder +# +# feel free to mail me redtank@outlook.com for any bug or issue +# +# Yanbin Bai +# 2021.02 +# +##################################################################################### + +import math +import logging +# import copy + +import pymel.core as pm +import pymel.core.datatypes as dt +import maya.cmds as cmds + +from . import decorators +from . import springMath + +from .utility import * + +from itertools import cycle +from itertools import chain +from weakref import WeakValueDictionary + +from collections import OrderedDict + +################################### +# spring magic +#################################### + +kWindObjectName = 'spring_wind' +kSpringProxySuffix = '_SpringProxy' +kCollisionPlaneSuffix = '_SpringColPlane' +kCapsuleNameSuffix = '_collision_capsule' +kNullSuffix = '_SpringNull' + + +# kTwistNullSuffix = '_SpringTwistNull' + + +class Spring: + + def __init__(self, ratio=0.5, twistRatio=0.0, tension=0.0, extend=0.0, inertia=0.0): + self.ratio = ratio + self.twist_ratio = twistRatio + self.tension = tension + self.extend = extend + self.inertia = inertia + + +class SpringMagic: + + def __init__(self, startFrame, endFrame, subDiv=1.0, isLoop=False, isPoseMatch=False, isCollision=False, + isFastMove=False, wipeSubframe=True): + self.start_frame = startFrame + self.end_frame = endFrame + + self.sub_div = subDiv + self.is_loop = isLoop + self.is_pose_match = isPoseMatch + self.is_fast_move = isFastMove + self.wipe_subframe = wipeSubframe + + self.is_collision = isCollision + self.collision_planes_list = None + + self.wind = None + + +class SpringData: + cur_position_locator = None + prev_position_locator = None + prev_grand_child_position_locator = None + + _instances = WeakValueDictionary() + + @property + def Count(self): + return len(self._instances) + + def __init__(self, springMagic, spring, transform, child, grand_child, grand_parent): + # self.current_child_position + + self._instances[id(self)] = self + + self.springMagic = springMagic + self.spring = spring + + self.parent = transform + self.child = child + self.grand_child = grand_child + self.grand_parent = grand_parent + + self.child_position = get_translation(child) + self.grand_child_position = get_translation(grand_child) if grand_child else None + + self.previous_child_position = self.child_position + + self.rotation = get_rotation(transform) + self.up_vector = get_matrix(transform)[4:7] + + transform_pos = get_translation(transform) + self.bone_length = springMath.distance(transform_pos, self.child_position) + + self.has_child_collide = False + self.has_plane_collide = False + + # create temporary locators use for aim constraint + if not SpringData.cur_position_locator: + SpringData.cur_position_locator = pm.spaceLocator(name='cur_position_locator') + + if not SpringData.prev_position_locator: + SpringData.prev_position_locator = pm.spaceLocator(name='prev_position_locator') + + if not SpringData.prev_grand_child_position_locator: + SpringData.prev_grand_child_position_locator = pm.spaceLocator(name='prev_grand_child_position_locator') + + # Weight attribute to de/activate the aim constraint in pose match mode + self.pairblend_weight_attribute = None + self.aim_constraint = None + + self.__create_child_proxy() + self.__prepare_animation_key() + self.__create_aim_constraint() + self.__init_pairblend_weight() + + def __del__(self): + + if self.Count == 0: + # print('Last Counter object deleted') + + # delete temporary locators (useful, it's delete constraints at the same time) + pm.delete(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator) + + SpringData.cur_position_locator = None + SpringData.prev_position_locator = None + SpringData.prev_grand_child_position_locator = None + + # remove all spring nulls, add recursive incase name spaces + # pm.delete(pm.ls('*' + kNullSuffix + '*', recursive=1)) + else: + # print(self.Count, 'Counter objects remaining') + pass + + if self.child_proxy: + # remove spring nulls, add recursive incase name spaces + pm.delete(pm.ls('*' + self.child_proxy + '*', recursive=1)) + + def update(self, has_collision, has_hit_plane, child_pos_corrected): + # Update current transform with the new values + self.child_position = get_translation(self.child) + self.grand_child_position = get_translation(self.grand_child) if self.grand_child else None + self.previous_child_position = child_pos_corrected + + self.rotation = get_rotation(self.parent) + self.up_vector = get_matrix(self.parent)[4:7] + + self.has_child_collide = has_collision + self.has_plane_collide = has_hit_plane + + def __create_child_proxy(self): + # create a null at child pos, then parent to obj parent for calculation + child_proxy_locator_name = self.parent.name() + kNullSuffix + child_proxy_list = pm.ls(child_proxy_locator_name) + + if not child_proxy_list: + self.child_proxy = pm.spaceLocator(name=child_proxy_locator_name) + else: + self.child_proxy = child_proxy_list[0] + + self.child_proxy.getShape().setAttr('visibility', False) + + pm.parent(self.child_proxy, self.parent.getParent()) + # pm.parent(child_proxy, self.grand_parent) + + if not self.springMagic.is_pose_match: + self.child_proxy.setTranslation(self.child.getTranslation(space='world'), space='world') + self.child_proxy.setRotation(self.child.getRotation(space='world'), space='world') + + def __prepare_animation_key(self): + if not self.springMagic.is_pose_match: + # remove exists keys + pm.cutKey(self.parent, time=(self.springMagic.start_frame, self.springMagic.end_frame + 0.99999)) + pm.cutKey(self.child, time=(self.springMagic.start_frame, self.springMagic.end_frame + 0.99999)) + + # set key + pm.setKeyframe(self.parent, attribute='rotate') + + if self.spring.extend != 0.0: + pm.setKeyframe(self.child, attribute='tx') + + def __create_aim_constraint(self): + # Create a constraint per transform to speed up computation, not active yet (weight=0) + self.aim_constraint = pm.aimConstraint(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator, self.parent, + aimVector=[1, 0, 0], upVector=[0, 1, 0], maintainOffset=False, weight=0) + + def __init_pairblend_weight(self): + # if transform rotation has no animation, set a key at start frame to force the creation of a pairblend when the aim constraint is created + for rotation_input in ['rx', 'ry', 'rz']: + rotation_connection = pm.listConnections(self.parent + '.' + rotation_input, d=False, s=True) + + if not rotation_connection: + pm.setKeyframe(self.parent, attribute=rotation_input) + + pairblends = pm.listConnections(self.parent, type="pairBlend", destination=True, skipConversionNodes=True) + + # Find the pairblend connected to the aim constraint + for pairblend in pairblends: + + connected_constraint_list = cmds.listConnections(pairblend.name(), type='constraint', destination=False) + + if self.aim_constraint.name() in connected_constraint_list: + + # Get pairblend weight connected attribute + # return [u'joint2.blendAim1')] + weight_attribute_list = cmds.listConnections(pairblend + '.weight', d=False, s=True, p=True) + + if weight_attribute_list: + self.pairblend_weight_attribute = weight_attribute_list[0] + + def set_pairblend_weight(self, blend_value): + if self.pairblend_weight_attribute: + pm.setAttr(self.pairblend_weight_attribute, blend_value) + + def keyframe_child_proxy(self): + + if self.child_proxy: + # Deactivate pairblend weight + # Aim constraint weight set to 0 is not enough, it paratizes the process + self.set_pairblend_weight(0.0) + + self.child_proxy.setTranslation(self.child.getTranslation(space='world'), space='world') + pm.setKeyframe(self.child_proxy, attribute='translate') + self.child_proxy.setRotation(self.child.getRotation(space='world'), space='world') + pm.setKeyframe(self.child_proxy, attribute='rotate') + + self.set_pairblend_weight(1.0) + + def apply_inertia(self, currentChildPosition): + ratio = self.spring.ratio / self.springMagic.sub_div + inertia_offset = [0.0, 0.0, 0.0] + + if self.spring.inertia > 0.0: + bone_ref_loc_offset_dir = currentChildPosition - self.child_position + bone_ref_loc_offset_distance = ( + (bone_ref_loc_offset_dir) * (1 - ratio) * (1 - self.spring.inertia)).length() + + inertia_offset = bone_ref_loc_offset_dir.normal() * ( + bone_ref_loc_offset_distance / self.springMagic.sub_div) + + # apply mass + force_direction = self.child_position - self.previous_child_position + force_distance = force_direction.length() * self.spring.inertia + + # offset position + inertia_offset += force_direction.normal() * (force_distance / self.springMagic.sub_div) + + return inertia_offset + + def apply_wind(self, frame): + wind_offset = [0.0, 0.0, 0.0] + + if self.springMagic.wind: + wind_max_force = self.springMagic.wind.getAttr('MaxForce') + wind_min_force = self.springMagic.wind.getAttr('MinForce') + wind_frequency = self.springMagic.wind.getAttr('Frequency') + + mid_force = (wind_max_force + wind_min_force) / 2 + + # get source x - axis direction in world space + wind_direction = get_matrix(self.springMagic.wind)[:3] + # sDirection = sObj.getMatrix()[0][:3] + wind_direction = dt.Vector(wind_direction[0], wind_direction[1], wind_direction[2]).normal() + wind_distance = math.sin(frame * wind_frequency) * (wind_max_force - wind_min_force) + mid_force + + # offset position + wind_offset = wind_direction.normal() * wind_distance + + return wind_offset + + def detect_collision(self, new_obj_pos, new_child_pos, capsule_list): + col_pre = col_cur = None + + child_pos_corrected = self.child_position + + if self.springMagic.is_collision and capsule_list: + + if preCheckCollision(new_obj_pos, self.bone_length, capsule_list): + + # check collision from previous pos to cur pos + col_pre, col_body_pre, hitCylinder_pre = springMath.checkCollision(new_child_pos, self.child_position, + capsule_list, True) + + # check collision from cur pos to previous pos + col_cur, col_body_cur, hitCylinder_cur = springMath.checkCollision(new_child_pos, self.child_position, + capsule_list, False) + + if col_pre and (col_cur is None): + new_child_pos = col_pre + elif col_cur and (col_pre is None): + child_pos_corrected = col_cur + elif col_pre and col_cur: + + # move cur child pose to closest out point if both pre and cur pos are already inside of col body + # if distance(col_pre, new_child_pos) < distance(col_cur, new_child_pos): + mid_point = (self.child_position + new_child_pos) / 2 + + if springMath.distance(col_pre, mid_point) < springMath.distance(col_cur, mid_point): + new_child_pos = col_pre + else: + new_child_pos = col_cur + + if self.springMagic.is_fast_move: + child_pos_corrected = new_child_pos + + # # draw debug locator + # if col_pre and col_cur: + # locator1 = pm.spaceLocator(name=obj.name() + '_col_pre_locator_' + str(i)) + # locator1.setTranslation(col_pre) + # locator1 = pm.spaceLocator(name=obj.name() + '_col_cur_locator_' + str(i)) + # locator1.setTranslation(col_cur) + + return True if col_pre or col_cur else False, new_child_pos, child_pos_corrected + + def detect_plane_hit(self, new_obj_pos, new_child_pos, grand_parent_has_plane_collision): + has_hit_plane = False + + if self.springMagic.is_collision and self.springMagic.collision_planes_list[0]: + collision_plane = self.springMagic.collision_planes_list[0] + has_plane_collision = springMath.checkPlaneCollision(new_obj_pos, new_child_pos, collision_plane) + + if has_plane_collision or grand_parent_has_plane_collision: + new_child_pos = repeatMoveToPlane(self.parent, new_child_pos, self.child, collision_plane, 3) + has_hit_plane = True + + return has_hit_plane, new_child_pos + + # calculate upvector by interpolation y axis for twist + def compute_up_vector(self): + twist_ratio = self.spring.twist_ratio / self.springMagic.sub_div + + cur_obj_yAxis = get_matrix(self.child_proxy)[4:7] + prev_up_vector = dt.Vector(self.up_vector[0], self.up_vector[1], self.up_vector[2]).normal() + cur_up_vector = dt.Vector(cur_obj_yAxis[0], cur_obj_yAxis[1], cur_obj_yAxis[2]).normal() + + up_vector = (prev_up_vector * (1 - twist_ratio)) + (cur_up_vector * twist_ratio) + + return up_vector + + def aim_by_ratio(self, upVector, newChildPos, childPosCorrected): + ratio = self.spring.ratio / self.springMagic.sub_div + tension = self.spring.tension / (1.0 / (springMath.sigmoid(1 - self.springMagic.sub_div) + 0.5)) + + # print("obj: " + str(self.parent.name())) + # print("newChildPos: " + str(newChildPos)) + # print("childPosCorrected: " + str(childPosCorrected)) + # print("grand_child_position: " + str(self.grand_child_position)) + # print("upVector: " + str(upVector)) + # print("ratio: " + str(ratio)) + # print("tension: " + str(tension)) + + SpringData.cur_position_locator.setTranslation(newChildPos) + SpringData.prev_position_locator.setTranslation(childPosCorrected) + + pm.aimConstraint(self.parent, e=True, worldUpVector=upVector) + + pm.aimConstraint(SpringData.cur_position_locator, self.parent, e=True, w=ratio) + pm.aimConstraint(SpringData.prev_position_locator, self.parent, e=True, w=1 - ratio) + + if self.has_child_collide and self.grand_child_position and tension != 0: + SpringData.prev_grand_child_position_locator.setTranslation(self.grand_child_position) + pm.aimConstraint(SpringData.prev_grand_child_position_locator, self.parent, e=True, w=(1 - ratio) * tension) + + pm.setKeyframe(self.parent, attribute='rotate') + + pm.aimConstraint(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator, self.parent, e=True, w=0.0) + + def extend_bone(self, childPosCorrected): + if self.spring.extend != 0.0: + child_translation = self.child.getTranslation() + # get length between bone pos and child pos + x2 = (childPosCorrected - get_translation(self.parent)).length() + x3 = (self.bone_length * (1 - self.spring.extend)) + (x2 * self.spring.extend) + self.child.setTranslation([x3, child_translation[1], child_translation[2]]) + pm.setKeyframe(self.child, attribute='tx') + # else: + # self.child.setTranslation([self.bone_length, child_translation[1], child_translation[2]]) + + +def createCollisionPlane(): + # remove exist plane + collision_plane = get_node('*' + kCollisionPlaneSuffix + '*') + + if collision_plane: + pm.delete(collision_plane) + + collision_plane = pm.polyPlane(name="the" + kCollisionPlaneSuffix, sx=1, sy=1, w=10, h=10, ch=1)[0] + + # one side display + pm.setAttr(collision_plane.doubleSided, False) + + # lock scale + pm.setAttr(collision_plane.sx, lock=True) + pm.setAttr(collision_plane.sy, lock=True) + pm.setAttr(collision_plane.sz, lock=True) + + pm.select(collision_plane) + + +def removeBody(clear=False): + cylinder_list = getCapsule(clear) + + pm.delete(cylinder_list) + + collision_plane = get_node('*' + kCollisionPlaneSuffix + '*') + + if collision_plane: + pm.delete(collision_plane) + + +def addWindObj(): + windCone = pm.cone(name=kWindObjectName)[0] + + windCone.setScale([5, 5, 5]) + + pm.delete(windCone, constructionHistory=1) + + # add wind attr + pm.addAttr(windCone, longName='MaxForce', attributeType='float') + pm.setAttr(windCone.name() + '.MaxForce', 1, e=1, keyable=1) + pm.addAttr(windCone, longName='MinForce', attributeType='float') + pm.setAttr(windCone.name() + '.MinForce', 0.5, e=1, keyable=1) + pm.addAttr(windCone, longName='Frequency', attributeType='float') + pm.setAttr(windCone.name() + '.Frequency', 1, e=1, keyable=1) + # pm.addAttr(windCone, longName='Wave', attributeType='float') + # pm.setAttr(windCone.name() + '.Wave', 0.5, e=1, keyable=1) + + setWireShading(windCone, False) + + pm.makeIdentity(apply=True) + windCone.setRotation([0, 0, 90]) + + +def bindControls(linked_chains=False): + selected_ctrls = pm.ls(sl=True) + pm.select(clear=True) + + # The chains are linked, we can sort them + if linked_chains: + # Create list for every ctrls chains + # ie [[ctrl1, ctrl1.1, ctrl1.2], [ctrl2, ctrl2.1, ctrl2.2, ctrl2.3]] + all_ctrls_descendants_list = pm.listRelatives(selected_ctrls, allDescendents=True) + top_hierarchy_ctrls_list = [x for x in selected_ctrls if x not in all_ctrls_descendants_list] + + ctrls_chains_list = [[x] + [y for y in pm.listRelatives(x, allDescendents=True) if y in selected_ctrls][::-1] + for x in top_hierarchy_ctrls_list] + # No sorting possible because the controlers have no lineage + else: + ctrls_chains_list = [selected_ctrls] + + proxy_joint_chain_list = [] + + for ctrls_list in ctrls_chains_list: + + proxy_joint_list = [] + + for ctrl in ctrls_list: + # create proxy joint in ctrl world position + ctrl_position = pm.xform(ctrl, worldSpace=1, rp=1, q=1) + + proxyJoint = pm.joint(name=ctrl.name() + kSpringProxySuffix, position=ctrl_position, radius=0.2, roo='xyz') + proxy_joint_list.append(proxyJoint) + + for joint in proxy_joint_list: + # set joint orientation + pm.joint(joint, edit=1, orientJoint='xyz', zeroScaleOrient=True) + + # Straight bones alignment + joint.setRotation([0, 0, 0]) + joint.setAttr('rotateAxis', [0, 0, 0]) + joint.setAttr('jointOrient', [0, 0, 0]) + + # Free rotation (move rotation values to joint orient values) + # pm.makeIdentity(proxy_joint_list[idx], apply=True, t=False, r=True, s=False, pn=True) + + if proxy_joint_list: + # parent root proxy joint to control parent + pm.parent(proxy_joint_list[0], ctrls_list[0].getParent()) + + # Necessary to start a new joint chain + pm.select(clear=True) + + proxy_joint_chain_list += [proxy_joint_list] + + for idx, joint in enumerate(proxy_joint_list[:-1]): + # orient joint chain + cns = pm.aimConstraint(ctrls_list[idx + 1], proxy_joint_list[idx], aimVector=[1, 0, 0], upVector=[0, 0, 0], + worldUpVector=[0, 1, 0], skip='x') + pm.delete(cns) + + for idx, joint in enumerate(proxy_joint_list): + pm.parentConstraint(proxy_joint_list[idx], ctrls_list[idx], maintainOffset=True) + + pm.select(proxy_joint_chain_list) + + +def clearBind(startFrame, endFrame): + proxyJointLst = pm.ls(sl=True) + pm.select(d=True) + + ctrlList = [] + + for bone in proxyJointLst: + ctrl = pm.ls(bone.name().split(kSpringProxySuffix)[0])[0] + ctrlList.append(ctrl) + + if ctrlList: + pm.bakeResults(*ctrlList, t=(startFrame, endFrame)) + + pm.delete(proxyJointLst) + + +def bindPose(): + pm.runtime.GoToBindPose() + + +# Prepare all information to call SpringMagicMaya function +def startCompute(spring, springMagic, progression_callback=None): + autokeyframe_state = cmds.autoKeyframe(query=True, state=True) + cmds.autoKeyframe(state=False) + + # get selection obj + objs = pm.ls(sl=True) + + # check objects validity + for obj in objs: + # has duplicate name obj + nameCntErr = (len(pm.ls(obj.name())) > 1) + + # is a duplicate obj + nameValidErr = (obj.name().find('|') > 0) + + if nameCntErr or nameValidErr: + raise ValueError(obj.name() + ' has duplicate name object! Stopped!') + + obj_translation = obj.getTranslation() + + if (obj_translation[0] < 0 or abs(obj_translation[1]) > 0.001 or abs( + obj_translation[2]) > 0.001) and obj.getParent() and (obj.getParent() in objs): + pm.warning(obj.getParent().name() + "'s X axis not point to child! May get broken result!") + + # Search for collision objects + if springMagic.is_collision: + springMagic.collision_planes_list = [get_node('*' + kCollisionPlaneSuffix + '*')] + + # Search for a wind object + if pm.ls(kWindObjectName): + springMagic.wind = pm.ls(kWindObjectName)[0] + + SpringMagicMaya(objs, spring, springMagic, progression_callback) + + cmds.autoKeyframe(state=autokeyframe_state) + + +# @decorators.viewportOff +@decorators.gShowProgress(status="SpringMagic does his magic") +def SpringMagicMaya(objs, spring, springMagic, progression_callback=None): + # on each frame go through all objs and do: + # 1. make a vectorA from current obj position to previous child position + # 2. make a vectorB from current obj position to current child position + # 3. calculate the angle between two vectors + # 4. rotate the obj towards vectorA base on spring value + + start_frame = springMagic.start_frame + end_frame = springMagic.end_frame + sub_div = springMagic.sub_div + + # remove all spring nulls, add recursive incase name spaces + pm.delete(pm.ls('*' + kNullSuffix + '*', recursive=True)) + + # get all capsules in scene + capsule_list = getCapsule(True) if springMagic.is_collision else None + + if progression_callback: + progression_callback(0) + + # Save object previous frame information in a ordered dict + spring_data_dict = OrderedDict() + + # Initialize data on the first frame + pm.currentTime(start_frame, edit=True) + + # Create a list of objects chains + # ie [[nt.Joint(u'joint1'), nt.Joint(u'joint2'), nt.Joint(u'joint4')], [nt.Joint(u'joint7'), nt.Joint(u'joint8'), nt.Joint(u'joint10')]] + all_joints_descendants_list = pm.listRelatives(objs, allDescendents=True, type='transform') + top_hierarchy_joints_list = [x for x in objs if x not in all_joints_descendants_list] + + # transforms_chains_list = map(lambda x: [x] + [y for y in pm.listRelatives(x, allDescendents=True) if y in objs][::-1], top_hierarchy_joints_list) + + # Deal with the specific case of root bone with no parent. + # The root bone is considered the driver, so we remove it from the calculation. + transforms_chains_list = [ + ([x] if x.getParent() else []) + [y for y in pm.listRelatives(x, allDescendents=True) if y in objs][::-1] for x + in top_hierarchy_joints_list] + + # Remove empty lists + transforms_chains_list = [x for x in transforms_chains_list if x != []] + + # Create progression bar generator values + number_of_progession_step = 0 + + if springMagic.is_pose_match: + number_of_progession_step += end_frame - start_frame + 1 + + if springMagic.is_loop: + # Doesn't process the first frame on the first loop + number_of_progession_step += ((end_frame - start_frame) * 2 + 1) * sub_div + else: + # Doesn't process the first frame + number_of_progession_step += (end_frame - start_frame) * sub_div + + progression_increment = 100.0 / number_of_progession_step + progression_generator = frange(progression_increment, 100.0 + progression_increment, progression_increment) + + # Create spring data for each transforms at start frame + for transforms_chain in transforms_chains_list: + + if SpringMagicMaya.isInterrupted(): + break + + transforms_cycle = cycle(transforms_chain) + + # Prime the pump + parent = first_transform = next(transforms_cycle) + grand_parent = parent.getParent() + child = next(transforms_cycle) + grand_child = next(transforms_cycle) + + # skip end bone + for transform in transforms_chain[:-1]: + + if SpringMagicMaya.isInterrupted(): + break + + # End of cycle iteration + if grand_child == first_transform: + grand_child = None + + spring_data_dict[parent.name()] = SpringData(springMagic, spring, parent, child, grand_child, grand_parent) + + grand_parent, parent, child, grand_child = parent, child, grand_child, next(transforms_cycle) + + # Save joints position over timeline + # Parse timeline just one time + if springMagic.is_pose_match: + for frame in range(0, end_frame - start_frame + 1): + + if SpringMagicMaya.isInterrupted(): + break + + pm.currentTime(start_frame + frame, edit=True) + + for spring_data in list(spring_data_dict.values()): + + if not SpringMagicMaya.isInterrupted(): + spring_data.keyframe_child_proxy() + + progression = next(progression_generator) + progression = clamp(progression, 0, 100) + + if progression_callback: + progression_callback(progression) + + SpringMagicMaya.progress(progression) + + # Generate frame index + # Skip first frame on first calculation pass + frame_increment = 1.0 / sub_div + frame_generator = frange(frame_increment, end_frame - start_frame + frame_increment, frame_increment) + + # On second calculation pass compute first frame + if springMagic.is_loop: + frame_generator = chain(frame_generator, frange(0, end_frame - start_frame + frame_increment, frame_increment)) + + for frame in frame_generator: + + # print('Frame: ' + str(frame)) + + if SpringMagicMaya.isInterrupted(): + break + + pm.currentTime(start_frame + frame, edit=True) + + for previous_frame_spring_data in list(spring_data_dict.values()): + + if SpringMagicMaya.isInterrupted(): + break + + grand_parent_spring_data = None + if previous_frame_spring_data.grand_parent and previous_frame_spring_data.grand_parent.name() in list( + spring_data_dict.keys()): + grand_parent_spring_data = spring_data_dict[previous_frame_spring_data.grand_parent.name()] + + # get current position of parent and child + parent_pos = get_translation(previous_frame_spring_data.parent) + + # print("obj: " + str(previous_frame_spring_data.parent.name())) + + new_child_pos = get_translation(previous_frame_spring_data.child_proxy) + + # Apply inertia + new_child_pos += previous_frame_spring_data.apply_inertia(new_child_pos) + + # apply wind + new_child_pos += previous_frame_spring_data.apply_wind(start_frame + frame) + + # detect collision + has_collision, new_child_pos, child_pos_corrected = previous_frame_spring_data.detect_collision(parent_pos, + new_child_pos, + capsule_list) + + # detect plane collision + grand_parent_has_plane_collision = False + if grand_parent_spring_data: + grand_parent_has_plane_collision = grand_parent_spring_data.has_plane_collide + + has_hit_plane, new_child_pos = previous_frame_spring_data.detect_plane_hit(parent_pos, new_child_pos, + grand_parent_has_plane_collision) + + # calculate upvector by interpolation y axis for twist + up_vector = previous_frame_spring_data.compute_up_vector() + + # apply aim constraint to do actual rotation + previous_frame_spring_data.aim_by_ratio(up_vector, new_child_pos, child_pos_corrected) + + # Extend bone if needed (update child translation) + previous_frame_spring_data.extend_bone(child_pos_corrected) + + # Update current transform with the new values + previous_frame_spring_data.update(has_collision, has_hit_plane, child_pos_corrected) + + # Update the grand parent has_child_collide value + if grand_parent_spring_data: + grand_parent_spring_data.has_child_collide = has_collision + + progression = next(progression_generator) + progression = clamp(progression, 0, 100) + + if progression_callback: + progression_callback(progression) + + SpringMagicMaya.progress(progression) + + # bake result on frame + if springMagic.wipe_subframe and not SpringMagicMaya.isInterrupted(): + transform_to_bake_list = [spring_data.parent for spring_data in list(spring_data_dict.values())] + + # Deactivate all pairblend otherwise bake doesn't work with animation layers + for spring_data in list(spring_data_dict.values()): + spring_data.set_pairblend_weight(0.0) + + bakeAnim(transform_to_bake_list, start_frame, end_frame) + + +def bakeAnim(objList, startFrame, endFrame): + pm.bakeResults( + objList, + t=(startFrame, endFrame), + sampleBy=1, + disableImplicitControl=False, + preserveOutsideKeys=True, + sparseAnimCurveBake=False, + removeBakedAttributeFromLayer=False, + bakeOnOverrideLayer=False, + minimizeRotation=True, + shape=False, + simulation=False) + + +SM_boneTransformDict = {} + + +def copyBonePose(): + global SM_boneTransformDict + + for obj in pm.ls(sl=True): + SM_boneTransformDict[obj] = [obj.getTranslation(), obj.getRotation()] + + +def pasteBonePose(): + global SM_boneTransformDict + + for obj in pm.ls(sl=True): + if obj in list(SM_boneTransformDict.keys()): + logging.debug(SM_boneTransformDict[obj][0]) + + obj.setTranslation(SM_boneTransformDict[obj][0]) + obj.setRotation(SM_boneTransformDict[obj][1]) + + +def preCheckCollision(objPos, objLength, capsuleList): + # print('objPos:' + str(objPos)) + # print('objLength:' + str(objLength)) + + # pre check bone length compare with collision body radius + # will improve performance if bone is far from capsule + for capsule in capsuleList: + capsule_children_list = pm.listRelatives(capsule, children=1, type='transform') + + p = capsule_children_list[0].getTranslation(space='world') + q = capsule_children_list[1].getTranslation(space='world') + r = capsule.getAttr('scaleZ') + + bone_to_capsule_distance = springMath.dist_to_line(p, q, objPos) + + # print('p:' + str(p)) + # print('q:' + str(q)) + # print('r:' + str(r)) + # print('boneToCapsuleDistance:' + str(bone_to_capsule_distance)) + + # means close enough to have a hit change + if bone_to_capsule_distance < objLength + r: + return True + + return False + + +def repeatMoveToPlane(obj, objPos, objTarget, colPlane, times): + # Y axis direction of plane + n = dt.Vector(get_matrix(colPlane)[4:7]) + q = get_translation(colPlane) + d = n.dot(q) + + # for i in range(times): + # pt = objPos + # obj.setTranslation(proj_pt_to_plane(pt, n, d), space='world') + # if (i + 1) != times: + # obj.setTranslation(get_translation(objTarget), space='world') + pt = objPos + outPos = springMath.proj_pt_to_plane(pt, n, d) + + return outPos + + +def setWireShading(obj, tmp): + obj.getShape().overrideEnabled.set(True) + obj.getShape().overrideShading.set(False) + + if tmp: + obj.getShape().overrideDisplayType.set(1) + + +def addCapsuleSphereConstraint(sphereObj): + # create a locator and make sphere follow it + locator = pm.spaceLocator(name=sphereObj.name() + '_locator' + kCapsuleNameSuffix) + + locator.setTranslation(sphereObj.getTranslation()) + locator.setRotation(sphereObj.getRotation()) + locator.getShape().setAttr('visibility', False) + + pm.parentConstraint(locator, sphereObj) + + return locator + + +def createCapsuleGeometry(size): + # create geometry + cylinder, cylinder_history = pm.cylinder(radius=size, sections=8, heightRatio=3) + pm.rename(cylinder.name(), cylinder.name() + kCapsuleNameSuffix) + + sphereA, sphereA_history = pm.sphere(radius=size, endSweep=180, sections=4) + pm.rename(sphereA.name(), sphereA.name() + kCapsuleNameSuffix) + + sphereB, sphereB_history = pm.sphere(radius=size, endSweep=180, sections=4) + pm.rename(sphereB.name(), sphereB.name() + kCapsuleNameSuffix) + + # set to wireframe shader + setWireShading(cylinder, False) + setWireShading(sphereA, True) + setWireShading(sphereB, True) + + # build a capsule with geometry + cylinder.setAttr('rotateZ', 90) + sphereA.setAttr('translateY', -1.5 * size) + sphereB.setAttr('rotateZ', 180) + sphereB.setAttr('translateY', 1.5 * size) + + # add constrain + locatorA = addCapsuleSphereConstraint(sphereA) + locatorB = addCapsuleSphereConstraint(sphereB) + + pm.parent(locatorA, cylinder) + pm.parent(locatorB, cylinder) + + pm.parent(sphereA, cylinder) + pm.parent(sphereB, cylinder) + + sphereA.setAttr('inheritsTransform', False) + sphereB.setAttr('inheritsTransform', False) + + pm.connectAttr(cylinder.scaleY, (sphereA_history.name() + '.radius')) + pm.connectAttr(cylinder.scaleY, (sphereB_history.name() + '.radius')) + pm.connectAttr(cylinder.scaleY, cylinder.scaleZ) + + return cylinder + + +def getCapsule(getAll): + if getAll: + nurbsTransLst = pm.ls(type='transform') + else: + nurbsTransLst = pm.ls(sl=True) + + nurbsSurfaceLst = [] + for obj in nurbsTransLst: + if obj.getShape() and (pm.nodeType(obj.getShape()) == 'nurbsSurface'): + nurbsSurfaceLst.append(obj) + + cylinderLst = [] + for obj in nurbsTransLst: + if 'ylinder' in obj.name() and kCapsuleNameSuffix in obj.name(): + cylinderLst.append(obj) + + return cylinderLst + + +def addCapsuleBody(): + # create capsule body for collision + # place capsule at ori point of nothing selected in scene + # place capsule match with object position and rotation if select scene object + collisionBoneList = [] + objs = pm.ls(sl=True) + + for obj in objs: + children = pm.listRelatives(obj, children=1) + + # only add capsule to the obj which has child + if children: + collisionBoneList.append([obj, children[0]]) + + if collisionBoneList: + for couple in collisionBoneList: + baseBone = couple[0] + endBone = couple[1] + capsule = createCapsuleGeometry(1) + + pm.parent(capsule, baseBone) + # match capsule to bone + endBoneTrans = endBone.getTranslation() + capsule.setTranslation(endBoneTrans * 0.5) + capsule.setAttr('scaleX', endBoneTrans[0] / 3) + capsule.setAttr('scaleY', endBoneTrans[0] / 3) + cns = pm.aimConstraint(endBone, capsule, aimVector=[1, 0, 0]) + pm.delete(cns) + + else: + capsule = createCapsuleGeometry(1) + capsule.setAttr('scaleX', 10) + capsule.setAttr('scaleY', 10) + pm.select(clear=1) diff --git a/2023/scripts/animation_tools/springmagic/decorators.py b/2023/scripts/animation_tools/springmagic/decorators.py new file mode 100644 index 0000000..143d23b --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/decorators.py @@ -0,0 +1,121 @@ +import maya.mel as mel +import maya.cmds as cmds + +from functools import wraps + + +# ----------------------------------------------------------------------------- +# Decorators +# ----------------------------------------------------------------------------- +def viewportOff(func): + """ + Decorator - turn off Maya display while func is running. + if func will fail, the error will be raised after. + """ + @wraps(func) + def wrap(*args, **kwargs): + + # Turn $gMainPane Off: + mel.eval("paneLayout -e -manage false $gMainPane") + + # Decorator will try/except running the function. + # But it will always turn on the viewport at the end. + # In case the function failed, it will prevent leaving maya viewport off. + try: + return func(*args, **kwargs) + except Exception: + raise # will raise original error + finally: + mel.eval("paneLayout -e -manage true $gMainPane") + + return wrap + + +class gShowProgress(object): + """ + Function decorator to show the user (progress) feedback. + @usage + + import time + @gShowProgress(end=10) + def createCubes(): + for i in range(10): + time.sleep(1) + if createCubes.isInterrupted(): break + iCube = cmds.polyCube(w=1,h=1,d=1) + cmds.move(i,i*.2,0,iCube) + createCubes.step() + """ + + def __init__(self, status='Busy...', start=0, end=100, interruptable=True): + import maya.mel + + self.mStartValue = start + self.mEndValue = end + self.mStatus = status + self.mInterruptable = interruptable + self.mMainProgressBar = maya.mel.eval('$tmp = $gMainProgressBar') + + def step(self, inValue=1): + """Increase step + @param inValue (int) Step value""" + cmds.progressBar(self.mMainProgressBar, edit=True, step=inValue) + + def progress(self, inValue): + """Set progression value + @param inValue (int) Progress value""" + cmds.progressBar(self.mMainProgressBar, edit=True, progress=inValue) + + def isInterrupted(self): + """Check if the user has interrupted the progress + @return (boolean)""" + return cmds.progressBar(self.mMainProgressBar, query=True, isCancelled=True) + + def start(self): + """Start progress""" + cmds.waitCursor(state=True) + cmds.progressBar( + self.mMainProgressBar, + edit=True, + beginProgress=True, + isInterruptable=self.mInterruptable, + status=self.mStatus, + minValue=self.mStartValue, + maxValue=self.mEndValue) + cmds.refresh() + + def end(self): + """Mark the progress as ended""" + cmds.progressBar(self.mMainProgressBar, edit=True, endProgress=True) + cmds.waitCursor(state=False) + + def __call__(self, inFunction): + """ + Override call method + @param inFunction (function) Original function + @return (function) Wrapped function + @description + If there are decorator arguments, __call__() is only called once, + as part of the decoration process! You can only give it a single argument, + which is the function object. + """ + def wrapped_f(*args, **kwargs): + # Start progress + self.start() + # Call original function + inFunction(*args, **kwargs) + # End progress + self.end() + + # Add special methods to the wrapped function + wrapped_f.step = self.step + wrapped_f.progress = self.progress + wrapped_f.isInterrupted = self.isInterrupted + + # Copy over attributes + wrapped_f.__doc__ = inFunction.__doc__ + wrapped_f.__name__ = inFunction.__name__ + wrapped_f.__module__ = inFunction.__module__ + + # Return wrapped function + return wrapped_f diff --git a/2023/scripts/animation_tools/springmagic/history.txt b/2023/scripts/animation_tools/springmagic/history.txt new file mode 100644 index 0000000..74c3ccf --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/history.txt @@ -0,0 +1,75 @@ +##################################################################################### +# +# Spring Magic for Maya +# +# Calculate bone chain animation by settings, support collisions and wind force +# Can work with rigging controller as well +# +# Need pringMagic.ui file to work with +# This script need also icon file support, which should be put in same folder +# +# feel free to mail me redtank@outlook.com for any bug or issue +# +# Yanbin Bai +# 2021.02 +# +##################################################################################### + +3.5a +- Fix bug tension calculation introduced in the 3.5 (Benoit Degand) +- Fix bug inertia calculation introduced in the 3.5 (Benoit Degand) +- Clarify code splitting source code in class and methods (Benoit Degand) + +3.5 +- Apply PEP8 coding format (Benoit Degand) +- Add possiblity to cancel the operation (Esc) (Benoit Degand) +- Increase speed (x2), avoiding locators and aim constraints intensive creation/deletion (Benoit Degand) +- Fragment source code in several files (Benoit Degand) +- Pose Match default off + +3.4b +- fix collision bug + +3.4a +- fix wind bug + +3.4 +- add plane collision +- add pose match + +3.3 +- add inertia effect + +3.2 +- fix wind effect cannot set key issue + +3.1 +- add bind controller +- add wind +- add flex setting +- improve performance +- fix twist bug +- add capsule icon +- seperate skinTools to spring magic and skin magic + +3.0 +- re-write spring magic to improve performance +- add capsule collision for spring magic +- add donate page + +2.7.8 +- fix script stop working issue cause by highend3d.com changed their web page + +2.7.7 +- add time out for update checking in case of network issue + +2.7.6 +- fix spring magic calculation issue on MAYA 2016 +- update UI for MAYA 2016 +Thanks for all the help from Nobuyuki Kobayashi nobuyuki@unity3d.com + +2.7.5 +- add floor collision to spring magic + +2.7 +- Add spring magic diff --git a/2023/scripts/animation_tools/springmagic/icons/China Flag.png b/2023/scripts/animation_tools/springmagic/icons/China Flag.png new file mode 100644 index 0000000000000000000000000000000000000000..15e088b9c4fef037ed7adb910cad03eb10363678 GIT binary patch literal 2212 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/addPlane.png b/2023/scripts/animation_tools/springmagic/icons/addPlane.png new file mode 100644 index 0000000000000000000000000000000000000000..af46dfac43e1e81a3268051145e6cda7392acb45 GIT binary patch literal 18787 zcmeI4dpy(c`^Vo>&Zp!MQgbMhZ8k$@<}k;cnNvrz%`At>CPQj+NGg(JL^=owp_EX{ zDIJKCLI<6(YNLqjK-7ybYXcPapg)GvLwQZ|Xm0f2xV8H2I6_omP&RBuWE z$P$AA1q4#O$i74Xpm$|Ck+4p~Qu@;`CylLQ8Oc@@M@c@Aqwx`jMB)ZD1%9zDu?lCN zOFG+=IJdW#Vsw` z@f9Mw!0&GHEGl|>_Ad;!76upsKrd~7+k!f@T$Z87!|+=;yMA=J_fEl_py?xCWuk^x zft=wk*NK27Hl}BeS3Z9}I56;ROTF$<=~?NfCeiO8z9-%!}?HR95a|V z&sh&Jyev=b0f3z*$`I_ma)Ty505HjkP`hj-H+g%tdM(eI+beo*3(k3HM;R;E-!T?5 z79cRz1bS?|bkJBe=HX>|H4o?$LwQ84gLh0)fC%J{^K}vZ0MRcvzUx@e`tMez}@0TiG5-Mzzz3g&{yXx>1zO^)Xxp;(WEx-2iU}F$& zt&xSBwVUlTi+s=;WyH!ZejR@9D2F>Lib?raS2o;OIa9yd6AnA%W}&Y1R6Jo7R4gnO zQ?H{eei#E+sXV^Svh+N*UA*0_-QQ7ZSiK+Jmw71-o!9v0@l95fZ zBvqNr)x4`oGQq1$(ycGZJU$}Rgw@c2y-y!HDSDFP?50+swofwgoC|7q|0K20`C^v+dnY+3Qh{Fnp^Kz^3fAEKe)svq zJnnVYb#|EZ4mqW}`l}m3f_Ry7y1IgoaA8bPgjW5A(udFY?NzHvpO>#XqJOdAj4noV zi>7P2<3zHT0dIf$p3kRfw){h?d1({-<6cUPZS319cL8Bt2_tUzxtN-k>Q-n`=ul|> zzDB!vBroeijcJwpY=nqW(-xKOD(0kwmK9k;PS2fQz`H?RpqVBtF%qBEzEvOs=NHLqPe2rn#|?FXFT1-6@C@rIFhF{=~_c^ z-DpxxQuvMVWApmF!iS!V6v}Uv-%q^~D1mfAzRYMjHEIyvFqt|GCAqbVwLa7AuUK_| zV?8;`Df6*8Nt#qijhu)*a@gwNeMlM_k}22t;%?2r7TVOF9lfFLQ(2kinRiC=yGus3 zN6DjydQLw;oZgu2u1S4VcNg>8VX)0W@N|lX&#O!O?J#x`q^m3(!SO6Mi~rTeZ2IiHm``7Uzh3TR6mc$maNVNU_ zw@)AO;@;qn)a@5ii9QtV8eIzZ-h4GTGI6Lct52{$OgbHUcSk_TnU*_~ z(Roq@5OH;6s-bnP?dIeUMq+CDQb*U1uL@otFA#D^{tihI+NRwW`wX*PZLRINg_=$1 ziN6x7wL+8|G;`GlE2C5jj#pa?TffLeW=m!41^L1Cku|W$6N$(77++MdNva^dBfat3 zd;bzKx@@7r|Hw7y+7#YqpYr3ER=9%&DvU3@#coyYRO2lp5na7*Jv@9*H?=T()5DPm z<@dUe>zo=py*MI%N4)n$MQ)6hD_Gv`P0gj9J~k}EdFxbR#;U5~3!^XsrH z9C1x6-e0pJ)W#=b=k0q3Z(rr|c`xWJFc=;FzNd3!hn*YL{nb_6mzXR$wB+HqVu^0) zG|2zMF#(|dD~rgb+Lvc`hJ!rH>l$4)i&DFv8>3=B{6znWevjO^NbH0)9@@8flQ|gyG1EuH^gYY?WT)IhV-iSTDFg0r;V3&53X{(?wV18+~xO<_71g> z^w_Sc>Qq%mapiWO%F)o8t6^T#!*ba=EiWc(LOx0@KJCcX)qhbl5lWeEn4Wqi^+N?%Lp-iMAf|X`blF)`i5W1X0Y2 zgp&#PV}xVgXKzO9>h>7~&JWM!VOj~T8?vPr&Mw?9mX?C<|J?Duv!yM)?M&KuTGB1Q zeYx}RYTwJ0bT{5DT2rZeMMI-8x5NP4AGlx5gJHz3bn=JLw)eN1Vsb10E&)e2Jj=&a3H#$uRj$@ z*H`=+7s<4jilK_2uM(P%zM|1mLXew{JqSYyB!aXcT41~e3<1*7g}}66h|Mr{5L^SM z3DwYq!Zg7!I8s9w3DW|7e<`8`m=-FK;DvNFG5em5`Io+;H;op6ghGRZgCW715K15k z3e(lqg=)Z|a5$K$08>N!X*fFApQ`jN$lq~Hh*W$aIe;yfuqG<`+Ir9?ko z-}~hk@FS5w^*cKzMJOE?0EIy`pnq~A;D7i81O@tjZ5ja&CHfNmi2gJx(+~DXzkt6F z|3BP+N%^DtUlTLO#Kz{&&VRSp&+m_^sWj8QOa$MN{*v}@PbxMffCzOYQYk@!c%tcE zW>=K{)O#A)>*wJ75^1UCU)xTklmEqSspgy8*QxMrgiy@BA~AtP9E}o)rBHm)-)7m* z`zPk@ld3D(pFjzwZbU(USN|O9pMi)bI2sYnoQj*l8qBvA7N(0tXd)2^um%FDp}`X5 zoAS39HWUKcE993LFgO;jfrRTK;hL;5Sd_oVU@jd3j)wbRMPb#l#3A63UX(yT91TtO z!;y&40Dlq+`m>Nl`C~#MF%(})AhTISv?dDrr{X_)F>g`rzulptsgCBxAWKt>HcVGr z8w`iQSi`XBSmJ!0tVm0LDh=n4Ct8}InFSCsnSj*vgu{t&PdM1qQ%4KzNkC|Tb@3W- zFhZ9=Bxq{kH8gc}zYd0t4XgV( zFIq4zkZ43=&IvZ##kYXJdi)+41zq~>@Fo8`2H#459h$!<>pzDQwX`K7nbUyTB-~g0 z%!TuhvY(m1>D`uw(>Lg=URPU#`GUfhzQ4P&R{!qm{-0f0tABU>>FMlGrlH~Av;9`g z;nMIJWgat_CmiUHBhIe_{A2$AKN~-L^#2@~H5?}iD-E_b2NzpJtO5=$RvK(= z4lcHcSOpwhtTfo#99(P>u?jf2SZT1eIk?y&Vij<3vC?2`b8xXm#46z6Vx_^>=HOzB zh*iMB#Y%&%&B4VM5vzcMi;?BZ4NHBh*$+2 zT&y(M+8kVL5wQw5xL9ehwK=%hB4QPAaIw;0Yjbe1MZ_xL;9{l0*5=@1i-=Xg!Np30 ztzA}wvbR5D~j35bmtC;C~Fz18lTS4%R@kWifo9#DJM{cD0HKdy8 zZ7_8_tJ)l>nkeybNJxu1HgfR1`g@!-SU}oLG(cLDI+Q)OZ%A)wdps;AkNi$$^!0UF zW0A!bmr>be^Xq_XHc_I~1v>s{*oM{53Ir<58ux}Ikdh-tGM>$Mm%Fc6q=qy4*A}a! zw}PLA`}a02R`Bfe$92bi=)Wb$CA5q#YO)1LJgk$X99$h+oiH>XL)j;j8Fy50d+rNUlqWHC-OtZ&JsO^xb~e1dB-NEXN5$n zgryrBaaS`OTvZtDTh7O)dI^mkSbJ+`#9ip-YjefYID%Sai->e+Sj}d5sD-AM{FR*x zv-P|9&y)Zbe`PE?y^VfkXy&xAum~co#y=>nll#~kg`3ZxubBJTD*ds!p#OEPQp#4$ zX4$$2)=U?O`GaLoBsH*1j^<-P_s?nC&x+~3qHvn(WBd{LspaSX~ z4C)RGt=^WQ6xq~oQdk#rda+N4hV+Z(3eyx>Cws82Ey@BBFSm+|o=r6_>2LwCX`S!O z2-N7B;K;VegX3S)0Ej=H(ZBh~RfqXdAFFxS)2ERBKD*&M_FGEJP8cgA6J}<@>~ZU2oOVSlAyD{WPGmDy#l|)o9(6o{ zYtEnfk6z?$Ge2PqU%=srXJgxT+A_rADzx>g*F5s?$_?xo~nq z$L``(sTH{?j#Y9Q4MojkA8*e#8S+P~Z%RJ`_JmZ#(vaLmF5K=e0fb4=6Sa;DG;B+= zblmuiU?*vP!9FidKoVF5gq^e0@+^OQbEa8(otC$j>{Mf`^9@PU#+h5kFejd#>GWB7 zxUub>w;3rJJvsQ3`K&wo1EQaa&FK0b{V?fj%Nl4`yfXv^M8VelGZ|95Y1~3}v-6+pPDASK^P1-7<{LT)p$V5Rcdt*J zBWfw_Ixpb^lmS~hUK4=x_jB{~M9x9dvQ4DUqZpFzxHmJoeI<1CqoDu68QgrO>QGZ;&A zbPgd=YQAk%Cq!Wv}q9Tiv z3(^W<4+j7|$1`<3jPC8x$h_NwlNl(CZd4}Q2LgZ>%kW>58|RVV1wcc{Ddk#2BM1$s z&rxKk>AwmZB2>$an9bp+vzCvHxPC|fhWIDu$)YE|-s@{?2O|g1mNJ$Od%Swd0w^fi z;}`R60TPfraN3w@l50LZ?1liAc))ugh$Ys+X|ko&wDE10g)v%`JeOGC3e0ZgT}zfN_nWDt164 z9>6`uD2`0d91xJIz|#d_5yu87UZCp6VbQ?J;U9SZzQoKav`!5R(A=5WoqTmbh`KJZ zkKSWzR!R0+g1M+=^fxn30@*kxFd|N27-r0HELRe{n1>8@IGLKeK4HWWWBo zHSgGN0|}I2-F$caED9SJK(5uhK5n+KFpT5Wj`hgxxm}3~VB7#;^KRc%Xo4W;I$@vp z{v9vzL%9oCxjL_3C(h}PIFavS;Q?#O%-nnAw5;+0t6B+gPU`wMO| zCmj*o^B@6~g=sfy)tr6OY2WPk2@CrUsnLKtK+bQQH;SGp9zbp_Ea!kIDuB94Icnd$_eCpB!8Cp1$9|7X~qktXU(+O&@)PM#Fv_-$Q91a z2QU)mo==je(`yEg;y!tVL!U#DHbY+hLO`5k={@C*z!fLjGv?>BTFyTUBfyn^jZXz- z1xHX=#Eb%a@M%+HaDh-Y;ky9^EXxtp*MP0BT?(*E6l~*7)h=%Fx=>3*-;nznH}RT9 zF!C_+nW{iSVAVC8x7coS^~KEek!?Ay{U~8F(}1KryMFrW3(^5Kc}4wKKe(X)zL7Do zfPMi|tEe&Pji_*C^V>%B?CmtL1tSrISP>YLk(m2AhUP5jI{qc>I{{Ry_%}nyTkM14 z;#7?^j1-I6RxeglHsBi)1cwN;Tn64N)~;srrrdw!X#uW`Gg2vI|HOKMHH+=$Wl}1$ zduo?R-`t(oB4lNY6I3Tsw^N%?<1NrFkQpFHWN5Ij#5uf~p2x2WC}T;EuZ<&%)4qG~ z=H+}XHMlimR)Zk#5~Lu3@`?ytb^*6ATTmf2r}SEPN!DBZ(g<+&b#;dvcO8&!cnOuT zTN+z;I*npy0dM|LUmC(1v1bEXMl}#j1z%83?n@r9`*3!7X*u|_2Qf()NpQQG1qYoS z-7UJJ^R;xKRE_(1gUP9{_4r2w8B(oN$WoB{MqImGKIh^)C=lUT{J6An;?ACNMYE;0B42AE=AMAq-uXv!yWH{!5wrQ1` z=un%@Ah`RobkeOnNPMe1KS2p?m>iL)J*gu6^&xv@_%2<^l87<0$r{R-! zQcw$o;6%Zzg4X#a&h7-eG^>XG>OoXj*K3~1veB|Pt1%Ko8FpFFrm<%ehtZ*h${DR! z?ug!LPa041>BLLYOxi0;F_1CvGT1Q~DN`T5vBI^aaFuX1ZS~BW#4dD~ZP#J9m#K@9l4)2HCF$dWa_e%pcY3x` zFeCi3s;5&Z4ui0SK~SMjAos?<}!=Yi(0nhmOwY%ZyMh`XuP2PID`#4D5cjh(m5!7|eDuRY5+GHo*0+1}aVP4}CC@1&b9`VIS~`kg(@I*|O@c@+EQ z`Ha^V&88NfIo1oT1+2zE`oPCHb~wzqsknt_Mew5Wo}K{_%bZgnCLl3pcDaXarrl!L zhY3wu^Q85k>%h-Ecb(xYe;2#Pg<*=AuwMLk^k>>!O@ddpyHs^Tr3(jWL_CB~kT~6Sg%j?$%|t_7Hp6YIWZrAhp@ZRG zc*oxS#eLW9iF5X$8vXgzkP01A8Vyh}x2MT@6VE!eMz!m2h2B{mf84)F6h!0G823o0 z?$P7XI#1)x_rT}MPiZdR(WUj^6EKA|Sb8Eh27EhhI;)b7bY_hp`dhYMlUp&6;DN$I zMeZO&;lz@JH=T|ZpRd=$&Os9`_1A5ahfECoxo8v3%ACrIE51BZsau>i)G{0L+3|81 zAD_Nb+p)HywoU{Na^GTlt~Bunm%OhRx^&1~Z2%)2Li;+nt#1>h6wi91*C< znn_np*~C_^X#TEuroU;Y!BP2x+NLq~@!{uF9=EnhgPG1rPOm4dK6}FLX=vA|?7QPQ z@F{32mfnJ);rXK9RGq4ac57Dbt-@Ppca_&yY*9%2$%oIMR}nZsM58aLft?o81CZnC zYiS-&oUU_`w#YBMxcu(E&#gI~54k-rCtr5IOZBha!Cz7H;vN7$cPrz~cgT^>ZCw8l zm7mFUlS#Fy_M6|jz#Po2T_n~pD<_jfdUJn1=-ynBWl>h9maO#K)Jd;Bjl)zs(`%-U z){4DZvb3mA8ntG7Z?>nGVof)mIeiB1Sxm6iUM-idkXH3`I+{^?Xo6gU?{%&jN>!jf zYpzK4uMhfvwQU}99r-fCXPWKRxZbwPQ0vG(#aPGIu=B-zca7GA@RP=*sdudB!^5WW zqmO65l6~~AKCXl}JG}p5-fZ6c(wJnF50sz2N2t6Z| zk){S1hIHVAS|Tmre4Y+Y=xrzfASLVR1clkbQ7jg4YlNdTaQ*3XAPd4$8fYk@$*<|8 z2)99~dAq=My|wgU-gYnvOQ5U_p_C^WE#Lr0L0LQ<>>XXfp3=Y{x?uF@@68|}%a1N7 zJ87W&_W@aqG<8@MkuGo+5k3)K7{7opiAWx_hNPv$Y^e;i0nkR=jIQ(OzD@xfNeI&n~**^~Gs^{ed2SMPjNH-T4T-hD& zh`RVs2Vn{OL&wR@#r_8$OBe`l4|hO^xS|hU;2#gc>G$s+e}w<#F#d4=>)E3aR)0>; zUt+&|{xuBliTIbW@1CDwKT_f63`wE$53J|{hoX=!dPt-Cgu&I7WYFi%hd@|@1ti2o;ZT?ruLxA^ z`}qmOcqIg&g1jQ){QUe9R-ytDBCsDP`PcBjNh={?Zr^k0H)%_>w1pVIkhp}95U&*s zEiEc8Y{6?GU}4ECC;=4~5f&1+6crQxUHX^sze#Jmpf|#fQ2Sr{d_VgC(;@yr=5Ir( zAzaa^0gQ2kR zg+>PUJy+qDQlP)I{&`q`ME(|r`1=I@H_AWte+mEhF+6PGjwdDjPpKch{$0csX@&BD zy1?bF(K+$IS%yCa{~Cd*ECu>rlkE}z59YuX>i&N>1OIIa{r^4#f95XC2I^=Hx0C_> zp0>X?{I^N_IhB81PrsLezppEZxI$sin{)^L!MqqP+1&&EH;l=|Z;1Xe`a zBV9C+mT(y%DbPPP|6>&Tr!}3QzpTl)LR1x4)Rh&{{i5^zItE79 z7<9fvf2?hE%-`BD`x||)74~jF`ilvoD=t4s;QQ-up})E@Lyb=k{nd>b`e&rRBLXEO z_}ge0&A&u_zu5kSs*Bzi!e!8>hS`MKTL<9@w>MHkpsxw8-z%Lcy43%O!F2p%pz*&2 z{^Iy8@Mk*xvU~ecB7U}__lD?gDd>-V>EEiyANBQr^248J^gpSJp>;Y429T4@Q(PzW z!SJ5q!T@rzd5Y^~J{aCpTo^!3HcxS#%m>4JiVFkC$>u4pllfqHPjO)YIoUkLbuu3e z?tsF{-cwu{Ku$JKah=Qu!+VMg1IWqdiMR;=ywelzh`znk1AQOorRv)z=zBm} zU}_Le0Kl6K00;;M0QSG3-qi69*6rZP|SEV;F6u03O!=D)_t$>vj6Awej6d7VUCDCeci`9 zPknnmcGt6L^cQOP1rL+V9JiJ7zr2u>Znn`4Y~H2Mm?X$l`4EGL!)VJ>dCp~>*2m4R zZhvOx(QNePdSvzlcQ&IvVSSK1IW?Blqi2feOK;WaOP{0CG*QPVY~$cwB48u(0@$%| zC}AJCzBIzOxu1MEc>nVm<%M$Y{5@VZ&zyyYh!%KhLK$>0WPph~=W|=k6`n6T_;Xn_ zOgKA?qFT6VSQa>g0w3-Od~3RVxY91xK-5Uwof{o4N6PJF`kjm36MrrQQsat6-`LUV!c&BL#Q;dO2fB2aZYsgA5O zhc8;*`hVuR*-&8bzF0bsr2;u`$5~Hn88$Q3J%3-_u-K}@hA6LLfQrcUb{|u^uUH0C zuZ8MT%5PkDb|mT-MeWog(UAycsL?Bz(h02h9TLp`<>IfanlX%Kr3}s zlP~m#J+A z@82IOCw|U|z%9K%lbA>&uzs`i$+sHGquDLNS1RPUT4k!yyUr_&7PVap>hKQ2Lah9q^a|c;{J#~ zB$|!`D=+HF`@5m#re;P|J?Tr6N3p~&D!7ED6HHkT`-d|Vi8O4BWAUit0Yu20H8} z+pHEdO?|W+^z`LgGL*(8+n#HV-TOMSh6traW;x$fgXU9fyulCni ziov0Ql-B_iQ1MVf&WFZt=~rs>9>`QK=ATL`iC&wBz@x8Xe+~}qufJ= z*eEvCtC$}AkmjgtaCdxHf>)>f@xp|^NI0*tn*BU}FGN|HP!1((at*u1ldxNO<1QYr zqf}=TRMYHpuVS|X-~HLfDy-jzo(OygQlbzpHAO3=je)dCt0UZffOd5Et9BZ?NbjQl6!OA z+v3F)xjQ-mc-~hxj(jOVQ){vZi;0VF6MHquF}@_IFUtt3?ClmZM@C+ zw%RkKpJ(H1XqI-FD9@U$DqiB;;se)UrG6EMhxdIf9qvu+;!CrI-@_ptxYs-`P={1| zH+x}>xx$WO5U$92!=^k{oaMls_DkvyJ0 zW9J)Bc$Q`^@QCVM%Lpk6isIxZcNg~Q4sojE!qKVJ>Cdy=@1Biz8~139kkBwzR-{oIf<}Fy zSToii-$~Qp6@5ygG0|o(BU9uh-Ia3IP3bXCe2 z-KnK^S6t!shuc!tsFtcLD#)>|jH;zWudu+L2)?sy@$QrH^;pdjv%pRVh7}(l-{w)u zgX=NAh?y02OAh1Q$9kX14X6iY(&!Of3~6DsTAi1Lpk^LXoKG2axEN@Z)|^UnlnMyR z-m)+`e|gU-*|~K$cR`46MSH(1t%pwahM3ScsHqY*^MJpAO!!AHyOGZx?Qv8X~BTn5b_wm7A{PU%r`huW>3oh%N>N#S8flbY`_`)C~ zeUufJD8{ z)zVwTvG6j6J*gpKdnDnux-lej+%2RFPRv2d6iv7;Ipn-X*!yN1_O;`U@Y6&K2{Owo z6<6eKxkCj$Ms>0v#4KfGb!5SuH_Wdk!zcnp8nHVGFFy1dmAYV4Lreryd=0Ny3CMd& z*qrM72Fqe_Fs5gmFL@_o;ci!hZ^Fw@J(trX^@_N(g3WQkxIJk|IpCJYn`bp+3ldRS z_oxv`-8B`mGDlgqPZd+7xHisuce@c})RB{ZmzLjeBE-Z1BBR-YK$xnLZ8v#HS z{EZ)|{FDdFPCTRi+c!Xft$;dBD}>l+Igl=ZL(m5SYcmurP`Vbs%kDdox@)~U$P|$E z0l;yoGA=x$eHV@!c!|p!m*K^GrMAm{i2c|1S{5rAsR#@bU!6k@y;S7%3b+(M_mO$g zGu4NhfI(Gv`m=e*`ZvQi&GhT$2^^#a#%>F#J#A#zyV<77i0gbPwk$(ZPZ{^5i!U~2E?@WYcnG}|%|X{oRJ5X5P;-Xa1$QC2#nHa^20($ZUBVz6bM(&0QO%+l^X}A(XLezmV z-jgyTyR3-JHk)X%wfdX0Jw+WkE6Moc% zdQYPZb-ke?CR|1O{p~V|nbNY>q(C(;;Ukf7i#>RP%3pw|Rq326qLoeB)5t;hxku{WAv-O3+%hMw1d71ouHM4eH+Zq$5ZDti9I4D-nMp;ovHF z#C}(Oz|pzmrers!&AMfuv&)PX%Bxn~Xlq};u;nkECgGi-=W!&T-Lk73zAhnE;O!e6486>}S7ne!0!Cg20%848vrey(NL26H9u2LrkpTj#fOz8RXD!bTO9QKAAf3hD zFH#f-`t(*0G^uYEpBXjVxgpbcMbdI!4f6|Zx3d&qyA$bW=4xPRcf zW2#w|(jvgDklOx%^d&M41qlBumm4^T^YwExLv4ZEFV)j-1_(FXTrE-SU`P&`63c*s zR-(FsVfR+IVs7KiZACKz6_!kI?N8RaZ+zVm0q=^E^iX%=oy!R9sWW}7iG2}|-wh-@ z7$B{69yjzg9XJoDrg={Dqku~BEk$l#0EA#3i{@3wSZ1!<{=i1GA#dfnb6bq&JoKZ3 z=-9ZQ8H?bfqTEY)Z!4AZdaujQn2DsgK(qRn1O^sfe_|j7HMqv68@hyDATYuvp$LP# z#G69zxOw)xpTKU4q|GgI>G2%y`FXuDRlGk*q4{tU2UfqJEY0e_ledwtQCLWyATXvcIxOLDMrZa=C^I39YwTE$#Gk)p*Q$0`(a zU1(`Qd4I~khN}T}Rg;q;I6C2|gjEygR@#-;nsyIAeM$TACZW4rC30yr4||kVB>bE9 z#~G4}nCtgT`gEhIGD6EfN%+fmwBqbinb@_i*g;8!7A&ue64HJi1DVxV@6(!10Sh-> zl#+4V80bK&2$z0^gE8so=3~7_0oyv=i5yOE@8ub9W8H>-X)GGM1Kdg+tm37BpYQ-KAl6CpE78Fe6;tr zN=}`pn_p;#G!jcuQ(12;i+<5qUTIma+5xNOt{}?jdqQmO+2aVZ}VTSp2&;`JV;ynegebMGmS6+a;s))|v99yvztp&JoFf=Qg0 lJ*YvqR2Jokzr4c&(1ApJItpX*%bI``{!i?g!W#mgnm z1pol=p4})c`0Wq=h;guizZahkD}i5}q}_I80N~!V_QM2RxFiYy+7cc%wiH{8xvmS5 zpp0`RI^&i72_#S(0FZ|MB%F&Uo&s^kyLou)LnkV#p%4#Oeds|A3>-r;#k+g#4)n!a z2U^&;1bVvYxIzsLxRCz3paTM)f`j-Iyu8V}{`%0besw{4tyu*M`Km(k)Q1|cbqKM= zSV2sQzIcd+vWAii9H9=;(osfeAk?)HiV#&eLQMs(rh-sYLa6G(b#xILknbO;0T(DC zeO-^}Vo^K4cL)BZ4|S(dNV+O2etv$+ern1@UpEzmj*gBBTvbI?RSDEkA_sU=aQ;f( zWVvrn{`P~ylU;m0NE8pEH)PE(&Y4K1=tH4v9sT%xzb^vmM@Qb|@9aQ|D*iZ<3PKsK z@;f6}mmfAHs;}4Ap}D%K;Jxq!yf=jm+97^xM{*}ph-7!-zjXQI^1pTr&Itzdqwn92 zmq7S!*JO&>F%ZFbq`$Q!+XRsCDp)+3NcDBWn;iphMecWZPw_bNb8`OSY3<6tjveps z@h@g;SH78j4TWzrgaq$Z*VGq}qY!;PcE*wthHN65=pG^Z5^xj)4+72&uR`*6L#q62q|^KnP`ai>FQP9v zEWCjlQssBebXH%3Om~krnS%3n!S6vCfDOtX9JP)tEt_8H>JP)tLab6{oWoF1J&=n z{nAWlwU%$cWdv)mG{75ZYG|lwAXR>C{?)?D!yoTui}C=ME_p2=5vt&geKq>^%5N?0 zep;&j-P>0~x(nY8zs(ihF8*~YzqNuj0$84?{HRa$vD?FqGGEF+@bKu#StK219ur7ehq!3hTJ&X)u)6aWO$vD?FqGGEF+@bKu#StK219ur7ehq!3hTJ&X)u)6aWO$vD?FqGGEF+@bKu#StK219ur7ehq!3hTJ&X)u)kD=w~|Z~WoC!Por!!1wt|*#o=5 zcL5VZ9I< zkPYF4<5?7;lRl1u4UUE~sq&e(EH_)DarYxw)pUl=0q3{Vkf&pLU<1pKWJ2#n8OcG* z3b?yUjZrC+m&ow?o6dFddQtqhqWB#yP0Or&*k$;X$p|UEOIOlhixLvk)Y`fB*g@Y_0lp zbm;yn*U%e=%4O^{p;!)7lv%>&H%CS5mxBy?9IdTy1+FYFNQu%gR}7@ojyyAxKb!Xq ze4#Vj7{=OFnt53@9#Aks7a5g*);Ajs;%73(0D^#pwUvl*mYCD3S(J<^ZY=h${i#KN zflco=8a&;#FGt6U%PFz%f@eXTK+8&V-(iBMr=D3E&|9voJtU{h0;DP(nw99J7S1gR zww$Y8{W9TL95^%lXTeBH2oATR(X&!djdSb{S@f}Kb#qYaN zlwd2dDE=W~uIN{(__3)+>|Mq9h7#(?i-7xxm3vi#tNGEACwFFgypFB(xNss(&25FR zaY3porbV5%VB`Sx*s+j+*CieoBd0}AgqviBd1>mIOd1}lv2t^Yt&Z5kSR0x!^Z=?wthD9)G3x-}%z*(Eu9?@0AR`nKe$XtqD zQHT=7?W;XOKyI?e)Ft}<;c!5fMIEzrk>ebBW7BkVXD7Qu=dLI&s0o!iW5^<$7z?3A5xS&O@x~l$ zqjoOhaOm8zwBp76R%fFX50`}ro)iYnnmsEl+PfL}$n=*{5u5w1D(-;yIxoQ|H;Z5h@s0Q+y-7HFd6RFZyo#grnl-eGU$lpH5IbD{EZedm|!oo%C&y0Nz;aAoA(Oi4_xouSP2Cr^hve!}=KNwZxfA$kX8m-z16 z&+mFXZfHC!TvMOJ%*F%RE?YkH@o>?w{rX%_pS*VM+O1o!ZuD_u zIhg8SsuaH(%^g2OJ_QDZx%>t&kZNx#a*uQtI>Ko7VmoV3^&5501js&I9xSJhv{o5K zN^erg9?k*hb(WI*mXeY~zk*{^QW0ZQ!bh$>J#LT3T8_ z@4$pPY^#>nOVTsTyAib>-rngZsG+?u2>>PPQkq=6i(_*3l$74v8Ee@d<}X+LdV=S4 zz`h@fO32Z+K%WBsZf)6^(Al~EoWu8Dyng*hS7)c2U8)94n5aw3ZO=~WD~6#4;^N|@ z_m2g3!-^;$TXTm3+L#hMsg-D$Fl(>CKEp6AE${C6eP%U^Sr=Rnq;Cv4T7`NNSXM}g zn*S7ls``R3;<+{fsS(V$5ZA0+z9DFsN(u?t^nOyyC~s0&b`wW4i;f4?<*)Z%i9$%Y zASpVkU;ALRQaGX%!-05lr_s46wql}cX)DmvU5wuw<8h&xDis+SX@&07>se^DD<#Nm ze0CqWflJH>r|c%70;UKDIt5w`Q*m%k|4-t48hss>;@J+EsKUaJE&!EU;0VwZwvUzN?jOOT~Kj2GSkT?ks)&`^xU8<}FCf)VH4s?J+VaOta!c0};FgeUtJ z6pT=D#J<8i{*&*vNrx^^Mw@WJ>$(d~LgItDnOXtOzWBZxu9`OieDQObi0OpTh^KR5 zf@huHP6;Z6ye1)~`&c-d+f$sPau0+(o|C)$#H6jH!Biq)zLwYf0Q%K??Z&Q#R3*K! z-usc-ln?x9+MkvX`>bSVJg#VJ>$ppzaVOP3-LFMqTYRb-dnnJV(l2O(E03yzm%!{A zbBI_uWAMml7E$j#Z_`^VD(XT#)gKG)7S5wDi`+dt?kb&YkYXeCyDQ&ITpTikp7A@7 z{|EILm^l7?vc^hV%@RuUz3+)Zp&g)T; zldqh_y_BL6{Y?+6gNXwRCb4a`VfA-PA!y~*y$ZC_j`nt^cMs!o3k!FFnFh=O_nIY5 zI3_QRl!IB@DKWUO&^QhCnFp}|wNE>9nkoK;)GsL;d5kUeC@WHh?wEHp_IB;^vDY?^&P5uHt1`*x1?6plOYqXXTho zwFfGar>5!>L_!ZmX4muP=v;kr5Rk7q+PIy)=Z_Da`dk5{fWif4!)cil6~Y!KA@^j2 z^2G^%?hM;MFfBSP^UPQ)f5&C3d*`sJz;Zo2Q5uH7%Kz?4&<-#+rP3XYs|I?23YlBAe|eIdm>$S3+pW z8_C!3iAp?!Z_ey~zf5k@_j>^*jFn_G&1(OCu*xdr5Kz(_S`Mxk1t%R%YrU~A_I!_T zqn?}%8H+O^tGy*4DHeNm=zo{kIz-g+b z3_F|-mO}cy6K&PqUBv1)0MJmJ^!&)3Me<^RvcPTR=VnvBKT=uiMc0ZwH(I-8B>7?g zWZ_00p5;C0xYX3tTtXK);w`vMhl1HL;E|8j_LLeOB3Dt!wo>mmfst3n-++0<6SyaA z<)lE9R|V>%#FFhPtK0hQae|aM)wCWHueZA21a*#_|p)~7OOZM0eN86pe zO>@2e=(u{+Tu!o6&oDM4?!&77@}~#HfOPf;aHk9M_MHwgqjI#Uk@B-~93Ls-sdxvm zM%HM4BB^oT_7whvx&j^|^y2dsoiy`PkX2gpCnO&_Z@)q0W}^pu`imc~@VfYN{)lA88txQm1Imyb7?aPaW*hQ|&rp4&HmZVovi z2iAgnqt9c9Q>`wI+EpAI^9zpV%yz?vh^7x2qwhj@r=*fQkF&G0_i0<0rNurLt4nf5 zMS=Ah4-b#Mc;j>K=vr?~8^|xoBB%O8z~QF{HDOyR4xx8!6`^OJWK>tnC3oRL zMyEf!Re#@`bKGTRrN<7Jvv3_v8!6X|6u#;!?#vnuo_^3Y?2+y=AB7wva^z%etgaUE z?Q#`P)b{q#{pM($hB*L>CN-{>;TtwT+9pPED74SU9@P}s8u`N0?nP-;Rn=4cBWJ{X zksU|4&GzWR&@Us|gf7heUIK!6iqtlA=RPV=aJM&aHFKiIHlMXyy@uZ`0(L_(f<7% zcvDl;?9k?7;qij&*GxE16gNlmzx&f^#=Nbh^L1C(-th9td&OCc$CJ=` zZ$eV?y#R8AVn(*dgTrAvW)mSD+_^ZGo#Om^?gx+Ia(fJU2!prbD+@aQg@()_gB=;e zu<#l;Q^_E~x8Ya9u^MvGhb$udbgGvd*m?c$?23_l9&l;r`)Zk$Pceq0Y8Wz0_d)a< zA>~oe3$x4T5ia0=Ga#ko?c`p{J%As>-?B4Yy}apI5BBM0lueOBCv``^2Ie~NS=L0v zBOghY1fl!3_6HJAKr9qa>wP>F03NF`7~WWpQi7vk9Ev}2x?p5nd2>S9bfaF*fbU(- z6?^>sdp3@ar|p$v1_zH=qjk1Lu^#Tai8Fm+xYsT(d#S`LpsAJm#z9;-A>O!R*ZDv6 zd=QFqAH%UHjq)Ux?{&p!eePamaqQp?m{K97FRJFQC}wB_0n18BDJ+TeB%iEN*5p>F z`iJ6M@Bicw^DvdCHSS;!i|q zp90G#CsDQtg+p!XO7_=E6!$i`szRU-`+X#JDI8d|eeg`j99uLugxEDZ(O^=kdLt>Z z=wJ}>UBFwL#sK8|mSZXXaPzj$a}=LX7TQBZZ}40j=79-rz8EOI4c23AH?~QTkIUwA z6mm+kTO>7dcw6K<-Xt01h6NuH*GCqQt4uSl6@{g7aEMqvG^*8Ud|Wm1WzKqjrb3>d zP=<~coZ7u*N}>mA-&t2V_x555;dr5A+-%%wpZ@ybJ9qAMR=>O+fzC<}oES1(4Ty2X z_g#unY6YJuoIQcFL7y_dkQ}SKOBUfBhl0X+u1+;W%CZYaNDg-l?fHEq-Mqol1w3K& zZKwjzk{K!F5L|P=ZR$+>;>^fpFmbu6rUk5|2dQjMsM|=TQZp+mB#LZD-(^5m>p`%` zG}P5=s16h=6;~H8d^VcjIwBa^bQ~raXB5eulnj@jTdgFQtZ+!SX5{thoyzX5tmM4O zbnObq@e!I)6}y*-RL#jSmDC&?Szh@Sf$b`eAGFyO5z?lte%^4ieP|e_4Lr-&Obs-o z;Y1ILB-HIn#%@|}m_zcV;-zeFI^CZDtCLvT-gEWwb??kW(~A!U$z8TM_*M@_yTOkw za4aL?xCOpYz?0`}D{Zf*ep5wK?AxP6;>0Zwp(T;6{+V5|>yuU4tR+${woRZE}SEa&9U?)j_DgF|+Zb^4fW)N`Glg9<`MDDZTUgG`4&g%av2 zpSTM0fDgTRZ;p&zy-`5P+pfBglUB>RRovL6enV^YXrS=5W;J`cl^eckR$4cA&gMMO zpK(9lWpbmLsnO#|Ge$rFEI13#sW`5%2~fe~zaFh!%-D}MvRH)8Yp1-zpTiBe=jC3z zRvtkvhrTP51zZNk4nBC>NNeBMxNsa*!en%Nq}+e;V-6Xex2<;Ep>w9^eDUb~#uPn{Sa zKf%wOikH38bec4cMT6zfoyDc4`$kug&-d{x!7`NrlD4ggbg30{orFozZ1S;)-I{6H zbBBb)#zU!s@ujtVD`TNK9A$9xkG_pfTeHLf`KXa1be;vY{PUA-SDrB&>0aK6l)fSo zl6ycwX!ZrTM|unsJ)$CJ;DlIL&YTzWMc7(^PYh|ac zHSYs|Dww%a@tIXs(uPZ~nl#-n%%bLt97rd9FJ1gYK?v^Mt?l)udpP`Z6HeBvVu#Svx03vu}UQs>E&CzG(ya}9lQ+tOcBr=M$G zak((KibXqIO+KnP{aLUkEV)=sFzy~C%AW>;1apazpP!a@S>K5_h6_(D8#OVvglh%> ziw#bxGP07}vP7czJvE7MyT@{jO*oQ!(kqo|lH1$Pqfoo9gsv<|gT*UY@x-BY!QszB zp6@|5rRG`qr-RQAd0_+AsP~@CoU)qpq64dZz_=}8V~m%4$=W~u+hb;dDll=1_#f_` BM_K>? literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/clearCapsule.png b/2023/scripts/animation_tools/springmagic/icons/clearCapsule.png new file mode 100644 index 0000000000000000000000000000000000000000..507c483f451ebf5a5017a2b179566b1c50d29570 GIT binary patch literal 4732 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

K8!>#^XXt!O1#bSl6qYLE!52(#YKzz8o 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 Z9RNDox9feyrlJ4<002ovPDHLkV1juYxsm_? literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/ctrl_bind.png b/2023/scripts/animation_tools/springmagic/icons/ctrl_bind.png new file mode 100644 index 0000000000000000000000000000000000000000..7f343f280c5fe2c93f0f2afb6a367f3dc6faeea0 GIT binary patch literal 4107 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 JPDHLkV1fnLqly3k literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/donut.png b/2023/scripts/animation_tools/springmagic/icons/donut.png new file mode 100644 index 0000000000000000000000000000000000000000..d7acafe0404468e1994beec2446e21b5de7cc012 GIT binary patch literal 1098 zcmV-Q1hxB#P)oBRyGC?mDIsIJb}MD2GinUzA0#$0(M07RMH6SLBCloA^<|IeciRpc=IbUWH@Wxs`~1%N zp6~fl)Etk!YL%?NJg3&gF;)^MHY{!#DqUVc{olu;rzEF0WIW#@D7*%qf!B5Oz#vd? zWNRw4S1O=gtGqV2DSP{sJ$sV>6L9>+HO(d=X~v*s;O*K4VBI1Yfei@nu1*63M}tX_ z`C5xo9FCf`OaBoTe6MWZ70WW*OhG*Y8aN5QlSE)W$B57do`&}iWkF|kDl}`Ao-VCw z;hZqA>oS8E*{^?mCszcWc3RNH3tCq?WfHSs2 z*G*d7OuJ6l#SnLXe?&1S*S5j`Q9j5ur~o1aPyvD&aX!p zBc49+Y6ch(9xwgFniWHS7dIK2;3Bte8fYwHP*+L}Q5sC3J5P}{3-r5LPr%K>x2IP^ z-*akc-Yf@edGf4=CQfqg=cAfZ|2XUQjk92@TLk7}srav{G#T0|RbUYmy%vgMq9r@H z&qEVDU;~kQ*3h{|vc#@U-TD5%nd|le_0bTe<4G zMWa|E0z;!^jX{JF={Zepo&r9jhyEmO!=Z3XFRX1(p2SRQxa{bI|FzX~ypW=EW zTC9atRK#o}W*s(*7u8<*+CORepp{HVg(8*s7 zf4~C?()D}JeE5B2J@izoXG?xCTDK};*p!7jO3^y<;fKc1->-cva(_*ZF651XR8+98!7pi`0akSJlwJ8K~srT?D(;5DKKGtRJ=60 zx2J*k-F2tFu~fIi20s^QrHqtjeCiLE@ z)2sgV!Uc+=r_L2Ues^e-(|?hhBEawZa`E;dFc$n{y!Y0iejj}CvNXQuFIvEG!nsD~ QMF0Q*07*qoM6N<$g6$XuQ2+n{ literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/english.png b/2023/scripts/animation_tools/springmagic/icons/english.png new file mode 100644 index 0000000000000000000000000000000000000000..2bf1f6583365cfffc0722029d9e4a2df6aaf03ff GIT binary patch literal 4265 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/japanese.png b/2023/scripts/animation_tools/springmagic/icons/japanese.png new file mode 100644 index 0000000000000000000000000000000000000000..7967692894a9b2efbdbc882667f031a3a4faa50f GIT binary patch literal 16328 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/language.png b/2023/scripts/animation_tools/springmagic/icons/language.png new file mode 100644 index 0000000000000000000000000000000000000000..755a11de66563dfb1766fc25519207e2aa6855df GIT binary patch literal 4366 zcmV+p5%KPcP)k~+jMM-C86G?OH(yPjUq5j)^C4zBpG36pWS`-kM}uu?wxb*d%yF2=bS6LapOkM z>5COTPd>e^ryzYn&yM^#Js%X#z_*2yQ9W)v>c)*jJ==a7`Y?S4)XtN%HFua9sq z;hv3&dOjxwwP_is;B!w+nvQ+r=V7{@vbztUy|n|PIZJl*tVx`VBUxinn~{lzgakCi z#|LR7h5;CfX#keYc(@kF!@nmUj;G>bj{iBPpJ432-{{d4ObiOvWM!jr+ys=(nv1ek z8?k-rA`~Re$7>&a1kurb2YQZVLIbK^zP`HVweshlSWO;^18$ zhiix95ZJ^2r}dr}u*TgxwhZVe+#@K-K-4ECGbmZ8Wb{g=&cZhfm*d#_t@!%+{g^vu z1s2WT2vOOx#i-BVkP2e4v1k;Ci$(LSSon9v!kkEA?_ue~Dxi;rb7m|8J7eK{hQE{g z&J$bgy<_Wuex_JKP>5bq@6hIr!NtkbacbUT94Xq2&$hgTw_bh&@4a&nCC4s6RNgNa z6BDG7n9^e4-4cUqe~p1HKL+NQUMziB`-$cC#27SZ#K4~2d(NhhK~oAz;_tWt{|)w~ zV4M)WMAW6Ep*%Yu=L@Ic*i(yecxf^Iyx})^ckgR(oWBVFv2!?)5(iOLP%N56!4Mk- zV_X!PCP$&;^(cIQEDEj#Q5>RPtOER>E$SykvyTA#JK5J)90kv>qF_(wxxW8cqoQGo z5k_Y;YV|3&l#z>X$4vg=_HU>Rl*3co@E_TG-zDBfLx2;47&Lq8go!#h`>ENEzi))4sO&K~4ABo~|Khb?8=-^$c!}llHZ@&)C z!rtqGpgB5*0f8XE;AS0>@{c!nt_|nu?2IeeO3X z|M(CEwOSaHw9Gdxy8foc&C^=kF4LmBL5m+uTHLMC;?@P8KcmIfx3qB0)WR08<%6|o z7KkBngy))*weT#`qVshvTDNN9%oncfm>wJ%=3Z^Q9%adyIGJ6DPbSR4!Fj7u_HPH! zcJv55FYSe6!3x+|6YdWV!{KwFvf?~MwHgf?h%sIR?rbzgXUNb>^!!!pM5k*Ac-W0*V2iejMnm8G>oHT7`X(Lq@?3S=6D<$ zGXq~OU4xc)-iG^+e}Ma`*|5%C2=9h1@YyWrXmP;f@t~rrqF1ny7>J1v_O939=Bayv zck3wkHXoeA2S!m&Acn{Na{XdS_h?Qg36X50VNZ=mwZ2#GSmsz9;woi&?nQXtdIRp| zE1BQpKi`mm;{(DAB@)vH4L zUKPA6ROtFxg_{@nzycM;`bgk!JxL-dBvlY187er&D$)Lmio?d^@kwZ&o{y7xS#WJz z5AXiH%*zb8($eA7^W3{{;)>Ua0Hp$f%V_sq#r}hzV)W9Np_}&-#3>6Ys8qs0jKn@( z$tgk!?ij-SIv zU!1|~Z+}cdxf}*!B-Ug(nzQ7rQXVVVlBOs*oMYr13SJYgC(0>DQsk6Vz>!8WRDFUf z_*N@9#i-D_UJdV>ClT1S799s(!Ii%q#Px4aqpPtR*BuUA_qC#{trZ=YDcR8mzuyPH z*8{J|4Y$(+caszKNkgJZoRqmIW$uw=X|G_e z0ZwUh-CTvY?jS@K;!sVzB zSD-3Ffr>z=q535u{K?wyVXpSbaBtgRAB`Fk4qfnt7 zf$dUUeLn)N+hlO&P%b4BZaoF#)M$xfp{cb9$eF`3o>M5{lC#QXD%fOdSQKjJek5xk z5_O75)XF1KEsI7aDN#h@lr)lS@rV&<961t(QKMiA4TYJ)W^p(L#b{CzjhKQYR?MkI z929g=(2*+Ru*%`zAjS0$Bhay%QOf5KGji@Y%5X|*Rk3JPLIjzce3+YZPKq`YivXoe zN=|cv9A&FXm0X1iQp%S&6CtCZNQ634KX@=2hYf?_kw;((d4f?4Ws!u#78%YQBr)Nv zV50Ap6o%Q6BZF&_0xi>&%sHaJC)c8-m|Boi!$(0c<=nD+f>s6Be+8FWr524!4Qkm| zlX8UyC2UK1?Knm636e%)5EwiNrU!?>{P;t#Mmz$W>T%d~k24QPQ8J8qC=4|PS=G*D z1rg*_1LPum<&?d0KFaxI0|e!o|EC}^4H3co&>)x}84Sxv5;_=GF_8{sZVqR4KMK3< z2{>ZH;EaiYi_?)?qktz;i58VIIILcIZ{!5IpdfS1Nx5b|+)C~VYX5hF4Fe>NgDE(S zj1a-{7Ytr7}W}5>9WW5+%;_f5*k4 z|ASy~m^r+U4Q1qp!=@P-Tzg#;Q{nxm8EAcW6!c* zo7Q^Vv08%Mwlv|o&4w$hgtAe+>2Ck|aI4@PfUV0I>@6My**zx-X z2M)6_n1_R58ZnfS8v(0|1(K?PYf27$Me`AOX$LyrKLFQ%{0^O=oMNOA_YJE@qQI5% za@^^@io3V(pu77fZr{C)TX$~a+RZL>UAv4M?OnLqdJS!@t?>K2@VkBRIlXW>oNzYV zQCC?9QN@2FXyCMC96A)HM=2N1D&~akNQ;GI?nHQA*p9C^ZAI6yFX8?0Jqog#DdioI zZ-St&x)N^hRU9p;!=3NDal88m+`Z9_?{D0~?T#+Ap7{oypML`H*GJ)}&?Qq7rZ3)! zoLRe(^~*g-owlJ@u;!Lz%u2qtaLMv$IdIX2679PdUTz;k}YWn190`f^*tL)GRN; znz$(_%$$!|6W8K~(+211lV}x3P>>ZW>&3yju1TUopt_cVUWDdsg*a~uw3BwB{pKy) zx!#Vht}b+3y^27mAO3^yqc$uGRVp3ockDoIiyNPxJdROmYkCE%`=dy?I!e_K`vvMB z7y`qPAux`50_IsW@pkGYERQb4^o02so4g!jp4^J>10LAVor7P@wOOj;8p|!eTpMg{ z5ghWWI@nw;JdwQ#A!GI+e9R6+PTGw_=PDUN=3qxV?AJQsZ@Uazu zFqhTg!i94K1SwZbxjKr~4SoQ1jGQHs^V5W>_^mD%%d}H4bMzdfWj>AQ>}QZYZ5OV0 z1kiNuJX%<>Rxa>Ol`1q0J4tUW_$wn4Wd3GMoh?NkP3>t(AidC_#p!8fp09o!PBu(3m zD;#3Ox94H!tlz-J-@qkGppnZ}JuBH-Qi4WK9if?P5SqUk5iFE@2!+ET&u3J#H{+Q- zZ^7bp!Rc&9lidTO!-$Ku4G;5fn$90S4Tx+r!<3d1(*>x4Y^4Rpif-| zEgzy_^rRG&JD_Y`A~QEEDJ(`8bwraJq<#^DhirPE}+g}L1@Nmgyjjtdq1+A zV!muK#JSrLmc0?GvCp8s+KwiN4J}3oKin@tbae8QI3F8>cOMPK{*gLtk)>mWG7nSZ zeu*6YV#KGeL}bygMR4scSfIeiw5QWj!N&9F zQB`9=2qP%T+ZgOO5Xn#By~Ww9A?7pZ7QKiIrKJ$P_`45!^3@aYv?3P^)nh0(6*-Bs z8M!4;XRL%gi#MlWc=p;}C@PRJ^;vkGc2u4^gBotl%P3f?(grEv2J|A=G%nhOXax0j~rnSCs4v%zQ`)BJ$nje+?|A` zt>k^y-`76~UpS%<;aJRPg=MZs7;}Ep^Z$yrKqo|ZyYKe+J6iFF_ddbIIhzofvJmpb z1&}5$fjDIu!c&$bOn`4Rkl69XXsEt~(}xe^0@vb`T`CE4OvA=&!Xlsy?WqOm7grmSO$v5YNCN(m!d)`Ze%2q}|n ziO^W0NS5p-p|Qkde|XNBPRsNB)34w2{P8^Zocn#>`?=@)e%z{sL7(+z#h;;4M8{nYauCYoK-MM>xoATB{*Zs0V};=BQDE^%_H*M� znDFp!PlFrRhIX*P(<6p5cN6V3u0@=VG(L0ilSpswqd-5()YS6Z<#KWwd8Gy0$`QPs zODc9O%LyDph97}-iNxr`Ya1(q>3QJ;jG~-lq#ApsIsm2_u)aZ&GUY1%;daN0pe#M6>eCAi^a21Ls?00bA?o~<2J!;!~E2FL8kXv*ihtTpFpH*r<5 znf|r%>-3C(^JFWf+iG;Qlfk{7uF$K>8E*l)O@KrHqNQRFB=a=OE5F4^?7U}0sQlC-^Dv41#HbzO1LZ6GpeVPkZy$8Q>3NKsGDug(rzyPfhLnoV$naj9F}q4M5Z9~6K0(GF6>Cfw;u^oGFe8$<3W@V!1BA=^ z)h8cseMCZ62YsTWk7PG%_Xg@gbF$Y3Sz`gGy^;c!3P4=dVvM>p9cWI<83v&I1OJ(O z@leDIW&n<6hU_iW*t+c*522bp?U`_SHI&|F%Te`hyQ+_HYHk?`-obL4KT$)#s2bMA z_^6OUFmrp#AZN)l`Gaia0j@J46YkJ0*8CYY{NPxtu22q7;E7!_(@SS^>;RBu3yo% zzG@~YRnLbSHB&Z;QAP=y{prmsRGnc%Vcta_8O%M&eD)G&4LTHu(=kJsY2A~YlqlgU zV>X3^U6QZ)Lp<)Deu<!#?|LW4p{2Ru8w`E#NHRFObV$Dj=7PxXbi9 zDY?OD|62v2Wc!;OH{FcQ_AcxV;EjFBl>kdHNeD_H=NTD$8mo0+^H`1U8*|)0YZ7?( znDIk{VLapw-~A4}u<=v;fr1vK4>HD}^^{e1rPXTa5{j+(a`>^#%kXR?ROt(WC^5bl z3g>6cG&?;^7$#(#Z|d1v6faI9yqT7Tyyg56hFYF^b_BavyY#UO&2;Q9iUy_+y-PdZ zBG$sz;xEe}t0r62>6CAmAC&)Rw_kT`siTt@=iTMCd04;wIHQj_meQ>_% zNNk(FGNV$KI|g;n$HY~S7|@x zlZZ5g`s|apM3$ZNb)0SwBsq|Z6ITs}%#g;jPT1brXk=LXojY36p{7a+`1nSWYr*H! zPf)xz3FnL{PDvdWCKvZY6RZgCgnI>F3Xc)ThD=Xdbp*^~UAnv9A1{45H36T%zOAfC4RE}k+iR=bA@)`yleZX(7qT!TcNV5v7kPp zj*os_MvVU*|E&w!lnEz{8@l&FRaG&>1$iK9CmiNJni}lZojR4`^T_@5UiKP|(Pw}3 z-wp5|Hu!M6<$3S(=Kkc1rSr@aaIADYtjdcZo9&XRa=U`^;d*wu@L6G<%F^{9iu^Fj zt6n+AG$S*8x5~`oNNC(}?z!BI^pk2TZ<2elRK!ZMv*jtv3VW^A3^gd`6Qb0L+Bo-~ z9Ai0M?*3VvYTF}OdLmz?Kt(6WeRUB2z`||fJe4$MdZYmJS#RQS8|C%IC8z2R&$nOR z?z6mwt)RS^6e@L<>f1q-ESvx0y)Xs!VflpUwe*YeeXvs5z4~$M6354jC2K|Jt6c`Z zSXW!OJ~!u}utTn7ti`XtzB1UZ)1=cOaZDmACS62Ch)u9!_FPNcU~X|Pck9a_lXdKb z=Y4Yj>d^9uRT_S|Q&q_UYb$cpOLNPT?Y9&+UYnvQI8qM)KS=~Q8Z9Gh;bdPEn`O<+ti1-3nUtb6Gn1}0sSKajgTLH9*|MwvH`u^X# zeLt;aV-LR;V4we6VBbNy$unO8v<7Wo|B8MG0UpIP@2~n-%xV9A2iXj2MOFV+z^3O< z5E}h=>Q9ib%h+fD$AYg1|81N$fp24*ZCd{ z7E#dl9gh~L=`TZQ1~mPaLW|M#mmr&IPBYll9sZ@?GQJzz9RDTAw^{d3lZ`C=wtPE* z|3kjJr2pgF^8vYM(q> IplKcY55zNy-~a#s literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/paypal.png b/2023/scripts/animation_tools/springmagic/icons/paypal.png new file mode 100644 index 0000000000000000000000000000000000000000..d4463169335f3eaa571da565b845bb3baf799fff GIT binary patch literal 17632 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/redo.png b/2023/scripts/animation_tools/springmagic/icons/redo.png new file mode 100644 index 0000000000000000000000000000000000000000..a75ef63caf8eafc13072fcb6d605281cb6a5bc40 GIT binary patch literal 4256 zcmV;R5MS?!P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000HcNklic?dAnRu=~&t zp1#qGyZZcPbylDKuGz^qQ=iHZB_o}hO*TIG*4|H^`opQW?nHq>am{D_n%|A=?k}$e z2iWud`}Hno*SBSnlkE#0fg6awGjwV@nn&)a3_~Y$R+?26h7mY`LyY1#8^sNs7W?wof4vXPgVYsyog?L@q>*Z5R(4j$w>`G~WeJ%! z#w;038~EYY2pH8Ct$vHdFEsvC`}5jo`A75HfR76Dj3dscQ-#!kGm^+=$8r=$iiFvS z7_FMc<~Hx3|CmwwBNz!B@JbT{hk#Gql7J%)%dadxv;I8)X#O(_btF|t4JJp@CFkBm zGFeQLNF^8=7$UbLMZb^a7)}G{^&sCzzLxqnQ zQ3XY*P-4&SQO52aN3z0vr$T+94h`ud1PC!gj4>V2X+L>vOC}U#!}C7X_fi;#l#gF0 zAf%n@ptI1V$wFs|rC^!5Zr~FTnhpFq>#G<2SX@nD-Re|vDcC$)g zT?aFCUuS@Cj6N~?WaWJ2Lj(C8c>OJIRLg|PfO=e~6*dVYA05V^y98+C=T_231KKx% z_JC7B4oCw@d!{W|k4$8D0Ca$0^oh~xa=emu9(U<~u!zYDZQY?0dH5|K?Z?o;5a6i= zb} z$KA;hVkDqO!0$F{L@v+|i~|n=+bzg@z=8$BDpLT8z>rle0OmVqIv+D_^Lk(c#8>F; z1}(a)UjW1yY17HKGRHO|pn=ea1~$7DU<$Yd)NS?|pbyw)35)^v*lX24=YJ{bC4Wi* zjBC1dyR*{})4`MS($AL8Z$uyhs=!4nc@Ag*bHI`%n6>8vmO#ngXYC#Yb_G+xiwQUJ z6_s&`NA#+TB%no0{Y6B?tegL?{jNSRZ?ko+BEG%4bf-bV64+_4{no6G-3dS|rL?)M zmC6aa&veVLB|++X>h}Sjvi}qRF%69cYgjd!KydKjLA~bu8t|_D8@dQw1+D{&fM=DI zbT$2&nbF8BsG5L}HZ5s3j;~y})imtY_st{L7$YJ*HR?dwg7^F|Ymw)yvgc_a67T_+mWZ>~$SI ztzWll%WV-@N5lYHL}FVt95z_7LhRxdTZ7x~k zDaR((s~p#QsAdV@R0#ho0-KTPnOv`F>#Qa4uK@sYrmB*;z5l!b00005I7RQH8Y7h~DifAzn2rgu2O9&BVk<@||g93sQk|6}LU=kprC<5vODOZb9 zkU~XTi-OeRaz$BNp-Nj(P(cKjO07z{f}$cz@lIId0CT$~ zlq(o6@Qjm!>*BoG+_*?CjfY#o#4r?eD1Zo*bFd1LP%NV>oN>c(>Cm}qn25s;PmxDD z<5sE?V*R~*u&xp*h_xfw;khKTE!KfXAls2`9mzIW3W-c5lBh&76;GznNi;gy4m*0_ zm>B4cA?1b9ece1p(?OOqE?h2;q7#X+v9W|$DnTOU6Uj6hjYy&pDHJ?3125YumU9$% zvCLv5$XFaVP{x%CqT~XJ7^{lQ36(_4opCr-qVZ$&zC=;uiNvx|b`V9Pf)hm~6G+6V zL_F@eCMsGg9KJLjmk0_$5h#|+ART#1T~xS4E|G;xrb#*Oo;ESGCSG3Sxu?8dk!Z@) zGP!#UgkTiulu8+UYZOTI1!a=OMK%g5(4l<#w z=zu4a@Dy7%g+!;?(rqbtk}aJ?QVTLN6Bffu!V`pTeLIF7n?k0OX>**j42+%OuKL#B~HkU|@V z=;fs@pA_0n!i`oH%4ldF6q@R22hvE69J~Y1!4}Wq+S=kBd0cxuiA>@0XtXdA&u%=l zntW2|wNe4pP9ofehN3Th+EKv~h>q*g9~_+oNL+pwUK?jkn`W}_4yW!FRWU0CvE}c;Ni3M^dWi%UXSWTt+lN@Q| z>!9a3kZEscN3~-R;lpr+k3azm{oMpmzm=)F2o=gStbseG6b4KuRCA09N0v(M$!oa$ zMn<9MI_Qy-IQ~pIsWQiV*I#)uaYuh;R9GxD2@D9biQ+=$1M{M|U_g*f6c;idm>0zb z1A=U#xRCk4yeKXh5M&d@h0F)$MRCD^Ae$&IWIix2iVFq=*+g+6^MQF$TreQWCW;H0 z56p|=f&oD`QC!G;U|tj#3<$D`;zH&F^P;$5K#)xo7cw817sUkwf^4F=komy8C@vTf zWD~`O%m?O0alwEfn1#RUU`Y@)c3`M|s=E*KDG6A>3?;w?>34858e z3%!F`I^QrEdVdqk_4M@ufVjl~kdOobeQ%)OCjbyl0)UPX0H9|9z&uI%=2{N`m|@Ox zTgg`3uE~t_G1_2!>CMcqKV(FF$0*D=_{rBtf8_mRZ)iziMDfvd7aygL(r5K?zoPYt z?z>ZNY2pHvSL=@@9XtE}?ryWNh?$8l*!=y$O&b;(mUP@Q!Z8OXbu-ZUjWQ5*2 z-=;;2N;FSg`#hU^)&b*f+>~w{54~F|of~-`zg>4;{m{um+PZC8E|;mBS2aak1{)VS zNW6*jQru3?PxH9mT(tg=j+be@8ZTP5^R>HygfA_ud~IGG1hV?v7Mfa>2b!2HX03hm zwD`=8w4WLq)4zLWWVLW}Nhp|8`F&oDOjZWuDUGx+j+7eUy{{S+%NRk1j84yRT_zPD z-L4XlfPvfJ2LHS!a3C$epsbZaBF%~Et{&2eiL6XJ#!%Lt>bhG|r9C(0H^#n8dcW-h zDqr6?e(#j-uM5w0&8Nn6KJ4qsx8Jk;pbWz2blaoe3<$oy>KnRYjj{E0zw1{D;;JWhP&6k&3hd*%7QRe0by@SEaj|mN9*?E0 zhAz2W&R%LFODq+iyy2Je-fjYw5PacQcB#B><+kpX51$(>N)w5W+HBdPj00|527PB# z`vGy=c6r{scW>t}A>o6TRM{FbuL~cV?C%$R-8X~?&|AwYr6?df70n?{25(*DgraK-yd?Sw;D!jrmQm*`n%vdY|WpEzH{-kM$h z^OvoA*?CVoTl8{sbBik~Dwxbl=2x=Vr@kd!F)I?b1Ua%ALeukma&mG~+k%2~XC`L- zvdifs57%Ya?uH7_N9W&fW}j{;7q&T8btfdG9I@G+ug@^97AR{Qv6-y-srfrnQ-V#~ z!o%rdGPaJZ`^HxOu?y0NA2l{u?9D75uy?mG#+by%#~bL>*BjhvyYn;926WRmZZ}h= zVwBe%1XfzdH1nYCBald%-9484&C%0i?a9;y`d*p3Gy2`@>k~iC$r0X5POeQU^nCc) zwQC03t+llWpZwktxAReb+s4j6O6z`*NZW=C{&+rEu$W$EV#sPp_Kxj;l~uy6(w*ZQ zylxxT!lEeaPP;C4e{Reg+nCvrj-7g`Ykq2qD=jM;FlS^f|ICvBy|RApU`EE%pIWm2 zOw#wCg}wR>P`6X81BCQFH+k0c`<1J6FO=SRrYQfY=w^0sK;O1i{Z?KxSq<8NNrFOI zn{J2a6&ih!-E;V8%>r-!Z@mKf3#;9@(44BOs&k%}7|m-qV@%hksvQ+E!O}+2fjUdB zk#Z>Di)?FS(|l(=o}_Zo0==OSyj2V7jzeR8YHxmP&zl**uc@D3u`#5shyGOnmbU1%It6rLp|G%=|fB5BmhIIX3{&hPH*{FrUb&Lqv&Y>e9l7b)61Gk3B>c7B|h zG@DSc22EM01@)oO6k1=zf+;ROC<-Q6t!-4O*kXwUQK}TF^r1?P8snWL8~YGCFmvxc z_k8Dk=Wi+l{d<}lA8f=htU1%G=Fr+2y&LP%_qEEFX0)`2-Gy+UYlb7hhgg^4Y7o!Z zU=ZdYFh*az2s<#WZo86T{4Ky-FQb?Mh0vc0=#UOoIoz8h-JGn+DBrVz?W6R zp%k$~s*oMP71xJ2PbEp6VH3C@Q7oSnBw-iMp)<{hG{=yPB=d2Z;qcXmK;C@Alyhp& zsxNd(5ydd{WSSls8KFkvlv6e%J$^3%SBiULZis}I}I2{USnKsS_O8L}zqtRWg4$#W>&gu$DnC;*n! zIF3y+@ubdZdd<#yc!BR>(~P1>Op<5W?u3|DgsvV=Q6*7jx)i>K%{V~_939qtTgdk+ zHhovDtoRUwuAg_^QmqRHif-rzMc2a>Wx4A3jx5kEClcL!<55XrRN|a6t!6l#fQ|lTWX_ zjbX9ojM|ki&uRZGEp^uMv3sNw?@mp1wN5;B?2**$g>+@;#N_0UH|FM^W4>0;w1N89 zufccP8a`^-u(?uceYn15lX8fPjc>$vH+*&*9E<(5DDB;~>HFvZg&*Gj<0X-z^?>WW z)mZWy_xCm3JG~fVztiJP^PU@vUp(;sw>Ou}KmR`U)_vFKf7nrN`u!{}#LxAWsvlf_ zWy{g(#reg*renpc8%ouazigZR>b-@}UuZh6o?58T=0nx<+@)8ac>HoFqy19LuI5T$T^aMk+pFg~Pf;!?odg;mW(#{UD*f3z0> literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/update.png b/2023/scripts/animation_tools/springmagic/icons/update.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f4d7104d56d45f88d2d3aea739c6ecfdb7eb48 GIT binary patch literal 4462 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 AK>z>% literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/vimeo.png b/2023/scripts/animation_tools/springmagic/icons/vimeo.png new file mode 100644 index 0000000000000000000000000000000000000000..319d5a68d85ba5eee9ef467ce1a13eafd404efc2 GIT binary patch literal 20737 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/wind.png b/2023/scripts/animation_tools/springmagic/icons/wind.png new file mode 100644 index 0000000000000000000000000000000000000000..47938d943ca58ab8b72e21d9895801f790ada43a GIT binary patch literal 4543 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/icons/youtube.png b/2023/scripts/animation_tools/springmagic/icons/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9ac8cc87094cd93c17aa4d195991de8b676388 GIT binary patch literal 18445 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 X>8%d7`mkvBANCkvP4uqoIv)KmTwC++ literal 0 HcmV?d00001 diff --git a/2023/scripts/animation_tools/springmagic/main.py b/2023/scripts/animation_tools/springmagic/main.py new file mode 100644 index 0000000..18e2d56 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/main.py @@ -0,0 +1,13 @@ +from .import ui as ui + + +def main(*args, **kwargs): + widget = ui.SpringMagicWidget() + widget.show() + + +if __name__ == "__main__": + import springmagic + + with springmagic.app(): + springmagic.main() diff --git a/2023/scripts/animation_tools/springmagic/mkDevTools.py b/2023/scripts/animation_tools/springmagic/mkDevTools.py new file mode 100644 index 0000000..915fac1 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/mkDevTools.py @@ -0,0 +1,36 @@ +from os import path +import compileall +import sys, types + + +def recompile(modulename): + """Recompile the given module, its directory's contents!""" + myScriptPath = sys.modules[modulename.__name__].__path__[0] + if path.isdir(myScriptPath): + compileall.compile_dir(myScriptPath, force=True) + + +def reload_module(modulename): + """Reload the given module and all children""" + + # Get a reference to each loaded module + loaded_modules = dict([(key, value) for key, value in list(sys.modules.items()) + if key.startswith(modulename.__name__) and + isinstance(value, types.ModuleType)]) + + # Delete references to these loaded modules from sys.modules + for key in loaded_modules: + del sys.modules[key] + + # Load each of the modules again + # Make old modules share state with new modules + for key in loaded_modules: + print('re-loading %s' % key) + newmodule = __import__(key) + oldmodule = loaded_modules[key] + oldmodule.__dict__.clear() + oldmodule.__dict__.update(newmodule.__dict__) + +def refresh(modulename): + recompile(modulename) + reload_module(modulename) \ No newline at end of file diff --git a/2023/scripts/animation_tools/springmagic/springMagic.py b/2023/scripts/animation_tools/springmagic/springMagic.py new file mode 100644 index 0000000..7c761ea --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/springMagic.py @@ -0,0 +1,28 @@ +import sys +import os +import inspect + + +def main(): + # Add SprinMagic path to PYTHON_PATH + script_name = inspect.getframeinfo(inspect.currentframe()).filename + script_path = os.path.dirname(os.path.abspath(script_name)) + path_name = os.path.dirname(script_path) + + if os.path.exists(path_name) and path_name not in sys.path: + sys.path.append(path_name) + + # Import SpringMagic module + + # Recompile SpringMagic module if modification has been made + + from . import main as app + from . import mkDevTools as dev + + import springmagic + dev.refresh(springmagic) + # Launch SpringMagic + app.main() + + # Remove SprinMagic path from PYTHON_PATH + sys.path.remove(path_name) diff --git a/2023/scripts/animation_tools/springmagic/springMagic.ui b/2023/scripts/animation_tools/springmagic/springMagic.ui new file mode 100644 index 0000000..2120b5d --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/springMagic.ui @@ -0,0 +1,1664 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 8 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + Spring Magic + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 46 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 52 + 71 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the spring is, bigger value, softer result.</p><p>Important: only working for &quot;X-axis aiming to child&quot; joint chain.</p></body></html> + + + Spring + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 90 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the twist (X-axis) is</p></body></html> + + + Twist + + + + + + 120 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + Bone Pose + + + + + 10 + 20 + 61 + 31 + + + + Go to joint bind pose + + + Bind Pose + + + + + + 10 + 60 + 61 + 31 + + + + + 8 + + + + Set joint chain as straight + + + Straight + + + + + + 80 + 20 + 51 + 31 + + + + Copy bone poses + + + Copy + + + + + + 80 + 60 + 51 + 31 + + + + Paste bone poses + + + Paste + + + + + + + 260 + 280 + 81 + 51 + + + + + 10 + 75 + true + + + + <html><head/><body><p>Affect select object only</p></body></html> + + + Apply + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + Collisions + + + + + 10 + 30 + 61 + 17 + + + + <html><head/><body><p>Active collision calculation with capsule body in scene.</p><p>May slow down the calculation</p></body></html> + + + Active + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>Add a capsule at original point if select notion, or add a capsule match with selected bone.</p><p>Note: you can adjust the capsule with move or scale the cylinder at middle. Parent capsule to diffecrent object to move follow it.</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>Clear all capsules in scene</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 80 + 30 + 75 + 17 + + + + <html><head/><body><p>Click on this if capsule attach on a fast move bone, like sprinting legs, to reduce the clip through.</p><p>Note: May cause more poping if capsule moving slowly.</p></body></html> + + + Fast Move + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 232 + 0 + 71 + 16 + + + + <html><head/><body><p>Tension of the chain, means how much the force of bend will be path through the chain, only take effect when collision happends. Can reduce poping and clip through of collision result.</p></body></html> + + + Tension + + + + + false + + + + 271 + 0 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + Key Setting + + + + false + + + + 120 + 50 + 71 + 16 + + + + <html><head/><body><p>Remove precision keys on sub frame after calculation</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 20 + 50 + 71 + 16 + + + + <html><head/><body><p>How many sub frame that will be go through during 1 frame, that for capture really fast move</p><p>collision body. Default value is 1, if set as 5, means will step as 1/5 frame to calculation.</p><p>will increase calculation time by times</p></body></html> + + + Sub-Frame + + + + + false + + + + 80 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 61 + 17 + + + + Current time line range + + + Active + + + true + + + + + + 140 + 20 + 51 + 17 + + + + From + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 230 + 20 + 21 + 16 + + + + To + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 280 + 50 + 51 + 16 + + + + <html><head/><body><p>Will caculate twice to get looped result</p></body></html> + + + Loop + + + false + + + + + true + + + + 194 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Add wind controller</p></body></html> + + + Wind + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + Controller + + + + + 10 + 20 + 71 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Bind bone chain to selected rigging controller</p></body></html> + + + Bind + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + <html><head/><body><p>Bake bone chain animation back to controller</p></body></html> + + + Bake + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 166 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define flexibility of spring, which can produce strech and squash animation</p></body></html> + + + Flex + + + + + + 192 + 50 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 52 + 61 + 16 + + + + + 8 + + + + <html><head/><body><p>set between 0 to 1</p><p>define inertia of spring, which can produce weight result</p></body></html> + + + Inertia + + + + + + 277 + 50 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 320 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + New Version Available! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Tutorials on YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Set Language + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2023/scripts/animation_tools/springmagic/springMagic_chn.ui b/2023/scripts/animation_tools/springmagic/springMagic_chn.ui new file mode 100644 index 0000000..f44b798 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/springMagic_chn.ui @@ -0,0 +1,1821 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 9 + 50 + false + PreferDefault + true + + + + false + + + + + + + + + + + + + + + + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + + + icons/spring.pngicons/spring.png + + + 算飘带 + + + + true + + + + 20 + -20 + 341 + 341 + + + + + 10 + + + + 计算飘带 + + + true + + + + + 40 + 40 + 31 + 20 + + + + + 10 + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,链条摆动幅度,数字越大结果越柔软</p><p>注意:计算只对+X轴朝向子物体的骨骼链有效</p></body></html> + + + 摆动 + + + + + + 160 + -68 + 31 + 16 + + + + + 10 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + + 10 + + + + 0 + + + + + + 86 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,拧转效果(X轴)的柔软度,越大拧得越多</p></body></html> + + + 拧转 + + + + + + 116 + 40 + 31 + 20 + + + + + 10 + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 0 + 220 + 141 + 101 + + + + + 10 + + + + 骨骼姿态 + + + + + 10 + 20 + 61 + 31 + + + + + 10 + + + + 回到蒙皮姿态 + + + 蒙皮姿态 + + + + + + 10 + 60 + 61 + 31 + + + + + 10 + + + + 清零旋转值 + + + 拉直 + + + + + + 80 + 20 + 51 + 31 + + + + + 10 + + + + 复制所选的骨骼姿势 + + + 复制 + + + + + + 80 + 60 + 51 + 31 + + + + + 10 + + + + 粘贴骨骼姿势 + + + 粘贴 + + + + + + + 250 + 270 + 81 + 51 + + + + + 12 + 75 + true + + + + <html><head/><body><p>仅计算选中的物体</p></body></html> + + + 计算 + + + + + + 350 + 22 + 41 + 16 + + + + + 10 + + + + UpAxis + + + + + + 0 + 150 + 331 + 61 + + + + + 10 + + + + 碰撞 + + + + + 10 + 30 + 51 + 17 + + + + + 10 + + + + <html><head/><body><p>勾选后会计算飘带与场景中胶囊体的碰撞</p><p>会减慢计算速度</p></body></html> + + + 启用 + + + + + false + + + + 70 + 30 + 71 + 17 + + + + + 10 + + + + <html><head/><body><p>如果胶囊体附加在快速移动的物体上,比如奔跑中的双腿与裙子的碰撞。勾选此项时,可以减少穿插。</p><p>注意:在碰撞体移动较慢时勾选此项,可能会造成结果抖动。</p></body></html> + + + 快速移动 + + + + + + 380 + 22 + 50 + 16 + + + + + 10 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + + 10 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 170 + 14 + 41 + 41 + + + + <html><head/><body><p>创建一个胶囊体,如果不选择骨骼,则在原点生成,如选择骨骼,则跟骨骼大小位置对齐</p><p>注意:可以缩放移动中间的圆柱形来调整胶囊体。也可以将胶囊体设为子物体来跟随父物体移动。</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 220 + 120 + 41 + 41 + + + + 删除选中的胶囊体 + + + + + + + icons/removeCapsule.pngicons/removeCapsule.png + + + + 32 + 32 + + + + + + true + + + + 270 + 14 + 41 + 41 + + + + 清除场景中所有的胶囊体 + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + true + + + + 220 + 14 + 41 + 41 + + + + <html><head/><body><p>创建一个碰撞平面</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 230 + -10 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>链条张力,用于定义由碰撞造成的弯曲如何在链条中传递,仅在碰撞发生时生效。</p><p>适当设置可减少碰撞计算结果的抖动和穿插。</p></body></html> + + + 张力 + + + + + false + + + + 260 + -20 + 31 + 20 + + + + + 10 + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 0 + 70 + 331 + 71 + + + + + 10 + + + + 计算范围 + + + + + 20 + 20 + 91 + 17 + + + + + 10 + + + + 当前时间轴显示范围 + + + 当前时间轴 + + + true + + + + + + 140 + 20 + 41 + 17 + + + + + 10 + + + + + + + + + false + + + + 180 + 20 + 31 + 20 + + + + + 10 + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 220 + 20 + 16 + 16 + + + + + 10 + + + + + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + 10 + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + false + + + + 30 + 48 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>将一帧拆分成若干碎帧来进行细分计算,以捕捉非常快速移动的碰撞体</p><p>相应的会成倍增加计算时间,但能获得更精细的效果</p><p>默认为1,如设为5,则会以1/5帧为步进来计算</p></body></html> + + + 拆帧 + + + + + false + + + + 60 + 46 + 31 + 20 + + + + + 10 + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 270 + 50 + 51 + 16 + + + + + 10 + + + + <html><head/><body><p>是否循环计算,以对齐首尾帧</p></body></html> + + + 循环 + + + false + + + + + false + + + + 100 + 50 + 71 + 16 + + + + + 10 + + + + <html><head/><body><p>在计算完成后清理不在整数上的细碎关键帧</p></body></html> + + + 清理碎帧 + + + true + + + + + true + + + + 190 + 50 + 71 + 16 + + + + + 10 + + + + <html><head/><body><p>使计算结果尽量贴合已有的骨骼关键帧</p></body></html> + + + 姿态拟合 + + + true + + + false + + + + + + + 310 + 30 + 30 + 30 + + + + + 0 + 0 + + + + 在当前书签栏创建快捷启动图标 + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + + + + 160 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,给骨骼链增加弹性,用于创造拉伸和挤压的效果</p></body></html> + + + 伸缩 + + + + + + 190 + 40 + 31 + 20 + + + + + 10 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 150 + 220 + 91 + 101 + + + + + 10 + + + + 控制器 + + + + + 10 + 20 + 71 + 31 + + + + + 10 + 50 + false + + + + <html><head/><body><p>根据所选择的动画控制器来创建骨骼链</p></body></html> + + + 绑定 + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + + 10 + + + + <html><head/><body><p>将所选骨骼链的计算结果烘焙到控制器上</p></body></html> + + + 烘焙 + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 250 + 230 + 81 + 31 + + + + + 10 + 50 + false + + + + <html><head/><body><p>创建风向控制器</p></body></html> + + + + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 270 + 41 + 31 + 20 + + + + + 10 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,给骨骼链增加惯性,产生一定的重量感</p></body></html> + + + 惯性 + + + label_24 + label_15 + collision_groupBox + springSpring_lineEdit + label_16 + springSubs_lineEdit + label_17 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_8 + label_18 + springTension_lineEdit + keyRange_groupBox + shelf_button + label_19 + springExtend_lineEdit + groupBox + springWind_Button + springInertia_lineEdit + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + 有新版本! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + YouTube 英文教程 + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + 语言设置 + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 340 + 21 + 16 + + + + + 8 + + + + chn + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + label_23 + setEnabled(bool) + + + 71 + 193 + + + 81 + 141 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 63 + 191 + + + 113 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 61 + 191 + + + 201 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 92 + 185 + + + 136 + 185 + + + + + springCapsule_checkBox + clicked(bool) + label_18 + setEnabled(bool) + + + 61 + 198 + + + 281 + 64 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 48 + 193 + + + 313 + 64 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 213 + 113 + + + 243 + 119 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 218 + 111 + + + 308 + 116 + + + + + diff --git a/2023/scripts/animation_tools/springmagic/springMagic_eng.ui b/2023/scripts/animation_tools/springmagic/springMagic_eng.ui new file mode 100644 index 0000000..2120b5d --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/springMagic_eng.ui @@ -0,0 +1,1664 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 8 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + Spring Magic + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 46 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 52 + 71 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the spring is, bigger value, softer result.</p><p>Important: only working for &quot;X-axis aiming to child&quot; joint chain.</p></body></html> + + + Spring + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 90 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the twist (X-axis) is</p></body></html> + + + Twist + + + + + + 120 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + Bone Pose + + + + + 10 + 20 + 61 + 31 + + + + Go to joint bind pose + + + Bind Pose + + + + + + 10 + 60 + 61 + 31 + + + + + 8 + + + + Set joint chain as straight + + + Straight + + + + + + 80 + 20 + 51 + 31 + + + + Copy bone poses + + + Copy + + + + + + 80 + 60 + 51 + 31 + + + + Paste bone poses + + + Paste + + + + + + + 260 + 280 + 81 + 51 + + + + + 10 + 75 + true + + + + <html><head/><body><p>Affect select object only</p></body></html> + + + Apply + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + Collisions + + + + + 10 + 30 + 61 + 17 + + + + <html><head/><body><p>Active collision calculation with capsule body in scene.</p><p>May slow down the calculation</p></body></html> + + + Active + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>Add a capsule at original point if select notion, or add a capsule match with selected bone.</p><p>Note: you can adjust the capsule with move or scale the cylinder at middle. Parent capsule to diffecrent object to move follow it.</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>Clear all capsules in scene</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 80 + 30 + 75 + 17 + + + + <html><head/><body><p>Click on this if capsule attach on a fast move bone, like sprinting legs, to reduce the clip through.</p><p>Note: May cause more poping if capsule moving slowly.</p></body></html> + + + Fast Move + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 232 + 0 + 71 + 16 + + + + <html><head/><body><p>Tension of the chain, means how much the force of bend will be path through the chain, only take effect when collision happends. Can reduce poping and clip through of collision result.</p></body></html> + + + Tension + + + + + false + + + + 271 + 0 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + Key Setting + + + + false + + + + 120 + 50 + 71 + 16 + + + + <html><head/><body><p>Remove precision keys on sub frame after calculation</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 20 + 50 + 71 + 16 + + + + <html><head/><body><p>How many sub frame that will be go through during 1 frame, that for capture really fast move</p><p>collision body. Default value is 1, if set as 5, means will step as 1/5 frame to calculation.</p><p>will increase calculation time by times</p></body></html> + + + Sub-Frame + + + + + false + + + + 80 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 61 + 17 + + + + Current time line range + + + Active + + + true + + + + + + 140 + 20 + 51 + 17 + + + + From + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 230 + 20 + 21 + 16 + + + + To + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 280 + 50 + 51 + 16 + + + + <html><head/><body><p>Will caculate twice to get looped result</p></body></html> + + + Loop + + + false + + + + + true + + + + 194 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Add wind controller</p></body></html> + + + Wind + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + Controller + + + + + 10 + 20 + 71 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Bind bone chain to selected rigging controller</p></body></html> + + + Bind + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + <html><head/><body><p>Bake bone chain animation back to controller</p></body></html> + + + Bake + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 166 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define flexibility of spring, which can produce strech and squash animation</p></body></html> + + + Flex + + + + + + 192 + 50 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 52 + 61 + 16 + + + + + 8 + + + + <html><head/><body><p>set between 0 to 1</p><p>define inertia of spring, which can produce weight result</p></body></html> + + + Inertia + + + + + + 277 + 50 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 320 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + New Version Available! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Tutorials on YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Set Language + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2023/scripts/animation_tools/springmagic/springMagic_jpn.ui b/2023/scripts/animation_tools/springmagic/springMagic_jpn.ui new file mode 100644 index 0000000..26428f1 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/springMagic_jpn.ui @@ -0,0 +1,1760 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 9 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + スプリングマジック + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 30 + 56 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 20 + 40 + 71 + 16 + + + + + 9 + + + + <html><head/><body><p>0から1までの値をセットします。</p><p>スプリングの柔らかさを定義します。大きい値ほど柔らかい結果となります。</p><p>重要:ジョイントチェーンは&quot;子に向かってX軸方向&quot;にのみ機能します。</p></body></html> + + + スプリング + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 96 + 40 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>0から1までの値をセットします。</p><p>(X軸に対し)ツイストの柔らかさを定義します。</p></body></html> + + + ツイスト + + + + + + 101 + 57 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + + 9 + + + + ボーンポーズ + + + + + 4 + 20 + 91 + 31 + + + + + 9 + + + + バインドポーズにします。 + + + バインドポーズ + + + + + + 4 + 60 + 71 + 31 + + + + + 9 + + + + ジョイントチェーンをまっすぐにします。 + + + ストレート + + + + + + 97 + 20 + 41 + 31 + + + + + 9 + + + + + + + コピー + + + + + + 87 + 60 + 51 + 31 + + + + + 9 + + + + + + + ペースト + + + + + + + 260 + 280 + 81 + 51 + + + + + 12 + 75 + true + + + + <html><head/><body><p>選択したオブジェクトにのみ影響します。</p></body></html> + + + 適用 + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + + 9 + + + + 衝突判定 + + + + + 10 + 30 + 81 + 17 + + + + + 9 + + + + <html><head/><body><p>シーン内のカプセルボディに対する衝突計算をアクティブにする。</p><p>計算がスローダウンする可能性があります。</p></body></html> + + + アクティブ + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>選択物の元の位置にカプセルを追加する、もしくは選択したボーンにふさわしい位置にカプセルを追加します。</p><p>注意:中央のシリンダー部を動かしたりスケールすることで、カプセルを調整することができます。異なったオブジェクトにカプセルをペアレントすると、それをフォローして移動します。</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>シーン中のすべてのカプセルを消去します。</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 90 + 30 + 75 + 17 + + + + + 9 + + + + <html><head/><body><p>クリックで有効にすることで、全速力で動く足のような高速で動くボーンにカプセルをアタッチした場合、すり抜けを減少することができます。</p><p>注意:カプセルがゆっくりと動く場合には、ポッピングの原因になることがあります。</p></body></html> + + + 高速移動 + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 240 + -30 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>チェーンのテンション、つまりチェーン全体にどの程度曲がる力が適用されるかの度合いは、衝突発生時にのみ影響します。衝突の結果として、ポッピングしたりクリップしたりするのを緩和できます。</p></body></html> + + + テンション + + + + + false + + + + 250 + -10 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + + 9 + + + + キー範囲 + + + + false + + + + 110 + 50 + 71 + 16 + + + + + 9 + + + + <html><head/><body><p>計算後のサブフレーム上の精度キーを取り除きます。</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 10 + 50 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>1フレーム経過する際に評価されるサブフレーム数を設定することで、衝突物の非常に素早い動きをキャプチャすることができます。</p><p>デフォルト値は1で、5をセットすれば1/5フレームごとに評価されます。</p><p>値を増やすと計算時間が増えます。</p></body></html> + + + Sub-Frame + + + + + false + + + + 70 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 91 + 17 + + + + 現在のタイムラインの範囲 + + + アクティブ + + + true + + + + + + 140 + 20 + 51 + 17 + + + + + 9 + + + + 始点 + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 20 + 31 + 16 + + + + + 9 + + + + 終点 + + + + + false + + + + 280 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 274 + 50 + 51 + 16 + + + + + 9 + + + + <html><head/><body><p>結果がループするように、2回計算します。</p></body></html> + + + ループ + + + false + + + + + true + + + + 190 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 9 + 50 + false + + + + <html><head/><body><p>ウィンドコントローラを追加します。</p></body></html> + + + ウィンド + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + + 9 + + + + コントローラー + + + + + 5 + 20 + 81 + 31 + + + + + 9 + 50 + false + + + + <html><head/><body><p>選択されたリグコントローラにボーンチェインをバインドします。</p></body></html> + + + バインド + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + + 9 + + + + <html><head/><body><p>ボーンチェインのアニメーションをコントローラにベイクし戻します。</p></body></html> + + + ベイク + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 170 + 40 + 61 + 16 + + + + + 9 + + + + 0〜1の間に設定する +ストラッチとスカッシュアニメーションを生成するスプリングの柔軟性を定義する + + + フレックス + + + + + + 180 + 57 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 270 + 40 + 41 + 16 + + + + + 8 + + + + <html><head/><body><p>0〜1の間に設定する</p><p>ばねの慣性を定義します。これにより、重量結果が生成されます</p></body></html> + + + 慣性 + + + + + + 266 + 56 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 310 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + 新バージョンが利用できます! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + チュートリアル@YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + 言語設定 + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + spring_language_list + language_button + main_lang_id + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2023/scripts/animation_tools/springmagic/springMath.py b/2023/scripts/animation_tools/springmagic/springMath.py new file mode 100644 index 0000000..a8588cd --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/springMath.py @@ -0,0 +1,291 @@ +import math +import pymel.core as pm +import pymel.core.datatypes as dt + + +def sigmoid(x): + return 1 / (1 + math.exp(-x)) + + +def distance(a, b): + return (b - a).length() + + +def lerp_vec(a, b, t): + return (a * (1 - t)) + (b * t) + + +def dist_to_plane(pt, n, d): + return n.dot(pt) - (d / n.dot(n)) + + +def dist_to_line(a, b, p): + ap = p - a + ab = b - a + result = a + ((ap.dot(ab) / ab.dot(ab)) * ab) + return distance(result, p) + + +def is_same_side_of_plane(pt, test_pt, n, d): + d1 = math.copysign(1, dist_to_plane(pt, n, d)) + d2 = math.copysign(1, dist_to_plane(test_pt, n, d)) + + # print(pt, test_pt, d1, d2) + return d1 * d2 == 1.0 + + +def proj_pt_to_plane(pt, n, d): + t = n.dot(pt) - d + return (pt - (n * t)) + + +def pt_in_sphere(pt, c, r): + return (pt - c).length() <= r + + +def pt_in_cylinder(pt, p, q, r): + n = (q - p).normal() + d = n.dot(p) + + if not is_same_side_of_plane(pt, (p + q) / 2.0, n, d): + return False + + n = (q - p).normal() + d = n.dot(q) + + if not is_same_side_of_plane(pt, (p + q) / 2.0, n, d): + return False + + proj_pt = proj_pt_to_plane(pt, n, d) + # logging("proj_pt", proj_pt) + # logging("q", q) + # logging("distance(proj_pt, q)", distance(proj_pt, q)) + + return distance(proj_pt, q) <= r + + +def segment_sphere_isect(sa, sb, c, r): + NotFound = (False, None) + + p = sa + d = (sb - sa).normal() + + m = p - c + b = m.dot(d) + c = m.dot(m) - r * r + + if c > 0.0 and b > 0.0: + return NotFound + + discr = b * b - c + if discr < 0.0: + return NotFound + + t = -b - math.sqrt(discr) + if t < 0.0: + return NotFound + + dist = distance(sa, sb) + q = p + d * t + return ((t >= 0 and t <= dist), q) + + +def segment_cylinder_isect(sa, sb, p, q, r): + SM_EPSILON = 1e-6 + d = q - p + m = sa - p + n = sb - sa + md = m.dot(d) + nd = n.dot(d) + dd = d.dot(d) + + NotFound = (False, None) + if md < 0 and md + nd < 0: + return NotFound + + if md > dd and md + nd > dd: + return NotFound + + nn = n.dot(n) + mn = m.dot(n) + + a = dd * nn - nd * nd + k = m.dot(m) - r * r + c = dd * k - md * md + + if abs(a) < SM_EPSILON: + if c > 0: + return NotFound + if md < 0: + t = -mn / nn + elif md > dd: + t = (nd - mn) / nn + else: + t = 0 + return (True, lerp_vec(sa, sb, t)) + + b = dd * mn - nd * md + discr = b * b - a * c + if discr < 0: + return NotFound + + t = (-b - math.sqrt(discr)) / a + if t < 0.0 or t > 1.0: + return NotFound + if (md + t * nd < 0.0): + if nd <= 0.0: + return NotFound + t = -md / nd + return (k + 2 * t * (mn + t * nn) <= 0.0, lerp_vec(sa, sb, t)) + elif md + t * nd > dd: + if nd >= 0.0: + return NotFound + t = (dd - md) / nd + return (k + dd - 2 * md + t * (2 * (mn - nd) + t * nn) <= 0.0, lerp_vec(sa, sb, t)) + + return (True, lerp_vec(sa, sb, t)) + + +def pt_in_capsule(pt, p, q, r): + return pt_in_cylinder(pt, p, q, r) or pt_in_sphere(pt, p, r) or pt_in_sphere(pt, q, r) + + +def segment_capsule_isect(sa, sb, p, q, r): + # sa = dt.Vector() + # ray start point pos vector + # sb = dt.Vector() + # ray end point pos vector + # p = dt.Vector() + # capsle one sphere tip pos + # q = dt.Vector() + # capsle another sphere tip pos + # r = float + # radio of capsle sphere + + if pt_in_capsule(sa, p, q, r): + if pt_in_capsule(sb, p, q, r): + # both inside. extend sb to get intersection + newb = sa + (sb - sa).normal() * 200.0 + sa, sb = newb, sa + else: + sb, sa = sa, sb + + # d = (sb - sa).normal() + + i1 = segment_sphere_isect(sa, sb, p, r) + i2 = segment_sphere_isect(sa, sb, q, r) + i3 = segment_cylinder_isect(sa, sb, p, q, r) + + dist = float('inf') + closest_pt = None + hit = False + hitCylinder = False + + for i in [i1, i2, i3]: + + if i[0]: + hit = True + pt = i[1] + + if distance(sa, pt) < dist: + closest_pt = pt + + dist = min(dist, distance(sa, pt)) + # draw_locator(i1[2], 'i1') + + return (hit, closest_pt, hitCylinder) + + +def checkCollision(cur_pos, pre_pos, capsuleLst, isRevert): + # calculate collision with all the capsule in scene + if isRevert: + sa = cur_pos + sb = pre_pos + else: + sb = cur_pos + sa = pre_pos + + isHited = False + closest_pt_dict = {} + + for obj in capsuleLst: + objChildren = pm.listRelatives(obj, children=1, type='transform') + p = objChildren[0].getTranslation(space='world') + q = objChildren[1].getTranslation(space='world') + r = obj.getAttr('scaleZ') * 1 + + hit, closest_pt, hitCylinder = segment_capsule_isect(sa, sb, p, q, r) + + if hit: + isHited = True + closest_pt_dict[obj.name()] = [obj, closest_pt] + # drawDebug_box(closest_pt) + + if isHited: + pt_length = 9999 + closest_pt = None + col_obj = None + + for pt in list(closest_pt_dict.keys()): + lLength = (closest_pt_dict[pt][1] - pre_pos).length() + + if lLength < pt_length: + pt_length = lLength + closest_pt = closest_pt_dict[pt][1] + col_obj = closest_pt_dict[pt][0] + + # return col pt and col_body speed + return closest_pt, col_obj, hitCylinder + else: + return None, None, None + + +def ckeckPointInTri(pos, pa, pb, pc): + ra = math.acos(((pa - pos).normal()).dot((pb - pos).normal())) + ra = dt.degrees(ra) + rb = math.acos(((pb - pos).normal()).dot((pc - pos).normal())) + rb = dt.degrees(rb) + rc = math.acos(((pc - pos).normal()).dot((pa - pos).normal())) + rc = dt.degrees(rc) + + return (abs(ra + rb + rc) > 359) + + +def getVertexPositions(obj): + vertex_positions_list = [] + + for vertex in obj.vtx: + vertex_positions_list.append(vertex.getPosition(space='world')) + + return vertex_positions_list + + +def checkPlaneCollision(objPos, childPos, colPlane): + + v_coords = getVertexPositions(colPlane) + + collision_plane_matrix = pm.xform(colPlane, worldSpace=1, matrix=1, q=1) + n = dt.Vector(collision_plane_matrix[4:7]) # Y axis direction of plane + q = v_coords[1] + d = n.dot(q) + + # get obj distance to plane + toPlaneDistance = dist_to_plane(objPos, n, d) + toPlaneDistance_child = dist_to_plane(childPos, n, d) + + # child projection position on plane + projectPos_child = proj_pt_to_plane(childPos, n, d) + + inPlane = False + + if ckeckPointInTri(projectPos_child, v_coords[0], v_coords[1], v_coords[2]): + inPlane = True + elif ckeckPointInTri(projectPos_child, v_coords[3], v_coords[1], v_coords[2]): + inPlane = True + + # bone above plane and bone child under plane and child project point on plane + # means has collision with plane + if (toPlaneDistance > 0) and (toPlaneDistance_child < 0) and inPlane: + return projectPos_child + else: + return None diff --git a/2023/scripts/animation_tools/springmagic/ui.py b/2023/scripts/animation_tools/springmagic/ui.py new file mode 100644 index 0000000..abbcf44 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/ui.py @@ -0,0 +1,460 @@ +import os +import time +import inspect +import webbrowser +import urllib.request, urllib.error, urllib.parse +import random +import datetime +import maya.mel as mel +import pymel.core as pm + +from . import core as core + +from shutil import copyfile + +kSpringMagicVersion = 30500 + +scriptName = inspect.getframeinfo(inspect.currentframe()).filename +scriptPath = os.path.dirname(os.path.abspath(scriptName)) + +# Parameter Initialization +ui_file = scriptPath + os.sep + 'springMagic.ui' + +# Constants +kVimeoLink = r'' +kYoutubeLink = r'https://animbai.com/2017/10/14/skintools-tutorials/' + +kUpdateLink = r'https://animbai.com/category/download/' +kVersionCheckLink = r'http://animbai.com/skintoolsver/' +kOldPersonalLink = r'http://www.scriptspot.com/3ds-max/scripts/spring-magic' + + +def widgetPath(windowName, widgetNames): + """ + @param windowName: Window instance name to search + @param widgetNames: list of names to search for + """ + returnDict = {} + mayaWidgetList = pm.lsUI(dumpWidgets=True) + + for widget in widgetNames: + for mayaWidget in mayaWidgetList: + if windowName in mayaWidget: + if mayaWidget.endswith(widget): + returnDict[widget] = mayaWidget + + return returnDict + + +class SpringMagicWidget(): + + def __init__(self, *args, **kwargs): + self.init() + + def init(self): + try: + pm.deleteUI(self.ui) + except Exception: + pass + + # title = pm.window(pm.loadUI(ui_file = ui_file)) + + self.ui = pm.loadUI(f=ui_file) + + ui_widget_list = [ + 'main_progressBar', + 'main_processLabel', + 'main_textEdit', + 'main_lang_id', + 'spring_language_list', + 'springSpring_lineEdit', + 'springSubs_lineEdit', + 'springXspring_lineEdit', + 'springTension_lineEdit', + 'springExtend_lineEdit', + 'springInertia_lineEdit', + 'springSubDiv_lineEdit', + 'springLoop_checkBox', + 'springPoseMatch_checkBox', + 'springClearSubFrame_checkBox', + 'springFrom_lineEdit', + 'springEnd_lineEdit', + 'springActive_radioButton', + 'springFrom_radioButton', + # 'springUpAxis_comboBox', + 'springApply_Button', + 'springCapsule_checkBox', + 'springFastMove_checkBox', + 'springFloor_checkBox', + 'springFloor_lineEdit', + 'springBindPose_button', + 'springStraight_button', + 'springCopy_button', + 'springPaste_button', + # 'donateBitcoin_lineEdit', + 'miscUpdate_pushButton', + 'springAddBody_Button', + 'springClearBody_Button', + 'springAddPlane_Button', + 'springAddWindCmd', + 'springBind_Button', + 'springBake_Button', + 'shelf_button', + 'vimeo_pushButton', + 'language_button', + 'statusbar', + 'springWind_Button'] + + self.uiObjects = widgetPath(self.ui, ui_widget_list) + + # Main UI + self.main_progressBar = pm.progressBar(self.uiObjects['main_progressBar'], edit=True) + self.main_processLabel = pm.text(self.uiObjects['main_processLabel'], edit=True) + self.main_lineEdit = pm.ui.PyUI(self.uiObjects['main_textEdit'], edit=True) + self.lang_id = pm.text(self.uiObjects['main_lang_id'], edit=True) + + self.language_list = pm.textScrollList(self.uiObjects['spring_language_list'], edit=True, + selectCommand=self.languageSelectedCmd, visible=False) + + self.spring_lineEdit = pm.textField(self.uiObjects['springSpring_lineEdit'], edit=True, + changeCommand=self.springRatioChangeCmd) + self.subs_lineEdit = pm.textField(self.uiObjects['springSubs_lineEdit'], edit=True) + self.Xspring_lineEdit = pm.textField(self.uiObjects['springXspring_lineEdit'], edit=True, + changeCommand=self.twistChangeCmd) + self.tension_lineEdit = pm.textField(self.uiObjects['springTension_lineEdit'], edit=True, + changeCommand=self.tensionChangeCmd) + self.extend_lineEdit = pm.textField(self.uiObjects['springExtend_lineEdit'], edit=True, + changeCommand=self.extendChangeCmd) + self.inertia_lineEdit = pm.textField(self.uiObjects['springInertia_lineEdit'], edit=True, + changeCommand=self.inertiaChangeCmd) + self.sub_division_lineEdit = pm.textField(self.uiObjects['springSubDiv_lineEdit'], edit=True, + changeCommand=self.subDivChangeCmd) + self.loop_checkBox = pm.checkBox(self.uiObjects['springLoop_checkBox'], edit=True) + self.pose_match_checkBox = pm.checkBox(self.uiObjects['springPoseMatch_checkBox'], edit=True) + self.clear_subframe_checkBox = pm.checkBox(self.uiObjects['springClearSubFrame_checkBox'], edit=True) + self.from_lineEdit = pm.textField(self.uiObjects['springFrom_lineEdit'], edit=True) + self.end_lineEdit = pm.textField(self.uiObjects['springEnd_lineEdit'], edit=True) + self.active_radioButton = pm.radioButton(self.uiObjects['springActive_radioButton'], edit=True) + self.from_radioButton = pm.radioButton(self.uiObjects['springFrom_radioButton'], edit=True) + # self.upAxis_comboBox = pm.optionMenu(self.uiObjects['springUpAxis_comboBox'], edit=True) + self.apply_button = pm.button(self.uiObjects['springApply_Button'], edit=True, command=self.applyCmd) + self.add_body_button = pm.button(self.uiObjects['springAddBody_Button'], edit=True, command=self.addBodyCmd) + self.clear_body_button = pm.button(self.uiObjects['springClearBody_Button'], edit=True, + command=self.clearBodyCmd) + self.add_plane_button = pm.button(self.uiObjects['springAddPlane_Button'], edit=True, + command=self.createColPlaneCmd) + self.wind_button = pm.button(self.uiObjects['springWind_Button'], edit=True, command=self.addWindCmd) + self.bind_button = pm.button(self.uiObjects['springBind_Button'], edit=True, command=self.bindControlsCmd) + self.bake_button = pm.button(self.uiObjects['springBake_Button'], edit=True, command=self.clearBindCmd) + self.shelf_button = pm.button(self.uiObjects['shelf_button'], edit=True, command=self.goShelfCmd) + self.vimeo_button = pm.button(self.uiObjects['vimeo_pushButton'], edit=True, command=self.youtubeCmd) + self.language_button = pm.button(self.uiObjects['language_button'], edit=True, command=self.languageCmd) + + self.collision_checkBox = pm.checkBox(self.uiObjects['springCapsule_checkBox'], edit=True) + self.fast_move_checkBox = pm.checkBox(self.uiObjects['springFastMove_checkBox'], edit=True) + self.floor_checkBox = pm.checkBox(self.uiObjects['springFloor_checkBox'], edit=True) + self.floor_lineEdit = pm.textField(self.uiObjects['springFloor_lineEdit'], edit=True, + changeCommand=self.twistChangeCmd) + + self.bind_pose_button = pm.button(self.uiObjects['springBindPose_button'], edit=True, command=self.setCmd) + self.straight_button = pm.button(self.uiObjects['springStraight_button'], edit=True, command=self.straightCmd) + self.copy_button = pm.button(self.uiObjects['springCopy_button'], edit=True, command=self.copyCmd) + self.paste_button = pm.button(self.uiObjects['springPaste_button'], edit=True, command=self.pasteCmd) + + # self.statusbar = pm.button(self.uiObjects['statusbar'], edit=True, menuItemCommand=self.testCmd) + + self.misc_update_button = pm.button(self.uiObjects['miscUpdate_pushButton'], edit=True, + command=self.updatePageCmd) + + self.spam_word = ['', '', '', '', ''] + + def show(self): + + pm.showWindow(self.ui) + + self.checkUpdate() + + def progression_callback(self, progression): + pm.progressBar(self.main_progressBar, edit=True, progress=progression) + + ############################################# + # Buttons callbacks + ############################################ + + def showSpam(self, *args): + sWord = self.spam_word[random.randint(0, 4)] + # print as unicode\ + kwargs = {"edit": True} + sWord = sWord if isinstance(sWord, str) else str(sWord, "utf8", errors="ignore") + kwargs.setdefault("label", sWord) + + pm.text(self.main_processLabel, **kwargs) + + def pasteCmd(self, *args): + core.pasteBonePose() + + def setCmd(self, *args): + + picked_bones = pm.ls(sl=1, type='joint') + + if picked_bones: + self.apply_button.setEnable(False) + + core.bindPose() + + # Select only the joints + pm.select(picked_bones) + + self.apply_button.setEnable(True) + + def straightCmd(self, *args): + + picked_bones = pm.ls(sl=1, type='joint') + + if picked_bones: + self.apply_button.setEnable(False) + + for bone in picked_bones: + core.straightBonePose(bone) + + # Select only the joints + pm.select(picked_bones) + + self.apply_button.setEnable(True) + + def applyCmd(self, *args): + picked_transforms = pm.ls(sl=1, type='transform') + + if picked_transforms: + self.apply_button.setEnable(False) + + pm.text(self.main_processLabel, edit=True, label='Calculating Bone Spring... (Esc to cancel)') + + springRatio = 1 - float(self.spring_lineEdit.getText()) + twistRatio = 1 - float(self.Xspring_lineEdit.getText()) + isLoop = bool(self.loop_checkBox.getValue()) + isPoseMatch = bool(self.pose_match_checkBox.getValue()) + isFastMove = self.fast_move_checkBox.getValue() + isCollision = self.collision_checkBox.getValue() + + subDiv = 1.0 + if isCollision: + subDiv = float(self.sub_division_lineEdit.getText()) + + # get frame range + if self.active_radioButton.getSelect(): + startFrame = int(pm.playbackOptions(q=1, minTime=1)) + endFrame = int(pm.playbackOptions(q=1, maxTime=1)) + else: + startFrame = int(self.from_lineEdit.getText()) + endFrame = int(self.end_lineEdit.getText()) + + tension = float(self.tension_lineEdit.getText()) + inertia = float(self.inertia_lineEdit.getText()) + extend = float(self.extend_lineEdit.getText()) + + wipeSubFrame = self.clear_subframe_checkBox.getValue() + + spring = core.Spring(springRatio, twistRatio, tension, extend, inertia) + springMagic = core.SpringMagic(startFrame, endFrame, subDiv, isLoop, isPoseMatch, isCollision, isFastMove, + wipeSubFrame) + + startTime = datetime.datetime.now() + + try: + core.startCompute(spring, springMagic, self.progression_callback) + + deltaTime = (datetime.datetime.now() - startTime) + + pm.text(self.main_processLabel, edit=True, + label="Spring Calculation Time: {0}s".format(deltaTime.seconds)) + + except ValueError as exception: + pm.text(self.main_processLabel, edit=True, label='Process aborted') + pm.warning(exception) + + # Select only the joints + pm.select(picked_transforms) + + pm.progressBar(self.main_progressBar, edit=True, progress=0) + + self.apply_button.setEnable(True) + + def copyCmd(self, *args): + core.copyBonePose() + + def webCmd(self, *args): + # open my linked in page :) + webbrowser.open(kOldPersonalLink, new=2) + + def twistChangeCmd(self, *args): + self.limitTextEditValue(self.Xspring_lineEdit, defaultValue=0.7) + + def extendChangeCmd(self, *args): + self.limitTextEditValue(self.extend_lineEdit, defaultValue=0.0) + + def inertiaChangeCmd(self, *args): + self.limitTextEditValue(self.inertia_lineEdit, defaultValue=0.0) + + def springRatioChangeCmd(self, *args): + self.limitTextEditValue(self.spring_lineEdit, defaultValue=0.7) + + def tensionChangeCmd(self, *args): + self.limitTextEditValue(self.tension_lineEdit, defaultValue=0.5) + + def subDivChangeCmd(self, *args): + # self.limitTextEditValue(self.sub_division_lineEdit, defaultValue=1) + pass + + def addWindCmd(self, *args): + core.addWindObj() + + def addBodyCmd(self, *args): + core.addCapsuleBody() + + def createColPlaneCmd(self, *args): + core.createCollisionPlane() + + def removeBodyCmd(self, *args): + core.removeBody(clear=False) + + def clearBodyCmd(self, *args): + core.removeBody(clear=True) + + def bindControlsCmd(self, *args): + core.bindControls() + + def clearBindCmd(self, *args): + + # get frame range + if self.active_radioButton.getSelect(): + startFrame = int(pm.playbackOptions(q=1, minTime=1)) + endFrame = int(pm.playbackOptions(q=1, maxTime=1)) + else: + startFrame = int(self.from_lineEdit.getText()) + endFrame = int(self.end_lineEdit.getText()) + + core.clearBind(startFrame, endFrame) + + def goShelfCmd(self, *args): + parentTab = mel.eval( + '''global string $gShelfTopLevel;string $shelves = `tabLayout -q -selectTab $gShelfTopLevel`;''') + imageTitlePath = scriptPath + os.sep + "icons" + os.sep + "Title.png" + commandLine = "import springmagic\nspringmagic.main()" + + pm.shelfButton(commandRepeatable=True, image1=imageTitlePath, label="Spring Magic", parent=parentTab, + command=commandLine) + + def languageCmd(self, *args): + self.language_list.setVisible(not self.language_list.getVisible()) + + def languageSelectedCmd(self, *args): + self.language_list.setVisible(False) + self.applyLanguage(int(self.language_list.getSelectIndexedItem()[0])) + + def youtubeCmd(self, *args): + try: + webbrowser.open(kYoutubeLink, new=2) + except Exception: + pass + + def vimeoCmd(self, *args): + # try: + # webbrowser.open(kVimeoLink, new=2) + # except Exception: + # pass + pass + + def updatePageCmd(self, *args): + try: + webbrowser.open(kUpdateLink, new=2) + except Exception: + pass + + def applyLanguage(self, lanId): + lanDict = {1: '_chn', 2: '_eng', 3: '_jpn'} + + if lanId in list(lanDict.keys()): + # get new language ui file path + new_ui_file = scriptPath + os.sep + os.path.basename(ui_file).split('.')[0] + lanDict[lanId] + '.' + \ + os.path.basename(ui_file).split('.')[1] + copyfile(new_ui_file, ui_file) + + # Reload interface + self.init() + self.show() + + def detectMayaLanguage(self): + mayaLan = None + try: + mayaLan = os.environ['MAYA_UI_LANGUAGE'] + except Exception: + import locale + mayaLan = locale.getdefaultlocale()[0] + + lanDict = {'zh_CN': 1, 'en_US': 2, 'ja_JP': 3} + self.applyLanguage(lanDict[mayaLan]) + + def printTextEdit(self, textEdit, inputString): + ctime = time.ctime() + ptime = ctime.split(' ') + inputString = ptime[3] + ' - ' + inputString + pm.scrollField(textEdit, edit=True, insertionPosition=0, insertText=inputString + '\n') + + def checkUpdate(self): + + self.misc_update_button.setVisible(0) + + page_content = None + + site = kVersionCheckLink + hdr = { + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', + 'Accept-Encoding': 'none', + 'Accept-Language': 'en-US,en;q=0.8', + 'Connection': 'keep-alive'} + + req = urllib.request.Request(site, headers=hdr) + + try: + page = urllib.request.urlopen(req, timeout=5) + page_content = page.read() + except Exception: + print('checkUpdate failed') + + if page_content: + if isinstance(page_content, bytes): + page_content = page_content.decode("utf-8") + if len(page_content.split('|springMagic|')) > 1: + new_kSpringMagicVersion = int(page_content.split('|springMagic|')[1]) + + if new_kSpringMagicVersion > kSpringMagicVersion: + self.misc_update_button.setVisible(1) + + self.spam_word = [] + + prefix = '|spam' + suffix = '|' + + if self.lang_id.getLabel() == 'chn': + suffix = 'chn|' + + self.spam_word = [page_content.split(prefix + str(i) + suffix)[1] for i in range(1, 6)] + else: + pm.text(self.main_processLabel, edit=True, label='Check update failed, try later.') + + self.showSpam() + + def limitTextEditValue(self, ui_object, minValue=0, maxValue=1, roundF=2, defaultValue=0): + value = 0 + + try: + value = float(ui_object.getText()) + value = round(value, roundF) + value = max(min(maxValue, value), minValue) + except Exception: + value = defaultValue + + ui_object.setText(str(value)) diff --git a/2023/scripts/animation_tools/springmagic/utility.py b/2023/scripts/animation_tools/springmagic/utility.py new file mode 100644 index 0000000..3e83880 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/utility.py @@ -0,0 +1,56 @@ +import pymel.core as pm +import pymel.core.datatypes as dt + + +########################## +# Usefull function +########################## + +def clamp(n, minn, maxn): + return max(min(maxn, n), minn) + + +def get_node(name): + node_list = pm.ls(name) + node = None + + if node_list: + node = node_list[0] + + return node + + +def get_matrix(obj): + return pm.xform(obj, worldSpace=1, matrix=1, q=1) + + +def frange(start, stop=None, step=None): + # if set start=0.0 and step = 1.0 if not specified + start = float(start) + + if stop is None: + stop = start + 0.0 + start = 0.0 + + if step is None: + step = 1.0 + + # print("start = ", start, "stop = ", stop, "step = ", step) + + count = 0 + while True: + temp = float(start + count * step) + if step > 0 and temp >= stop: + break + elif step < 0 and temp <= stop: + break + yield temp + count += 1 + + +def get_translation(n): + return dt.Vector(pm.xform(n, worldSpace=1, translation=1, query=1)) + + +def get_rotation(n): + return pm.xform(n, worldSpace=1, rotation=1, query=1) diff --git a/2023/scripts/animation_tools/springmagic/安装说明.txt b/2023/scripts/animation_tools/springmagic/安装说明.txt new file mode 100644 index 0000000..e756a06 --- /dev/null +++ b/2023/scripts/animation_tools/springmagic/安装说明.txt @@ -0,0 +1,13 @@ +1. 解压缩 springmagic.zip 并复制 "springmagic" 目录至位于 Windows 用户路径下的 Maya 脚本目录 +例如 + "C:\Users\你的用户名\Documents\maya\scripts" +2. 启动 Maya,在 Maya 里运行如下 Python 命令, 会出现工具界面 + import springmagic + springmagic.main() +3. 用工具界面右上方的创建快捷按钮功能,在书签栏创建一个快捷按钮,方便下次使用 + + +复制这个 + +import springmagic +springmagic.main() \ No newline at end of file diff --git a/2023/scripts/modeling_tools/ModIt/ModIt_Global.py b/2023/scripts/modeling_tools/ModIt/ModIt_Global.py index 6a25f20..46a5b7c 100644 --- a/2023/scripts/modeling_tools/ModIt/ModIt_Global.py +++ b/2023/scripts/modeling_tools/ModIt/ModIt_Global.py @@ -24,17 +24,16 @@ from . import ModIt_CSS ##_____________________________________________PATH +MODIT_DIR = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/') USERAPPDIR = mc.internalVar(userAppDir=True) VERSION = mc.about(v=True) -# Get ModIt's actual location -ModItDir = os.path.dirname(os.path.abspath(__file__)) -IconsPathThemeClassic = os.path.join(ModItDir, 'Icons/Theme_Classic/') -ToolPath = os.path.join(ModItDir, 'Tools/') -PreferencePath = os.path.join(ModItDir, 'Preferences/') -PlugInsPath = os.path.join(USERAPPDIR, VERSION+'/plug-ins') -PrefIcons = os.path.join(USERAPPDIR, VERSION+'/prefs/icons') -UserScriptFolder = os.path.join(USERAPPDIR, VERSION+'/scripts') -RessourcePath = os.path.join(ModItDir, 'Ressources/') +IconsPathThemeClassic = os.path.join(MODIT_DIR, 'Icons/Theme_Classic/').replace('\\', '/') +ToolPath = os.path.join(MODIT_DIR, 'Tools/').replace('\\', '/') +PreferencePath = os.path.join(MODIT_DIR, 'Preferences/').replace('\\', '/') +PlugInsPath = os.path.join(USERAPPDIR, VERSION+'/plug-ins').replace('\\', '/') +PrefIcons = os.path.join(USERAPPDIR, VERSION+'/prefs/icons').replace('\\', '/') +UserScriptFolder = os.path.join(USERAPPDIR, VERSION+'/scripts').replace('\\', '/') +RessourcePath = os.path.join(MODIT_DIR, 'Ressources/').replace('\\', '/') diff --git a/2023/scripts/modeling_tools/ModIt/Preferences/MultiSize.json b/2023/scripts/modeling_tools/ModIt/Preferences/MultiSize.json index 52c2353..06b2337 100644 --- a/2023/scripts/modeling_tools/ModIt/Preferences/MultiSize.json +++ b/2023/scripts/modeling_tools/ModIt/Preferences/MultiSize.json @@ -1 +1 @@ -{"MULTISIZEVALUE": 81.0} \ No newline at end of file +{"MULTISIZEVALUE": 0.5} \ No newline at end of file diff --git a/2023/scripts/modeling_tools/ModIt/Preferences/TabOpen.json b/2023/scripts/modeling_tools/ModIt/Preferences/TabOpen.json index c9862c0..9e34703 100644 --- a/2023/scripts/modeling_tools/ModIt/Preferences/TabOpen.json +++ b/2023/scripts/modeling_tools/ModIt/Preferences/TabOpen.json @@ -1 +1 @@ -{"TAB_OPEN": 0} \ No newline at end of file +{"TAB_OPEN": 1} \ No newline at end of file diff --git a/2023/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini b/2023/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini index 6dbf004..4e92734 100644 --- a/2023/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini +++ b/2023/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini @@ -1,2 +1,2 @@ [General] -windowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\x9a\0\0\0\xd6\0\0\x2\xef\0\0\x3\x89\0\0\x1\x9b\0\0\0\xf5\0\0\x2\xee\0\0\x3\x88\0\0\0\0\0\0\0\0\a\x80\0\0\x1\x9b\0\0\0\xf5\0\0\x2\xee\0\0\x3\x88) +windowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2\b\0\0\0\x9c\0\0\x3]\0\0\x2\xe6\0\0\x2\t\0\0\0\xbb\0\0\x3\\\0\0\x2\xe5\0\0\0\0\0\0\0\0\a\x80\0\0\x2\t\0\0\0\xbb\0\0\x3\\\0\0\x2\xe5) diff --git a/2023/scripts/modeling_tools/__init__.py b/2023/scripts/modeling_tools/__init__.py index cb40630..e4383fc 100644 --- a/2023/scripts/modeling_tools/__init__.py +++ b/2023/scripts/modeling_tools/__init__.py @@ -9,5 +9,6 @@ General modeling utilities from .batchextrusion import show_batch_extrusion_ui __all__ = [ - 'show_batch_extrusion_ui' + 'show_batch_extrusion_ui', + 'creaseplus' ] diff --git a/2023/scripts/modeling_tools/creaseplus/CreasePlus.mel b/2023/scripts/modeling_tools/creaseplus/CreasePlus.mel new file mode 100644 index 0000000..aa12154 --- /dev/null +++ b/2023/scripts/modeling_tools/creaseplus/CreasePlus.mel @@ -0,0 +1,1153 @@ +//AUTHOR : BAIDHIR HIDAIR © 2017. +//don't modify , don't distribute. + +//preprocessors +{//dumpster start +global int $cp_maya_v1; +string $cp_get_maya_v = `about -v`; + +string $cp_token_array[]; + +if(`tokenize $cp_get_maya_v "Extension Student" $cp_token_array`){ + $cp_get_maya_v = `stringArrayToString $cp_token_array ""`; +} + +$cp_maya_v1 = (int) $cp_get_maya_v; + +}//dumpster end + +// +if(!`namespace -ex ":cpB"`){ + namespace -add "cpB"; +} + +if(!`dragAttrContext -ex "cpCtx"`) + dragAttrContext "cpCtx"; + + if(!`curveCVCtx -ex cpCurvectx`) + curveCVCtx -d 1 -n "cpCurvectx"; +///////////////////////////////////////////////////// LOCAL REALM +global proc string cpGetShade(string $Shape[]){ + +string $sg; + +string $Sgs[] = `ls -typ "shadingEngine"`; + +for ( $i in $Sgs ){if ( `sets -isMember $i $Shape[0]` ){$sg = $i; break;}} + +return $sg; +} + +proc int cpIsBoolOp(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "BoolOp"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".BoolOp")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + + +global proc int cpIsBvlOp(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "hOffset"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".hOffset")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + +proc int cpIsMir(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "mAxis"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".mAxis")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + +proc string cpGetCamDir(){ + + string $activePanel = `getPanel -wf`; + + if(`getPanel -to $activePanel` != "modelPanel"){error "get In a modeling View!\n";} + + vector $camPos = eval("camera -q -p `modelEditor -q -cam " + $activePanel + "`"); + + vector $camTarget = eval("camera -q -wci `modelEditor -q -cam " + $activePanel + "`"); + + + vector $cameraDir = $camTarget - $camPos; + + vector $normalizeDir = unit($cameraDir); + + $normalizeDir = abs($normalizeDir); + + if (($normalizeDir.x) > ($normalizeDir.y) && ($normalizeDir.x) > ($normalizeDir.z)){ + return "x"; + } + else if (($normalizeDir.y) > ($normalizeDir.x) && ($normalizeDir.y) > ($normalizeDir.z)){ + return "y"; + } + else if (($normalizeDir.z) > ($normalizeDir.y) && ($normalizeDir.z) > ($normalizeDir.x)){ + return "z"; + } + + return ""; +} + +proc float[] cpCoi(string $op){ + + float $coi[]; + float $coords1[] = `exactWorldBoundingBox $op`; + + $coi[0] = ($coords1[3] - $coords1[0]); + $coi[1] = ($coords1[4] - $coords1[1]); + $coi[2] = ($coords1[5] - $coords1[2]); + + $coi[3] = ($coords1[0] + $coords1[3]) * 0.5; + $coi[4] = ($coords1[1] + $coords1[4]) * 0.5; + $coi[5] = ($coords1[2] + $coords1[5]) * 0.5; + + + return $coi; +} + +proc cpGetGoz(){ + if(`about -win`){ + //For Windows + int $gozTest = `filetest -f "C:/Users/Public/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel"`; + string $sGoz = "source " + "\"C:/Users/Public/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel\""; + if($gozTest == 0){ + warning "To use this feature you need Goz script from Pixologic Zbrush.\n"; + return; + } + eval($sGoz); + }else{ + //For Mac + int $gozTest = `filetest -f "/Users/Shared/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel"`; + string $sGoz = "source " + "\"/Users/Shared/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel\""; + if($gozTest == 0){ + warning "To use this feature you need Goz script from Pixologic Zbrush.\n"; + return; + } + eval($sGoz); + } +} + +proc cpNodBaker(string $nod){ + + string $toPlug[] = `listConnections - p 1 - d 1 - s 0 $nod`; + if (size($toPlug) < 1) { + error "Boolean is not connected directly to the mesh. Simply delete your history"; + } + + string $fromPlug[] = `listConnections - p 1 - d 0 - s 1 $toPlug[0]`; + if (size($fromPlug) < 1) { + error "Boolean is not connected directly to the mesh. Simply delete your history"; + } + + + string $inTheFuture[] = `listHistory - f 1 $nod`; + if (size($fromPlug) < 1) { + error "Impossible: there is future."; + } + + string $shape; + int $foundIt = false; + for ($shape in $inTheFuture) { + if ("mesh" == `nodeType $shape`) { + $foundIt = true; + break; + } + } + + if (!$foundIt) { + error "Cannot find the polygon shape in the future of this node."; + } + + string $trans[0] = `listRelatives - p $shape`; + if (size($trans) < 1) { + error "Impossible: there must be a parent transform"; + } + + string $newShapeName = $shape + "Baked#"; + string $newShape = `createNode mesh - n $newShapeName - p $trans[0]`; + + disconnectAttr $fromPlug[0] $toPlug[0]; + connectAttr $fromPlug[0]($newShape + ".i"); + connectAttr($newShape + ".o") $toPlug[0]; + + delete - ch $newShape; + + setAttr($newShape + ".io") 1; +} +///////////////////////////////////////////////////// GLOBAL REALM ///////////////////////////////////// + +global proc cpAttrSwitch(){ + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + +global int $iterator; + +if(`currentCtx` != "cpCtx"){ + $iterator = 0; +} + +if(`cpIsBoolOp $op[0]` == 1){ + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + switch($iterator){ + case 0: + setAttr ($op[0] + ".BoolOp") 2; + break; + case 1: + setAttr ($op[0] + ".BoolOp") 1; + break; + case 2: + setAttr ($op[0] + ".BoolOp") 3; + break; + default: + setAttr ($op[0] + ".BoolOp") 2; + $iterator = 0; + break; + } + $iterator++; +}else if(`cpIsBvlOp $op[0]` == 1){ + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + switch($iterator){ + case 0: + dragAttrContext -e -ct ($op[0] + ".hOffset") "cpCtx"; print "Switch to H Offset"; + break; + case 1: + dragAttrContext -e -ct ($op[0] + ".hDivisions") "cpCtx"; print "Switch to H Divisions"; + break; + default: + dragAttrContext -e -ct ($op[0] + ".hOffset") "cpCtx"; print "Switch to H Offset"; + $iterator = 0; + break; + } + $iterator++; +}else if(`cpIsMir $op[0]` == 1){ + + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + if($cp_maya_v1 > 2016){ + switch($iterator){ + case 0: + setAttr ($op[0] + ".mirrorSide") 0; print "Switch to Positive Side Symmetry"; + break; + case 1: + setAttr ($op[0] + ".mirrorSide") 1; print "Switch to Negative Side Symmetry"; + break; + default: + setAttr ($op[0] + ".mirrorSide") 0; + $iterator = 0; + break; + } + }else{ + switch($iterator){ + case 0: + setAttr ($op[0] + ".mAxis") 0; + break; + case 1: + setAttr ($op[0] + ".mAxis") 1; print "Switch to -X"; + break; + case 2: + setAttr ($op[0] + ".mAxis") 2; + break; + case 3: + setAttr ($op[0] + ".mAxis") 3; print "Switch to -Y"; + break; + case 4: + setAttr ($op[0] + ".mAxis") 4; + break; + case 5: + setAttr ($op[0] + ".mAxis") 5; print "Switch to -Z"; + break; + default: + setAttr ($op[0] + ".mAxis") 0; + $iterator = 0; + break; + } + } + $iterator++; +}else{ + setToolTo moveSuperContext; warning "There's no attributes to 'cycle' on the Object.\n"; +} + +} + +global proc cpDisplayBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $below1[] = `listRelatives -c -f $buf`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + setAttr ($i + ".overrideEnabled") 1; + + setAttr ($i + ".overrideShading") 0; + setAttr ($i + ".overrideColor") 1; + +} + +showHidden -a $below2; + +for($i in $below1){ + + xform -cp $i; rename $i ("cpB:" + "op#"); + +} + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpKeepBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `duplicate $buf`; + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $opCopy`; + +string $below1[] = `listRelatives -c -f $opCopy`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + setAttr ($i + ".overrideEnabled") 1; + + setAttr ($i + ".overrideShading") 0; + setAttr ($i + ".overrideColor") 1; + +} + +showHidden -a $below2; + +for($i in $below1){ + + xform -cp $i; rename $i ("cpB:" + "op#"); + +} + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpHbevel(){ + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); +string $ControlNode[]; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBvlOp $op[0]`){ + select -r $op[0]; cpAttrSwitch; return; + } +} + +if(size(`filterExpand -ex 1 -sm 34`)){ + + select -r `polyListComponentConversion -te`; + invertSelection; + +string $invId[] = `ls -sl -fl`; + +polySelectConstraint -m 0 -dis; +polySelectConstraint -m 3 -t 0x8000 -sm 1; +polySelectConstraint -m 0 -dis; + +string $HeId[] = `ls -sl -fl`; + +string $finalId[] = `stringArrayRemove $invId $HeId`; + +if(!`size $finalId`){error "No Hard edges where detected.\n";} + +$op = eval("listRelatives -p -f `listRelatives -p -f`"); + +if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 1 -sg 1 -sn 1 -sa 180 -o 0 -n "HBevel" $finalId`; +}else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0 -n "HBevel" $finalId`; +} + +string $ud[] = `listAttr -ud $op[0]`; + +if(`size $ud`){ + for($i in $ud){ + deleteAttr -at $i $op[0]; + } +} + +addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.15 $op[0]; + +connectAttr ($op[0] + ".hOffset") ($ControlNode[0] + ".offset"); + +addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $op[0]; + +connectAttr ($op[0] + ".hDivisions") ($ControlNode[0] + ".segments"); + +if($cp_maya_v1 > 2016){ + + addAttr -ln "hMitering" -k 1 -at "enum" -en "Auto=0:Star=2:Round=3" -dv 0 $op[0]; + + connectAttr ($op[0] + ".hMitering") ($ControlNode[0] + ".mitering"); +} + +select -r $op[0]; cpAttrSwitch; + +}else{ + +if(!`size $op`){error "Select at least one Object.\n";} + +for($i in $op){ + +select -r $i; + +polySelectConstraint -m 0 -dis; +polySelectConstraint -m 3 -t 0x8000 -sm 1; +polySelectConstraint -m 0 -dis; + + +if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 1 -sg 1 -sn 1 -sa 180 -o 0 -n "HBevel"`; +}else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0 -n "HBevel"`; +} + +string $ud[] = `listAttr -ud $i`; + +if(`size $ud`){ + for($j in $ud){ + deleteAttr -at $j $i; + } +} + +addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.15 $i; + +connectAttr ($i + ".hOffset") ($ControlNode[0] + ".offset"); + +addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $i; + +connectAttr ($i + ".hDivisions") ($ControlNode[0] + ".segments"); + + if($cp_maya_v1 > 2016){ + + addAttr -ln "hMitering" -k 1 -at "enum" -en "Auto=0:Round=3:Uniform=1:Star=2:None=4" -dv 0 $i; + + connectAttr ($i + ".hMitering") ($ControlNode[0] + ".mitering"); + } + +} + +select -r $op; cpAttrSwitch; + +} + +} + +global proc cpMirror(){ + + global int $cp_maya_v1; + +string $ControlMesh[] = eval("listRelatives -p -f `filterExpand -ex 1 -fp 1 -sm 12`"); + +if(!`size $ControlMesh`){error "Select at least one Object.\n";} + +if(`currentCtx` == "cpCtx"){ + if(`cpIsMir $ControlMesh[0]`){ + select -r $ControlMesh[0]; cpAttrSwitch; return; + } +} + +for($i in $ControlMesh){ + +string $ControlNode[] = `polyMirrorFace $i`; + +polyMergeVertex -d 0.015 -am 1 $i; + +string $ud[] = `listAttr -ud $i`; + +if(`size $ud`){ + for($j in $ud){ + if($j == "BoolOp"){continue;} + deleteAttr -at $j $i; + } +} + +if($cp_maya_v1 > 2016){ + + addAttr -ln "mirrorSide" -k 1 -at "enum" -en "+=0:-=1" -dv 0 $i; + + connectAttr ($i + ".mirrorSide") ($ControlNode[0] + ".axisDirection"); + + + addAttr -ln "mPosition" -k 1 -at "floatLinear" -dv `getAttr ($ControlNode[0] + ".mirrorPosition")` $i; + + connectAttr ($i + ".mPosition") ($ControlNode[0] + ".mirrorPosition"); + + + addAttr -ln "mAxis" -k 1 -at "enum" -en "X=0:Y=1:Z=2" -dv 0 $i; + + connectAttr ($i + ".mAxis") ($ControlNode[0] + ".axis"); +}else{ + + addAttr -ln "mdX" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotX")` $i; + + connectAttr ($i + ".mdX") ($ControlNode[0] + ".pivotX"); + + addAttr -ln "mdY" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotY")` $i; + + connectAttr ($i + ".mdY") ($ControlNode[0] + ".pivotY"); + + addAttr -ln "mdZ" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotZ")` $i; + + connectAttr ($i + ".mdZ") ($ControlNode[0] + ".pivotZ"); + + addAttr -ln "mAxis" -k 1 -at "enum" -en "+X=0:-X=1:+Y=2:-Y=3:+Z=4:-Z=5" -dv 0 $i; + + connectAttr ($i + ".mAxis") ($ControlNode[0] + ".direction"); + +} + +} + +select -r $ControlMesh; cpAttrSwitch; + +} + +global proc cpPanelBool(){ + +string $buf[] = `ls -o -fl -l -sl`; + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `duplicate $opA $buf`; + +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $opD[] = `polyCBoolOp -op 3 -pcr 0 -cls 1 -ucb 1 $opCopy`; + +delete -ch $opC[0] $opD[0]; xform -cp $opC[0] $opD[0]; + +sets -e -fe $sg $opC[0] $opD[0]; + +select -r $opC[0] $opD[0]; + +} + +global proc cpMeshSlicer(){ + +string $buf[] = `filterExpand -ex 1 -sm 12`; +string $curve[] = `filterExpand -ex 1 -sm 9`; + +if(`size $buf` != 1){error;} +if(`size $curve` != 1){error;} + +makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 -pn 1 $curve[0]; + +string $dir = `cpGetCamDir`; + +int $exd; +int $cI; +string $d; + +if($dir == "x"){ + $exd = 0; + $cI = 3; + $d = "-d 1 0 0"; +}else if($dir == "y"){ + $exd = 1; + $cI = 4; + $d = "-d 0 1 0"; +}else if($dir == "z"){ + $exd = 2; + $cI = 5; + $d = "-d 0 0 1"; +}else{ + error; +} + +float $len[] = `cpCoi $buf[0]`; + +nurbsToPolygonsPref -f 3 -ucr 0 -uch 0 -pt 0 -m 0 -mt 0.1 -mrt 0; + +optionVar -iv "extrudeDirectionType" $exd; + +optionVar -fv "extrudeLength" ($len[$exd] + 1); + +string $opB[] = eval("extrude -ch 0 -rn 0 -po 1 -et 0 -upn 0 " + $d + " -l " + ($len[$exd] + 1.0) + " -ro 0 -sc 1 -dl 1 " + $curve[0]); + +string $curveShape[] = `listRelatives -c -f $curve[0]`; + +if(`getAttr ($curveShape[0] + ".form")` == 1){ + polyCloseBorder -ch 0 $opB; +} + +xform -cp $opB; delete -ch $opB; + +eval("move -" + $dir + " -rpr " + $len[$cI]); + +select -r $buf[0] $opB[0]; + +cpPanelBool; + +} + +global proc cpTglBox(){ + + string $ops[] = eval("listRelatives`ls -o -v \"cpB:*\"`"); + +for($i in $ops){ + + if(`getAttr ($i + ".overrideLevelOfDetail")`){ + + + setAttr ($i + ".overrideLevelOfDetail") 0; + + }else{ + setAttr ($i + ".overrideLevelOfDetail") 1; + } + +} + +} + +global proc cpTglBoolv(){ + + + string $vOps[] = `ls -o -v "cpB:*"`; + string $ivOps[] = `ls -o -iv "cpB:*"`; + + if (size($vOps)) + hide $vOps; + else if(size($ivOps)) + showHidden $ivOps; +} + +global proc cpHedgeSel(){ + + polySelectConstraint -m 0 -dis; + polySelectConstraint -m 3 -t 0x8000 -sm 1; + polySelectConstraint -m 0 -dis; + + hilite `ls -sl -o`; + + if(!size(`ls -sl -fl`)){error;} + +} + +global proc cpShapeShifter() { + + string $PrefsDir = (`internalVar -usd`) + "/AMTools/AMTScripts/StartShapeShifter.mel"; + int $IsValidDir = `filetest -f $PrefsDir`; + + + if($IsValidDir == 0){ + warning "Unable to start ShapeShifter,you have to purchase or update ShapeShifter for CREASE+ support.\n"; + return; + } + + eval("source " + "\"" + $PrefsDir + "\""); +} + +global proc cpGoz(){ + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(`size $op` == 0){error "There's No Selection.\n";} + + for ($i in $op){ + select -r $i; + polyCleanupArgList 4 { "0","2","0","0","1","0","0","0","0","1e-005","0","1e-005","0","1e-005","0","-1","0","0" }; + if(size(`ls -sl -fl`)){ + polyCleanupArgList 4 { "0","1","0","0","1","0","0","0","0","1e-005","0","1e-005","0","1e-005","0","-1","0","0" }; + } + } + + select -r $op; + + cpGetGoz(); + +} + +global proc cpQsmooth(){ + + string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(!`size $op`){ error "You must select Object(s) or component(s).\n"; return;} + + if(size(`filterExpand -ex 1 -sm 12`)){ + + for($i in $op){ + polySoftEdge -angle 30 -ch 1 $i; + } + }else{ + polySoftEdge -angle 30 -ch 1; + + } +} + +global proc cpHardDisplay(){ + int $g_cond[1]=`polyOptions -q -ae`; if ($g_cond[0]) polyOptions -hec; else polyOptions -ae; +} + +global proc cpmakeUV(){ + + global int $cp_maya_v1; + + string $op[] = `filterExpand -ex 1 -sm 12`; + + {// + string $listPlug[] = `pluginInfo -q -ls`; + + int $isload = stringArrayCount("Unfold3D", $listPlug); + + if($isload == 0){ + error " ' Unfold3D ' Plugin has to be loaded in order to continue.\n"; + } +}// + + for($i in $op){ + + string $opId[] = `polyListComponentConversion -tf $i`; + polyProjection -ch 1 -t "planar" -ibd on -kir -md "c" $opId; + + select -r $i; + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(!size(`ls -sl -fl`)){error ($i + "Your mesh as no hard edges, UV generation failed.\n");} + + polyMapCut -ch 1; + + $opId = `polyListComponentConversion -tuv $i`; + + if($cp_maya_v1 > 2016){ + u3dUnfold -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i; + }else{ + Unfold3D -u -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i; + } + //u3dUnfold -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i;//>2016 version + + } + +select -r $op; +print "DONE!.\n"; + +} + +global proc cpCurveCham(){ + + string $cpnt[] = `ls -sl -fl`; + string $op[] = eval("listRelatives -p -f `ls -sl -o`"); + string $Ctrl[]; + + if(`size $op` != 1){ + error "Possible only on one curve.\n"; + } + + if(size(`filterExpand -ex 1 -sm 39 $cpnt`) != 2){ + error "Drag 2 Curve Points (using Shift).\n"; + } + + string $newCurve[] = `detachCurve -ch 0 -cos 1 -rpo 1`; + + if (size($newCurve) == 2){ + $Ctrl = `filletCurve -ch 1 -rpo 1 -t 1 -jn 1 -cir 1 -r 0.5 -bc 1 -d 0 -b 0 $newCurve[1] $newCurve[0]`; + + }else{ + $Ctrl = `filletCurve -ch on -rpo on -t true -jn true -cir true -r 0.5 -bc true -d 0 -b 0 $newCurve[2] $newCurve[1]`; + + } + + dragAttrContext -e -ct ($Ctrl[size($Ctrl)-1] + ".depth") "cpCtx"; + setToolTo "cpCtx"; + + +} + +global proc cpTransferBevel(){ + global int $cp_maya_v1; + string $op[] = `filterExpand -ex 1 -sm 12`; + + if(!`size $op`){error;} + + for($i = 0; $i < size($op); $i++){ + if(!`cpIsBvlOp $op[$i]`) + stringArrayRemoveAtIndex($i, $op); + } + + if(`size $op` < 2){error "TransferBevel only work for Hbevel Meshes";} + + if($cp_maya_v1 > 2016){ + float $data1 = `getAttr ($op[0] + ".hOffset")`; + int $data2 = `getAttr ($op[0] + ".hDivisions")`; + int $data3 = `getAttr ($op[0] + ".hMitering")`; + + for($i = 1; $i < size($op); $i++){ + setAttr ($op[$i] + ".hOffset") $data1; + setAttr ($op[$i] + ".hDivisions") $data2; + setAttr ($op[$i] + ".hMitering") $data3; + } + + }else{ + float $data1 = `getAttr ($op[0] + ".hOffset")`; + int $data2 = `getAttr ($op[0] + ".hDivisions")`; + + for($i = 1; $i < size($op); $i++){ + setAttr ($op[$i] + ".hOffset") $data1; + setAttr ($op[$i] + ".hDivisions") $data2; + } + } + +} + +global proc cpCleanAttrs(){ +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + + for($i in $op){ + string $cusAttrs[] = `listAttr -ud $i`; + + for($j in $cusAttrs){ + deleteAttr -at $j $i; + } + } + +} + +global proc cpBakThatNod(){ + + string $usel[] = `ls -sl -fl`; + + string $Selection[] = `filterExpand -ex 1 -sm 12`; + + if(`size $Selection` != 1){error "Select a mesh and a Node from ChannelBox(modeling Operation).\n";} + + nodBaker $usel[0]; + error "Nothing happened. You must select a mesh, then a node from the channelBox\n"; +} + +global proc cpInstanceBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `instance $buf`; + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $below1[] = `listRelatives -c -f $buf`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + +} + + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpAttachCurve(){ + + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(!`size $curve`){error "You must select nurbsCurve(s).\n";} + + string $op[] = `attachCurve - ch 0 - rpo 1 - kmk 1 - m 0 - bb 0.5 - bki 0 - p 0.1`; + delete -ch $op[0]; + select -r $op[0]; +} + +global proc cpCurveBool(){ + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(`size $curve` != 2){error "You must select exactly two nurbs curves object.\n";} + + cutCurvePreset(0,1,0.01,6,0,1,0,1,2); select -cl; +} + +global proc cpCloseCurve(){ + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(!`size $curve`){error "You must select nurbs curves.\n";} + + for($i in $curve){ + + + if(`getAttr ($i + ".degree")` == 3){ + + if (`getAttr ($i + ".form")` == 0){ + closeCurve -ch 0 -ps 0 -rpo 1 -bb 0.5 -bki 1 -p 0.1 $i; + }else{ + continue; + } + }else{ + + if(`getAttr ($i + ".form")` == 0){ + closeCurve -ch 0 -ps 1 -rpo 1 -bb 0.5 -bki 0 -p 0.1 $i; + }else{ + continue; + } + } + } +} + +global proc cpCurveMultiply(){ + + string $curve[] = `filterExpand -ex 1 - sm 9`; + + if(!`size $curve`){error "You must select at least one nurbs curve.\n";} + + for($i in $curve){ + + select -r $i; + selectCurveCV all; + int $numSpan = (size(`ls -sl -fl`) * 2); + select -r `eval("listRelatives -p -pa -f `ls -sl -o`")`; + rebuildCurve -ch 0 -rpo 1 -rt 0 -end 1 -kr 1 -kcp 0 -kep 1 -kt 1 -s $numSpan -d 1 -tol 0.01 $i; + } + select -r $curve; +} + +global proc cpAbout(){ + showHelp -a "http://polycount.com/discussion/173981/maya-crease-tool-for-hard-surface#latest"; +} + +global proc cpUi(){ +global string $cp_icon_path; +string $imgs = $cp_icon_path; + +if(`window -ex cpWin`){ + deleteUI cpWin; +} + +window -t "CREASE+ v 1" -tbm 1 -tlb 1 -rtf 1 -mxb 0 -bgc 0.1 0.1 0.1 cpWin; + +window -e -wh 265 300 cpWin; + +menuBarLayout -w 110 cpMenu; + menu -p cpMenu -l "Edit" -to 1 cpEdit; + menuItem -p cpEdit -l "Instance Bool" -c "cpInstanceBool"; + menuItem -p cpEdit -l "Transfer Bevel" -c "cpTransferBevel"; + menuItem -p cpEdit -l "Toggle Last" -c "cpAttrSwitch"; + menuItem -p cpEdit -l "Bake Selected Node (Channel Box)" -c "cpBakThatNod"; + menuItem -p cpEdit -l "Clean Attributes" -c "cpCleanAttrs"; + + + menu -p cpMenu -l "UV" -to 1 cpUVmenu; + menuItem -p cpUVmenu -l "Make UV" -c "cpmakeUV"; + + menu -p cpMenu -l "Help" -to 1 cpAbout; + menuItem -p cpAbout -l "About" -c "cpAbout"; + +tabLayout -p cpWin -tv 1 -tc 0 -iv 0 -cr 1 -bs "none" cpTab1; + +scrollLayout -p cpTab1 -cr 1 -bv 1 -h 235 cpMainScroll; + scrollLayout -e -pe 1 cpMainScroll; + +rowColumnLayout -p cpMainScroll -rs 1 7 -nr 3 cpmodCol; + +iconTextButton -p cpmodCol -i ($imgs + "cp_eye.png") -st "iconAndTextVertical" -fn "obliqueLabelFont" -dcc "cpTglBox" -c "cpTglBoolv" -ann "Toggle visibility of Bool Objects. Double-Click to Toggle Boxes.\n" ; + +iconTextButton -p cpmodCol -i ($imgs + "cp_bool.png") -l "Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpDisplayBool" -ann "Performs boolean operation with Bool Object Display.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_keep_bool.png") -l "Keep Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpKeepBool" -ann "Performs boolean operation with Bool Object Display While preserving the Operands.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_bevel.png") -l "HBevel" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHbevel" -ann "Performs HBevel based on Object or Face Selection.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_panelbool.png") -l "Panel Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpPanelBool" -ann "Creates Panels out of the Operands.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_mirror.png") -l "Mirror" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpMirror" -ann "Mirrors Selected Objects.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_sel_hard.png") -l "Get HardEdge" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHedgeSel" -ann "Select The Hard Edges of the Selected Meshes.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_ss.png") -l "ShapeShifter" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpShapeShifter" -ann "ShapeShifter support, behaves like ShapeShifter of AMTScripts.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_goz.png") -l "Zbrush" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpGoz" -ann "Sends Selected Meshes to Zbrush, fixing nGons automatically.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_quicksmooth.png") -l "30 smooth" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpQsmooth" -ann "Apply a 30° Smooth Based on Selected Meshes or component Selection.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_hard_display.png") -l "Hard Display" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHardDisplay" -ann "Allow realtime display for Hard Edges.\n"; + + iconTextButton -p cpmodCol -i ($imgs + "cp_mesh_slicer.png") -l "Mesh Slicer" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpMeshSlicer" -ann "Performs Mesh Slicer (Select a curve and a Mesh).\n"; + + menuBarLayout -p cpTab1 -w 110 spMenu; + menu -p spMenu -l "SubD" -to 1 spSubD; + menuItem -p spSubD -l "Lower Res" -c "spLevel 1" ; + menuItem -p spSubD -l "Higher Res" -c "spLevel 2" ; + menuItem -p spSubD -l "Lower Weight" -c "spLevel 3" ; + menuItem -p spSubD -l "Higher Weight" -c "spLevel 4" ; + +scrollLayout -cr 1 -bv 1 -h 235 spMainScroll; + scrollLayout -e -pe 1 spMainScroll; + +rowColumnLayout -p spMainScroll -rs 1 7 -nr 3 spmodCol; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease1" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 1" -ann "Apply Crease Preset of a 1 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease2" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 2" -ann "Apply Crease Preset of a 2 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease3" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 3" -ann "Apply Crease Preset of a 3 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_weight_tool.png") -l "Weight Tool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spFastCrease" -ann "Weight tool alows interactive creasing with update right after.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease_editor.png") -l "Crease Set" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spShowCreaseEd" -ann "Opens Crease Set Editor.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_physical_crease.png") -l "Physical Crease" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spPhysicalCrease" -ann "Draw Loops around hard edges or component Selection.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_nocrease.png") -l "No Crease" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spNoCrease" -ann "Remove Creases/Weights.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_smooth.png") -l "SmoothSG" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "smoothSg" -ann "Smooth By Smoothing Groups.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_smooth.png") -l "SmoothOS" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spSmoothOs" -ann "Smooth the Mesh.\n"; + +scrollLayout -p cpTab1 -cr 1 -bv 1 -h 235 cpSecScroll; + scrollLayout -e -pe 1 cpSecScroll; + + rowColumnLayout -p cpSecScroll -rs 1 7 -nr 3 cpsecCol; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_draw.png") -l "Draw Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "setToolTo cpCurvectx" -ann "Enters the Draw curve context (1 degree curve).\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_bevel.png") -l "Curve Chamfer" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveCham" -ann "Performs curve Chamfer.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_attach.png") -l "Attach Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpAttachCurve" -ann "Attach seleted Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_close.png") -l "Close Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCloseCurve" -ann "Close selected Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_bool.png") -l "Curve Intersection" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveBool" -ann "Intersecs selected Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_multiply_curve.png") -l "Multiply Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveMultiply" -ann "Multiply Curve resolution by 2.\n"; + + + +tabLayout -e -tl "cpMainScroll" " " -tl "spMenu" " " -tl "cpSecScroll" " " cpTab1; + +showWindow cpWin; +} + +// Load extension file if exists +global string $cp_icon_path; +if ($cp_icon_path != "") { + string $scriptDir = `dirname $cp_icon_path`; + string $extFile = $scriptDir + "/CreasePlus_Extension1.mel"; + if (`filetest -r $extFile`) { + eval("source \"" + $extFile + "\""); + } +} \ No newline at end of file diff --git a/2023/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png b/2023/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png new file mode 100644 index 0000000000000000000000000000000000000000..69e0f9e37ffa9e5a690366f4ea12180ad0ca9754 GIT binary patch literal 486881 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

x%=vPD1_?)bu!maKB>YC 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 cRcI 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%0AR+{En9+#|rM9Vx8xVxO%F52AAPC4Y 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

Kz23pt*vv-5DN?TOF%;m*RO`$AGzI}dXDA#BJT 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%0DW+D4XNN3^vN1;wf!9CqVmp3iA3jmM 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È`MDx1mj$gL*yuHv=YRdFhc8r`kG*w(vD^cP*R4!nY5Ejkba_b-;zS7~$ zX7(vVyi%=1deFFI#QryW1sW!6_@#H6uuTLjLoL6n1Lx6*nA9`MBtI z|M)XG_nRA}stUCVX@#?6sXNcM;%VGvPP(#Bcq=7mo_x<+p&<8R$Hp)@vn&ZlFKm5j zYwq6lzZi?@mFHFfh}zjFt?=$uXlEZ}q4{aQsj1$1Z^Sp4rRC2xP64_iw!WM1`(-^c zGyhb`U6`N0sIK<5UhM`aV3a7XZ~aAXPGUd0Lw?17NH&r_&A)0>tCeVE7x(+Ib8c|m zxiYs;3A9GlKIc?!S94fQ_fjOWN!dkaCD!swcjg&vNu*u6DpQl=)a+mClc;Oql_@~}%E%|u5RC{OBa53j5zm8(?- zoRLYNT_2IVukxrRskL+A>kURx=lLRD#Wx~Tts!T(@+mLRsx)1IRp@Ff$@(#0V6j~lkq+9o8c0yYZoHMUqfI*oh*yxqD&Xp?@z^s6q zs#z}U(SkJn_|Y4R8c_d$M^kM6rd1E^wEA&9jyU#PbfN71hvyfl>wYCTyR0n9c+RuS zxxLfae=D)X`L?e~^qaIH_sa_>ttCo)_YQZux3^n-Bsq3 zJ|Am4Hw+H(cA4es>qK7Xuk!8MF1t3j`ARJIR(V+y=kV*xBu?HJ!t2(i?)~~V`nA-U z`d^tzo^jnCTIY%*eZ7$eXM%SRRq#knI*YZEsjM2S^=F%0O@4T$)Zk2t5{)QDsPO8! z4~hMhocfN(?$drCA;|0zIX2ZT{DUczgb0I6^lHz6>~1v=9+d} z`A<~ZTF>Tx&9FEuD_-JfdvKNAC41>r(F%?Yx6pkQB_}7wM7;;*l`3trf*WUA-Ruqz zXIeh0G4Vb9w9BKzE@E-wx8>${&yRoIzV)ZR5L)>WVl^m{(0W3Z;f|nG^x!Z5zL}Ya zDnlW@SL#__UssDicgQn*X`tF+jm99vDtzfR^VXL(f90AbONJwoieiqkWkC_{hp+66 zISJAz+l0+59d$@tTk$ToTYA+}lg#t>ZRQwyq50oJgc;CUSWQDufA|l=##EvlF#qz@1H|HChjStjJZ6vcAko-`Ay~7 zV^*t)G4}nG=OrKT&KqlvyC$<;TB!ZV=2k^Px2V8(Xxm|-y-#boUSyPd>&D}V~n zjE^5;ToqTR>rM?f-LlxIoceJ2-=@!>M<1-S2ke5i+RMKe)1;;c%2AQe_y21Zd>B!4 z^t)>0{CArx&tzpUPZT*^Josh3gx%_JsNPf2Fd0)_nh%S;S^wOlPrad(9=JA9Yu4hz zcJFA@XMO+{l|J=c0F*M7}e+<3l9tN{N8u%+(p&# zi`O-O_Qd&fSL}(~Ien&7>(N4gj?FJ; zHMpWf_eSI&uGSgx-r1h_-wxPwUQ0%#d_nu_-ESU2wdQBJXPpnHs)dF4%Z$BR<)#-a zdnUjsOZ(Giu-zc>$r1a{t(i)R`&4I)hfDXGEa#9M6cl%&?>tBUckxsj98}B8VQTdc z17jFTTOYdWDxF8Dv z$PF;BywI0?niZBSV%1NiN(>}`kWogr-2zgCE5!2XTmVPz zs6YS*EEe1+z1`so3XTaQ5}*hpA4K>WkTDRQw7wdzM$sjxJDd9bU*|Whwto2`tDN(X zhs%`$KjXo_Z{l+-;+Hc$(v0RS^iy}Qnn>)s$6h(z?HOaT5aQ}YYH*D~|A5tOvu46j z{FBgMl#~O;X_r$@ZTxkPtlfU+qe)Gce_qq(ck`Zk;-^8K_egx0zow0Qav227IzAuG zaE*V=^KZXWlkKq&Ix${J?+0u?j!ryFioW`!P|;SfHY0fM>Bi%Ss&_X?OPuIUwPM)Z zzb`+P3##clQ@bQB{%vrx2iAP+jvwzSGBJ|#yPDe;Un*syG>lC$(bh|kJ@w<9>lG_{ ziAmo{&D7rZx{t1hKYH#~|6WAgbn^dLx(;|O`?hUml(`qRImfjpnY>X)oYPv_fWUg9-WJ`q>+z?WpEJAz*L*J33!l}qwy?eu^G5zn-!1pOTipigjJ7Wv*+t9sWad-N zw!%`ab3VUg?b+63ek)e{TnZ~y^m$oc()-A|HZ(9SO{(ZXr_hI(?AU1jVWZohBLi4= ziE%^}7Zt(AMG>>ey1F`4RyQ~gy|$5Lq0#3QVemA9HW$?utOI(1?g2W4ZVKf3i9jA! zWsi>_(Gx;&`2S$z%sa4`n2H zV7S2u<_Z8Pc)EQ1`4ir)N~s0DPok_+fCXMXUWVZorh*n2!9!ev@+_dJy1>%0Kj+cK z2BGTPe4na)7w(OxM?Vo8iuHDwjCd&f*5pne)4N-e zKTNJ|Z}N{jmZ0fDuO?_VeB=BzL(2OLnMX_Q7apYsrfD3Cat>4ksNj8qoU(fKnSNI0 zzS&BO9c%@&PFJe-<|Re4c={wb5 zJ-MKU%LglBc%{G(Xj(FU@%cXL6;-l&tNqq!bmW6ihNQuj zD~~d6`gJ>!zB*dmoe?>4zDU)Kt7pDEiT-TmOpuw!P*%k06CPGUnr1sEv;R687A`bi z7Mp74D_uNYb|+Y`;>e?zBVrrQ1Pz;cRA)q z$M#tYPOWdH4&<5VJiw=*Gko_YH{FteoCl{G_r6<8LSf#;o0)| z>3Mmhm}e4l+8!rZZqc;}Z_@t)>yZ=OW^s36XtLu(yrWRLI zpOc`K0? za_K|jiiWBb*)T7&f>EPPM(4;=&+WTo4j%p%^s=q?deuG|k?qdi;+-t}0^G-M_7%HD z=hg^he;qGg;VSGGyVH}jdpYGKbJte-D5YEP!{xf&hO#rXDL6e@`A&}bJ#jEMc(vVT zkKGO@5BXD%gk`jLhv5(K8x@V6F!=(DnXsjBMXC+SFeHm=*Q*3ZQML>8jq!G58xxff2E9;c{M6bd z7{aQ=@2@4ujbOWgRtLX-SdUH2Ur7*@i*4{QL;L@81{!VjIwT$+NX&p+gH?&0(CE_L z(a_9m=U9H(~NuySF8jvWCvUQwb40r(4r?<#lUwg@Q}DH;z65!T_c z9mUgP0+~GyrOH zeYUHLu}6^{Na}C{a~5SWMu~W_qabc8LjZ;(CXpm^r#Fa_0RgKR6+tY17g0Yq)fGM$ zZe9;SPA*2im{CL8P8T#TplfO7 zoQ7;fgfF<;m;v6QdVV1Kfe#7lEPPOXeSN|0Aw8xQJOFnxs29b=ZU|~XO_Zwruk75W z1Wk}zz^n_x{|PbE#Dqv8{L4NYrGlCjijI>}y_5M1@SV417aVtl} z!8`2|j2M#Qb6;1v;K&_$02`s$xUg#+_Im1q%Urn{j1Ax^ncUXFFKum6+i9i;KR6=# zVE**h7-ni^CffRj+S+Yk8*6b%zLH>k!Y0Vtl2@d-x!hka7BVJy)a5w7U^_s={IH>&Noc(slPHw-P*<{#-p_cb)@1GGIw<+eWaJ zfLcOe#Su|Bthc@g8Lm9d9y}XGrkgJP%QQ+vI-A6A>yn_$hTCbwD3#+0_8=$%pvB+- zOH>!Mlx9jGVFY>yw8<8XuJ9AaL`6w*FiNKWwy>}b9dG#ZMe%>MdHjX_(t#Aq8JGcJ z9uM}EnwlDzU%~N2TpQu4#btdI;!K!jf!_$OM2=?86%-7301%9Md3k{$q0*pY8XB=fHpDt)ufdm4GQ80q+P*K1*9^_%1uaa2%d-tBa|Gra7 zjBPVq3_!WS{Fn%`^ZbFFmCHZhCgEccpT|T~g%qwX$aUDw3|k3f2%_L2EC!Hsw|h7I zWDzkP#_RFRClVEKL-eg)Xe8H-#tFhAL!4AU{ zC^D};A}WdqaxnFlibP9GaKf-3FehALvE_kisGK}$Z({>-VQKSbx2>Lw4shx2fBjkw zX{?T2c2K1dA{YE4w8^1bLn}w=v@R*i%KAaX2%SF2hlKVY4(7-jjh8a<uq5#d|E=-WvFoFWhCowZKj$b|hiR#Id z|HTnwfuJ!YY#?w?E8;GOkq3sh7MHSjG4I?sCc$_@|5jXF2i67-N`IYD}FG3`N<%ge_ z1y43H(O_zh^1)e9)f7$ocULq+FH zdKZ56UWBhEhF$_q2`lF!eW8=#TLxkR`$ zKxpCxB_ZxhFoL~!=*Vl^i;jWrh%yI(BzRQMVAz3X9U8DPsJQu@wt#F2F>jJ4VMU1) zDsZq}vH3x$ZHum>{Q*I&s3_rbjmLvq`zii5Xr!Ps6IL5&K(;VfH;_~&x{pL%<)?qu z_|dbBf?Oc?v*K2ZQr+q29QkIWp;jLs9I9u%POs`vQU4~(^E!RRzOaumnmMwigAuZ? zvi9oTG!qRMW%x)snZ_s>qt$dgGR!izn|t3)lhspel>J%n*A3#gyv_mL%hWvDGFFDG zE#6H0^0|xloQb+8ql=3?Zdvd9pmO?|iAYGRT$**eY2{5Q$;hgb=k_s8H;!)$%N9-$ z#84lU%$I1c=7Cwr$))BxGB${aZ_e%gl?e(rqBgJ$z?PmR=>J%;j~x^HT-K$$UF+xG zgE0neFt!PrG{U@v-$rkGuD;v_Oe(xkOh`dadWixO2Od-((1wnMb&G$k|E@@Zn1z~E z1HWM6e_^XB!3g8&;1M10xIk~GR-_g%pOPr(ae_v15#1DgcznQuM+zW~%V)<#I;TF0 zp(Q{WV9!Y-`wtL02|vNVW2*yUn4g`!14}9#briNGrw6d8nE4c74uwx|0$&SQP&r-HlVG%7;tq{m zr~CaBdKdmQ`UVM|E_(8C1P7sDC05mph##{UZUJY2m&QL=4JTT81Igh}q@A77{&%AZk6a~yhZMkFp` z$-@kL2IK;MGSv^(K&GC+T@sA5ORKnMnYd+sgBl1%E8%<+RmBebKM)NFBOL4_^9sAI zks+)7KScOrZ^E$!@@Fgs8XB6%*gx6X-?&p?D5?XBtfS*NTr5B+tyMlnO$roBB)~ja zNr=K37VA=pd&PfeqH&?Lj10t5IsYmC@v|Ufz?pZcPP@GCH#}rwK;wkN0Z8_6Q`j)< zV83^}Y;a^!{@1|Gww4w|C5fCFb0J2s+YdtCPVl;uq%1-k0#eA&N>~NlGU{ zaFeo>hC`C1+BJqdZs)5?-Q5jRZ$BK^z4x(`@0MAK~KB2SRG%lsT-CRpA^E+AX*eK7y z)64GiJF>NHzkP6Q42gZ^nHn2`Kd(Nccq-j++mmYF%+J4E(-UtJSxKS>iGs>{bHOhd z$zzIDHy=1g3TQ-SYb4OH24^WcrU@{7_{zUFqHL1ag=^&zwmR;vXP!SdXLfARzS=5z z?o~qrjtmD|+wH8Z;5ckI%HjL$iDLl`ATe?0JVY2vf3Zehm}FfYH!JJu+MqyqJo+7G zl=y0Y^(}O9VTw2|g8v;G%SkRY`{gxI%PGpfh5j{MX|tZruSrM~A$>-si-*JwPloJy zhv-gZP7MwW$nV+H)Y$moUpAH(HN&fkoyarmb9sWaB6uR=JVe!p9I-vD8aHy@*GDR% zG{(gj2W1ID_xMR6!v8K-@S!>7j|4l?$j}fn6<`YcckQ|tyIF+)(GUW8QPaUO2!2Rh zQQ2nV3wJoh$ov8~g(W3F3=FKG0pPk}2h9#B;{zA$=*eGamtcd3XlM?YeCu=tDAeA5 zLV0*#^wFmNe{h^c4imDhObUCD5WUDJJg!u5>+V#S-IIE^w$zt*Qa&nl@i zYb{+X^e-t0IychQ@@liP;`pS12#Q{{mho6kx zEQ=O$iShSaFTLNI5@oW9dRtFEB}drwzC#s_x4Zj%#)ruF+xNdc^ZlK|wt?4~a>nnS z{%y*X$sH+({>41=GVSG1FiTl_@Wcm>Lut+0)lwe*rSadMU%JbFr2hNWFWn0|d!IVn z+g3ideDtTxB{KBGrd^{4X4@yX+*)^zt>Jq--Ca>5bL)s}-`M52rSrhDKlYPvE_{1M zR=swYx4pvRB)>yD8Em#^pSqaIQ%8J$Tl|>{s)#7&cs_h}tG)TLBYouj=%X*Knt$30 z#ue+I(>^bIb=qZe4!McljGB36)4$7R<|2HuUBDqNKbpJb<6_y?ZhB-Q^826tb_=Ds z9B(FFzwcHx=+&8e=;!Y`|HL=!iMX4+_37!US2IRId(0H<;$v3}7E%N;c)?oz@G5x);728xfS!4XU724EOAH$6R$m2mtxIX{1VM?0OmWpPsg zhJp6LW9tH-*z0ysV3ep+8r+~p$}ngk$4R%K{(#5C&ol5=Rq7-N?u$7}{1_8%dZ_d8 zq_OcwoObX$35vdUjn1U+dSv9oS7))aT=l{-PuQtTBeC0s|qR!47CzfPjbH!Ogx z1?~Xs(LGS?uKDmZ!%Pm2#UdU1vC4PRYpSb1WKA-+9?;g&*>8bB?|j4MvG=>5n?VcY zx26Wq#i^ZPbVKo8n3Jz9AzX$7fo2Wt&fELtmu#~%=w&VEy_c0J)LduAzfxBgV zsEX(Z`&@j)bh&7hg`-{sEO~+;eq;Z=Ec36>kYWtuiA--a6Ct)W6F|O@O8j6gS(? zuf9*?oI&meH;ELFOhFJmFPi+q6oSOH<>?c#7;CDXIqFMl7i4sXIZDpg{(F6DM0e;; z&tAc-=KDkUnvSK(GNl}Qbg10J#1)=X7%_Lh zN{DI~Vf83|>6_2^I5uu)1V69NuER$h~sZS^QfzlwOoKd;c&~jb5qepOLAZr`mb$ z{a88jz^+4dtHEl7%*-MAM^BfnUz|*gcuX%MBAHrMe(J}I(8I&S{&{o0!T*jPIaBQI zHq?|mH}}X_Q^iG4?XhM?zHP6v&W~2wj*g2@{&lKHpSza%Vy^N}m7kHp=orI^lm6=- zXCGFMe<^<7<9&i@=y0FUl*6HK^A&jlhq+Y*$x)9~uSSMoVU$8kWuDj13#E=joC$um82M?B^nFsLt-Cfo~iVu+BmaSWh z%N%$UTN)*P!}D4KE>E+w+&~s?j5JVCGd8Z(-mQWMteJT4>(>!Y7mS3y;O_X_ij7j& z54;KU3a0L04<2~4gp9*(2^lH~j;ek9c#ckH2;Kt7SSs^v0k*Zu~;{ z6aczn<2y-7^RBTzYk}~orza!+_vdUdHB!OW?UhIw7E<}F2Y4>9;=X}X?yIC+7XynVCkWSFdpC}Fve5*zl? z3J?H64%_qyM@0%UUtu^2NLA#TL6~s#i^bl0p4=C_-)5JH7lXZvFOGL}{`BdYN&_+^ zkvJG(J?sQ)2l$Zt$qIKPFdP%umAUcnKYu3Oyy*cYFMcwL6DGTNk9t1G=f~k_hM*`E z5%9`U)NbQeW=Z+LBDnQEo9cVE_R5L_m%XRQCYf~(yG5L~CfO%G_~rkls)NP+6KSsA zc2dZAX??XyzjtVd&RIF$Yj^J4&Z`;zwE5A+0WN)|ig@;7UR(XW4__=$QZ+Q?jMa(r zHmbi*4P*(VE1GdTF{(Nx?y*L#6{mdu#+UQ`(=?pbxw19Syn?HW3@R@E>ThRD{$V!} zzBP%t<05^GORaVFkwb6N?1lCPA2@S}G!p#z$Tlsnljnji=-*!97-de*trb1VD`i?% zC8ar&m8%6)fx^>ihdxYcsc`*+ApyV#b6jHmgJ zx*IYLUpJ75%92p&B87!^hQ~gzip&*GvvC)5y&AW6No4?-(|NVj0 zZ@c}iqf9$I^D^9)|AxohJ$&KjyOI3s^anbGPqwV?mX8hAi(X2pmtXcCdP)nyVla^(%W`ct^aGfD0V@-atgpzjkz&1o=;~WLd7GsrC zT^(qfSNXX(1JK9SA!v_YH#djffZz!_FTk3v12TZo=wx^UUVJr8IzW?#xW@RDl!rY| z2(0{oKzVwyX{FP=>mUr}Hw`9d90Pf5+qP{I=PBQLem!{rj*45h6t>FM-@5_d4vhJyj6?jkA%2@h&+YP<;aoc=$-pW3*|sH(JjFB02tRZpQ%Tu^N9!ncrqfJ z3uY04m6wZ+2OzaUr+z$`{nw*u1moG-+e1DlbNFzwV9Nx9QGmh*3I}vRC>^Q*P@Q4% zMJUG9R1JVtAdYr6Hioqt+N&mRBK)X{MO0#I~5I9@26yLv9m z#Wh#qgF;9K2uFZr6Z`i$_E$*X_IMoM?rGqdKT~vm z;K2LvcPod_9csPes~dcX3?P>e)JROkezVwMVvoJI?j0@?Npz z+S!BkMY9Fej3-#h@1J+P8QLP>WN5M^d)OINvC^d^HwDex0fS}I6giH6+FfOv7W!Ta zy=K>iQSDvna{I;4`wMadd;aJKevrCrbc)M6(Lt(-Gl;jyPBLX9HNwg+m&x#~XTQ8o z*v-g%?_*wnf)bD2O7`9Br}MA;QE!&*7r7hJQxGXwAK5SRXZ*UOAG#<#f!x zrty`r#K6Qo_0b;_c5ZWR8w_%u?6R1hG5oNX^}FXAIDTs7zRMi)ovLqUWJ_@5*y%cG z!yKpn-0X?&xx4dMy58*wu>SSsWbgNLpP0@*dzq&(ZOipG&`Y}X*LBskP8;u~#4N4e z&xY=)0vVx|!8ujw4a5JRLxwb(N|iV9f`qjQmd=@d&$LJ?sO$j5p(>N&(%Bw*MktXJ zIR5`IIY5_S?yS|NKG)5|vODMICLZ~Q?($;*B!6dT3x@*!%WkZ&tK6GG6=W>WE>+Fo!*wFek_y zUco-3c(h5}#?6gs^Gjq;{Gzr*-W0B<&|iQZ15UhoR$MH`VKMh|W938#rE^K!%y~1j zy0KjQ$*;$O70mzp_ejBGdAM`@5^7??C=`oUj)y7Itl7it?_LF8m_49!rcpMO*(FVG z{TXrfD$IQB2^@6vU5+DHr$@RjUE~Nt5$3laR{Hz{*DD;#v%VO7F$A!U$x8Qm;fNNS z8dP-P0%2mPl=;K!5+{8H%xq@~0uP8YE}jrIC>w{Q2fv#mZ%!8y62b*ZJUxsjwjb2Y zS}H}z4G=kK+Lv(zde^ehDCg>?bMf*L*?1GVkf#+JBiv6O=O<8D98ADf;e3QBZ2SWu z%EZTocwcz`etDQ=z|IJrXz2CgfFPMW)i^*=J`fS4m{)G_?4i4LpfjA$#8I%nbnOji z+Ura{(`51X%SlPXU!%Wu@CF39k4_FWBvL<}s`5&#u>Ga^ba1RN@BVYKkLK&uyUy%* z>01))5iKpxtiW^5)4AbK-u(yjcNd>Cv^b?b^cN>lH%S_pU;PruLdqTC{<%jnX1Ahw z(5CB~?3rI4eSA#n)96}{xBX|;E&lUQ7^+A@XREAcAB+fHANAT|cISh~pM+0?uP5f7 zdOW{6FPRjKz+zE>$;}ZRQ}v_m#=X71G)%Xym6)>r%`!P%yHLK} zUhU22NiOeI*Y5|L$W!-^%E?bTe(L%5R)ed|`ps0t=a1P`hL<-!rMiDvzJ6f0fGe%b z=gJjJjZ1Z}seQKxP;y83{eES=Wrqio%fDG}W@S~%!hhdX$N4^#`w8#={rCNCx{r!~ zZ+{u85L{g!7&_D;8=(Hu>)6Xz)<34D8)70?yMlkea~P?z`<`>%c6#Nu*bQOJvaM+i z7KiAWIVDy8iyE)_rzD-0t16(6!m#inW+Hc`osE^1>v5T3=u;m;`?awbn+mFy0DaOkGUCg9#L2!d zN|G&|=;NFt%)~o7I-UaAeDdVuHVdTL@O*}if#qQgZtK3!7oCp-SVj51MWlOU556+c!z*wta8cV3rmCi<{W!yLXl>)aTr!171nwaQ?Q6y%9pR0W1T5Q&>1%|9*+LIP9X82ssLI_Q%EPZ9laakUr zun2{zyMxaAx8Bp1*^(3CTSb3gg2tMMz5J2`hsFs;_T=j}IukxOBCLe2wX$$*kKi-q zh;Z+-XmCj}YhPQ#>BN-WdNr%?S6;mEIpMFJejkJ~rv&lEn4)8yf}0-qMwY$KxxVi@ zSzvxCg;A$I`YdtSL-{v`~Hss16qrdXOA+`o>}m^&r_dQH#y)abmw~Z(RTyZ zvnLH0A8~&FJ#%oc2AA5w*!Ydi@!jNmh7+;-)}H8r?W4_fCw7V2Zbmi0)cmid`4_#- zb({j<IL!(pM%xGnjoG70g#vTRj#^|7x%mt{GtUF6)g$!~s7 zbo1$T@a;@CZtlGKXD&8)@h|0INpkXzuTzTQN@rRQZ!*|YW-^GiDB@3*7x}r`RF2m; z&eZerFRDsYVAQ`*SGmFi$o}EhvHD?m^O}Iv_;?8r$x!#+6W%;H2@~4Enm~Uj#3x4( zG#co58Z3pbad#fNna|QImismGOZ$GK02)H(C=B<(am(EOMM@{ka~FmTMm(zc$N4V@ zJ|mYFXg1o zF(S+z&;|k#3wK<*Ai+Tu$}cbPkC_}{Sd2ssY!7rw+YlB&B4rth%=411h_VyX^(~q^ z*W>4&)o!LwY%gZ3Xu7&?5X4|RyFOqYP#^3&yy`2TxG)M!JeHWIH78%et=29(X+xtW z<&L_G(5r3uZ%^A#KA7~_M1VD^=GdCB)B}>_H;;XQrMYZ9^g4}yZ%y+g~S>)1mq@Pd{vVJ-j}u zK#FPY_1&Cz`oQs*iUX7f`&Kt(Izvjn*5DK>D=n41Jo6yvF`Yjo|3?Z zTx-B$_QLn_^rX7CfljK&S`JPk4pLx%ppAeFPAzqGQ&eQ6Ec_cyM8%0{TwN=Usez}& z8R~RP_Mr=JePb2^S2ehrry(td3-lv+Tm$_w`sl+#votqu06P{m%t#WOm>JYa;E}LY za(9<-u-{%twA%!abLX)myLUGLw7xAIKpUp7r{@m#a(oZGO$*_0F*fF~c9%vu9spNc zn>G^ra6JW&C9gzNsrAMGURx_H@z_jekvY?5t4B+A4$;iv!b}!s6H1lxYsrgS%ba+a zP8RlqiX0 zfp{;K9g+KbJhQO6UT`!+lWu>0WnIpQvh z4K3UP^A)@zRCE(`u+N*Civ8}Vq*OP`bpp90k>pF~6f!$3C6Lr>T1g07~F717Ao-!3Kr{8Gg-6O5S%>o-om*800&qWu=e~wAH6Oz_G%21dg;kr7dd z-dN2CDdFmZX@E!Yb6Il0!08BV;6THH8x>A*%mXzN0>GuhxwL&V!V8Y>JRl-6fo=o_ z6Au%vP)eE|l9VK3&|F>D;QZC!Ql@r)yz?G4jWTW=qa&Q|%lO!^g$9=|P&|?2ZwMN7 zE>2FAQm`wV0ay<^HOv!nL=^~}QtrBhqXk1DWZ58NaQ%5BFAX=Gj%4l-c|(Yk!;?bN zPROcUzF`^&gP0z~$K$#xhdJiBhN;85@Tvs69$n)ov;A*i=lJglHcin@MNoIXWHF*6$v|Jd+4f*tKgII4Jl= zDe}JJCPFxDaEKE`jf0*D_JMIANON2lw}pQP@bjg$b-$EUcUzka>>F{=!;rHD6*t1f z{NO7A(>JUPBG@%44i6VWo;{}`txVA8M`Z&u>*+0VaybV>t0cqoN`t7*>qcjBAt^4< zBx(M{7Q$S_6VnP@jfCC4-_CgHRvXE}XLB5kY6u2ZCcy&GsJw22g`%aM|78JOCTlm= ztE#Hx@3fE1E}4m+xu-|5CJ?HW_1>Yb7WO#(P?DLM-PO#YYMirYa{%(pA6ANE0~_n0 zwDczO8JPPCB~tEUlDSj-U+|G}VIW>VPGeYfL53OKw5)NDK5GV<_0vF{z>sNzY1q*W zBJCZscq%ggO?8@)YHW&PV~hW3Ls_qf^GCjL7U29V7cc1O>|CfP3_sc+C1Clmn*!}% z$@JF~z*X2X4HC#Gb8;#$E#4{XZV799+i!3jg8e+ory7H66r$j;+|A6~aNS1nwR{}5 zKG*_Dhw3Em;wFF@%~B;en3(>4{P@rQK^>Q6-3F7#wRLU%9y(a@f*`t`oP~9a4&&6R zV;BO27Vd1GMiEh3R#e2eI{fu3f^N6?*p->o-COL1Lp}M3Ca}QemN2A2&olOmm`aJV z|MI$ZUX(rf&?GG{ULsJ3{k~r|w`Jn>9G5wYk)=d}? zB6u27wireKQ7#)Kk7Iq2qY@)IDDXP65pXF6D~KPc}hdDRaWJK_XE z`HGG$Ow{Pu%3h7~D|h#k`Ej5jIhX(K7~kQ?7{V)LegU@;9VYhl=#L*NYHB#d!KQ<+ zSf^v1Rok#T5vPaa8s!CY-C)QG_6gz8kFVpM-!pH74PW}?$xak2P?i{q7zG8@z%w2w zC}IirUwexXITx2fXu2>_2ap5O-+SD-pYR5O(bQF}m)#;VwVprMAt*0%<9Hr@eSILB zVl>~@(b2p2Bvo=PEQ9fEkWelGr(3l1cX2ese+zpV;ugKO8F@M@@a2q+!9}0r6LL2X zaQ%B-H;?*-xFy5YdP|t5EO)b`5C z?a@s=++TnGL_LMG0^V9@MQ@|>`gE_{f<2tcn&Tr*989r+5~EZsaXOX6)CTI<9Mv3S z?00X`$vM~E2O_LciANi$EBZb|w}Uwi*ckXig>yTjvcbsl@$>{kv*75ArXZ_?TA25T ziI~LZ?`Y650t;2@#F_(GhwBZN&Q!-4yO(QClxS4-N#z$D9U06I)tz)s&BTF_X<{6T z8XUt~WSu!%S%q4efL{g!N4ym9UNJ{-v9;aQP>Rpr)&AbqwCF_;LIa=!)h~TvCgR zCjmr&6|NjF9%0qP=KxE6H#avWr4TTTaW0`~AZWe#8o+S?pn5$Y{FA8@`pSlp)*3Aa zsr1R)I!YT`++!;Sn^#x_OWjeEFM0p}dTf0;JH9pFfS51Fy%# zT=Mn?hrZ}2NkfqJM9ghU+HdB2k+w*Fmds_%05A-V&cj2SU;e&w#ukCM+Zmb&pz7M; z2&-iiE~Tvfd@Bams{jLaUhXbDhqGJn@57l4%RTi?O{!mX>B*-J4EBG~NBSy~mjTP$ z*?r-eGhkmREizqRO@Ec}kW-4MAf?v=n)jm4we0>Z7(joOKDk_6G z)nE+?xg5;Shz<=q{2=4XJBsb;y3KYK$QC|`?gmT^g1jvx6akd(G}pEOO^%40f|pUX z0(5~&8=X`kXt7xOL4Xz(I*>rDih3CK1LB34IpKX(XrkD*Z>JPDw;e@q0hI2%8mnBUwb(BMrOl1m+OX_ zFdGyK_w*cGT+EvG7&MoitK~NNRGdED%@I{+DS_@DnBrStt&IN*(S)|%Y2e8u8auFA zxpwU6#Y;tT1o=VBz<@vUtde?toPCXZj@3rxI?CKRZ~Z-#RrQ8dpKuhUM5`dEp)SFY zFaM^o@u|OSgI-HXlr-xwXe1I%QPR2%JkcR4tIQ)Al=L$%L4Ad>HChThn)7(e#ziKS z4S%0LPgFL7{Ol6A)u2`asF(!yV0p7(sz^(eeH#rCQH{ri%Na*g5C#*#QR%*^e))LD z^Z6i5#X*%M(I9k_L3CTs;+24@YUzUq_lb!Sc$SJvBW`*~R{(k7mO7K8TS{p$?~Uw( z-nQGy=VjJjO!+?HVN|$sg4yqAe7qYN!rrs@-XrROL{9^Ib@T@p$~YDSowRk=?k-8l z4sDenEgY!p@8^0JYH<3r)AhRBtv`)E98;vL)@|+Gx&D0lB+zPU&GK%~cU*=0jQY-s zC!aY$cka6paJi+Xp&FBy3}%nS&#Z>-ex`PR*j*M3DwL7EyXhqfUnuZ6t6-s%ZgkGX z1g`uSx(+e|Co;t~%sYfsL;NnqUXn%vM??=a)znS4=iI8f4jgI!BRR5n{<@D0(MZeVgH0Uge zK{xOdlyA+J5>P+PZq;ApS1LqlhL5eGt$p{HzYlz9ci2}*lbbFaOl<>Nxs^lWE9PEE zJ-`V7ERr{~B%W+C&xef!qQY;1LKJ0kcrwX~Ff z!qA!sC@_8VYk}ljy}2^uSrss=B#lA})%Peu(A=8331Tn7^93y?q;N2gW@GD=TKhM7 zE>-(uZE!G(pc`ri_<+f!-U))R2q3P^#*#q$&L=QrKghwDAh_R`Uhkq!nF;^1oTvkv zyWK&BU*Y-F?I6{2>=%u43PQhW$Zz{RYbD)z7Ut*EQHEjSjtgQT{c?`d+gU)nIQ6hz zY;A49@>?>^QRh#4?A$AU=1ed40t{d&w`N{++a6&>ql|fZD1RjGWz1!<*A|>r&tq(h zT@ATX>fO6XkpPTHg6O}&=Q;Lfc7UjmitmQq2or6!SRPzYj`3+r{R_n}Uk)}lstB^K z{hi^Lj*W7W8Tj~71|X??MHKuF@(p>Inn4fXJF%s$8L(m9%GsfS7(T_%U0q&)Lcdrl zSaP5%T+fTq0vdCe|@MFm#-v-e18UG5tPzSQfIV<4vC8s zn2~gX1n?N_wa1t=KYSS3{2d}D*vvy~GmEDOWCHvUbgiiR5dv6yY5es0f*Y(fR@T-A z_&%Tvsorn0ktDbfsBYL)3ss5)=uexPYLXhUrVuX)!4C6`&b%5|q@8haERFI*LkRX@ z|5LE4iKMTbJ)JQt^IN7K_Do=_;XgjGheab&tknn^*^f*L1K#-9vrBfE>EZIY5fg*X zbQXIaKg7rL?>9MQA22D+!X6@2G_kSkx*s2nPLXI}^f=Vte+4BQl$U52z3p3MV=MZ8 z<0pJCbqvXYsoJ!LVUJB+#d3V^bu>Q+*1cSNN^f(6PcmPtMF}u2+9|{1Az1Km(2Da8htsNb7 zXc69*Y+m-fbm^tX_lV(5hlrV?8fag08mUB%Q(yf@+SRQGD3M^6o*p0HiDwQa3mcWK%tBVnR^I3&S5h|$zXUiX8<)Z_?!bEpm24fh^JJ5$AFcSco2M-+u|jzA#V#K9?;n9>8HQoC&AMUIJOMHC*Gc_ib{9N^jTZEhp&0@0n7p!8nl`_qiKN0T}mM zh*lLULIX=6i&%DesXv|+g5x^RrWU`zsCJ#JYj0gQoPePW2Q2|j0s0>djViS&xl5Pk;*QNi^P-+m^ji~s5NJFoWC^I_T?x19dlc`u#GoMM`EhaV zOHZba0-=G9i6O>NO$R>$YtLz{hGr4OsAhs%$6>OvA*keMYi2eW!+D7Ckd_ns%O%%* z7?Fr@sy7u+hT}6EGH4 zydHw$ugG^rhi+$Qj4IH?goxI~XYFp{3KbZ|1N>ZS6=qzxmVIrfay*tLzz;MmL;!)O zFg^XAsJJ-3BbOWih2Z0|^YDNc`4h|*U|i8E0#Vs>PDe$OHk0|8nVEs^f+CMG2!xP- zfub4xegW(WFgVmC*~W#zMed8t*G!AepSj6VlmKu@FB1ua3b3w)gR8i2nnOP$NNFUJX zV-R6M{HFW_i2=v&x#Lx!4lI86PM=LoOf1K-zq|W!)LssUh{mQSos6TL!YwmPtHjDU z>IVwTRaBe#WwK$EnJX`nG;J?j$i_<{25B4N%cGImW4NU1=gezany2xbNV7)#ys1j~ z#3xTng&?FhLz4@}d5>-Alz&?@=54sfAphIN(@MaxoX9W5OqBNRdhJ%ws(E;biw(dg zHpTi;uPshw>>db!_FD$nSM*`b0!(PC^Iik`9;fcjh{42@fgY>|g)K-qp>B3!=0EO%nPHiN8ye~!RO0`SG|2sOjZ9# z`a5tio160xx&)+=O%?XRh!nz1yaYdfH#IJIEM44zM6%Si2E@?;#He*2K8`6yMv+8n z8_~3Nc0#8DjjDRFaqx7-9t}@Wmk=-vo#yg5oymDe{3}%SIF50^)cIuHFVGVPa7x$k z7X=a)a7JHPQ~}H?7XJQyXcm`PZ;51Eq=5DJ_WEM|)h^!plT6kVJ{r8fimDX%5+u~M zdlhc9*cd-5rG5S4t;N%v99tAe$OsIM49HXBCxTpXN?~dP+#%T9hBxIW)(A#mg^Ky% zr38zVxPoyw;ET4{ zluxWu7xh9%dI>)iVQ>pKs2vSTp(e^ECZBNJDt(PY9y;(nP{FVYQM-;t$}=`V$d6i{ zm_cLp&6Nl8bA$-C%*|a=8i7D4!HGsWq@a#}>*E(?=v$;;A4YE8Uo2^WiQa5Y)wHZ4YiwdayIo|A}tN~4#1N658g^8 zgjNHm&nEKoq+LmxNC2w8PzEp=2BmoUdl8$$C==K0j1C!Z6^4xq-WC+Iq#O*(9mn**$T%IEWuZh! zxc#qOF;-xXZhG6%Q47Z{d_yqh&YGLMxxeTQBw;M0p{{O%qy_Q#nV=aMgMU0NY%c7 z%yI0(RkB8S?BCWChm=VIHyuzM;LLl{5}WZ%xyhwcfR>gf?odtBrg@R1K0DtLLnw)n1g zOqS;zzVHvv=Na{N5~7JMnD*E@IiV!`Y+CTwur^*rpby`IylD%nSz}C*zh5{Qm3?$4 zbF&9vBE;#UQexO9^w{D3Hq!s@)0#S zjyI>6CZua1a$}&(`WlKob#+{aC-G4+1OPo71t+o#Y8lv6Lm76O+|6HK-pz9SA=e6Pa7Untc;sAJ}ll>jV9#GiCyAOf%+Rd|N9GyB6;(=Awh z*qEG*uW{8D)Nb%!%4q&>^zUX^RIMdTNb65y-NcY}?UhIC`7?em0f79=fIDI1~wtxXEo6TXWzjwTA^kgd^jAe&TCZulVRN>A_W=;%{a3+SMorPBJ- z57tG6@ih0J+M+2&7PyQ7+3@TV9AgUaUcAO139>GDZaDa11CQyq^N;&rq%Qb?Cv^UG zAY;SaC=h3iKHO090ZRAWXzyzQOAJ%_wj>_yJ}Q65GtOXJDHUAJUt~rS6uT1G%z?A0Pq{@ z9Yxw&(|z@QQHZm|{R|NZ0yT|Bc5&Uv#ZE!fpsTG721*@zCcmQ@m6g)h8Z@-D3TL<| z^bPCe3%B`xRSCc}1-%E%6y_^GEA$p%ox}?+p77>nw&|@r3L~qw^a5xCCM(DVMB4x)NGY!? zFzh6cAu|fEp0o0n6X-uqX=`H#Pcz3jQhu<(N;kow000(C5AwW4VW;5jj%klv6u<;_ zx^Us!=;%V_t0GzsP}pc!FOpGN$omkIE_#6NXT+~H5Yckjzwj0$Q2lh>Gg`u}XE+aWMBrElEv|C`F;Xkpe91D69Y9=6%xVT%vhLj3J|A2Vn1Ny_gwrmlSb~ba1bH+Jo$58PNtwJVV#UFZ z_@a!B=;%Les$fb0LrS`J3svIZ-ZP=$R-Z6}789GqJi>@0MD0FUaxH|J5;FVz|GA(Y zb#Y;2H+M+8tuAQv*_Hp~`POJ4*&rg|7bY_+fOtBj8Gc-WFA2tY6V#}SA+MePFG3z) z7A^-kpn>}*HN@7>c>>P{1b~td*B@=-xy}(tWKmba=d>K~9EcnFtHZ$O9WV{Y6bwJ- z#^A5;@6YgxFu_g%=69WTJ|#e+zhG^R~-WxZ|#Oc+?k7<{Zw=dYIetnIDGdxioHQFu`zOc7SNGer&@AY#EZ5|-J{)rA-A zxK9zJiDLUX7cz?2+1Wu4Ae!udjSk>iqT<6y0;Ah_AMJz(DCWS%q)|p-Z-Qoyk!BB7 z5>BocK9ig6nxLEe@Zt2A1fYuX@p>3ra&zCoxn9?%^bX#F*nvcr^XSgUx_Mrp2tR(j zT6Q|D^3p3}5c8i)SA0f>8~>CyU38O(xHvIWtE~;jj1iO)jGt506gJoy)u$bMrIjhW)ninR%Vi2WM?E>3Mnb_UH|uUzVn{Wcf!Bt`HlO&?rVSo zfhpr9c%&eW^88}&$6gVbb}cOt@<73lLIv_IdGwbKQSfI}Cg@BtX>M0jfVYvSr~B6- zCs=fV)a2Z7kgHNF>$+iH-zge$=4hQS*Y^?C5hzsn4Q9eT-fDok@rKZic>7;hUpi#4 zj*~$6Ng9V@I?q8Vyua7_7)*Fr+-D_S2|Y_u`05`qC!1tYE-fW&lW;&qw_;W8*f6We z$?XX?K?7DUC`fFbk_dc&5S)p94s1l!{u89^6UUBef_09|4{#xbS8b3Zp7b7r3?BFg z7At)5wez*mjKO80_=A@^4dnlt3O}GcBiso<7)o?Yr!MR}PfUS{LrHLXc{yM|5-A`j z&ee>z>x5M0r!eW0kl119CZj}|0~X*;)ov(L-px3B>ufFW>Yhd0gVW8Z%CWJt^D8b0 zDw2LKr{8kr&gmlCC4eyt7TX2ie_r=xHRUF1qIMlR z1u8FVtQ8iFB<*Zr=aJ+tR4W508Ib;zr;@x^>9tSu`CU};w*(Tg=bwms6S9$kFtO2w z*H_E3tMpxDc4&(^K_iC?Z~ru>kJ_j@jUkj@09W8@zPDh{_Mc}=e_l%BfoaS%?4lw} z6K{jy6&I(qIkUT$kDo&4B%d)Ka0trf5QwFHbd%f(%ClVN~EmRlMKjJd zVnp-^MlGNgKxBPL{a8uX2X;lx98ITc160|l_y~qjI8ptAe2c1yge`y%k@UL3MGi#C z)fX=WSS<}(VS>J){tF%Mh zN+jUv}R@-R}{Tu#WNrPsiAl8 z2=y{96||HXP7@}TckiAL%XB?iaz0fR#plQfB%n|6JR}`9ZiR2{`mu_!9X12}Ff;Kh z@H+nC-!7VPP(1Bm*;Vl3b&B-C;Pcsj#(<#`3&*z!GALs9X4U`e{d1~yF4Qyf!bkCw z7+8X8$|Ra@u;M|@HlYQ;ZP0l3(e$0imY=1@^J)# zUBjUo<}oPAww}&w@|O^T3{f_M(T?@ygqbd&7YuO3(~Pc+O3tW8%J%_c1DpgH?;QGn zkoNGkBeq&cf16F07lmKEY969ZPm)UKXhJuR?CM391()*x<@vAWTG8`%uiSZs`z0{T z`umTXS8t6A)Q1hBMA)sA4m6s!Lbt;;RMhM zG=Zp_+yU?aQlSjFdh`dJSMh|-qVlw{Svqm$5y_rC{U5yOj6qG}|oA5pM#MzF$jyDefySq4QuoDiDk=>7u9_-`v*719b_-0^C z0DJNP7-QTfc(b$0bAt~Zm_hn_h^{+xG>W*FAbzSMIu`d3Tq41o)k7O*V8Hm^res_M z#3_OgllNbgWFiunS8r|NRbq6|TCrS`LCO^dX1%uCpMXdzlAm9P`s5sn%ieK4dMv8=nLXZqZY$!b>8%nz2Z=t0{)3KKbeCe&^^xh?4 z0R3??LfiQqWgocGzd-PW!xMhYK7r-f_u5z5hvzDWo*hxH?(Mrc1VJ zstt-|*;jx5T*fNHcHE07N1zOVTv3amNa{&Eh=K>u3Dzyaj}J=_9eP_&kLa6nTtN~s zRY*MDX+OeP4+)2epkQB1OAhXodU~gQ!g^FB)p&*I7qFL6)l{JhYe#JSe>cHdI8Ne# z6{F?hDFjnY4C%|dx+qKWo3WIU;mb<8X4lM@E)G20XXl?ch$i?~R+_gRhM~iK*%$!W zV4~{lhkX%C?tqn4i^nq7)a^EBO?J7WI;`6)Mh#!D zBGkF4<|j~j;Hbg9E9HEWqWQl8c_uo3rIhn3eV}jj%jgxjfbUKgmU&HST03_H!WLdy zokRUV#*NFvdggTgB}s}1g0W$sd3Y>AkMoEso=vLpceui6|8A|XdI)y>+>3_s+9O)!IF(ErsC=}2gu3q{#m!eGl0`` z<*gp(YJ(?eqQE@{Gq-bJNOQieIL64hl`zeOO0$0W|A!vK3N_TA^HAd5yt()AHQ(~t z-9)I-zQaUkvXS`V<&QuJA$jTQ?=Qy^ZQ$+`iu_Wg%;|~q84waiW|yf*NQM7(|5SP4 zysy9zK4mCfTtFln9mQuwukNh=7-+D4?f@SZ+4dyNUU<)u zhRD1ZWeEDrRP4|0WYHePi}LfM1PQ^=nk!7iVf+)g61azPqJV`#2mu8q2|xkWJ0_I4 z1{?o=s&Tc!PQX(qTZVzo@?gg)S_@| zn>e`gu-*IxZg_P0*g&rH@6mdrljz1wmbdA>P?2Un0;^%>_~fF8Cg$<7k^ja^7=$FV zKEOw22i*yhLd!nk&;erHu%Ox}^ezHjTsgjRoBR!!!G*w+3H|adpfkL(cmZg< ztgQ0KPgud>0faptc#dO)F!5b(uVNau=%f*#vrc2a2e4Kf@Wm^kGJE}cdyalSwLu5*xj{hGP;4nuRjF&46~SeTcdo@MFSlYi_&pAAMpDo*bj;S zIzq3^^lAZ9LG5|YV~s;jBmVE=ck9uf?kFN3jU!uMNs?+!}Opl5w_Hv zv8Sj=(W!7N1ncVQftiTG@y9!-8CwYt!NI{7Y1LE|Kh8y+cz79vzNLkQQ-|-b-_JIl zeU4=Z5fZ9UpvT4dpJX{xKstfCKZRlgMVuIpQcP<>uHKmcKzuJD&_ls9( zfZx#okZ=)?iyMfXJ_Ca|*(K~!L+jE2Z8X8V$BJf+T?bIA1 z*=-~mmRZiTd+YS9OolpY8UHhvcP{Fhqt09ur+e#w0NVnSwX5;1L%*Dk42@f2;cD-SW z(+rD>LcVtC%a_0u3@!3N)k2YSk-4Y0cMS)?-NO{^jd z$b5=Ka!mN~7qEZY`@o**M;f6>G7|&C^$Sit*g9=(@O^%V`gSK^4u5!nX(Se`uR+a^ zlIVJOs(cxCC=Fq2S|BR7QPC(cJJB=l$Zd*Z;igW8-I(Hj+H>;}wE+1n@>+dsz2Hs=R(@2!@1!P=R5V{{<0f z7IJ;5jCSd4)L}-N~T1G(Etc;^-Y2g1Mx+G_%q2H>o(w-?x%5dDFuFCYWM zPMYsAdVBP6AkGsy)9h@5%#uS<+uiVs7=Gk7+~rV#)M6^|i@wHINaaK45c zU1Z>qsyA~lj2nx*og^_MKv{$N0|6eYOCWClPjiZobOF^L-W~QNX@F(9e)_%=9mPy8 zlrjEab%UgL&&u6BK!rxA-@35UC`S|Q;rv&xF7onzy%2tY0nZf7y#6;#vXL@WS}=D> zEccD_*8W$So&5&5REZPE7qNe+*0$?WfxoeM!E_q(TDgE`KugzGPtDsXduhD*YM7F)G%*! zOYN#GoQkZ4+2eqJ7b>|IgmqfbwUQH}nd z7sM6!+ArgDdI%h#_I&5k%`W80qbUdryb2BQ-fIgdMr6xJ9NfQn1We32`* ztxlJA(I{e(W!61)Pw*iUe+c{vOu}YLpU<$cBI-c!AK zUSWndm3ZE)9m#3)A?00i-?_se8nC3J-A@WaG zDt@h+_rZ#+e!Sa?JFG*9pMjHx{D9#tLAfcKK%R=10wxWza#p3}H#7C) zl@uhY4y;Bj-@B}MBO~fWMX8X~wO)aE`J#dTeD)*$j>9fu@B}5o3~xWBEE053!?I3ZP0jSR?ss5ytA z3?LF9V%JqWLAnUg9aK`poKTaXjo6zc%})W+CMw?w_-o>?#s``-P;h|w6TpfI3K+#_ z4mI#YCV@6^eJzgl$sDF!B~PD&#oZl&|D`uCzHgOfI3xC z>R`)M{SGSqk?RZ@{BjF4axIz>t$o+tl~HNssXcCDQ#Q7{MadJszrA1hfC9g)Rlj~k zQS9qoftK`|aWir4`6WzrmPDpMHo0=H+1!`dcQYxN4sJPv1+HR0e;)7hr5v=<(kB-z z74f&Qm{DSipsT8dnuk*A&$TaSf@?u2&qftg?<_9%+zxjf1g~$IC^Tl%Sf=`&-J;Eo ziqOSBPSSsvH^BF6f8^Czp#x?_r4O3ZuQ?}5%dpbvbmm+uKEAD8^DU+Ptj7KfBgV^C zsj@a-YHxneu3#iG{_&l(p7_Ho9WP!PRHa{N|NvL)k0oSfNm_3_2aoyg<5_d-@)nl`e-LO@vc?2s4R zzNw1q&u_)u-6{*T{pFjrhcxD2(L|DP{U}fS!#96@KIC3{EfC#vj;2ktl-7yMLM}-2 ziZm%F)hb)L<`s?eOl`DbB(}k-Y=!CztaP)X^s1?~uC|`fq&Z*T-HtM=Er|Dfr1kU^9d#&4nS3!P7xUvD(`%X| zxgRyNn^z5+14Zn;VxF|FtX$$(5p&;^x-XldzFkDNc0F>8-+q2J>w)Ld9&w*MIsOX2=t=zm zcGvSs$0w%@Le5^%8G0@LYGG}EP80_lsm1CYu8hE8X=ZAj_IRPIZ_Kte!@k1`4yXji z&;*$Wj$4eOZj{q+!S@$O+Q`n|~Bwaq<8?kq+?*MuO`ktSg({aBBgL=t5 zrJ$sAr%AAodT+6g@56z8@+8I?B4GRjbSQ|5vZIlMRl^`Mc~IR0BLe{;Lp?O}DLjSH zAD+G{^>m9L;m^;3Obgi2^y#o^?|F-8j~y!sYZXW9HMC=Ux76ZhHBb$1Bd9 zb5!ekF?~FVT)4~PY?*cSBfmqOf&R})F6PR!HJi`|YPB`e@yuoj6&){sp1+ZFy3Wp4 zc!r)f(c_lkbMsY_$HHchPBvaNV`Isn(Yzmak9DsCmw6+-fy_KN(1vNGH2AU8Y#_!RGOq=cjvej&W^HPQFRa z5b)Oxou{!rYRzs5F(=c=xZ* zWR*WT|C)`Sa_*ot+oo+?29}m&WKlD{{ZQ`ukEfWv5G@*Ll9y{==?1?wQ_y z`%9G4D`bvFf16id{oI`qSUJ@Fs~|h?m{?SU(UX=BVvTOD_6w|r5_XrLmNgGki`ywn zKi4R{J0d7t?V$EIgw#-e)XcJwxl3ZNgT!jYypUT9|Cx>^ox!M+dhhp;otg;}YR`2^ z`s00RzbXaGE4`O<|LWw~Z)hgp-~YBEcfS$i==U_`>l8^ZKaHv+tgaVK#OJ+@5-CV9 zd%qJ)%AwcvHuk2cLGqxN8b`RroWQVqI-=j6G-pjY6xFWX>+^0ekgC^PXph-G6WrSs zQhV&WhsfcJKQB1_F!Tw0@^Y5KF*Z+}^2$@-MvkA~DMpJ+eRBI!A=)dH`lt1?iN)@` zjd#OqHabrdy2Q(zUbsuWTaI}>(RJ(ESvi=MVY}(3vKDm-* z$o5g)XvC1(H zCAG1kj+T)REo%$qwK@EO`5!`GT}rh$*s5|ph5Kx(Pm}NGk2e;M_Ju!DcvGkL?Q5;? zWx<&sSbih{G_PU692+I&l?hM&{Sa#VU`LnK=*I$;cT))+NZgiYBIC54e&8N)% zg6S){f&BCh#(^{0$H}HdXM55xgswtSivh@#Sn=Z<`OhZx5^V-%Iyn?IY04q4LM0EV z1o>k%7dT-SfayE1RaDyvadFe2zGQ_W3<82O46@z>FUKqmP3Pi`=}@b?Z=_?-j^&5f|AP_E1gwB=B~@z)*0@~qHCXW zVHBbct2>-ycedu}cRjDDs~x+UQio#VI-kARkUDsn-fhDvk6QeG&8EwX(^p6(oPL!? zkR5*({L+oLLfK%@!P@d+a0lzPn`Rq*i7zxlD4oPVN%)+&-1PPJpLfRlmEu>wF8<_j zz3^l9=Ou=Z%`d*mW#2i#(53p?U8Ucn@2mfj%7L$;w=dkiDWXa1JEP1$doI5){P*}+ z!@V~`x*eA1Eb<-BY`*zD$?!<>`--vwTk3)3*%U3l9}6XSoILD=!-?3=c1=1Xrckm(iG2>E#4Rtxxh z?}?$l&`tABqeGUL%q!IL?pmy746@9O-2J)yRq|CN=@GZlDJwl^yXO0u179i*T0d>O zTeCD7csKCqri)vg&)rSg{_fh_S3S3m`~11Ku+(}mYr;%L{%gv3WTBFH{a>%B_Z5+b zS88wmQn7uQ-gn{2t=oDO#J5E!eMyW;MQ(w{(xK*;j&=_HE}(h=9-jRlZMJg0(XP1W zYtjEY_L2F`L1RcozPKS1X~$%$_&BMKV5!;npobcj7uuRB$4pO){|;e2RW3h zxy9UNpO&-n9X)Cf85pAHhq|hs2RpnWfiM* zujf7#9)I?{k1eRaXiQA`-=fHv^V&S+&ru3JfpVTD887Err@H0kmSy_uv|ilB$_mDG z15dAf^X;WzIXf0~KY={8=AfNLkp)ersyC+N@(z0Ex;a*50?KuCMEyUkOo(od>Sqf7^1avo^~J7t@~?M>&cBv3H}2p9}J8R|b=e^f@yeXHn+%>M7C#L0r@w8w8z3be^t7nm2!SgKzc|b-U|pCxemN;O9%SCaB`D&+d?#3Y zZZtBeckPibpqm{JtXX9LwftIxUEr+f;U6TgRAYTvjIZox*CfH$MpyD0kH1ohx$&qnmA^deK>onP+4=+XO+ICJzg#*uI`B!W;f-xg z#nbP-|3umKJ`YtZ+z#=viF#Ic=5=bQhl>@v$jhbYQ=P%Ts_u=twbjYJCOt4_r^|AX zFP|sWGmh1utnAjeX4x;lj<^1zFSFjxjQqE^GCC7cJj*1 z)9*A2TpqkWr}HpY|G}+`8}k`KRX>^o2{&7(xVlA z_TZ&Y9(Q&IZYGIzRCG_D*z;KTXX^Rvhxc9QB5!T{H0@C8yr9A~nWJuVpybK!9rmeW zcj*h~&UxFXftlbh0qBm~GYi8e-~8HZ`C1@ZwM;pX)_p8g8yGqW*YwbFuVf!e)^8JP z!anq*DHZNcCZ7yzO}dkgTleM43@E?2B39=(7a5*$zv9MnaD?5D&+7#TP8Q30Wv3*& zI!?ybDRB)Rb}juRq>)QIs&eW3zwa-$+-SbzZgYO9SSa9eTH-a_P#0jS4a;qyh#>#%JqOZLB?6dx^W~!z77PY)27Tqo_sd^@G@VL`Rdt1xz{?Fd^YAFIfT|oyE zozA?VJK%ZY^~Uv5=kMDoQ*j&LRTy-YdP;6Mozs||R2{$geEZY#+^Kv;Ju(ko&SzOg zOkX3FVs7^|GLwdrkC^A)kKn!9^lN#{XI9V6^kKX8ucsL! z_X_tg8+uk+j@aB;(rJAh@|b^!zss#4WZJ9KkL2QBxjqugK^xtP>EZaF3g5*a@f?#U z_PoyV{YlMNZKdwoA>GJ_RT^@i+77g;ad@@+`ph-uzWh)vr+?F9HT=1s?ufT!Veq)P z_rg0For&gxkA=xcSz@%_@h9ZkF7xKUxF-6_&|k)C{KMr6ulpZcHghbfUhgumy2-R=y}7q|N5hQqlDoJi1di ztK@Z8Dk_5a^cAmT-+Yhfe$HMUOBPzZRM0$nbu?44@AuN^!R7ij?nAd;7%$YeZXG)Q zN5u8}x#GWh@3+aL-zLs!J6xo`b8aTr6eOMKs;oZ^;lauPuRC;d@vjnh6TiIq}%HV z%aOFG+sd1{v&xD$U&UDsZ1OO-u7pA5BiUP5NbSh z&ebyMuBk@euhiO~X`9-1_IrJa$ijn8K=~NuEITq>#7E}cXykbcTtC@$CTZXesAe$v-)@5=Gv%v`k!vgA6QRvOxkBC76yOH%)WR*{NW>w zk2mMJ)oy5?>ho8vIjVa(>ezUoPD1{G7Kt6xSdqfqg69ny9reX~qji5-gcwA}J2jb) z{hp+roqQKN^HMJI+?wt&ixVOx?`a;W)C}n4zL9(o6wkHL8>2c_OR4WDwLBi+wX=1k z{g83Q&KiHf`-D+Zx3c!0zYo?=)kb9U>kXfb9B2%PeUe}~=ql%X(t^3rpU2Qq^mtEu z_Xzz}iF37=MTwwsE( zU4L3aXd+Le@rxh-DTk4Fe0Nl9sxnj-YUy%iybXW-B{wM~Yp$iPJ{J_^@S{4A*3;&U zVO5D-!uvDTvlIk25mI&kfJg#MWyf!y&Y>Cr3HgAkJ-932a$)*GU{`?eLeNu&w@l>j zLcm@~vmV^dfc_CkF=nllAkZ8TBv+>f<-HrU3=n4sG+WS&>P`4|Z|5tXdE5b7hf@X7_jf>+P8 zwe&Lt90vT}gPpr zf6vSHPrW{4HSYS%yiQMhqQgB;Qa`7brtLYu-$AS*zdZHVK=7flyDm?>f2Yz1hus!X zWDHQTGhkxOIboIK^)lDcfJgkzWBUEmdf#)DUy2*12*mWM3-WGXGbgVde=zX#rDm)~ za0X4`?j6o4O7oAqCJ5{-FfP`=Sz|Iw#g=ueU()B$`#ww;{x!&6do3FQqq-$EuVqC{ zPbABfF_I)On)P(|(x`1ueV&Xa(5>A?phWofYwtE|ypoMhEIc4UnX&m)RSG|>83LM& z;ft2mx=q~)4ymxNAUD3$xo`Dbzdvbqjb8aH8q%LOf7Eg3hS3=G+01WWy>0zUUe8o^ z&Ew|MPod7v+wW4oX)E8`%KQli-k0YLy2)`zWTs5iu$=h&pa{j(>y%SI;erund| zy~@$oSsB5qob94&F*h!rrgK|a?MgoBeR1gC)j_M*Nh2%e^r!7LdYUpcO1cJR(rmvS z@z`GPzglWHxOeY8BgY7F_xU%;5$vPa^1h9U^YhvNeH7xne~vQirrY!)ce!ezHsy_) zW$l&a>nCX!pGcIIRSeR+VSSnx>(m%nn<&?LGr9ZIs6cm(Sk600q2!qq_K_%bx^Vv* zrT)#zRk7K7q0)XIFU!zUbl_u$Jri{=GYmE7M}xZu!nQcXM>|MWLwyvS88%j#X6Ac` zYNoDg%Uw$THRk2j>h{}Z=KR=S^~;v;#*d}eR61!-zcriR+25RfS<}+Qx>ati{Yn}C zlx7KYG&fI&n%bGqJ;S%ZPq#;PMz}k>i!wY(ihFzoMrJ`wZiW;_qHnT=F7U+O&)_)4 zKQ)4=u(E$o>wSk>n3#-~uYXT7NT;p+^|kkJw918&)P!3nuGZ?;h%R2585sMU6~q$7 z;;n1HF}m{4o0sD|Z!lA}hqn=n)A;C%sm@HV(vW?eic0VJWa#Q$NFn2*ASb6kYkKeg zeMQV~!ECikf`b?6uK5RzW-euOg|U({w!)1ZLM9OK$1p$wIRs*nIz9n`a%uzk_=A}N z%79t|KN}a9C2RmN^}|q@?vH*Q<$G>SGpR@+)4==}S_TZZR=^GXZVQUIHWv*hSpZyr zV{t>y)eA4QL}hs@67}f(oNEXJyf2F-Uko=t4AL-MAV`tXeaD&Ct&6Z4X#HB5{%~hC zy>J6r3N_UpUPpP)j=D|1UApz_r#n~ADfUkc7r0+gpXJOlxM9jU+mctW?31?ottC(D zFY_41EB>5#s*|VaOyXWwy9v-3Q6Ihwrh=g7&4Vs3RJT9sCwA-GmT;?iI!g4|{G0Ln zQ8+5a@`dfq>-(>#t`ZGamsSb=liEEp(63vpRa^12zpFuRV~Txs-t%0W z`0G|Wx&u;FO;bxTs`k}41-*^b9p4uv`%p7RT5NtyKXI$aF7cC}l1Ay*rR3g`7t)-$ z-S7HD+y`!WQ=N?VJ#xmOY~xSh^;;rkg8fe&lUk07>689=AqYKn(+@L~s{B}u%~9E7 zR{eKAmL(c4KiAoq^8Ds?=f^nvLP zuoQP&ZJYhP3(KDOtR|PCJC0;0$oD#Y{(S1==K3#R#;jB~edN&kt;Lfo&dyTHw>=koKFd|uz>wUW2L|Hx0*%WVIZD`vZsHEF#sw`m_@pPN<9rBM0v zH~aAEH-aym?TsU?$f?II@>@75E8HT&qV+7YeKzAVFJDm*X6`^UgPbW&N*k@{;~5OFYj^QXGL9|r*HD5FqLLb%<%r@v>$Mk^U;@2EDf&>Jf)@= zqgQP9u$?`BamVALRg!e#MYFSNY^OA=PgOMNc4o9Ioe=72?{7?cKy#VqFj=GUXZ0B8 z`@s$OW-BNM-nKVAbB?TeCEej?MfW8^zh98rNtf;!Z=3Sv?yPEQ|7t^T%8bS;PA`s= z@uEK`FLuA?5v3N7pUuAYs6cFhvRi&VFU9m>YWOMnxTCW?dT+lK<#w@@44wB_zCsq# z{3nH!3tRy`UfQYe@d*nXoZxNwXVWsMX(F*32Vb;q=NKPa>7hMP4WSo;xWQpCPTM^2LiJ0ShJ2R!ry!b{zHf5>a0mDd+ya z9^t15Yzu@v4P?n6&fp}g1iJ;KKG1Hp3$2p&dhZ!g)1V=6Fcny-2%rzhzaS?#W7x!IQDB5yw)k}cumoynCNq_#R*N$!MJ9vN0$%ntK93QdE#`(8BI;o(ucVh6#ioqQ>hJqXTt@6JO>Tqyjm={fr!5YjPoLWIGac_@{67q)CD%52@gseALa0q)p+P zedLNy3U6O3$b2e&O(WwbsYhtpGi3#K{_Ex^q<>t=$=-X5UawmC`P<7L+WL2^Y2}Y8 zn^Bt;mHDw%$i;c&I9DW|g9W-j>1ih0&76gWAf=BPrG>{BxZAqbvo2oqcoHLo!c0Wk zb@P~_$4r@Fmb|uCnULVQ+JNDPF^y0zai4d+tEU-lJz5s@1d4NF6W(px8`Bz zuf>se+6Us$(lX5SY+)2Mc-VdN7cAm}0t00% znh$=HGcqgx<+H0liJJwIvKR!JT)JESr>MH7=B|gwXE7gy)IImby#sDrLFLXM8$6bz zgo3_^$;nVr2+}F|{jJbiToC zy(CewGzYS{5Rj&#PDN}cNut`sMI3zDK;b=AX9Iue8%5FdeKeqj~HdWys%omBZDiJ}x2 zanNOHg$Mir4gBqrmN5b9dx`xU3^hT_A#K{VnI)t`bv}mZi8u|CdovZK72boS!;zs) zevwvrC8EmplCVyrc`5&1=`U4L!HE?28l33a%dKM{+Eo52OYgBwaXaqMV|=_^%+!|& zWB{ra#?j&7(>GpKLG1uq6=;{pv;f@?3^TsR#52d#dow@|93LMCg;!Ng%@;Qlb~>1d z8Z`Y^`nIV2;`G8Y5#1yR4FW6+@SU(V0Qs-%=~MXjflL#_k*J(|nd2}i37k*CvT#5W z2dJ>H^Z*g=OuQ0={LwM-A7gbGTMv;S!k`oW#;|jJ)^81e0;u4#HLai}G+x2EgbYsE zOh|eW@(jk<2@VbeSO!8Wn?CSW;w-~Y2exlQU_8kl5|dIFB4MMTkYO_j>7$}(22+hIV_`g5Tv|F`J@=y$i zaol}r5-Dkl2&qLO+uJ>7kJF2fdy7Q&$h(Ls_K_0HSRR&szLVzlFKzd+0OP&XGM1Vl zfsOm54kcuA#rZc<9nj!V?WNdDEX5iFc>JF6J%1C@tvS+YQ+{Om1)s%-F`)_KB09+$ zai5Lq=NwnNpC!Mu<~>z~UMwL~uE-_FuwV@e858osLqZXlOshkl43?3giH;uIAYMyy5p#(MY>2o&qtokVv9m?Wv^yV8Y6o}DalPvn}!CEP)A5NlA%U z?T*Re%F3?I(;SLK9s5*q0vu*yg4rMA;lucI)7%eVUW*bUWUXiyUN5(Xf9@Gr{NeqM z3=jJ+i$&e8HkjOx%fuU`QmmMOz(BA+_Ym#g61-xHv~dzC#L|M@Lr|Sy^bq)o;gVAb zD=b5IMYn+)312BmjgJ!g&$bbUruqo>6npKDq!$Jpm7P6ZVzMkjf;yZ_ch|gH&Moy@hd!Ea?dRLx**p=!8Y(_C zc~b8@z5F=?N)oBbDb}INyPoTj`CpF(X+(6iq}RWf?-eRK_;tXDHjbrt;|OS12J*`r zowH=aJLe`O9QlHDCKZNQ3;akX}AW(^~^N~v;Xj2Vl_BnN9;8+x%6);%l}YBNAtfwJ^B-C?Plb3 zk9{gYG57O5<0Lw%&z3ICS4SXd#e~9HpfNGmbLk$4fy7Rza|& z*xL-L0Vum%Gyyfq4ZQh?46OmFHnwfrQOvjWRPTZdcYIjaO_+TqBqgnFdU@-qzt_R7 zly9@jg;LPN#$yvJym8}f_Kj+bLP!8C4fFK9~Nb^r6~9p9Ng ze-k=h>4N@6I57~yDPB>PwX2)_`A(D|{*VLrp0&MwF$-Cv8hm3pV~@c3DJ~8!zxXHF zYV{-U0`&p>!0=y2%6&tm{8vFpZSbNZSvBhl`M*Vg1O+IY?CjEcecLZwAFuD~m_b$s z#LiYQ^&zOu=omwXTlgttnJ(vOPAVWpMbXLWEZ(@!QMjM7kwRCMg$f_v14xuK0M@@n z+E=JZf=ytF(J@1`nT3)M>aUCE&Lwut{FBtkY7f4ep^m2loO}?`xZvu*Y(Yq+P>VZK z9zfZD(#Z3ve8A5kv%>2DUbg3yw{N2v1g;tCV1YrWk%OxMZ1BV3EhJJ%mVj5WG5?UQ zNO%jBhLCvRTR>w(;Kilbwk^?6|6RAHd+zYm?einwv2L2f%WFvS5$1|l;*1>zdkB^v zW%gqu2;ZS-qK^zFSmYj%-G&AbPH>wL-=0)^@@{6$$i##s;UM%C_}n|cMjc=&tjtMW zmcpU<-kB~Ki=80w#3skzhEF&-36Tt49^nE1EeWb;eKG%cjDz)4CWNTylHJ_hd)~df z1A}M~8nB57&Z6g;lDkCU?1kvEii%%rYx*@V1YZ(F+(MZG!ONd6lXVWoDY0?1Q)uRe zQ3@SD{sjgT*le)}6fU2(R>(|uQg7f%caBu^|ScFA{ zM@DY@ds~1@ywxCu@QDnr^QLb|Ay~$>jA|P?{xi^A;}IaE;Jv9xvK?wReE3_p1|fw2 zLq9J!mtf9``;imvr`I38}51-rxG#%pwd7hCCYr_-8$q!0hwI1;h@Bu<0n{H z5TXU(FN55}3Ak8+xr@yh%*#tm@if3eQB`=7C9>vZUJOTm-$F`iDh9ceumPf>0r>hL zHuiYD61s#%+W0+R{i60g?hqCgB?Ryx;~QBAXeZ!x2>UIa_&X%xU$I`!AUOk4C43ZU zr(vx2?CDcKR#F4{dvXC+h)t|$HiBEaLis;>{J&w4c3`jODZw@xW-=JX5%rJ^IYI9Tu4VNg4F!!ked;e`AdpT=n| zD4eHUHXf^}2AR;cIt8#I9H`u+c`qFQv3@uI{srj*{JcJ)18=<61NrGZER$%%39>qz z7U=&{&-||I{^MidyS(f=m^*6L)@nJ+=}sA8256($SdoCO;i$ z`tU}R($pl_4?}Q6LL|ks59&k#=jnIQy_`I8q6nHqC>_%@^@g)yC(|x_Rc*>D>DS5% zJae$^ZorWWAO}Pmb#|XZOmq>Fpr>ay{;C>FN+F7|8Wwtv#e+}w7dlYLK_#b(m>x)8 zTX3zTt^Gl4re;EiuxZOrRjX(;Fj_{;+!15kQQBQn;~a9z-C)_xj||tmR5CXT8Sy7qew=>oi4cSg>&_zOq0C| zywhjZ=Xu09isE_5C?AKj-7_ebKX*|iSaRLhli{tHJUg>2SB|Fe9x1AbwR>+r8C@UR z*5UldN&&SiJe$zB^N5Mv!M4RM-A_GX^Xd#gDZ<2%^b08}M2u$W%aw8tXS43?d1jce zg*bbsmarp;#74XH7xFKk&Sx#c=`0w5&f?``UP{ftKrk*x!zP~QF!^ool>IKPygy=l zx30Gafo{PI|C-?!7FfS$`1p`a;<`%PjFdrsU0&L-Oc=L797-jp0XdF~n_KY}11jT8 z*vSzT#(>y4Ra3Bz_7lzX7}2*nL0pY(sZ%UVJbQ%I^uqb`cX8IDmfzUGf9mVCxVJ?V zUKsEpq7j}ab3Zm=gNW!;eiA8Uo`g5`r=O(@E*<`g1%VxeIg1ZI6*L<r8OG+wZ57A0sX4D`{3l+g}(*3fZ)wd5Nd(lk5l+x=|Ta&a$&qc ztJP@KpZ^3Wr!}`pzAPww;L^9y}x(1?1UMOZg#csjC;f9i>n5Zhc$`b_D(+yVa6UI=TcKTO2+1(~+E6>Y!Wa`wEEeJ4ULU-^;ts+z z9rPS%Eo5)r%&nU#k3O9~WBkt-8b^?DU+6yb^V@}s%t(T|laO&g=2yRuL$N@M8%j(( z|6ed#!s#bjkofF~@E>XHdHA%z*i{B9MQLfcdBH(+IVy8)Z4I>vLE!;^H7p_1m&3y6 zwXbpaJJfHxO}!yQG(BT$;rCtZ=LaBhHfvhwWWk6Zjs(NC?&$(xEx$MDCV6gli$O^91Rb$O?bmJLUHVU+jtzA_x-9Rn)YtNM?XuI$!fvNTrxk=Xq>KGr|$Pbtm!c6 z9a}n1SCThJ!sLi3l{GjNAMjt{5}A6bp_!Luc%EWuqK-LDJGt7^-O|GT?bLIxPl@iVd8&MXBpU(KRo$L22XfD<-8n1Ln3keCqP)<=1KCWb>(Zwwyl2jxS zQb+oT+AFfSYLNLFz>4Axs$U3hZ76iJt>9dYv>q=Qg`rUVv+`Ny^hiIemVAc#dm+QD zLz!0e^8;8+H*z#n#l7|OwSq%J2G1JodvpTT9s* z1UJ^yoWF1Z3upqJ4?044Tw=3k#USE4WQ#ORmv+%p@> z{d2#HZke3u))z3@%!$A2by}{k=Kkd;Ge5kK2c~QAVww-3oUHV>*vIHhDhh5i=xH&Cp6t%9D&dua^Y1%5qq zP=(?GLYC!eA)zu1*jV3Bg(y5xr^(UcMvc)AGv52yz;GNOzgIU}6aeBm`3s4m!9f;f%$msN{Qt(33S3t-|z&_Xe8S+QJ3y zE($#e3!#zJ&HA8qG`VlV1>WR@fN1E^AxNzkn+p8>aYVt9E*RAg>{el&Qm72;e%ke-}s9)sf>S~AD9K`|Z&2K<&XSmV$;R=t&7J@@I+#Fz> zCN13r{|w0Ardibzc2cJ%nF0IhHO4~=-2u6WS&ZCv+66&_%(2^?W7QO+NZDEzbD7Yi>lLG@9nXp zx$Wud=gmhE_rB=W-PwI-5-UE>{63x0cfCW}KIdI>JU_o8+wgn$=B?sS^I4xi*cMOP zBs^AK`j{CRzco-AO|R83mtGZoLS*rMn~06wPTQ%jit&Ug`a9Ft4)IwEx!$nJJKF4N zYhN)mQK~*?o#oaQYrsP5rn{R*ly}k07nS1C({l79- z8HOXl6KWMAS2}qoZ$x*Dx^ERInQJcDL^^w{*|b(x7_7F|>Agw19Te$vn_9vC-}Xk{ z^^LCXVGO+f1k_#nH*cCZb}?Hepml(FyEeM4c+kkJ-nX^rMlJhEmp7`iW7UU_R4z(h zF4POTG`di+z9N@vZ@pms=WkGt6Jmv?FOeQ zRs7bX6y1N}ukbB^^pI{kQfo)c^?a&k{zu=RMl|9u5TlWcM7YDm1mQ$M#lMGaU7}(J zD*#y!VDU2vS*ok5b|3uEV8KrZ?^u6|{TK98PQ^&%%V=DqcA52&U03bqWayan#MqT;=cBv}8kSL-E0$vq zbvmPJDYyBQ$VaNa+Mc)LG}bg)6>p-FeLxdo%C9ncp5(0~iD0Fu2lZXHi`ULt-uJYB z^HYuEe=J>hAl7~RErev2omHts2_d7bGLoz$8AVA#*%7iOWK|MnXGdnpN@XXq$|hU( z-hStP-e3Q`&-)DS`}_TTu5qq&owK~YD&89_(s|YSCEw?h^Ivars+2}M7}b^pravGK zEPCNxpmru8M5es{k}_TJr89Yz1OG;@eK?=*(DlKWd-0IaIlZr+?Rg6;R)@9g#Mr;D z9S)6C7iD#@UA{dv?v<;M#Bx zU{D})LW>zE3?Y<7*_~z9^6882cCsCMtu@$YIQvR_#e;h3X)o^4qLe-uJ~2&n+<4jfb2C3y4- zS9m=nz6rwE^{30-C#Ojh@8|1s1dl?#9UGVk&@ot$0azfDe_dM}WeEVO0(>RhR*1^% zdYy&G8RNQsDOIc4R2WqR3LI>y18Z?@-CbHIUx^wT`K18G_24y%qVfG7jBEBh-Ah@A zzN>s^TQX2VugE6x;^8%?546JC;3!uA-EK)*rZnqqEsl8U-jk%}Y@+?*O~cnZUKr?< z)}-7^WgvPQ_*Tt#_nCWFOdq_>kU1G~k=4?c#Usq`9Oi>PuTsOTpoKX45{Y zN}+#p{D7FraQyCNN5;VFZ~HC7Z_rShsr{btw~_7+`W$nbDeJzNN7lQ@JZiJSv`n71 zi9(fA{24rj_EQSH)eRr*&y+C`8=X-hdsbmD5v1PwL;6eg&G4|JmJH3mZ@znT@{wuF zkD}EJ907+Gvl5e~pPZbvm}xO@eKm0E!08^>7!RlQJx;;51l!lP=9mLxZk>sKrs|MW zU@3E2$yIS6KR>=i&9A_ef&R}AQoaxG7n*OL&#;(Vs1rP_zj;_vlK<~R>M){H7ev@S z)?BtBM#ZmR2!-n>Sw%Jd`*_35APb0?2#?JAh6aLhEu?t>uR-h~S&R2dxzQb=h}zm( zf@M{?YbkKN3b7jw#f@mT&}utFoGrwyKq?I4O^gAEVdw8uJ;${eo1|WQ?J>wZWC?3a z%-_)1iQTQEkL}#K<>D7?^fO$X?I%Il1|CH)tpI(J_2MZKg(M)aaN&mDOkCB7mB4j? znkm3G&vC#JU==|X+BNub$t{rn%d_lrMP~>FG3YU2+z)98Bn;Sq^f3T(1geLboe|&| zpaYm2Wc=JqQf2jQgusnd?-2?1P`yk6sSSJHIgzbJ9y#fP5@J9Pc zM^al?7m3;*jd;abLJdT+Go%KoRs*gUHirw+$2$nts+lLfJfzkqMfg;v4t4}8w9ZkJXf*DsqM zc>Q;1SvvFeD!;Du!pERQ4L5^pynL*poa?!L&phuPck6M=fAQ@@tHG#I%}?5MdTaL{UzV=1WG-!|`64fSuU8 zS^iQb&aOPlIZh1|kEeQXZQQx8b28L1dm*Spvg>uUe%|KeV-u^qwsOHYD+I4!6R-8V zag>e7uh{u|o6XpZh@MmA+@o`;7k)ovtb9fBDYHAvp2yRe4c5l0i85+Kk!F2hY}1is zqowC{c!RD68b=Tk!AqS50&ML16f6%E32E@M#U64}i#7~+(D*=$&kA58PEKa^cmm!% zpzePy$qcdOG88lQuml(11MJr<}lFK7RA&H zVE$Ge1U^LHKEYK-q-K|PEs+rPH_`!D585_WLF^k4&h)xL`+)?jkcl(0b~xPFPJrX- zaX!9)>Ol|tuK<;kRU$mOloS-Iy!Rf!7o}?71rQeHJAAevZ8uV$3)?*W1s)T@z!>sj z<2wMFWiqv~k!Sc2V^!0Zqz2r2nPr{>e3@Y0p!9(m8YF70JPb8qPHSvqGY_k*^u@Td z{G*qj4F<(~D<2C>&nNd3Ds*AZ{0d*j14qfD8G2tKg{yoYGaazZMed-d0 zC>3wG>|@;X^3ss5_t(E!_R8Wl zsMs^;m-(+u=dNJ-os=gFwTa7WV_vxXQD^=Et8uV9B+_l*g#3g(zT>iI_1ZnUU4c=?? z5&^REuP7Lz>RXlG^PW<@W4op=8h=gcI|aMkT|M$b;fp6;)`-wYyJuWWGiBRNe2w=N zN#IjHV_r7d6cy^2#-uTU8;KXaj*!a@>dr^pDtXx!&R7j0l3qw{fj|Y$ut0mCSdiY0 z8|NXvj@JP}knB&Njs-(57s`47#>!ENVw#dvI)jn}eHeD%VU>LRiQ?L47*_M&EWs34 z44{+%&+dR-&xZ7FIbVXUHC)ia-V_J<6WQBRe9yt>gWIQwPfdrElYIvUM$i|(S+e?a zdc!EU0|O6SqXsmTP{q0gB_P&7U?JF*g=QaI&OBz@!hb;_xi9DLK5>Pssjb=>x{zx> z3l%5GKx^^ZgFpe8*svkC&8#s-x*TXJDy2Y{GYWmY5UqyR7%F6OxGSLcxWlYH{M=`7 z6}nsms23V?moL}zlF&Yt#}s6$D_kJ~Q==ISxzwW1o%jznhD05gC_$Fk!wjW54HZ>j zK){*kryBHNk2Rq^fN;m`WXBoX=HkDE$uAspT<{b@2jk=8v!SA;r$?*(5Tfc^GfedK zkngR570dJqrLsRrlK4^ttrp=-c+;k8IiYvJ55yQ>fRC@<(YHH%uWT&#=GV$U4ILt% zJsf94@_OgPyD_<6J2$Ooed67ug!a7N(NEf5YFB;)Pk{!eZA*Kl(Vf!i3*#j_QK5HE ztoPac^!&gOc4Tu@%!7+?1a!7%B27Q+Jb8JH*7`>(rR<#??;kq`BE+)fBu3dg+k$WF zWof;S(b{Z}n~@K@-K*H^U7Novqpp9BmPC>En2xVdP0JvOXY(RImF5}a|FmT=Q$tN) zvKdcvZUomC_Bl8sL%B3B1VMKK7zv>pCuirrQs>``eueteuuW61JWQv=vgs9$(q# zr{H5%Y&SlSvIDV5?K4X#7dZq;F^9x&BC-{GY6QPAsDh!N5>@vV3j%r%-?EB7IdXC8 zuqlSB^cm60ujW%^9aU`5Muq$zzZZFxB$JYA7+gSkc%6_ z;V?Fa8rpfs*)Q+Lu}KQr3N8f9_M$BKAVBz2i?}U_3u2A6=pK!QZrFd6bw4_ZdIFmD zx)2uw{R4v2Z*IT@3V!r3RajmIQE5llTasixEM7C!X=R$=05{RAXO`cIW*5TDvlD*x z!@TtV0D!Qfj#=(MoHW#Ba3ut;vNKksPG1U_QJhAsrD~mSQT)#V1Es&Hz^hmu-cThr zc6MC+v#8(!a^l8AyGu)38-|*nFUDi90JR%jUpT0$_&iYMzY_a2d4wYBPM_c$?fuWw|X4){K< zvT+qY5~W_dztjg2!1d=)-E1`7GGh)O9MP)1UBd8KN# z-T3(LZ zt>d^sQK__~WTH@>frQkw=kpS{2sq6i(WG8_rlveWgBauz#N2Uuw%7lC1pbD(WLx4s zjHYmyjhNffPOkUp@AGgu^+kk_(9J?l2rvbtsZy36al(-yygpy|L0AhZug_y=Ukz7-^)OW3Vx!v{Lh&~- z0n_B6U;ovfCK;fR5L#=@S?Zw0%fO?%by-0}E4c+zdT(!Ut0Mi`+XH-4y@sR0F@(0< z0yqf<&G2pc(*}ShG%}KvlamuFdpBXJLDNc@Ugm=teJ}c0?qU4fG?-(+Axz;455SzRJec# zW~M;MLb)B=+uKmAx4-loIS#{qSgW8rN#JaOgZAj~@Yd`%8hCmksxm9-(1BzS5mAH* z`<7$S*v@DI<6(3X>O2zm6ZGutTOvmz-DP5}d|MNqXF(6!EFZx!pOFkN8Xfpo3`h?r ztMi~$LKYPXA;&KTvrRXHk@*QU=AQc+dUC1w>ZLw>dO?G}+8P|8=})apsc@!(jak}! zfkad$;w0h3RDQmTITk@a685yIT1dTcJl*g6P4GO;ukl4tokCuBvq`eZ(!wy+WqC59 zBHeF7#SRyX9csKWZrhh=y~kOoNfrco;Dm!&8K_U#luOiHvtKd`d9RS6jq8B=K)(oP0c3O+r>k^>ci9vndVel1COG(@ag?b5 zij6M@ZE3D&aMS<*Qt|YTL=-GN$5EEzRwB*wp0D5%0S^jFAmC#hm^p`Q3JreTL1}F8 z;(S+r|L)E%%NjTWKm)Xcxy8j2z(T0XAa4sFi!0~mxmqouTn)h?@tJigi6`njuOK72 z#c*1dmW?_&KK?ceCkV{_K>`)STyPVG6~Q2&we`mjm24f#=Th*6C~4enNpxi;1&W`L zeq5a=Bl3|P>SCA%JDorLVD-tfoOmX?iAkCFIj{zPf)+C^iTgVxa?ctt<=a2t1sS@T zxw@9krFvK=KDvGp?K3Zw<^ zKM85L2ZJyqA4DEV9*o5JlsI4*EYs?0U-}t_ zm++iL0}eN#ek(ETKmt!|0vi``pPph*$7K&O0WajISylwsb2}zkezw)@+FJ}@Q1M9fCO?l zR68BiEhWeSgJOjf0B(trl3}*av8r?k$kNaRyVaLc5fO@}nMM|5waLe6O93h&8p z?%)27_=TGyvi}(&qLn(I4X6a_UXBz4JBq+-l41#Syr4^l5cbxyWJWFISRz*7%`Q*=99#)5Wh z1|Tj{70jAomxj6kuJ^O3t$?`iEd9QP5&l2EoH7`(&pAr(Y%ZWFiIH~0&s&57DySwP zd_Iz8cHz880Y>PDmoKlP*M+1t69-2b(i&=7T=lU6^>Ee83BTTJrYa<)Y8Da`S3rgx zL;{GSx1zrVnX3k@AcJZFN!+O^=xGxa$JyC2*64#+C&Vf6^C!Cs zpzxfkJVkx38_g8`G%Zi}p}zGWMix$jJ5*v(s$@@P?!;jT>=Bdc5%f#iKJ2480u@fA z0A;#H$<5eCeCkE?Kd6y}9 zCulvu;}5oLQ#F8yHJA{gh=wHM;>YssP7FiPox*|VG8-j{>?`F&C2n0jEa1U#m3Qv{ z;sFl@F!Z{`m(2IPKNBL!Z?gqQs4VxQ~X06Km8sk2qY?_(`aEoYW%Lu4wdd93qj0bs;=u z@ucAcF^irNzwsT!KY#wDuAal&#TA4_l1VQ3{+I?pQyY;4T+UC3RalH`G0o%stz~cb z;@3<%SL|!Q(@o=cv7cmVDy&QJY;j>Bx2O+ig6zCJl8w7)jQ0|?O5w;UTh^|piIdEW z5UnuCZnxj#S|%5N;7&7gaCy~5Duj+yGLUjVZz!zstSGWrRHf@v%TkX)h)PuSlfrL= z9xNJQA^|~tszF$O%>4=wIxcj?A58 zP0Dv}X?f<6Ql~rYMB?i%KId$EB*X5?@cLAUB%^VZK3JxBN9FL6#j}`oJhu>)1x|nr zmm~J5@PNWk>51Ydft=<3WM97RAnABK`ULU@?FXVKe(O;Zt$lW9bg1b&7zQ?zIuC9x$r-X5XHE_dRmgJQa{ntf zJv>}FY=ekHZ8wS@X4s}E;+PD*JnnUch4-MCS4CD%4lfT+icM7~Fcb6$4Z@$j%x|D6 z#3cl$)?zZ@`CuU^=X?8T!jy-{##Vpj)))(6N`+{OLgWznJX~Sm($T3icbR)XxU$mQ zs|lz@fPJI4Ih&-KjPHT6XS2|RHLwagdW`-VjB$j1lUzJ`#&xTbNHqE(rZ*7S$A5VT zgmhV<(+iwrT&XDX-@Sc{h~0~(;7W`XJITM4`}e{6sI46z`;}lJO1PtddSC@fBHMbn z6*SmN0SgG&5+J4`o1?Wa89Yf37@LNcd%%2bMgN zu`BG=5yRO;%(Rdjf~&nAQsy&zqoH#zFSPFCIQvi^w|8UdAK4>fFA+EUM2{zJDAAm8 zB!E@mwhF+H=1%GZbMv=RQ3fk@AjzWrr>96~`_|ws7q?5~W6L-*CFlrOpg3&*U>FJ> z|MG=N2$fU1FOs;i5H5$g`DIeA-J~y2+5#c#(HXhTEDB>CJZdzxM9#Si34+hoOxK^I z$^jFLi}sLzJQ^whRaJ9eQ?(|5WP&#%0oc-38M%q@Fbxe2(RPPLl2*^5S?~MaQVq?#})bzB(lKPilEfIl~K@NDJV;eq`k2=8go$CG`3|N>ca;(I5KbX zMX8SV_kS_T#VHaGYUT0A@gz`ZWeR`y>^<1p9?M2aSUV7)+?XFc>Lm)J$#LkoqJ~)n zc-waSR%(S538ZZ3=mc^3kqynPN4G-F>-dBO1l zn%gii){&DV%JXZtqvbz!Dj%URD+{ix?FGf=`MNN$#m>x3NA7VcDUQ|rw`a7iin;-L zqbhF(nBmyP6HsYmZM~O<=3~NJNgugTC2l*39(W&M1)0C`H1qz)=Xz0!QgsKWvcAAs5|Ks8z_QNy7UN6ZJDA_;6qIX6Z(10;L`ODimY z&$t|*3!}ff^b|hD#T($3lwYRFXGINBMB|Q`gJOZh3%=|Mq$U=w zoVuKUQuRt{t5Jx zVecs>Cf3^Nu2T;pMMb1Iw&%a9D4tf{ z#xDe&ZWSpGKtM{S4nptvIKe0fWDR&imnth-h1fM!Ru1FfUt53S`5_bSI>G1&_+7>K zUEDda-9Ti5V_6`VlCkj+-USLA)no|i;3K0q2a6r$H3-LKzcKX#t7;vO)U(EvGz`+v zODK)z7Zw^KUZiT7fr$zJC>{*HjLZ_6H2jg3^?$;Eg6~%6hzvt+3etG!Q~MU=>SGH=rUl#BT)JS_?qE~zc|$RGdX#Zo&xI`fcIc% z4tP(t%w^Z1WgzbaL>=E5g9HMAtrCZLE%9iQU_?cjOnv_jM8-qr%itUiGu8eC;E(`@ zp#lNvh-)Wgt=KTiii?W_o`Uf6Uz2HtBL#CAG>cgF2Nr7pPg=;{qbe3J8#l}lg2N*E z3Cu!)KfTZx+S=TNDSP%T(Z-XC^|(4}46@Ku(XjRY57Q->2w`9cw-_qwjFE4K0_Z_7 zuSKDDv&2!BBfQoaza5_yNmb3>p<b6Ec*TR`=W-rI^h0X+!U00 zpOP#SzcjU?0s(N*fmNchrbB1W*nV-}-O>8^D zEc-B)0dPg|8=CmBBNSnQkvDpBl=*cXK5}vNOiVBYL>5v|RK(iM#Ll%0ZTv49q4Q#5 z%(5YHPyieMa(de*w4Qijc;x7Afnp7*+|bgp189%fanIP8xm=~mEFbt!-;=cxY|p0f?{$~WfZsD_u1Ag>!G;i4Wp-=+nXvne^%3KH z_uxnkDkS0tNVysr+SfY{%HDjBuuA|ZPoBh*;SD`KEZI;F@qq`6KnQLQd_iik4Anq4 z4GU2`eEeMlRKK8Q$;M#06w4{-K;fh(^2qW>W?C z5S<4T{D$xq5yqIidsJi=GYEYNtB4r@@bzkIw!SQ*3mBoCFRS<>U;&eHY!?9)mG-+o zl|&Pz%7mAUwGm+TfXIJq75=l6Kyhnh3Z{%Y4}F`#2Q6N9I6mr}z6?EIXBan}gnT=>O zRa3Q4>T-(P-~bZhKm2PV7WTh6h*!+QzyN=lv|kT03L3H; z?GSD{AQ3&7K!Y}n>S;0j0Q1wt=rdVJ&{MiBI$s85iF*|EJ@uZ{gt>`aZpg)G-9n{Y6@2GAi+an^S?&nzN~Bo z>Qjsx&FtohLZ^ zx48Fv49bLHO#rn;JdXrAlaRZ9c1@7f$EaTcU0KaSJP%ez@mZuWIm0(ZyrH6SSU_sU zt{l4*WMD=b@YeTmT!Zb?=BjlTO&rIyVps+Q1k_`{&Ah;)%W=IBcO5JP%-h`1uj{H% z;A*3=|0a;3jSapwaLIUminY`8;WxIjf?zIbXXQ(XTAwy{2WrEJkA($}%-z62)Lu=p z%ZA|J#}eH>pRXw?Jh3JzT4wU{l_=Yh{U4z-13DU2p}FWgSTlEGOd>5^@Jy6lXMCg;M56Y`O>X{0x^p#BQ94ILjW*9nCtUWkk^u@PLZkb%)_BUQq! z>%MR&#t67~0VyDlIffk;R8 z=sB~4Za;5J&fUuhy)cIiRQNW!AkIcT`+_W@9-C5v1mo?gE-VqawPucwjS+lk5g1Sk zu~-ntYNnz%25?DQ^bIpxus&ejfa&Ps%Eo>Y2uA`$>BK;P%LY={H*R!b)C5eh2V+=Z z%_%(%oZf`?80t?1=6~5nki~;6wzTR4IIT#fr=+E&rKHMkc7K;`CWPA`Z_myED-u}; zLmQKnn?PA`)A6ob&Fo!VO16pGVn;CQ=(i~XM)ff~&-B0I>tk1ME|6f{2Fz{1F569# zv5{humYP@%e<1X$n+uK70sj6<;}%9nfX@ApFQ3Dg46nHDk{P``o-kqwChwaYGv&oa zMc7&{E-nTuaS9zc5TvuAX?x!=pzR>QrZ9?rBXCP2wH1jUj|jEl6e=Acm@3DvCb!@k zm;-r!UwC{EVF@2_J*Zq*;C~kxiDe;dq)&0C71R1%Bw`f6r~RO@d4Mqhzs>=jCDwDK zoED!g^6Xi2N-KU8J3|FRc({x+kF9?sp(Hm4ZKYLAl(V*Oxr zf@UhlGuSl8{suvp0w)is_3>lJOpJ}k>?F2k?l40X1}&)!m%yVXQob%i3J1c8TZP{8 z*e0V)Z#!ng(=kx_gTK=>i`5;Xj>D~sA# zfEi<*8dj{Kqa4Ba+yn~^xknk8Bx;N*UMypxni1O+4H##gA{~!utaS)bIiQ;`3dg>hSQ({ zX$BXykq}h?doKf0#ObNLVPw2g3ycYHe%lanZYQ11~~BB zx90Jwdp%8mXGY1zJqr##o=(C+!d8tJa#Ks|y%sNe)%_q`pj64q&r=@dk5Ksp{2ZMP ztlZ%og`AF5687PcqZO_dI5?*F?p+7J*Pxno-*3DJbe;^1jIPZYRa`#^(*{FBE-dL) zKCHB4S2#3)z#tJ6O zf?x&U)DRv&kPNu3K70QB$IqWt*4+&ageg5*pMLQ@!EJzA@i39^SB^@~$Px~L6elI= zAkces3VK*VG`?jGB0UH4s zk3tC6)`1FlzPkPxUBKYrGipyD+XOB@k`UMHTVZMJe}eHT0G$-#A0Te+BOz*O=OXnw z6sknn6u{j_PDBy}?*s`SBON?J++6}!MO^#_N)jzzuJ(rO1zg+xs8JEMoDsuxf5@mD z!*aS6wn4#feFhp_aPZF9Ke`2I4#BV+-^gui={MeLL$K?rWriq5QQZ)*cm{W z=qY!*g>A#?MpTWp4GmCZAUOhVf@XSK+Y%@E3*q(FY-GFj&}YdCokV;<76x+yq6X`@ zmTmUO0~H2GMn=ZQVBtI6*k24L4S`^F?65{qJ7q*q#%q%ur0miwuRK0ZK5DS)b#;@=pBkXP&No=m&|Zh??Kx@ zFr=ge>I+B@a~kO^Pal>t!t3X93yuQ?8TB=8FMzn6;qY5PRnyowD<0OM*+bx%@OAx| z^8;g1q*$EFNqh$U40to9&fQd@{X`ISCvZ{VqlT?w6|zX!iKAQwg#I`%h+WOZESd8J#DiPO@JTn(54a41B< z%#Aik+K^^-Wn{jf=)odV7z7PYcN!%80+fW3HccxH5ck`kM%z9hNbGvVG}gBd<-xEG zqRlogCa@%YEKNzY2DA#bh3OdNWb6De$xYV}AhL`=vyV6Yb}T}saAR!^!l6(QV=4F8 z9k$zmTuh85x$Ll|@KdAMuTbWh?1QV^P7;VDmb4L_~c%nIw!Nxmx8E7Z@4}iPp z(_n(u6IN$pLPBt$2l|v+SHZ-V+ALk6PK;FD!~pJ(#WEfq)He{pZyecoAiN$Zvu|$h0wzAd8{fQmp;?_8 z#6^yj-fIH(xX6(s#H(5DPM+AUEP@LtNHk9=Szg4%SbnwcV+&@=vY$t|!NY+%!ByU{ zTdsK`kfIwL#3CEuj>VZExwtVLQ5hK-C8cK`=})!OGlU97{NrKT%DkW=_6{O3D7V_g zEaJ;d^0B{@pAU5!k*pxM!vd5q>xa?Vie`Jao8^NRVVv7h^^tY)Bek(!%MQ^v>4T7G zR4zrI6?PSi0XYSD5!S`am82MrWn$FfgyuF;lYkO{8o)oTU^v7AHD6>F6QnLWI-@cg zrz^?9I4T3*d=U)bLyH+bh9$ON%R{;>fU`oVbJw|IcX7zR5Ol>+#o>A*RFp^f-8mGp zBha)&dt2=L!rCTkG)zU1vYj!nmLa_+UWc801dUXV+2{g9T7oS!YDEABDm2Al-vez! zFh%}GVpPYtfuz+`Z*qd&%`9?Oh|*V zgB%#epZv=dwN=uJlDqLdxhL~Rt&0Q!QX^`eDBJb=z%dB{s|xI#xJbn$lf^WWoeqB< zjAt{^TkC$-V87q{qzI`)LtJbC&tcd}U<>NzQ#cm2J}iXX5A#z3;~!Jn7z8AYy(Yxw zUGhdi0>ZqB8C3?rQ)mgQ96RI2bP}0KC<1^B0(zSnwBK=!P?Tb7Yzj`|()R0J{|)px zBSf*Y4jci)RHPV(ksmB>Zf^aJ4_psHWbh>8f@29BxY^D*S|KJG{thR= zEJ6|%e47&kPyq9WRpsO(;i7-4sx_C1mB`SRL@kKI{v5gv6ooS3t#WMmX}H{=D?UN# zgQ#1Ol?7qyq*5P|y9cwAjWY7L3EDM1f%T9h%868)JW|NX&$5{w`kHE&f7EHysq8!Ry96{zRPX zNC~LrS9W4B_dqSRwz>+mpLO$uw6q%-`k0SZdAA3wdZxtmlVn(O8H|&s$`eg8~exIB-;vcI}W`a7&Q>F|};* z?S#q=q6UE5Z4B^{bj*QMIf!52BDV|k&>{=2-oShS^&x;W1V-eXFf^r}Ka$$^bR69S z?nwWfBd)_+p}YPH32Wer5ypKZ^*3U(5;ezBf@3`#_~<%N9t_S(oR<763`4Rf3iTg? z4T2+M#df?v29~_X2=iwGZUiLx8*@vM7w}LZDD(l6#k|ImWW_YgNhR+1gd9gZ1^CS z5(qGC`7OHw6%y2W&YeH6_?&qTy*{R_xADsH=3{CuR54TgVqAO{%1I&966elsqKgMU z1Evg^pWfS50xEIp7(%FExPv`aY<8k{BrH%QJ73=Q9~M0G<#sk8CCrIIwPR;xb;7U* zp&a)G@;l68jk{_dvlh}iIyq5eq<~LtA-VxF3aVPNq!m`GVlJH}6h>$OCGiE30smhd z5Ye4Cj6&=;QLeU)9Lxk2duRFnin0gLXenv6unr=IUN&s%Dp(OXUOjmwTjEqLiDGJ zY1(jb616)@(FY&6WWNeQ;-#^jXy+1SadJDb?EvhBAZ~y>gZ0F4%*1dT(ePvPI~Ypl z9e|7T4;PI9bKba7WYLj>01x4}0V}EG<-6J7f}7yq0GBKpNCnE#nWBHVnU3BMwF7&(n=VdWb{($$6y7re^@U*Ku%&)w23SWatxX-1={x<4nk-#(G}v=tmkBC!*73Dd(Y~c$vVdA;9O%xSq0svDa z0W2n>zCDyXgs2~*E0(Q@}2EcKY5HZQ3D9ki7=2$#;MnsUDLEhWj+t$WVaumrBsr@%D6JYE6!mKKJB!oDU%EIGsBgPhTm@s5R z&G4U7eP2aI99sG>d3(F%@PW|A$0sDQYkX-~^L+$82NYlsLw+>YQ~?PR_#Wf)^-Cfk$Hw*} zXkp*xl8Va3?T#Vc;8Y!{GsyB5ttp|XQCt_9`#G>!0qhjwX~gS$WiqrsV#^L^3eSQ} zS|hzJ_Aa9AZA(j<_V{bcdRfXYTkH7{cKCT2^#!QpxQOst-W|4iiMZaKfyhS=ktopb zt& z1_rWfA@#$Em(K$Noacx9bWW1`iEa06RT!>wksm&B;y#8`pbr3X$LJR2C%{m=)*5N& z6#}*b({ZE=a61G{Tp2b7|GVMOiH*qUMH?%wcb zb8nb36eREFcHqL{-lB)xR8DSzakXbd^|k1I7qviwkOUq-`zvkw62g+>(!@19Dj6=+ zf~0-lt@V>zLOHaDMtMI5ZN8l53~}?!esP%|ura+nTCDqrJ5P93C}9b!p@E8m0QCne3bXuym$_kT9Z)0s`d#-y+ zx8Z+J@x0-}-}1z@GM=KnuLbd7@R{F>9ZRVHZK?fLS0+)j+^66NNI1Bg=oDbfF5~H? zrHs?|?%d-X&@q5V-~ld5S}7=yI!eZbhRXUIQhtN(YJFWD%Kx<1$p4L)!0Lf5i^vr3 zkx(VT+gO);aPJ;mBgr%iy~M%@OJj1J0hRH;Oc7_f>R(uEe0fUYavj(Nm|xgHP_n(? zs+g*^Jkb`Qn*8=tA=rReU&22|feYwq`^@wGSf&CEA2n%=#Piw$adOy5otAEpvp27C zdt%{DpzzC-^{~+Yys&eap5o}~(=))uFoOf(k!`%<>+NjZc~pofCJAdVU<|O9Z0!;> zLQKX`;h>1wB8p8?uQ(tIyw`vw0Ru+wu#P)Dc+h`P>}>-Q0zrlXh^dNRC~!^3!9K)( zQ1?O%&wKg!ieIPrOSBtWr8<^|%p?8%n9uv7`0^}COJXVo3ItvdMA6*l z{>t0$>z}aLA$1cP5C}BVK|)4U2e*^NHVLYIpkUAcXxLTnt`z#uO*)a@1Buk6hoHTV8W-_?3Ww6zu z^+{4L!ZZfnIfTg>QWK_~QZdrNx|$iTq-weDY^~rVfHAO>avbWQCE#a0eoPn>LNoDp z)?Sdw-1|GY2KUdaoqUw4MX_m%Dt7kXt{2!1!TvF(Ukf8J#8M`Hki26X z_!>V@E%VhW>pw(l3jof`q<&6x-sFfHXAwblqHJZ?xAHNd$ z3i^1OCwC7nqOykG10XL@Il-(#RrNFaydJpvcU#W^bOw=4M~Be31W$h=nK1%!0zV=a zduY>L1vKPOppZJa3f>6LCAp_5z#b*;&d>Jg*82rD3-2(Gfarub@t{i-erV?Al3+$; zjWT=_(9`QeD~ID*j=+#`Lsxb_6(XabrPs^MnpDJv2?Si-m-rAodL7L;Yre^<3 z>1*DxB=JUFXZ!1Oa`?olPw9!hD!X!`osNFNH6T4jJCh@j?UY@b|H{l6zH5$cb&*_F z6xFp2n%8u+{05Rfc=LFqn|{iqN}Ydqd#|S%J-yzFiT=rCt>1;IDPmJzI+tBk$AeBJ z+AQ@|D15o-+5F}tDb<=|hzR|!RAc3L4R@~o)7?jO^dzg3uF}Gpqh_peE%2Gif5CJw zT-lB^ms7S$O!VhrGwX-hPvy4#z6f_$Jt)awdG`6-@r;Ydjqg(oPmb_UzI%0&#nUD5 zGSG*c&}~I^jOh;--T5j>1{-P7?C24pF(xyWf;npQ;k_OEeR}?$jX-9`$g3nV@Ai#&5b2XD_Z(O zaO{9E;KRr<3FTI)UQEAz!?{z?|BU}DVehI>IZU*BSS8Vv;l=`tUllI zeUWK}N-9#@JaQ@Ayg?TR+XJWW)9WYmpwK&zZmOkRdgVZ&zu8oCh{rI)^)Xr%KOIq1 zvj(2+kRxk-6E9=4KCpH+1=t>K5Av+b(cHs3Yx+0kXT!;mv|r`s%BFjtW&|8TBORU^ zx+Cp0z;tQ_3u97cmbT9HmBwNI{x60UIIcEtIyX zO0Htr7i%IeF6UV2Ur;JsG^xBMduO&Ws?J6M2B<0)`qA@?Wu=Ej3|=#iw4@l0+i+VF5Lj5PcPc zNmG3Wveq@&KQNe=zWz`y((&kF|CcO^L>|Xq{_VlO+jbT4Gr{I$CNwv!dh1>s<@>1h zkKDU1i*`0u_py(bJT3jjvF-_od0lmx+$e-TxgmAQJkha#f2|}{bmvRUOD$A{PeHH3dgC-B*Z6i*hML; zm~Yi@2Tc7{T-IM#uX~VZvyi%%>K3KN+4H^)3^@^RG&9@i+WSuR{gO;<#7 z%TMOO(w?8b*`C_^!NpS*8rJ;5hw_(qhDZ0NVs~~lw7W_{CgpAzYpZ9qEP4Km(X(y? z{@dFOEPE)A-E_6CZu!m@S>u^;wN~I&<(F&9lr3~T%6DdUELi<7F_@8hCB3T6C#f6W z`{$&D${!NKE><7eb@O);YfbgN_IgFROv4qcM$Qzes#|V4LfMyzYm3eKM5U(+3?C?6 z{`X;n>2S*pj@_<3k&+`)R9&V26e9MJT{E|kDEM2_C2hPO$InL{yx)2?bIYykTrYK_ z_*U1%mhPAD$s={x`UG(!UY)$NZG`JG7tr}>V0jCA;44efc- z@U>m*#*Zx?r#t^X)aZ??sFt(5Eq>gTGtGV}hqJSxC4TW&MQ-H-ho2Lbua0h(S=`GE zy!VkK!P)U}aIj@*$a`Tc=F~R&fcO;ML-!ZI`9BOkJH0g7tZeh7!RtCjS-yLGr9c#Q zViOO!Y%IM*VA?lf5}&92Z>SY{B#w$Wj(s?kIB0oJy+!Aw1bfDmgy$FQQ5m(#EB-af zr;f+p{(Cy^T{X>2Qfa6tdzs}D?LLF)jw{7HJ+22?Oy@THt41k5$=xnSrMXnf-t~3A z2+4(XTMp6U(SKA8CQ%jliP8tsFZ4+hOMhbhR5T<^7bYt_zAEI-M@>mm&#i=QN*ua3 zSmt@Dd}eI&$5)#>qSNQJhJ=@Ex}({aHlFCIwhYskIfow^O+Fr_>#~~dsc?w-TzSzy zS9SRxoP|5tI^QnZMSe;!x$@z;6ni?mu#ni?!ZL`twuFcmMlJlE- zRSKe|hhW(Xt29w${IY{ybdk%YILj+fT63mgj=D#jKH@@NyGdOzGd~QmUiU zQeC+V`x{>v+?#IJqq)^X-L?Mvl*(N}&Uty)V^&y#G5v%D%3~Ss74hU7gfo zs`mHN{xex`KL$(E@Tmoyf3oxN)8}9B=RgX~aSmn~uFW`SYuY!J%vor$`iYD{s4S;W zIut2pW1+j%ByO?x-e6_OJH@u({@~{vPVdrj!Ml@YQJl>(+haj_<};!3Bi+3{tpV)@ zGfO>Vy&t1F9FN{HEDYb1YZTrj*;vI`UY2DRcDpz9?w__8%f~;M&!^cAT>16)630OK z)`--T>Y9gVIUg6&|#k2lr+ zk#Dm4{h4nxAH=HH9`=4NF2B-eBQLrXF5B18@yFrO`1>aG$$v52kb+X7^gYT%{Kc0pM?+a$S zW#4&fKQJ|XX*1;i`H<$o{6bww_uCa=FH%bO@~Yk|CDt3uo5JmX9!vf7sT`dd38tDp zOrcgA9;cP}chYM$O4?%5-mT%XS+1&7-aY4(-StkzQCCh+tZlVMx1Ny{Jw6=QQ{6Ca zacg}sJI8z_PWW_1NG7ALn}lqfX8BMrD0G0~{^xX10K^;1O<;oGDGz5oMGA4QFl7S} z3!(M}E%peIDawl2zZeUFu#}IvEbui*G7y$mQ3k&MxGy4gJ3;%w)<^sRAjHVmSVMo# zEGU<%r5#S0|M?#l>M#tyj}j7zSR771An(EK{j;&(S8M$^brMoiXc-aq2hmtUTVB8@ zP24L}%S_T`j_dx=z>&p6gORIdYNfBQkMxMy&Q5Pl9@b*^~%LR zsuTYvO!|yEPxp;Rb<#$s@>~;rckXjoWv%b^fD;Ll1>1bqDj5 zxr#PZnfoj6!)^)z{NqCp!DbD>m6NWq6==3Avs3V5zj;B4y?a27X1{@bZKaMtJ;}u zYvIby-Y3jwmj}&!+NX+*PVqhpJRg-|Z6 zel>}!9p|6y8`;wH9XTK&{*U$S0|Sg@Y!V_TVZ-L@Stv! zFcG6(x<(4BxUKTt7FMhUs( zZ|b8}S1jVso;-NYrRtz^z2Dp8l4X*groTj`jB%@8_}F_u;vW00t&RNSYR%lLS2ho3 z(OX+Cd^h`iB2~szu(jh`&nMxjZ%fygrGGA!=M1tm1}%#={`69FyQT3p>ycVOXQ_F0 zqR?k&`OSeV>1wkZOD2jlI&LH5J>eaqfi6*O7lRugo_7%wy5-UOO;lUomyR*Pt@ljb zDU*$9C4|)NsE+XKAG_zCOIw-VBMbg{epOKV$9b@3u|Y(758)gj?<{aATXKz`FjdaITdrE0VBe`%D`;hN2}8-iswd{xuf<%cC=IC@H> zBwYG_Pk*a?P)t*O!lJ8FYl!F6K`Z4I3xn-EE!9K;@Qi^xRR8_-Gt#;5QGjMG3VSI_CiP;iIsFD^SI`cOEFy$isX-ou4a%fav^EiTido^EUw)ycjXB8nRAu3bS6Zw$8?K7A8>yu|Uk+!F14lpF`$4g}F0e zKA_n%81>oL-fob^zKOOr7&9vXkpKnaU*Nh#%XU@TUm+uRvgw}5E$PgF>si6Y`RQZ{ zZ{oBQrHkgdkIE(-vAM(Fb2-Oi$b89h%0J;_ugNgXZ6C23Zf&mQ--|AJ_Bf+|&0m@G zLs$O!%NMFONMz}}W#0UJbkRsv%I90sev+iN&(43Yzt_LgSg^m-%5E*u=8(wFyk&Y& zqDghxHC@W-KlK;Z=IMg_s@jUWR=0IpKg};1zcP`VpAcwmZ_DubEVkf6Z{8VylV-VB zmZY1qDDlYEZJtAAFOJzT@M_x9(r8yjjnXG6gs%UcEBzz1FZ9mcOJ+AN)2x+x@o96G z#)Kqi_lxfn>xdXnb!ZV1dB@1^yaAcCa{(8~y{&BWLKu=#P1z)5`@L0pao?cihr4c7O8bT1iC&(1njfoZeC+J}(sWaDfaLP#w}u14nY)(x|GSDM zMSXd>1=^oZm;bG|gng<7b&z>pXv~ zJ#I8*W>T4>oac5kZT=HtOC}8kRk@%a&CO3`lhZ~1#vgua-&mG$dGJ;XmH?Uz|C zpeb-G*MfMecA4Z6D2fvZ=9y#-*BxJ^qxui>3>;W z_fq`I;$(;OtmojR8xEsC))NN42i{34(5}=kUw!?nB=wrBOU{S=3F;au8O@g#ra8LS zGzZ%pesU@QP5-Mc)vMpO(M<6!KFpub>Xho}zCAhLubd%UoR;2nyyV5m_DXdASop!9ZD%km$YN|xW~B0d4=7cs?+8@EBaQ$Oo$2XF`&zllXiiR*CzDVXPHToO6x1FF$RTW+kT!?1o%UnjW)Lg1LHhPd zjtUw!Npy0u_6EvxNF^7IBRmRdXnsL`1H=I0c-exk6av$kpIs?2%UehTbU)}lO40ID(UR*) z`DWdFxFGb6I9@&EJ{@}0#;TE4(uW!MZ(p`&#_#<$d)f2xsgXcRL7a44aYsMhmQ7RK zT8q1n_cz}rug+3$Evld5RzirbRiC@5>Myp92ICX+OyAF*t&C>euRhkgPs`r8TD~-# z+MppmD{DK~o3=k0E;Jd%X0yFCTd-2-H95$>?PfZjs~H+CHjHuXloGT_UjmKDJ(8Cx zv_*+JCi}++1E~#jTzcD=7ZU*+Q>i`?A@y|<&eo$lEAi$FA1cwfi5`se8-8giCYYKk zTdGTvAZ<5gZ!2vlphzi`bqHG|!Y_*C3OcT~efc~&Ml^3E<;-2xOIP}zN``4I@yY_?yZ~~w%8Y}!4WfHR-Yub3gVur+*2wk@oQvlRwmeZpIGC3al7A2 z{g5$jt|v%}{l3w2tvddx2N)*j>>CZwdoXwJzr1_3P&}I+x`(Q~_n|ZU85xfqqpUnz z--wb$RgAB8YKa)_3wsB-8?xj_t1i|Fua{Qd5Z|Vg)Els^-k;A}r46UQs69W*cNA$* z`%E<_&=2_xhVrsxR2bxDcXNn#qGVUP?bM21cFtMZG9h{(>GKTOy*n9wY_8jstnH z6%@Qd-IX;Avny3WLwBBvEDNY&FaskaVVXYzsTfG*Bq7XAO2Y788LOAUMtxi~&Zb%R zGg04L3(6@#T>y{4);f?HgpT7zE~GEZUH(P2-rf-cY zJh@|fVZQv1(kJ<7;aq>hR7pqopbyHC{ZXJqn4w~^RQ{qmjZw$#1_@1pUU6ar*XfQ;?h3uR; zZ4SJ`TI{i6hQu`z65>@dJRKK)VX+K_-)CZB>tP+KXPa`}NQ@3j_IKT0Bn+<3^7$=E zu=hEaC1tcVNIis?e9TqToL%v1_)g|ls&j-u#kNCXU)@D*)8=o+H3zKQR(h9}D*}YL z$Qc}@yNS=$Q;*J0_EV>8XkT7E@Ga?PTezy-JYA;LHg{YosMfRoD9VsHyf!i>r~5d3 z5!uzT>|ILf6!qlRqo%`^^W5JuImCzTT|T5x?93`7YGMLy21priehrh!ITfNo5mO?y zCQeoASt1d;trZ>@Z;Hudxn$06kQpC%LPVAv5r8A{cxOx4QC#WJRwR{q!Jz%bD6anr z26@iVH&5!cw#=;LxBllcH)cm#C&FZ7;|SxrIWQw^HVt~S@-Zv0h`0sy4eq6P^)koT zVzhCIDVfXBBai3DY5V)*qkLJkQ~BT(qRzJLZ%{zwqALH!*KEg0;%AZgpXvqiqC^W7J}fsaZ9k@KxBQOV!ONRfZYb_?hxC6D`ep9m6zK)I)da+2Ie!g zc>A0zC5D8cmnDAMvgcAFYzGslaralRY=CGvImvhbz7@2{K%ov)6ZoO8snC_~EBT}< z1ZU=pQkB)z9PR8NoXtSN0IiRSELz}5inP@=Nz{)#L%2)q$p0SHeiOzgAh3P~t)2qk zz-ko$Z@jkx{W0H}7d(;8dWMJDV^mRPNi_N;?5Q$wVwY9|4fSI<5=+Zp2{TGk z$cvj7NAr;71=G!TMwZlEmCy&TbPBa|knE>1bi(JcgOrCrbZes81x(G-^EQ(YKax#B|rC04TWStY=RqnGsGa!3o zz`^)VC5IZFFvIcK>7#f?j(L@8Q+xnX+E7=IOz-$tACYdfRfV5Z)?nZUDy#HrL`F9P z!xcpg9f<)C^M(ZcfgUF=b_;289tDCbRYGc~T7}0PDQGwCI`!W-#10rgV7!_>kOmgr zGHslAPP)(4?bqKQcRA#bHD3iN^?l=z`N{9Ea%r!0oafG8LW_qPhQ}x)rVJ*>N*cQ? zRG%p$7gn#lb!viNxA2hh1ktKSE58-bqS21P&7eXF9LUZPgsLtnHglLUSrzf?vBw46 z%o*dqQ2bSx7{$_^P$Pzn1Ye8ir4XDpO3LpZ#b+_z5QBOq6othwki?i6W$^g@&o8ic z=`(=5M(xBeo{^5?N6Q%Re?ID_ih0@`^aSHq+QdcSYauPl7%4)KfDsao!66O=EI+`0 zQAnsEGgBONyW^IEsV||o*}`J&uM^_p$_mJhu3!O#c!L(i3qDbj7a-zQWsV0#2P6Ha`fj5f4P}`WA-orx&StiJj;J10g%z+Fkxv-}uGud5 zw50eznG)Ec=gZB)l}F9YGq+G$?SG|pV!bh8%xJ@aXGFyxNziq5_vyav>FH$G0a4MDolig8ZwNRkMn|YcN?#st_~*>vLRpi(5B)ttPm)PDb?=q z_y&&|^qdSL2MYbgc=d0vp=T&FalGy}Z4<4FhVxdecpcF5hKI{xfdbtaG&muU5ziTT z$Z!DkMZ5*nR>)A%-Ma_va@VpoPo1Xki+!OD6d#7tIdl`9o}Pj}D+Ai%(yQSXpj5<3 z(SbC^6Z#1ufpzzx8x@G&2;HaZ5n3 z2Z}`m(%<9ojd;e`_rbfEN47E+>9yLKL%X%)6PgoOWh{)&_zrM(@6NZ^%L~pk( zl1={$TWpPm?II1&8L#U$1VcojPdJmX>2{&5NjxLEb78Ha2Mko95e$UgRoXb5{J z>HS2h4Bll8gIWkM;f#cwNqq(@_qv9@0&U50fQo7kB!J=VpkF`@H$;4JC4TaO6~a!C zp<@X~E`U8XC?HR(khIL02*X6LwQY+1CxY2!Qe#3dK9(5Al$vKRE^g}6M*I^BZa@4F zeA54Z?4Q483;ULE;-N1#ql8geS_H}k5WpHbC4N0Ph>Bmac zt~OT%wI9Zy%HlP2nUz@JO#ImMr;-!HLInUF9}V22)jXE$&vl z+T539EE)H6{DtoS^Jk@c@CG;bpkFUBZjG{q6D)t4rWjo2WA$Z-4^{8vFdEn4?@*_m zcjI=}S>7eO7_lf7I;;UG;(F{u{rQr`yC1GP*WhPUr@7mcqL_GmuFxmfE}5iDRU5CU zwR7S&xop-sZasZ2W>4|R$E79+sY(Sz|GBE=#b{fY05Tf^hbeI;LR!=)xU)}9!aa-|qb=xvK z#q7pb--3mlaGO%?vsJyeAopI%{+UzndD~dYoV#{M<|;`?Lv?Z*)UoBHEOk1CW6Bc5 zEUyP@s(%{ApWJKTei=mYii|>b@waswt!fUbMLTu_D%%9P9CWkvW$5aq4U(Zw-lQf}q_-RZku#_+m!9rRe_G{+cD7Engtrc;`+fXdo z9+HWd3JLo?Up^uUG{huQ0M~>#!OH2iWbS&Un}zRsUjjuPwsR6T5oR6X{ihi$+X2bj zX1&U{iHOwmzimb6Xx4tBs*%cVU47UfsX(Kn5}ovHz-B5(|7K#}yJ=F)!HI}j{m)f4 z`ML2#%R|oxh06r_mwzs|QT{Qk^wvGOm?n4|Gv~3qHSMTWBIzjeNluXa=Kq39fHQ&{p3=M!qd&%U#zxXyCB6R2D{B4r&Y;6uX|qZY!OAfFjt=Ro>@{6H7Atd z;4sFkRIkjDN2JQNQU&W#z*BaLhv8oHGlp}xUZo{^coG&325WAvcQtymP4rG_+jA>z zeh-r<57jryp64%F41VFIRO-JlE@VKytu=i4j%(iwIpxjk6=ux%j5dnTX!5@`%dEd- z3dNK25-H25Q8%Y1kB_q+{aB-Qb!@<aKv!@=P=!wjeZ=z7^sJgV@?ryTg$TKC7-#uXQ?&U51 z&Ca5SXUJnYr>ep8?2qThTm3Iz3HY|i%`~J=t37fTI zBzSnFncbLXke_jG=&Ij4>bJ0GuuU9EVxdn}urK>WFs!ey*Sz99>fC%WGe9I?T^T0((|BB;1wPMH&zH3M+^CY5 z;eKfD-&E(ewzd$Sa{IzX`4^j8wa?%QlIdAOM9PiNg$3dHiX8Ql0dSrI=-@RKl_C$?WnQYxZ~$LcJEHigrh-?}0zA zIt(O@6LV%GfG4;9-f1%lpGf;H`NntyEthNY+qQ%iLe1lv=uq~qF+w!|6^e(y(N+$P z8*eyrlti(M)L~OD-@#*}XCc26CnEoq^yQ|DQn;U`eJa2Ar}r!gadjl{ zVVSUh^Bq1~&~>j1Gv1tj)iP8vYgU_RO9T#(o4?l0!f%_>5E6Db-%;i^x(qWtN!0Hy zcsqt4oUmnG^`uBOA)f17wH&G}OAJ0zSgh;dcHU4>A6aze74P6A)-%F#9c10P`lEPmxvh@_LnsjI( zn11f&fqT>DYD2Y6hco5(oR}*+vELtGe0$f*T3g#Vbi>(ULH(h;>2AZ6T_qcNW2vRE z{ULkh;+d_`!FvuSrJc^~H!cCeyLPNki@vC;q6A(yMQr`T83;?n>Mwi}Mn*=;%D0X| zZvrHlmA(SplbcziYh7E5zkkm_QcK&5m6(w>$NpZBsoTNIu zz2nI#cm!&hPUY#14LgjzS#$e$Kc@8hc&v}yGuaK?jjoUgf3PvkIA2?zR)2-o#v+>6uh}z0^Fw zn(vvm&-VQ7^Jw+%t=UpV1A_UDKPh#@{S8%z?yjcWf$tu6ve7a)@ASQL^4?yi&DolL zx{vK7y8DY@^q!?|o4Q|?q&MZakIE+t1R6A)?WP!^ftXgw>nADSXo#qPrAI|dsJc1d z9T}kA{M97F*4Wb%{Dt%r5^1poEMP<>rKzi>nc-H(S+#8x_PV;^f>3kJ6( zHa>d4snZ9q?4z_3$;ytQjY1%tm-jEUAko7K-#Y0*B^t0JXun|lk4>Y}j z&IjgT0^dM~|1OGHh23`x1@*ayhX<%lztPX(!U6fI;eF3%2q88wFXgnMucq7NOC5>| zJDF6mI%JtR5skI&y~n$xqC;WiyM*;B%U$8 zTBhV~gyYO~nEn>6rg$j+c!G6u3dUF#uL_ndacLa)UHTt8I2p7`h^Tyd#k#`7Yx`~+z+O;wgLzV|j2x&j_K zS&Xa2T+iOCf^94&Y{46*d&S?*o2`s3B0x)RCo!R82gXvzE42Q!+!-M!ih;NMMf07i zbM(}boKVEwk}ZxK1wtVD!&17SX;!6|H#9DJ`f) z56;s~V(CSFHNv*71z0NVKlv|TokDB(UpN`yP*W&WIu)LqTGP}j__nkXBUD-8$P&uX zzA|hMCwKB2RL;L;A?Hf+W-ylE+LLhL>Qz6?j-&vC6z`znC~|9OK?-tfYG+DoXn=dO zfE_4=GVmNvDm6EDFrhn~Dx?sfLyU@NODfG~ANoxJP>Nd}U20Vp2<>%#kFTMq*cM{( zBB9_`!?#UAYO?fmKtnpgtcPT0Kr!Y?_Lv7{KmaSsz*@9Bnl|{hxjobakwV5i+O9MM zK5vR{v#GnA+mN~4XMa!ePueyY#L#3oZ-8|&7QhPR;>|zuexTzctVa6xbdRzdh^&iP z{r~yzzc=##eenO=FY`|h04jk0Wd;z4;{Sfl|NU1;uKfG6FbsVR=)Wj-L1)Clm5^yq z9OQkznElNwz$?d)%unl{X2|eS`U=ajM*TnyRecz&ELr+{{A|Tcc zpxgwx!LkDwP=7yvG`nhT?5-CmvVa8e2lc;CM76Axrfdr2F0eR?pbCkI!1?nUPMRQl zhSU#as<;n*=iq%nsF^YOzZ-G5(Ew25jSh#|4v@1bPgDpo5?^xwTb zsdx>&>wxZUS=CcfL9#{u?^*1cB67ljxjVSJAKU%Y2HNBP`J!@<&nB$^iE6oXAFnj% zoE@~)cMLbe6?L1Er0BrZK_zOOqm~Ut4EvB^5)0hf7hnAS6zk=;gq2hOy;- zL&3nrw4AEQDJ^A}YsLEK7GWMKN+4iwJ_v1GZgvy2&Bv2P(mh06pJC_#F}k3@Q&CnH zFbQ!2OW{v4;d4!zzB14*1~{==je{s&Hdrk{W(_E_Q1OILxLi{!X!V6}=H&EgEw%%4 zXYK9a@5#u`y`M#V!7K}dQvjNSoUsA`7z`J*pbflx(AHOW0pkZaT42DzryQ}mY91r? z3EH)NmQ4SB)?F`_9nWf;Jx@kN0S`5EoTYsT{g9xx=PWKfF#QFoZ0OLn`AJ|@e-7fn zWG!g#dKJ;bmj=ZXAZol*+C(i10kM5jet>o{!n5G1T7!23h$YI1#k}EXz#d&c)pF97 zk85;^{@y)cVsyW@oJ1>h`RDC{ts??Y6^cwFBAjM@B%`+Xs0smNMvVI|iWqbt%8mJTn~+_-{+z#FVg-d|RNSRp zA{S}tP>a#p>xl0|@syF3)duj&9i3vS&;Xe2QwCY$KcxRG$-5DMl5|Xcn|A@HyMGh1 zZ=)hJHMVJfOd53fIHa7}Fg#AfnzOU%n3;P-eLCCQp~eKjvI@y1T69kEX65PyY5~Gl zZ{vqBe&|;)_g#yI)=20{$k2}fN;Lp7)FGm6Mfi@VRR8Q=S+cWQWP@-25b*h>LHOQ>s-nM3k@_rdYtZCT(pZiIqic(MIZK!$EUXgU%%c5 zu4OYc0uMm*DPp~H>j!gB=t)%1sr1m+PWEeiTaE?9seNb{J_Jxk10Oa!@_&=+`!!y9 z?|rKl6X3-?9n}XF926iqjt%1-624APdjP5x_4_G20ksYg)zP8aUR$s6+>@4(8990a zkQd;eaVr}D{>9P3VL#^(Y8_2yTS5!Am?-|tQFrk0@psQp953P@TUuI1sMErf8&B;5 z%XMfjL6yINR6cW{hoNDHSUJ7Uw+zdF*6>~VojSfeUdu6aV3<*=ZHm4jBZmrO>(c}1 zjsntM$Yl&PpTk-)W_$vWiU)a~d!cXMj9qQRhZM2g1TbP+>)QghABTV;Z_zr3rv2rs zhk*3l-%STt25Qq9069u`Q=q;xdQ}=9PvrUJ-xcqYVjfpK5pXs``?wN#M8l#K$rgs2 zfUs$e0fhwAFk4$&QKtnXdJ*#!-^(=>=2Fr^4J#fxHtz>8XBt~-BKg+bA9^7^0zV(+ z%>YgF235xO$k*2KcPandRgc`M1O?rJ=mra5;TBeh7)E~-B@O(JH(P)JLFFuGTe>ry z2X8`&JnaH=w*NfC@4l?0q@?av2+R(@GTyylSWTB%+`1@=POTUgN_i|so?JBpHL>cY z=6}PL0fT^EWoXJf|0qY<-Xf_-(UF2yX#L>D zi$L_tG2uyZ$oH^!s<49Ig(x!E~cy?uF$C+dr2U-3Tvd zSTn?DUkCP`k((^$2GP7qC1!<+UUG@H^c@9}3GDiM8#hFqTPMZvF5n?1Cy^b_nZj-b z>pg0dAl01`DLSCDRfeu6{2NkS84A}#H9#30YF*g4WN2;$LJ-5G?TfGHc8mwm|_+$`CgJ6;~sXn2LqvH=wi- z5bNOq;Gg{+d5kkwfK*IxvO{aVE^oaBd*Hbw-S;@AXO>5g0~!m*3l5>f86@RCClS!| z+)L;(C5E}$<7QB%(Y+@<4(Fl-;N_1|`S_3ylA{j>em z{zbWFZnMG9Upk||#bG3fE|OY{@JKCch5wd7oql0e-bf^dXWXu(kM$04w*eQapdmb~ zR~5p5)$Qm=AHc9cbA019C(@3J@xO0=l?&y|{oB~*l)xU<%i4_yto36E&C7eC+ru|7 zXY#v1MQC2H6D6Mx8f3<=Y^9{6Hox@wD7$%h+}VC!JaF^w|Czfj-=f;7glqh+H+=p) z)3>_p3wu`pE$a1qIIlfky{aoGE|oo5HZCg|t6kJKIR7%A75S6L@`ukYz)3CSC+f>C z{X0XNgy+2>G`hG7dqRWkQ3eKrt%_gT+WJ{^Xkth-4FNijZ9R>^wjGZHZFZyFbI$_8 zAu*oyEmq@bJ|E zmH{UQCx8|af$<}j8oAkn=S?RhEYza;yMsQ@uyw5dI~dH>+bPP(2-^MhZ3QXn^E*DH znmEwKaF8{z3f~lY+7r693qK9RCNf=n9+i9WpxKiPaM7@^pFV}pPx;7QHBpk6_X;qx zDNT$4sulX29oqy3s-*vY%1H+Ba)nr^Bc{Fc4e2w}PXqvaLC$jfXP18Ce5V^wMG?J} z;K35Fk8lcQ^MT!kzNeIv)7=@CC#aoa^Xee_A0QlGKJEjR+Cn=78yt*(5E#jLGaBj9 z6$U=OBOvkRHajl$5CsGh{CBKrx{(jVvg9Dj*w`4jCEZu`_4T`M5398MmmK_ZVNO70 z8hADsSXgI3c74O=3odQ|4vmv65`6zTIQXfY+#8hwx+tJ~K}`0xa{+k#Ygf$hW)NvW z%Q2rG5gZe8>rY|ELfoR+d=9l_r6wiDu{n0E98H|+l4E>wQm3XCt%m4m$@uvl5-z|0Jw0+bKk%Ak23&PxHS3F$ir#US_MuI?&UO76tnU%$l`!t0#RcbA_bM$OI`rIEdtbPFr5(e53p)p_VJ(A$QJo9a z=m>J*`((6y%h4Y|hpDXJ6*~~tz675>4R-mJ&CN&9vjUO9DkTKS3{fFZXuuPX*$R;R zCZ0)9`mBTC>C*XcwA~Ke9=MCt=qkXFr3}-f!w1)J^;b!01Z5KZj}RBa@&0FFYg*xF z7cjv&mC?HK??Q=#aYXh2-UysZ2ns0-;E6&A4nZ?%IBx)<6slYjXFIvH#>OsUm?b_c z=z!1+c7t-k(s=kf>oY^ZYX_f7F98nt*jrJOB?80_=5g&3mdQR8S1@h;>=OC<@Twp`(s#4iBq`lFLjk zqNh}U9QV)R;g1T_aKDvC0eS7E587}$U^VsHUxAGr7BJW;!7Fw|L{C%m_@p7r-e_!n z6*w6Hrn*Gd%K7&(^`XG@H81u7UV2h|JXnL67%=iA1i=&m3lRVUsck*xA%Kwp5(#+7 z%s6c{F$lgFh%rkJnARITk&kv-T12@P1_9m*w&rwT&F~sy24Ys==D73`zfGP|ryDMtk|JL~HJm){sZJ}rP?2C&uSOSvxbK!ydV!^ix5un>e`6e4A_rk&%O zYp!BfA)-{i*G>NYx{xFJ?=;(_!&rv#@BjU83h19b?Vpm*-^IDBrnMQbbN2gpG83+1 zz{P;n>@ymkRPhc--&|dv;w^$Y7LN3bJFt<#2qU8m_Uwh*gyspHbqN6UTO+>9NziMd zw85kO{g1`3WH19-edlYauO0z}0`hLugqW~H;6#419AD3BW`>w%aIo}18rZgO z$zfq(`%%vkWB0wPt$4;CAnG^^I8)d=J0sj>0$M@-j>P|KV?#D?RD$MKssclEkfA1= z`rtA%TW)r9ly(e=i0Fp|LgD8#xG_M)`IsmL9o%pMT5a6&p!tVHw_jqbK?@o&eB~yA z`K^V8XIW|RI7JsI7n^0kZv{||`v*BmH@j9;2Z0bH+Gt2}2y4OL906EISXwf_`U)Sp zp6J%`C7jtWiv^!+Y5BPT?38}X+gV$Hii(Pdhp5Q_k%sGPriVma$faPlAlA|C8%dOW zpr_LR7*terKe$Z{kB*hK|G4yT!^|HoMnWXyhrw-YfcOEhQFFyH!{#cWc5<6T4M~`` z;QrLgp@@M;oVAq|SOTaWmmwbQqCVah%>ItjH()LZvDQD{)G%HR&cvH;b+MGGxjTVV z*G0p!jq&y5)YJ=hb>!@`c8-rSidM+Z8-Sw+GNgOF zyy`v@w*h&pM}{5ZPOK&E*Cn=^Pc6vvphDi-*AN^S!Aic=+zIg9GRBweNqA z1kvAjB#vtXuJHgEj6T+oBq2H3^83ej6HZ-SUBGohAk}T+Q1_6F3tH>Rd~n?M!3E@x z1|V_)jcUO0#x=CAz8+$TyHUYZA%7uXB^I^Zca}PW;AUp~^lNw1EL;jNin$!u!>r?l;&eTj_Oqg?5;VwS?0DP2(BWMuiO6A2 z5kevpz8mVjRS_%LZckJD(`TiML{!@B1a;VMdjfOJd94J{>By7*h7bw7YYhab8Y&uE zEFV(79N_&?#MXbM;AZ$GKpd2Ouf%R}n6BfJ}(=4Gg{2*irm<=s2IS zNFTKI_7=$mgZ*ZKzM&F5dMWhcf%8X_T<%G%4$ygES$xBT!zcq5qTv_;XEem&q}Zsn zl7gvQD=RN7EVOi=Z9IeOXmTc~nAP+wpdAo=GPJZvU){#OEF3m}qgH#Vi~L9|YuI-g zT65vqz@|IST8}+(b6l4P-P%ZD``6wH?BQT{$yWVm@UgP;Fv9(`n;{y>N$)oiQ6GH~%%Xa(_Kh#3khj$>jC-~XD;2?n~RO-Njq{uynz+~+%VYKj z@a=}Vtf`3}36gapxlCBWA)kQMJkDMzSG^Z@1Z6FvSq z9WZ&XYG`f|`P$YN@KMjwvQX@*z}YHR@J<_tS9q-$$_FsQbtI03@G+gcTocsCj~vQq zHm+G;E$)EhtB=oBTpZy=4IiuxfV`%u@{Vt#Cqdiq^n`J>i?iNL#EA|;0p#p&mut!; ze;T)R2It!#!$l`B>&)L46leb2)g^T?#R&H>gqLHKWU#`3jH_D2Pc;O!kis0n zfZPcbVsanJ!=VA2E=If9`}hxa^ksT9GY>(k!ldnWUy$G?txL>VWA}j32YeRb=tKDU zjnGCx2pZ%AT;P__Pd^hWP4M$U4~ZJiQ>0XS^s~q4k|iZ6NqS&Ol=}#*t4>~&W?a@` zU#_pO7y2wnrI-VYv#E~o)6Lz%ADzI0&&$anEh5GZ4lsNtb{l3^w)|MF>&}VikUE5) zrKyRP&CMbw$r5Q0aHDZ#Y$ukl{`$E#y$MFzoGbE)P)6ZU; ztJQXzJU>4l8&jpC0kRktCMHDxSy{Ae;(L%d)YkaX+1bgzlOUeqcCwpezfz!U1qb?= z3HyNk8Y-llWtO9B`;f2j94im|{D*l1(5PaMNzLs8#)bJ2w>qC=?V%Ycl51Ty$pn@I zYDilig(~C;@$;WIFgd`Pe-Ud%KazP5RHVpDiP6#NN{lTpMjjBZa*QZhe(V6OSxYHD zIqtU`roQ$g>YRae99JaMH@Z*Sz9n_a0Zp|P4R-VOCPxGvkC=)m+kSxxefMzl`Jd~@ zv&o@5THr4z#Uzc|FS`FL28^hgd6od6)1?-C;&;M<9UdAwETW>VErW@R-3F<^!m}c8 z+*e*`P60^W0gKK6C;Qmb^R=Uc%!!(lMGl6h{Wi_C3?rfXRD*Ds662==%nR8we5z3? zwaE+kq+P3QCQo_vGQ7ex@L(nZ?F<#oYE~DHQ=-XqBhp!L1pBE7OV+{G?$>!cK)V?X zz1n|%24}40nrbNMOpSHmJ~S{@fbhbDC8XfyX`MYqmscPCr&{m8?unAE&m9-cTwJko zTKDine||)qy7WuzN=Ixy^<@9bRw!npxwEz>x*RkXjNK_IE{R0FRCOIx(wh9q$Yll) zO~<%5)?af$1ePU5i+BDo-wA$b?yVybD6YJ82e~5kpy(-mazTmKeyW!|i`1Jz(~lTn zvni< z=)gwD%*>xh;9KJmjPncIiTVblVA9<}2xW195J4-#pPau1Oox_wP@I4`7 zvbC|%HMP=M5w)H94xINHT^v{1HL1p+tvI~QW_#|i-F3mpf6JEdLhaNJ&~17p0FpXe6f z?IDArgpBHtfc?S{2`^6mil|y3`g`0HpK)c=Vr&J=$UK>NWq!QIM-^(kS)qN&i#VKD zM*UIWY{*n9-Z63r3Elaojze=JY1KJ***umuUSc}B;C{Le8TO$f`J4K1hsam!T{bOGM?}pvF7Ek(8x@!o z%+hX5n&)vMV(|G(BGCaHwGOH?#tx)Jmgu&5)q+2Loxp;HJHnO` zMfjYOPcHN-1fs=@e?0b`%yGSVL6wue^LFHG);{UACd%|l9@v`L*ap(c=;J6~v36|q z0cZR|v;=ndv|sDcD+P2%#jPp8%01v%k9}J&Su9_&+21E*MRs8-8X?$hPon=f(>1Sm z1Ev6Fd^`^`o^>GiPT)Gr#A4smj=*c>>riF$z1KH99D_Ze`waNxPe-47t6-RlV~~>k zxRmw$5+x1dJ*gtc&3aHBa7TVu zkPQ9=%=MdAn(T#*h_ll+rq+sfO||z2RpWM8?c}S~BqckZ>Na<^bA*H+4EIvIqLAjj zrFuq&NFgmgzrCeW5I4iWy1ov1XHhuX8Zf=!OoHeFj%bi}{1~(O{(WJfxFMAOVEYho z^(QTdc!e^xyDRYkn7)f1Ht-sUPD}aFh=_Z=*kBob*5dmXdFL%0`7|~jmGW4=c>1&x zFvqLfbF<26isQ#3MMB071sUpe~95JGku) zm4*ogX=&=<5TMRNwkpP}O07tp$`gkq8GAQbEz~7mT}|5+F?Q!zZoJJ8Z~%*-w6wIH zUL)`Vsc(U)7=2QYv+so1ux#X^DEj0H9JpFcw%6BBlQy?bH(|ybf0lxw!pnO&hbi{~ zjt3^3t-1?#{0270e^Rx7Cn2mn16rv{>t(Qx82URuq@^jM-UUB5)Y+8Z`Dx#SVK_k< z)8CY#i`nu#-PFtsykY)~j%U<6GX)tUD(J1fR^K6L)|D>36X2NxtDlKe7XVd&BUnWo z&$rW(o106P?ONXFJ5zF3 zX|e<AY;a$ zwmHt@4PgSDz2ljJ`?e7_EpW*4bigT5hGuLIhDq5azr+FPXTnzX(AA#)igz6~4O({h zxD3JL8c>h)^z_NA=cv7?3wfnbsNv*%JF~AJP9gj^t;vYcdp36f!SOld`>t=$1{s1g z;mDQowyyDXSINU28Nv1*rOd~n*>_E~bX9sy>Lu#rBOiX^NjUdKsd}{a@>5>9m~DlY zLG&daHWGHUm|09KOPNrY0mHX;A72AJ13?n1R5`NBRmPCba_usM2BuQhNQ(05%-_)o zIbqh%-ZCk_VR}GqC3JRWH-yG_q)rsBD1CV0^(*V{(FYH`qZ!A+ezW^b1Z#Hukd3I@ zwsdqHtzQa=eU|ZP%?Tp;I&HNZrdlp_I(U_H-@nsD*_GZ*g=5G3=9&}P>SwMg11p3f zk9y84wUrVTEoEiG^b;sH^WLqK!MtJZ`0-p-b#JnKbXYvY;38+bx1>IlW@BT6SWRqd zEWwntaj}Oq$kaQFt#`L;M@J5t1}hS3;$h0Tjc+{ zX6zw-^}p-?`W0wst}_CV0Q~2wT^NA1;lGQ*73Tkc*H*3L|9|iELECeS^!FYN`jq5k z6fqcGA)O1(wdEh|8fL-&)qfBi(8j%L2Uj+>wtmbL=3{~n-wjHzU8}3E?%=tB_S7q` z@8$5PD&)c`SVusfkT+eptL&B#n3fxcJ^rJ>( zQ%S#_+_15+X>?psm}(my8Y+t*%x8!Wg7)0!){>7O2b}Q07@jVAqx7ey@gBKzP|VvY z7orQNYvU|dNbc_L;8rJ@mA;vVR8+qq**b3riWf|O4nDrbelvkUXX;)D$YnuZU}{SS zs*VuC0Ewap_x+=G%WTZZGx#1C-p!#$3rA->^3TDU-f!JZLo@-*-@LUFn;+eU%9k=> zPDX~InOVmoHE7^Cppk zy1S(nqHS8?EI#`Zt+|Z2SH6KFEE6i$$f0j$h*J7_g@mkjqm>x58N;a1VRQ4^Zam^w zE84EDyhQP&dZC@k=-&7PvdoZn%`fa(dr1MS*r9vlB72<XR8bwf<&S!fosWpamBsYSLfD&*X|UfhhCP1# z_$}Se@p}nu9Gnc2MTa`KhaaTq@(lz&rV;BZ09>E#jW~VmtByvOclEEusU1Glakcgk zK4pDp2!<3dOYhvhyUe}9hzz7ltpTd<)KELZlaZyve@{jS+AFA#)Zd5E@(%xT5G%lz z!*WTWM>xIV3&!*3ov9MSX&P#9X(fO=32JPf5@TGyS>3iKVXFaNql=mvZA{2Z@80j< zljG?))YK*?Cn<2z@*cu`?ks6LKCWfy1^9w(;+&+Mq9Qvh>yC1|9XM(1e^*oE(e6~B zk5zvd?e-9&kC&BGwGEl!g7E?1=M6E|7ou1{zv~L_j<8nD2wXE#dZjLy#%>Q2_O~8g ztn?Q9uJSjFXj4)GclpnUZz22FF-t@{R!Y7IU!boKdy(PWri+BK)82b>+~7>cOh#Tl zzPwQj`O$>LMCZUKZ|M?y1O2nl7=zoW(Zz?m%QG3FFb5M4Vjn9jS+((9m+;5SPH@{n z9=p73b}vfM?GKe_*OEhwRJOw@ZJk{H^#XZ#$uX8wYtQ@Z1+3^_PEYIGEl`zym{m?$ zSHnL!3EIS6EW0#hv|tI7%an5S@*)+mF6*~CMms)Hjx$Xf>sqG8Dup^0b75@;CZ0>N zWL11L3w@iV1J1pd6T#Dh2GDdaLmyi&?nh{4ZOv_q&3T6tIgFzxHC|7t?;3H}Yf>dq zQ4MJ8Cy3;^g?Ff1PlMdslkEhB;M<#tCA^P!2F)t#zcM&$2&Q&;muFWGB+*?xXHXqh zAi}({fy9U|uKa_|l1a&5YQ3C{D7zpd<9fYyPRtN{_@Q_WX_u5L*AwMWB_Dl9HL;`~ z)%~WfG{-D9_st|543qhoUC_l^pQ);vRS|?e$AM zde7c|Za&}bT`f^tyJUHC@6s3RVJLGadQl`aKxId=p?UV@5qLWlPz*uD6(bd=jht6nI=FrG%!BEt za*n!RJRQc;3m2DaW}U#rksMT2{oNDK-+D0Bogn&m#94J|DE}o!9}CRLvdsI=M<2i; z9UNcEpAUe26pFO1l7gXufp2{c;0wSHQG$m@811K%VE21tT}c`bv_EGT^xd-ca!W^N zVCVrdtfD)Gz%KY2Pnu;U_6>}#{A~H~YYaFvizyac4U`hIP{h*tWfDv+Mav)TxV`V+ zeLDQ%{d*QdOh|~;%7m9zk6?w7zMfMQ&3o6HFLZHn0oGs4r)<@y#3v=NggJaLprc66 zUBmwx@+RFsb9nXiRPeKc>*Ny-61r*BuiM+(AQ-Y#RJ{3hB%e6h3OS+dxJBh;Zquc5 zVdLm5wtI1GERL^&p|AFA*BUDwO|AsBG?P+}dL4;G@y3*^; zO_!+1$cjo_hpMlh$@buzGGfKf{0F8qTv8`;^Z|?b5)bgu-zj~ptaNm9dq=_3Fe}W- zDSm^eh;u&UvkN(`rm&F@NJ+T4Z+?6Cu~PMb7>F2(i8fuW6524o=c9px`0HRus>>vR zVo^A)^sTz|+x_oWrAc;#1)5&Mlmh8>I=Fmvp_!{kXZjwSJkoES(mcBlYRLKjF!t6_ zRYl+aC?Tn&w19Mrq|zlIARt|WgmiaH2_g-LPT|l8q?8r`krwF^knR!@0R?@N@4ffE z-yP$&-IoX#N%KSi^#4?d4<%!`vB3G#WQVjZ#87!@NgT-es^iB$f z1nHkH6TgkzG)VZJ?EHjoCmx=VzUlMHK8IAk%bcst8eMuD6c^UjK!g@a((;U zF6*A4;ES%qH4Ril31d0epaBOAJPN1YnV3l z7z2ZnSaBRVt?twUL*N+f2qT%v@UK3!uDMy6G}z0FJeL3aW3E&r4Ceb`yzcjn?OGObTe(K2 zbR`%eulV=z1J>4u;mv1$Hze}vMTPpLXV_A=x zYWKG1OF70uViL}eu54t#dEqf^tkZE?6HA#4n@ifQ&A@=g`}cA7d(E+e2PJM@O_c;u zl4X8w;56(8_7d-up)DkhGDsq9oQt#kyzbtF5#qD0zQbY8Vj5}w9x+g>j0jguiltFO z2#JVr4AyZ(!$(X#FrGNm8uct42ccMB29jq`3CBJ3x*l05e~vno)Mn(n`47D8ca6em zDnar@{Dii$?$Hu@vuF15kuS%k3?YS`_i_kh^>oFqwoxMrwym(I*-s_~ggQW84?$SW z(Z~g7c4`Ky8y}wtskH{4yN`7+jDljP?bk$5{#}+q>%Og6eN{ANFwD zA~geaIxN%?3KfPM>S6kFHU8wQ0}$6C_*oMoOJo#I9vozHCVmh$gS1$372!k3-kE{f zNsvmiyln3IAnw)UZ%qviir;3cXj7G1axyw?Bticcph6`9GYx_+*a&M4O z2Si2TH4UyFK?xIshZ)qqxaBG6IC*g)@pA!eOtgd$U{0bv(Jl3w=p|2bf8zBm7)DA< zIOllJmCipPV6Z}dc5W_)76edA6a$;bWDieHPYZ|GHU-ZE>0>DjoTvWCCjN#=*k3+> zw#~v;9CdEYPR_cFd5+b5$VC%}Fqfdx)1icug)Lq@TOXDEAR#HhWV_>cO;G#m&k^0v zx;&caVd9vZYI&=HIfym1vxv`gj9B_^G`CP;xWp>E=E$n|0a_D{la1?s$)!!gMvmksqxqA|}t7w!46*pPEd|8E8YkPft zM6w^Zt&2a=)p@-^aj>A)7o`W^a&w8E;chosUaAKfNER(=Nwz6m*gw0raK~zE&&X$9 zQ+jtt*YYLe>@}U~&bg9@f@Wf_5?y>oW~QvS|8{ZuP6_1P2#XpB3JN+-E9KoK-=pqf zneG3~Z}8`%bqy-JC{?q;XI78g)T99$sx&3nj5h_3(v?`EX$0#2)EdO@{{;qD`RJMF z(;?;$Wc*&mUiS9*R_{rlhuQV7&Bl~{lcXnFPt4bmf?d(Zzrxl$E@O%oPPmMZjTLRb z=$4z3xnESaVs^+sMPVyN`2O5VI#^1wx~W_;jrIFJ2Pqk!eLP|D+s!WlZmhq#UKan^+^}D_f<`so*>QGNUlpr(JVYF<5_Nk&k=Q}xU zj+Ve2RkkB9a`k@KvseR;*TaQ|-Cm+UV(%^R4{aW|;KVU1C-pf_4~(q!TWU2PWf1C2 zG&7!?`UEbA6Gz)ZJ1z2Caj$5%d&=lhBGQtT@oKO$`EUCc%hI(J@^h3>Axni(6t)Zw zCE|~{j7PIER8z>3?{7y%RTSk4VqldKy75uHL*(W4TYAQ^ajsg)Kki5mA)`CyAQI-5 zQSbp@O78X>tw_zZovK9H9+Un0>nD#>&2zc5=4do;&I`CAp#MSDf3hPT2DT^Tp3`4q zoq@aU7XlOtV{Q4(&D1(Y&iz=jE|~RRMAZ_B{Xbb3;6;xOokVPWP$GC|&jauQ|LKd% zY1;*F2Z!q-pIV-1m@EZAmjZZ&6=`a1{N$uA_f0O0gIPj}7Rm9N{}w8ADhxF)nqllXo_)ZZ*e{ovr`A>JWQS<#YwgZyZq zWhgeW23MN%@6Bs+7r97S=mW$bJC`7aO;tG z7m*Sq4sW{5gD>iC(#@);ZT8*l+{$W(p(s>FFVS2Ktiz$3CaOi`R`V@VKxZ#3EaC|=(wOa7(4KtJkNO1&KcU?>>8Gv6966%=xyQ60}vkx=PHuRb)+$`pi_{AT7 zoJ;IjEa-L{^XhADhh%ZB7)9EPP7DB!0R?wqn&ocp6?<u?+bY}{rYr&K~|Zv4^B_!shA=x7HxfrloJ3ejFKaup(Ki?Sp#oJ(8d znj|t_k^YS^4)^3UXWuKYa^}a!)8{Y0@x-C-yp<6D8qVOSy|hNjHkOL$2|jaQW`cYU zeCPY`-Bz(Lwod%t=)i2l5-vRI$~SM~5)!i0oA|Z`{^|;;MvZ2InCr=Dvs(<8yx(^( zMXY<#-V}nbpG%oe4$H_h%%z~rDJUrN6)747scuZQQ}i8p%rC1_czysUf$~eq84Me; z8c)j1H;-DF9kFEWNrql+dqwD_S#bw&pf^26e(Yl74E#Cz@T_@a75fclSB^$wYb?8} znpy##M9_t=rYS+cm3$x+)7C#gQ{1YQ24GQAaDxJ;*%7N@+Nf-SC%<7(>3fp#3bBZhPu+M*~c%DaJ6=PnGD5spQRc+PECoq7YE=BpAD#B^t^5P#K}K zaG%C5NT{{NeaE|X&}05l9jXj{$@BUyjSPZCLTVdCJeDUv!O=)2{GcdnjGX#Mn-%6G zj4dt1oxZ*w-lH;TzjYjY-up#xPtfP)<}O`sx;NJ)*!_d~^|g{8M`bwrX8?I?nExVu~Ei$yv5IWx%B zH8Isdf>h2&|29^oAC5vfNj%L2Oi#4c5i- z#-Hz&{W6P^+(n^fyY0=?+7FowZOi!IvMd)j@&2f_7{-vOfZ5-|okID@z6j-jcW)1e zr0RFs^@*xzq{h|#eyFH85a6g;p)z%c^9klvQ5p2OSgQlg_fx1drm9ZyRi~F~Ngh+6 ze6!W@osmIG{TR@{FfQP=TThF#9kXgRzVh6)*M?JU5rI2lHbQW{3&p+F^H|MNs?}6~`-``8< z;NUS1OPV8U^SRXPA?rV%ZKN<8 zANVbN`}Q<_Q1_kRO!{!(h9I!2cK6X<;rXq)1pj&Bn8AR1dbnsa3C4yW$HUV9&WD4a z5{Co%a5r%I`qgs@I?i4U{L#-&7}>S&efsOym1JZ`zn#mT%Tv_e%Bp+w82w>=V`H`l zAXAu0=NFsOiwg_6gX?CvmWEOQ8&tI|9c_~dYE<(kP~%5@d~~<%8o@7LiSxj`d9u7A z>wil`f6=CX=BStUu7XcSnKwO|rM$Fs6DYg)i#=lVgJ%L@$Uo>GQRl551T!XGY;BeRX95jFYijKuXz7lc6RpbKl7VF zaH;w}@%hQ`2sCJxdTD5l)ayf-3M+CnqKg1V1OGg-%X};gFfU-arQzK|a==tz@;e8A zVJh#Ki62bHs$0@M?m@C-O!@2To|c%XV$M;E$d-QB^uSa=f$YTRhnIL`#X$TmvH&uBibUDoD5 z7L{1!F6GeU)vR4U&D}Y8nw6Pp=ja&DSu#3qX~@eQ1k?wBgcm{5xCIN&kxbf?{!(YG zSKLbOHkcUHws=}}1Ffw~3JWo@!K%2_<81=tMPUH4v}o&=D0&3L&+ z16^HZgp4Ia(U4+&OkRhPC_c0)g=kTB9fSeI0p z7V?!rVf-@}tP}Q=knwF6K{0TEh~-*Orjt7uAaw8OV#Pv;6^*l?UpwKWVqoU2_f0$puJd~bwTjMY2el#bJd$fG z*Hf|N>`A3CH9V2~_mg7T4gmaI&-_|nUk@vWR@D8|rzSE5AsQz;J9KAh_q9F%J-_hG z+k|D6g0U-8p2-bHM;;xy-RuHh(fjX(-$Ly*1@D7-Q4_|Tj0`i$0#!B-_z7f>6g=22 z^Lt7V@5{!{{^$q!$K{%X!tbG0(@Nm$X>(ncV@l$~+sMozv(=>HHEuFvQEE2+GH@>! zrq?ai1&mty+;lJ2;^cm&FUo8B!8oSeTY~;RV@Zi!J#TpQARSvIN!U<)w}m3PDBLR6 zfLP#_fpb+AiAK(>trZ;vLQpTP!KngOSs|KY8kt!XXzb$@y`UwUgs2vSy9{&*y|Y;k zYZjM~@v*jMSw4o&B}5UEbRU#miNeRfF7|AsnUnJvi8f(Kv6X7xP-;|(9V=cg3e{2s z`^2)VK|0})?*+sewCttyTf%qrs)&a=60D9<&y!FncnfvY4VlN2Rf-|`RY%LO3jg^j z5U&b_n)Z`Sq){m*-x_aJ7$LB)VB0B8b74&SQhQc&>~9Ve6NoQ~ykz(-Eo5g8r+-&h zRb_o|P$8S|1avtlan%f2_PUBo(B-R$1)-~RPnr78&Eefb7)FdKCWC|msEkf+Yg>qpzVqW-i+7!(gx1yR;4nO>H zj<_)8ARDm0lcK##lV?$Sa^l79GpWuv@%5(;9pE}O7~pFg$dE`Mt=}I*<2YMCCt~G{ zG~>hNw=1%ze($s*49JL~gjwI_v24+6W0Rtn&!CjaDgoKCz&qOYDxETP@37V%??kWk z9pdP~xW6p!*WnVDlKO)85uM`Tk?C*Jz`wJ@LDmZm1$LWzKX0rI-Cqp%Dn+mb&~BK~ zo$im}QLT(F`1RE$9~r7+5XP5c0;+lwzdufjc37ll$%Hrk?Lqw`M0mGiLj?tUuXjOp zHPP_Bm8XBkad-wHdb(-)%at}H-XBx_eixm3lziCSSDTUXu?5Td>FLP1?lSk54pI1~ zdqLRB2ypB0kG6kQo1+y^v+;D;;fxNGc+ve=G>;I@gXyOM1gD-B4flI_KW>WPiHLX$ zlPPqX{0d`$$>DX1!o7kRWs;MNi~j%`8X8iQC3d{`1dckf#g^>zl*j1x+GgVhP{;MI z%Ep7)Y*=Yy>n*m3I1km05-m=VN0ZiX%{vLIRPzL6PUzkJhv`vWo&UM;tSc7v=hwJs zDp!ea(3}|X>)k)dQ)L4PcV-bJDNC5T1c^fXfvlHyUaMwW?9oW)ByIRTQi%hMG;!{u z--^pVqN~E~pTiX?e@Gk-TMopiJKMgNg|`ldkzBU_JN>ux{qD{wa3aqyj(T4Q{=f@Z zh0`zi&)nh_$9Du!Bs{8VPG(#_5{GX~J+W#dR z`u|i7iTp3w(Eq6#if;*VRpU?S zKym=^6vhCaC=fp!21YI2_gC~SX+Apu@F{D z)ua2sj*JXVPEI1|fwm6#Z?(;uUH+L&_K@P!Y7P}h<$#S>T_jQ|ZM~u4o-8pO3{966 zL=fQbogzcs`6|?hGWJt)A=l0XQ&^|jr~|m}DsMMEE2^rfGU-nn{`{G&?L&3-W9Sa9 z^7kF@4f;7g5z_J!g(@HXs$#icV86C}YZ%$(_H#=!q4yXbu;W7lx7nWV|3~Zd@C0|I zLA~_2i%1$&8)qjFpF<&x4f3n-|E;gt2^5c6?M;~5_m(AwG7`K=F)bvpn)3Ca>}~in z0J}p_yD4$F4p%pwPkbp6YZSYFsj&Zbj!b0P_oB~6w)%DJ3Wc|T!z0E`)FwG-a+&sQ zYsndzo7+9|g=qO3whY7!?NV4&baYsfvlA2YY3d?M;D9#+sq7yzuUd+Ng?Rs)W+cvaugGd=6Z@<^29R3^@yQ$d-xd6wm={a`X|2R z{)uI;GJF>CgaUY>g8 zcW;ViS6{FbX>b@AiVj%61xklEojZHzhprA`yip;`Q6M%+LNDlnD$0l&NzMa5D1Ig1 z#EeE#VJ%o0zO1q0N?l=$a`Kt4=))s+rj$}!536QfkKPOXFP%`We_e4gmRJP}1?h>U z+Qi{k*yCdJ>KDjI)hOuDG5Mxa=Ld~aq`8R54mPi|7YJr{TlL+V_*e2&iY*N(t`)Sl z&h@!PN{)mvzzR(iKX^>Q4ll)bJ@cqZqSH>w2 z^wiYUCcT49!Oq#aVb&4!a2_6lx#}Q%e!{87piIhwX}-d+f!*nun2RMhP|bh~y%T6B z|05eh9)`8T3w}KUV;b5f<*)7w?`TQD@Ix9viezV}eCppgNAP=rX*6*+aeXPhr$_Out+tk= zI#h8*KUv?PxkoHUVN1;k;| z`mON2duc^p%bALw^(KHufhvZuu|sBy(0{ZiyUc;5uo)>h7I|jxm^!?P`K5NI7uC_H zqpR7P^}Y?*1}T{^AWA{bx9qxAw+I9_BULkKy%sExxnuj36;mTznH9omgd2L3Dla&7 z9a-9~8fTT7soTnQ#0Oiv^(J75IEj>6ME5pzriTLF^>?>D7dAH7bdCEi7EuWdyQc_j z%G*^Hsto-a#NnXjGfx&$D;%@4-)(x9b}LNvcY*sMnZowrVQ={J@DjUPgUYP~3K-sO zMV6F3^sJW3&_LxslEciLLd;NbP(o>pvH-=_EYC6sk(5|~id)_<*NJ}f{@_Znz|f-h zy~>Qw7fh=l31c9cl=J8o6A@8T5ADOr8q5ZP3zx}zUrl{?j8L?qr|a&`p#FPJ`>?^M z(=3tJf<>K$R95gA40fIaVOxeV(?w9QKxR%>7V;(L!%n8rn!!GIvI>sqFbvGNJ-B4$ zcIRx^x|I6|=zJ`f{v!o=NWdQ(qZv$eTPoHtghdbveO=u<(Jy%ex;UUofC^sY`6qLN z$S&w%_r7Dj=*-NdW_IaX^Xl{M`)=^+g@teO<`c@>d#j*ciYwvJh>EobivvLYkUA?! zb7{u6b$nhX`D&yS4(N26T%;wzT!%Z>BYt_XL|%bO&UzmMcw#?kBUmQxOo&k2@pw5L zE+7nmR7&yI?(VZcR#pto3oQyepCR}~u0lr_uB7r2`u_djl-L}Zs#z)H{9}=px1H|Y zav&J`V?eGE&UEJyd3{A{T4i;$wEs_BXFzql&}wqw`+d62&zM1q6MYo&1#X_#9am3~ zK>hep=T+Y`*4ZcRce>ycqpltIiI3WoG$p`fz>2Adi<@P>Eqz*DY~;@-Lda~WH_ z(B412t4JB`O~4qvGBQG3^;bhYKvm)p#7ky^OWvj9oY71Y#EJ`+c5LZ`=;m;!dpe;F zC~Ky_BJ))nhf{2ahMSRC9++_wCo4k;;IxV?oC5Z>gGKR({sv}BR-hgkY&9VFN!d_{ zW9F-mQ?719Xu38V`@+sU_w_5r2Mp|6bTFaf@B0G|Xs=`(W7og`N3Lne+Q+3$s-cV) z$E!>by}Zmg_1s634ARg&#Q@?oAVQD^Mt`JF*!-L+xM!mCwqRZ9F=(MABq|*wVqJG8 zI0Nn2l1GK!fI{%v?BOX06n^Xxz2ZxH5Jd?``hs&>Zvbm(4v~gYW7#z)M@N~{+AJ=t zEy|R@66_T)d=?SO(@?_i6B1%kCMEm?Z%2O8mgLrs;;R#y%PZZDija(r4g0ng#s0In zNx*zvcwykn`)?7Z3J%J3;b&mTnja3+S z@YK~gf-*8r$Bo+Q9*w8jJ+*PJy_l|Lh7)$q=Ze{Hff4L<4_ywCWK?u>X4b~Ij39nF z+FpOFv#z$KMNC>c;bnlA7tBf&XPrIb5;*{C2WD_e&OoBJ{S6j|U6$m2B^He6{$&`0 z!l+RgjdXN&&dP{`Hpo|`2fXeaA25VL0wI!U8B0Lejg}0$K@h<9m#84ZKbP8F=~3BQ zWNy5~*PzC_RdeGt&)~=xEx}_LK88NT@L<$3WFH1|ZuBdFS$srINH8TkOz_$9BsI^> zwIam@_QAT*ln&gHAJF3e`Q?aP3=q)`~5J9*03FXqO_F{|}-y@G=1|H6FG@7H+| zTRj1lk6l!-s^ZbJWie~`gW7|goe6vO5iIYH);Kt#$EK#R9bGhqbaeN3ce8VIS*LZ$ z6-3?FUU5Wwx3)Dl>g%HwbczHfUJv~?+0lVUEfr~lydig=zY$+Rs85+ErxSgcz3{Jy z2_E(f9s4xACCwCE91L_bOieNzZ0tS;V%9TPTI~8*wrC~?6}Std`XPMxc+FQisD|u4 z^>u0p@eB=N!4pXkRZq9Rdl%kb{pO98K<1TKB<5os&uww<8#IC6mt+?bYeWx05Q8{X z37gwjWL3s~$8f7?Yo8%iBpCKAu%YPck`o4CsG}W*@92YQht5HO*tT0&7i$Bk>516f zi8v%j%Yw7kpt(EBZ|l>*+O?JkzeuLhJEkl3Zp7ekCYRtp9*~!-jadeZ=y45JP!B1S zdTBDvbtUG`rl_P#R@Njf1`hF18JYVxZ_p$-2&5S89v)Wb&gnOB@zxK)zU0{^^?Qq% z$`c@QT9J^q5h`E-Sz=_lEHGE>R2lf1W%DHD9UCd0NYAU!&K<%P20YkViN6~anfrdX z6?F=qe&qB)?r}|$iyk;KU$q_RKvfAf|Bhu9^a6>1=?~p`2iSQii)lLKo6Ho* z5#UH%i~P2GQdb(Ii($(+W%6}?zUXVt@TObA)aJ3~PZl-bJK?V_1aU=kq@L60`_@Qi zNIZ-SL!oB)VvtG0o18?q@?Oju!xpS4XyblXH_OARLY57xG&xxUG2a}P2O#S3G$`kW z3upAvBkKk@e)m{RFPw1_hkYL!_syXvg)mZiWs%&3-op+-xWc3P9I;1%OXMlBlc zXhVJcRDcAF8e2(Tmng-G`jT`ZRE8i{PvZ5kjR5tTW}4Lxijg>j{c!xpiG&({9=FEI zS=E+-P_@G$htw*jDN}Q;WJ3K5Wp35=^AvMbw7veZF#kZwgKAFdhxW;S0xdT+e;#sT z35bi&jf|i6j9J(x@8BE55R;ptVF>%aZc)4V?Nl zEiT^P6qMJlzWN0nrQ+(5$gM|ghsX;@odc_NhcZNg&KAJ8oeu#gC+1TIK?`HJq{Z`Nc) z33@-|%d5}prpUdg^34k;_Zo%WRoH95`or7LEhCm=#wdd1NqSg)B~CDT&2X*&;yqle zWJ{ujE;r>)8^ahZ=Shr;2bbda??*~SvnVS_a?z48FXk2#iIP|6oO0lQPDN$NF0mrVts}@hlRpTV&~+%|aJAODpWjfRCq3XGDDa-Q9aaPI&DX{0 zn~me~S+BUckNp1{|1zKb6gl8XjERY9(WA9^ZDn9fA)?NPvxy9P*oCbrIVG1kl6zXn zb>IC^B`e(AJl~kNG=N#fYxHM!LG_XBc$nqvFYWXP zPI+`(?fP@8 z2h%4X|L%Cd|I2I;JQ3)@wWF83kO|qQeBzZgdJb@?_nTq%-C*gfU|x7$h*sddL(fZ^ zNlO9h&q!CW~_&-|;992~EyUh~yK@Ml+HyQSgZvGfnunq#ea@StC(xrD)+ zn*R*Mx2rnGimLGLyK`_yo^VLXuecFB2e{)ZL-oq{^vB9P<|C|$H?6jc{=|;$;xdlGMBD^j2vG#h=Wu{ zBO{~A$Brs1ZCYN0mP7bqOQ(OHOD#e|GWEHOVk9eAbItiNE%7cKkty`jK{seXejrlr z-I}Xv*?T?-!D;uhBc8w$T{aC&KX{MSp*kV)Q2?gk$+U!?r-1vbe!~f+<=1{g6b~beNhKs^)jf&w6=&w zZl#S1MLOqxa!T^SPZbO-4>Lt1uFPk9m8xzfluQJM$xmVOM&as2jO3yT=+ca>w>_;^ zK3~9}efiT-bt0*XJQz#>8bl@@xQ{>TDFxE#iOV*AlUQ%rd0t5|qLZrGj+`>vy)Y}A zc^@b@TlaQ!ME49f{$mTWzTK&%$!zh7AxoOHGBdd;{62U}iXl$rb#Lx+&er z1~>|p^@a*59)I{fS?&A`=M7)rI=N^?hLw)V&G^^-^Vr8|INSB?$^9S>uM|>9ORbbH z%oF#4h_hw3fX=3igI^Y)fX9W{G)QKRX{KIEe?~=Bk(;l+^g-zklD%dRZ-PR~A zCVmroPfl%rXpPdfN;zh}VjXXcl_OsX`qG`YG?U7n94DnLDrIi^PT8u8G88_)oGl|S z7t;9?Uk%S73Z=z4-Ab52vh3cxWBgZc8izsqYo8;vfD_{DH5khqYh8ron34_ExgL$& zqt!L`)1{{U1RlukZM!;#XB=cGO)s4IEEo0eN}gnYtTX+HR(!tD$EU6YXuqq$V-d^y z^;y}T!#6onTSVMFJr#tdWHQx044N!g@g%+@wx=345-{sGr=fS3Ca&)IHIh&HxVyb! z(2c#Zj4L|KPe5Ey2aQ~ZU#KELHC7a}0%fGF9r}rY_O#$5yO~-rpEg_9-z@W=jT(=N9vn#ja?758Do|6M8D)^_O^K z^Ri-ng;N^J2Xl=?_xTSK=bHsWDxEDND%QIU-R8^Jgno{K(K1w5)jKm;;$?iRvO$eh zP|XPjo8|Jv?=p+RhSas!2B%_x_M&vzU2Wo*w6~hx{&=Ar3V_FCDzAjSEJy7a#iQq* zow@3zRb1&Tc)P00M{$+}!VB6>^PrJ2zTLP;-4;L3;@nNR9QHuBPJi@QN4yvDD85sI z-&g?&aK&Oj6;1{8Fp^)mlv5LC#pS+di+@5EJHg9Mvo%`B*{-llo_39lTS4>lYt=M- zu6V>OiQ1z$u?f2~h-Oe?A?TvS6Jci>~e{ITaO^Stj}L6OwD_FM2;7 zPQNO044K>Sd6296)Msyoe?Sd1qb)W**=RRU0Hs+M*YDH5_2rn0To-_oTE18Y!dV)>`R~4I{KmBFH;uzqX!foGK~C@5jJRfg(~J?}q&GKdo^4eM|zDBPdLztkaQ6lqPg=h)kj zpdQ2DMOh#;tn#@E{9R8*#In~s5Ca4@rqRd=Bf(WvHynDLCZp5SHqSrCVs@(gdak}q zt+0R|4hKhVLT3`|wjpvN>~^cgwb_D7jZv^J?M#$c2c1-us^`|(hE*i5#-H1Cn(@6J zro_jJ>_RW$eLdU@!6qE)r5>K1WW#N}9zM&A5I$B@7aAoY;{WU!bN0|z#|CJbM^Mw% zroA3-zvM}Z3kqTmLH_{;X(pmxw)*dozXe>_I~HQxvp}iu1t7LGe}j`SUg!!@mLlJ^ z$hsjaf<0N;AQ2dYZkov{_FQm4kK8D$yf&vdH9ft&<{jBJ3aNWDGq#e=fzTAQp)J)@ zO=?d^%YThJw4gJIcBgp>xfB! z%)t98MAMyo0Y)v*I`Gec&mQXf#+DX*0)TRwlK9E+>l+$)@7(E>8vH>;|B2xIUiMH! zV`Fl*KWArxJd;5@!9iAb_KU{Vc*0Q8#fQ3+d3p2_hcIG7lr##;Hf6;7r_}&^NV~_! z(V$THhd=&Y!j2E!aD-+u3&hAkkY!aBuLPHuon6$Ly@*xv{6)>3@BVGB82r}tat++% zM{jtQ#yF!b-p(#*_=p%?_iz$c8<%7t`bk$MfL z2wz{mG7G8_;Fx}V+^49os2U#HNPx`xf~M^}%dmksc?tT%gM*ig4+=DVd`=fyeK@hM zCiv0|8e;=+;}$dB*N00x3yv5Ka)WEl&ynEUR3g_WMCBhlRJXl+_Xmfgkg!}nZ6djR3bcb_I(QMyw_vOAllK{-JB4!Fmw%6~#6o9n zxyv>F#w|MN&nU#-1F9fJ(V`7hNCynO0gF_}VNE0=w;P2TK)kH9vTmH~@3#f}_{_|R zi9XVvaT)LP45tpa9%#zJ58}S^3C|Xr>~Dpou`3Y;p|1Bo9h&kr1B!P^fWYe zbNekMSi28QUz+rq7%F`>;OQ}nfCoftI^~#nye(FJ>E-SHb^n(PLkG6@tftH;+81^O z7^PwM741YwZCpsL!UE4m>su{PzGh`^ia7Jj`?Ht>Eu2eL+duAbpMh2qXfyy6HAr<% zt8}=$&VN|#^p=-%IyUeOy1YNa78e5vPu+~;jCrh$;g`pfg*jG4Y; z_7uz{fzl-5wlpuN&&L*Tt4<0I7PZs^+WxYVWw3>6lEzu~S{}Oly_MJMWV&q>n+|3> z*$ShI6Z+ z_2$i;g?mL>=k3HaC~rBAQ)IaOfHOr}?Yd-FWx z)iiSR<@8&|Drt@zC2H^p)5N9m6R+j((mRC?B**n0Du#ENo5V-(3y8*jYVj6cRI?;B zmgeDnJ#I`IfyyfcJ&~a_&YO(xEZ_X2SRHcV2rYO$TRpGnBmHayn#9hLrB!K{Nld= z5Ij(vBYe5)&s4Phz@)GLh##|5N|sYYRnY|gDo`n;767peGwe!;iMhE7J0l3t4py*7 z+>DM71IP=~L9#HPsMynyz;(g%dPQU}tFIGB^=)kh85rXaqe-7cg~5OQ_D%iXB(f>V z*r_OHAX&sCI_Y_3sgR-N1fc3s{>r7}26K5`uZFq#JE!V*8){57owTFWnaLez6*G0Z z2L}g*Q%#lVADEU!vuE#cojdV}8V!>aU3^o?!)_V;y+7$W|JvgH`9^k42svToo4XNk zU40?<-El;{U$J&|Pie7R|4$f+SC@?_UZp%4-@YU0!+ytsn=zco>r3?#2OcCxz5iv* z+xS5J(fa?SmBhC)E)_YORMW-yZt?QbNd;!yVPRJugVWqve6l5v|DhkKrXVG}sTK0g zp9DJncLd6_-W89WYgJh0T75r#P%`L(%6kC_JBv6` z*Ha(gf$6t+^Nnbb_Rx9?-{HUh95hLDC$iwtdTNq+Ie_Z$iZ`lRHh4eg+_;;z4$LoD z^m0Cm6Z^j8RjoSXyGmTR3SDrO=+$Eg!v1eT$CaA4{m;T--!U%acbJ#}NBjj?C9mDS zs_N=et@2?Igxt%HtNadXS9(c*&-H;+gi5K$#7!VD)JwtUu+ZeTx|$%pac%j(ZpzH^ zlCG6Vo@QU2@i$SM|GBSo7N3mfp690YcW=yVr?En7rzf>Ck(ZT$`X1lol{|k{R z4~1rV__j78145TZADBwD3<};1R7&wqi@k6yrhIJp_du= zlQ&N{nC1~_N#?>GJ-|}uLfq|0u-h3skMi!t#dkV^s_C=!CLzjIZ zzNUH)BY3oWAn{}0yOjYKei@vQkK2&wSBgK6Ub=n-lBq2p!g!mT&W!=Kwz#yNas?gC zVy(^-*JNk*KZqOE!exJW-_!r$2`DeF6Grh2!d?*g<-AhlAQki4W8!OE63`pK84bI{ zf2k}gr8P8D1P)fp(j*VSGU()V3BCibO>%|1ORzR9b8b)+?qD0HftRxxRqi?=uUUk= zRmXD(s2tSwn<77J8suuJ3Il}ox#MQXwTj$nN-W+q<)erat@6^?|N2ZQX{3Sa7D>(Fi+ti_H2k z>*$)8n)-;)N|bz|J4JM6f>5cD^lsuVv6TIMwB(B=%W7hYZ=H0f?x04XCB*5M0XwSo zTL^Z4kFDo{2A6pr_-##;b%7NZMAWdH;4uQ<3*gVzH~Yx00*+{oX!zIv79{8vMjisW z20s8`Qo(wQTujk;aW;#xh*aStM;WUG z9N&AgCk|R?Wjfe`kq6_^@swNC9>1V4hARcz^M8~SU0s8E!jAVLS*l-1`^TM@oU6k5 z-Yr|MLhf2qj_jw^lqclfH@>?(cz`J}^-7oHn<6&+0JH;S><{*NY#%7AUuIjbc|=*^{}>oHNJU6@NlHaNhItnaAJL;B?zkebFY>!n=!2sZHu%J(o4 zXyWdfv;yF8r@eo&Cu-=3(1vik}rZLbt~@jCZeu#lr=qrb!zG$Fn~Zh!9h&m|<@ z+uKJMg@6kCE4<-HM@OLOd+?3jPoF6XFhAY_#+i?=FZXO(rq*FN2*X_z3UO-z!W+Q( z@&pQN+zTYZOuT-3ZyL12UCX%GFU}|o)0C}2IJef$Rynq~NVNL*p!E=P zAnN`^BNKlV4+gc2^~Tc_Gm$CCS~&>4V*4q-?#T3~j^`?8#*z0f?$@<77V)W~m5*s} z^#W3Ow1wVpiTY%P13D|-XJHGpLG&G>17jJkAs}X8}%5}6m4TTNIzXLx&4_vr0 zug!+8lEfX&{Og5AYJ8R_@wF&zq#Z)XM=^+ zm~lM8xdBHBYkJWej_6RC5V|RF_@?~U;P~{Rd-vqm$w{Y#+UcShUta_Mg7`p^!a2gK zxw<;RO8TO)r10g>38Ar&jvdsZTtP_ka8eS9 zo=XhU7qA<>>#31D(eSM_7>Lcz@he%V)8BBCDTsP(#3p^Y+wwR))FkieYS{6 zrQv4T!%w-!Qxg$Ysbk#`m2DnMRO)Z}{Pe1RZUu=r&Lm!+OnkqInHi#g4R|r2O+Z&f zL@$ABf)=9`k$Yw1y#cozqK>e8QghtkEv3sAeBhOakHHyT*V1C7jJ^lIEB~J226B{R zj8@C)^IaK}kR1VFN7jXv5j887&LP=JcOnm_N9C-u;h_81+kW5D;$oPKsLom?zJJ1M0s1pa(b~qJ#|Gj9W%tHv> z(RT;mj`tn}j{!5a@@nFV%&J2cMM5v6asbl~JVn1IL{8q1x&;gxXoJxOfz{l_Ce-9y z^#E19h>MpYqu%|EwbY%26-f5rB|rP_vOn0cfu3 zik$lS=lAc#jsJA(Xca(?dPa~d%+AlV;9Pf-P?4Nhs#?xJ&Q)Sr`cCu1^!0G$YTuV* zxBO-Dt?$cWd86%nV&qs1&ma!zr;)C%r*@6DVr8}}+x3W#;Kb12gG4f3VhGRBu6z8Y zSo0afE?BBRR?OD2k*A*76q0Gr>|I>gn~e}G_PHZ{;ROb%<^!5d8VTqT{Bbvb zW*pe*v8ksoI3MosTg4GRbfWXovf#dUYpTxT$LwAO(kDp(5(Dpviu!>rhi?wZfg*qm zq>Qga(uzRVJD4*<80mB`n`aQoabWqSkSq~}f=)-|60{x_pWJ$%TT^8|F*PmSGW`j2 zO9<)2!c~GTEW(P8KYxxbu`>&mpiday9CzaLW1fdxY}u$7WEn?v^Wl}NN#klGUpwZ< zqDZj@@GBDu1xkn2sF2#}c@_+fh%@&AI^bS5mOh%1!iS3X_S;e#=lcDYKR_HD-U`{$ zB&7vCy_!-1zj%Z`l$Q1yb6oK;T8@o#R)!_KipMYBq*_s{DX@?-1|+Gnv9qyVC6DCC zlD9jtqv@*ym{$7-^qzZ0)Toy^9~qgGn6VOA7nzhve+Q;~hd2Gd0$Lb805&$D#_pn{ z3#PcM=}c6LjFcbBgE{k9WC?|o(3Mzk2%WeTXrTS0nkxUC&Jz+Vat*4ZDZD}YZ;)IF zAN%2F@!i^s8`SbGDD13I{kmswDw<;1?9M2Z-ZRc&uVSohocPCm`O6~61agL0O1_u9 zs|EHh*-y08#%I#>^}`crMZt-BX%N+rXbNUFn4RA9^P{C8R`=E14?nq(Gs%j(zFBWZaULcN zl>ssoPhne=Muf*MCT8&S>j96(49HgLYDo#JbNrQQ;MMPrNpDa=%g z!yY?xC|}xV?FUX9O&oa)EbHy@Q8M?PVuCIPOFf=&!0GpXX6o_Q7@0#b*DhKJ(@(!l zmOwVbuj>y+_&d z8&=ZG6L)oB?m9cV2$X{)ly?9$GTCXH8L0Re=&e7-?dsBP zkA9t`$#0*Cz|bGbpp`&3%dd5l4RU>TA|g=5ts~p%^d=9 za-k3LM4s^?Tf@uGdnjLff^lfF5=)0Zp3r-d%AQ z{4r`e+{}-<&SFAck^!17*!GJLh^lvTizF#^xOhG-BJgkDm6Sxb z;OB+6)8dM{@9ziIifm9QjbDB7C?Gb~@+jna&`=VymTyfz*q@--X7yMI#!&VDrNkb>#jErT=-n6g?l-BTO zs{VNOLMbck76jd|1li`vyAxPdF#d}3`c|d?aeurL$I(EbwokxxnQv*!zIEDN%^DMSL(m3qYy$q%)IT8$ zuxdvU@h~w4fxf;^$MEGlaO8H@)!Eh;IUCEcMO+riShoe=Rd`D~3rV|fPz+*SVg}B( zAH14fx;bau(O9BOm|awdjGh$BLujWp>ld?%saft~ETd79xniWXVxE_l0weN;2$Wm> zH?=B*enB9y!7Q(H3u*)iin@E3y{Y?LCwv_d-hve}lFM<@nq!e{M7T#+?k2YrKiTT%RI(QANs=`sXjP#gY z02B#Ws3*j&G^B6NM++7rl1&D71NQuH*0{WMWMgtLEjv{8%msVvGnEZq5@q|sA zKcP!_P{+#0Z!f`c4s(y%cszk9e*QK6fLo4Noo?N!X`a|Vt9;&lyd=oA)jV27;u#nB zV@0-BXY)d0d)1Q}?tRBg#&U!7Oe+^`)wX}NN<^ewXhbB86C9uZ0)X=1ZN&(sRls6> znC4X16Z@XT2|$IC;Yg(q>T1v4B61tOUx%0ahb3ne^Mc6;U1h~sv8#6XZqw1$&v&v| zszinN%-t6p_%nb9-r7oXMDZ}FxL?)jCc`@_De^o^bNT&;7DnJDSn+Ya=j-%WKwT>T zYVaXjwMpr@)i1XJSrd>Tam!P_PDyg~F?hknEUrJh$EP7ucT44(6HlgA#OrLQCCr}) zQb057@U@R+_`XAPlTNXw0mq^Q zPC{0JQb%1X7^gMEW*_Uja7FgIfIPXLvS!DoYV~c&u9n*m zORr0jAoM>&P0h!20TpPnNg&$9wgtxp*&>>ZjpS6t^aa7=LvWFr27}R^x(o7`{rh zq%s(BgUDqHbr%z0mn4>ZjzO}_7S(7YRC$V#Whf6cBTK(_fUA zaOmWp)e`WZ?#o=Cq&(Pv&2S>3<%DlYcO(9!xI(4S(6BVC>De=fYCK~O@A}Atd?h7{ zKqC@~q*FqjO^URaAHW1PP0o-k>39`9-yF0fYM=nz`Ofh*H{WEwoi7 zMm73IKsLiILwOsTA#3+EX-qvhoC#-a|H)Og8ooPL-cdt|DVINAdV$5BC5yghNj!fQ zgq1HRHKE|?PJ%U;SxxKBP;utyO4)e$9Qr9wdX}bg9ZLG%kwt%#H?haXDp8^Yx=P<1r?L=I) zRuRQ%0q`5V6p&PUs6e^G!ISD!f#Ffd7@73$$^QN0bX3hmLwC_-q{%a3veL-&<>L~* zg*WNd&K*@yoIqV4`1oT`2TBLqcTb+I{Lp#6CZp7%hOn72r30eI|V!!tGV!qt77XFPaPgui=U8s8qZqc1-ECcf z=;SoaSl0S-t`1t-7evGEL?N)f+i(1hCd?L=$`LN5GUm|{1?R=&Jrq5(zQZlIY;AEA znXYQw4aU`|nZ?s`3{=?Qv+`lsG^OtYm4I2AxMyad2B(HT4Z&9t-gEAGF#mJEVTPh# z>i_rQF{SW0Mfgw6&8e-(NJtn>Cx{ghA?B)L_9iYM4+mRdvrTM&hPU4 z+FG3`r~OU#=H-aXUy_rlim4^jsLoKp|9tJck54DuTG<{J7Of`_xdX57 zna?}$Axq`gAWrOVi}EVMeC|OH%FcQ3zwNj}5HOtqSqkrq&`{aO6VNRE&(eFa=xs$6 zeO*=t8UY?4=y5}+fJq_U4x3Mt%YW(K2EymRx#{F87HhB=byMuRE`1+_0lwl@cg0XsAX z{EP{6qIyK1z8^UZa;Z9W3Et>fp(3a@DN6k07ReJG3Qj6Fx7@b`|SK-Rk3 zt!1Q0cy~BDS)TDXjT-GoY?$^^Z!bYnWv3+m(#K~S-Cv@Qvw&+osW=}%mJC6>knFVOcr?@2!- z7#Y{}bPvh|UOpbNd!u->aIfJm%yfMfdsmh`1eg9e(YF2_TK=VaAuTqRNVuug@Egf%*?Z zD!PjE9$vEr05teievg!ta7*#C#;F!P@$LAu8+WbsB6X9#Fyj^bkev6$otmEce%78z6Ro6?@=f7?@cYmLnJ0n1C61~%(wRfAJ`?@{-TkuUk(Pa&^+ZakSsB7{}WN+f{70f<^by z`$8ac%)d&9ISXVQnF%}hf}mk~P0(HO@wMQ?f~iu_d+^d#u6askYK@JLrw@2!+y@i_ zGTZXKZ;n+bWNkwz2uI3!uUPz0sbJzj3zfa)1g1-Sf+it%?rt50L}Sxzbmbb1zm>Q^ z8p*|rN!8kbAW6B|>xs%}^gKEJ1q656D^*xIDXAyttMiJAoLMLs??V_Dc3K&eFna6` z0A1hrk+nSby^C?G5VRP%IVUd8W@HSciO95MP!w#$pML%vAj38+qgG7CpZ1d4oa>hq-C}j?;dh?;#zITmtuA{%dLH1LCQUfJ|U0sYWPJcL> z!WPcpc9I7@?I{Mvf%f*VRBJEUyciYCwG`DzAN=9SG3Z^UQiI9%l)3{c>|sy8&R}FSAn0NX4_DWMns#s=Z* z4ZFj`@qOL~!9dh9?8Y&BAlVjvTaz8pcm=oo#iWP1x%rTDW3%o#m9xb%&G#l|dfr^w zLS3dL4TDku{fy-J!*Nd0@CTv}st(WB+okTf=_=_U@o=Tr^crw|Tf8f=MAp&tS2!(= zT$K>wzdyJU3JN9s7SS`u^@5!{mi64-WCyD~Aq?&E>(>oMKP=U>$z&<`_nIhZrPdDM z&tg_=XoNm1vhKDp%%-FVJH12Sq-LhVT)N>i)YK-hwyZMdM$YaMlb6G?=f=UhbrNJl^8T!EAbvp z_QFD+egic>gFMUez=CjsmMq5C<0CxdA?+mp#e2AuAE$aL(?A^E?Ck7#QyOGMK%v%Z zo+NVm3Mc_6PN3E7m0>HY=guNJlK*36{eK4-tp4u=gMYCn)v%-mo1W%`L~N+{R^E9bg;(8M^BZw;3l>no#=ksY54T|1FG(AV9n^#{G(_*?dUik zu<-e_#6=R~fyTAg|1D=kR{0rugD@_Rx?cja-HxU z&NVqfhDl(*^A|ycdPbB=jm;2z8m0q<4i}4SYQ{c(Baeirfzg#1xb*t-z}3!_KZL83 zO56Zix^Hjq_-IURKpcsbxb`Q&-vfFEsws7Kr+|Q2?`J(99+5SJa@e}#i5uJu06=)( z^Wf76%=JPJ@}7u@iZYVLz~2X(j&Y3MRVdHYkQ*49|CZ{}_4WaTU^?-|fh0uhU{VpBUlApM9b#!ms*gOeErcYJ? zdG6CGsLOt_c_x#UAhiD9J$+GSa=uVl{#fi|I|e@&=oMiO=SG(@0Id3k^IxvRj;haI zOdkBR>L_ZMzW;zf$dq?r1&YwFAXPa2nEaoGeKAGK$YvxpxV)33x~+|s zX{L82wrQx6S-JDal9Q4^P6>RL(0Q8`AWxs1D(Lio2S{RMRf?O|h0*wG2%%gTCX?Jfwt9wpPF^$B; z8aJ+Lx;J!M%u?}Bq>^6iI2*FISyCw)F8xa9jnKP9q9V+=e#Zd5WkR0nGQ$~=z#D=b z>B-=_VX=(H)f*y!B3lW7{tqe`bvZQ@uZIH+lpgfJTc1GLcD)p*_3bYkWg2*Y38<|H zb%4$Sb^~M1Zy*L3WGdebxhYFaO1ca1pyCd$L+YpCeGVzn$7szl?HBI=<(^&*YRUR~ zKM0A!P^h39cyRxv4*{=NiN?w+S+55b-cB${lyP3DAjEd~$-p`{zU?9h#V#%<6h?c; z+{f$P8kVGP@ zs-IVZjwLYAct(OJ(|%Uc_Bn8o`{a^vp1Y$T4y&^qCw~|S(l<3k{g%A&NYt=foVL$M zZBBg2NS{eeol$KrIw4;07y7n^>E!4gR1uXhbzR{~JA3_jl9KT({(mV~jBih1uFNYg z5Kot+o;CwxV`XAzah8_X0HgspG_OtW4x250>5-Z)zd72d#va`bPqFZb7(wxi!~hZx z0nL%}GtnBtfdp}LH!lu-LCLzO_D0E_84w<$dHuKoYGN7Y-0#kg7Lq+0Mju88=6|o2 zKZKM4fd1tCNtikMx5f{Q)7}!~0zTW}X_O7@VpP3ppby{Z{|d1urddw<7xJFeZvy!v zq8zz$A6Nj22Vi37yU)qYTs&L#?&E}`_?fa`GyK1`b)ZHz9*E_v^PtSKdBH|Pz*U$R zh5}`sMW~hM==bm6;gDMD*XO}IqnJZZwYKF*gHC1;E+rjVOn^DwW5$F&&~spvnFzR< zDS#<&)EP$b#FH#?a%LuqN4tf%VPotx6_4d%UO|B>pD|HJ@7a>C4ceRy_4Lb*=KXk7 z8>!_6l^zSVsJuMKz!pB=g|j>nBRhCJ+71#`C0O|mnvhjGMS7I5E|fkc5GF1YVudqG z=`sAhOjqKN{dd4`lVnZV_gdf{ehWnAJuMhOgi^<-I40e<3f1@u*^O(6VuoX}ucq1h zCOKNB8IU6NRTvMMj#wd-kYF;#HuKt6AyF}Uw9)8T@1A%;-;kU98M48LmSW6h4{hl7 z^We$g8Vjr_ZvTAr^EaS}pc+uu#i9}LYgBu>pY1rStQYt=QhtUh?r3t+;Pj{R4uN!n z5H=|dZ=VACsD7NY0ayM7??uDdH*EZ@6whRL-SI)=L2S0gEzfnabQNNb?e< z&KCIy%pe)u5l3-)!`u&Ee4Rn@th}3Pb+hIKK%Z_Wx29x@!l0=&-X22=OZ_=hsXXiV zKZweWhOA`@$3ZpG=+$#SqUeJSOjT8rEPUQTeng$|BkJzy2cB&!-kcm9^IoTuXJ0hQ ztd%}$sLwxtH!rRw)%N9hS5j`DJ76i#JaB-{i zRU24@p0_(zifTS(_l&RI73kqtoS_ZQ`3+-HP{T!?uR#pMP1Yp_quGbuslNz@Q8P_| z4lLdl89Az z;7n$2e&vUuJp2~L+^SU2r^`NU5FTmpyqt+QQjl>ZB2!1&58)P2)#~c%HtbO&NbPc9 z;snqtbxsh*)La@h?*)R3LDz=(Y7Z<5UAaddI4(=GCZYMlsmsMlljXDOpz7H`x&Z8n znIiAX9)wvV)mMOSkwo;_2ps(UDW z!nss0_PrnJ$Zmj2PH&h#tdHg8I()uhy?5afg6>?U5sjaw^myP1xY7fPXL zfXh4m8J(Z3lNe8zACabsO}CZGFU-lo`Ac_Pa>P9-WTfW1a#)x43iM=vA_WcSVqJ05@|of5|iJ z`H1(k#@tN?Jn8g2rZQqh)k}}puH#I*!}{$$fkvGXzj6w3n_pNMz)^`pj{&!9!klTv z{wf0ItYYvNC8wm6HW@tMgIVL2+J!V|mFOAkn#*3C4MX>v@xRnUrbx_=4kUVOzaV)F z+VT1{e%fkR3Gg3~T50pcq%4EEB*Nh>@>B&nvj?0Y?6to;0YaSNzZgg33Zqcs?ZmZn z>7@i~&o3&|0LD_)x*F?#Hd`j9VzbRB=!~7>%_SrL@w(Y#@dJ>ut5rySM6>gAa=1EA z;JX-PuYH7UzDzHWQk-yxCrq+5pg-N1|4~OSR?Le#@%UN_U3{Xu8nON0EpWW@QT{f) z*7xa?SnQp1alJ4F%nU3=khx2_;#jA`c_)=xrBr5*GS1X_0OcF}<}!>BD218KjEDDp z_X9W<&?|`p>%7+n8xqmjHJx5K49GFZVUKlvzrilhE0=ty z79AcEVF;$#?jUfJ-kO3gm7zJVLDiJG5qP-RkBE!=rKs~!5ErRBy~z>6{PvINgGxhFVHKIWVz8- z?@qq=#i`o%mz7FYPks%JY9Qwz5!DfsdvU$sE%96lYH6U6crtWIiU8f(A-nK6`r@pC zVL5bra^uAh@qQa*XWBg8895*_wXYjSF83fvLDA3o7Cm4dcK^z6i* zr2}2=9JZIrDPYm%{BWPF?LpSEQ5M<$9O>`_}!M zEa6O1YcrKz80?jN<;gPdqn@ntEta0f%3FD@ZU%?hQtHW{DGkn&J+a~XN*c4UA%zB$ zS$=z6&!k1qZ?cE5bD3UgzAm~~QleI*RCJ|bY~BiFEs`|U!z&Ml{NS9z2v%OMN9J6N z`o{W&lkPlx~*wY;MkDN)51nb z8QL{yJ9nE}4?KY;ySHnr6Wr)qFev>eyp&HyjEchs-Kfnasxg}?E6EH)iQ&Uzn&=~x zCSt>7FzfOHH6r%IAF}v~z^H(B{u~OH*}-)5*H{sRdgBwc6zyC!YSP8DI8XM_HO0Ja z#%(kbU4VK#p;2RLx>f^e&ounMVavgF4N(sYMtE=1JHcj;XhZBb`^A~>dr;^bR_NCI z*og=U#=zd=`S-O1{*|fb;dXx97_6W`3!j?4U>M$OBA)jp?H>S(2RyKz_(Y??Vh@Xs zHr%~#_sgW#@1~~g#xd>GvsXFe*+`7KUC}U&MtxP%3JM6=5!5gt&B57AwmXW~D&C(d zW(VFphF4`SIOpsGzuGsaR$5IR#)|Dl>-K{|@+hPj<^)E9&2@E3q1!T*;F8P!wt9)# zgT`0r3=JNn=&@3bHN#wmdmOP$#wKtDqji*#~gP zhC2mqCjbvK|cmkg0h^X|kJw^k+ZAS>(=*Iiyc-g_LQszQ;=qt2t*13)%lc-NiO4R?SlhrDq-x)y-Gjv z7R3A7{JJ@fw+V8Njykh!Sggux35xQ8^@yu8j@&B#o9#w6lee`6BigutHlf^DL;Myi z>0YM?4L&YwafjX1hLtBh#kCyQshdJ(M*JUE)49zuoO1~N2ok3c#uJtDn+9$j9EZh0 ziK67;WS+%K`klCtb0sGExH>jYX-@7{2pAEUttmpyt)FHKCYzVs*hucMqmTBtH!_yY zUQADZ99b-6n#f2eGa88P0_01&Kx`1lA zqT1&7p6UJ!_(SYCEV#!AHb|o^$`NEF0$W2ct4!(a#N27LLfeV2vvYES*mwi48Vye7 zjFs)qD_(1&x0cO)=uEF_reVl@$AGu$DMgN-D0?2RKxHfNLE)I(@SMh;kBvA1V7HXq`g*n8(ZMn z^x4KERgnc~hm(&8MQOSA(*=-fU%Y;IUOp+hFj&_7TCyK*bdSRNi$7;sckV;{Zl)vu z+L4TrFWx)#ET>Wa$?{XU!*0~5pXI6nHpqPYk+5jusG&!GYbR!F%P7N&X@_&2B4x$S zP-ImI=I6eZ^wMb7RJRyVVC) z$ixj{iiB+6!2Z^ms{-+K!q-vq4Mv4XF|=(VN@zp0G+w$L&+Ppn=f)f~IfiToeZTcK zIJ8P@y|VSQdyU%9=T*^d0=K-+Jrj+3@MFz4aL>i{yxhyBBP!N<$Z8eauM#X+-r+DO$7JXG8a@kZ$LhufU2(@scjBt6 zDlHUSL;CraY0vrR+q@^)m4&tvvA2fB^=iDt%>A}A}}So_{1Vw+{C%6Xk93kTCO_Rw9jq$3I)od$P)vjxkf#IqAA z7(^)eWmm^Dki}?yS%I{ODG|({0^N(gIGfo#oEd&5JVKK226g%l%X0G#4~u@f89I?KE_>vl4ePdpauOd(fS`w|j+e zh@SMX?ee+i({zq^MH5t-z5e#L~=`$sovRb(IS_ z4L{H~T|WT5<|_kXXJ6(3cQ9LNIA5gnHIYD`{fg8W6Q3IC$vC>H4e!7(55^b>4;B^ikl5$mUJW4ojnoFs$wYzdxs-v+msnoUzkaR7kAl@P zfah48je^6eV7FUZx(>5@euiPeZ`XWhVj%+F-Tf>-T=*3PQu<#52}@OA-YbFo?Ao_o>OmRqm{YafVB%V0yhv4+k&BQ~kO2q{@bGl0EQYYj%M7xo4E9ewFo8r>f1Apl_Yh(74%*4lE33+ygvv7h z8=58h;kq!qFeo=7gnt>bgGA7~!!!5OrE$qR?5MA>E;pYyhKnRd1v2MxzBDX(UPuc! zxEYUz^fDlgE13w18=IP%BJ&AAKRyR#q(iQX=Eaz$gePt}Qvf9H=;(-0EYWv`*5~Bp z1f=m`r-NxZTQYQEPo6x1W-iR1mktCg5gHN6kX)lAx(CKZH@CAPVkOz*xoF285Um38 zk){mtMy*c4ND`7#2wdWH3Z-DC@*xp|!csH7K^aDk)1VA^x?s_^N253<+f9}um48s0qKMa7fgsarf;<)~ zAvyxRx9mW%=(F#-2S1=ZE3Ce@dvH1zy1k$jK+nSmInS+X6_*SCc%W^85r{K~CQj9M zrVSAfQzihK<>#%FgUf&=6c z`7@v^d5AM>OPa39yVrO(dfBu00+0bZf@&0v*|FoiPUNuyi`(W`oeFkbp5V}G<^@26MT1gn*hmj!MFPVsV zW?|L68+v*`G7XRnD1Xt}xw7`0UT_1CcCm{$)U1<>B>R$$dX`waxc@a6B0$u(VAl6p zuNvS`{&|M^WS&atKurJqD-Z(aFD`o<;R<97)e&p!-MEp)dl!Tyi#SW5eqC&o1r59H zAEJx1bq-8%s@0!x+U_>SU)j*)1^7l?+4&K{$xB+)87BslypIUo+}#^wnp@y{(lD2! zByWJ182d&2E3iyJ8M6~u>5NCdN8Ya?oW@GMFW7)*Fk>78lSD3_Iw7Q8!Lw9&jvlXg zFG%v`>ckcd%#ZPV^I&rY;UMUFFDCyM{6V0mSkRn+>6orAYhg>q$mSyD7W|Q-?VbGj zWA;}9e)}8TXW4BCQMmX16=5lOw|Y92AD%f-A0*|OPES#1hL~;)3(VoT+T9Hi;z+Rp zN<*+Oq)dT2KdeS00QYtb)QKfKd!nY_8NraHt#v(1jEzLb9mufVqT(R z6V`Rf88NBdNj@ug?At87169S@hczEL2z;_1KD(u#%i2a@Xu^~BFs%lt5Az;h;WDj^ zUl2fK$$;jCR-5Fu1vjXW#vfnvL6;8ee{X;8J}YKhan(W{5AT1T>a_x7-~+jS#x5K989 z)xf&AH!%~xK0UZrtrmVxN(=-`+8bN&LBeWAy12T!8b(*=sEKS~TkT|YfVmm|MPNA{ ztTy1!9g{b94|d1prPU{$N!_DfWF?F!kb9;oO<;zgZ<%slNJb9Z&T5hD`?qm%x%|1% zlFv8A$v6`c3L8sD`&n;&7{A@Q^Yd#~kjQJPLDMO(e1P+|St^OPRx3QYpfQGKy=ZO^ zK==GH@aX4LX9bF4Ro`di)fG8F(%I6n2H)jtbI0h?-#@(v>8mmg$ivr;zK?&X_)qQ_ z#=*(CjsJ50jEnr;7Z&009@M27-)1Yo4Pu|PJe0V)b#e-7@{zjrf6i^vNSLENCdBXU zi=S!nKYO5hxJh0?q>JL?cSHl7m6b#5MG!b+-}0~6t%tRP z_=i^E5!l~Easd~Ghn)|Zjz)kAM9e`M0x94NgKZb;Pu@4~0tC-ifE+x_;8$9_&!D#Z z;lr6t8>ssPXI$!0*kvp)7o_D@MYnXI@VS!N<@w|7|Jj4z5}jSSf0p_)%mBb=1J*5| z)_MxwYzgsrm`WGk(KSnUA%nLM8WDL8{&-pCy%Z3{DboP{1UzTn(U3fah__#>jZrCq zHDI=(|1+J;ZXOq}tba>6KqUTx(5bWTBm~GuSZtbRS^MFa!#N!Ai^H1k_q~4ZCW-Q1=+q1E|b?Dl%5Q+KSp8_%aR_-4@d?b_`yqJS#Z9pFFVrdF8%#PaNO<}ArBMnEH!LqLwKX^Q3A9<%1%I^u^m?c( zRE!xC5oIVl0{0nZC;!FSD<>lV33y>e@7}laOdG$|Qq*@zsOdSdaDjpd>*lZ*=~7u| zS|W$@bxlnK&J*6xw9|V9#U}&uo+#@pXE~YFP3_+Qw2FICV4yJ;iXZbVs0-fJSlpFGM4X z6ha$r=IaM{oJB`>+v?Nz8L$Tf$D_NR(#*nQMuJi?!~AmDf+)@Ypr?8gFEZ5|p>Xhp zO-3dW9+b9)7b4+w5yJSK~Y z-K3aX0zyM8X50h|YY`*45>I!|LB7O4J%&W+C5u0aWsQAA|Aa|O_d#=wdIqD??gwBv zV|AJ>?tp!sP6)@Y07;~pU6YEAqiteP>Lq}F^UwJUlLfM>Y5DXeO$J?K^y+@{ zA6#}5+tkRtf?xF`eW;8U5+8{ZW!k#X2(qnao0s=ip8xz$_`9mn`FUEK-`=~hMU5}} z_?E;CZC*OHHmfWriEdlzH1SXBY&sKZab<979X=FcPijAY_z*3nqpJ&Q zw+2d?YG4zT)J|%p(~}U0-Hdw1CgZCVe3C&ra{BvT>22e7XNs&U%sVie(k1jcySP-o zqh^;Qhzf)NI5?^y3ReHy*Kgl|Z`F*U0T`SLv3UjC`aTwmN8G?7i7^NMtmm|(uzXbY z`Gmg2UM&=Ti+uZYyT+yP2*b+R|8ycl5m6mlA_2xNG~IL}b40DrUcUT$CYAUF%C^C= zTZ3pI`xR4g3@t({P&o_teX@L&kUr1uG;Z4tXjJC-0pK_aVuTOYiD z-rNFmlDPfBBPU)jP65^GH{m96O@B1sIEn)=tkOeqHL!R>q@D6Cm?L1Pp;nlA#lH6< z_~+hKk0cFF{IfHsu`Bx(=O`~Qqx>UkjX=PBfM@Zn(I7wLB+y^8JjkY8VPBMW0meY8e{h|W#pPvW27?U$VKLHr zz~{`(J&)0e5rtZPW_ejbTpazz<>>;fss)rt<4xgJ(l7APM~f0v^>kfM^{=BLYtg ze|-ZJg1X4Z-Q6j667wv$AP|nw8Fc&(meqS2n4$Qz6(hkIQVxz3jbI(r-@O)4?t$K> zem1l*b=oWHpDx3hd>Z%V`;YqgxFHtweIUC4R=Y%p?TU>p(Z=NzBjHJ9OJ9_&~`CgZA*a5N6Mm5eCebd;%&X8LE4t(b40OEdsQxWX_# zG5hH$#5>DeiqtHiy^@%isGkQ3Zvr>8DG_+bj+j)155^1x?_m&RqWK`wd830ksv9(= zy=arNxH8!`Cn*RHcl!48H@v@{eONd+Vr$S_UteF?wrPk9hN=dNK0tUdPMjqaJZTV{l6XD*Dbe*RH&&JxeUp`lco?l* zyZ;eCdb2>NmO+$mcZ?zlGTrM8cF~1>4dg6T=1^{T(aG zyybs@M!>V)jUiu+G!i6yaMHGN2sI%y;nRgT)6*B?(T6Y3L?t@9h1*+Oa&mHT#tk)N zU%Yss#D(J}_Sy)SDOF^E5En%c=boyU9t#_rDtisq9hPi?1}nZYF9`pD@t~Ce_hW;> zf&w$e8Y08k87U_e-%wxQ-MOJCxw*=As#+>C1sm#WsABoNCux2>=2`CxNKEbxJtQe>e+xQiu%>~v@q;<) z(dp?ax;uv~hD3|-`ZA$G02h6H|1Qj7W?A{h9|(*^m284?q(kw|!UCl4J#mB8Xr$-4 z@4sPFf=0l4n+d4_fn1MZ|FUzNXmSwp3t+Fh>rcy21A;##ziAft2KyKDFIQ_trW2|&G43J zqQ*V?F#hSjY~Ec^Fe+L2D^1{y^+VD^ zCy{;0N;Hq`IpCTrMq#m-&jA{Y6+-jRh$4%4jVT3g!(DakjhuguqPt<5xJ#Gn#oJ*rcDPxG3dfqB#Cw6xS2k~?#RpGh@N(u z25R4VQKcTbI06i776f;avg2Deb7g;=4797N$iVgYJq>@AdSMYbK-6bKsj}hX2k?>* znLnrA_>fAF_h5&kqXj^&3;XlQRiVA?L|bS26@&luE1o@|U!jcwW)bfUfE`<89#81$ z>6OZ&=wk{B?81y@nt%kES_WOpS$ejv1PFXaiXu|qc=QhpAn#I==Y7xgoH#w%9{LJ) zo||rZqS^BI|0vKVU6ug8cpzno}Lh0Gt-GIDb3H)SU zpFm6jI%Xubb5M{Jh^y6O)C4nCoI#QSlHrhS5ZwXHnX3*iA{j z#rr6@Ck&(ASsOUW*bL*x>EET}z>XH?Kx=oBlG#f%Rn_VSCyFWk%!U$Kd9#tyb|MV@ zK=aL*j!>i&N}P4~5zp=I(81#X88f(qL07%H0p@6q2NVuB`7xFc36#(DH$;=%@SC*C zP;rQ{)L(DD2fIRp6JS?{bRgo}KLRneZW&mWLvwFJ6sY1OKL^8DimINJ-In^XC=*IN zS!Cc3-VF53Fzy0@4@)OrkL(5u0w#XEZ}Pd=sNloSP>0|-Yp|@lp*xr($9thpfmoen zs_|!)lKUWnX&+oaGAiG=GQ?n;BKE1p=bhqnitDlMI>~8j6f6)kl3oT)k!C-L<6mq} zmRvX4QuEBvzwtf+fPAaheS9v-7=Q$vO*wrNut@^zJ0}pwEP)vGDOVq`6G|AuLb_^g zyap|ZIYSY*({(S3^NOW_D$wTmRKfXuBhP+N$K~fY1Ae%p-4Rnf#+19Asc=)1nvX(6 zEYTODKO7W9%3mwT@WG|Rbpu)``&j6gLKKH6avm2BIcnlzvF?wSNUU+2<0B_%2}&SS zkC(lz*h|&INK(_Hi63~9!av9!^h79QAkJla>Y^1>HIn*yL=SzEI`Rh9THF&yFE0@= z!J=Z%8PPlebm=9jGQ|q~2^C)dU(^H43K&<4o(lf|+-W3$~d<-rw%(TBD^H$BPms?Vifsk7k>&p97 zP^Anjc>W5H5ARjmS&DYIR%T;yEsmVr-1-*@Bv(~oSZai%&`AgT2`eXq&E_!qJy5a1W>>Y>k(p@G?-ocwOO5A#&E)%#n zYsvyqpu-PC5wF)IAlIv2Q6D5t((JoI+vDt|X=)uAI{Y=4#?Qxb+>YJ|Bem)NO8A{% zz1isGjQq3_QyvHxRX7;ja1G7hI}S~3!vutGFdF0TxlG51k(TH8JokJ_>oxS~VksA^ zydN4b`B7O$3&kysjG?kxA1e-F1LjVF{o%H}B=Vh~nslw6@@JFvFPkMZ{BBVCOTp?z`Hw;IFsb}z zZ@eXm;L!-~g}kFH$JeCZ_M&Eflgn#Qa|X&;r02FLShCp4TAH#j1TI%yP*u+tH}?v6 zl1NI2X=M|8$qSH5Abqoc)=8F)%Uyut zV!`*I&##h(k=&-G=aVSm&DsuOKik2pq))1UtF18$crDi{^Pku*3~~v{UXfm!_OhBw z?T|_vO87wsGvu>(Q(tcQyN?5sLuSJ2g2cdV+6ru6PG(EUUOE#2m!R*75!EcZNmZW1 zim$0pt4_}&)Vpp59gA9-JecCHXlA}#NgyK|@!4o!8USV%&l^Cs1I{<~`w+f7`nrt1 zb109Mak#sq&Y{w1*fn0Kp?PFeuvwUEh*7P_bdmgAjfSAs3QK0~NyQuXueSyHI$a&2 z?Ux?3lbZqf4$1&n1iFTf^p>}9yrfMG?q^Q=0yvTAFi8akKnoXJS7&}gqGq&@Yig-o z=nuvn#TljZfU(k=3Fj+jXXwHD+=5XaN1NjX5-`oJHL4@jtRst`QSxV(v7dlDlD$W*8`-e=Mh5;<4I4CpG9_!%%_Q!R9>$Si&z?tB-;Dwi?b_I21QZjD~Y3bUEB zX-!)R1#;G;r9luWIB1GU(OUiKI!V? zLY?8_n|@*N;xjo7uNmEPYSVf(JWN*PbF=iYbROnTHWn5<Dd!?6~_&ohiEgk{&^8^GafV4jcQZ(#wA}`7L_f={VcM+uMe{w@Zd$KvvJm~pMP_Wa?jzEAx(-JI-ulQ{FDqny{>CtiHk4ox>z zG6Q(EcQYmSh2lbe9qoLmF(#I#mxpi!B)J-zn+a>|HI_F-rK;l~BkBjF>_poPRXYq{ zx)jF+ZppN}0SJO0HTpS!**D zSi`Gt@4_(V+s_e9%JbjJcQ%_lwG4!e6PJt#7dcJ{p0bk&zbJ8g4et6j+MiV*+o8Jr z4Eo3jrDA}D>`*wh@gf_{5M9yD*c=*9`xWH{B{9;hQ;fb`^VcNxsWt0+`@br&*if9- zn?BVQG%RjWmZC0?SdC)u@n~DY8cJaig9$c}R`SAtfanl5+}G~@XhLl|PkUS(xu3?@ z0*ikqZ}uC%7_c`V)}A-g`_ZMY&PBzT)+KS2-XJhM$pMea!?-VcVtVS|4%A4^?iW+< z9fe?SUBuRY9g}1jQkWgYd$!&lk0cswi4w$pe*f>i(gSO?+z3nj2Y0Lf<5X_oin~k{ zv7bNBqd}RT5WvI-r!0{nY?Vd$Y4UV-tEfgL8x*fpGeYt^Oyn`xPrlBa7Q*BVF@YyH zFAfwo7q%vnRQ*+But5sq;6KRx&SJ9lbmt`3rNRE2#{i-kNAz1=1(6YL8P2}*AG7*a z;5oyWqh+edh;i&)KEpUG1s)e_DI*c&_{Zf7IUD zo9yg_BxJ9Uy(63KRb+1>D?4P9RfKG1%Z!Xd$ljZ*tl#6^=leb9d(Q3r{y67$+^*Zz z`*O+q^?tpc&*x*^N0QSAk?%<33K7vMM9?`ctyxdweuT4H_#?^O3bPahSYcnwGA&g~ z0b7PO8iZa8ZOO$-dvSPgS-88`kiQ+|Y6De;O-3K&J za4BXV{qf@-ARF2Sm04vrj7Lzpk^@;A2bIJLgx7%!;qb)E))xDb`_b|7Pbc3Pr9ag3 z0Mq2Hs%Rp*SLTJGP{Qjfs(gxu$~UI0lfbf}kI^#g>{jhU^$QOt7e*@?12PS6nqL_k zdTbu_LBDTaUMM)H_;-h>^31l`igs1P6O{%Ma%^ex>GwQuzQRaBR8=*uhqL;_TeF)# zrZeoA&V-t}6d4bSdm9MqN$}tBx(t{~fApbfXeh!aF&tHxM5JbLdQbfH7zW%A z5fd{$<9+jB)$S=3V?9n@k7Ll9tU3JE8%yKZRm;SoUWko55g*;%4&;3$>1E>w!qZl% z?+uvKl%=VOR|r~nwNQPm z-(dJZp*`*GixDr*Us)TfJDb=)_bAieA4qO^&*1KTw&GI7)T1R{ny)P8Yqp>H}UO7VfJCn z>E;?Yc>D}S)asgQYuu0{zDZCOnI3Q29^@qSoH?Ld#uubKe{O;~rDdjP66@i*hXzA< zqCCm3jQ-_lN+FPcD9TI~kW66VR>+3$(0VZcGJjJ>>k_3>rTHh5ls!nOc#!D>mt-Pw z7%%RR+Zg%;-A1Hc(7t=oy5~TVfC|7q>Rc#Me;QHJ(sn8kJR|ec4V&GyuEFr)k)J#g zihnrD!hX$GSA1U!IbdyA+DwI z(vft~Q<6crmo(#X6DG2o&XD=KuO&fEhKgf50#(~Qk81#!lJ z7S~0LjGS;OSJ3;gi}@1)K!$whA57~6gUYPfmj_5PRM zlhrjtv3uF>HYZnS(6z504RjN885pS{@7Ywg=XQz=68O3IQ`rg(%_ z>wFqaO!qx$2MJlVYS2Os@qs<6KMLI;0B(c6Xcpi%U@x>kcdHZwlutEVn(~fF_svfl zUyOHu{v=;xwsR{bdw%QwQ_!GCAYy~x09=T*{Kwjw4Qt|K0|S&nQxoumi+W|MeTAS6#lflQT0nGN^FEApW)efEWW;`W=IvSBWa&j^FyD($WPw45*Qk zb5)q^+IK%P6X4^^GZ6_zg2L*!jffHHedphyUp@l`A5@9phTZkBdi+9&7KFPX!JbM$ ze%*DTe&OziJ|d5X5(M}z8-YH$k#ZmTx5CU)e}!ThycruE82-uZm|22X{o&bXm;u6Y z+}=K)lCrD}@&lh^2cX`>y9?3gZ0gtYc?3%tftqg>aut}90j;f21r9GTUhuTAKsEXG z{kv&GokcJxOm;XqThbAFC3v~ro$I|_IwnxU&K^!FN1z|3eNR0hm4y_i@E<%(9-DtY z5t^SLtU`4i04D`RNPQ=0;a!{^@^0oNu|1YSNzH}Ug*v;b7>S$)Fh@c3CeCRO_ae$( zy#D3mvFN<*z$(H!&8G{XQIX2__S?_NNyQOS;#a9OM9+U23}Z_Q)N_&IfF|PX7atEl zKe4ypg1w#X?KgLJ{6Q&PF-STpkeu-LhyG>QF$ym8C*$7{#>7Q7FksKo0bE)Uk;fze z@-n37{tDt_lC_|k#_+?8LPA2V?5_5xYxsUhf^TDO8a2?$fF~BkIMz4l4omq~(0`n4 za!%wlLPZ{I8T0}hm}|Ws{#}`aQzH~+fn88NL3gY?nfV%ej_(Y>HC+)+p9AA>l6J`` zP8+!VkO^t)`~b8gmutmmu&O4L8(z-HD}yE!zzfiNA$mI;5vYs;-QVtu2}!%c8aw57 zF=zzviR}E~L{k)D(&r&u*x9;Q!}Zjlfw1j^{K;2k)(*Q6XrV0K=YN|P>fU_`*~O9< ziuNa0Lronlcc{ZZn0C~{&8rAoV&t|PQxR<%?%`!4#xB-o??0e%{+#>3f+Kkz#BwU6 zvxi-r-~9H0;rWZcrO&rDt=2~bfk_ko#2`s_ta_|gd()v6<5*kA(cZq}xdwX_#=E$= zhg?1cknQ1#Z5>&jQ{sn%)Z}+Q$b00s^yHJ+h+pLt759s>K8tkZ&Hkv_%DrUCkF6u* z-h}EiT0&n`SQw|Kj|~EZmw^I!7$N#3!Rbc;kJ|>Il=Cfn=$_=->^&_OAJgdeGuGeXq$K`>e|FjH3jbxFNN7hvVbZQe{y( zg76N9n0e@A!gTHZ6~JXc(7ilX^_?d0xEe`5{Kpz+=9MYW8xTnVj2M{{5$HOs4rWGm znK#}_1f}romfG4E2qMYBs?$%7S_@7>b=LuZWk9RbLkvCZ5>&VS1vzGw zced%nS8~sU`uYo0ibi2F{Im-hV^HA-P%JscEf5|C*qa8u*_}4{v-|}UK?inthkW&I#dKihot}CMP~Q_d z0F4jz^Z0?=(mZeSKd*v7hbse4>@c6TX>^atp6`7@dV+^qqXM;VEB{oHbdC0VtMCld z1ynk`zar3VAayjj3`?g=+CPD%2G9fF0(X8eF|GY`{;9p8g%w%bZ9eNE?jl)6pfbrI z%m`jUT{elE5IB}a!5;{mAEb@}xc1=#_7ICgLOTn{ZTyU({uvg*9gmRwPiYf9rTvfz z61f95QXWgVhg9y{R9kF{B! z`^Fx!11lfC9x4K~#znz|m-55WU(Myf8=k=opv#o$Yp|i(TAunNj?7}i1>gS1Fxa&0 zpK5A#g>J0;x4MuhbKqt0mecr65EbMT6^*8v2W^92F@}Re3Se-={V`3M)ng`b;pt0# zZe967%75BL2tA{uXxPP|9ag1t=LJ4Ky|}XOV@5T`<%t-uSb%V=&t5nd`ThYKOvV9f z%6@|8_J8OZC9OB@F0I6~<&>00E)NL5;OOB@`KKmlaX%%#xZ*eJKjESmw{XJR1$EC? z=H@2O0%hKS=s?z9Pvv`LHVfdu!w|Dw*l&n|$Ww>vKaxqYMTAw{i}5M6v}%~1o&RN# zw8+s}{+_s}O@s7vDc*nX72@Cj-r&DogZ?k3LH~P9;{Rs_rvKmGXDVX#x98#wRdjrO zk|#|s96{7(-AyT>vqU2Rr2m%y#t$e8Ks9Ah1D-5N(+}JyglL;Vbr@j&KhuU+US5ufew}T`F5TAWc>zU;4?jb!)$n(ybFj5Cn59~41oL^m$>MV z_zV0T#f(wvJ9YS=$=B>YQrpXIu`=7Hz~s3{^yP(U2wqxm*WAB ze=_K=_QF3HQK02EG@RL+oKvq`f^r7^<=R7Npq=*P-ub+D^f4eaBl`(}j=LqU_|7gq z`Yv-p2|#Lib+IZDzM6`+0Cy2Sva#1P*-nk~n`1ZtfDJyu^LOamx1jN>GG{+~pfrF& zK7rCC2;HAdezG?4T29vH)S>@|osMaF5pcbGEe7}D`ZD0!WYWkJ)KbN>KmM#P+8|g$ zsE9ozL)sa}H{pUH8O#7}{?3IXP`Nz&S=W3|LZZb&<{p@I{$0KkaQ1ie8(B!74f@zIL{{ua&UKg=I)Id5t?r@vkdki2X96@~7aqInM;tMu};TO!4Z zs%#MkRt&!kND(Z7UUVJq&;;dQ%c>P>313*XP#sB8YgkSXsoZSIaqj-fs zC!i?Cd;dPB@wv(650ju~)xZY(AJB2K-aSJ8(9^a-MUM-Issjzo zj##l!8Y2I~-U8lSz|~S5rQL}N*w!q>*!kA*01%7tvG>*4s!T57nShOOvZV4Q))!q;tD!8h zi6-EsEEvuOTk>;YwcqjI$Bpo%w2DX|MdFOV35U`=Ocv+Kh9s^pz(rWWO749rjvL|> z<4gt+kPv7poEkz*2Ykx!U%vpa0D2{+G9Ex`W?}9=T}1r4oS}H;hs}FocSx-ye2L^R zYjNpb7uD6(6%~cwyf>4}LjU{wcbBy0W|o%5L|Pp|M%eA%$#$SH6*=>zZ0_2uynB?bnG&r`MvEN5am?OfCZntv;Q9q?av7u zb%=7lfuZzaRX5@jd=VkVky^nM{f-3$BY61NeR|EBjBk<60?ztP+Q;E$P(U) z^?6^A98t3$Z<`JFHgblM_2yl8ogX`@n+Uy_K&mQ||9c1^o;W)Q*E(+GDy5qUMBq$X zb~a3f1@c5c@4)yQI%be}7J}z-C$FZnzDIhts8=v&=2oVA6WpmFU-8$|fPuW11G3u% zo)73=cbJfO$MfHS=K!CnksI?AaS*iQ-Z8Z_gHwm~=Kc9S(1QR0lSCtib<_4U-b+-? zxIY2`3=nyuLdrr$gfm0Vd$YBjDi*B^=*A_H7g||P=zCH{9 z7NFoGPdmE}#JSthrS8#Bdc@4a`1zoZ>-uWMvnW!_Jth}jCRo9Hb8V;-PozX%6kA@wBV3>F2p{_$2)8kC zOpi6!+^$~g2Ea}~CEz+|gMo1-jprrUn`&rjT%%aTHO7CrIr-9REbj|LTHFYodPvOZb*=ZyQH6~e`)HOHb zm!V)9y;=D{$JHnN-8Ew^#f$=Rely+##4SO{LFTUS!&3pWzECbVm5$kqZ?l0em8eox zZ2?z9*HqW-LvZT`VX@^mm33tdI#5*fuY5~|00sfV@L(3=EA&qjF`sp3E|zq`p#r}% zVE4Ber!RUQN_)!Cs?@IM7vs1*H<24Y17T{3Zf)Q5ssbmExjueoQXGL%Aw)FT7mr3< zyZgT*J^A9TbH5_IogNDfijQy56Z=ziy=-!Y&JCW*n72XN^pyUpBOuUo0s-!ck#B+f zvAM&INbN4qPn@Ugr9^fJAB38K+n^Nk7g&!VPYEN>3K>#rQ9(frLA()c7nykvu;Jvd zHE5?@9J;<3YJpP_(SiK?`=ps7MjqOAAi6|AE3^mq1@rF#JWy0xZledt-i|IVpx3>K zXto*fo{g6qp=M%ln$=G3LOrtiY_bhc9*oMm$1h zCTD$m(z$UgihJ_UX$b0&kj9JNws>*Yf`{0NZzdjo>EO6mW27Ekfwgv3LiZtw0 zFF-F*#{|a*`l)X9A=MI2Y$fX%pCwA1k(ho$t_9@Ru3=# zj<+;Jfe-(ySIu9#l4ey z06P$)R|zc0L=cNXr6zh|=VQy&UszKpiR79-sV)a6E!Te9rE@ilpZ`E&3Qzf3*)g0q z94_|A9hkPt*iArHb0Kwj%X-9iuO&=q7>XDa%r&~$*W4wqff zD+lNGseeO3W<}!qSBPY~I5s*aMhb=U0(w$X+rAK}b~ZPmLvwxXd@VmH9J6~q%l~+`RY3vHmsbD@!%m>h{up=0`e+>`kKFZ6! zzF5skZ-Mhm>U>^@gH3>%rvt2`g5|7EbC(;WHas8-LNoF$(P|+w&d&XvoA{x zodVaw|NIkhu}I&s7ypUdMJM3zXm&!E7(-61koO;UmO8|-3P(l&HjR$ipq3^s!dZ&- z3FF%@uwr0Z{QVS;KU2XRFA#x#S7pk|LD;nR+k3MNj$506fB=a#`iMJ}^Rrjmv#s`s zt&7i(z9mI8k2ul*OFkz@!Sf_=j=h8&9-8agEk*d7b$g6J$_Pv8Xn|BPw1WL}d47Hf zD1k!(2oK&k;L?4M190>VC^27t9=(lEQ`|NSON6U38$BFvxpJ?63P%zmsGHrxkgsJo z{fV~G4??!6E|IZau?m;i0;Fj3Q6?8mzNg1^Ei<#TCIU6sj-lO)UYAGXK^1W~(P9GN zmDE5`W)8Eq-w!|$w)}nH(oQStz_vCb=5ze{=%?YH2PmJb53q*CMbOU;eHf9?s<8~j+!Ag822SqT)DElpg3mA1*y&*#NWU`m({6zNSX=v zK>>evZ7pz;`2{i^%F{I%HlZQEVZk12pO~O5=HUHCIL^Fo`$rN=1krD6>+6h16sKzd z$pO(=*8ZK~8fGJ7W&O}%#;uqp;QLeMKD5Wo!zI9E`&d_ZpAbtnU&Cd*^`nUYMSX7{ z5)}p1=t!fu8|#pQweJ>fxBHmI=Gsr}nYeAXX}l!7Y3YC)yvG)Bz$S0Zkd_`D6UwVt zk}sL8j@Brp6w+1CO8DeWAVhB@=fLS|2H*6b(q4(hEZ~LNRLLO&g3QE0Rikdrl(v;^VA}&MpwCgo7d434k&oWxWN~QlJ3;5{tDJ~!1YN$ z0FZkiS-m{DzMAcov#Y3L7>DhS5}_!Pd3ANt;;boWOd)@s+;4IBJKguEdkvLhknY2B zI9TpqQa*sS#b9z{a>M1p9@5e!qN(z07xfBVN*oL(6>ZXd<;1hY*O#Gm4GTxh3b^vJ zOF(o$z!<@k;sWK$3hKTBvx~Kd6739FNZOnIcUqLi&)|fV@b;V6XMl8+%z7e<~03Ac?t6n{iZ81Q+3g3c3k0&aTdPwf5s@@PWgp!3ye#;*fnPGR!f0 zeK9_D1-ofD;HpJMm?}EKSm&tbqu-6ZF*q4y$EkJJz>DnH z{kMy~D^I)idC!>U^PKZM!}^Y5LgaKA5@#}LtCh=O9qMO>oCc!_7Y@bvXAo0PAiobx zS{^qExS55-tgonp^ST>#iUlc^5$W(os*LnVI}{Pgz$7v1M`Lb($_4I_aAP@r4Xbw% z)F#n>yRa#Arcc)}afa1%Ey*LYJNaqV`D(@aYM=g^=#w;z7a7-S54{;*qujL$4-aR| z?PA{_h`2p@*=O~Ms%c)<1NnyLspRW;d~(ASIw>b+WZ%^Xvr@Udv*DOj{7IA>KYxWQ zN`v4gwB~OI&Fw%QXQY7Hy(IbPJjf@eGj1bHvFalcTZm?uhtyo)7DKBn-sE5D#wOQ5 z(yhe!F-xy!(M>clN%4_|${1dv!Pq^&+nS9J6|J5Ys6r^a2C4$ z6eLq`X*Kr|1s~*(#&z{IGCMRpslV?-=xmJ&Pzgb;V4Y+mi z9`DRNxOXqi1vW+8x2OBYokZmdWRL?k9lwNCAlol`zV*q5mENFEv-P>JiK;s&9FlgI zY&M!v9u>9Sj)LXf0`JvWZeivEbDJe`43r??N>RNGS{(Q^`N515>#&T(#kU-*?=jc= z7j@^(=8}e>=Kw0x_f+x&)AYHI&sMV&AC`e8M(z*jol8f6z$de8Xx2l?N1$EO@I+AM zlj@zEXCuo7lGtn!4X{S~I1VNxAt8f6m@}Z4$DqFrOd~M2w!C#sYs=D?XaCLzH*$UD ziqHvNWt6Z!S~~^^bq}np$N-@t6mWF`>WBlR!qynBUu#kdmAHOV-mQqtW-hpD(}-DB z_;F@fP|NH;^J!IYn`m$A*hT1~mn|Ep3JauY1yR$p=jOe3;Vk2tF;?I`y?m>DIu1G& zC*T)o+|$IinxE~*@|ir~ueQw25D5Jz_b-DI%9-p9!D*`NcQ4PO2;>_wyC$VK1{sbZ zw7xPC7e3<_|C?FQM59^8l-{8beAy~#C+BtW^E}9joala79jKNO&9>Bo_JPX(bRM&- zAaHj!d^$c)L_*?v;OmVb@sh;pWC(WIyu; zTl`Hw2QD3F9DnL2<^m~*!^Y4erf_j*SlzD)*k{Lz_7JLf;K8xS4&AF!?MRYkR~8hs zAC6h(XwD$86SwCx{jXQ>YwJm#2ldN}x}ieUV}a@6_JJ7TNsMCYxB)hsPbJU(~# zpWpr9IR(~R2aJXbem7O?nYZ3^p$Dz^0&Qb^P_D1TQLll+Z}Z7OzxC?4NEkU6&h;{T zUg+q$z`>!Lkpz?nS+8Z8YP^w#m)wupUXGX~%%|EiIPlrc#io|L~5duIV!JFtXuuF#LjTXOvE@n?l3yaM9bOFv};(cvBoB>iH zXYDImlD3e&NiCA4CfV&L_apDU zRyB>+JlyB{m&E?i#0zWfU#?;zsQH8P)-#eM_bQ1OwvifE>#z{%>*APp`DG!hk!mQ+ zQ`j)V&#>rR?_~1ro07zc>hqQ)6Wr(!^1l#zHgDw(;vLc((Pos;u$AsJ{MGQB%~v5w zLXR^U3d~TD1ZwX#ljkU1eg;JRIH$KmtB_nOy(8v-T2Tw5;?o~+uk?Fs9iNy2E{C0& zWLHkQz&0J4l`SnT{@L$nNJvPEF|hW*T^IDYQxg#d-e-GYSK37_m4Q$CLvP0Gk=kug z6Hq?`^Z7dR-k_L;tS+-kkfMSDQTwTb!+?b2c-05^j}Bhi?n-W47W~y&m}l`_f-M8X zB`(q9iZRq6q@TA1G4y2;=7MY zH%~kkWbpyg$96HZ4JAk1{Xo@+DULS4BODdLvv6?O0wdy1R?2m54sk1N!xZ3+-Eib8D1erLQAtHos=1v@|to8`M}o$8tFu;km9;o*E}Ya$)I zt;A#QJrkcCeQazLSkby&p=<})A;+m&N0O;PPLfx$H3r+eyZ7->qh9ciRBhs{#g=cX zXNcSab*yi)r8ZHv>2TKwLux|5!s&qaYJTtzULR!e(R#P?FPj6$CT9-C6%z#>;DG_i z3#E4n&no{TxtL=^id=6muz|m1hk08o86^C z9UdQl80?t-G*>;&(amUl`35;XL719E)0+j)C{dZ*>=NqEJ!z~p^uHuoST5oX#HJ_t zt=&C;7SyS}Zb%)zcW_DkvT1APFj*xhE*g*Ls(-kH{gy5*kDg`&rz&Coo~)GWuDibH786 z%+?z;A?t@CH2c_bUC8M8jmAsd!Sk#O5Z}b84pU##LVC8ey^%1b0WtT4JNV*J>Ft|@ zwIZgQv!l#n;f@(<;#}{lRH8 z0%lntpRCREhDai$-b*geCSN}76+jQ{Gu>+K_!2cXKP1;QO~tc6;U-W13K|IgQ+)?p zu|3X@_mjEJ8oFKN4aJh5EGoXKSpuZg>>F$;uW0hP$Rc{G>}OBe{CP}x=H<1tMnN|Y z%*>PKcR&fK#v9bR>UkAc6ZVRv1dy?)R=Ank!iU&cqE<;9MCwLsmV#N zmS+Z}-_Xy-HqH!y$s%$2CsF#rl_)D$$y8wBJ<24vm_wAv?VX+D+(`qi4wx{7v@zTW z4S0Ij_i*CtpULMPO05suyS|XjLuT}nF6jON-n%~%_*ovC=re}lqj5X1_unWf5)By=eRTNw+RNM9pgA5*ug`I!0-1uNL-nZT zhcNLghv|Ba${5k9h$;QN;o??fMAP0sJop@A`&1=uvXRc2vA`-eI*6E)y*vFmhB1Xp?Fdkg(j?F>SbpoV9=s3m9gEcE zJ{du$>3XxrDg3d0g#AzBth3q8R|MZC33A?cr(K2Wso!|&m0r`w-LI=P+R7;;{Z-!| zIbDJZc|D}JAb$W2w3*DUly?TydXE(1@HUz`UbvgDa6IbC(E2-B#XZd=%*&f2kmeuT zKN3a=gOVE6uf;zIK(VH>lE`jnl2GlHor6P?dkhxx_~2CSZ2|#BPa#@=@VuBwk|r>f zh)lJd)I}IVK)RCL?fO`e{A7?yHcYImHBnpaR;N~~mAodk;Un}7?pZO({^QTqx0dOD z-VyaY2gM1yb<(FoU_Y*_uc=;e?-&E@5d5FIJsPe9b zAHT2nkZVSF#4UPs1{{qXfMNJ`goL?LaaqBwKvR2UXrD_wrrlNTSm zLMF!i7b-Ur`Sf`&%8tPgfuV8cP@WS5ezYUA%`-ZPmtg<;VLu;bbT@vX?J@AXFn6H$ zp?1+2(PmmPKWHl2*cvvUHLmp$y_dMGQ`h8$VU9$|JzFpnw|gt z?*DwbINW)?$YUx>#jA1%gMd12g!v7qR}ie-hE|+(1n|If-X4B8?u1`=l&{T6^>W{m zx6E-0*4Jx_(ey$u*eVc$JVmeOew$N%g_(|^!^HQoG1=={Q2Ysz(nW^Li9Qd!y1Fv2 zjA(%^NH^`qFDiQBqJNe9#U_TG6bDA2;D(^VP40t&X6x%aUB%5PYi-T;o-Aa(qk7)u z)YaNxs+OLj5OxAEjOZREw)gdYf(3pS zv6zhoX7DiT3D}dBfVV@612zx*wD=EVJNyp5$MrAg4X-7d)lAiv*-~HquCdq4jN!+# z@b|xh(I+=vG#kxJGt#Io8v$?7;so7X<#S%XyLU-qIuqIvDQMtI^>rj{^Di!HX?V{`BVnCuNjnCk>9#T>S{eA0IA1rJ5jw zbV74zOzlPUkBSdu-Fef0e!Sgu=iRNuUT~)BwcN3|0ey9V;JO|x_38{TNAuKW-la6)q$2pRX(hFzt1vn({ZUE?vXC5=ZVSfI z3}=t;rYVbLrg*8BNQz|YqTnRg$>t9Op6CoMIxoL{zT)kt6vsgj-2$M~njCaj<7dbK zRs%;eY%W@^$A&MlWOo<1!Eg{k~uXg{i9-*lz5wgY=hB}me!Pej5W(BgBE z6^hGhfWh5?AWw3NYSHj^Ru>bk)^t<|%RHaT-Rz;!a(m9?1bWtW=~f+Xa=>_kg|;?l zugX_LX#0a&OUT;L*RS%jhIuq$gi1oJA(fh*RT-~CWw5N;4!MzgX+TDg>S8BvNfJFN zXN`ex8z8S=G#Ewh8;Zor2rz|$<|&MCzbm;gpci@Z!x3N-aCwi<5j6h*#q5^~q(wL& z4e^s}9nS%Z`X|Lk;MdQeDIY~SP)M>XBSd7I@^O%2&q6X52vpQR)R zRHGm4?kFbElfDZb)0zcc#ldgiesHE_(bLd0JzvFFyaLZbl_*Lqxw%Of>kmjUYlDr~ zWv)R!iqKru?U=6^z-lZ9&4_ZtI@NJ^qw!bNP{VMuO^QIurH=>x5(JIq{c>Q7y3y!F ziJ{T4u#i{22?){2Urgk1@^mh`UKo{VU!4sF1fSA&gLVzdc#$RtV<(93LRqnl@E$Ex zK@_igDx-KEIkO`pEt(~Bb&cir>9rLVE?X0P-agR2{4fBg8h8NsiU&Y5D0FV|Heko3 zY7D}@_=6^j$|wc~27g*~kx^_l3);TV;H{k%b`uc0J3c;c^4JAtItbsGG&~Dqg-`G% zB?Tn(VX6PRZ1-2DitS|_Kk1X?Aeu3Sp60AV`Dk%Qs zPy->`xr)h3i-*v4!jtjO(JWbO#J_DSZ7RwD!9$_m&=q!(VLKf9kL8ZajlbaBV6sPw z#VDrJHr7o6Pg?WJ`s!*~attNtT$_V6hBD~W{RDA?v86;c@t_j3sTVNbi5AT(oDI01 z`Btr0{-n*BEJ4_PgLF8(d=t=!nk9rDL6l}6A(I`2h>%_g*Q~)<>zFO#j-%WJM9HqM zE?@CkFz4~VQKwU6Yal=^_po7HoBdmnF#kI+lZIW8%zjfDWYqG9Z8(!ra2wKUVH74p zSnqpQMQ9FnSsyK?5||1Rrb1(Cp&Ab0p;egFLkC6j32=Go11|V5j9%TWbEIKp2fe2L zl-oe>UDLULbrNt*Ap^RLQC$mQIIX27hFVOKR66xYGHJxzh$S277Nj`2qfk}28G-#-+$ty!etQb#J?I*Z*g-r$GKUPI z%e+#XQ%X74{X5kH>qxdKFIF7@$iEY2G@^e6Jd!y-K;=+^z?2K@aMwp}k)qRw5at<_ z8Ki`*W8MPlRZk79m(cqDofuf|iL+MF0QC&iJxnh&s}gowi_4oz4Tk}0*((6XNr;O2 zf_u(nLAf@kWf=71uOVCRG9TuR_7ruR5*+9R>-3!bgkBa-UU6~!%Q1l)p>jA>|J0W6 zsrYQyjFYNWm{D5R_&CXC2|xeZB76`9(AF5xtyDgfy$|a%tCD*Yeq|1U(lM+9H6WwF zO5Ku7PfdkWkDY}U|IUNy2%Eez>;_>#yzOpmjJV&##I@w7QWd3fynYMjcCi0QD<0NgN;2qCZIF2wxrSV>4fq5yI&KgZ=D5QLUQOj;+vw+)r1 zOyn6%P(duj#tmxTw7UWiK^RhZg}kBKSKNe~91LxMax!00Xp1unCma(Ic@+4NJ1y{7 z%HS}HpKsmO_JInoA`3C7@&i|K?$4;5tKee`BWc(g0N~2i>fklK*=UcOBapqquIzJh z>Z&pd{DpyPZ7OA2Qv>~t&T8NZK(0T8ibS}f;)kw!4omEM|8)QsqoDI|QC?ojQ7IN; zkZs}5|63Q8aTA9#8RtmwcWVE#uV7@d_`X}Bg{su1=#3p%$p^?@gMkMqfiJA=g?BgO z12Ue4XaGawnHtCz5P&{cqd&mtQkf12N(9&oN0@LHiW+-=Gkxe>dIi0!ZLk&QB##2F zl9IAScm3TB#DJVBwBBt!;e$H}$QqQHn?rT-lm7Iv{f^E~`ri$w}IZiR$8(PVD z;Gv4Oe>~+p8r43}J75yIkF=KNB7|q1kg)}a4jp4BXA>rfryC8WN?x zG4_6CCq0Ey>j;z}Qm#->SlQoKg=&Mn9iX`*9RYbyJ0|ng9|+`VrKucqe{2Le6Fo&T zUzW+R#?!LNY!aR!pVblUV2NVLVC`?b|A@mOmd--^vw>+|U|)}uj4@27Ma zs=-ub&P${mZ3C1BpAd`^*QFL>&!CMOq{xje)lRh*9~`d(ABl13PAl}-9#+eB4yiX%}^j6BNkVLmlsNezRR7 zzk&b>%GTy9fr+R93vi)4#JM%S^{eL5Xf;F!kQA!&0Ym^0t3*o*ZJEvs29wg)*VmJp69zY%$*_;oUBot)BQU`? zFz4Y=Abyu8k!+JDQU;~-Z5ul~O%~C3h5B0=3K*)LFsF8$X(a0l{-|(d${5emajT)e zo-(S-R3y+Agj!u|5~{Uucebd*oQZVj1%ruPf;-8&lnyoSSCc*^Db}1M4@50CC?g(i zY;YYdRB0^F_YMWZaF;`Ai?F2%=amCB#k-e(P5_2tt@a|>ItV5tSRYZ55ToX>Q9}R2 zDd(2qWJRp0J$k9n{bKaFPB=@YKcAB%u6D9C^~&VNRaNXqrw9XJ4VI|jTQR@Ce*o9* zA;-`78-}Q-(4h+@#4$B$c>_6u7IYPu+4 zX0CUbla<;O7ZsbUa+L!Bczk#z`u>6|RKLzCvq_n zuhW5DjZ#vSUzT}gu_q+G+CsFyVPNoC7$ERvKFCM`qJ6nYepZT-am)0^F7#*Fsi|u_ zJM#MD002$S>Quy-c-uuAF3bIx&+MjIB$NOztrJ=AcmX$pw)EZ(Vp}7*K>PDuQMP~j zfQ@IL%BZYeEVrEk*?pDg0Qi)rq0%>16Mhy|kRjb+`^}(4J4q*qU@e8vAiX~WHyin# zbK|#tyP8Ia&-`JtNG+GgZ`=JygUa?urCdF6ISLiN!d?~>7cbxZ3*HkPXF3?VSmNK1 z&-)MQy_uG_G9&phuw;T`0XD5jpJccYSr)b0a})HZBrwb^$3f8@4|w zEnajdHgPE=lsY9FVA5dw^j&Lb!1ej;vxk>J&?wV=uV7?4V=byI`RnplMrulP6?fDV zy0{CdXx5q#&n+#DN}aq}i8Zmy+!gdem37o)nVgyv)5vx69q4^DNo*&pl;68hO!M$N z{r+6STed*uu7{Kj&K2y+fK@W!CI|D5#m8JO=$`qy&y#+c8>^=bH;~v}rq8YE^m3#Z!Onn+=hNgCkjgo;v6&0B#*n60#e{{| zy%>3xW_j_{&fZ*#*E(`}k?v$o1Dw9KwH4guBIPPb(q{At^i#sfq!|cX+n+%bCCxgE zsQfmw5^;Wjn9pm(9#mrk`L{g7={1>p1G2~F3Eq@BBz_O3_AsxjUJ0`%OP7%WXZRm8~l7!f7K+op5P$zI?QIFfMnL%D|oX z>LT#ZbKnT=n1^Y?)>~!_Ra^1k7lb;R?}gXY!uTq^szh=mCw}hCgXQ{YlnOqtqEbOVX9%`ja`_lI2>By-t&} zHqTS#_X9O3-5sY-=39AOQ-U!do!}j zylkc3o@)sAeFuotg=yBSIC|ND@R(JroQrn$rqn*}CsDwprl^Ho0iUdzLhrOZ3>CZrlkYi90bA10fW5j6=6L40W*1 zgUlDWLTSN{fv8QdAQfv+BVl^)<2j2M6bW3Y4)(%E7|&j>%MR0@aq<6RXpUs$QIl8_ zAl6*V64f({(iOCvDUXL$yH;wO&fkEEg3Nvm8UeZLt#?zbf?|nsrP#M4y;3B6!CaOC$O}HB-;rZfXmd5}2$Dq7L$UhwSbx<#4e3#f3*STJrTC9O8IP~nmluG2gKBrA3Z*Q_8bbx z=?rj9&a<&H*1tKr(b#N1&NF0*nl`FDDl3?z+}~K<;ZVbkOQK#jLomPqXR=!lTDeGL z3zH+|S4?`}Ku$B|nFrXEq?2>HlE`;?IqhyE1-Ip71arU6cTih&v!y@l)_bM~?YTDv zHqS71-|Iv+#@h!oi!C|m34Asv>vN_!dGS<0h4~E=ejBOrTR~dR4t*-ZcMMZ&)f$^W z>G_+M(?UAOGeh!}g(ZQz!_R2c>`V3Vlh1Dz$wEYrS*-UctXEGFm z(~a(2gG}1^9eJN__NpfaaD}dcR(Nh%=Xc98JgQ^Xqy2 zGT%&%J;h*45l=h8G9j~)#u46r=U^c>+0sLefh0hWGf~Rpt3kz{THbTM^TM9dj($H% ze3)N|m25s48nMUI8CJZyIQMtGHr_B@R8@J7lx#`p{(N7cRe%d^aac5#ma^hPI$5~W z%3R&-*8FJ*QPoDCQI6tQLh5D)XD`rs%Px@WqquKpsIPZa%O1J&-zIu$VlvB?4eB`c z>~|djr-#q_=6zDHCGbCrg`rJw5OoDm(6V&f8B8R0IwB(R;3a^@u0dwUFL=H zfy^;mwFvYX;84_o3Vv9};{+Gl-vFsFqaZ$n!Is84I#+d9foP;J)} z>|f9iZGND{qrZ=o5p`f`n!W;E`D}n3)*Xd>glNHln{7r3++I6dTh~N`Ty;b~w)AmN zzHu!`KM;RG&h~)IVG6;uh9)N@7|Gi#2 zktYjLcOYz08Qd2W18*nDLcwM}`UglNPQtbsA?$Wt3vv!%1zxa~C5f<4~<*`!B`10h*XsnD&1oJXQ(sUU?WMIfJWx1pJr5S^}^W(ypE^{}e7n#aYB8vsT6j+!Z zN;GkS;rAZMj`u2WW(`KzY79YD`byR^JZU5Y$S`5eI;lUiN5syx3iAz=qpS@K3~0L> z03G1oJiTgz-iUrrDu0dD_Wn8<4thhj<5bG6Z_oQu3=94gh+3&9H(wr4fmpP6I-%0$ zUWdU_bf18r;1vKWYdYV4C324MnlQOa9zQ!_DKYl&@DQLr${^P;e5@)utE$yIJxwdn zu7zlR@=|iWv`q&Iw4b@QCq(sg(7*P4y37y4^@%v$uH5|zcUa6st8g8ri@2QoC2U-Z z@j}}4kwtfZH|?foWfeY9sUM=k`x-!o64csZX7H7|>=?AK7k~GLH;nfohF_l5fii8f zF?-_whE`XfD!6egccGVsAc`ISKuorxAL0&)ojie+QZ$N~py6RG63H?U{--0oqke>W zBi0oz^EG*rkMh4U*jx$D+;bR%ea%O&{q=7erbYID&cD7c;{3mwk%ipw_^){y{P91= lb^qh#|7Kh#`r@<&8EMpn%%{T 5){$smtLvl = 1;} + + +string $Node[0] =`polySmooth $i`; + + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + + addAttr -k 1 -ln "smoothLevel" -at "short" -dv ($smtLvl+1) -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".smoothLevel") ($Node[0] + ".divisions"); + + } + + select -r $op; + +} + +global proc smoothSg(){ // Smooth Based on Smoothing Groups + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + +if(!`size $op`){error "You must select Objects.\n";} + + +LowQualityDisplay; + + + for($i in $op){ + + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(size(`ls -sl -fl`)){polyCrease -op 2 $i; polyCrease -v 5.0 `ls -sl -fl`; } + + +string $Node1[] = `polySmooth $i`; + //basediv + + polyCrease -op 2 $i; + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + + addAttr -k 1 -ln "baseDiv" -at "short" -dv 2 -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".baseDiv") ($Node1[0] + ".divisions"); + +string $Node2[] =`polySmooth $i`; + //smoothdiv + + + addAttr -k 1 -ln "smoothDiv" -at "short" -dv 1 -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".smoothDiv") ($Node2[0] + ".divisions"); +} + + select -r $op; +} + +global proc spCreasePreset(int $power){// Prefab of the creasing command + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(!`size $op`){error "Select Objects or components.\n"; } + + polyOptions -dce 0; + + + if(size(`filterExpand -ex 1 -sm 12`)){ // if objects are selected instead + + for($i in $op){ + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(!size(`ls -sl -fl`)){continue;} + + + if($power == 1){ + polyCrease -op 2 $i; + polyCrease -v 2.0; + }else if($power == 2){ + polyCrease -op 2 $i; + polyCrease -v 3.3; + }else if($power == 3){ + polyCrease -op 2 $i; + polyCrease -v 4.0; + }else{ + error ("argument " + $power + " has no behavior, use 1, 2, 3 instead.\n"); + } + + string $shape[0] = `listRelatives -c -f $i`; + + setAttr ($shape[0] + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + setAttr ($shape[0] + ".smoothLevel") ($smtLvl + 1); + } + select -r $op; HighQualityDisplay; + }else{ + //components + + if($power == 1){ + polyCrease -v 2.0; + }else if($power == 2){ + polyCrease -v 3.0; + }else if($power == 3){ + polyCrease -v 4.0; + }else{ + error ("argument " + $power + " has no behavior, use 1, 2, 3 instead.\n"); + } + + string $shape[0] = `listRelatives -c -f $op[0]`; + + setAttr ($shape[0] + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($op[0] + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + setAttr ($shape[0] + ".smoothLevel") ($smtLvl + 1); + + + hilite; HighQualityDisplay; + } +} + + +global proc spLevel(int $op){ //Utility for Levels of Weight and SubD + +string $ops[] = eval("listRelatives -p -f `polyListComponentConversion -tv`"); + + if(!`size $ops`){error;} + + string $edges[] = `filterExpand -ex 1 -sm 32`; + + int $itr; + + polyOptions -dce 0; + + if($op == 1){//Lower Rez + +for($i in $ops){ + + int $lvl = `getAttr ($i + ".smoothLevel")`; + + setAttr ($i + ".smoothLevel ") ($lvl-1); + +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 2){//Higher Rez + +for($i in $ops){ + + int $lvl = `getAttr ($i + ".smoothLevel")`; + + setAttr ($i + ".smoothLevel ") ($lvl+1); +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 3){ //Lower Weight + +for($i in $ops){ + + setAttr ($i + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + + + + + for($j in $edges){ + polyCrease -v ($Wval[$itr] - 1) $j; + $itr++; + } + + setAttr ($i + ".smoothLevel") ($smtLvl); + +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 4){ // Higher Weight + +for($i in $ops){ + + setAttr ($i + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + + + for($j in $edges){ + polyCrease -v ($Wval[$itr] + 1) $j; + $itr++; + } + + setAttr ($i + ".smoothLevel") ($smtLvl + 2); +} + +select -r $ops; HighQualityDisplay; + + }else{ + error ($op + " is not an option, Try with 1, 2, 3 , 4 instead.\n"); + } + +} + + +global proc spPhysicalCrease(){// physical Crease + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + string $ControlNode[]; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBvlOp $op[0]`){ + select -r $op[0]; cpAttrSwitch; return; + } +} + +if(size(`filterExpand -ex 1 -sm 12`)){ + + for($i in $op){ + + + select -r $i; + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 0 -sg 1 -sn 1 -sa 180 -o 0`; + + }else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0`; + + } + + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.1 $i; + + connectAttr ($i + ".hOffset") ($ControlNode[0] + ".offset"); + + addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $i; + + connectAttr ($i + ".hDivisions") ($ControlNode[0] + ".segments"); + + } + + select -r $op; cpAttrSwitch; + +}else{ + if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 0 -sg 1 -sn 1 -sa 180 -o 0`; + + }else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0`; + + } + + string $ud[] = `listAttr -ud $op[0]`; + + for($j in $ud){ + deleteAttr -at $j $op[0]; + } + + addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.1 $op[0]; + + connectAttr ($op[0] + ".hOffset") ($ControlNode[0] + ".offset"); + + addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $op[0]; + + connectAttr ($op[0] + ".hDivisions") ($ControlNode[0] + ".segments"); + + select -r $op; cpAttrSwitch; +} + +} + +global proc spShowCreaseEd(){ + python "from maya.app.general import creaseSetEditor; creaseSetEditor.showCreaseSetEditor()"; +} \ No newline at end of file diff --git a/2023/scripts/modeling_tools/creaseplus/__init__.py b/2023/scripts/modeling_tools/creaseplus/__init__.py new file mode 100644 index 0000000..243a04f --- /dev/null +++ b/2023/scripts/modeling_tools/creaseplus/__init__.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +CreasePlus MEL Tool Wrapper +Provides Python interface to launch the CreasePlus MEL tool +""" + +import maya.cmds as cmds +import maya.mel as mel +import os + + +def start(): + """Launch CreasePlus MEL tool""" + # Get the directory containing this script + script_dir = os.path.dirname(os.path.abspath(__file__)) + icon_dir = os.path.join(script_dir, 'icons').replace('\\', '/') + + # Set global MEL variable for icon path + mel.eval(f'global string $cp_icon_path = "{icon_dir}/"') + + # Source the MEL script + mel_script = os.path.join(script_dir, 'CreasePlus.mel').replace('\\', '/') + + try: + mel.eval(f'source "{mel_script}"') + mel.eval('cpUi') + print(f"CreasePlus: UI launched successfully") + except Exception as e: + print(f"CreasePlus: Error launching UI: {e}") diff --git a/2023/scripts/modeling_tools/creaseplus/cp_(read)commands.txt b/2023/scripts/modeling_tools/creaseplus/cp_(read)commands.txt new file mode 100644 index 0000000..8c14e11 --- /dev/null +++ b/2023/scripts/modeling_tools/creaseplus/cp_(read)commands.txt @@ -0,0 +1,46 @@ +cpAttrSwitch; + //Use to toggle between attributs, select object first. +cpDisplayBool; + //Perform boolean with operands display +cpKeepBool; + //perform boolean preserving the operands +cpHbevel; + //perform hBevel +cpMirror; + //Mirrors the mesh +cpPanelBool; + //Performs panel boolean : creates panel cutting/carving with operands +cpMeshSlicer; + //slice mesh with curve, select curve and mesh first. +cpTglBoolv; + //Toggle visibility of the boolean objects +cpHedgeSel; + //Select Hard edges of the selected objects +cpShapeShifter; + //triggers ShapeShifter if found on the disk +cpGoz; + //Send meshes to Zbrush, with nGon cleanup +cpQsmooth; + //Apply a 30 degree smoothing to selected objects are components +cpHardDisplay; + //Toggles display of hard edges in realtime +cpmakeUV; + //make UV based on hard edges +cpCurveCham; + //Perform curve bevel (must draw two curve point around a corner before use) +cpTransferBevel; + //transfer bevel settings from one object to the others +cpCleanAttrs; + //kills custom attributes of the objects +cpBakThatNod; + //Bake selected Node from the channel Box(select object then node) +cpInstanceBool; + // perform Instance bool + +cpAttachCurve; +cpCurveBool; +cpCloseCurve; +cpCurveMultiply; + +cpUi; + //Calls Crease+ 's UI \ No newline at end of file diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_bevel.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_bevel.png new file mode 100644 index 0000000000000000000000000000000000000000..252161dd1693934abab8bc203e8c11802e425089 GIT binary patch literal 15616 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_bool.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_bool.png new file mode 100644 index 0000000000000000000000000000000000000000..aba3c37b72d1ca7fbfa970230fff20cb5aeb995d GIT binary patch literal 15692 zcmeI3d0Z3M7RM*7EsFXcDo7P$s3K}ISx7=+2q-~;8bCw@v>%DdBpJ-sOppLBpgyZr z(Yo*e*Rs@yq9WRg;u7~Q*5#=vZmm9X*JA5Z#nMTFa6xd|_vxRL&nKC~y}xtLo$opK zGXKnixR}wN9=;wB1bIe9O5*V=+xGp)4gd8Eoxcsgd~AqJ#vrJRm+eb|idOqTQ1GW{ zLXs&-Iz}khYZ)?yehR`cYYn&>f<&QagG@dZF;S-=DpVIjds?%fMnx4NvO?r#2&aM zGAfk9c*&^dbogH(G_}cO5W;XqMg}8;!_XU5FiRj1z)UvGX47#69m~|2WM;Y!^LGS! z7e|6%awBRmp?V$F7FRY!pKc1F(QJuYKF#-~HMAtsVa@Dtim+K`fLRPC+>w()-r{3O zH)`xlQ^;XNgJ=<*3B&zZ9r_v6dXpYg>pMx=GTmunye3jGq(KoEzrT@0ySfhsdQj=>RtF#u)z82J8C$V{?76$R7+aTIc)Qg77C zOkz|kQz5WHrxL-fgMhN7tAyctjoyea3lVcfa7V*{m%Y=3Q98^d)5(!2i5MSXpr}F^ z#N!}b0m7!U6zm}S6lG8_J(ww1(B%Rd7vb?Z3Z+tDhbWbT?(c<`=;i6Q-O?Od@fSk_ z?(c<;HKO=QC({5L+v@*niVniOmnss)@czsM`WEkA`&l*)`J(OUy9o_yKa&hHBZk;^ zTnO#mmTNi0TFxk&kA3F~WpdkTCYIYa1fmeZZAM#{)#BOghW@_=bi@bTJI|4!Msy$A zP>xV`Rp&u4z0#B+Ga@5Ycu)M9z3zzG)~$Vb5o|mCHE7#HI7Zvn=UvCXUr&+kP!r<4 zfUiqtuK`O0zc<#J*`ZIe)l`#i*Ynv-`~$OWzs;`TbbHt254(cX?Oj_v$Lmm&nBAPM z-7w%~J9!<)!Z`dP0TJ`KTn<+Rw;yir5r>))O_Bt~_b+DaN-ln1cAxeW9Xcj=<_JtQ zJ32}Q{5!W-(lLrZEa1;6aLa>A+akAYgumHny`#T5Fc^+Z0@5I~NnC`8Kmmyhq(Nwt zxCjw}0umQUgU}{%5h4NwBrcE!p-tiGfdUd2NQ2NOaS&KwB(tqH&0hoE#O1U*QFAYlOndFz)=J~9e| zT#BP4BNEJY7m7aDBt-N)HY>X(T64f{V@3QYJf9)`19`8`opt%n*K-KGbnt=^|2*fu zxM+RD?I=Ih9+(%pJz;U*I`uYg0gOU#3T+%k(bOU4K2o zG7q6GEwendq@*$olwe9<=Xp7kbB3m6`&UA0*ZfUSH@}|cUD@y6R`VcbVpKAsbhm2i ztTBaGc$|rexoZu}e?o2CCDMNgBjLw-~UJ!Zq}SppsPdVFI_FN({lUwpBQNnx+cD)-K#?y0(L9b|p9qfl_9F8^7I z>W)_DwuOxud#hIrhp)c%bL~yRAbI^A)#;LfH`m>FS|g^^nF=zgPuzvYtCKCV^&1ZU zz7u7<$#p*nU2&t0C z{@$cYiG`jn7iD%gA9k*CsqXfQnHwg)q~B0-(P!MN!l2*!`A~Slmb8YADUrUfxXLwO z=Hvxc_IOn_D$HovTii#ch*WGV=u3GL*~j#{7>{_DYA2y?~|_=TFRC_hACbHtlT?u6YkCTmqxg-#}7L>)N(p{ zF?z$h$jLW4Xl+>>mS4AFfpKJ)uT4*hvTir*%BX>5Ow@-G}AoHjNCBZgN*$<8`n9* zpY}N3`%IUtup28-dUTKZgEG(a8^dBKhb*H%c6yeZmv4@<%6$UX#Mb&939NZWq3|14Ew;r|3Ikg_ipLlyZc}1BIxFCou{r4%ZqE2dHP#!-g&2mFN9c<5yAsKQ9rUIV{UuIP&(Q z*;Nfw258D7;h_`zCAyU+R#Eu-hj+b}z}^~nRC;dH?!ebSSo0GaqO-m!eEi>}iJP9! z^`ENT>swlL@MXZiPCizCAHI7@(UtRQ`yv`nmMCBBb$eX9=JsrlU#n;X8Tp` zTPBE@QGa2<8|(cM$mmfL%xwilv}Bd~1$%Ix)NLal_Ntq;y!vJC)snL%35&X)*`0Ij z3#{gJk-6?}+_!fqST$cdqq#gat*hRZxq@7%M1YCRfO82p|Cx6w6IPv`R<@7)UZP69l0s)Y_uf zSm}D96{VHc>PoBP4QUl?rAn)^*osiC>DJcbb*oisebk*K2nU2tyH7t(o+p`?bN>JL zJ@Y#k=F6;zpBXdMV~hs`K||FlWg>MI+Q06Dso!y7WqYX0-%P4GBm{XrXa5d@-r3{} zK_NUmIn|OHHv`oYh9HfO$iRXM3?@nqLGrKylSZ41SvVP37H$mX-mX8&<>0zdZi*xh zi8DoF*|@6Ej3pJ$Ox70WYGpcZn8HI|fKmwzm_@@WFzAgWS`f;0^0kOGm=i1u5=erB#le9bAtI2#hzJ%Te4z*xBdA!&>H2UL z9#kYZ>oUaS34w#8yXVK_fOKPX=mM3}Q+flMZY5g{xT@+k$MTx_&x3iw8H zqBF_UJW7nznsJi_CyX3>UQGs(X9?wU?S;BOUH4@$br&*{UF;}|aDm1I3xW{1Ka)<| z?J?z<^^T$Gv@oW}44BbEQa(YyK2tVfA;@fEfRf$a0~V&{BrdMIcE95_82T+uTA~(F z2)dB=>m-vGn=m*LBZ)k-7K>U$-O9xN?%slD_DoK%O!l4u$Bq@?1K8|6PMc#XIA=&s z-76Yt#xxefoJ#j~KSjuijC8Cjj(-Yn)Dih)fE?~?>6!1IY?xAG!4%Yb4CW&O zz6ePch*2Seie!8w1Vs=aiBs7pM;xKUGZ*)tLm~om0Ls2OsQshUSTuhq3#bM1=(K1i zVK!(i3f!Q{!eEmzOAhxm0?O`Hg+>y3!b}YdQ;6hnf6ai)vC>erk+f)xT1>4}Pz^yi zu0t_ICe(>V7+-)1b$m=DmhfeWID{{iNwiWib$lRFsRLqM9B6+gwUW^0*>_7x=9y9|oTS$0Vqo1;tJiUsC1DGDw?6IAEi4)<#98CJKm%ZC5I6X?tj*axnWpN$!R zZ$mj#IaC8DA&E>&zQ&A2WKnD4kL-14*50E*Ef^w;CPC&Jmse zYAsOX(m3WoAcvo6>#6M2r`qRKpXbmA3lZuA3+%sLRK>s_vP^P?daDyXCNcc z(PeZ_74YxeF_X?#>S2L;PJz20RC-Tx_eS`OgPuG3ixY$Cm?9tz+L*ybiwG1jxIh}T zF@uX15h!4Afi!4i1{W!9|M*6fn3z8niKkixv?mU~qvnXk!K!Eh13B-~wsT#=ncpqvzE> z%t*cOmruRe*ZlU9N7PG!9IYxb4uT3NK~Tvu2zu~@x^_TN9s)tv(jf@l2thtX`GOPC z5afDKt&B)6X#eV+x%%W;&%b`u>KY%jXXUi2mHzB0@l)Ar=W>pXNyy+99QR%Bdt&&# zi1Gh$n<(In8Peo(%vU1dm3XVmd_IoBcct!`$4$+4jhZsz(@AXamA^i;E&Xz#@LYwA zY#%*)FWF9>pP&1rwsn5d&HX7Ayo~q9*hZzZ;@Q6pE)S3|h1^OrZMn9{ssOJaFg9zn zmweDg_NHN*T+>PnOK!PXD>_+KVTiBqcUdplTz3ynW$9PTN2n9pL)4eAEy#I$-@KL! z?&d~S+KU|@V1{zBplRcso6RvTS+ft%Y1vm6raUa2)zZ2C(Lbw~RI;x`OqKa}Z1Wvd zeITIx{@m70he~(tvz@4P=j;z9DsO+r*449T-k3H#Vr=duep^B9;+jhh;Wl$oRYv>* zTZ#>e_dfCHvHOty-^gb!-0{ZC569VdT869`;+Ha7d2|Fc$mDV8tMhxLt;Mn882NLzDrt$tM~-nfA~r7*Td@o0-;tymF_c=8W^y!FJl(3`BoS7rBRSu2}L z{TgDt;p1PXK+xBApqR+qn*wp+GIE~+LgFWj88Q$#cey61AwOYT^Z1>;V&T1M$@gu`b2d>D{*Kch-Zgu_fb4WM2 z+4H4N7w_%&RyJE7Mf)FV_wPtj7e(G47u!*P@%F*ko&F8`ZVer^gLk^jzj_ijzT(A> zVs#9!vV7n47Eiw$W6wo~-?oOl{>`W1+hT?zXN!qI)1LW(9aFzZ6O=Zog_<(zq?u^*v#^gC5EuYEKl-A>-dlgQ<*?KY<) zlO8=dWv;v7=e3JIS+l>cIlZc8M$6R(?9AtxTdR*-hc@tHmr2>8y%W}OjGt@?PC~`3 z4`LG6`Lyj0T$N*ekm)laVZ)B0cQ)p@FaEG~uP(~m^lRS2xnpi-z&Yd9ZiG>e1S@niNsu1{p#+zCE*C2TR$Th2 z=-A!Z7fvSFd~EGA)Hl#AH9qT*vIpUCdh7w-{p0hMTVqY7DMk7~6eYSLNCIS?&3{pj)q&){VM21vgJ-Z5-ZoME>oZNiU2n zzgAN%XsowZ{pY=7dyoD+D`xxG@4FiI<|bTuXied*ev`93x@E+MjOw0@huv)@B)~zb! zR4G=gN2$oM+ExXz7Qqd@S5S(rcsO;rTK5Iqpze2)AiN+r?LGZCIVYKi_x=B$=bhiX zFkfb6R7A*7`-%1t1Pu)f4UD0#0`qr}9rgR6&x#+Y%V1q-A^|}Tqs(6xv~kmT2=a2p zViU*&MYt5fH6BV8o{DgbT!c4M%oa;L_#&~`Q#^w$;PFK;PY4TnT!B#P$&-2t*qtAa+@6YL zdR3YUA1(`Dc!PGsQyl(+PS(buzhGf*eN(1z$ zlEn3~IIfmkS6S3sgzSI-%c^336pv|DxPh1^gL_-L=es)_8mJ^uIkg_eTpph*U$o zJEpH}`&M33TvU8@ANX*eEO@go)ckh?KwYhSM0mmJY3r_R)hC$eRGn?niv>LD1M|(lomQ~Bw>9zoR#lN1w*T{)|9Jr_nl9 zz`t|LOj=v1hXv|61@3xK={d<=8{uyby6@<3P7J1Fihwj|V+I#3B2d8K0%_333@%zk zpn$;z(x8nQT(pQl0fP&qK^rr;Xc2(|1{X+!HfC_qA_4^rE|3Oo%;2I$1PT~jAPw4> z!9|M*6fn3z8niKkixv?mU~qvnXk!K!Eh13B-~wsT#tbf6M4*7d1=6668CB*zFv!`uq{tWdGst!w4&BG>ek2e&VB%;qMb}O2XAFjU8asIx(^#QTvqR(0Hwrj@a z#L}CeY`OXJOzWn{FHX1?xn&M`!1~dcwsqLfi2s(@2IsS`Ky4FruFn5K2-_wb^?*v~ zv2j|;pj#b}J=@B1zhiBHP8-)Rjk6h-@9hh>AsHXLE}M`wWy!7y6N{g0C>2exNe6xnpupOt%IcChQkk`SmI*coV@n`JdT5^wweOu+2R2tWmbg6CR6W?Kv2ACpBZ4&RSJYRgO zwKz6& zrTrh%0=~FlKjWjuG;!vuWY?gI8Y66cny7LzUh|!9`ns5uI6UHy*>HIF&j*gRj}lDaGL|Rh0eB_S0AW0P0jOU#oAtRvU9%{<{!O% z)sRo!CtdmUu4D9#FQAyDy74#M^1~bA9Ew?7){d*Sxy2RNXP-7ctUA`LL5Gx18oz2* z8Mbz-aj35bI=sI2wO8BWbL-~2*r{eUj)LyVQVjZuZz5JUwG-ME%Zrw{6xF#MZPi{m zBKW8CIvZ!VR+qDqg@?A=*2S{omlxjM|J%ND?zze1L_>q@1a_MSJL=Zvxg>9F8J1a5 zlRYMP&9{ZW6mAdyN|Us?+|O`oVBFl}&2>9h|8PEBaZk~HXp*Dd!;w(~)b;0&FRicH zEi71ad2Z$Xe{Xe*bDp==!=JrppJL1Jd8tqL4WH}2L>_&IbC;t#Qrn{z= zfckS&%bT11UCS@$>npK6&6`?`WyTjJ5{E5h^WMuzkAyD`4dpFs3W5!U-`bp{8}EIl{>a_3TJf`}*Jq)U^ekc9fyI^PSChkn LA_DjLrxg4T64|!B literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png new file mode 100644 index 0000000000000000000000000000000000000000..aba3c37b72d1ca7fbfa970230fff20cb5aeb995d GIT binary patch literal 15692 zcmeI3d0Z3M7RM*7EsFXcDo7P$s3K}ISx7=+2q-~;8bCw@v>%DdBpJ-sOppLBpgyZr z(Yo*e*Rs@yq9WRg;u7~Q*5#=vZmm9X*JA5Z#nMTFa6xd|_vxRL&nKC~y}xtLo$opK zGXKnixR}wN9=;wB1bIe9O5*V=+xGp)4gd8Eoxcsgd~AqJ#vrJRm+eb|idOqTQ1GW{ zLXs&-Iz}khYZ)?yehR`cYYn&>f<&QagG@dZF;S-=DpVIjds?%fMnx4NvO?r#2&aM zGAfk9c*&^dbogH(G_}cO5W;XqMg}8;!_XU5FiRj1z)UvGX47#69m~|2WM;Y!^LGS! z7e|6%awBRmp?V$F7FRY!pKc1F(QJuYKF#-~HMAtsVa@Dtim+K`fLRPC+>w()-r{3O zH)`xlQ^;XNgJ=<*3B&zZ9r_v6dXpYg>pMx=GTmunye3jGq(KoEzrT@0ySfhsdQj=>RtF#u)z82J8C$V{?76$R7+aTIc)Qg77C zOkz|kQz5WHrxL-fgMhN7tAyctjoyea3lVcfa7V*{m%Y=3Q98^d)5(!2i5MSXpr}F^ z#N!}b0m7!U6zm}S6lG8_J(ww1(B%Rd7vb?Z3Z+tDhbWbT?(c<`=;i6Q-O?Od@fSk_ z?(c<;HKO=QC({5L+v@*niVniOmnss)@czsM`WEkA`&l*)`J(OUy9o_yKa&hHBZk;^ zTnO#mmTNi0TFxk&kA3F~WpdkTCYIYa1fmeZZAM#{)#BOghW@_=bi@bTJI|4!Msy$A zP>xV`Rp&u4z0#B+Ga@5Ycu)M9z3zzG)~$Vb5o|mCHE7#HI7Zvn=UvCXUr&+kP!r<4 zfUiqtuK`O0zc<#J*`ZIe)l`#i*Ynv-`~$OWzs;`TbbHt254(cX?Oj_v$Lmm&nBAPM z-7w%~J9!<)!Z`dP0TJ`KTn<+Rw;yir5r>))O_Bt~_b+DaN-ln1cAxeW9Xcj=<_JtQ zJ32}Q{5!W-(lLrZEa1;6aLa>A+akAYgumHny`#T5Fc^+Z0@5I~NnC`8Kmmyhq(Nwt zxCjw}0umQUgU}{%5h4NwBrcE!p-tiGfdUd2NQ2NOaS&KwB(tqH&0hoE#O1U*QFAYlOndFz)=J~9e| zT#BP4BNEJY7m7aDBt-N)HY>X(T64f{V@3QYJf9)`19`8`opt%n*K-KGbnt=^|2*fu zxM+RD?I=Ih9+(%pJz;U*I`uYg0gOU#3T+%k(bOU4K2o zG7q6GEwendq@*$olwe9<=Xp7kbB3m6`&UA0*ZfUSH@}|cUD@y6R`VcbVpKAsbhm2i ztTBaGc$|rexoZu}e?o2CCDMNgBjLw-~UJ!Zq}SppsPdVFI_FN({lUwpBQNnx+cD)-K#?y0(L9b|p9qfl_9F8^7I z>W)_DwuOxud#hIrhp)c%bL~yRAbI^A)#;LfH`m>FS|g^^nF=zgPuzvYtCKCV^&1ZU zz7u7<$#p*nU2&t0C z{@$cYiG`jn7iD%gA9k*CsqXfQnHwg)q~B0-(P!MN!l2*!`A~Slmb8YADUrUfxXLwO z=Hvxc_IOn_D$HovTii#ch*WGV=u3GL*~j#{7>{_DYA2y?~|_=TFRC_hACbHtlT?u6YkCTmqxg-#}7L>)N(p{ zF?z$h$jLW4Xl+>>mS4AFfpKJ)uT4*hvTir*%BX>5Ow@-G}AoHjNCBZgN*$<8`n9* zpY}N3`%IUtup28-dUTKZgEG(a8^dBKhb*H%c6yeZmv4@<%6$UX#Mb&939NZWq3|14Ew;r|3Ikg_ipLlyZc}1BIxFCou{r4%ZqE2dHP#!-g&2mFN9c<5yAsKQ9rUIV{UuIP&(Q z*;Nfw258D7;h_`zCAyU+R#Eu-hj+b}z}^~nRC;dH?!ebSSo0GaqO-m!eEi>}iJP9! z^`ENT>swlL@MXZiPCizCAHI7@(UtRQ`yv`nmMCBBb$eX9=JsrlU#n;X8Tp` zTPBE@QGa2<8|(cM$mmfL%xwilv}Bd~1$%Ix)NLal_Ntq;y!vJC)snL%35&X)*`0Ij z3#{gJk-6?}+_!fqST$cdqqAIA@p+!2y6t~LfF`Y_Hm7?-gP5KyKL7Z({9gRvc8v76hFi55dj#l&<4 zrg!5CSbAm?R(vhY&)-0w}bQkf0EM0+mdm!Q?Y z5kn!&p(n)587hbV#U$pbRB}2D7Zw%<6b1&!6uB@ZEG!HrQ(-EVgepkNWl|MiO_D0T zO-Y{Ri9wVCg-EUv$)p5BUVgT$K*b~y4TXk3L-!?-4;PXuhuEPMVKrY4Qv%5FcqXA> z*ds4ch>b%N3SdNxND!$?iTWtx`s8^sl}wo@o1o-y_k@MfIpJ`IYmYl#iDcZ;N>%Jq z6u}VEah=MfWpV^gK$Nlqg#d|Nir$L%cz3T7<%~?us7!{Q3CE78MHAQzJtmuRDVS!6 zf!-@UT7mFYGDVV1CT5vd8TT1NLUgooRT2DBL{g!wP&tzUkF|`<_eeG*hOa_c=z0tx zktw7=auOwoPNk8^p>#4C$Y7FbYz}nu2>B}hU&;b%fjmM1 zJx8XH@Kr34grAGRa%nCD9%%%W!%K=DEfdQW=&%r0AOjw+8E_ew8J#Uvs`yd?!j55~ z4FMvNkWR@F^0WD5At@N$)+9kr5QUUYqlS@ap)^{cAR7s$hM6F8IH3Kx)G;zafnlo* zr566p)PViD)C(0N^qAv|0gYkwf49UqX`U+;CsLw|a~ZH`(WPrV$P$qyqg$VKh(*Q& zNzPX&5yN(45})n2;S+55fHHWD+m_B37>+WQz_1$-Ap;)OIx?(b=a5bG|4yJOKVYA@ zMqwTzop3jq@)#u(XHd#=RE2y65|xWCh`+MSO<70V#-?Y$hI3ym8a)f9*3pw=-1F#i zeSR_-hU1KmE(CO3eB%UA81Qp#Bb7~ho?$}81x9@cm5hF1is5(23U-gRrvAAV>>g_! zaVASeDi(F9+L&g*WjJ$9XF?+Sc!02i(G5&vz+;=oI=CV=BId=2(9NqfEJ+%AUq;W^ zj&Y5t6B&VyA){%kfPdu1nKZScj|u1#3OxLXGJ2AScfmg#jNH*boES`p7XfKt#yBoa zM4$l21=7Hbaa@>)Kmm>mq=6aZxG)ic0vs1e12e{PVIl$rI4+O|W{l&)L<9INRn210DjtiuL8RNJx5rG067f1s$ z{!?5wBQO0SQuIx~LiCls$}cOL(ANP8g17_@1Qq#0kfs!Z9zI2{dI%~YLr_l^1kpc) zpqFLZ%+e@C|E=$<){39EPRZYQ^XE6)?)EPxlzCiq?8wOqy5QhvdF)U}n3>0<9?d?Dvu;&} zADp+#+q`6trYthI%5|@0@Z+nHM__+!q(hYhSD#CfPvzO2wFpKeW!2(FnzpS+MxUjp zvAt_I1kP^xOuL@fR>T$@JTOz$uv^PI+)}QUp8GYn+P%~F&D^Uy=J#xe=YGQb-isa5 zb)lrP(}MlDrgvjT_`wS+Gf(X@Cp9hTT>+=87a!J9x-XWsx`=+fzgZm^TeB@vR<*~Q zyPO-61J0$NGPo?eFWENg95lscFiPaN^6?8UNvos&$g2ZgWB4quesfr%BE>=$I%6U z>?3)9@pWhXc9ExR-p9LYPo0`sM16M?*L`zD@a?T{3^>g1j@wqfxMa?Ceu=wJ#Zj-! z41dvT#J)UiPkhVy%JqW>H*A5rDz*>API1b5zxuXjWukW0&h`F-Z`mgo&1%}r5Ov;I z_kFv+NYwfwJI%4`uC&>;V)a4c0i)f5{b0_q@8{$`8DHNKL;cN>?2qkj^|USNjBxX#=A|XJ znm!%%f#cN#Dlx)|HtD-hdqS#{+Pia|$=2!%6@6wWzW+g^*FDhvWL0dHY`NlS)2=6R zR&|H3c0F;|g=Vd7&!Um9Grv`b|Ho>9m1?IqchU;SwfXFppLDz(4YkyJ9NW)#Y#98! zJ7e1W#abWdBKTGF6`77vQ!QP*l-*QIqdxEu^O3q0PlJp0-u^Snk*b2{a#6Z2Y9 z+2%fd?+?z^*|asDy2H8MH*NpQ0bkDrp)2gm^-q$D-%c;-_1wKh(@Q0&xFaXGc?I_nmf6^`_D&QPK}$<(P%foGCTH3RDU=9*0~^RW>4PBvnzCO z_}m{*Oj&baUFN(Z-*fHnQqR_3O26loa&(XP;+t#z&F;1?+Endzk;#Z?Jn5{x@t$i< zrR#2nuU>9@fxo-j(x*To*v*)c*66MO@x!WbJLg1G?@11=XNo zJ@lTnug#*izv=qBO-oG8A7M+0lOqQu)~wd~*QQ770;h4OCEk>2S?8n8k0iJJqVhYP z$nH^ciu2vht6d_b=S!?vQ`?N*|d?S;%~%`hmAyU)9YITx2=x&du5I#-`F8QAhg9 z>SipO-?Hq-^SeHiJR%RCd}Fmk^4fvxZH*t#?)V^o|8_4+CX{lFLciU)@3)5{Oc~xNPMWs zI#kVUqtP-`LbdS<#jhTFuHR7eoWj28sc5eEyI9*$zUZ2d9$_b^R=U;NubJPH6aJDo zF@0ZHve`oSs@{&ryaEe{Bd(X`ZM(jd!sVLTDN?Ro^}LmksZ6{4`h&wegFNacyC94& tTP5a9UC9>#q6w={{!J+NKpU) literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png new file mode 100644 index 0000000000000000000000000000000000000000..1af7e393a94d80ea8abc2710f6d51045d1bbea91 GIT binary patch literal 15695 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 I7#O$o|I)SQdH?_b literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_eye.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_eye.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd1af163d34a478866c64245f85e2d3c0b62c0b GIT binary patch literal 15374 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png new file mode 100644 index 0000000000000000000000000000000000000000..d24a005510229d100a54e72a9bbf822543fcae28 GIT binary patch literal 15876 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 br4Zkn0j=6`3lL!i05GpK~AG_)Q%ZSNS literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png new file mode 100644 index 0000000000000000000000000000000000000000..efc00cff6eb75e0b8bb77544dfb51bb4911c7b38 GIT binary patch literal 15745 zcmeI3d0Z3M7RLuc1yoc}peh=JCf6f zKD8F1MNsTVrG4%zQ9gdGs8q#;QbEhBTUA`@QiVR>Btf_!IBh@ubMpBlbGY|+&bjkF z=U(QYSs6KXazE!G&JYCklZ1<-@GHymb?k-z4i8)L9e#1rh0ioVP#-tT*ACiR;0Zy& zqf{~RSiE!!PmXHnG6kB1(2W`$u7)6fm{BK_FF-I#5~5UTL#a=WRZuA^MJRO!N6L`u zL`aG%JVTE}XH1QeXDpD1D5zlqXTFh#2hbpxjAGQNwFaIslxmI3!)?njOr=;Q*n&{% zcuPV`yfl&`LiGrRLl2_K89`hMH-ygQaJhlp01Au2q}Fu!U!l|#4Ab#oI4v!Wp2nu5dL_&Z2?>E2ESSZj;R>1|U5m+#G_Aqg z7UX>#F=CMGRXR+CYAKeuvLrMW3#C#miP}D`_odObCDIyN+2Isnqf7@g=?u6lCxyJt zN0+KsTbHJg!-yKuAX?0T`!T!p)1{yoYDhu5N!d2tZDPD8QfXW6F4wEkbeY@VpDdCAw?CcY(Cu8FyLkFG@e9jz+_rEA`uJl0lG@1 z;Bi8dgM(R222Cz!Av9J{U@|S3jU>^M85{~LQm7H@RLra1~it{|J4*-g!v#_pW3uRSxAH;wrV`(xyGG2-I#Gl#gwx}K5I)~@OmeXIY>R1TdXvg}z@7NFP$+sM8 zJiHh1b;+zXVDjM)#@aL6^zoLOs#C3cE{lPGV5a4_)fJrX>^k$~uHbZM*LKfXtqK#c zTC;T;2D~gMukBcf#vc+8K@f+-=J4Up!<{`MRYpV|FIM6E*I?;N4t`%&pUx9qI?n9Q z5twLow3Q0@cW$kuZ4`f4z@Jm#wg;7tMQ+;&|FF@1NB?kOFdUf#q(NwtxCjw}0umQU zgU}{%5h4NwBrcE!p-tiGfdUd2NQ2NOaS=UrdZs%y)g^x8yU* z%15G0%a_dUo4-EN>9TUqRpHpMjh7=>?3x{teWp(@1nfvL)akER^l!ekfB2#1BSnkv z6+T>2dGS@ky`$Cdjwjs9*=vXxH86aBZmH0o(Z{!U)pM-6hnLX*>ELg@YCTS;pQD&A z*cJAQvnv&HFZCMs^pIDuyxu?eoEiJ7?iSM=lGx{x!~PQO%96l4qb0Y>X7GG8>tc#d zPu*6+_1SiC&xw4kq-IBwe}cbi`L?Fb*tDuO_sehkJQ(+rc2l6AKV@yLWO>QB9zDK? zSNV7yDnC2H{>PNca>S8RaXhK$OOaiOB5CQkk)$x$926K{%-n7`k922HK`uS!!FJ}SoAFG zT~Qdd2nsc``_4ivqt0R)zb9j!APja@oJCX-g`N9jS%p4^6^*XYG_OGciTb4cIS=R-DJ9$srKz4v>)2>Qj7F}m1y&L_d1c9{;lU+vxYZ|vor zSyh)Vzvc5btP~5YST7a|?m`|DBD^W}!ime)&=vf~4W_07N!^tHRj|D7UkJ&p-;!t; zGXH^}Fv)vY&pN$%b9LdEbL;w+u9nuCu9>TcJv}M9^T_j#`|a|Pz5e4`n;=wf?LXtm z%hG44N8;9Le%lHpr!vzdyf1`kmiWKh^R68;>$k7ka6oWk@VFa?zJxXnx@{<(`sT&& z{Osb~#|HCGbJoCh5z1#nGB*qwW5^P~)1bz<#F0$PS3VW6#I&)^^*$idf&E2|3k z?2Qzx&P_mOk9hUES@{-%E2x*%54YuP>Vy$>53l;stSC|Sb2p=U3OuE|Gm-C zCD_l*+m-uzRtGdZ%6x9T{ai5cUxKg#*7tLEygnuhey4<%&fOTB=Vywwyd*7|I90rN ILgJGD18$-2E&u=k literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_mirror.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_mirror.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e7c0ccd4ee9104eda4055162511a32a4c1e240 GIT binary patch literal 15819 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..98de1eb23ee321a7af9c14c5e32eb79d2f0c7bb1 GIT binary patch literal 15717 zcmeI3Yg7|w8pj8ssGx{tt5$`^fYz$XjtKvvpYsrB2!i^_q!KxC^?6sONZ<1lR?qp|oTgN~^J8PoV->@d9; zjmM;E26ReVc%(9IwlYA)2ogC9Qv^f;4T>Z56pdPI6r=<)YDIi+EL{>F$Y59twS8LeOQUZqq&2p(BPhZth#uy!*l<@Sm9ovF zPco=&LsKbXRE=s-Ep8-yoGyL(cpa`Y#_PH%+1A}{VPa0g!rE$gIbMyX%hE8BSO~JacS$pg@+fuO4kdU}n zf!Kf|xXuu%)2T)FRTl9MAzduCtt$GcX_!`}GZ{Y@!ksPc^WB~el^{4OBG#iHlg(lB z*pVC`fsc=X=gVaK3)pNRiCx(#N0?59#in+ZgD>#ukONS5&Oz)S6@nwbD+{Ov@~D)8 zSe-$G;377lbdl!0Qc}!Ftj|ri91Gf9sa zjHq?T1v1`kxwb>B?ToT|Y&%zgD6OZNNNL>=s7eTTXl)->o3qu1{n-h$=LhWF*D%GS z+7E3gdn%i%`y@tPEN(&!XhzrN)TTg#A)^Q^2tsUp*-HLsGK84mp zO+c&#VqA!A4md*iy|(tsc72p}PSr^^y&soNd|;0Cx77-EceYOduodj?Y;AW=)nd4a z+ghztGvKnGy!K;Z3h|JDihTKe9$yG|Ztm=ez*10klmsL8uhF_H`NVzMJe@nbG*0i% z2z0a>?NbH(JGafGy_I-aAf8j;wg;7tliaou{^Fqhj{f4rU^=P@NP{${aFHSc1r#oj z25C&;B1HrWC|n>7(wM?UiU<@?xIh}DF@=j15h$Q=fiy^C3KuCNP(a}VX^_SgE>c9G zfWigRAdM+pq=-NPg$txX8dJDP5rF~<7f6FNrf`uW0tFN!(jbi~T%?FV0fh^s zK^jxIND+Yo3KvL&G^TKoA_4^zE|3OkOyMF$1PUlzAPv%(!bOS*6i~Q88l>?DaXGiY z`iE+X_x()7i+wHW;k$^J0_jSrJPd-;MnF(TCIr2FOI&}2pd>Z~H7FoRum*w#>2kh4 zGXa8n6w4$bktsJT^5@3qP91zM$kaD?X1yi9J|ST4k49GJhT{yQ|t zvf%X?>5@Gy-wzHAbqi4-(n+JoxD1?LHSub0)*W^329~>fSwWcbn^&cc%MRa4YW|<8 z`9$Nhd8M@_1x>=bITusEDO`~)DU2Ve_h9#0A=cP_g88M3Dxy_Dqk2M~(NEAaN>Z<>4;h6iy_dK+)aB&g)fkCzw&(D&kg~})O z7M111tirD!KP1f`8XJDpb!&Eoc0;u++RZS${NT%+L;1~4GWU&+`>v07l^z?p9FpIf zn)7^m)ti@2`))2>zsxN-Va`o%^~FKiT3*47V7K#Cvu>QoYl+<#9YkA^;i8^**ZkPx zsR)Yr#nPq&5aI2c`CEgluMwum3P^#v`b%4yds?-Q#Q zZi50)=`TY(NfaN&(-zx3i8r+#8`9P%0h$|U8^vdrnO>SvZ+IWd>#VyTlA z;nL{5?23n$oxYPstnGi?HL@tZS|?h#Ioy1*qAEe`O1n1a^qh5>pKUuGp5VTxGNg{x z{A$cBy353`9@O_arQkd&(Y#D-EdSWzp$!>=PrR%-wT=~W|2!>wo#nx%-KquW`67pr zucXOaCT~Aog6-QeVo0tiLEPI;gI=Q z(fb>}(KX_MXYcpV_ukb!v#>AC`;(0;&kWP55Ao9nL^&)iL+;nBcJkSgteJ`yFY~w? zKYPi!OQRD-}P$jrKiKSTOkP-iAY7|CzYUCnjM**?@f?&#~#QjCe0ghOI&+m`} zr8$TCP33whLoP{rsFoIe%DktPHA}az#y1ot$gWL1#>~7Zyz}@T_p7I46VIJpWLfFo z9JJ|a1*b=L-oyPqxBgXV%2>#%ee1d5$u9lc$9iyoaIF#7 ftWEFzHV!&+bNd&^o>w>$M;;^#4VUa5ubBUT^waVK literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png new file mode 100644 index 0000000000000000000000000000000000000000..08210b5eff4398b2ebfe2cb048f16bc00e83a85a GIT binary patch literal 15783 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png new file mode 100644 index 0000000000000000000000000000000000000000..a4be8f8f4dd8dbb7c6a5acb669f9b3dc249cae0b GIT binary patch literal 15657 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 T-523U6$HgZ#)&GXrY!v*kj=tM literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/cp_ss.png b/2023/scripts/modeling_tools/creaseplus/icons/cp_ss.png new file mode 100644 index 0000000000000000000000000000000000000000..af3603b8541744d25dbe28ca229f2d114a2b4330 GIT binary patch literal 15952 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 LNAmW~6leVb-;F_* literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/sp_crease.png b/2023/scripts/modeling_tools/creaseplus/icons/sp_crease.png new file mode 100644 index 0000000000000000000000000000000000000000..998747b2169f8ea3c33e27001a072f3818fd041a GIT binary patch literal 15956 zcmeI3X;>528pj7jM5ZDEJ;WPffOr9L98f{ zf(oT-l|{UzqD8I>Rvz0cR;aa9aiLXuuNHAHphes|2?z&-PJ5qzoIFo5FX#OK?|bHV z7Us)rUJ>9u-EgiU1VPgUKKvm3%F=ud^zmPFx7ypwcok2y(VW zg<)8jzaK1?CEAH3vM9tZHBpYMA&BFaDi?|45sVUr#Gq0x^+Cf)Dg~8rsi6-341c)? z5{vq%6iBctKqywli(MpCH=ZFU6~+@JBAAGhnwTI}!l_)UHZP3Fnr1qcqLpCrT&laK zASKLy1;sZV#joFa$-B#QdkV81D#<{w`b5;_Ar|Pvssj(50z(# zM;wJD8V=%n4VA&Mu1_8-!(_@>*#sqryC*D+&xybPaP4u&o0vFmX(i^l z4o5JAbX=!Wm?lT)L5Nb8tPmrf>+oB#81L>eGL=wmG-^F5Lc;fpYYhp$H` z8iPr*X9}54Fp~|lnKXto%wPaX29;xS_{$_{blP}19ALH!m;+Fb&4KS9i3k(@r7WNp z$RiQM(K1D%2;-rNq8NlOm&S1DBaMJ^cvZn3vILm|9~Q#1=g`M%23*>e1`DK0Oe7T} z0zMCKutQM^EI}lQ*q$Y!NhBg?nxlm6Op6jT*fa?c5sTech*Am_Xq8-rRK}T z$(r3Vlv?sPQv>$bQZHAa_(>;905qD>|J@Sfq@ztw6%Yu=l(XFpK z5>V}#Bo`@^h-Sxesjs%&@F6yQMrl0SoePV^n$wIY)@%qw!l9399U0cJbI6ANzY{o^ zAFxkcBPAA*{@I2aOr=##oJ1*$#!^HI#61RI6Mto|4`v;08=Ia(*PQ+d=;(bHL=#UuzqwJg5)T%xOZhR`0}O;2%0u^E+e(yT@9?|J(|8 zkF}0CL!>CiV+~as(+s#YC-2~~5R5-0AUsD02YUw&eQfhs#|ktRNeJVk`2JODR;2@e zUs})Dj&Y6Q6B&VyA>-gw0sqdmGdb9bKP=$SDfHn7mC=(tyb=E4VC0Ve;lyA%vIt0n zFeY&kA_4^@E|3OcOyVL$1PVx8APvHp#6^e*6p*+;8iX;4ix3egAaQ{-2xAf#AtF#f z;sR+9#w0F6M4*7g1=1jlNnC`8Kmmyhq(K;yxCjw}0umQUgD@s>5h4NwBrcE!VNBv8 zL<9;*Tp$g?n8Zbh2o#XGKpKQGiHi^sC?IixGzeo77a<~0K;i;v5XK}fLPVf|#0AnI zj7eOCh(G~}3#369leh>GfdUd2NP{pYaSc@s|QAVxJ&?2vS)=P(~I6J$Z>=yCEo<0YSGT zAqd_HL8dbG+W&Y#(BuOGzPm8>YHR8HxgjC5Pj67J-?l0)p!&0$esMutw`N<%u9_pT z>{~u#2_v`Gz(#dGYxdq{OVTCVr{-9#+#Y5bSRxe0#?kM2if=XqT{!z&Ve!7TFVm+u zR=wYKU-{rukx4@PiLSdx9uGW@uQ~C!TFuYi@5(ST>kgVxW{CAXjgB;Z$gMT+*X=iR z4l8W8Dh`HyOKs6DFP6Xbxw;75S3X@`?+dG|uF=(%KDUFm(JBnr?dXd-yT@4l#SXUR zvabT#j;Oa+V74D$XsF5H%waz}Qf_m0UWlcCK^^bB>q&>qJT-QH`g#jgJ{c-+fdqGc zIvqIa^Th>IvaTIJY>YQmtP!i(`+}CPsXgVOKF|U2gB0p(%8r(n$vrv7v{(-)yZy$d z3f(l9mh<(Bw5IyTV&gMko21vz&+s`rt)ow9ThL+-?8$Oy&o){3|o7w4^F9F{OAS0cYfi(2ff=%i%oQY&KQ`-XrB@4X}Da! zQpaX}Ik&7TAhh>+A)N9_D5BR>_~i0D#@P++UIvdRnM~@)Y>C*vqwL3giP_Ab8p3aV z`R18h!h?1E6#ac|QA?T{J<8oTdmlV!aAS{aywJ$Zq|b+WyrraI`9~L?HaB{gU#p}@ zzV(gBba(00>%3%;2{%U_^uCbj_+S>=dcFEcady4Ve8rr~i%WZxXC}`m+5Hyk$J+Sm zyU<~`&5Oj<=bm*l-n?%^%d*)y*eCF#f<-K^!R z4aQ+pVyYZBhr!p=la2Z>Y_PMY_SHQ3=8V@mJ&(0{Uhv&-eg8L$B5;1zP+pl^o3{I) ze$=wN%6VtqW+(01k>42pb^mwjZB`;q6X*M14tc6Nc@NguTd3~5)0;zmWX@b$l*B&w zNdHSp>t4&QUoTNr3kCZ=m|0jT>-mg!yAJoy18F%U;PPvOWT{DJTX#X0h#kICgq=AXj~b}o#iW7 zXIr=Jw`|r{x{ecMs{1ed)=Q!$GuLlKJl^j~{fC=PDzs}~mCtSR?|A+Z2@0jJM|L}m<32(Z-rDI|4G5w@?gS{1Zx+m|-`mrN$(F>!F zI`$pU@1L5KT{T+jS5Mnrta?;$*XH`~=#sd%=UOG(b+NDz{h09Xp7c&SEc~xZ^_B7c zH-ewkgyrbF+_Wlw5!qSVRC2<)+S>-YHCu9}_hymJQ#RAA}<=)?3>O)vf WcV$vuYmVl528pj7v#CXB0RBJ10h;Wr+GFeChF$9oc2@pU5!38DD05L1c00Gg4s(r*N z0*XbHmRloO?xiY9-2rPA7qp00R9ss(sMfWmSgCgs5Do~P_CEbMd7flm&iVh}_ss7s z%$LcD41eE|^ezd4AV*QKa5i>jTD}hU*zZKYRlBgua9!|R0|bq5wtQ`%;w|GK$lFa3 z9f!t=!+0{SnkJEJr3lTa)?sQ0;`^rcwy^03&_3{%Kf399s^1Xv1^ z7jvuPZvjLzYbxjr-oo6Gg$P9rnv3^q(>!7MtJ$>Mp@d0tF%_lF`NVG&<1 zPvp%O&g?FS{pCwZMo}FPhSSs2Y3VGQR-Xhje0+RhIum9xshEOl$k3n?BUNLV+?C{Y z9wB0o=@mLuq1BKrc_mV9D(Xw2SPJ!gy6;P^>nWr$bhE=K!bXV>X3*&HKqk4Y$D>Qt ztE@wl%V0!>s1Xfnz5Q2PxUpJ!oNUPQ>D#+5?VPtsbzn0S!vS5OgCQ z&}oRy&>`?_#Gp;p%aEWn>{ccZboZztv3GL%WU}-OI(EdU7{q4j>9SduLe~uOv3unO z>JbU5)kkZ!DnZvOi+qic92jU_RphC$3XNQwZt&p4{Vl!o-J1;&N>D_Atw%1E&Y-dw z(M&pz#o#gMRJu2hP6v{7Df{IRYvqc>jDd478DI`T**^!if8-KW@~5(ZS|E>H#!J-d z)e=;oP)m{!Sf@$i!@Z4wvS(HC0<|iw9vc=SVDaIBngN$}rSU`>11izT5Rp)THP93a zIZrC(aJ`sP4%M42lTxKjFDcbWhH$7{nFNs|a+#bhL97tPV$l9ZYN1w^YS}H_spWq$ zHDG@ub%b7lopcfvps|epua+1f%^RhH6$Wg5W&rCJTfNq^EDA~K+xoggrLdk!I*HzZ zSazH*<@J{9ImCL-D2vCsb9oY(EE@um^Wi?Ny~FBpcH0#H?*w+`2ke8_NKZyI zf3%^xQdw1lCoyOf(R7I(2}r`$#Gl#gU0M6u`lsi^meXIQ=sOWzt$pX`^@@FSKKYhI zjfbrTY+MrS95DFs8*ROnyYz9EIaQ@v^;{+$`@js#Z?_ff?r)v@$5ybrzqQvHqfwv& zW_PuI&49~t@^&2yQP@KQBH*yuEH)qR-`w93sW2j{IH3aDzXr>yWMlVb_4Mx;&^UK6 zBhb-p?3yaz-??=ryIQe_1?)Km?s-t@JIOs8;cpIl@91w%45lNBfHZJp0v9eKP(a`U zY2d~LE?h*QfWQUPz>Nu9xQIXjfeWO88xy#25rF~%7f1s)CUD^*0tEyvkOpo{;KD@& z3J6>v4cwT(g^LIj5V$}ZxG{kX7ZE5RaDg;%V*(d0B2Yl!0%_pJ1TI`epn$*y(!h-g zT)2op0f7sofg2OJa1nt50vAXFHzsi5A_4^jE|3OpOyI&r1PTaTAPwA@z=ewl6cD&T z8n`im3l|Y6AaH>+aAN`&E+SAs-~wsj#sn^0M4*7c1=7Hc30$~{KmmaZq=6g%Audwy ztAB_Fd*3e|d$G@R_(Tuvr9iSQc(xdVGTkA_v>bvuUSZc(2uh_xP+I~7@roemZEeA# zV>2OWs7fRZh&EoiP^?@P6Z2O62ZnoX4arAK!{0-$gw^acw=PfimT!N@cj^$2)l5>w zu7+=32(V|ON9rxRIoUpH`H9=LCCx4C~ zT17d#^^9T3S+v8AmiM;!aiuMEt9pOg`OUMk!E$@9OAnQ(0S5c9M#83S$)`k~N3<058F zzDMarmrDnryjh0d8s>_ zGX2%h!^izLq|s(gxZTlgKii@mX)j*Ixw|>V@H(&i$A@*GCptUpc6voRc?G%L-!hl# zw149(=j1(GXk#eN*Y0YZZYk|&ngbVln$pS_Egq}+*yi?z^L`}$Cf)C;YaHg-{5sV8 zrv>X)`{XOlx9Vbs+vSfiGlx8Jy7wZd$oZjN+T2=)eN+i~%)~sW1b+v^;q#O18ghLu zGt2$z?-lB|Wt;N$oXJWl(%!foI_vJr3+1Ouew;mJ*!pAJDxeO{MzNW4KXpNqHmIO2 zyZ%gw+Vx37d4|urE2i{Hx?|&rea=M=S5-la+eMluYdaV_kAEL_YP_b zN9shSqeLS&6>8R*YIfWSnRS2VKb}se2CNN{EZI8mhs~R8IpYsJ8Fjrr@NRV(w5VeN zE3xFW>|=>)zlT-O^fS3*e}8(-Pn{xRKc2dCitw|PUk;x06u9iV8Fg-D0=IGDUZp(TvzGpk~N&a zc3Ihv8^dBY6mKtlWSji4xH;u=NZDyPyZZZgUY;*4P;4u78)?%?Le*Y2N2mF7lRP(l zWz%l6bi%O6;5~Kz7fSXzU$moGXB$NBU$rRk7~}PZCbLv=w+=9RI_<^drs8ciMm7Kd literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png b/2023/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png new file mode 100644 index 0000000000000000000000000000000000000000..1ebf087102344f5b1c6ce4e872a2671dfe954a72 GIT binary patch literal 15632 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png b/2023/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png new file mode 100644 index 0000000000000000000000000000000000000000..af77be9cdc8c48258e2c616137a67d18a4ffbfdc GIT binary patch literal 15763 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/sp_smooth.png b/2023/scripts/modeling_tools/creaseplus/icons/sp_smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..bc91bde981ddb3fa6ed74df112219ea3506eb2d4 GIT binary patch literal 15626 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 literal 0 HcmV?d00001 diff --git a/2023/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png b/2023/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cf31b8f864664e0215f6fe8717c8c6b0230d32 GIT binary patch literal 15395 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 literal 0 HcmV?d00001 diff --git a/2024/icons/springmagic.png b/2024/icons/springmagic.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b647928c924a505be59dc56815957650e1b32c GIT binary patch literal 11579 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/__init__.py b/2024/scripts/__init__.py new file mode 100644 index 0000000..a5682fb --- /dev/null +++ b/2024/scripts/__init__.py @@ -0,0 +1,2 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- \ No newline at end of file diff --git a/2024/scripts/animation_tools/springmagic/HowToInstall.txt b/2024/scripts/animation_tools/springmagic/HowToInstall.txt new file mode 100644 index 0000000..5333dd4 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/HowToInstall.txt @@ -0,0 +1,8 @@ +1. Unzip all files + +2. copy "springmagic" folder into Maya scripts path, i.e. + "C:\Users\YOUR_USER_NAME\Documents\maya\scripts" + +3. Start Maya and run command below in command bar with Python way + import springmagic + springmagic.main() \ No newline at end of file diff --git a/2024/scripts/animation_tools/springmagic/UtilityFunctions.txt b/2024/scripts/animation_tools/springmagic/UtilityFunctions.txt new file mode 100644 index 0000000..4bc7c22 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/UtilityFunctions.txt @@ -0,0 +1,57 @@ +############################################ +# Utility Functions +############################################ + +# to get object parrent +# parent = obj.getParent() + +# to get all parents of a joint +# parentList = joint.getAllParents() + +# to get root bone +# rootBone = joint.root() + +# to get object all children +# children = pm.listRelatives(obj, allDescendents = 1) + +# to make sure the selection is a mesh +# pm.nodeType(pm.ls(sl=True, type='transform')[0].getShape()) == 'mesh' + +# to get vertex in selection as flatten +# pm.ls(sl=True, type='float3', flatten=True)[0] + +# to get skin cluster +# pm.listHistory(pm.ls(sl=True), type='skinCluster')[0] + +# to get all influcent bone of a skin cluster +# obj.getInfluence() + +# About path module + +# from pymel.util.path import path +# filePath = 'c:/temp/test/myTestFile.txt' +# fpPathObj = path(filePath) +# fpPathObj +# # Result: path('c:/temp/test/myTestFile.txt') # +# fpPathObj.basename() +# # Result: 'myTestFile.txt' # +# # .name is a property which returns the same +# fpPathObj.name +# # Result: 'myTestFile.txt' # +# # namebase returns fileName only w/o extension +# fpPathObj.namebase +# # Result: 'myTestFile' # +# # return directory above file +# fpPathObj.parent +# # Result: path('c:/temp/test') # +# # check extension +# fpPathObj.endswith('txt') +# # Result: True # +# # check existance +# fpPathObj.exists() +# # Result: True # +# # check to see if folder type +# fpPathObj.parent.isdir() +# # Result: True # +# fpPathObj.parent.parent.name +# # Result: 'temp' # \ No newline at end of file diff --git a/2024/scripts/animation_tools/springmagic/__init__.py b/2024/scripts/animation_tools/springmagic/__init__.py new file mode 100644 index 0000000..2c60697 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/__init__.py @@ -0,0 +1,12 @@ +__version__ = "3.5a" + +from springmagic.main import main + + +def version(): + """ + Return the current version of the Spring Magic + + :rtype: str + """ + return __version__ diff --git a/2024/scripts/animation_tools/springmagic/core.py b/2024/scripts/animation_tools/springmagic/core.py new file mode 100644 index 0000000..792a852 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/core.py @@ -0,0 +1,976 @@ +# - * - coding: utf - 8 - * - +# PEP8 formatting + +##################################################################################### +# +# Spring Magic for Maya +# +# Calculate bone chain animation by settings, support collisions and wind force +# Can work with rigging controller as well +# +# Need pringMagic.ui file to work with +# This script need also icon file support, which should be put in same folder +# +# feel free to mail me redtank@outlook.com for any bug or issue +# +# Yanbin Bai +# 2021.02 +# +##################################################################################### + +import math +import logging +# import copy + +import pymel.core as pm +import pymel.core.datatypes as dt +import maya.cmds as cmds + +from . import decorators +from . import springMath + +from .utility import * + +from itertools import cycle +from itertools import chain +from weakref import WeakValueDictionary + +from collections import OrderedDict + +################################### +# spring magic +#################################### + +kWindObjectName = 'spring_wind' +kSpringProxySuffix = '_SpringProxy' +kCollisionPlaneSuffix = '_SpringColPlane' +kCapsuleNameSuffix = '_collision_capsule' +kNullSuffix = '_SpringNull' + + +# kTwistNullSuffix = '_SpringTwistNull' + + +class Spring: + + def __init__(self, ratio=0.5, twistRatio=0.0, tension=0.0, extend=0.0, inertia=0.0): + self.ratio = ratio + self.twist_ratio = twistRatio + self.tension = tension + self.extend = extend + self.inertia = inertia + + +class SpringMagic: + + def __init__(self, startFrame, endFrame, subDiv=1.0, isLoop=False, isPoseMatch=False, isCollision=False, + isFastMove=False, wipeSubframe=True): + self.start_frame = startFrame + self.end_frame = endFrame + + self.sub_div = subDiv + self.is_loop = isLoop + self.is_pose_match = isPoseMatch + self.is_fast_move = isFastMove + self.wipe_subframe = wipeSubframe + + self.is_collision = isCollision + self.collision_planes_list = None + + self.wind = None + + +class SpringData: + cur_position_locator = None + prev_position_locator = None + prev_grand_child_position_locator = None + + _instances = WeakValueDictionary() + + @property + def Count(self): + return len(self._instances) + + def __init__(self, springMagic, spring, transform, child, grand_child, grand_parent): + # self.current_child_position + + self._instances[id(self)] = self + + self.springMagic = springMagic + self.spring = spring + + self.parent = transform + self.child = child + self.grand_child = grand_child + self.grand_parent = grand_parent + + self.child_position = get_translation(child) + self.grand_child_position = get_translation(grand_child) if grand_child else None + + self.previous_child_position = self.child_position + + self.rotation = get_rotation(transform) + self.up_vector = get_matrix(transform)[4:7] + + transform_pos = get_translation(transform) + self.bone_length = springMath.distance(transform_pos, self.child_position) + + self.has_child_collide = False + self.has_plane_collide = False + + # create temporary locators use for aim constraint + if not SpringData.cur_position_locator: + SpringData.cur_position_locator = pm.spaceLocator(name='cur_position_locator') + + if not SpringData.prev_position_locator: + SpringData.prev_position_locator = pm.spaceLocator(name='prev_position_locator') + + if not SpringData.prev_grand_child_position_locator: + SpringData.prev_grand_child_position_locator = pm.spaceLocator(name='prev_grand_child_position_locator') + + # Weight attribute to de/activate the aim constraint in pose match mode + self.pairblend_weight_attribute = None + self.aim_constraint = None + + self.__create_child_proxy() + self.__prepare_animation_key() + self.__create_aim_constraint() + self.__init_pairblend_weight() + + def __del__(self): + + if self.Count == 0: + # print('Last Counter object deleted') + + # delete temporary locators (useful, it's delete constraints at the same time) + pm.delete(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator) + + SpringData.cur_position_locator = None + SpringData.prev_position_locator = None + SpringData.prev_grand_child_position_locator = None + + # remove all spring nulls, add recursive incase name spaces + # pm.delete(pm.ls('*' + kNullSuffix + '*', recursive=1)) + else: + # print(self.Count, 'Counter objects remaining') + pass + + if self.child_proxy: + # remove spring nulls, add recursive incase name spaces + pm.delete(pm.ls('*' + self.child_proxy + '*', recursive=1)) + + def update(self, has_collision, has_hit_plane, child_pos_corrected): + # Update current transform with the new values + self.child_position = get_translation(self.child) + self.grand_child_position = get_translation(self.grand_child) if self.grand_child else None + self.previous_child_position = child_pos_corrected + + self.rotation = get_rotation(self.parent) + self.up_vector = get_matrix(self.parent)[4:7] + + self.has_child_collide = has_collision + self.has_plane_collide = has_hit_plane + + def __create_child_proxy(self): + # create a null at child pos, then parent to obj parent for calculation + child_proxy_locator_name = self.parent.name() + kNullSuffix + child_proxy_list = pm.ls(child_proxy_locator_name) + + if not child_proxy_list: + self.child_proxy = pm.spaceLocator(name=child_proxy_locator_name) + else: + self.child_proxy = child_proxy_list[0] + + self.child_proxy.getShape().setAttr('visibility', False) + + pm.parent(self.child_proxy, self.parent.getParent()) + # pm.parent(child_proxy, self.grand_parent) + + if not self.springMagic.is_pose_match: + self.child_proxy.setTranslation(self.child.getTranslation(space='world'), space='world') + self.child_proxy.setRotation(self.child.getRotation(space='world'), space='world') + + def __prepare_animation_key(self): + if not self.springMagic.is_pose_match: + # remove exists keys + pm.cutKey(self.parent, time=(self.springMagic.start_frame, self.springMagic.end_frame + 0.99999)) + pm.cutKey(self.child, time=(self.springMagic.start_frame, self.springMagic.end_frame + 0.99999)) + + # set key + pm.setKeyframe(self.parent, attribute='rotate') + + if self.spring.extend != 0.0: + pm.setKeyframe(self.child, attribute='tx') + + def __create_aim_constraint(self): + # Create a constraint per transform to speed up computation, not active yet (weight=0) + self.aim_constraint = pm.aimConstraint(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator, self.parent, + aimVector=[1, 0, 0], upVector=[0, 1, 0], maintainOffset=False, weight=0) + + def __init_pairblend_weight(self): + # if transform rotation has no animation, set a key at start frame to force the creation of a pairblend when the aim constraint is created + for rotation_input in ['rx', 'ry', 'rz']: + rotation_connection = pm.listConnections(self.parent + '.' + rotation_input, d=False, s=True) + + if not rotation_connection: + pm.setKeyframe(self.parent, attribute=rotation_input) + + pairblends = pm.listConnections(self.parent, type="pairBlend", destination=True, skipConversionNodes=True) + + # Find the pairblend connected to the aim constraint + for pairblend in pairblends: + + connected_constraint_list = cmds.listConnections(pairblend.name(), type='constraint', destination=False) + + if self.aim_constraint.name() in connected_constraint_list: + + # Get pairblend weight connected attribute + # return [u'joint2.blendAim1')] + weight_attribute_list = cmds.listConnections(pairblend + '.weight', d=False, s=True, p=True) + + if weight_attribute_list: + self.pairblend_weight_attribute = weight_attribute_list[0] + + def set_pairblend_weight(self, blend_value): + if self.pairblend_weight_attribute: + pm.setAttr(self.pairblend_weight_attribute, blend_value) + + def keyframe_child_proxy(self): + + if self.child_proxy: + # Deactivate pairblend weight + # Aim constraint weight set to 0 is not enough, it paratizes the process + self.set_pairblend_weight(0.0) + + self.child_proxy.setTranslation(self.child.getTranslation(space='world'), space='world') + pm.setKeyframe(self.child_proxy, attribute='translate') + self.child_proxy.setRotation(self.child.getRotation(space='world'), space='world') + pm.setKeyframe(self.child_proxy, attribute='rotate') + + self.set_pairblend_weight(1.0) + + def apply_inertia(self, currentChildPosition): + ratio = self.spring.ratio / self.springMagic.sub_div + inertia_offset = [0.0, 0.0, 0.0] + + if self.spring.inertia > 0.0: + bone_ref_loc_offset_dir = currentChildPosition - self.child_position + bone_ref_loc_offset_distance = ( + (bone_ref_loc_offset_dir) * (1 - ratio) * (1 - self.spring.inertia)).length() + + inertia_offset = bone_ref_loc_offset_dir.normal() * ( + bone_ref_loc_offset_distance / self.springMagic.sub_div) + + # apply mass + force_direction = self.child_position - self.previous_child_position + force_distance = force_direction.length() * self.spring.inertia + + # offset position + inertia_offset += force_direction.normal() * (force_distance / self.springMagic.sub_div) + + return inertia_offset + + def apply_wind(self, frame): + wind_offset = [0.0, 0.0, 0.0] + + if self.springMagic.wind: + wind_max_force = self.springMagic.wind.getAttr('MaxForce') + wind_min_force = self.springMagic.wind.getAttr('MinForce') + wind_frequency = self.springMagic.wind.getAttr('Frequency') + + mid_force = (wind_max_force + wind_min_force) / 2 + + # get source x - axis direction in world space + wind_direction = get_matrix(self.springMagic.wind)[:3] + # sDirection = sObj.getMatrix()[0][:3] + wind_direction = dt.Vector(wind_direction[0], wind_direction[1], wind_direction[2]).normal() + wind_distance = math.sin(frame * wind_frequency) * (wind_max_force - wind_min_force) + mid_force + + # offset position + wind_offset = wind_direction.normal() * wind_distance + + return wind_offset + + def detect_collision(self, new_obj_pos, new_child_pos, capsule_list): + col_pre = col_cur = None + + child_pos_corrected = self.child_position + + if self.springMagic.is_collision and capsule_list: + + if preCheckCollision(new_obj_pos, self.bone_length, capsule_list): + + # check collision from previous pos to cur pos + col_pre, col_body_pre, hitCylinder_pre = springMath.checkCollision(new_child_pos, self.child_position, + capsule_list, True) + + # check collision from cur pos to previous pos + col_cur, col_body_cur, hitCylinder_cur = springMath.checkCollision(new_child_pos, self.child_position, + capsule_list, False) + + if col_pre and (col_cur is None): + new_child_pos = col_pre + elif col_cur and (col_pre is None): + child_pos_corrected = col_cur + elif col_pre and col_cur: + + # move cur child pose to closest out point if both pre and cur pos are already inside of col body + # if distance(col_pre, new_child_pos) < distance(col_cur, new_child_pos): + mid_point = (self.child_position + new_child_pos) / 2 + + if springMath.distance(col_pre, mid_point) < springMath.distance(col_cur, mid_point): + new_child_pos = col_pre + else: + new_child_pos = col_cur + + if self.springMagic.is_fast_move: + child_pos_corrected = new_child_pos + + # # draw debug locator + # if col_pre and col_cur: + # locator1 = pm.spaceLocator(name=obj.name() + '_col_pre_locator_' + str(i)) + # locator1.setTranslation(col_pre) + # locator1 = pm.spaceLocator(name=obj.name() + '_col_cur_locator_' + str(i)) + # locator1.setTranslation(col_cur) + + return True if col_pre or col_cur else False, new_child_pos, child_pos_corrected + + def detect_plane_hit(self, new_obj_pos, new_child_pos, grand_parent_has_plane_collision): + has_hit_plane = False + + if self.springMagic.is_collision and self.springMagic.collision_planes_list[0]: + collision_plane = self.springMagic.collision_planes_list[0] + has_plane_collision = springMath.checkPlaneCollision(new_obj_pos, new_child_pos, collision_plane) + + if has_plane_collision or grand_parent_has_plane_collision: + new_child_pos = repeatMoveToPlane(self.parent, new_child_pos, self.child, collision_plane, 3) + has_hit_plane = True + + return has_hit_plane, new_child_pos + + # calculate upvector by interpolation y axis for twist + def compute_up_vector(self): + twist_ratio = self.spring.twist_ratio / self.springMagic.sub_div + + cur_obj_yAxis = get_matrix(self.child_proxy)[4:7] + prev_up_vector = dt.Vector(self.up_vector[0], self.up_vector[1], self.up_vector[2]).normal() + cur_up_vector = dt.Vector(cur_obj_yAxis[0], cur_obj_yAxis[1], cur_obj_yAxis[2]).normal() + + up_vector = (prev_up_vector * (1 - twist_ratio)) + (cur_up_vector * twist_ratio) + + return up_vector + + def aim_by_ratio(self, upVector, newChildPos, childPosCorrected): + ratio = self.spring.ratio / self.springMagic.sub_div + tension = self.spring.tension / (1.0 / (springMath.sigmoid(1 - self.springMagic.sub_div) + 0.5)) + + # print("obj: " + str(self.parent.name())) + # print("newChildPos: " + str(newChildPos)) + # print("childPosCorrected: " + str(childPosCorrected)) + # print("grand_child_position: " + str(self.grand_child_position)) + # print("upVector: " + str(upVector)) + # print("ratio: " + str(ratio)) + # print("tension: " + str(tension)) + + SpringData.cur_position_locator.setTranslation(newChildPos) + SpringData.prev_position_locator.setTranslation(childPosCorrected) + + pm.aimConstraint(self.parent, e=True, worldUpVector=upVector) + + pm.aimConstraint(SpringData.cur_position_locator, self.parent, e=True, w=ratio) + pm.aimConstraint(SpringData.prev_position_locator, self.parent, e=True, w=1 - ratio) + + if self.has_child_collide and self.grand_child_position and tension != 0: + SpringData.prev_grand_child_position_locator.setTranslation(self.grand_child_position) + pm.aimConstraint(SpringData.prev_grand_child_position_locator, self.parent, e=True, w=(1 - ratio) * tension) + + pm.setKeyframe(self.parent, attribute='rotate') + + pm.aimConstraint(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator, self.parent, e=True, w=0.0) + + def extend_bone(self, childPosCorrected): + if self.spring.extend != 0.0: + child_translation = self.child.getTranslation() + # get length between bone pos and child pos + x2 = (childPosCorrected - get_translation(self.parent)).length() + x3 = (self.bone_length * (1 - self.spring.extend)) + (x2 * self.spring.extend) + self.child.setTranslation([x3, child_translation[1], child_translation[2]]) + pm.setKeyframe(self.child, attribute='tx') + # else: + # self.child.setTranslation([self.bone_length, child_translation[1], child_translation[2]]) + + +def createCollisionPlane(): + # remove exist plane + collision_plane = get_node('*' + kCollisionPlaneSuffix + '*') + + if collision_plane: + pm.delete(collision_plane) + + collision_plane = pm.polyPlane(name="the" + kCollisionPlaneSuffix, sx=1, sy=1, w=10, h=10, ch=1)[0] + + # one side display + pm.setAttr(collision_plane.doubleSided, False) + + # lock scale + pm.setAttr(collision_plane.sx, lock=True) + pm.setAttr(collision_plane.sy, lock=True) + pm.setAttr(collision_plane.sz, lock=True) + + pm.select(collision_plane) + + +def removeBody(clear=False): + cylinder_list = getCapsule(clear) + + pm.delete(cylinder_list) + + collision_plane = get_node('*' + kCollisionPlaneSuffix + '*') + + if collision_plane: + pm.delete(collision_plane) + + +def addWindObj(): + windCone = pm.cone(name=kWindObjectName)[0] + + windCone.setScale([5, 5, 5]) + + pm.delete(windCone, constructionHistory=1) + + # add wind attr + pm.addAttr(windCone, longName='MaxForce', attributeType='float') + pm.setAttr(windCone.name() + '.MaxForce', 1, e=1, keyable=1) + pm.addAttr(windCone, longName='MinForce', attributeType='float') + pm.setAttr(windCone.name() + '.MinForce', 0.5, e=1, keyable=1) + pm.addAttr(windCone, longName='Frequency', attributeType='float') + pm.setAttr(windCone.name() + '.Frequency', 1, e=1, keyable=1) + # pm.addAttr(windCone, longName='Wave', attributeType='float') + # pm.setAttr(windCone.name() + '.Wave', 0.5, e=1, keyable=1) + + setWireShading(windCone, False) + + pm.makeIdentity(apply=True) + windCone.setRotation([0, 0, 90]) + + +def bindControls(linked_chains=False): + selected_ctrls = pm.ls(sl=True) + pm.select(clear=True) + + # The chains are linked, we can sort them + if linked_chains: + # Create list for every ctrls chains + # ie [[ctrl1, ctrl1.1, ctrl1.2], [ctrl2, ctrl2.1, ctrl2.2, ctrl2.3]] + all_ctrls_descendants_list = pm.listRelatives(selected_ctrls, allDescendents=True) + top_hierarchy_ctrls_list = [x for x in selected_ctrls if x not in all_ctrls_descendants_list] + + ctrls_chains_list = [[x] + [y for y in pm.listRelatives(x, allDescendents=True) if y in selected_ctrls][::-1] + for x in top_hierarchy_ctrls_list] + # No sorting possible because the controlers have no lineage + else: + ctrls_chains_list = [selected_ctrls] + + proxy_joint_chain_list = [] + + for ctrls_list in ctrls_chains_list: + + proxy_joint_list = [] + + for ctrl in ctrls_list: + # create proxy joint in ctrl world position + ctrl_position = pm.xform(ctrl, worldSpace=1, rp=1, q=1) + + proxyJoint = pm.joint(name=ctrl.name() + kSpringProxySuffix, position=ctrl_position, radius=0.2, roo='xyz') + proxy_joint_list.append(proxyJoint) + + for joint in proxy_joint_list: + # set joint orientation + pm.joint(joint, edit=1, orientJoint='xyz', zeroScaleOrient=True) + + # Straight bones alignment + joint.setRotation([0, 0, 0]) + joint.setAttr('rotateAxis', [0, 0, 0]) + joint.setAttr('jointOrient', [0, 0, 0]) + + # Free rotation (move rotation values to joint orient values) + # pm.makeIdentity(proxy_joint_list[idx], apply=True, t=False, r=True, s=False, pn=True) + + if proxy_joint_list: + # parent root proxy joint to control parent + pm.parent(proxy_joint_list[0], ctrls_list[0].getParent()) + + # Necessary to start a new joint chain + pm.select(clear=True) + + proxy_joint_chain_list += [proxy_joint_list] + + for idx, joint in enumerate(proxy_joint_list[:-1]): + # orient joint chain + cns = pm.aimConstraint(ctrls_list[idx + 1], proxy_joint_list[idx], aimVector=[1, 0, 0], upVector=[0, 0, 0], + worldUpVector=[0, 1, 0], skip='x') + pm.delete(cns) + + for idx, joint in enumerate(proxy_joint_list): + pm.parentConstraint(proxy_joint_list[idx], ctrls_list[idx], maintainOffset=True) + + pm.select(proxy_joint_chain_list) + + +def clearBind(startFrame, endFrame): + proxyJointLst = pm.ls(sl=True) + pm.select(d=True) + + ctrlList = [] + + for bone in proxyJointLst: + ctrl = pm.ls(bone.name().split(kSpringProxySuffix)[0])[0] + ctrlList.append(ctrl) + + if ctrlList: + pm.bakeResults(*ctrlList, t=(startFrame, endFrame)) + + pm.delete(proxyJointLst) + + +def bindPose(): + pm.runtime.GoToBindPose() + + +# Prepare all information to call SpringMagicMaya function +def startCompute(spring, springMagic, progression_callback=None): + autokeyframe_state = cmds.autoKeyframe(query=True, state=True) + cmds.autoKeyframe(state=False) + + # get selection obj + objs = pm.ls(sl=True) + + # check objects validity + for obj in objs: + # has duplicate name obj + nameCntErr = (len(pm.ls(obj.name())) > 1) + + # is a duplicate obj + nameValidErr = (obj.name().find('|') > 0) + + if nameCntErr or nameValidErr: + raise ValueError(obj.name() + ' has duplicate name object! Stopped!') + + obj_translation = obj.getTranslation() + + if (obj_translation[0] < 0 or abs(obj_translation[1]) > 0.001 or abs( + obj_translation[2]) > 0.001) and obj.getParent() and (obj.getParent() in objs): + pm.warning(obj.getParent().name() + "'s X axis not point to child! May get broken result!") + + # Search for collision objects + if springMagic.is_collision: + springMagic.collision_planes_list = [get_node('*' + kCollisionPlaneSuffix + '*')] + + # Search for a wind object + if pm.ls(kWindObjectName): + springMagic.wind = pm.ls(kWindObjectName)[0] + + SpringMagicMaya(objs, spring, springMagic, progression_callback) + + cmds.autoKeyframe(state=autokeyframe_state) + + +# @decorators.viewportOff +@decorators.gShowProgress(status="SpringMagic does his magic") +def SpringMagicMaya(objs, spring, springMagic, progression_callback=None): + # on each frame go through all objs and do: + # 1. make a vectorA from current obj position to previous child position + # 2. make a vectorB from current obj position to current child position + # 3. calculate the angle between two vectors + # 4. rotate the obj towards vectorA base on spring value + + start_frame = springMagic.start_frame + end_frame = springMagic.end_frame + sub_div = springMagic.sub_div + + # remove all spring nulls, add recursive incase name spaces + pm.delete(pm.ls('*' + kNullSuffix + '*', recursive=True)) + + # get all capsules in scene + capsule_list = getCapsule(True) if springMagic.is_collision else None + + if progression_callback: + progression_callback(0) + + # Save object previous frame information in a ordered dict + spring_data_dict = OrderedDict() + + # Initialize data on the first frame + pm.currentTime(start_frame, edit=True) + + # Create a list of objects chains + # ie [[nt.Joint(u'joint1'), nt.Joint(u'joint2'), nt.Joint(u'joint4')], [nt.Joint(u'joint7'), nt.Joint(u'joint8'), nt.Joint(u'joint10')]] + all_joints_descendants_list = pm.listRelatives(objs, allDescendents=True, type='transform') + top_hierarchy_joints_list = [x for x in objs if x not in all_joints_descendants_list] + + # transforms_chains_list = map(lambda x: [x] + [y for y in pm.listRelatives(x, allDescendents=True) if y in objs][::-1], top_hierarchy_joints_list) + + # Deal with the specific case of root bone with no parent. + # The root bone is considered the driver, so we remove it from the calculation. + transforms_chains_list = [ + ([x] if x.getParent() else []) + [y for y in pm.listRelatives(x, allDescendents=True) if y in objs][::-1] for x + in top_hierarchy_joints_list] + + # Remove empty lists + transforms_chains_list = [x for x in transforms_chains_list if x != []] + + # Create progression bar generator values + number_of_progession_step = 0 + + if springMagic.is_pose_match: + number_of_progession_step += end_frame - start_frame + 1 + + if springMagic.is_loop: + # Doesn't process the first frame on the first loop + number_of_progession_step += ((end_frame - start_frame) * 2 + 1) * sub_div + else: + # Doesn't process the first frame + number_of_progession_step += (end_frame - start_frame) * sub_div + + progression_increment = 100.0 / number_of_progession_step + progression_generator = frange(progression_increment, 100.0 + progression_increment, progression_increment) + + # Create spring data for each transforms at start frame + for transforms_chain in transforms_chains_list: + + if SpringMagicMaya.isInterrupted(): + break + + transforms_cycle = cycle(transforms_chain) + + # Prime the pump + parent = first_transform = next(transforms_cycle) + grand_parent = parent.getParent() + child = next(transforms_cycle) + grand_child = next(transforms_cycle) + + # skip end bone + for transform in transforms_chain[:-1]: + + if SpringMagicMaya.isInterrupted(): + break + + # End of cycle iteration + if grand_child == first_transform: + grand_child = None + + spring_data_dict[parent.name()] = SpringData(springMagic, spring, parent, child, grand_child, grand_parent) + + grand_parent, parent, child, grand_child = parent, child, grand_child, next(transforms_cycle) + + # Save joints position over timeline + # Parse timeline just one time + if springMagic.is_pose_match: + for frame in range(0, end_frame - start_frame + 1): + + if SpringMagicMaya.isInterrupted(): + break + + pm.currentTime(start_frame + frame, edit=True) + + for spring_data in list(spring_data_dict.values()): + + if not SpringMagicMaya.isInterrupted(): + spring_data.keyframe_child_proxy() + + progression = next(progression_generator) + progression = clamp(progression, 0, 100) + + if progression_callback: + progression_callback(progression) + + SpringMagicMaya.progress(progression) + + # Generate frame index + # Skip first frame on first calculation pass + frame_increment = 1.0 / sub_div + frame_generator = frange(frame_increment, end_frame - start_frame + frame_increment, frame_increment) + + # On second calculation pass compute first frame + if springMagic.is_loop: + frame_generator = chain(frame_generator, frange(0, end_frame - start_frame + frame_increment, frame_increment)) + + for frame in frame_generator: + + # print('Frame: ' + str(frame)) + + if SpringMagicMaya.isInterrupted(): + break + + pm.currentTime(start_frame + frame, edit=True) + + for previous_frame_spring_data in list(spring_data_dict.values()): + + if SpringMagicMaya.isInterrupted(): + break + + grand_parent_spring_data = None + if previous_frame_spring_data.grand_parent and previous_frame_spring_data.grand_parent.name() in list( + spring_data_dict.keys()): + grand_parent_spring_data = spring_data_dict[previous_frame_spring_data.grand_parent.name()] + + # get current position of parent and child + parent_pos = get_translation(previous_frame_spring_data.parent) + + # print("obj: " + str(previous_frame_spring_data.parent.name())) + + new_child_pos = get_translation(previous_frame_spring_data.child_proxy) + + # Apply inertia + new_child_pos += previous_frame_spring_data.apply_inertia(new_child_pos) + + # apply wind + new_child_pos += previous_frame_spring_data.apply_wind(start_frame + frame) + + # detect collision + has_collision, new_child_pos, child_pos_corrected = previous_frame_spring_data.detect_collision(parent_pos, + new_child_pos, + capsule_list) + + # detect plane collision + grand_parent_has_plane_collision = False + if grand_parent_spring_data: + grand_parent_has_plane_collision = grand_parent_spring_data.has_plane_collide + + has_hit_plane, new_child_pos = previous_frame_spring_data.detect_plane_hit(parent_pos, new_child_pos, + grand_parent_has_plane_collision) + + # calculate upvector by interpolation y axis for twist + up_vector = previous_frame_spring_data.compute_up_vector() + + # apply aim constraint to do actual rotation + previous_frame_spring_data.aim_by_ratio(up_vector, new_child_pos, child_pos_corrected) + + # Extend bone if needed (update child translation) + previous_frame_spring_data.extend_bone(child_pos_corrected) + + # Update current transform with the new values + previous_frame_spring_data.update(has_collision, has_hit_plane, child_pos_corrected) + + # Update the grand parent has_child_collide value + if grand_parent_spring_data: + grand_parent_spring_data.has_child_collide = has_collision + + progression = next(progression_generator) + progression = clamp(progression, 0, 100) + + if progression_callback: + progression_callback(progression) + + SpringMagicMaya.progress(progression) + + # bake result on frame + if springMagic.wipe_subframe and not SpringMagicMaya.isInterrupted(): + transform_to_bake_list = [spring_data.parent for spring_data in list(spring_data_dict.values())] + + # Deactivate all pairblend otherwise bake doesn't work with animation layers + for spring_data in list(spring_data_dict.values()): + spring_data.set_pairblend_weight(0.0) + + bakeAnim(transform_to_bake_list, start_frame, end_frame) + + +def bakeAnim(objList, startFrame, endFrame): + pm.bakeResults( + objList, + t=(startFrame, endFrame), + sampleBy=1, + disableImplicitControl=False, + preserveOutsideKeys=True, + sparseAnimCurveBake=False, + removeBakedAttributeFromLayer=False, + bakeOnOverrideLayer=False, + minimizeRotation=True, + shape=False, + simulation=False) + + +SM_boneTransformDict = {} + + +def copyBonePose(): + global SM_boneTransformDict + + for obj in pm.ls(sl=True): + SM_boneTransformDict[obj] = [obj.getTranslation(), obj.getRotation()] + + +def pasteBonePose(): + global SM_boneTransformDict + + for obj in pm.ls(sl=True): + if obj in list(SM_boneTransformDict.keys()): + logging.debug(SM_boneTransformDict[obj][0]) + + obj.setTranslation(SM_boneTransformDict[obj][0]) + obj.setRotation(SM_boneTransformDict[obj][1]) + + +def preCheckCollision(objPos, objLength, capsuleList): + # print('objPos:' + str(objPos)) + # print('objLength:' + str(objLength)) + + # pre check bone length compare with collision body radius + # will improve performance if bone is far from capsule + for capsule in capsuleList: + capsule_children_list = pm.listRelatives(capsule, children=1, type='transform') + + p = capsule_children_list[0].getTranslation(space='world') + q = capsule_children_list[1].getTranslation(space='world') + r = capsule.getAttr('scaleZ') + + bone_to_capsule_distance = springMath.dist_to_line(p, q, objPos) + + # print('p:' + str(p)) + # print('q:' + str(q)) + # print('r:' + str(r)) + # print('boneToCapsuleDistance:' + str(bone_to_capsule_distance)) + + # means close enough to have a hit change + if bone_to_capsule_distance < objLength + r: + return True + + return False + + +def repeatMoveToPlane(obj, objPos, objTarget, colPlane, times): + # Y axis direction of plane + n = dt.Vector(get_matrix(colPlane)[4:7]) + q = get_translation(colPlane) + d = n.dot(q) + + # for i in range(times): + # pt = objPos + # obj.setTranslation(proj_pt_to_plane(pt, n, d), space='world') + # if (i + 1) != times: + # obj.setTranslation(get_translation(objTarget), space='world') + pt = objPos + outPos = springMath.proj_pt_to_plane(pt, n, d) + + return outPos + + +def setWireShading(obj, tmp): + obj.getShape().overrideEnabled.set(True) + obj.getShape().overrideShading.set(False) + + if tmp: + obj.getShape().overrideDisplayType.set(1) + + +def addCapsuleSphereConstraint(sphereObj): + # create a locator and make sphere follow it + locator = pm.spaceLocator(name=sphereObj.name() + '_locator' + kCapsuleNameSuffix) + + locator.setTranslation(sphereObj.getTranslation()) + locator.setRotation(sphereObj.getRotation()) + locator.getShape().setAttr('visibility', False) + + pm.parentConstraint(locator, sphereObj) + + return locator + + +def createCapsuleGeometry(size): + # create geometry + cylinder, cylinder_history = pm.cylinder(radius=size, sections=8, heightRatio=3) + pm.rename(cylinder.name(), cylinder.name() + kCapsuleNameSuffix) + + sphereA, sphereA_history = pm.sphere(radius=size, endSweep=180, sections=4) + pm.rename(sphereA.name(), sphereA.name() + kCapsuleNameSuffix) + + sphereB, sphereB_history = pm.sphere(radius=size, endSweep=180, sections=4) + pm.rename(sphereB.name(), sphereB.name() + kCapsuleNameSuffix) + + # set to wireframe shader + setWireShading(cylinder, False) + setWireShading(sphereA, True) + setWireShading(sphereB, True) + + # build a capsule with geometry + cylinder.setAttr('rotateZ', 90) + sphereA.setAttr('translateY', -1.5 * size) + sphereB.setAttr('rotateZ', 180) + sphereB.setAttr('translateY', 1.5 * size) + + # add constrain + locatorA = addCapsuleSphereConstraint(sphereA) + locatorB = addCapsuleSphereConstraint(sphereB) + + pm.parent(locatorA, cylinder) + pm.parent(locatorB, cylinder) + + pm.parent(sphereA, cylinder) + pm.parent(sphereB, cylinder) + + sphereA.setAttr('inheritsTransform', False) + sphereB.setAttr('inheritsTransform', False) + + pm.connectAttr(cylinder.scaleY, (sphereA_history.name() + '.radius')) + pm.connectAttr(cylinder.scaleY, (sphereB_history.name() + '.radius')) + pm.connectAttr(cylinder.scaleY, cylinder.scaleZ) + + return cylinder + + +def getCapsule(getAll): + if getAll: + nurbsTransLst = pm.ls(type='transform') + else: + nurbsTransLst = pm.ls(sl=True) + + nurbsSurfaceLst = [] + for obj in nurbsTransLst: + if obj.getShape() and (pm.nodeType(obj.getShape()) == 'nurbsSurface'): + nurbsSurfaceLst.append(obj) + + cylinderLst = [] + for obj in nurbsTransLst: + if 'ylinder' in obj.name() and kCapsuleNameSuffix in obj.name(): + cylinderLst.append(obj) + + return cylinderLst + + +def addCapsuleBody(): + # create capsule body for collision + # place capsule at ori point of nothing selected in scene + # place capsule match with object position and rotation if select scene object + collisionBoneList = [] + objs = pm.ls(sl=True) + + for obj in objs: + children = pm.listRelatives(obj, children=1) + + # only add capsule to the obj which has child + if children: + collisionBoneList.append([obj, children[0]]) + + if collisionBoneList: + for couple in collisionBoneList: + baseBone = couple[0] + endBone = couple[1] + capsule = createCapsuleGeometry(1) + + pm.parent(capsule, baseBone) + # match capsule to bone + endBoneTrans = endBone.getTranslation() + capsule.setTranslation(endBoneTrans * 0.5) + capsule.setAttr('scaleX', endBoneTrans[0] / 3) + capsule.setAttr('scaleY', endBoneTrans[0] / 3) + cns = pm.aimConstraint(endBone, capsule, aimVector=[1, 0, 0]) + pm.delete(cns) + + else: + capsule = createCapsuleGeometry(1) + capsule.setAttr('scaleX', 10) + capsule.setAttr('scaleY', 10) + pm.select(clear=1) diff --git a/2024/scripts/animation_tools/springmagic/decorators.py b/2024/scripts/animation_tools/springmagic/decorators.py new file mode 100644 index 0000000..143d23b --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/decorators.py @@ -0,0 +1,121 @@ +import maya.mel as mel +import maya.cmds as cmds + +from functools import wraps + + +# ----------------------------------------------------------------------------- +# Decorators +# ----------------------------------------------------------------------------- +def viewportOff(func): + """ + Decorator - turn off Maya display while func is running. + if func will fail, the error will be raised after. + """ + @wraps(func) + def wrap(*args, **kwargs): + + # Turn $gMainPane Off: + mel.eval("paneLayout -e -manage false $gMainPane") + + # Decorator will try/except running the function. + # But it will always turn on the viewport at the end. + # In case the function failed, it will prevent leaving maya viewport off. + try: + return func(*args, **kwargs) + except Exception: + raise # will raise original error + finally: + mel.eval("paneLayout -e -manage true $gMainPane") + + return wrap + + +class gShowProgress(object): + """ + Function decorator to show the user (progress) feedback. + @usage + + import time + @gShowProgress(end=10) + def createCubes(): + for i in range(10): + time.sleep(1) + if createCubes.isInterrupted(): break + iCube = cmds.polyCube(w=1,h=1,d=1) + cmds.move(i,i*.2,0,iCube) + createCubes.step() + """ + + def __init__(self, status='Busy...', start=0, end=100, interruptable=True): + import maya.mel + + self.mStartValue = start + self.mEndValue = end + self.mStatus = status + self.mInterruptable = interruptable + self.mMainProgressBar = maya.mel.eval('$tmp = $gMainProgressBar') + + def step(self, inValue=1): + """Increase step + @param inValue (int) Step value""" + cmds.progressBar(self.mMainProgressBar, edit=True, step=inValue) + + def progress(self, inValue): + """Set progression value + @param inValue (int) Progress value""" + cmds.progressBar(self.mMainProgressBar, edit=True, progress=inValue) + + def isInterrupted(self): + """Check if the user has interrupted the progress + @return (boolean)""" + return cmds.progressBar(self.mMainProgressBar, query=True, isCancelled=True) + + def start(self): + """Start progress""" + cmds.waitCursor(state=True) + cmds.progressBar( + self.mMainProgressBar, + edit=True, + beginProgress=True, + isInterruptable=self.mInterruptable, + status=self.mStatus, + minValue=self.mStartValue, + maxValue=self.mEndValue) + cmds.refresh() + + def end(self): + """Mark the progress as ended""" + cmds.progressBar(self.mMainProgressBar, edit=True, endProgress=True) + cmds.waitCursor(state=False) + + def __call__(self, inFunction): + """ + Override call method + @param inFunction (function) Original function + @return (function) Wrapped function + @description + If there are decorator arguments, __call__() is only called once, + as part of the decoration process! You can only give it a single argument, + which is the function object. + """ + def wrapped_f(*args, **kwargs): + # Start progress + self.start() + # Call original function + inFunction(*args, **kwargs) + # End progress + self.end() + + # Add special methods to the wrapped function + wrapped_f.step = self.step + wrapped_f.progress = self.progress + wrapped_f.isInterrupted = self.isInterrupted + + # Copy over attributes + wrapped_f.__doc__ = inFunction.__doc__ + wrapped_f.__name__ = inFunction.__name__ + wrapped_f.__module__ = inFunction.__module__ + + # Return wrapped function + return wrapped_f diff --git a/2024/scripts/animation_tools/springmagic/history.txt b/2024/scripts/animation_tools/springmagic/history.txt new file mode 100644 index 0000000..74c3ccf --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/history.txt @@ -0,0 +1,75 @@ +##################################################################################### +# +# Spring Magic for Maya +# +# Calculate bone chain animation by settings, support collisions and wind force +# Can work with rigging controller as well +# +# Need pringMagic.ui file to work with +# This script need also icon file support, which should be put in same folder +# +# feel free to mail me redtank@outlook.com for any bug or issue +# +# Yanbin Bai +# 2021.02 +# +##################################################################################### + +3.5a +- Fix bug tension calculation introduced in the 3.5 (Benoit Degand) +- Fix bug inertia calculation introduced in the 3.5 (Benoit Degand) +- Clarify code splitting source code in class and methods (Benoit Degand) + +3.5 +- Apply PEP8 coding format (Benoit Degand) +- Add possiblity to cancel the operation (Esc) (Benoit Degand) +- Increase speed (x2), avoiding locators and aim constraints intensive creation/deletion (Benoit Degand) +- Fragment source code in several files (Benoit Degand) +- Pose Match default off + +3.4b +- fix collision bug + +3.4a +- fix wind bug + +3.4 +- add plane collision +- add pose match + +3.3 +- add inertia effect + +3.2 +- fix wind effect cannot set key issue + +3.1 +- add bind controller +- add wind +- add flex setting +- improve performance +- fix twist bug +- add capsule icon +- seperate skinTools to spring magic and skin magic + +3.0 +- re-write spring magic to improve performance +- add capsule collision for spring magic +- add donate page + +2.7.8 +- fix script stop working issue cause by highend3d.com changed their web page + +2.7.7 +- add time out for update checking in case of network issue + +2.7.6 +- fix spring magic calculation issue on MAYA 2016 +- update UI for MAYA 2016 +Thanks for all the help from Nobuyuki Kobayashi nobuyuki@unity3d.com + +2.7.5 +- add floor collision to spring magic + +2.7 +- Add spring magic diff --git a/2024/scripts/animation_tools/springmagic/icons/China Flag.png b/2024/scripts/animation_tools/springmagic/icons/China Flag.png new file mode 100644 index 0000000000000000000000000000000000000000..15e088b9c4fef037ed7adb910cad03eb10363678 GIT binary patch literal 2212 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/addPlane.png b/2024/scripts/animation_tools/springmagic/icons/addPlane.png new file mode 100644 index 0000000000000000000000000000000000000000..af46dfac43e1e81a3268051145e6cda7392acb45 GIT binary patch literal 18787 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�*_x?^cA<=^2leqMKEB2|>flpgMLorEFe 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 LNkvXXu0mjfjnZ0i literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/bilibili.png b/2024/scripts/animation_tools/springmagic/icons/bilibili.png new file mode 100644 index 0000000000000000000000000000000000000000..b1c1a9f43732df5441a54e2bc40c54e98d3d16f4 GIT binary patch literal 22210 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 BM_K>? literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/clearCapsule.png b/2024/scripts/animation_tools/springmagic/icons/clearCapsule.png new file mode 100644 index 0000000000000000000000000000000000000000..507c483f451ebf5a5017a2b179566b1c50d29570 GIT binary patch literal 4732 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

K8!>#^XXt!O1#bSl6qYLE!52(#YKzz8o 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 Z9RNDox9feyrlJ4<002ovPDHLkV1juYxsm_? literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/ctrl_bind.png b/2024/scripts/animation_tools/springmagic/icons/ctrl_bind.png new file mode 100644 index 0000000000000000000000000000000000000000..7f343f280c5fe2c93f0f2afb6a367f3dc6faeea0 GIT binary patch literal 4107 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 JPDHLkV1fnLqly3k literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/donut.png b/2024/scripts/animation_tools/springmagic/icons/donut.png new file mode 100644 index 0000000000000000000000000000000000000000..d7acafe0404468e1994beec2446e21b5de7cc012 GIT binary patch literal 1098 zcmV-Q1hxB#P)oBRyGC?mDIsIJb}MD2GinUzA0#$0(M07RMH6SLBCloA^<|IeciRpc=IbUWH@Wxs`~1%N zp6~fl)Etk!YL%?NJg3&gF;)^MHY{!#DqUVc{olu;rzEF0WIW#@D7*%qf!B5Oz#vd? zWNRw4S1O=gtGqV2DSP{sJ$sV>6L9>+HO(d=X~v*s;O*K4VBI1Yfei@nu1*63M}tX_ z`C5xo9FCf`OaBoTe6MWZ70WW*OhG*Y8aN5QlSE)W$B57do`&}iWkF|kDl}`Ao-VCw z;hZqA>oS8E*{^?mCszcWc3RNH3tCq?WfHSs2 z*G*d7OuJ6l#SnLXe?&1S*S5j`Q9j5ur~o1aPyvD&aX!p zBc49+Y6ch(9xwgFniWHS7dIK2;3Bte8fYwHP*+L}Q5sC3J5P}{3-r5LPr%K>x2IP^ z-*akc-Yf@edGf4=CQfqg=cAfZ|2XUQjk92@TLk7}srav{G#T0|RbUYmy%vgMq9r@H z&qEVDU;~kQ*3h{|vc#@U-TD5%nd|le_0bTe<4G zMWa|E0z;!^jX{JF={Zepo&r9jhyEmO!=Z3XFRX1(p2SRQxa{bI|FzX~ypW=EW zTC9atRK#o}W*s(*7u8<*+CORepp{HVg(8*s7 zf4~C?()D}JeE5B2J@izoXG?xCTDK};*p!7jO3^y<;fKc1->-cva(_*ZF651XR8+98!7pi`0akSJlwJ8K~srT?D(;5DKKGtRJ=60 zx2J*k-F2tFu~fIi20s^QrHqtjeCiLE@ z)2sgV!Uc+=r_L2Ues^e-(|?hhBEawZa`E;dFc$n{y!Y0iejj}CvNXQuFIvEG!nsD~ QMF0Q*07*qoM6N<$g6$XuQ2+n{ literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/english.png b/2024/scripts/animation_tools/springmagic/icons/english.png new file mode 100644 index 0000000000000000000000000000000000000000..2bf1f6583365cfffc0722029d9e4a2df6aaf03ff GIT binary patch literal 4265 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/japanese.png b/2024/scripts/animation_tools/springmagic/icons/japanese.png new file mode 100644 index 0000000000000000000000000000000000000000..7967692894a9b2efbdbc882667f031a3a4faa50f GIT binary patch literal 16328 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/language.png b/2024/scripts/animation_tools/springmagic/icons/language.png new file mode 100644 index 0000000000000000000000000000000000000000..755a11de66563dfb1766fc25519207e2aa6855df GIT binary patch literal 4366 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� znDFp!PlFrRhIX*P(<6p5cN6V3u0@=VG(L0ilSpswqd-5()YS6Z<#KWwd8Gy0$`QPs zODc9O%LyDph97}-iNxr`Ya1(q>3QJ;jG~-lq#ApsIsm2_u)aZ&GUY1%;daN0pe#M6>eCAi^a21Ls?00bA?o~<2J!;!~E2FL8kXv*ihtTpFpH*r<5 znf|r%>-3C(^JFWf+iG;Qlfk{7uF$K>8E*l)O@KrHqNQRFB=a=OE5F4^?7U}0sQlC-^Dv41#HbzO1LZ6GpeVPkZy$8Q>3NKsGDug(rzyPfhLnoV$naj9F}q4M5Z9~6K0(GF6>Cfw;u^oGFe8$<3W@V!1BA=^ z)h8cseMCZ62YsTWk7PG%_Xg@gbF$Y3Sz`gGy^;c!3P4=dVvM>p9cWI<83v&I1OJ(O z@leDIW&n<6hU_iW*t+c*522bp?U`_SHI&|F%Te`hyQ+_HYHk?`-obL4KT$)#s2bMA z_^6OUFmrp#AZN)l`Gaia0j@J46YkJ0*8CYY{NPxtu22q7;E7!_(@SS^>;RBu3yo% zzG@~YRnLbSHB&Z;QAP=y{prmsRGnc%Vcta_8O%M&eD)G&4LTHu(=kJsY2A~YlqlgU zV>X3^U6QZ)Lp<)Deu<!#?|LW4p{2Ru8w`E#NHRFObV$Dj=7PxXbi9 zDY?OD|62v2Wc!;OH{FcQ_AcxV;EjFBl>kdHNeD_H=NTD$8mo0+^H`1U8*|)0YZ7?( znDIk{VLapw-~A4}u<=v;fr1vK4>HD}^^{e1rPXTa5{j+(a`>^#%kXR?ROt(WC^5bl z3g>6cG&?;^7$#(#Z|d1v6faI9yqT7Tyyg56hFYF^b_BavyY#UO&2;Q9iUy_+y-PdZ zBG$sz;xEe}t0r62>6CAmAC&)Rw_kT`siTt@=iTMCd04;wIHQj_meQ>_% zNNk(FGNV$KI|g;n$HY~S7|@x zlZZ5g`s|apM3$ZNb)0SwBsq|Z6ITs}%#g;jPT1brXk=LXojY36p{7a+`1nSWYr*H! zPf)xz3FnL{PDvdWCKvZY6RZgCgnI>F3Xc)ThD=Xdbp*^~UAnv9A1{45H36T%zOAfC4RE}k+iR=bA@)`yleZX(7qT!TcNV5v7kPp zj*os_MvVU*|E&w!lnEz{8@l&FRaG&>1$iK9CmiNJni}lZojR4`^T_@5UiKP|(Pw}3 z-wp5|Hu!M6<$3S(=Kkc1rSr@aaIADYtjdcZo9&XRa=U`^;d*wu@L6G<%F^{9iu^Fj zt6n+AG$S*8x5~`oNNC(}?z!BI^pk2TZ<2elRK!ZMv*jtv3VW^A3^gd`6Qb0L+Bo-~ z9Ai0M?*3VvYTF}OdLmz?Kt(6WeRUB2z`||fJe4$MdZYmJS#RQS8|C%IC8z2R&$nOR z?z6mwt)RS^6e@L<>f1q-ESvx0y)Xs!VflpUwe*YeeXvs5z4~$M6354jC2K|Jt6c`Z zSXW!OJ~!u}utTn7ti`XtzB1UZ)1=cOaZDmACS62Ch)u9!_FPNcU~X|Pck9a_lXdKb z=Y4Yj>d^9uRT_S|Q&q_UYb$cpOLNPT?Y9&+UYnvQI8qM)KS=~Q8Z9Gh;bdPEn`O<+ti1-3nUtb6Gn1}0sSKajgTLH9*|MwvH`u^X# zeLt;aV-LR;V4we6VBbNy$unO8v<7Wo|B8MG0UpIP@2~n-%xV9A2iXj2MOFV+z^3O< z5E}h=>Q9ib%h+fD$AYg1|81N$fp24*ZCd{ z7E#dl9gh~L=`TZQ1~mPaLW|M#mmr&IPBYll9sZ@?GQJzz9RDTAw^{d3lZ`C=wtPE* z|3kjJr2pgF^8vYM(q> IplKcY55zNy-~a#s literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/paypal.png b/2024/scripts/animation_tools/springmagic/icons/paypal.png new file mode 100644 index 0000000000000000000000000000000000000000..d4463169335f3eaa571da565b845bb3baf799fff GIT binary patch literal 17632 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/redo.png b/2024/scripts/animation_tools/springmagic/icons/redo.png new file mode 100644 index 0000000000000000000000000000000000000000..a75ef63caf8eafc13072fcb6d605281cb6a5bc40 GIT binary patch literal 4256 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/update.png b/2024/scripts/animation_tools/springmagic/icons/update.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f4d7104d56d45f88d2d3aea739c6ecfdb7eb48 GIT binary patch literal 4462 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 AK>z>% literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/vimeo.png b/2024/scripts/animation_tools/springmagic/icons/vimeo.png new file mode 100644 index 0000000000000000000000000000000000000000..319d5a68d85ba5eee9ef467ce1a13eafd404efc2 GIT binary patch literal 20737 zcmeI4cT`hL^zRQ zno3ieRFU2h=^{-KUr?`lbMMW&Z@u699C`Tw$89x>r?xq=#UmpQBU>h-1JtQT zG;ch&Zh4&Ekw2Q8rqv|Pd4y*F{slgZv?}3=Te4q8$1tO}eAaQ^-2u;K;7YuFTv2Vt z^)FZ84zBmLLuZ=F6(9~9GrYTvH+;W@3UrK%Ju*IZC}hPTxLk`zz0u>TcEq`3ucF5p zXMIIhxMIFgN4n7gg@Ky28c+6>Hlu5O7D-5N9Wdy01>}8JLAMX@j{pu@i-~w_06=8T zR+zjX3D6pwIROBb@7auVqgd4%r~u$xs{hG{XZO)QXD+NgkocUlvX+$;PI*qA_K#ZW zg9?()a1$V(rR9ZqG4A3Ip`9CDg&W|Yy`f6kGW(wr^%1zTkxHTl^l zDkk_b=uHNT&_13vD%QAAavnHL?53kE_{F5#bsR1^D&zMgJ*VTsdlxL= z9TJN0>wp}vy8RArd^!AnAIDqc$17MD+*hEkCAtD${_2 zFVNS*!<7xx3>0(u=6OpPE2u6}Uk`x1IL;H9t69S5$+%VLZUKE1Zg9SkfAQGSW66A` z#}6=>MZ*3#@apcQ2F)?Pa1oXLDt52|7${RGQ?~OUDp8GpF5Ldr@FZ2SUm+#6nuUnu;Utp^5oqb;KvDQQ$bvH{vPadb!eRMcgpUby2a(EoMwg}DC91X^YolxP0+E5_K#zKDi>!)#iX{6z`>Xpc7MvDX7Uuew zTpW|+lTIbALG7U%F4Pqg6&EXRR1CPZe~|4$%z4aGuf1M7Fgw(tyk`F?V~zF0Qtwg+ zm!z;5l|(o@8gd%3+!Bs>Z+8z>-mx4omdns=QxQ>TlhL7)alD*=G01vC+?`d{st|L; zqEKuYIcO&hw?K&uWY%TYPgV=GM%l$%RdkeeVOv_7P7N0J6~3AemFh{fONLj!s~p(5 zb0bSBv0n9-#I44d{+O%H6fx>C8-@4uW%WJu*Yw{Os`MJqotm@ny@b}{xRgMf08MCq zl3SEeROgytKf*lD9462yu%_eC51HSYr^*}$bJYp! z(&CDCtendn6MLCgm-lk^k~N2Qnsd^sIBWKW@MgwX*H~5^`<##*hZN7|=&8et6`iGB zYZ(d85(bOj*>?}M$kclmY^w_;aJ({kDYJC;)AEMF_?4E4q@0AD7pvhjU{hC9L(}c5 zqneKs`ICEv?VASbE{|3^Y_n#}<0H$828B7vbCM~ND*wa&kIC%FxX9zkv-XKo+@W|z38s}jq(DneXUOFg ziK%7%$gzbG9kf0b-*MB$-2HencxX$(iwETXyRnNZVVQ2e`+xODeLrXTXV9Tw4u0R z_|?-l?lHy|%S~P9R?q^oX-?%hsB}Ege=jA&7}~g{3=cxzoGZrnxxgi`KY-w%$iu zkHL?j+Sfa?vJ?fcT@s7Vi+a`UaQ~ChQ^X;7w58sXZEVkFeczL;(Po8?g}L`PAD%Ct z9>1hv)^l~u!@j?NShei+!W?WabIze~!?5OoYL)HTo;QKZbVVF1ccwVZ>{W-cX`Z%g zp{*sYuUpB);o=LITb>jSd`y$bSociwHEGuWQdCe@{f@uCw`R!AYxTf&&O>L0m!jq? zO9kC8*;OfduQ_xsUKw=Wzwpa-rvqh;xy${t}grPvjmwyxHO7~T}n<(Iw7;NHF+&^BF8c(IY~oKraNxX zV?%8x&d%hbNtLx?d$JrWc2TX&Y~$7H@JyJ=a;4)Zo(+ouzOoBNGWTVaeH_1x!5&=3 z%po_L7cNQP$9__uJJYe$<@?#Tw#WJH=360?6pyNa@#oRj_t4JZJYBbid#e&A_^83 z1w%wZ5D}=b6ci%P{o}!4M%~@V^A9s}l~hxBtgTXRMMd?o594>>nF+*7a~ig0+#( z7#Al5QppwRfaU$Cldwem)NyoiLVx39i2x(fNPAp}Gw$Re|9A?Hf8Kxm4FAh%{B-|o z@3APWUxV|P*gem`h9TWi{}Q(6`5yKy6~2#ZHbdcN?M7Z zK5Zoqf*>T2AW?{zDCo2}+zKR)fQv%Jtt=4|B9ebf{}%o?X-y~GM%V$4{;kg5+5ew5 z@eeY8YYK*P#-)zOZz+XKtZ&PV4)V%hOaFABQQwveN4S$Sa&H#O@ccOqf37b-myf-e zZ?hQ+N9-*$vWUH0MOsRO|5Ezvw0=hZ2t)mS0RJ21@A|)m|9cy5Hb@6T3IAQ{TdjW= zamH9--QZ5hv(~tr_}@&!?}C4gz*m+A@2$yb)c=DqaE817-;Kb3n?nD;kHD|oMcBX{ ztdW+o;6Ky$&w~FpXy1qOuk-28W#I4gPudazwZb^r!?Cg`d$=_c?C4-E4gOX5t4-;j zS0Sh(290r2$5#VJ;z^$UBC;^d@kN}AYL4KF{t=?}s zd)F~2ZjHg^JN(<+#>M=t48Oj?-dcfn`Bq<2L>Tu1L-sy@g#PZv4>cql`nwxH^jD;w z0}3lE@}o7p;@_h7F1FvH>frW;NLgIh@Qd(kYoXkcXoGVo+%>^@Z>8J2ihPT~cl=|Z z;lBm`=J*l#J)M5ry?t9EzL(z`8_4R-9;8&0SCspyZh>hR@A#4(H z5$1#ECE~&ZLf9nYBFqQROT>i-gs@4(MVJqsmxv1w2w{_mi!dKNFA*0W5W*%A7hyhl zULr0$AcRdKF2a29yhL1hKnR;eT!i`Hd5O62fDkr`xCryX^Ad640U>M>aS`T&=OyC8 z147s&;v&ok&r8IG2ZXRm#6_47o|lLV4+vqCh>I{EJTDO!9uUGN5f@=TcwQndJRpQk zA}+#w@VrD^ct8l7L|laV;CYF-@PH6DiMR;!!SfPv;Q=9R5^)jcgXbmU!UICsB;q2> z2hU5yg$IPNNyJ5%51yBZ3l9iklOQgdUr%}>9dM6#y5XMV{HhrffqMp&8v)Z+2LMk# z0PwpG09#*i-?ISVA`Ac@%yEy8-U9$u%w4nk^8i3guX66Ju6zGvf?c?Ay-TBS&a_Q;CzyhT zukaOZ*RAOConuN=0wfX=DwIhf}jlxibRJc8&36P^7&?oba>uzPM8B1lrf1tohCXSnfLG zKI7)KB*#Vl?p>2tjA=cqqUg?3!x1HgUazknOFIsetvdyAW!V&!LGsOu>32CdL-~zg zle&@JOxo4bE#`ewJmA&#S(-#wmAfDy<~nS}vZE=~%=P&UX}XQ2a;AIn6jUUKyxY#c zaV!SmJ2V`&F`)RgG9ZOcp;2;kVS8?U_a&&&&OT@vgWzVSEImn2^@s7WrJo8ta*lFE zw>uD~Blf|+`*xM_w530@7VelX;(U>)D&5J&731W5xl5UBx`U6~P9Qam+;n;%gP4KX zcWI?zc2I8DBD<+^6?8r% zkzt;+;|*y~osO-6JnY7cd>8}j#)f0@lzUY#WK@s+&c#uo;@G8tEsi@Mcl(uU;xwk~ zALUc{F9_-k8qreSS(b~W4ht(iZB$y=Jew^4h7`2#cs3&?Ppb*0`JuN*)4={fI+S`p z)$q$lfkF&-t*CT1n&6ZXX4>7uqHG@`-X=iuK+rDcTU!3c@XlLkShX~yFpv}o-_eEB-xW`M}AEzB} zbw&R3AumCjS(~H;#Z9a66PDK)N=2d)Y+t>=cAbEiSjC~w?0#$@)vU38ul|C}I95`6 zV;G4RVAJScc&CPz)zXwWRa&>AxpZW5PLg$+dH3q)Dmv8B>MMRuL#A4r?D>4jhth86 zGN~V*rKt1<2^$3)M(9g_89sJ&@NUwG95CXpOfn~}E?L7RP$pAUx3W}YH0jox<2AiN zFJZ-I$l#POcTwp#Q#3yW8AUQP4!zy@fd*({gWiLG3D3 zyRyErIk@E>!)dALkSIgCw$g@Q9Zhh8`(1ab}^dh*AGRqSm|_$~bR{OkSaWj_ z<`1rxsX5W0K*1pzzwS|CSeh)XJy<5tm6EQ^tu`3f!LMM=cyQ}FENQE?NUG{ znG!@-`jb&oW1~^Gg);3`OZz%5v$zG1ur5%$`v3!q<$xdKu`9`MZP$+g4FjRzYHj4I zd94hG=i880b~@F2Cf8}L#mu0(Iof5Z6dl(zrM=E4*f1=P3?`ss5Tb%x;8zEq@W$_t?iH1pVA`WLM?D zTXZ{6cuP!Y=0@&nYmbNgO9hd&M$OVUY2y|eyXhSoBz zg5seWN?)JU^PL|jv9W9Fa`CsH!d3?3?rGCoJuEdhi12yLD}DLFzyTUxSC&WuMoq?!k;#81rzm(N)TD%8`F1@=?OcabvbP;-qWj$NWuduzAb(VkuF z=`@Uj${r$LySk?^pq8 zZvXKb)hn9qL)Fsctx`U;9pJ9q=LJLx&2YN3jEG*H#-5O4V7VINqEL&!R^=RTU zx`b16!-le|vs(2v(SpbAHfn$GJ+&7jGHcw^L-uXlT+#clgKwd5J9d zv?Ds9LwAAYw3!Qu`9{4nv?^R}!`lbspHofrSgMqa()&W|H^Ri9rkk@MH!jflrFUKb zd@=-v{PauQ0*CW7kKPawM74@Vte8-+JNYY54Rdq)a{q3 z59Jmz3>jU!8QqoC)#zmwKfm=(&O7UMV=_2WT|gh?zx?K@SCn{qPdsd^fw6AB?qz=E zn4EIL)h$Q2Y{wG#)~GYz?s$$4^W*rm?oKNDH#a%$c&2(@JsF7=zu??8Ld9Ghuen&X zT$Ir&^_BI^W`bFF-{)@fFi!j8Z1X0eaU+vU)Cmk4rC&^S90sZ)E|#^*=FVH&8dC+- z?RQ%gSVarG9OCFSP7oCaqyCEFlu2dh)lfNGxPa?NMOv`ZHZGV18{}<{%f->oKnM#jNE5U#Sfe6UXY%% z@V2g<4M|L!l@79{HcDlqg1^RQOAn9VdfmxR;@MHyZEH3@@7^kcj$xys&(xjCpW8~x zEW2w#FV(uKTC|>*5$ud?ZP zZcalijX>(OO!J+7@w?O~)t4?NDAqSbS=gPI3uw}@_w|UsCO`8!u}SB$=;yRM0`=2c zX+}qF+ak5!U@IR)Z65!GoTj&;Jb5A5H+|OKOx4BG!9&YOKbO(J?{gC0Op1AL=6mq7 zQL3m!U!EsEIZYhOS9W(o!_|BRRb4}xauSmJ(c4eEdFyF?AK$R`wB`ATx>&rbz$zlt zcQ8J==F1DzTv^nS6eTu$P0hPd=y8$b@u5!Rd1o}oN7#x?Y~$JQs7rSzJm-UB|8ksV-Nrq|83W`c)%K%%GCbRt*{OsFf$Mr8~ETbO_QVxq(f0gLEs>-6=>)3I;7AT>?@90sT?v@>*|# z$1&uyBR}OaHCakLio74CWgzs8YPO`o&u43M^K|m`^=j7Y*`W6jPT&nZ#`w<#HV|R; zFcIhns#q2IH$BaP2!!$rNYuEW`#LOUhWkE#B(&YjNt3cO07U2q5oBAk`Xm<`|G92*l3YSCSS|h6VY$uONmD`B0iT zOAPr?KwgRliM|F&XOg2wxbq5Pq7|ghhS1gl$*Z_S%YoEZbuCcuIgcDdU^6nrBStq4 z=Z*;^FkOU5zA+m>JgseVH~ZHIoiseicz^5EB9+JsxSl5E74D{k**R*<#ghYrm`D!gkw{ zR*Yt6{^Ipx1SAOVy`imXOM5pd+)$XmfrTUO*ZHU$Uu_5madft7EVV~nDZ=th0 zlsWmT??fobF|J?VWH8Nd=30spyX0MTT!`{N1hW@2KHCuIj63O-ZG|D{&M*g$D)pGv zJ|szQhoe=xi|(+1^BCrlPkc27Y=nD+>)W}7uvQoF41zYCh*3;Paym#}hod7&yhFo>(Lf__n8tjd z9YiBek3ph^$@3)y7E!N95~$I3y>lr-D3!E{HXI^c6Pc~(@@vQPn^EWrdJvMe<-oSk=n9Knf zmhWNEFvRgFTvxD_pOI%T(kK!e#kI~-V%&(c@ApyQzN1jpU*vmVIY%8 zs;`K>aC|t!+S2;SigVrVCHhZt7+>iX(>$i62gRybBjx4bFSP1~CfZkCWV z-sDVIDn=elO@F7!HOWJkZkdLY=BTC1a>(LK7~hMR3{BQf_D^0d)6{a+5+C<2yRKQT zg;Q>%?N=s6^h)u6hkdaUY@nsH%^@pNC;5)jK6E50_8*H{|%BK3Y$6u8^kWa}xI3Fl!NV%3-R9M7YWPf%ZxQ6|< zW?@@+Dob&YW)N%e0XrhQID5^6O{GPpf2H8G&veVQ>88sj(dNeVmb+8-oou%31E@Xp z$Q}Kqz)Q84VJ~OghrWo7nQeHlqaXAhV6V@O$Q{`47akCQ*_zlIp%UccLlcO*X~!*O zw%s3Rwq~1V-88Zty7=@)pViCwH&%rs3Wc|t7{5hWF7bO2i&<1SlABiWeT2{2ioi^* zd1i{<6m>1PFb^czW>~x&sULIe?|;WOTk)Zy=WC4cc$RGrtYzx;%vp5U6Pc_o#VCQO z?v&{i-#+9N<&>j}G;J|$Z|wu^$qI!DgAKL~`w1O8RWhAS%uHxz-}9%HnU!xmGVSLH zJ`uz+k1`)_32AqA^rApv|;R^F!NRBY~_^w z`?-G6F2C|qWsXd;9>Y%2Es6c@Bi&EV{Y%*;nI#>2ajTq09!7dbr_Gcqby6oAJ(C zvSo}A_M&AI-X}ZZ>St7+e{6thC<$94&G|&MvZv%KBzH@v$EPGYd}{ z#}~DF4L4`EBesc(WxZ3&=9rz>(#J1u&)7V7@vyA0u~WA*`ON{6} zTBbX8-J2n_3sV{?tXHp6#U@hXe9G#jPonSDB;PE5|2^-##l@Fny6eG2zRhvfs!i2( zADX=Mb{1$`WnK}{MQIRwa&Q}}zclx<-X8Vqv+Ao&IamFptFEUJnnnoZ9hHz zQL(Xib3=ZkXv3l6NU!yoVzZ6J_;C0(Rwda^^a`1=z2Zl=d>@;Gn1T9%-T_2@82_ez z|MQBO-F$(7)Dfw2+gIMW zJ+d_xaAMOo?mGE>lEX09yLs#FSF%P2#yRpPhL;E5Jq|aCJu$v1%^Lc|dObU9nLhu5 zdV=#Mp#Gu;-e$k>-K5QAs8bJT3mZKm=OXEHEMjp~u3v7PPL?h@Hk*oy42!gR*L*N> zv81*Hf2h}A`_g;EwS0B{{L|^(A>FeN+t-hyhFYtU(jP24ZfWfxO1t%{m6qDtT$EOaUztnUNeXUd zE$`z3*YLTgY35^VCTvbCE`}lE1qB4`;chT$FMB%&SE!dL?Qe9U;Qf!ooV3)xo#JLI zN-Oc>g4DXos?<`BE^umo4t{nsE^a<*L17MVer`S?ZZ>KjE^b~sl zo1glR7p)iucqigwZUI%7mi^;$U?fUw<>uxD<>d7A^yKj5<#2Sd7UtyQ;pE|A z2WPOmdONtmyx1LF>3%2jFFMk2S2GuDCpT+H2kIYmVWy7mZlbibKQ8p=>yPKMclz@} z4z7P-2T;)wrD?$7D}`V{77f39?Lcd`2oU~@B0xE|A`BJls&gjl4hJL%F#AM&$Q1uh38i zY;O*8gZ(d5{&DVAI*#Vn7T*68mA}sXCk&;1AN~fV7#Z zAeRuYxiGtc02d#-FpQ6%U6`AThaD!wEnv%5q5yt{q39| zcmMzN690kBzg=gL2pS^xV6{%6wn zWBA`m{dU%WC*ta8;pPc*flF8dp7_5J!`})1bH!E4BAh>TvYqw+2YcWO^Z0+a1OJ-{ z{r`Oj{^DITE0}{N++2+FUu^rY1OMBm{l1m|l&62Gfq$1jkw0w`^k4EX0W{bTF?IbX zGyEo|k}%7E9{q9Kf3S|QtP~HQtc*05l%No|w3M)burRlzpdi155VwSYkc{wu=CR+8 z{*$f<=l^zBf4g}pM>|IsWk++k81LU#|8@8;@cy<6WcyTqPxgtqs>?}IE67L*a0?3v zu=8+m|DDX=&ifl3b2F%gql-PvP0ZRJW(ntXae;H+UT`~IX=`B6Tz{x(ZXWPZzb(2t^B-60{nwR$oB3nq z@9gzA=kquA{rxC#ZGl(K`KMd`Z=C(7dH6s1=C4QkKS}iptzQ?p0?5yYzu@{gK38Uc z!F2_YpAUb*^>ci#%>IJw3Lrlp{(|f0_*|L&1=kfoem?vK*U#~}GW!dzD}elb_zSL| z<8x*97hG2W`T6h{TtCO>%Iq(=t^o4$;V-y;j?b0ZUvOOk|>k1%0AO3>t=lEQi{RP(*Kz=^_1=r8r>*x4fnf(RV6+nJI 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 MGWVpbBu#?ASsfiZj#IWP}eQF zSKCEdLnUpL>Qy3bx89p1SxV7z-@Heq_x{o6p3mo;-|zRFXZb$g=XpNo|@%7#Qm(g<|1Q7!oAMcfzh1 z%$%L#a2~=7Sk2SM5tED@1fD6Kv*j>QS6ZY92RuNZLsGha_!JcXv+%ovr4W(9QW~RE3 zv-OlMi^164APK75^87()xupE;lg0Y_`oH;XUwC1^Bd=mbAICM;ZHFh*rO_|s{`ewo z?Xpq(ja|pxOan8=YZ`l8h$o`oW@Tq{FyTMmu`|`(RNFRZeeXziRdKh*Jrm{#;ULtJ zE_H4&h#E4@`Ok`yrZokI?WX%%e>if18zXIy!McH!BZhHfk{jjqi*J`>-cP3;3Rd@a z3$43Wzuc=F@Nt!VYPs9r-{0HWDfV8!e!ruWlV5mLFX}F z+tPUKbyw|hWSX9JfL`E6gV-n8R4P>(d4i|m;Nb9lc=*DdJ4KDhiz5cwd968v8^e?u zdcEaWDvjB-zBdQ%2Pe{P(;o$`Du^@f^GRXuCRX&E zwjG6&8OVy^`Wmu|4+gDh$=%J03h>vH6eR6Z`eOv|w_weY4H9N#Kcf##RH*o@pm1C%>7R!r^dpva+&_ za*}>}u37NWcvaAYGwFr-{-t|0?RmL23sYE24#h=f4($atoJ+6~Y<6E4WLKN?@!h+Q z9TU7}U7MVmoCN6fMVBsJB1fC}rjIKh240>2xNlXr`gL7C?%-CyOgFJ{ z%7{iibzWXV5=lKPf?2WeYxciGJF73UlM9&MEb z02;O-5}k9>ngx}&CNnUme(g9>+WeE(JL+;JA9{NuDk>{E%Zg5=jV<_KTS(mX@x|DK0j9F+3dq_Qjf>o*vNVZXHFhLMNg{g4?^y zP-m#DGlH{Rdr#e=j6om2ChPYsdk|cJwzNnjYRffQ%4@QGh1adfI=t;omwMuws3f?o z%k?jI2MS@y0i9T8F1I}_|4<6}E2&hoasT}n*j`HE>C7XoM~@C^6;d|v`M3^;&bgN> zE5va?m=6aCrPG~V`rv8?R?M3lZS_KkDantQlj@O0{3QQ-Op^SrKj!Z6mR zp1w8c+Q>^4`VosxPfs^ry!hH=L_|c!GTZF^dS_%-%ME-Ixz)#Z#;@%&Hf}nb{=9zP z66535<|AASZ*Ol91l1?IA3U%MH&Qoe7DV^)-WvL3@Z@eyiw=4sP)E_9jcqmIt-FG4 zXqp2Q`Fk7(u z&cE`Vy@!(B;}1-GIvdWLw~Jai{u(b0s!R~KvTny*x~ zhLkQFE;Y9;l==JR8f*$~sd1sY;>OI)1&O_5-XR|hfAuuow{M@))y>T&FE4LXpTR^j zlp1T|Wikb5-mu8%^iyM*<%GQYP)r7-@~?uTajTUS)Z1k zaj|~tXn8;x-(cy#ElVpM6sfTWXqcKF7Qx)Cn?SYa^n`ZeHd5!|FK&?o;Am;do? z(!1NMO!6|~5&!DV*NluxQWn+^RCWF7c(DEQ$&|GA5OB|Ni|Ew=J1WER*&5v=MbC%F zwr{U;5*~}QqfR-Nu8W&C3TmCNrG9rSr1Fw#wcV{W9px5kYIt_3&Hyp$`o^C$&B-m4 r+MFij(UNA@-huG(->L_v^*~H>dG&^bM|oB=KWctnf!r$3O&R|Kn>8fA literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/wind.png b/2024/scripts/animation_tools/springmagic/icons/wind.png new file mode 100644 index 0000000000000000000000000000000000000000..47938d943ca58ab8b72e21d9895801f790ada43a GIT binary patch literal 4543 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/icons/youtube.png b/2024/scripts/animation_tools/springmagic/icons/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9ac8cc87094cd93c17aa4d195991de8b676388 GIT binary patch literal 18445 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 X>8%d7`mkvBANCkvP4uqoIv)KmTwC++ literal 0 HcmV?d00001 diff --git a/2024/scripts/animation_tools/springmagic/main.py b/2024/scripts/animation_tools/springmagic/main.py new file mode 100644 index 0000000..18e2d56 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/main.py @@ -0,0 +1,13 @@ +from .import ui as ui + + +def main(*args, **kwargs): + widget = ui.SpringMagicWidget() + widget.show() + + +if __name__ == "__main__": + import springmagic + + with springmagic.app(): + springmagic.main() diff --git a/2024/scripts/animation_tools/springmagic/mkDevTools.py b/2024/scripts/animation_tools/springmagic/mkDevTools.py new file mode 100644 index 0000000..915fac1 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/mkDevTools.py @@ -0,0 +1,36 @@ +from os import path +import compileall +import sys, types + + +def recompile(modulename): + """Recompile the given module, its directory's contents!""" + myScriptPath = sys.modules[modulename.__name__].__path__[0] + if path.isdir(myScriptPath): + compileall.compile_dir(myScriptPath, force=True) + + +def reload_module(modulename): + """Reload the given module and all children""" + + # Get a reference to each loaded module + loaded_modules = dict([(key, value) for key, value in list(sys.modules.items()) + if key.startswith(modulename.__name__) and + isinstance(value, types.ModuleType)]) + + # Delete references to these loaded modules from sys.modules + for key in loaded_modules: + del sys.modules[key] + + # Load each of the modules again + # Make old modules share state with new modules + for key in loaded_modules: + print('re-loading %s' % key) + newmodule = __import__(key) + oldmodule = loaded_modules[key] + oldmodule.__dict__.clear() + oldmodule.__dict__.update(newmodule.__dict__) + +def refresh(modulename): + recompile(modulename) + reload_module(modulename) \ No newline at end of file diff --git a/2024/scripts/animation_tools/springmagic/springMagic.py b/2024/scripts/animation_tools/springmagic/springMagic.py new file mode 100644 index 0000000..7c761ea --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/springMagic.py @@ -0,0 +1,28 @@ +import sys +import os +import inspect + + +def main(): + # Add SprinMagic path to PYTHON_PATH + script_name = inspect.getframeinfo(inspect.currentframe()).filename + script_path = os.path.dirname(os.path.abspath(script_name)) + path_name = os.path.dirname(script_path) + + if os.path.exists(path_name) and path_name not in sys.path: + sys.path.append(path_name) + + # Import SpringMagic module + + # Recompile SpringMagic module if modification has been made + + from . import main as app + from . import mkDevTools as dev + + import springmagic + dev.refresh(springmagic) + # Launch SpringMagic + app.main() + + # Remove SprinMagic path from PYTHON_PATH + sys.path.remove(path_name) diff --git a/2024/scripts/animation_tools/springmagic/springMagic.ui b/2024/scripts/animation_tools/springmagic/springMagic.ui new file mode 100644 index 0000000..2120b5d --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/springMagic.ui @@ -0,0 +1,1664 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 8 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + Spring Magic + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 46 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 52 + 71 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the spring is, bigger value, softer result.</p><p>Important: only working for &quot;X-axis aiming to child&quot; joint chain.</p></body></html> + + + Spring + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 90 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the twist (X-axis) is</p></body></html> + + + Twist + + + + + + 120 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + Bone Pose + + + + + 10 + 20 + 61 + 31 + + + + Go to joint bind pose + + + Bind Pose + + + + + + 10 + 60 + 61 + 31 + + + + + 8 + + + + Set joint chain as straight + + + Straight + + + + + + 80 + 20 + 51 + 31 + + + + Copy bone poses + + + Copy + + + + + + 80 + 60 + 51 + 31 + + + + Paste bone poses + + + Paste + + + + + + + 260 + 280 + 81 + 51 + + + + + 10 + 75 + true + + + + <html><head/><body><p>Affect select object only</p></body></html> + + + Apply + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + Collisions + + + + + 10 + 30 + 61 + 17 + + + + <html><head/><body><p>Active collision calculation with capsule body in scene.</p><p>May slow down the calculation</p></body></html> + + + Active + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>Add a capsule at original point if select notion, or add a capsule match with selected bone.</p><p>Note: you can adjust the capsule with move or scale the cylinder at middle. Parent capsule to diffecrent object to move follow it.</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>Clear all capsules in scene</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 80 + 30 + 75 + 17 + + + + <html><head/><body><p>Click on this if capsule attach on a fast move bone, like sprinting legs, to reduce the clip through.</p><p>Note: May cause more poping if capsule moving slowly.</p></body></html> + + + Fast Move + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 232 + 0 + 71 + 16 + + + + <html><head/><body><p>Tension of the chain, means how much the force of bend will be path through the chain, only take effect when collision happends. Can reduce poping and clip through of collision result.</p></body></html> + + + Tension + + + + + false + + + + 271 + 0 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + Key Setting + + + + false + + + + 120 + 50 + 71 + 16 + + + + <html><head/><body><p>Remove precision keys on sub frame after calculation</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 20 + 50 + 71 + 16 + + + + <html><head/><body><p>How many sub frame that will be go through during 1 frame, that for capture really fast move</p><p>collision body. Default value is 1, if set as 5, means will step as 1/5 frame to calculation.</p><p>will increase calculation time by times</p></body></html> + + + Sub-Frame + + + + + false + + + + 80 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 61 + 17 + + + + Current time line range + + + Active + + + true + + + + + + 140 + 20 + 51 + 17 + + + + From + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 230 + 20 + 21 + 16 + + + + To + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 280 + 50 + 51 + 16 + + + + <html><head/><body><p>Will caculate twice to get looped result</p></body></html> + + + Loop + + + false + + + + + true + + + + 194 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Add wind controller</p></body></html> + + + Wind + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + Controller + + + + + 10 + 20 + 71 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Bind bone chain to selected rigging controller</p></body></html> + + + Bind + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + <html><head/><body><p>Bake bone chain animation back to controller</p></body></html> + + + Bake + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 166 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define flexibility of spring, which can produce strech and squash animation</p></body></html> + + + Flex + + + + + + 192 + 50 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 52 + 61 + 16 + + + + + 8 + + + + <html><head/><body><p>set between 0 to 1</p><p>define inertia of spring, which can produce weight result</p></body></html> + + + Inertia + + + + + + 277 + 50 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 320 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + New Version Available! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Tutorials on YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Set Language + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2024/scripts/animation_tools/springmagic/springMagic_chn.ui b/2024/scripts/animation_tools/springmagic/springMagic_chn.ui new file mode 100644 index 0000000..f44b798 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/springMagic_chn.ui @@ -0,0 +1,1821 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 9 + 50 + false + PreferDefault + true + + + + false + + + + + + + + + + + + + + + + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + + + icons/spring.pngicons/spring.png + + + 算飘带 + + + + true + + + + 20 + -20 + 341 + 341 + + + + + 10 + + + + 计算飘带 + + + true + + + + + 40 + 40 + 31 + 20 + + + + + 10 + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,链条摆动幅度,数字越大结果越柔软</p><p>注意:计算只对+X轴朝向子物体的骨骼链有效</p></body></html> + + + 摆动 + + + + + + 160 + -68 + 31 + 16 + + + + + 10 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + + 10 + + + + 0 + + + + + + 86 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,拧转效果(X轴)的柔软度,越大拧得越多</p></body></html> + + + 拧转 + + + + + + 116 + 40 + 31 + 20 + + + + + 10 + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 0 + 220 + 141 + 101 + + + + + 10 + + + + 骨骼姿态 + + + + + 10 + 20 + 61 + 31 + + + + + 10 + + + + 回到蒙皮姿态 + + + 蒙皮姿态 + + + + + + 10 + 60 + 61 + 31 + + + + + 10 + + + + 清零旋转值 + + + 拉直 + + + + + + 80 + 20 + 51 + 31 + + + + + 10 + + + + 复制所选的骨骼姿势 + + + 复制 + + + + + + 80 + 60 + 51 + 31 + + + + + 10 + + + + 粘贴骨骼姿势 + + + 粘贴 + + + + + + + 250 + 270 + 81 + 51 + + + + + 12 + 75 + true + + + + <html><head/><body><p>仅计算选中的物体</p></body></html> + + + 计算 + + + + + + 350 + 22 + 41 + 16 + + + + + 10 + + + + UpAxis + + + + + + 0 + 150 + 331 + 61 + + + + + 10 + + + + 碰撞 + + + + + 10 + 30 + 51 + 17 + + + + + 10 + + + + <html><head/><body><p>勾选后会计算飘带与场景中胶囊体的碰撞</p><p>会减慢计算速度</p></body></html> + + + 启用 + + + + + false + + + + 70 + 30 + 71 + 17 + + + + + 10 + + + + <html><head/><body><p>如果胶囊体附加在快速移动的物体上,比如奔跑中的双腿与裙子的碰撞。勾选此项时,可以减少穿插。</p><p>注意:在碰撞体移动较慢时勾选此项,可能会造成结果抖动。</p></body></html> + + + 快速移动 + + + + + + 380 + 22 + 50 + 16 + + + + + 10 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + + 10 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 170 + 14 + 41 + 41 + + + + <html><head/><body><p>创建一个胶囊体,如果不选择骨骼,则在原点生成,如选择骨骼,则跟骨骼大小位置对齐</p><p>注意:可以缩放移动中间的圆柱形来调整胶囊体。也可以将胶囊体设为子物体来跟随父物体移动。</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 220 + 120 + 41 + 41 + + + + 删除选中的胶囊体 + + + + + + + icons/removeCapsule.pngicons/removeCapsule.png + + + + 32 + 32 + + + + + + true + + + + 270 + 14 + 41 + 41 + + + + 清除场景中所有的胶囊体 + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + true + + + + 220 + 14 + 41 + 41 + + + + <html><head/><body><p>创建一个碰撞平面</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 230 + -10 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>链条张力,用于定义由碰撞造成的弯曲如何在链条中传递,仅在碰撞发生时生效。</p><p>适当设置可减少碰撞计算结果的抖动和穿插。</p></body></html> + + + 张力 + + + + + false + + + + 260 + -20 + 31 + 20 + + + + + 10 + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 0 + 70 + 331 + 71 + + + + + 10 + + + + 计算范围 + + + + + 20 + 20 + 91 + 17 + + + + + 10 + + + + 当前时间轴显示范围 + + + 当前时间轴 + + + true + + + + + + 140 + 20 + 41 + 17 + + + + + 10 + + + + + + + + + false + + + + 180 + 20 + 31 + 20 + + + + + 10 + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 220 + 20 + 16 + 16 + + + + + 10 + + + + + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + 10 + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + false + + + + 30 + 48 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>将一帧拆分成若干碎帧来进行细分计算,以捕捉非常快速移动的碰撞体</p><p>相应的会成倍增加计算时间,但能获得更精细的效果</p><p>默认为1,如设为5,则会以1/5帧为步进来计算</p></body></html> + + + 拆帧 + + + + + false + + + + 60 + 46 + 31 + 20 + + + + + 10 + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 270 + 50 + 51 + 16 + + + + + 10 + + + + <html><head/><body><p>是否循环计算,以对齐首尾帧</p></body></html> + + + 循环 + + + false + + + + + false + + + + 100 + 50 + 71 + 16 + + + + + 10 + + + + <html><head/><body><p>在计算完成后清理不在整数上的细碎关键帧</p></body></html> + + + 清理碎帧 + + + true + + + + + true + + + + 190 + 50 + 71 + 16 + + + + + 10 + + + + <html><head/><body><p>使计算结果尽量贴合已有的骨骼关键帧</p></body></html> + + + 姿态拟合 + + + true + + + false + + + + + + + 310 + 30 + 30 + 30 + + + + + 0 + 0 + + + + 在当前书签栏创建快捷启动图标 + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + + + + 160 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,给骨骼链增加弹性,用于创造拉伸和挤压的效果</p></body></html> + + + 伸缩 + + + + + + 190 + 40 + 31 + 20 + + + + + 10 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 150 + 220 + 91 + 101 + + + + + 10 + + + + 控制器 + + + + + 10 + 20 + 71 + 31 + + + + + 10 + 50 + false + + + + <html><head/><body><p>根据所选择的动画控制器来创建骨骼链</p></body></html> + + + 绑定 + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + + 10 + + + + <html><head/><body><p>将所选骨骼链的计算结果烘焙到控制器上</p></body></html> + + + 烘焙 + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 250 + 230 + 81 + 31 + + + + + 10 + 50 + false + + + + <html><head/><body><p>创建风向控制器</p></body></html> + + + + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 270 + 41 + 31 + 20 + + + + + 10 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,给骨骼链增加惯性,产生一定的重量感</p></body></html> + + + 惯性 + + + label_24 + label_15 + collision_groupBox + springSpring_lineEdit + label_16 + springSubs_lineEdit + label_17 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_8 + label_18 + springTension_lineEdit + keyRange_groupBox + shelf_button + label_19 + springExtend_lineEdit + groupBox + springWind_Button + springInertia_lineEdit + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + 有新版本! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + YouTube 英文教程 + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + 语言设置 + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 340 + 21 + 16 + + + + + 8 + + + + chn + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + label_23 + setEnabled(bool) + + + 71 + 193 + + + 81 + 141 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 63 + 191 + + + 113 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 61 + 191 + + + 201 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 92 + 185 + + + 136 + 185 + + + + + springCapsule_checkBox + clicked(bool) + label_18 + setEnabled(bool) + + + 61 + 198 + + + 281 + 64 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 48 + 193 + + + 313 + 64 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 213 + 113 + + + 243 + 119 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 218 + 111 + + + 308 + 116 + + + + + diff --git a/2024/scripts/animation_tools/springmagic/springMagic_eng.ui b/2024/scripts/animation_tools/springmagic/springMagic_eng.ui new file mode 100644 index 0000000..2120b5d --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/springMagic_eng.ui @@ -0,0 +1,1664 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 8 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + Spring Magic + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 46 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 52 + 71 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the spring is, bigger value, softer result.</p><p>Important: only working for &quot;X-axis aiming to child&quot; joint chain.</p></body></html> + + + Spring + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 90 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the twist (X-axis) is</p></body></html> + + + Twist + + + + + + 120 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + Bone Pose + + + + + 10 + 20 + 61 + 31 + + + + Go to joint bind pose + + + Bind Pose + + + + + + 10 + 60 + 61 + 31 + + + + + 8 + + + + Set joint chain as straight + + + Straight + + + + + + 80 + 20 + 51 + 31 + + + + Copy bone poses + + + Copy + + + + + + 80 + 60 + 51 + 31 + + + + Paste bone poses + + + Paste + + + + + + + 260 + 280 + 81 + 51 + + + + + 10 + 75 + true + + + + <html><head/><body><p>Affect select object only</p></body></html> + + + Apply + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + Collisions + + + + + 10 + 30 + 61 + 17 + + + + <html><head/><body><p>Active collision calculation with capsule body in scene.</p><p>May slow down the calculation</p></body></html> + + + Active + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>Add a capsule at original point if select notion, or add a capsule match with selected bone.</p><p>Note: you can adjust the capsule with move or scale the cylinder at middle. Parent capsule to diffecrent object to move follow it.</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>Clear all capsules in scene</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 80 + 30 + 75 + 17 + + + + <html><head/><body><p>Click on this if capsule attach on a fast move bone, like sprinting legs, to reduce the clip through.</p><p>Note: May cause more poping if capsule moving slowly.</p></body></html> + + + Fast Move + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 232 + 0 + 71 + 16 + + + + <html><head/><body><p>Tension of the chain, means how much the force of bend will be path through the chain, only take effect when collision happends. Can reduce poping and clip through of collision result.</p></body></html> + + + Tension + + + + + false + + + + 271 + 0 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + Key Setting + + + + false + + + + 120 + 50 + 71 + 16 + + + + <html><head/><body><p>Remove precision keys on sub frame after calculation</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 20 + 50 + 71 + 16 + + + + <html><head/><body><p>How many sub frame that will be go through during 1 frame, that for capture really fast move</p><p>collision body. Default value is 1, if set as 5, means will step as 1/5 frame to calculation.</p><p>will increase calculation time by times</p></body></html> + + + Sub-Frame + + + + + false + + + + 80 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 61 + 17 + + + + Current time line range + + + Active + + + true + + + + + + 140 + 20 + 51 + 17 + + + + From + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 230 + 20 + 21 + 16 + + + + To + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 280 + 50 + 51 + 16 + + + + <html><head/><body><p>Will caculate twice to get looped result</p></body></html> + + + Loop + + + false + + + + + true + + + + 194 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Add wind controller</p></body></html> + + + Wind + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + Controller + + + + + 10 + 20 + 71 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Bind bone chain to selected rigging controller</p></body></html> + + + Bind + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + <html><head/><body><p>Bake bone chain animation back to controller</p></body></html> + + + Bake + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 166 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define flexibility of spring, which can produce strech and squash animation</p></body></html> + + + Flex + + + + + + 192 + 50 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 52 + 61 + 16 + + + + + 8 + + + + <html><head/><body><p>set between 0 to 1</p><p>define inertia of spring, which can produce weight result</p></body></html> + + + Inertia + + + + + + 277 + 50 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 320 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + New Version Available! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Tutorials on YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Set Language + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2024/scripts/animation_tools/springmagic/springMagic_jpn.ui b/2024/scripts/animation_tools/springmagic/springMagic_jpn.ui new file mode 100644 index 0000000..26428f1 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/springMagic_jpn.ui @@ -0,0 +1,1760 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 9 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + スプリングマジック + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 30 + 56 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 20 + 40 + 71 + 16 + + + + + 9 + + + + <html><head/><body><p>0から1までの値をセットします。</p><p>スプリングの柔らかさを定義します。大きい値ほど柔らかい結果となります。</p><p>重要:ジョイントチェーンは&quot;子に向かってX軸方向&quot;にのみ機能します。</p></body></html> + + + スプリング + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 96 + 40 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>0から1までの値をセットします。</p><p>(X軸に対し)ツイストの柔らかさを定義します。</p></body></html> + + + ツイスト + + + + + + 101 + 57 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + + 9 + + + + ボーンポーズ + + + + + 4 + 20 + 91 + 31 + + + + + 9 + + + + バインドポーズにします。 + + + バインドポーズ + + + + + + 4 + 60 + 71 + 31 + + + + + 9 + + + + ジョイントチェーンをまっすぐにします。 + + + ストレート + + + + + + 97 + 20 + 41 + 31 + + + + + 9 + + + + + + + コピー + + + + + + 87 + 60 + 51 + 31 + + + + + 9 + + + + + + + ペースト + + + + + + + 260 + 280 + 81 + 51 + + + + + 12 + 75 + true + + + + <html><head/><body><p>選択したオブジェクトにのみ影響します。</p></body></html> + + + 適用 + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + + 9 + + + + 衝突判定 + + + + + 10 + 30 + 81 + 17 + + + + + 9 + + + + <html><head/><body><p>シーン内のカプセルボディに対する衝突計算をアクティブにする。</p><p>計算がスローダウンする可能性があります。</p></body></html> + + + アクティブ + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>選択物の元の位置にカプセルを追加する、もしくは選択したボーンにふさわしい位置にカプセルを追加します。</p><p>注意:中央のシリンダー部を動かしたりスケールすることで、カプセルを調整することができます。異なったオブジェクトにカプセルをペアレントすると、それをフォローして移動します。</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>シーン中のすべてのカプセルを消去します。</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 90 + 30 + 75 + 17 + + + + + 9 + + + + <html><head/><body><p>クリックで有効にすることで、全速力で動く足のような高速で動くボーンにカプセルをアタッチした場合、すり抜けを減少することができます。</p><p>注意:カプセルがゆっくりと動く場合には、ポッピングの原因になることがあります。</p></body></html> + + + 高速移動 + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 240 + -30 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>チェーンのテンション、つまりチェーン全体にどの程度曲がる力が適用されるかの度合いは、衝突発生時にのみ影響します。衝突の結果として、ポッピングしたりクリップしたりするのを緩和できます。</p></body></html> + + + テンション + + + + + false + + + + 250 + -10 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + + 9 + + + + キー範囲 + + + + false + + + + 110 + 50 + 71 + 16 + + + + + 9 + + + + <html><head/><body><p>計算後のサブフレーム上の精度キーを取り除きます。</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 10 + 50 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>1フレーム経過する際に評価されるサブフレーム数を設定することで、衝突物の非常に素早い動きをキャプチャすることができます。</p><p>デフォルト値は1で、5をセットすれば1/5フレームごとに評価されます。</p><p>値を増やすと計算時間が増えます。</p></body></html> + + + Sub-Frame + + + + + false + + + + 70 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 91 + 17 + + + + 現在のタイムラインの範囲 + + + アクティブ + + + true + + + + + + 140 + 20 + 51 + 17 + + + + + 9 + + + + 始点 + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 20 + 31 + 16 + + + + + 9 + + + + 終点 + + + + + false + + + + 280 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 274 + 50 + 51 + 16 + + + + + 9 + + + + <html><head/><body><p>結果がループするように、2回計算します。</p></body></html> + + + ループ + + + false + + + + + true + + + + 190 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 9 + 50 + false + + + + <html><head/><body><p>ウィンドコントローラを追加します。</p></body></html> + + + ウィンド + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + + 9 + + + + コントローラー + + + + + 5 + 20 + 81 + 31 + + + + + 9 + 50 + false + + + + <html><head/><body><p>選択されたリグコントローラにボーンチェインをバインドします。</p></body></html> + + + バインド + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + + 9 + + + + <html><head/><body><p>ボーンチェインのアニメーションをコントローラにベイクし戻します。</p></body></html> + + + ベイク + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 170 + 40 + 61 + 16 + + + + + 9 + + + + 0〜1の間に設定する +ストラッチとスカッシュアニメーションを生成するスプリングの柔軟性を定義する + + + フレックス + + + + + + 180 + 57 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 270 + 40 + 41 + 16 + + + + + 8 + + + + <html><head/><body><p>0〜1の間に設定する</p><p>ばねの慣性を定義します。これにより、重量結果が生成されます</p></body></html> + + + 慣性 + + + + + + 266 + 56 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 310 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + 新バージョンが利用できます! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + チュートリアル@YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + 言語設定 + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + spring_language_list + language_button + main_lang_id + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2024/scripts/animation_tools/springmagic/springMath.py b/2024/scripts/animation_tools/springmagic/springMath.py new file mode 100644 index 0000000..a8588cd --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/springMath.py @@ -0,0 +1,291 @@ +import math +import pymel.core as pm +import pymel.core.datatypes as dt + + +def sigmoid(x): + return 1 / (1 + math.exp(-x)) + + +def distance(a, b): + return (b - a).length() + + +def lerp_vec(a, b, t): + return (a * (1 - t)) + (b * t) + + +def dist_to_plane(pt, n, d): + return n.dot(pt) - (d / n.dot(n)) + + +def dist_to_line(a, b, p): + ap = p - a + ab = b - a + result = a + ((ap.dot(ab) / ab.dot(ab)) * ab) + return distance(result, p) + + +def is_same_side_of_plane(pt, test_pt, n, d): + d1 = math.copysign(1, dist_to_plane(pt, n, d)) + d2 = math.copysign(1, dist_to_plane(test_pt, n, d)) + + # print(pt, test_pt, d1, d2) + return d1 * d2 == 1.0 + + +def proj_pt_to_plane(pt, n, d): + t = n.dot(pt) - d + return (pt - (n * t)) + + +def pt_in_sphere(pt, c, r): + return (pt - c).length() <= r + + +def pt_in_cylinder(pt, p, q, r): + n = (q - p).normal() + d = n.dot(p) + + if not is_same_side_of_plane(pt, (p + q) / 2.0, n, d): + return False + + n = (q - p).normal() + d = n.dot(q) + + if not is_same_side_of_plane(pt, (p + q) / 2.0, n, d): + return False + + proj_pt = proj_pt_to_plane(pt, n, d) + # logging("proj_pt", proj_pt) + # logging("q", q) + # logging("distance(proj_pt, q)", distance(proj_pt, q)) + + return distance(proj_pt, q) <= r + + +def segment_sphere_isect(sa, sb, c, r): + NotFound = (False, None) + + p = sa + d = (sb - sa).normal() + + m = p - c + b = m.dot(d) + c = m.dot(m) - r * r + + if c > 0.0 and b > 0.0: + return NotFound + + discr = b * b - c + if discr < 0.0: + return NotFound + + t = -b - math.sqrt(discr) + if t < 0.0: + return NotFound + + dist = distance(sa, sb) + q = p + d * t + return ((t >= 0 and t <= dist), q) + + +def segment_cylinder_isect(sa, sb, p, q, r): + SM_EPSILON = 1e-6 + d = q - p + m = sa - p + n = sb - sa + md = m.dot(d) + nd = n.dot(d) + dd = d.dot(d) + + NotFound = (False, None) + if md < 0 and md + nd < 0: + return NotFound + + if md > dd and md + nd > dd: + return NotFound + + nn = n.dot(n) + mn = m.dot(n) + + a = dd * nn - nd * nd + k = m.dot(m) - r * r + c = dd * k - md * md + + if abs(a) < SM_EPSILON: + if c > 0: + return NotFound + if md < 0: + t = -mn / nn + elif md > dd: + t = (nd - mn) / nn + else: + t = 0 + return (True, lerp_vec(sa, sb, t)) + + b = dd * mn - nd * md + discr = b * b - a * c + if discr < 0: + return NotFound + + t = (-b - math.sqrt(discr)) / a + if t < 0.0 or t > 1.0: + return NotFound + if (md + t * nd < 0.0): + if nd <= 0.0: + return NotFound + t = -md / nd + return (k + 2 * t * (mn + t * nn) <= 0.0, lerp_vec(sa, sb, t)) + elif md + t * nd > dd: + if nd >= 0.0: + return NotFound + t = (dd - md) / nd + return (k + dd - 2 * md + t * (2 * (mn - nd) + t * nn) <= 0.0, lerp_vec(sa, sb, t)) + + return (True, lerp_vec(sa, sb, t)) + + +def pt_in_capsule(pt, p, q, r): + return pt_in_cylinder(pt, p, q, r) or pt_in_sphere(pt, p, r) or pt_in_sphere(pt, q, r) + + +def segment_capsule_isect(sa, sb, p, q, r): + # sa = dt.Vector() + # ray start point pos vector + # sb = dt.Vector() + # ray end point pos vector + # p = dt.Vector() + # capsle one sphere tip pos + # q = dt.Vector() + # capsle another sphere tip pos + # r = float + # radio of capsle sphere + + if pt_in_capsule(sa, p, q, r): + if pt_in_capsule(sb, p, q, r): + # both inside. extend sb to get intersection + newb = sa + (sb - sa).normal() * 200.0 + sa, sb = newb, sa + else: + sb, sa = sa, sb + + # d = (sb - sa).normal() + + i1 = segment_sphere_isect(sa, sb, p, r) + i2 = segment_sphere_isect(sa, sb, q, r) + i3 = segment_cylinder_isect(sa, sb, p, q, r) + + dist = float('inf') + closest_pt = None + hit = False + hitCylinder = False + + for i in [i1, i2, i3]: + + if i[0]: + hit = True + pt = i[1] + + if distance(sa, pt) < dist: + closest_pt = pt + + dist = min(dist, distance(sa, pt)) + # draw_locator(i1[2], 'i1') + + return (hit, closest_pt, hitCylinder) + + +def checkCollision(cur_pos, pre_pos, capsuleLst, isRevert): + # calculate collision with all the capsule in scene + if isRevert: + sa = cur_pos + sb = pre_pos + else: + sb = cur_pos + sa = pre_pos + + isHited = False + closest_pt_dict = {} + + for obj in capsuleLst: + objChildren = pm.listRelatives(obj, children=1, type='transform') + p = objChildren[0].getTranslation(space='world') + q = objChildren[1].getTranslation(space='world') + r = obj.getAttr('scaleZ') * 1 + + hit, closest_pt, hitCylinder = segment_capsule_isect(sa, sb, p, q, r) + + if hit: + isHited = True + closest_pt_dict[obj.name()] = [obj, closest_pt] + # drawDebug_box(closest_pt) + + if isHited: + pt_length = 9999 + closest_pt = None + col_obj = None + + for pt in list(closest_pt_dict.keys()): + lLength = (closest_pt_dict[pt][1] - pre_pos).length() + + if lLength < pt_length: + pt_length = lLength + closest_pt = closest_pt_dict[pt][1] + col_obj = closest_pt_dict[pt][0] + + # return col pt and col_body speed + return closest_pt, col_obj, hitCylinder + else: + return None, None, None + + +def ckeckPointInTri(pos, pa, pb, pc): + ra = math.acos(((pa - pos).normal()).dot((pb - pos).normal())) + ra = dt.degrees(ra) + rb = math.acos(((pb - pos).normal()).dot((pc - pos).normal())) + rb = dt.degrees(rb) + rc = math.acos(((pc - pos).normal()).dot((pa - pos).normal())) + rc = dt.degrees(rc) + + return (abs(ra + rb + rc) > 359) + + +def getVertexPositions(obj): + vertex_positions_list = [] + + for vertex in obj.vtx: + vertex_positions_list.append(vertex.getPosition(space='world')) + + return vertex_positions_list + + +def checkPlaneCollision(objPos, childPos, colPlane): + + v_coords = getVertexPositions(colPlane) + + collision_plane_matrix = pm.xform(colPlane, worldSpace=1, matrix=1, q=1) + n = dt.Vector(collision_plane_matrix[4:7]) # Y axis direction of plane + q = v_coords[1] + d = n.dot(q) + + # get obj distance to plane + toPlaneDistance = dist_to_plane(objPos, n, d) + toPlaneDistance_child = dist_to_plane(childPos, n, d) + + # child projection position on plane + projectPos_child = proj_pt_to_plane(childPos, n, d) + + inPlane = False + + if ckeckPointInTri(projectPos_child, v_coords[0], v_coords[1], v_coords[2]): + inPlane = True + elif ckeckPointInTri(projectPos_child, v_coords[3], v_coords[1], v_coords[2]): + inPlane = True + + # bone above plane and bone child under plane and child project point on plane + # means has collision with plane + if (toPlaneDistance > 0) and (toPlaneDistance_child < 0) and inPlane: + return projectPos_child + else: + return None diff --git a/2024/scripts/animation_tools/springmagic/ui.py b/2024/scripts/animation_tools/springmagic/ui.py new file mode 100644 index 0000000..abbcf44 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/ui.py @@ -0,0 +1,460 @@ +import os +import time +import inspect +import webbrowser +import urllib.request, urllib.error, urllib.parse +import random +import datetime +import maya.mel as mel +import pymel.core as pm + +from . import core as core + +from shutil import copyfile + +kSpringMagicVersion = 30500 + +scriptName = inspect.getframeinfo(inspect.currentframe()).filename +scriptPath = os.path.dirname(os.path.abspath(scriptName)) + +# Parameter Initialization +ui_file = scriptPath + os.sep + 'springMagic.ui' + +# Constants +kVimeoLink = r'' +kYoutubeLink = r'https://animbai.com/2017/10/14/skintools-tutorials/' + +kUpdateLink = r'https://animbai.com/category/download/' +kVersionCheckLink = r'http://animbai.com/skintoolsver/' +kOldPersonalLink = r'http://www.scriptspot.com/3ds-max/scripts/spring-magic' + + +def widgetPath(windowName, widgetNames): + """ + @param windowName: Window instance name to search + @param widgetNames: list of names to search for + """ + returnDict = {} + mayaWidgetList = pm.lsUI(dumpWidgets=True) + + for widget in widgetNames: + for mayaWidget in mayaWidgetList: + if windowName in mayaWidget: + if mayaWidget.endswith(widget): + returnDict[widget] = mayaWidget + + return returnDict + + +class SpringMagicWidget(): + + def __init__(self, *args, **kwargs): + self.init() + + def init(self): + try: + pm.deleteUI(self.ui) + except Exception: + pass + + # title = pm.window(pm.loadUI(ui_file = ui_file)) + + self.ui = pm.loadUI(f=ui_file) + + ui_widget_list = [ + 'main_progressBar', + 'main_processLabel', + 'main_textEdit', + 'main_lang_id', + 'spring_language_list', + 'springSpring_lineEdit', + 'springSubs_lineEdit', + 'springXspring_lineEdit', + 'springTension_lineEdit', + 'springExtend_lineEdit', + 'springInertia_lineEdit', + 'springSubDiv_lineEdit', + 'springLoop_checkBox', + 'springPoseMatch_checkBox', + 'springClearSubFrame_checkBox', + 'springFrom_lineEdit', + 'springEnd_lineEdit', + 'springActive_radioButton', + 'springFrom_radioButton', + # 'springUpAxis_comboBox', + 'springApply_Button', + 'springCapsule_checkBox', + 'springFastMove_checkBox', + 'springFloor_checkBox', + 'springFloor_lineEdit', + 'springBindPose_button', + 'springStraight_button', + 'springCopy_button', + 'springPaste_button', + # 'donateBitcoin_lineEdit', + 'miscUpdate_pushButton', + 'springAddBody_Button', + 'springClearBody_Button', + 'springAddPlane_Button', + 'springAddWindCmd', + 'springBind_Button', + 'springBake_Button', + 'shelf_button', + 'vimeo_pushButton', + 'language_button', + 'statusbar', + 'springWind_Button'] + + self.uiObjects = widgetPath(self.ui, ui_widget_list) + + # Main UI + self.main_progressBar = pm.progressBar(self.uiObjects['main_progressBar'], edit=True) + self.main_processLabel = pm.text(self.uiObjects['main_processLabel'], edit=True) + self.main_lineEdit = pm.ui.PyUI(self.uiObjects['main_textEdit'], edit=True) + self.lang_id = pm.text(self.uiObjects['main_lang_id'], edit=True) + + self.language_list = pm.textScrollList(self.uiObjects['spring_language_list'], edit=True, + selectCommand=self.languageSelectedCmd, visible=False) + + self.spring_lineEdit = pm.textField(self.uiObjects['springSpring_lineEdit'], edit=True, + changeCommand=self.springRatioChangeCmd) + self.subs_lineEdit = pm.textField(self.uiObjects['springSubs_lineEdit'], edit=True) + self.Xspring_lineEdit = pm.textField(self.uiObjects['springXspring_lineEdit'], edit=True, + changeCommand=self.twistChangeCmd) + self.tension_lineEdit = pm.textField(self.uiObjects['springTension_lineEdit'], edit=True, + changeCommand=self.tensionChangeCmd) + self.extend_lineEdit = pm.textField(self.uiObjects['springExtend_lineEdit'], edit=True, + changeCommand=self.extendChangeCmd) + self.inertia_lineEdit = pm.textField(self.uiObjects['springInertia_lineEdit'], edit=True, + changeCommand=self.inertiaChangeCmd) + self.sub_division_lineEdit = pm.textField(self.uiObjects['springSubDiv_lineEdit'], edit=True, + changeCommand=self.subDivChangeCmd) + self.loop_checkBox = pm.checkBox(self.uiObjects['springLoop_checkBox'], edit=True) + self.pose_match_checkBox = pm.checkBox(self.uiObjects['springPoseMatch_checkBox'], edit=True) + self.clear_subframe_checkBox = pm.checkBox(self.uiObjects['springClearSubFrame_checkBox'], edit=True) + self.from_lineEdit = pm.textField(self.uiObjects['springFrom_lineEdit'], edit=True) + self.end_lineEdit = pm.textField(self.uiObjects['springEnd_lineEdit'], edit=True) + self.active_radioButton = pm.radioButton(self.uiObjects['springActive_radioButton'], edit=True) + self.from_radioButton = pm.radioButton(self.uiObjects['springFrom_radioButton'], edit=True) + # self.upAxis_comboBox = pm.optionMenu(self.uiObjects['springUpAxis_comboBox'], edit=True) + self.apply_button = pm.button(self.uiObjects['springApply_Button'], edit=True, command=self.applyCmd) + self.add_body_button = pm.button(self.uiObjects['springAddBody_Button'], edit=True, command=self.addBodyCmd) + self.clear_body_button = pm.button(self.uiObjects['springClearBody_Button'], edit=True, + command=self.clearBodyCmd) + self.add_plane_button = pm.button(self.uiObjects['springAddPlane_Button'], edit=True, + command=self.createColPlaneCmd) + self.wind_button = pm.button(self.uiObjects['springWind_Button'], edit=True, command=self.addWindCmd) + self.bind_button = pm.button(self.uiObjects['springBind_Button'], edit=True, command=self.bindControlsCmd) + self.bake_button = pm.button(self.uiObjects['springBake_Button'], edit=True, command=self.clearBindCmd) + self.shelf_button = pm.button(self.uiObjects['shelf_button'], edit=True, command=self.goShelfCmd) + self.vimeo_button = pm.button(self.uiObjects['vimeo_pushButton'], edit=True, command=self.youtubeCmd) + self.language_button = pm.button(self.uiObjects['language_button'], edit=True, command=self.languageCmd) + + self.collision_checkBox = pm.checkBox(self.uiObjects['springCapsule_checkBox'], edit=True) + self.fast_move_checkBox = pm.checkBox(self.uiObjects['springFastMove_checkBox'], edit=True) + self.floor_checkBox = pm.checkBox(self.uiObjects['springFloor_checkBox'], edit=True) + self.floor_lineEdit = pm.textField(self.uiObjects['springFloor_lineEdit'], edit=True, + changeCommand=self.twistChangeCmd) + + self.bind_pose_button = pm.button(self.uiObjects['springBindPose_button'], edit=True, command=self.setCmd) + self.straight_button = pm.button(self.uiObjects['springStraight_button'], edit=True, command=self.straightCmd) + self.copy_button = pm.button(self.uiObjects['springCopy_button'], edit=True, command=self.copyCmd) + self.paste_button = pm.button(self.uiObjects['springPaste_button'], edit=True, command=self.pasteCmd) + + # self.statusbar = pm.button(self.uiObjects['statusbar'], edit=True, menuItemCommand=self.testCmd) + + self.misc_update_button = pm.button(self.uiObjects['miscUpdate_pushButton'], edit=True, + command=self.updatePageCmd) + + self.spam_word = ['', '', '', '', ''] + + def show(self): + + pm.showWindow(self.ui) + + self.checkUpdate() + + def progression_callback(self, progression): + pm.progressBar(self.main_progressBar, edit=True, progress=progression) + + ############################################# + # Buttons callbacks + ############################################ + + def showSpam(self, *args): + sWord = self.spam_word[random.randint(0, 4)] + # print as unicode\ + kwargs = {"edit": True} + sWord = sWord if isinstance(sWord, str) else str(sWord, "utf8", errors="ignore") + kwargs.setdefault("label", sWord) + + pm.text(self.main_processLabel, **kwargs) + + def pasteCmd(self, *args): + core.pasteBonePose() + + def setCmd(self, *args): + + picked_bones = pm.ls(sl=1, type='joint') + + if picked_bones: + self.apply_button.setEnable(False) + + core.bindPose() + + # Select only the joints + pm.select(picked_bones) + + self.apply_button.setEnable(True) + + def straightCmd(self, *args): + + picked_bones = pm.ls(sl=1, type='joint') + + if picked_bones: + self.apply_button.setEnable(False) + + for bone in picked_bones: + core.straightBonePose(bone) + + # Select only the joints + pm.select(picked_bones) + + self.apply_button.setEnable(True) + + def applyCmd(self, *args): + picked_transforms = pm.ls(sl=1, type='transform') + + if picked_transforms: + self.apply_button.setEnable(False) + + pm.text(self.main_processLabel, edit=True, label='Calculating Bone Spring... (Esc to cancel)') + + springRatio = 1 - float(self.spring_lineEdit.getText()) + twistRatio = 1 - float(self.Xspring_lineEdit.getText()) + isLoop = bool(self.loop_checkBox.getValue()) + isPoseMatch = bool(self.pose_match_checkBox.getValue()) + isFastMove = self.fast_move_checkBox.getValue() + isCollision = self.collision_checkBox.getValue() + + subDiv = 1.0 + if isCollision: + subDiv = float(self.sub_division_lineEdit.getText()) + + # get frame range + if self.active_radioButton.getSelect(): + startFrame = int(pm.playbackOptions(q=1, minTime=1)) + endFrame = int(pm.playbackOptions(q=1, maxTime=1)) + else: + startFrame = int(self.from_lineEdit.getText()) + endFrame = int(self.end_lineEdit.getText()) + + tension = float(self.tension_lineEdit.getText()) + inertia = float(self.inertia_lineEdit.getText()) + extend = float(self.extend_lineEdit.getText()) + + wipeSubFrame = self.clear_subframe_checkBox.getValue() + + spring = core.Spring(springRatio, twistRatio, tension, extend, inertia) + springMagic = core.SpringMagic(startFrame, endFrame, subDiv, isLoop, isPoseMatch, isCollision, isFastMove, + wipeSubFrame) + + startTime = datetime.datetime.now() + + try: + core.startCompute(spring, springMagic, self.progression_callback) + + deltaTime = (datetime.datetime.now() - startTime) + + pm.text(self.main_processLabel, edit=True, + label="Spring Calculation Time: {0}s".format(deltaTime.seconds)) + + except ValueError as exception: + pm.text(self.main_processLabel, edit=True, label='Process aborted') + pm.warning(exception) + + # Select only the joints + pm.select(picked_transforms) + + pm.progressBar(self.main_progressBar, edit=True, progress=0) + + self.apply_button.setEnable(True) + + def copyCmd(self, *args): + core.copyBonePose() + + def webCmd(self, *args): + # open my linked in page :) + webbrowser.open(kOldPersonalLink, new=2) + + def twistChangeCmd(self, *args): + self.limitTextEditValue(self.Xspring_lineEdit, defaultValue=0.7) + + def extendChangeCmd(self, *args): + self.limitTextEditValue(self.extend_lineEdit, defaultValue=0.0) + + def inertiaChangeCmd(self, *args): + self.limitTextEditValue(self.inertia_lineEdit, defaultValue=0.0) + + def springRatioChangeCmd(self, *args): + self.limitTextEditValue(self.spring_lineEdit, defaultValue=0.7) + + def tensionChangeCmd(self, *args): + self.limitTextEditValue(self.tension_lineEdit, defaultValue=0.5) + + def subDivChangeCmd(self, *args): + # self.limitTextEditValue(self.sub_division_lineEdit, defaultValue=1) + pass + + def addWindCmd(self, *args): + core.addWindObj() + + def addBodyCmd(self, *args): + core.addCapsuleBody() + + def createColPlaneCmd(self, *args): + core.createCollisionPlane() + + def removeBodyCmd(self, *args): + core.removeBody(clear=False) + + def clearBodyCmd(self, *args): + core.removeBody(clear=True) + + def bindControlsCmd(self, *args): + core.bindControls() + + def clearBindCmd(self, *args): + + # get frame range + if self.active_radioButton.getSelect(): + startFrame = int(pm.playbackOptions(q=1, minTime=1)) + endFrame = int(pm.playbackOptions(q=1, maxTime=1)) + else: + startFrame = int(self.from_lineEdit.getText()) + endFrame = int(self.end_lineEdit.getText()) + + core.clearBind(startFrame, endFrame) + + def goShelfCmd(self, *args): + parentTab = mel.eval( + '''global string $gShelfTopLevel;string $shelves = `tabLayout -q -selectTab $gShelfTopLevel`;''') + imageTitlePath = scriptPath + os.sep + "icons" + os.sep + "Title.png" + commandLine = "import springmagic\nspringmagic.main()" + + pm.shelfButton(commandRepeatable=True, image1=imageTitlePath, label="Spring Magic", parent=parentTab, + command=commandLine) + + def languageCmd(self, *args): + self.language_list.setVisible(not self.language_list.getVisible()) + + def languageSelectedCmd(self, *args): + self.language_list.setVisible(False) + self.applyLanguage(int(self.language_list.getSelectIndexedItem()[0])) + + def youtubeCmd(self, *args): + try: + webbrowser.open(kYoutubeLink, new=2) + except Exception: + pass + + def vimeoCmd(self, *args): + # try: + # webbrowser.open(kVimeoLink, new=2) + # except Exception: + # pass + pass + + def updatePageCmd(self, *args): + try: + webbrowser.open(kUpdateLink, new=2) + except Exception: + pass + + def applyLanguage(self, lanId): + lanDict = {1: '_chn', 2: '_eng', 3: '_jpn'} + + if lanId in list(lanDict.keys()): + # get new language ui file path + new_ui_file = scriptPath + os.sep + os.path.basename(ui_file).split('.')[0] + lanDict[lanId] + '.' + \ + os.path.basename(ui_file).split('.')[1] + copyfile(new_ui_file, ui_file) + + # Reload interface + self.init() + self.show() + + def detectMayaLanguage(self): + mayaLan = None + try: + mayaLan = os.environ['MAYA_UI_LANGUAGE'] + except Exception: + import locale + mayaLan = locale.getdefaultlocale()[0] + + lanDict = {'zh_CN': 1, 'en_US': 2, 'ja_JP': 3} + self.applyLanguage(lanDict[mayaLan]) + + def printTextEdit(self, textEdit, inputString): + ctime = time.ctime() + ptime = ctime.split(' ') + inputString = ptime[3] + ' - ' + inputString + pm.scrollField(textEdit, edit=True, insertionPosition=0, insertText=inputString + '\n') + + def checkUpdate(self): + + self.misc_update_button.setVisible(0) + + page_content = None + + site = kVersionCheckLink + hdr = { + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', + 'Accept-Encoding': 'none', + 'Accept-Language': 'en-US,en;q=0.8', + 'Connection': 'keep-alive'} + + req = urllib.request.Request(site, headers=hdr) + + try: + page = urllib.request.urlopen(req, timeout=5) + page_content = page.read() + except Exception: + print('checkUpdate failed') + + if page_content: + if isinstance(page_content, bytes): + page_content = page_content.decode("utf-8") + if len(page_content.split('|springMagic|')) > 1: + new_kSpringMagicVersion = int(page_content.split('|springMagic|')[1]) + + if new_kSpringMagicVersion > kSpringMagicVersion: + self.misc_update_button.setVisible(1) + + self.spam_word = [] + + prefix = '|spam' + suffix = '|' + + if self.lang_id.getLabel() == 'chn': + suffix = 'chn|' + + self.spam_word = [page_content.split(prefix + str(i) + suffix)[1] for i in range(1, 6)] + else: + pm.text(self.main_processLabel, edit=True, label='Check update failed, try later.') + + self.showSpam() + + def limitTextEditValue(self, ui_object, minValue=0, maxValue=1, roundF=2, defaultValue=0): + value = 0 + + try: + value = float(ui_object.getText()) + value = round(value, roundF) + value = max(min(maxValue, value), minValue) + except Exception: + value = defaultValue + + ui_object.setText(str(value)) diff --git a/2024/scripts/animation_tools/springmagic/utility.py b/2024/scripts/animation_tools/springmagic/utility.py new file mode 100644 index 0000000..3e83880 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/utility.py @@ -0,0 +1,56 @@ +import pymel.core as pm +import pymel.core.datatypes as dt + + +########################## +# Usefull function +########################## + +def clamp(n, minn, maxn): + return max(min(maxn, n), minn) + + +def get_node(name): + node_list = pm.ls(name) + node = None + + if node_list: + node = node_list[0] + + return node + + +def get_matrix(obj): + return pm.xform(obj, worldSpace=1, matrix=1, q=1) + + +def frange(start, stop=None, step=None): + # if set start=0.0 and step = 1.0 if not specified + start = float(start) + + if stop is None: + stop = start + 0.0 + start = 0.0 + + if step is None: + step = 1.0 + + # print("start = ", start, "stop = ", stop, "step = ", step) + + count = 0 + while True: + temp = float(start + count * step) + if step > 0 and temp >= stop: + break + elif step < 0 and temp <= stop: + break + yield temp + count += 1 + + +def get_translation(n): + return dt.Vector(pm.xform(n, worldSpace=1, translation=1, query=1)) + + +def get_rotation(n): + return pm.xform(n, worldSpace=1, rotation=1, query=1) diff --git a/2024/scripts/animation_tools/springmagic/安装说明.txt b/2024/scripts/animation_tools/springmagic/安装说明.txt new file mode 100644 index 0000000..e756a06 --- /dev/null +++ b/2024/scripts/animation_tools/springmagic/安装说明.txt @@ -0,0 +1,13 @@ +1. 解压缩 springmagic.zip 并复制 "springmagic" 目录至位于 Windows 用户路径下的 Maya 脚本目录 +例如 + "C:\Users\你的用户名\Documents\maya\scripts" +2. 启动 Maya,在 Maya 里运行如下 Python 命令, 会出现工具界面 + import springmagic + springmagic.main() +3. 用工具界面右上方的创建快捷按钮功能,在书签栏创建一个快捷按钮,方便下次使用 + + +复制这个 + +import springmagic +springmagic.main() \ No newline at end of file diff --git a/2024/scripts/modeling_tools/ModIt/ModIt_Global.py b/2024/scripts/modeling_tools/ModIt/ModIt_Global.py index 6a25f20..46a5b7c 100644 --- a/2024/scripts/modeling_tools/ModIt/ModIt_Global.py +++ b/2024/scripts/modeling_tools/ModIt/ModIt_Global.py @@ -24,17 +24,16 @@ from . import ModIt_CSS ##_____________________________________________PATH +MODIT_DIR = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/') USERAPPDIR = mc.internalVar(userAppDir=True) VERSION = mc.about(v=True) -# Get ModIt's actual location -ModItDir = os.path.dirname(os.path.abspath(__file__)) -IconsPathThemeClassic = os.path.join(ModItDir, 'Icons/Theme_Classic/') -ToolPath = os.path.join(ModItDir, 'Tools/') -PreferencePath = os.path.join(ModItDir, 'Preferences/') -PlugInsPath = os.path.join(USERAPPDIR, VERSION+'/plug-ins') -PrefIcons = os.path.join(USERAPPDIR, VERSION+'/prefs/icons') -UserScriptFolder = os.path.join(USERAPPDIR, VERSION+'/scripts') -RessourcePath = os.path.join(ModItDir, 'Ressources/') +IconsPathThemeClassic = os.path.join(MODIT_DIR, 'Icons/Theme_Classic/').replace('\\', '/') +ToolPath = os.path.join(MODIT_DIR, 'Tools/').replace('\\', '/') +PreferencePath = os.path.join(MODIT_DIR, 'Preferences/').replace('\\', '/') +PlugInsPath = os.path.join(USERAPPDIR, VERSION+'/plug-ins').replace('\\', '/') +PrefIcons = os.path.join(USERAPPDIR, VERSION+'/prefs/icons').replace('\\', '/') +UserScriptFolder = os.path.join(USERAPPDIR, VERSION+'/scripts').replace('\\', '/') +RessourcePath = os.path.join(MODIT_DIR, 'Ressources/').replace('\\', '/') diff --git a/2024/scripts/modeling_tools/ModIt/Preferences/MultiSize.json b/2024/scripts/modeling_tools/ModIt/Preferences/MultiSize.json index 52c2353..06b2337 100644 --- a/2024/scripts/modeling_tools/ModIt/Preferences/MultiSize.json +++ b/2024/scripts/modeling_tools/ModIt/Preferences/MultiSize.json @@ -1 +1 @@ -{"MULTISIZEVALUE": 81.0} \ No newline at end of file +{"MULTISIZEVALUE": 0.5} \ No newline at end of file diff --git a/2024/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini b/2024/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini index 6dbf004..62b99e8 100644 --- a/2024/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini +++ b/2024/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini @@ -1,2 +1,2 @@ [General] -windowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\x9a\0\0\0\xd6\0\0\x2\xef\0\0\x3\x89\0\0\x1\x9b\0\0\0\xf5\0\0\x2\xee\0\0\x3\x88\0\0\0\0\0\0\0\0\a\x80\0\0\x1\x9b\0\0\0\xf5\0\0\x2\xee\0\0\x3\x88) +windowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\bT\0\0\x1q\0\0\t\xa9\0\0\x4\x32\0\0\bU\0\0\x1\x9e\0\0\t\xa8\0\0\x4\x31\0\0\0\0\0\0\0\0\xf\0\0\0\bU\0\0\x1\x9e\0\0\t\xa8\0\0\x4\x31) diff --git a/2024/scripts/modeling_tools/__init__.py b/2024/scripts/modeling_tools/__init__.py index cb40630..e4383fc 100644 --- a/2024/scripts/modeling_tools/__init__.py +++ b/2024/scripts/modeling_tools/__init__.py @@ -9,5 +9,6 @@ General modeling utilities from .batchextrusion import show_batch_extrusion_ui __all__ = [ - 'show_batch_extrusion_ui' + 'show_batch_extrusion_ui', + 'creaseplus' ] diff --git a/2024/scripts/modeling_tools/creaseplus/CreasePlus.mel b/2024/scripts/modeling_tools/creaseplus/CreasePlus.mel new file mode 100644 index 0000000..aa12154 --- /dev/null +++ b/2024/scripts/modeling_tools/creaseplus/CreasePlus.mel @@ -0,0 +1,1153 @@ +//AUTHOR : BAIDHIR HIDAIR © 2017. +//don't modify , don't distribute. + +//preprocessors +{//dumpster start +global int $cp_maya_v1; +string $cp_get_maya_v = `about -v`; + +string $cp_token_array[]; + +if(`tokenize $cp_get_maya_v "Extension Student" $cp_token_array`){ + $cp_get_maya_v = `stringArrayToString $cp_token_array ""`; +} + +$cp_maya_v1 = (int) $cp_get_maya_v; + +}//dumpster end + +// +if(!`namespace -ex ":cpB"`){ + namespace -add "cpB"; +} + +if(!`dragAttrContext -ex "cpCtx"`) + dragAttrContext "cpCtx"; + + if(!`curveCVCtx -ex cpCurvectx`) + curveCVCtx -d 1 -n "cpCurvectx"; +///////////////////////////////////////////////////// LOCAL REALM +global proc string cpGetShade(string $Shape[]){ + +string $sg; + +string $Sgs[] = `ls -typ "shadingEngine"`; + +for ( $i in $Sgs ){if ( `sets -isMember $i $Shape[0]` ){$sg = $i; break;}} + +return $sg; +} + +proc int cpIsBoolOp(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "BoolOp"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".BoolOp")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + + +global proc int cpIsBvlOp(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "hOffset"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".hOffset")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + +proc int cpIsMir(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "mAxis"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".mAxis")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + +proc string cpGetCamDir(){ + + string $activePanel = `getPanel -wf`; + + if(`getPanel -to $activePanel` != "modelPanel"){error "get In a modeling View!\n";} + + vector $camPos = eval("camera -q -p `modelEditor -q -cam " + $activePanel + "`"); + + vector $camTarget = eval("camera -q -wci `modelEditor -q -cam " + $activePanel + "`"); + + + vector $cameraDir = $camTarget - $camPos; + + vector $normalizeDir = unit($cameraDir); + + $normalizeDir = abs($normalizeDir); + + if (($normalizeDir.x) > ($normalizeDir.y) && ($normalizeDir.x) > ($normalizeDir.z)){ + return "x"; + } + else if (($normalizeDir.y) > ($normalizeDir.x) && ($normalizeDir.y) > ($normalizeDir.z)){ + return "y"; + } + else if (($normalizeDir.z) > ($normalizeDir.y) && ($normalizeDir.z) > ($normalizeDir.x)){ + return "z"; + } + + return ""; +} + +proc float[] cpCoi(string $op){ + + float $coi[]; + float $coords1[] = `exactWorldBoundingBox $op`; + + $coi[0] = ($coords1[3] - $coords1[0]); + $coi[1] = ($coords1[4] - $coords1[1]); + $coi[2] = ($coords1[5] - $coords1[2]); + + $coi[3] = ($coords1[0] + $coords1[3]) * 0.5; + $coi[4] = ($coords1[1] + $coords1[4]) * 0.5; + $coi[5] = ($coords1[2] + $coords1[5]) * 0.5; + + + return $coi; +} + +proc cpGetGoz(){ + if(`about -win`){ + //For Windows + int $gozTest = `filetest -f "C:/Users/Public/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel"`; + string $sGoz = "source " + "\"C:/Users/Public/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel\""; + if($gozTest == 0){ + warning "To use this feature you need Goz script from Pixologic Zbrush.\n"; + return; + } + eval($sGoz); + }else{ + //For Mac + int $gozTest = `filetest -f "/Users/Shared/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel"`; + string $sGoz = "source " + "\"/Users/Shared/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel\""; + if($gozTest == 0){ + warning "To use this feature you need Goz script from Pixologic Zbrush.\n"; + return; + } + eval($sGoz); + } +} + +proc cpNodBaker(string $nod){ + + string $toPlug[] = `listConnections - p 1 - d 1 - s 0 $nod`; + if (size($toPlug) < 1) { + error "Boolean is not connected directly to the mesh. Simply delete your history"; + } + + string $fromPlug[] = `listConnections - p 1 - d 0 - s 1 $toPlug[0]`; + if (size($fromPlug) < 1) { + error "Boolean is not connected directly to the mesh. Simply delete your history"; + } + + + string $inTheFuture[] = `listHistory - f 1 $nod`; + if (size($fromPlug) < 1) { + error "Impossible: there is future."; + } + + string $shape; + int $foundIt = false; + for ($shape in $inTheFuture) { + if ("mesh" == `nodeType $shape`) { + $foundIt = true; + break; + } + } + + if (!$foundIt) { + error "Cannot find the polygon shape in the future of this node."; + } + + string $trans[0] = `listRelatives - p $shape`; + if (size($trans) < 1) { + error "Impossible: there must be a parent transform"; + } + + string $newShapeName = $shape + "Baked#"; + string $newShape = `createNode mesh - n $newShapeName - p $trans[0]`; + + disconnectAttr $fromPlug[0] $toPlug[0]; + connectAttr $fromPlug[0]($newShape + ".i"); + connectAttr($newShape + ".o") $toPlug[0]; + + delete - ch $newShape; + + setAttr($newShape + ".io") 1; +} +///////////////////////////////////////////////////// GLOBAL REALM ///////////////////////////////////// + +global proc cpAttrSwitch(){ + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + +global int $iterator; + +if(`currentCtx` != "cpCtx"){ + $iterator = 0; +} + +if(`cpIsBoolOp $op[0]` == 1){ + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + switch($iterator){ + case 0: + setAttr ($op[0] + ".BoolOp") 2; + break; + case 1: + setAttr ($op[0] + ".BoolOp") 1; + break; + case 2: + setAttr ($op[0] + ".BoolOp") 3; + break; + default: + setAttr ($op[0] + ".BoolOp") 2; + $iterator = 0; + break; + } + $iterator++; +}else if(`cpIsBvlOp $op[0]` == 1){ + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + switch($iterator){ + case 0: + dragAttrContext -e -ct ($op[0] + ".hOffset") "cpCtx"; print "Switch to H Offset"; + break; + case 1: + dragAttrContext -e -ct ($op[0] + ".hDivisions") "cpCtx"; print "Switch to H Divisions"; + break; + default: + dragAttrContext -e -ct ($op[0] + ".hOffset") "cpCtx"; print "Switch to H Offset"; + $iterator = 0; + break; + } + $iterator++; +}else if(`cpIsMir $op[0]` == 1){ + + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + if($cp_maya_v1 > 2016){ + switch($iterator){ + case 0: + setAttr ($op[0] + ".mirrorSide") 0; print "Switch to Positive Side Symmetry"; + break; + case 1: + setAttr ($op[0] + ".mirrorSide") 1; print "Switch to Negative Side Symmetry"; + break; + default: + setAttr ($op[0] + ".mirrorSide") 0; + $iterator = 0; + break; + } + }else{ + switch($iterator){ + case 0: + setAttr ($op[0] + ".mAxis") 0; + break; + case 1: + setAttr ($op[0] + ".mAxis") 1; print "Switch to -X"; + break; + case 2: + setAttr ($op[0] + ".mAxis") 2; + break; + case 3: + setAttr ($op[0] + ".mAxis") 3; print "Switch to -Y"; + break; + case 4: + setAttr ($op[0] + ".mAxis") 4; + break; + case 5: + setAttr ($op[0] + ".mAxis") 5; print "Switch to -Z"; + break; + default: + setAttr ($op[0] + ".mAxis") 0; + $iterator = 0; + break; + } + } + $iterator++; +}else{ + setToolTo moveSuperContext; warning "There's no attributes to 'cycle' on the Object.\n"; +} + +} + +global proc cpDisplayBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $below1[] = `listRelatives -c -f $buf`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + setAttr ($i + ".overrideEnabled") 1; + + setAttr ($i + ".overrideShading") 0; + setAttr ($i + ".overrideColor") 1; + +} + +showHidden -a $below2; + +for($i in $below1){ + + xform -cp $i; rename $i ("cpB:" + "op#"); + +} + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpKeepBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `duplicate $buf`; + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $opCopy`; + +string $below1[] = `listRelatives -c -f $opCopy`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + setAttr ($i + ".overrideEnabled") 1; + + setAttr ($i + ".overrideShading") 0; + setAttr ($i + ".overrideColor") 1; + +} + +showHidden -a $below2; + +for($i in $below1){ + + xform -cp $i; rename $i ("cpB:" + "op#"); + +} + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpHbevel(){ + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); +string $ControlNode[]; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBvlOp $op[0]`){ + select -r $op[0]; cpAttrSwitch; return; + } +} + +if(size(`filterExpand -ex 1 -sm 34`)){ + + select -r `polyListComponentConversion -te`; + invertSelection; + +string $invId[] = `ls -sl -fl`; + +polySelectConstraint -m 0 -dis; +polySelectConstraint -m 3 -t 0x8000 -sm 1; +polySelectConstraint -m 0 -dis; + +string $HeId[] = `ls -sl -fl`; + +string $finalId[] = `stringArrayRemove $invId $HeId`; + +if(!`size $finalId`){error "No Hard edges where detected.\n";} + +$op = eval("listRelatives -p -f `listRelatives -p -f`"); + +if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 1 -sg 1 -sn 1 -sa 180 -o 0 -n "HBevel" $finalId`; +}else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0 -n "HBevel" $finalId`; +} + +string $ud[] = `listAttr -ud $op[0]`; + +if(`size $ud`){ + for($i in $ud){ + deleteAttr -at $i $op[0]; + } +} + +addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.15 $op[0]; + +connectAttr ($op[0] + ".hOffset") ($ControlNode[0] + ".offset"); + +addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $op[0]; + +connectAttr ($op[0] + ".hDivisions") ($ControlNode[0] + ".segments"); + +if($cp_maya_v1 > 2016){ + + addAttr -ln "hMitering" -k 1 -at "enum" -en "Auto=0:Star=2:Round=3" -dv 0 $op[0]; + + connectAttr ($op[0] + ".hMitering") ($ControlNode[0] + ".mitering"); +} + +select -r $op[0]; cpAttrSwitch; + +}else{ + +if(!`size $op`){error "Select at least one Object.\n";} + +for($i in $op){ + +select -r $i; + +polySelectConstraint -m 0 -dis; +polySelectConstraint -m 3 -t 0x8000 -sm 1; +polySelectConstraint -m 0 -dis; + + +if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 1 -sg 1 -sn 1 -sa 180 -o 0 -n "HBevel"`; +}else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0 -n "HBevel"`; +} + +string $ud[] = `listAttr -ud $i`; + +if(`size $ud`){ + for($j in $ud){ + deleteAttr -at $j $i; + } +} + +addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.15 $i; + +connectAttr ($i + ".hOffset") ($ControlNode[0] + ".offset"); + +addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $i; + +connectAttr ($i + ".hDivisions") ($ControlNode[0] + ".segments"); + + if($cp_maya_v1 > 2016){ + + addAttr -ln "hMitering" -k 1 -at "enum" -en "Auto=0:Round=3:Uniform=1:Star=2:None=4" -dv 0 $i; + + connectAttr ($i + ".hMitering") ($ControlNode[0] + ".mitering"); + } + +} + +select -r $op; cpAttrSwitch; + +} + +} + +global proc cpMirror(){ + + global int $cp_maya_v1; + +string $ControlMesh[] = eval("listRelatives -p -f `filterExpand -ex 1 -fp 1 -sm 12`"); + +if(!`size $ControlMesh`){error "Select at least one Object.\n";} + +if(`currentCtx` == "cpCtx"){ + if(`cpIsMir $ControlMesh[0]`){ + select -r $ControlMesh[0]; cpAttrSwitch; return; + } +} + +for($i in $ControlMesh){ + +string $ControlNode[] = `polyMirrorFace $i`; + +polyMergeVertex -d 0.015 -am 1 $i; + +string $ud[] = `listAttr -ud $i`; + +if(`size $ud`){ + for($j in $ud){ + if($j == "BoolOp"){continue;} + deleteAttr -at $j $i; + } +} + +if($cp_maya_v1 > 2016){ + + addAttr -ln "mirrorSide" -k 1 -at "enum" -en "+=0:-=1" -dv 0 $i; + + connectAttr ($i + ".mirrorSide") ($ControlNode[0] + ".axisDirection"); + + + addAttr -ln "mPosition" -k 1 -at "floatLinear" -dv `getAttr ($ControlNode[0] + ".mirrorPosition")` $i; + + connectAttr ($i + ".mPosition") ($ControlNode[0] + ".mirrorPosition"); + + + addAttr -ln "mAxis" -k 1 -at "enum" -en "X=0:Y=1:Z=2" -dv 0 $i; + + connectAttr ($i + ".mAxis") ($ControlNode[0] + ".axis"); +}else{ + + addAttr -ln "mdX" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotX")` $i; + + connectAttr ($i + ".mdX") ($ControlNode[0] + ".pivotX"); + + addAttr -ln "mdY" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotY")` $i; + + connectAttr ($i + ".mdY") ($ControlNode[0] + ".pivotY"); + + addAttr -ln "mdZ" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotZ")` $i; + + connectAttr ($i + ".mdZ") ($ControlNode[0] + ".pivotZ"); + + addAttr -ln "mAxis" -k 1 -at "enum" -en "+X=0:-X=1:+Y=2:-Y=3:+Z=4:-Z=5" -dv 0 $i; + + connectAttr ($i + ".mAxis") ($ControlNode[0] + ".direction"); + +} + +} + +select -r $ControlMesh; cpAttrSwitch; + +} + +global proc cpPanelBool(){ + +string $buf[] = `ls -o -fl -l -sl`; + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `duplicate $opA $buf`; + +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $opD[] = `polyCBoolOp -op 3 -pcr 0 -cls 1 -ucb 1 $opCopy`; + +delete -ch $opC[0] $opD[0]; xform -cp $opC[0] $opD[0]; + +sets -e -fe $sg $opC[0] $opD[0]; + +select -r $opC[0] $opD[0]; + +} + +global proc cpMeshSlicer(){ + +string $buf[] = `filterExpand -ex 1 -sm 12`; +string $curve[] = `filterExpand -ex 1 -sm 9`; + +if(`size $buf` != 1){error;} +if(`size $curve` != 1){error;} + +makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 -pn 1 $curve[0]; + +string $dir = `cpGetCamDir`; + +int $exd; +int $cI; +string $d; + +if($dir == "x"){ + $exd = 0; + $cI = 3; + $d = "-d 1 0 0"; +}else if($dir == "y"){ + $exd = 1; + $cI = 4; + $d = "-d 0 1 0"; +}else if($dir == "z"){ + $exd = 2; + $cI = 5; + $d = "-d 0 0 1"; +}else{ + error; +} + +float $len[] = `cpCoi $buf[0]`; + +nurbsToPolygonsPref -f 3 -ucr 0 -uch 0 -pt 0 -m 0 -mt 0.1 -mrt 0; + +optionVar -iv "extrudeDirectionType" $exd; + +optionVar -fv "extrudeLength" ($len[$exd] + 1); + +string $opB[] = eval("extrude -ch 0 -rn 0 -po 1 -et 0 -upn 0 " + $d + " -l " + ($len[$exd] + 1.0) + " -ro 0 -sc 1 -dl 1 " + $curve[0]); + +string $curveShape[] = `listRelatives -c -f $curve[0]`; + +if(`getAttr ($curveShape[0] + ".form")` == 1){ + polyCloseBorder -ch 0 $opB; +} + +xform -cp $opB; delete -ch $opB; + +eval("move -" + $dir + " -rpr " + $len[$cI]); + +select -r $buf[0] $opB[0]; + +cpPanelBool; + +} + +global proc cpTglBox(){ + + string $ops[] = eval("listRelatives`ls -o -v \"cpB:*\"`"); + +for($i in $ops){ + + if(`getAttr ($i + ".overrideLevelOfDetail")`){ + + + setAttr ($i + ".overrideLevelOfDetail") 0; + + }else{ + setAttr ($i + ".overrideLevelOfDetail") 1; + } + +} + +} + +global proc cpTglBoolv(){ + + + string $vOps[] = `ls -o -v "cpB:*"`; + string $ivOps[] = `ls -o -iv "cpB:*"`; + + if (size($vOps)) + hide $vOps; + else if(size($ivOps)) + showHidden $ivOps; +} + +global proc cpHedgeSel(){ + + polySelectConstraint -m 0 -dis; + polySelectConstraint -m 3 -t 0x8000 -sm 1; + polySelectConstraint -m 0 -dis; + + hilite `ls -sl -o`; + + if(!size(`ls -sl -fl`)){error;} + +} + +global proc cpShapeShifter() { + + string $PrefsDir = (`internalVar -usd`) + "/AMTools/AMTScripts/StartShapeShifter.mel"; + int $IsValidDir = `filetest -f $PrefsDir`; + + + if($IsValidDir == 0){ + warning "Unable to start ShapeShifter,you have to purchase or update ShapeShifter for CREASE+ support.\n"; + return; + } + + eval("source " + "\"" + $PrefsDir + "\""); +} + +global proc cpGoz(){ + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(`size $op` == 0){error "There's No Selection.\n";} + + for ($i in $op){ + select -r $i; + polyCleanupArgList 4 { "0","2","0","0","1","0","0","0","0","1e-005","0","1e-005","0","1e-005","0","-1","0","0" }; + if(size(`ls -sl -fl`)){ + polyCleanupArgList 4 { "0","1","0","0","1","0","0","0","0","1e-005","0","1e-005","0","1e-005","0","-1","0","0" }; + } + } + + select -r $op; + + cpGetGoz(); + +} + +global proc cpQsmooth(){ + + string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(!`size $op`){ error "You must select Object(s) or component(s).\n"; return;} + + if(size(`filterExpand -ex 1 -sm 12`)){ + + for($i in $op){ + polySoftEdge -angle 30 -ch 1 $i; + } + }else{ + polySoftEdge -angle 30 -ch 1; + + } +} + +global proc cpHardDisplay(){ + int $g_cond[1]=`polyOptions -q -ae`; if ($g_cond[0]) polyOptions -hec; else polyOptions -ae; +} + +global proc cpmakeUV(){ + + global int $cp_maya_v1; + + string $op[] = `filterExpand -ex 1 -sm 12`; + + {// + string $listPlug[] = `pluginInfo -q -ls`; + + int $isload = stringArrayCount("Unfold3D", $listPlug); + + if($isload == 0){ + error " ' Unfold3D ' Plugin has to be loaded in order to continue.\n"; + } +}// + + for($i in $op){ + + string $opId[] = `polyListComponentConversion -tf $i`; + polyProjection -ch 1 -t "planar" -ibd on -kir -md "c" $opId; + + select -r $i; + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(!size(`ls -sl -fl`)){error ($i + "Your mesh as no hard edges, UV generation failed.\n");} + + polyMapCut -ch 1; + + $opId = `polyListComponentConversion -tuv $i`; + + if($cp_maya_v1 > 2016){ + u3dUnfold -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i; + }else{ + Unfold3D -u -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i; + } + //u3dUnfold -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i;//>2016 version + + } + +select -r $op; +print "DONE!.\n"; + +} + +global proc cpCurveCham(){ + + string $cpnt[] = `ls -sl -fl`; + string $op[] = eval("listRelatives -p -f `ls -sl -o`"); + string $Ctrl[]; + + if(`size $op` != 1){ + error "Possible only on one curve.\n"; + } + + if(size(`filterExpand -ex 1 -sm 39 $cpnt`) != 2){ + error "Drag 2 Curve Points (using Shift).\n"; + } + + string $newCurve[] = `detachCurve -ch 0 -cos 1 -rpo 1`; + + if (size($newCurve) == 2){ + $Ctrl = `filletCurve -ch 1 -rpo 1 -t 1 -jn 1 -cir 1 -r 0.5 -bc 1 -d 0 -b 0 $newCurve[1] $newCurve[0]`; + + }else{ + $Ctrl = `filletCurve -ch on -rpo on -t true -jn true -cir true -r 0.5 -bc true -d 0 -b 0 $newCurve[2] $newCurve[1]`; + + } + + dragAttrContext -e -ct ($Ctrl[size($Ctrl)-1] + ".depth") "cpCtx"; + setToolTo "cpCtx"; + + +} + +global proc cpTransferBevel(){ + global int $cp_maya_v1; + string $op[] = `filterExpand -ex 1 -sm 12`; + + if(!`size $op`){error;} + + for($i = 0; $i < size($op); $i++){ + if(!`cpIsBvlOp $op[$i]`) + stringArrayRemoveAtIndex($i, $op); + } + + if(`size $op` < 2){error "TransferBevel only work for Hbevel Meshes";} + + if($cp_maya_v1 > 2016){ + float $data1 = `getAttr ($op[0] + ".hOffset")`; + int $data2 = `getAttr ($op[0] + ".hDivisions")`; + int $data3 = `getAttr ($op[0] + ".hMitering")`; + + for($i = 1; $i < size($op); $i++){ + setAttr ($op[$i] + ".hOffset") $data1; + setAttr ($op[$i] + ".hDivisions") $data2; + setAttr ($op[$i] + ".hMitering") $data3; + } + + }else{ + float $data1 = `getAttr ($op[0] + ".hOffset")`; + int $data2 = `getAttr ($op[0] + ".hDivisions")`; + + for($i = 1; $i < size($op); $i++){ + setAttr ($op[$i] + ".hOffset") $data1; + setAttr ($op[$i] + ".hDivisions") $data2; + } + } + +} + +global proc cpCleanAttrs(){ +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + + for($i in $op){ + string $cusAttrs[] = `listAttr -ud $i`; + + for($j in $cusAttrs){ + deleteAttr -at $j $i; + } + } + +} + +global proc cpBakThatNod(){ + + string $usel[] = `ls -sl -fl`; + + string $Selection[] = `filterExpand -ex 1 -sm 12`; + + if(`size $Selection` != 1){error "Select a mesh and a Node from ChannelBox(modeling Operation).\n";} + + nodBaker $usel[0]; + error "Nothing happened. You must select a mesh, then a node from the channelBox\n"; +} + +global proc cpInstanceBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `instance $buf`; + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $below1[] = `listRelatives -c -f $buf`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + +} + + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpAttachCurve(){ + + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(!`size $curve`){error "You must select nurbsCurve(s).\n";} + + string $op[] = `attachCurve - ch 0 - rpo 1 - kmk 1 - m 0 - bb 0.5 - bki 0 - p 0.1`; + delete -ch $op[0]; + select -r $op[0]; +} + +global proc cpCurveBool(){ + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(`size $curve` != 2){error "You must select exactly two nurbs curves object.\n";} + + cutCurvePreset(0,1,0.01,6,0,1,0,1,2); select -cl; +} + +global proc cpCloseCurve(){ + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(!`size $curve`){error "You must select nurbs curves.\n";} + + for($i in $curve){ + + + if(`getAttr ($i + ".degree")` == 3){ + + if (`getAttr ($i + ".form")` == 0){ + closeCurve -ch 0 -ps 0 -rpo 1 -bb 0.5 -bki 1 -p 0.1 $i; + }else{ + continue; + } + }else{ + + if(`getAttr ($i + ".form")` == 0){ + closeCurve -ch 0 -ps 1 -rpo 1 -bb 0.5 -bki 0 -p 0.1 $i; + }else{ + continue; + } + } + } +} + +global proc cpCurveMultiply(){ + + string $curve[] = `filterExpand -ex 1 - sm 9`; + + if(!`size $curve`){error "You must select at least one nurbs curve.\n";} + + for($i in $curve){ + + select -r $i; + selectCurveCV all; + int $numSpan = (size(`ls -sl -fl`) * 2); + select -r `eval("listRelatives -p -pa -f `ls -sl -o`")`; + rebuildCurve -ch 0 -rpo 1 -rt 0 -end 1 -kr 1 -kcp 0 -kep 1 -kt 1 -s $numSpan -d 1 -tol 0.01 $i; + } + select -r $curve; +} + +global proc cpAbout(){ + showHelp -a "http://polycount.com/discussion/173981/maya-crease-tool-for-hard-surface#latest"; +} + +global proc cpUi(){ +global string $cp_icon_path; +string $imgs = $cp_icon_path; + +if(`window -ex cpWin`){ + deleteUI cpWin; +} + +window -t "CREASE+ v 1" -tbm 1 -tlb 1 -rtf 1 -mxb 0 -bgc 0.1 0.1 0.1 cpWin; + +window -e -wh 265 300 cpWin; + +menuBarLayout -w 110 cpMenu; + menu -p cpMenu -l "Edit" -to 1 cpEdit; + menuItem -p cpEdit -l "Instance Bool" -c "cpInstanceBool"; + menuItem -p cpEdit -l "Transfer Bevel" -c "cpTransferBevel"; + menuItem -p cpEdit -l "Toggle Last" -c "cpAttrSwitch"; + menuItem -p cpEdit -l "Bake Selected Node (Channel Box)" -c "cpBakThatNod"; + menuItem -p cpEdit -l "Clean Attributes" -c "cpCleanAttrs"; + + + menu -p cpMenu -l "UV" -to 1 cpUVmenu; + menuItem -p cpUVmenu -l "Make UV" -c "cpmakeUV"; + + menu -p cpMenu -l "Help" -to 1 cpAbout; + menuItem -p cpAbout -l "About" -c "cpAbout"; + +tabLayout -p cpWin -tv 1 -tc 0 -iv 0 -cr 1 -bs "none" cpTab1; + +scrollLayout -p cpTab1 -cr 1 -bv 1 -h 235 cpMainScroll; + scrollLayout -e -pe 1 cpMainScroll; + +rowColumnLayout -p cpMainScroll -rs 1 7 -nr 3 cpmodCol; + +iconTextButton -p cpmodCol -i ($imgs + "cp_eye.png") -st "iconAndTextVertical" -fn "obliqueLabelFont" -dcc "cpTglBox" -c "cpTglBoolv" -ann "Toggle visibility of Bool Objects. Double-Click to Toggle Boxes.\n" ; + +iconTextButton -p cpmodCol -i ($imgs + "cp_bool.png") -l "Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpDisplayBool" -ann "Performs boolean operation with Bool Object Display.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_keep_bool.png") -l "Keep Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpKeepBool" -ann "Performs boolean operation with Bool Object Display While preserving the Operands.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_bevel.png") -l "HBevel" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHbevel" -ann "Performs HBevel based on Object or Face Selection.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_panelbool.png") -l "Panel Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpPanelBool" -ann "Creates Panels out of the Operands.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_mirror.png") -l "Mirror" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpMirror" -ann "Mirrors Selected Objects.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_sel_hard.png") -l "Get HardEdge" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHedgeSel" -ann "Select The Hard Edges of the Selected Meshes.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_ss.png") -l "ShapeShifter" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpShapeShifter" -ann "ShapeShifter support, behaves like ShapeShifter of AMTScripts.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_goz.png") -l "Zbrush" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpGoz" -ann "Sends Selected Meshes to Zbrush, fixing nGons automatically.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_quicksmooth.png") -l "30 smooth" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpQsmooth" -ann "Apply a 30° Smooth Based on Selected Meshes or component Selection.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_hard_display.png") -l "Hard Display" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHardDisplay" -ann "Allow realtime display for Hard Edges.\n"; + + iconTextButton -p cpmodCol -i ($imgs + "cp_mesh_slicer.png") -l "Mesh Slicer" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpMeshSlicer" -ann "Performs Mesh Slicer (Select a curve and a Mesh).\n"; + + menuBarLayout -p cpTab1 -w 110 spMenu; + menu -p spMenu -l "SubD" -to 1 spSubD; + menuItem -p spSubD -l "Lower Res" -c "spLevel 1" ; + menuItem -p spSubD -l "Higher Res" -c "spLevel 2" ; + menuItem -p spSubD -l "Lower Weight" -c "spLevel 3" ; + menuItem -p spSubD -l "Higher Weight" -c "spLevel 4" ; + +scrollLayout -cr 1 -bv 1 -h 235 spMainScroll; + scrollLayout -e -pe 1 spMainScroll; + +rowColumnLayout -p spMainScroll -rs 1 7 -nr 3 spmodCol; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease1" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 1" -ann "Apply Crease Preset of a 1 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease2" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 2" -ann "Apply Crease Preset of a 2 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease3" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 3" -ann "Apply Crease Preset of a 3 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_weight_tool.png") -l "Weight Tool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spFastCrease" -ann "Weight tool alows interactive creasing with update right after.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease_editor.png") -l "Crease Set" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spShowCreaseEd" -ann "Opens Crease Set Editor.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_physical_crease.png") -l "Physical Crease" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spPhysicalCrease" -ann "Draw Loops around hard edges or component Selection.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_nocrease.png") -l "No Crease" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spNoCrease" -ann "Remove Creases/Weights.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_smooth.png") -l "SmoothSG" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "smoothSg" -ann "Smooth By Smoothing Groups.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_smooth.png") -l "SmoothOS" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spSmoothOs" -ann "Smooth the Mesh.\n"; + +scrollLayout -p cpTab1 -cr 1 -bv 1 -h 235 cpSecScroll; + scrollLayout -e -pe 1 cpSecScroll; + + rowColumnLayout -p cpSecScroll -rs 1 7 -nr 3 cpsecCol; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_draw.png") -l "Draw Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "setToolTo cpCurvectx" -ann "Enters the Draw curve context (1 degree curve).\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_bevel.png") -l "Curve Chamfer" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveCham" -ann "Performs curve Chamfer.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_attach.png") -l "Attach Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpAttachCurve" -ann "Attach seleted Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_close.png") -l "Close Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCloseCurve" -ann "Close selected Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_bool.png") -l "Curve Intersection" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveBool" -ann "Intersecs selected Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_multiply_curve.png") -l "Multiply Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveMultiply" -ann "Multiply Curve resolution by 2.\n"; + + + +tabLayout -e -tl "cpMainScroll" " " -tl "spMenu" " " -tl "cpSecScroll" " " cpTab1; + +showWindow cpWin; +} + +// Load extension file if exists +global string $cp_icon_path; +if ($cp_icon_path != "") { + string $scriptDir = `dirname $cp_icon_path`; + string $extFile = $scriptDir + "/CreasePlus_Extension1.mel"; + if (`filetest -r $extFile`) { + eval("source \"" + $extFile + "\""); + } +} \ No newline at end of file diff --git a/2024/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png b/2024/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png new file mode 100644 index 0000000000000000000000000000000000000000..69e0f9e37ffa9e5a690366f4ea12180ad0ca9754 GIT binary patch literal 486881 zcmeFa2|Sc*|35yJ3PoD1C4)$|vF}Uvo$R{|Gh?5@jD4*L5vhcPkR)5O?>osBD%rCq zAzOC+uhCgN=bY!;dHy}W-}(MtukP3BxaYpF^?iM=&-MN+ubGfb>Ix*pG{g`HghWYE zRto|-@Bsoj{EBctcruhWY7YJoIVu`rArMYR{J(wfsgkY`2(gBZjLfA=))*WHYmIS) zD#^$|9i1^K8+#-K;@%gpZKb0?0;7UqeV^#)shbNKNZQ$N>4_E;nI&G7v=Z)$Hy>hLmm=9 z%v&ri#vqqCAm-=&Cc7d2@oTYO`yj@5>B;v!jD$c>B7ur3iUe1gUN(JMtVtcof2=860>4Lf{24f5FJ;4he{boRVME7h7P)}Dcg2{H!|AZTKId7Mb|p%-Qv&e)@cS1zYdvDAd9Lssd%x5Qfjo>P2eVz; zc5f%mZf_R|FC@Lp@v-XAR|X4Mg$lqZnnQ4x|+U&?f zm(@_z^J5naAP=Ye^p_m**vKW_D(UT=7$1M9TrX`5f2r@YV^w>(T7TPq-B)aDb>)5K z=(#IArdJdQ*522)E~}=V>9|c4U@jvaFY_du2q6&JhgVpiNu6G{-WYWY4|1-|!7c#F(vs`a`M$2jrdwr3XuUgak`W;77&RX4KQgO#)8*sve z8kX`aLxK?gSCMv6 z+&(*E#8bOD;p^(Tql#XL^|j%0gBwJ96C! zPF#_zCK4cUlZL|2N+}ws8mPZhd;&dlj_-IMks#550L|L-40oQW89M*8hnzZ zbDTfINIEO2P%B3>=*dYwm;1tP*C>=!QnQkyx@oK_tygVwKHy4^4@R9;kA9`!)iSN{ zA^O9CWw)aw*U7In1zWLD$59=ovZ8jQ%85~ZOx+zy-K4`M$UPG?6?-feqieug$m&fV z`I0zFIf^;zG%HLe{psVULr;(BF6p-DM5LQ(`((@O@@kKz6TQBdq5Cxc(v0?LZL4(A zCqYlGo?vt&ANd+?ha57jQ?1jGd8GL;_wrbIBlL(Rb)Gvry&Xx$b(bsr^~||#z22^@ zWii{dWuf9v)02c{c$Ine^R$-kq9hNG#W<}!z^M~Wv7|*W`Q8{hHGg6B!s*9+swLb= z6T7GPqVE}GC}wD8D9ls{WY4C>Kdz7~Gu*sFD%GTX-sHT3RYd#2_$lpP?ZGtSGzv9w zk(F%Dr*^5Qlgeb>s?ce3F$tAs{t2p>v>}g*sf{x}ux*`fhmEuqg`)N*-T$EUGH1+SJzCmfZF>mOoCMyN72gZYr)PZn((Y$lZv&@JV4YQtA1) z(PP88!g6$=k+5N^fv%Bho_tn(7Sr3Ztg^J@X(j4+)H4#^TGc&UC~PiFFQR@n@$OK6 zcA-O|58TRv(yFK-yKe4I#T}ngpPSp_he?8ZNi%4TXnnEy&Zk85M27CSKbVvBX;{8D z4YM-nAnSO?J63qIL#+7j^PNpNC zT`Tc%d2zL~Px^D_1m`4TTA81iCY)xD5;uQ|~vc_cB4%WgQ+S3^eQidDfB zBg_&Osh`#JtSHs(=_-7lQsRq*bK;o9n3&)Y&yeBeR>A6`7ey@^b(n<9fx|L>j9(F7 zJ->EB()^kBSse(uB6Y=h|K^&fH+@yOq)0#V%k$n@sj!D7Qshz*SF^58)MU|HzxZ@3 zi+*(~raiLVhBWY!?}xXq4#Owmp>@7T&j$tt>R*=(cMLY5>Ew>)ck3LG!4AuA$ljA3 zinHR@5YFLH=4X|7%4sXsCs@i?D%r@1GHiWg5O1JluX0A1lQmlaZC^ROHMT0H5-6i)0>OIvHj0P7U! z41OnL!g^MHQIS>6^Y*96a(<6<4ZNxB6D0xX({GillBf>Gi6l_mcZE9eh>KKkU%MT7 z%Srkvz1p2ZtB+QbDA$%uWZ?6i26Si<>}=HGX1lywnFkFyhzq43f6y^v>0v$m+zP3W zs%i^)DSR&@fvs(}HScBrEx`x#iCw1SW#fonfvO2uc$e7iS&i1Wf_EfXGVpj9=YE8jDyO|@p#1nx&GXp)drWyt?!{Gw> z#`XBq667H_vQPC>Mw9!!V;OLtI30v}Srt2QH$Oe2z68;M>OxIV4sj$Hliqt8JsC}k zCh6_VCmGhupI!MP*AI(sW9cuuRwz@FQYBVgj!bKAZxfZ&d8D(fv!Np}*ELuG?^#24 z&Ykuu|HAj_O}}yZ>b694Wxwt|U9~r;H^@z;&Ae5~?2xC^Yxg!COtaJ-oMxL2bRF0} z%t%_;Q}X%^ZI`%?R>WJj83ocNy2_pSc{dIc0TSJt4;n`q9c4Ynr&o!FSI?4&^tpz4 zWsV%~rgNpWqJ`N?-(S2hAE$kP)7ZkeRHId*^XOc#0))@mvowK`lhdT z-?3Wk2#b%3_wnUiA29DvF7%qRY#+8ghM6xV!;N&weGQ!wEf;M!SuDmaKJTA6sb8#r zKS$)U!$;glv7I~J8ck&n%I;^EnAnxfc~%s7p;o6)CkVC=E?0OgP<(y+CP7$yuwuy* zv)Zt_GE6b(>wJE@y``+z?fhI;xkmZr<%_dYy)uJAZzPR(2HwpN_}NywJzVM>P*^<_ zc&%e6awX!J%)yA*h?eUl*Jl!hB!q=WC7rjYx6))f5FN}3lsm~gE!mV5FyFN|Gd=B{ zF`Y@#i_v$g9K2JvKUU9B=kzz$HlD3)cIV|bTh`m0t#KQ0qn%F~KBh754fSLBYQ3Jj zqWvmu^A7c$J6{P7#4K%D@^bV;AclT6ItDlcHB}Kyi~}befw4exx;r=mA_{?sNxD12 zE$xsvs0Gr>1})AoUslBcwLyq8=<};_sX59Zt!)%Nosrs}>N=L5c9y~j21yBGF?SKr zfCCZ-hq^o1qp>3H;tad(ihz6kV;BQ;w+PNooIwiTA=E(a5>y7`jD+%Y3UF9*2?#<3 zg*mzT1qJy8*`YjK-25;uUKlSI2M@0ZAD0Lp5A>IdL4p|Ei8&)sB3iQYzjOyai8EN^ zaE>A{n46m$ryDOP#@PzSEi5by3~Gzu%I6IUv>=EL{06ts((3N2Zz6`iN(pe0tkMA^e<~- zbvzuAFfAk&w_5qVhWLJ0%q)`Z&s`X zR!cz|sw5{Pz%48wz`?`Gy|74Cs_#_m}=u!6gaK^kuLuTOt{VQ;g$ z!5!hwSR`J2#TkB;-`_OCZyO$8=l5yt_N5MYKuYK%?ZJjeLOn1pPaA({%nBZsxR2!VTa5PjAgR?_=a6&KHBjH#iClqS@P02z>{U6{}6Bc>N z{!bIx70y43#a{^V?u381dlxLH1JZufKVH=IPb2w?TV)*Ku`{Ci}B$6)5!iK zjQ&P@|Ikd8&_HhN?csRF@?&%SA6xo|X2&86hz$-21u_c7*dw4aY*4({6MxYDl|KHv zBLDZB{fFkQD2;SQ{@}j;H*NewGt!6K;5a#<`qoHi3T{x|Gw?EF=o=r_n8VYr@25JC`aE4m}%hU=Al>Lv%$A4h}fa5p-iA6$D7-uNf z0fWI=L*WQp7c6eqGQ-P0e#~IOfw7Cm0ip-R_lj3-V4fB(I2>3+xD^~<0FWk24@*!Q zXYGt}v9jJpLkfp;wgKgkSWXrlYa1*S{0E0xA<;-@u&5SDz{PAp*FZ3Unxy};iu{Mx zmIW`pyj)Q2Z;M-lt) z_4^MYCk;FuNH`k%V;k?^w(<|n3aD8i3~=xd{fl6L^G4pq9@s6hP@pxzCuxj3{=+XL zhst7HEbNgSGWI}OL4j(SVEsxvP08rqiL?iGAp#{br7`RwR zdpNKezYYEOQm!^w8w(qI8ytAI%l6TLcvyT}Zv0__238X|eel`^s)j_n>?&pO9GIF8 zF7`MZVB&G^o>_P(em}F^@b)X-1%f~8fckN80QG@008dIl=f7%uteXwa(i%^O-0&Mu z7ma@}3*2>JVekXNlO`p+1_Qihw=RAmIHA9CCP0Y45vSb|?{))fVDT#hNF^GIaRkR8 z{sDfCZP2b5dpw_HQE*0j;88(hVHy^;pk?fZ|23>fzOMWizX-b|5_V=3n zhxQ=e9ghNJ7l@o4C*D);2KR8oNIBzvY|ekb+5au`wt(9ptZke*rBtLicQN=c1MvO! z|3M@iG4>voKwsf@MF1!(OBcWcF=!aKAg{0xH_QPz3OOuyU0WQ$AhPEGe3}E#5jlSF zNW#m>4|MM0jF(+T;A#P`x<4)0KLjWX2(~x_8`l@z*7CDy*YoB==?W({twXm=H32RxBlMMz&Ew)a^D*b5JOms05Nia<0Nbx;8sYO zBic#~_WQ%%9Y^>mjhdRsug9a3tOR(#X=8&B5#WLg3keDda|j{1xi|#)_~0DET>QKo zyn;epg8cj_ETQWz!3 z!Oe{n;1Gff@Nx+8A(6ZYln@*#{98wR8v9d68qPMrIELHrDTAL20(8bB%*`((1iFBu z5EdLf!hC`p7DxdU2U3WKpG(jJ!6$6N^XpvxqM1K+rD%i2d({6m;;r=cN z`dfVBKa0QYh9O11(FzH?dcYwOVz7UC`unhckFR_yV1xIP0+O+3IsYC6f2#iP`@qwn z|0$^Vt*PBo|Gp8t3G4!K z;a!f7F7X^9fz<_D7aBg?=o0s^DFzr|Mnxn;mh{I`ZBtioA>&$+A@c+`vA%wUrc=))uIRtoxQ5*=o!UAdv$-yTqC@df-4Cg@zgJ|&o z@0I&=Jp1R$?b<~W!1M!${(qwWK#&`RtMR6l#IA1@?&t`t+TEBD%oUCJC3oew69{j$ z?KvjD;l8Jh|BF%zeAyt1{P#7?o>Be=6ZHSFIsdRu{d-L1=g$0%CEzvlZqmfRvXx&M z(4X1OFDy~^n{>+K;}v*L^ZjHJZ~%auCXv73BY#(&{-OH6?8RSN2ZZuhhWVcnzHfuu zQ~j@6$NVU*{MO4~H1m6JzaqZ};5{r-44>pB0(dFlNV`f*0^|$*>DivvcHbG`^Ly-F z@UA5ZUas8>#*P2;OWnQi|5(@XJ9YQI|6|?Xs{)r7P6Du*-QoP<@t#`vT(oZ~RoWo` z5{aMOA0Pd(^d%d2q`iSGumX2uffD$6{Zi|Xul};C;qO&>{!n$#t6!>q+bVl9C3lzR z+f$H-2~t2|zvY1LS+%{p?Z15g`<(vE4exF4XD55n`0o8rxV{U~-U2`2+Ka|_?|;Je zU5NG;_zBluG`@TP6Rz(@?)^`=z6;Ub z0zcu}i^g~Ff5P=$i1rrv3D;gUzI*=@uJ1y$x4=)h_M-9K`=4-q7oxode!{gEjql$7 zgzLKy?Je*VuDxh{_x>kb--T#zfuC^gMdQ2oKjHc=M0*STgljJv-@X3{*LNY>Ti_>L zd(rsr{ZF{Q3(?*JKjGSo#&_?3!u4H<_7?aF*IqQfd;b%z??SY;}Fwne2+=Hu%0}sHLKo8U*6W1cCTpgFx25g1^%chzl14^3fau5s867 zC^5G$H^@T{6J1e~mC|wV`?T%leY(kGKB8l^@SLI|l<4z*GXgXC0s|2rQu&6W3Nf|O zb41T`4d(|!!Vb1YO|uI*!c*f@#Wr!}MnyKG-QFDyZ9P?u;iu255AqdmJ^!Tm_ISpT z^c%?>k++qUN99h{A5kPOzeup}gaKr8)AG}_JB0z~#m~&*^ZI7ogtMHkRwyfprB>dK zx{8Iy(}a*YU3&pzP0i!$SQKiqHt@(L_G_^P+r@e-|L?xSHqp)pw(#rlw|S$SiPbQLG9xEU^(685x z`snq+GPmww@2!QVJ9q9}x&VO;({SAn^}5xd^C(_CzsaC&F1Ut>z9}F z>qh*YjW2(Cm&?e(adT&q(_m%)#o_~OS8(Q+I0vxK&QvF(^)hrh2eS0od`h8&5Bv5( zikmL5usq4kG+E}VFw5zgaiT26PPGpW4J9O;tr|Xdu$WU(MdjK-26NgYtJBldot>Sh z18{kLPoFB#`Q+#4 zpRyH1Z~0dB&p!70nwiPYuz;g!9!vjZf+sNT)RWo3DpPe4H8%R9^F=H^RH3&#`Vy!ftUJJyk4 zH(tCT)FA*1sVWrTe)7CJA3uNRcA;KI){`e-3H=uh^Zd0%@eBIm#fzDoD&Mh2l8u(G zuCCJ3(vKf)uho#v%7%|Ed-}lf*T_(X*VN=B=jF@^$SX20kOc0O7>#PgZ6*(f2+bliYeXh>lp%0*IBl&4W>_ zPP9Zv(2B|zz85+ZUbWp{wLLhzJ$U%6yT8D@1Io8bON`km)@Rk2?}VH^$IQ%ZJyQ83 zt}MT9e}pPt;0nC-_4OSbIM(Hpwhu!53&L!5eOG{zkX&!p2)3Q_*kQZ8{xWfAITF`-=&7tV4%OR&v&Cc@p>J6%SuYBW`28Uo}8SV3B{1C#m~JCoEjBX{o{#+smXqG3pA0YO1O%B}&(7%ySL2w6tCbc6WEPl^VJUmZHa0MN!93YDBT4sY0 z*1mgZAT7d>Fa;EpBMI1HvAQPH4(zFtCb2_N)Db5P(BSueYAZ4_W(s=D7@rQJizI<2 z&i|-P2zE_}t`+)P_2zOxhnu>a{Nn?mT~7nlpOlWfWTrD*;fYN=hNU_9$rsh5*NK87VRo&YtS(>f{bB zO-)T5ol~=h1X5JAw6mW+=_IQ^&B&NO8rs&@R!sIe=bgR4B$|zl%}3(0zJ4^0AWB${ zEMV<656#g-WrGQEai?=%S$K9?M`>NYtl`())8jT$doVCfa`6S@^3m?8rHbt@{hg$R zz4l-($9=S%$iY4Wnk#T2uWI2Y=9S;=8+WX}?rblIb`K6#>{oAH*kq+ZE4Ba&0}n2bcR$xSC>2wIxsYpEylBPM?*sC^4n>gfS_QGs^FY! z+4RfXbPgO8Djpsl_0EO;v&6%mp$%QHUO_onZ2U%@OBn7Yfpe_T!I%#-ALAJkHErs2 zvY^*qYx6GHB5!LrU$(X${Xk|O6}UOuU*rcw?>2I#isdyTMr&=o%dTj z|GuyC6oWiA;;|G5#Szn};wE@u-wT3k5f{iFy|EoE!KQh)aL2U)HLISMS5Uw|a$O^| z;kjK;wl(8Esf;&9>=dC542%OA85yZB4LoTx-q;oxZEkFch>DK6KM1}N@UUmb&dx6H z`SZU1{^kZX=I#V>uVisX^_MZx(Qc#lL=&rZN494dkB|N7xtQc&_jIr=U?SPC?nXrch0yRZl{Kf&#zX2$?ua&p zk9c}OE0@`W@d)`%L#Omu{^<8qh(RQ<*X@CtgYPI z+S<#BK#hoX(23v_mC7yidLO*2AuP5s6b{`46l-&HGsNF(GSdcsvxHi-25`DUCBbX`gv?={j;xK zmYxb7ub5comKIRIKx<&JSi+>&uXWN@LOQL*+&{mMWK>8dF#>c0cYGRGdYI1pR%I}h zu=S&GmdSZ$<_GHM8J8C>$fszE5Yyaj?Ca~hckiA-OWV}a&9JcdZIIsHUO=3}(A9z` zn>L*N{3N>-m6et6QV||GawL{I8rR!|%Ik!S5OPKznSc3e8W$TIdt6&T`2({zw9<`( zi7Alcv5bt&!nTR2DeaOmY0x#pC2A_FTLPL)Gtwm`CB#`Lh=L58>v_p0PhYEn#=k2Y zL~nVH(jM%x&nze?cu8A7>sof=O*qG}R^4GUCi9`pI6+KfpZjNXDbF5ofTHv)`Djj` zKCO`;mj1Z}90B+5-@mKDep5bW5UoE~au||vVE{8+xm|OZ?$-JS-OdPI?a&t&a0+v# zl&6x;As`P22N(}Aj(M1g*vfx;OD#3&C}cfP${yyPP}D!$>dXfXY-5F;RDev z;M;gUI0{iQIq<{+5QvW)VN{l%PEB5y>a#BdjKI?XY;-j>HHCYm|d2la-d0rJ7ZNlB;urs#0&>zEvhE@^>DY z*d=nzgP!PI1295oEOsmpG5;?2n&voZkc2xFB|<&j zpYJwrhPv18UMqBl^uf(2?tPzn^Ufz*p0K>9uBMhcAvCmptw3nZLrYt`PW7yMqD0%k zvl??24i2DQeSCagropd5aX1{yCsViCzSLI-o;`bZ>p`ffBM;eUF-(C`#?z-%hL`p9 z!1pno$~qZ5`GNpwjB(bbA+LErhsQdCNNHI)Ij<*Qrj!kvJnQ6`{PoeSS?j1veK&R9 zrF!+7Q|s}fZe7F6D=P*0`HE%wRl|NGwSjYU=#7?-A3rit$ho-ir_>QhSz|DgzFY1X zOwO_ZpuI4Y;?Hl5F-i(ApFU-s)It|+Zm$kU2o-#oo!x$a?HE-e6HpOvrD)S7edVrM6P^Nk$5 z=`E<~EIu`sKB=}~jZP=EIdY01DK#}UB}K+)^K8U<3#r+@f+L<$a*;IF2c@jh=tenK z4u`bv-mb1iFtmmRV}ZDv3F8Xdvs8^oTCDkAdg(z!62tmu&2k|^UB1^#{06eP%W@;m z2%pG3>?#s}UL)aAYN1(9#0RcA9kPn|?;VB0&j@!73=9BUqq9?L^?)i3nG~7&10i}2 zwuq+g&dvqUjoit%pc`uB0D2X#4py=i!p}s0$p&OgSvjUKH!4mj`O$h3HYZ+1um3Rl|U?4$FpRHG3fa<6gW&EA<8jbLVDUXDbyB$+^1V6irB`i&K@V>ne*Y5>j13As z^Z>bqcywd|D2K4=e1P&$eScS1tu?g5?6R)zLE6xxV39Pt)=Z7VqliNrYT1)s@OcH0 zEqu{osAZ_6VVh(_=Jm!XmJGo*(LBSwt z`mOcPBXuJ2oZ+G6n{#Eb%C*r@@V}RAIkz(Qu|XJ980R!n#b3vY%d|efFxGN*p~YHs z|FmR(e?Mgf78Tao(GgKb_Q-X(u&{7#G=PhjEa27p(iA0aG7#q2rcT>}u*#6@0LYNH zQw#3$3JS3>AX5$wQ6f4_=G$cpE7vK{HTPo&>!tQogNKi1HY8XFI0 zAm^oT-w^HkTG>~VEC870&8Mp#nHJUhR70ML)DDg~$#@sz})hYn=TGI+vye3OA1Yj)=CHfOx$*1;({z1j$%VG!M~#}XM35y7bWxlp zR~I%)m3HA-8`XT2UA!0BwVLW>E}+O-lKMOnhV!hB4Q2okm=fB!J>cAGf)Z@b`RGT$ z?kg>&2|80?lqEFq_N0cG)BEauHZYDsJGR+SK<>!H8p36fij=m|nR z+Hm<6!(g-j0oaQfP1J+X4>IJ5i4bhv%L6bTUirtF0#OuM=pU?Ko3qn_}*yXYv=Oo*?8Lhoj+de$9X5`Le2f+s(kQb zvcZt!t)-I67;ufbm` zZR%enIH}rOqlYWiT7=f~msWXN%P5=@H%{dC+J`;Td)^!%f1l-HW~S=L;M%q3Oh-b$ zqW;1Dezv6)RYrDJRxP1K#NE={12V+J(V>(u9zEBT&Udd~Rm&QM9m@NvOcoF$LXv(( zrrC>_I`T@HTCwPva8b9p_Z_Q)Zgi(sMFN|rWmFtc75o;@>Fu4)1ySFWKcN#RJUHR3 zREA2o*W%G(PmD28uIEHq8@{&Y0Jh`GC`Y4Mre4O)veD6#bA(AXHBzP1@?lfe1|F#` zG+lxB4KUZaTN)~^JNDG&&l;RpR7SOT`RFk*F>yD;%Kh%^eeLp}(~^v>SAXV2%qnvJ ze*Y{5LCwrcduuC8@4@;PxC*nXk8NEej;BtYQXEVL&KCy<2jJxS@ZpK-OTtOtPvST3Eicb8&n<*;hmSsam`{Cs;f`iZxNn2B)3A2tMZL=4zI?DFyuHQriik^P zcxi674rrCei|0C^933w)>%86o2R{;pVz&5lsQj3apkPr^k>F?^uS$(mHSUEwoadY~7d>)Zf!ca93}^VknpRCz;-PkHE*lBlEsAH$&A@J)e;F53ck z74(^DTFCo3a}SQWbAA|k`Nk8X$O5D7X&sqVhT|xI@@r1m^Vx6m`@_PPR^Pp&a*(B0 zKeaqfEa+1@I0w9J*%q3&Ca$KQ49Z#BaEX|kn=>OnJyKl_sd#3YYhXRbGIpMkWPsxM z^HG9xx5z`2MgT3&%ht;PPG5{FtqKMM^Ep^b&+W_8#a?cAYjScjYFLzwcNlGBGyUmP z=94EZ?Cf_%4v)4Pw)#e;9@aqkS_>B%K&p)>=koIM)?|!~?%%$63mgi-#Wf~0=@mW} zoKrqL5B#2`Mp^gdu|3v&aRLquC+HNRVR52`cX`i#A5jW6zv2H{S1uWWWX}DJVV%jgKRkn!b)wRvEnJ z0Y7%QUgWn~bo^_xIoH+)1<9+yBrW^8(=1n--Ji6GmKK|EI+yEZ@KYUCeU@dt&nXqP zR$Ro|DBjg=D+>J7=oaogrO2VQ3<4WOe!%>Y3KUV}@aC`_DwMTX`N=B{d0V1z-3hLa zc6Y-8MwZx;&a!v8g=Ty{2C6{$X{V`=bYx{^0pgwP$H{EvRyEvVugSr}Qa#1v%R_W@ zIN@T9-0K1{^yp_HU?{hSJt;4L;7dXsDq2CQLe#}VsCulBXA8^&QnBwvUb)2Fh~rv! zqUJp}C0o10Z%M;oDb0xF)j8Rtgmqyj!`4vA;V(Y;HcFS&t|wC;_9;KkQK_QjQdnDl zO_rMd>4hHBE-~ediF+@Fs&COe8a$2IqJGr-*n+s8v+YQVESapTH4~EK6Rm~WxHU`U z_0~AFK-|fGRJj>!`tg?USHO^B4_G+6TAdOOH>_W4R?PdHeLRLlaskO|ss!|VOfL^F znWCsn?4v@hN2c84lKbc6M$`j@G(Ru0JLQ~pkLP3yTWkmZzrfApIsY)uj`sG)Zz9U) ztjeupR0msb>NqGI^?XQ>9_zX^+4fQ+nt9o*#lh^pdvI@c(QUWdyX9|ek!LCZ8$)J8 z+jcTchNAA>;~ADUF|l~5973aayVptBTs4lkN9%4YcMMuK;|-@>oRdiW;NV~@Y;Lej ze|;L4Wm8}T$m)kG{+U6}o8*PHha!b;X&BDpL}KqzcPrLB(zq8=0D)w*ESA1J$Hdfd zF8$b9F{)0A1}76cJ2tbxfnukzx?_@OIs42@r=g)?Wn)Vr_iwN;{VrsrS(h+7_5qc=Aig(Bze8Zy5p~A$8(fLDiT8 z0uhic1Ogo0-Fd8cNKm0qUn6{1KI*P_Q_sW?qN69BZ`UrB>yXLX3xl1SpvV$g0s;>i zT3KPdxn?<+UwdUeeX86XMcw2yfZEvHjMk6_KcF%`G0};Qhb2mleSj}5tYmA^Z4?Zb?S~FTAGEl8A2=7}oHR9JHs`A(`y@$7 zNk`9e@$(m?rxV$t-*E8dujrEzFtOfq#ad~Nyx45AY@ry;l~{X!jn4aX%?(3YPcN@n zlMt^jpFDt>GxqAC7Ev*9+R4F?Jh4>U=Lu`?zaa>~#|?_@3i<%m!>g^TlVH*f7D-l8 zp&Pt_IHNMIy|JaGp)txQ29{^cv>soYL*tY|#v8Eto88@wv);yt?K{CX5Q`a4;|5H{ z!zY>EJ(~UN=lc%d;u|}E}o*&QcsSc zpv$<}jJ!PF@S!*6TwJr-WC4|xmAW4Cac%daqEfr3fz$p(SgRpHqg^0- zlbks4bC9DD2nZ!j>Y0{xk3FcpRJrV~k(hmsY`h_qa$2&$Xtw6sVf|L!hiPdFrAyPm zQgIsa@1DNPsRh0nxtX0JR`qdXqrCiA7dN*YpJA>CmbZ5rEpjvUj-pWW7qV_g)o&L& zPY^G)fvC*H>5CvPHRkJovQt6KpcJJGNdN2xMJRHrJw8J>3;20FXfyTLcysS!Di-@x zKHlhl{W{+pR@O8Y`BXQsea`){R8>p958MH*k{T$Qm;UhibLXaTT06aHUNft%52{_H zR-HppQ|lm_p-joEpX!#ClarH`1(-K*tpXo9@IXHl@sFaIJEvS!OEy?dbN)VKS?w}I zr}RVFBLvOX2j%B&3;GTmCVk!0(}G)NzLWm+>Bo@s2?iE4`>KYA-@a}1RzgFQA8}C~ zT}w+%NCB$wc&d^topxLs^BZx_XuAq3OW>T14Jt5T4?0E%T--b<=^!eVlQUf9=eK`e zmRY{+#LWHfX#{B<$-~l85sTUR;i^RL9ipqyK@z2y2M-X;)kax`xw(knN^0t=Xw z1it`RiVnxAK-85rdeUpmpJZo;D-~GIHmt>uQOZu5^2VwHpO1=1o0pdtbxqnpulRkD z)pc*Xfh7X^a}KvaxKKlEK{nrpO0QHeqoA@;C)%lc)UI&~$?;03I43tIB zq;$G}c$H*bF*8yZ6stx9=A(O$R+af=w{&UNbHz(JsIk2Yip~le52F)+>II#uj;hw9B~8( zZ4P_4Ae3;w!%mW)5skYJ|#CPsbEEz5{Ltqmy6lFcP;8ylkUs% zVUPd}5g-mOml6}8IAohuH8gr`3-UR{uB3;5rqG>U%Nj^b0$YHW_m0h#sHiA`I0xWf zLZKSR766Y1mx2xvEiLWhmrxLn4b`vl@%JzneqY{ zFW?$P3l6o_p3Wr8yhVJ=;HJ4lVD&?;*i%5f`i@Z>%>jXDnynLCQ!Jj)#==g$NtDy)p4B{kl2?@a8apA&+ zu7pcucoh;z8xHi}W(BaBEXjsw3~WZiWdzO7$IkTRNCJIyX>^7Lb?pK-`-RnO7H0xO zoV8f?X#khao4F5p_Lzfrg3&0e`^2k24bA@i}A=p*Yw(aiEq<@#YM71K;xIHgJ|kWj}%`O9zOa9lswJ zXQ}+~q{Da|2*dza#3}T#YD--=w^iUW?-?sTF;jQq)OB9{;Mc++g5Si){dsd6IOihL z50;u_ACp+SIPz&3gesN8PZ8|P`0|F_dvkev1L z@kjZnD4{Zy4EviHl_XAgOmmPZ>AJQr5e7T3MObnad*zmZZmJvS%ex%`3k ztx-K8iE6PAdcQ3nWc2V`PMl+ zd>O=VowBr9vo10taY*_?Mcx$zYln-}7OvO4HlGw5Or5|&CTnZ;bE3j%2y$$Mv zl1xVPpQ9G8lMI{%`6YdP6ZcgggY68w4I6qO#bAHKtr~L>@(o_g<`B2-J&~TB{do2` z*jH-{V>7FR;~o;g_86TJmXMfRaKBfO&*(a>@`*@Ep=~)E1Y_(R4&=6>>f#R2pE(DD zyR`Jn$G(0(hM3tXs@ir4j1{6X^Ib=tA$x`3*#@kB{|G5a6%kvgKbcSM^`=72zYLNv zb&O6zwLb(XjvikzY6#@*1vYxWs^wG|aBGGn2a|bD#k;+1X?bJol1V9y`|ygg^7Fy) zF@VLW5G};t>j4Nh7!_=KOI(_*?t(kpmzZ!~ng!8yx~Jr8H*0I9Z=YD1Y>QiHFnVs3 z1x^&#G9SQP7lgqt$vbv1s0|UdysGX34usYOI-6up5cGFp9yl%?A^s&sJ*_Tr*kg*; zW)Yu!GNCBkQgAc2GcGU$n z$S=*RJ|T`h`WW(%Ag-+u!Cb>Fl7xUjicbfKN`Ht{I7=U*gBdJcSxWqR#;f8081hLF z6#)S{a~&_R%T1}D95$eKPZ-X%Q~)Um-Pu5MLES)#O3TfS+@`a}v6n%*4)7IFa+(kx z0$Bkd+X%QT><3F-*3Z0^(-iaDDQ~dQOxL;84RO?f7Z`!)96n4nZ_23;X!6}-WOM>? zS=rg@G_1KfIk510N04j5-7+1ul?(EchBqsQy(XgcpJi`SkGGAtyf#D7dAp zT5IUdvjXR`->RFRo4D<2LPA1ep})7tcYGDd6$bdHfOfo*i zjV=gqdNQ<6=ZjO_{HY&S;nDI_^%r69ZpSH0F5unC;D)xm_2fRYm7>F93@@5!~Dy_?g0X9+#DsrKB8C zK4d^#S67$sNJ)?cKGvSx2YH4L@G>?&?eHNhBSV{EAlDU~=v7-2z(swLu&uqla^qtL zCCtowZ6ruVMP;lq5#%dveJQG{00~1?k_qxl1vx$r;M}^@ZFg%G1cqKjGLCnoC3q5x zdHV-&2@78!-2cVavBZSVZ;Shr{K0#qv>yQl!MVD6ik)Sl0DI`B<7HxS2$;LNe(CW2 zk_VLWmKsoIQEd8!_Px)oIubw_J2*SwIMJbN`Z;Fe*vVFqC?k_ZwmxJp;0J(bhrxnu z&8`8n+o*ssV90x^ZDYeTVJgYdKlR$|!|m;DXqLb1$b$RE#zwhW4#-w>JqW3;z^|h~ z+-%3rrw(7x2w9$w(3wi_^+nJ&2*m>80VWH4r=Fg`bAf6n36ut$hBPRps;a82%nO)T z!sdW7e_fE=QAp{eTAc+zksdn+vYWVJuwyjJwMRITGjdxdu67+dv0tbW(z4H9`XJ=} z5IOLzfrKxK?d5JDM0nKCc{hcJrNb1IarS!yLfhWK!mu1t?Ws-bwmpkR|AUS4Yb_8f0<-vY%aFe1xPG=ob8C zr&DZ+&jx5|fti-R9vEn~UtZYUw%omxv$c(k`am*_wl-tIE4C?MjRp{Muz_DQ_3&tD zXjryy18(;=6br~P0+)XQ8-UHWVB-o%OL~9hFt80_X65b^FQfX4Fx{jxotM&efT#oA z0HUaX`>l5g?<1P(wMz7vuULIH>h~cjh?Gv^C=#R;0U5vAW9CH?@g7sYaOiHM`1t`M z;D!U&*AdCBppcLdkfR8qoTVn55lwl|p80EMKYjCYe0&_l$U$-du)9M;fzOGbhUE1` zX`Q`*B!IN@YB$hL5G`QntbWYMd3olupx=^UyPq} zpFV*kL21&V=g5}pB&QMClA`!4l&tR={MuIJxbO9#AdnBXkZ4!(VSHWV>$D_&0I)cd zNmd^zb*oVt2-a?Q_jg%?5HGl9K7M?78;=E)6dw%)LHpj`^~Dw#=H0WA(S}f=2l^mG zsP=PPs58i6i*6xr>vRG>D(^~=M|fX15eT3cIB*`Pr8Nt>8)@n5udd|ynU;S2INp2* zQ@PHJbTHWty0v+E>k1!JG?PMfZ_b8&H*(Jwx*8sG?y1&~O0eJa6=Q&iM= zLp&?#G!2c!#)lN3AZg;+xZs~5(Uji$eG?+U+Pp{16tE$lS!D1>!J?70A+hy z+X#ewjhk9~p#(ei%vM7~L(=iRf5((4*s06Q%NaS9_wU}-0rDlubZZLC3Rbnnv)+v^ z0=^A&Up^6y7^IdKKZ>_(VD_OKdjl1w(>e8;y#NCV<%N*MoRZRSN_4oUX&wY{>9#U1Zv)xC zQTWR84bc5N)d!B@HQAz@^x_EsoaD~hSZL`m$dil?jf^}VR428A=oo^KbCs0^PHS|R9sw~pO0&~2T~=NTKPNTMHM8vOBTqa-}$I1 z=gVb)nE=xfq%-d9_=+HieGY^eJv6bn33lx4+bm-c!VhDrMi=Sp=-Brcsxdbn`7#@t z{tBch#vGoXo(4N8QuyK_llExXWz?J`NNgSUHZ+W_-3j-gXiV>%a2~mw6qE>98aPbm zz$9zmgR{L6-dI*IKj;Itn8eoSI>4r`T-nFqKm@4tBV)6ckv{i?uPs$uDySFLWzWn! zrhU)WCUMPG z>yvRnRxj@?Ml*h)tsj3_{tE0RD$}92Z{_Kj#i0zG(V_Lpkyo=A*DeEURu1wg6DgBR&ameUM@~;D*$pA8NUQo|SKD0kM>4as(O|f*9vKyh)eF9UwSQ}#*V?HgPa{7gym z^t0&8zW5Nga$)ry{>O4T!XhG1y?GuI1WKwQhVh~9t)-5f^6BkBO0!FIHa&p9b$2ff z&ilH}zKfzHNxO(02gkZXxY+6dmix`h=g(Zp6iSraA^4=8o@RW4C>?MC-uRGslMML! z=$+iBN$KcuAnO>PX&AauWKJJmBkz`8)Cw|p^=^Um1(4RHWfzJYs7Ix^4S58;t6K3C zPoM&u;pTMnwy&fsAB>Z;@!IPM-(|)|=D=AY*RpNn;SIerNS4`mAg|$b@iXB6oUU;# ztH{gK7LnAH2GUx&*sUQ++vJbW&)`NeZ+!x+1tHI3avX#lHh@w3;YMSV$^-?esw`bd z#xzhwY~B7|o}Qme4@Ww>J6_;2{`mUGASMt96v0%wr`f9{^HnH5%@*+)n4jPzpJ0f-~z z#e11iLAd_s$Rl6wfnAxTkgpQWNgvSF-L0amtf(q;|Mu+@pA0KKmQcyG3#q=F{lgOL z<9FPjH4g3o+m>oXee?|($xTUM%0uRRO$`jH`||VhmIg|&PO?aPNhbjE$gy!Lkh-|M z1~Rp`;I6I$dJ2@Eo*SE(JV;FZ3K-eQVD?%Z$c5tYTmr`{AVeS)Ezc;cHO~)d!mi_= z-{o3@{M)tBcNT#zU%@g{S$=`}t*d1Afg{$bcL-?pc()p$*?m@}2&rcYFO9A%{QGzrON z2D5z}s5komvGv~ZShjKhxVjrs$;!&g77D2(JCq&D-bqxXl06z`_NI(7D_J2k8YC+# z*_*f$vPbCmzPj({^?ZM?*W<6c(#3h5$9a4{pZ7Y9=IVHoTRt$CN8!Og_g&s<2k~)) z1TXKKg!`&c^MX}DDUbxnG8i2qeyY99&aPqoF*U{T&mf9dU}roUB>Ho7{q5}!r7^;9 zKytp#tE=Qz>Y}rVR`roStag^ir*3rp+MM-DX1SMlHRG%OmwW9OM4Cfl+1Txvi33aT z^x_FMZfcYF(2Ud+a2uRz-#sxt9vu}WWVL!_J6#QA;)CHYbDuvKdeWqKpaSA+k<&Y% zyx$|Sle1-gDgJ7bxqF`D?0}?*$owelpEzL`Pu%&|m}Gj{M$vQLVckS%0Z(Np3O@u} zaqWbLh%_pCuH(iVuN4+}K8h5l5x=|(Pqwk^>iq()H_WFdukr`|58m}H_OI_g61T@l zM+HKhrUmj_qRv_zXpej=y)`OrRWWBTsC(&>2Yz7V97@Z}4|74Dzx-HSCx`u5t=0$q zSUp#XMML}*HUb`tj=#etr7m0D(Zmv$bwVcHrRl<*i6#CNMQVn3W~%;peyUfrJ7(dh zudV&iO*gi|ClrqY4~yyK(@4)M*4_(09nTO_ILIrVO>Zz!Mbhs;ixtyr8dbtFobAyp zvCtSJXqfk65~6Nke<4<4naLN|iNH9qb4Q^SZjpLhN~__PXFoeT%VRoXOh)>QC&~GN zRNTbcP0R_+k}G{=g$q}cTzpH{P%~(Lmp4pMlo)De&k#l73qWIHPL{ynFzdNeu5~x0 zAVkSL=qZ?kAns?4RtqB2WFELC4ynEEJ#kC5VDqvq?-QFnx53{@6<*|?hvSbCO8EJS zof^s^zhaTsO8H>0PN+n)Gm12-e!t%V6y<%iG9#aXY8GLvXX_qY& z6ck)t#n&6Xn>Q}Vv-Y4Ba(@pE7*&>w>guMah^2sJ!_Sl!>Sx5u!Zm*Cz62Po@^}C2 zNUikkvGbyPX!3<1uv4-;)eU9;(W6$1rzEzWC2dvt#(6rYkOk}ef{{_h_UQxxrxxN) z=Jj-C{~*V!@87?o^Hk4xh=q%rv#)>}1HMLC>xCY6T`sdgx#geTXAfoK-cb4-?<1T1 zjf-yoo^Ywr*=c>z#%g-}y6Nwpl;b~%#asRen?h5GS^WiFU7nl0&LaUl^wi|k_$)}w z^j+{bs+plfgKyB!9!crU=MZ_5K{>nNACQu_wUz0$&J)jjRX+VKx($aGB?;ko&Q*dA#GRZ&)kFq>GB z-;<7tiBT-~|B!4*M%j>D$gAbBLY`%H3nk6u;`mTHJEQAPKeoh&N8+P%Xxo%(dMXSv zob<9ODm<%_-@GsdN((kOqG?R}kGuTr-rI@TcIh=eMZlgt(=Gi2?7&nk z!qwGv9TY>d%lCL9(ifIfd9Wqc-DE1lfyBoWLoa`CbVF9jW%M!9a5{C5er-Ap*Y(Mslv(dmVt@3 zIXg?s9fsl4j=vi)FpNcN%nZCOPf1}mTbs?2R= z2DOxGMXvN(ZB`TI$MEppz~|4fQ&Y$h!NnOT_TMD^c1}zmZ)s>8sOwv7Pu_~6v3k|~ zMJ9>efV)1Ir0oDzo&HDJchve2{bvi2fiY#lleEW!~h^qYFR!Xd4mRnnTC9)&8R z%Q0)eJ|4(tX4VXur99^@;$qe(6epE@ulTvThK3g^W|xMqelbs}Zak&w+Q<6do;|C= zn41Ztrwd(UT-T0h%8QAFiuxXsn*;Hp9@E*-vtSnP15oZ8$8Vb;tPyw z>TbqKXPn5hOc+?dz-lS-y8VNANR&_Ok42QL)MMzb=85l7aUNb9@}LFOPZ9ouxMiHz zj0zj$P+N~kDuG!cVt2O=aSxxHnnw)47Z z*6}?T95Gy6)+YiL(%2BOwg9ddwp84iAg4Z_`Q}Z`=XKO~f6aVOl8pnNzaA2K3?(he z`W+h?+OcNu*(7~A35^X6A2mB6zVup5Wu5LTg)1psKGSQX){7}Q3PK~cSdU>JI&vm4 zSbJ2tS@8Ud9HzFPH}Gx=_1d`X&aNGIOIuU(e((%BSFh!(UcL(*VGk~Kg*hjAp}?AA zzBTH{Re+W0m|8+7H?}yD>}8^u^cD>~riP3Rt83RD(G>OD)f%SAmgMSUI{sE%d3UDo zH1`9}XTau)iimxaen_6LGZ}r;V4x*cf1!;wX5kmwnK}&>)3-};Wvuc~47#QrD;5J1 zD^jD!j%9ddcIsbKzh%*d*z)*jM@2(0Q@%grG4@k` z7TYzBaWO7o%XzY_)`w>!tPz8`fA_(Z%_8jRtYY?NX#CrXUH6kY z0Wx%B%Ia80J!0F*l4(`2hRxa>PDL-Ts?I5VqSP}#!1t!>z8mCi9P~aAW7k3)O3<{i z*YgpUSUnb7p&9wpQ*<5krLvL|pP(S5DI+dYJvC^YmxDs%4v-$2ML9#6$-DIyO)5&n z$VbJBQ!a7s>8BtD<2L0ubn=G(vbFc8PehxHhSb`Q-M707Z6ZNAP#LifHm9q^el8f@ z@3~5cE#rAw3YsFm;HGyA8?dqIqnq&PLOaBzaIWz80k74MKvgo^1EwgY`%?~4q6q?L zG!9C?EeMQ7=j}2UiW%Vo^N+r0NgRl+v4;o7kVxe*JZqMgmYgj!>M0jm7ery~anG%+*r^%;vI$x4A}~HG61yDJ82TUo(rT0&fNNZ9S&qv^=3JIReMe`a93* zsoa}zvDwKdAZ~Mf*RUsDy^~QB<(+`H!1oQ`+)(n*TmHT2tU{LElkBnFU6kQ#b5*4A zPP1h3jLAc>4+oB4IuO8##r=&LPm?ocmtApf?7%^i8S;xxo76fNFM>QA3}63<%itPY zZ`&suus`iFZ(Q25`i0P(qbiN+_1^c-J)(QCjR+#Y`}tEqeea_`8$F$syRK}%XJ6GY z?6Ngw`p5OwE#b{8US3`)-e)*OJ0JV)^WDQyVB33gZM5?|)rC*50g*CjTWY*$*&TQW zY>c?p^x&VZmAZ@*Yh4^9Bp)_&+GaRs8GShg^w?FMWvRqZai1ui7hp`f66~!O6$2uu z{KFlTf%xNBztt3?M3aQQ#%EfgicxZl&TEcti1Qzk$8Hmv@tm*74$EFWII^%dc7UFN zL4QqV_SW-XnB22{4EXu@-gnP`K7~6AImD%uDp2onDJCK3pW+SQ&F90o1O>~`z2g@c zSI9Mpz_f<+{&6;iyR#BU3UY zWZd`O0meZ^sGQVCaZ=q?2|P}G=PA5>-g5U_Hzzf<{m&gqO0v9vzk7GDLgUTgthD1# z`b{+(n->xMgC(~fsxR>S)X4yJ+fVR4{{gKXouE?t?T;m^D3t;R0c)F{5f8*F17u-m zR85+kzcE;uSh@xWAS$Is#wT#k#9j7#L$1g4^_C?frj8HSBN|p>&w2QU6V5mtO)+sO zHOj4+CmTJX3CZQ0R$C*f^wwOc&GgL5Z-Qy~%=`wvo4sQlJxuP~Wdk`airQNA8U$(V z5vDHV2VX41(1_wpXQ9TyqvrE#eJc035ABMbZqh{6TGLGtQ9cru9JsJx9uhVM(@hL+x@!5vyDM1tnBW|_ocHR0XiXpfXygU4%uZz+Jh+X8 zkg+TP4(o!c;Aj?%vY-vQDf8u=+-;uICM1f1ra=!>vhnBp%`NVks0Q#QVubuf9(z^O ziu>ly&a2p-BL)gkV3eL<(c?>|B$rz?jP})pWe7ZKKtdXHWt+`T|#&d~n#6^Y_!6HpFrOLG130&3LtRUe<7@qxshBS_

x%=vPD1_?)bu!maKB>YC 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 cRcI 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%0AR+{En9+#|rM9Vx8xVxO%F52AAPC4Y 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

Kz23pt*vv-5DN?TOF%;m*RO`$AGzI}dXDA#BJT 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%0DW+D4XNN3^vN1;wf!9CqVmp3iA3jmM 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È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 lb^qh#|7Kh#`r@<&8EMpn%%{T 5){$smtLvl = 1;} + + +string $Node[0] =`polySmooth $i`; + + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + + addAttr -k 1 -ln "smoothLevel" -at "short" -dv ($smtLvl+1) -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".smoothLevel") ($Node[0] + ".divisions"); + + } + + select -r $op; + +} + +global proc smoothSg(){ // Smooth Based on Smoothing Groups + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + +if(!`size $op`){error "You must select Objects.\n";} + + +LowQualityDisplay; + + + for($i in $op){ + + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(size(`ls -sl -fl`)){polyCrease -op 2 $i; polyCrease -v 5.0 `ls -sl -fl`; } + + +string $Node1[] = `polySmooth $i`; + //basediv + + polyCrease -op 2 $i; + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + + addAttr -k 1 -ln "baseDiv" -at "short" -dv 2 -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".baseDiv") ($Node1[0] + ".divisions"); + +string $Node2[] =`polySmooth $i`; + //smoothdiv + + + addAttr -k 1 -ln "smoothDiv" -at "short" -dv 1 -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".smoothDiv") ($Node2[0] + ".divisions"); +} + + select -r $op; +} + +global proc spCreasePreset(int $power){// Prefab of the creasing command + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(!`size $op`){error "Select Objects or components.\n"; } + + polyOptions -dce 0; + + + if(size(`filterExpand -ex 1 -sm 12`)){ // if objects are selected instead + + for($i in $op){ + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(!size(`ls -sl -fl`)){continue;} + + + if($power == 1){ + polyCrease -op 2 $i; + polyCrease -v 2.0; + }else if($power == 2){ + polyCrease -op 2 $i; + polyCrease -v 3.3; + }else if($power == 3){ + polyCrease -op 2 $i; + polyCrease -v 4.0; + }else{ + error ("argument " + $power + " has no behavior, use 1, 2, 3 instead.\n"); + } + + string $shape[0] = `listRelatives -c -f $i`; + + setAttr ($shape[0] + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + setAttr ($shape[0] + ".smoothLevel") ($smtLvl + 1); + } + select -r $op; HighQualityDisplay; + }else{ + //components + + if($power == 1){ + polyCrease -v 2.0; + }else if($power == 2){ + polyCrease -v 3.0; + }else if($power == 3){ + polyCrease -v 4.0; + }else{ + error ("argument " + $power + " has no behavior, use 1, 2, 3 instead.\n"); + } + + string $shape[0] = `listRelatives -c -f $op[0]`; + + setAttr ($shape[0] + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($op[0] + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + setAttr ($shape[0] + ".smoothLevel") ($smtLvl + 1); + + + hilite; HighQualityDisplay; + } +} + + +global proc spLevel(int $op){ //Utility for Levels of Weight and SubD + +string $ops[] = eval("listRelatives -p -f `polyListComponentConversion -tv`"); + + if(!`size $ops`){error;} + + string $edges[] = `filterExpand -ex 1 -sm 32`; + + int $itr; + + polyOptions -dce 0; + + if($op == 1){//Lower Rez + +for($i in $ops){ + + int $lvl = `getAttr ($i + ".smoothLevel")`; + + setAttr ($i + ".smoothLevel ") ($lvl-1); + +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 2){//Higher Rez + +for($i in $ops){ + + int $lvl = `getAttr ($i + ".smoothLevel")`; + + setAttr ($i + ".smoothLevel ") ($lvl+1); +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 3){ //Lower Weight + +for($i in $ops){ + + setAttr ($i + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + + + + + for($j in $edges){ + polyCrease -v ($Wval[$itr] - 1) $j; + $itr++; + } + + setAttr ($i + ".smoothLevel") ($smtLvl); + +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 4){ // Higher Weight + +for($i in $ops){ + + setAttr ($i + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + + + for($j in $edges){ + polyCrease -v ($Wval[$itr] + 1) $j; + $itr++; + } + + setAttr ($i + ".smoothLevel") ($smtLvl + 2); +} + +select -r $ops; HighQualityDisplay; + + }else{ + error ($op + " is not an option, Try with 1, 2, 3 , 4 instead.\n"); + } + +} + + +global proc spPhysicalCrease(){// physical Crease + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + string $ControlNode[]; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBvlOp $op[0]`){ + select -r $op[0]; cpAttrSwitch; return; + } +} + +if(size(`filterExpand -ex 1 -sm 12`)){ + + for($i in $op){ + + + select -r $i; + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 0 -sg 1 -sn 1 -sa 180 -o 0`; + + }else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0`; + + } + + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.1 $i; + + connectAttr ($i + ".hOffset") ($ControlNode[0] + ".offset"); + + addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $i; + + connectAttr ($i + ".hDivisions") ($ControlNode[0] + ".segments"); + + } + + select -r $op; cpAttrSwitch; + +}else{ + if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 0 -sg 1 -sn 1 -sa 180 -o 0`; + + }else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0`; + + } + + string $ud[] = `listAttr -ud $op[0]`; + + for($j in $ud){ + deleteAttr -at $j $op[0]; + } + + addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.1 $op[0]; + + connectAttr ($op[0] + ".hOffset") ($ControlNode[0] + ".offset"); + + addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $op[0]; + + connectAttr ($op[0] + ".hDivisions") ($ControlNode[0] + ".segments"); + + select -r $op; cpAttrSwitch; +} + +} + +global proc spShowCreaseEd(){ + python "from maya.app.general import creaseSetEditor; creaseSetEditor.showCreaseSetEditor()"; +} \ No newline at end of file diff --git a/2024/scripts/modeling_tools/creaseplus/__init__.py b/2024/scripts/modeling_tools/creaseplus/__init__.py new file mode 100644 index 0000000..243a04f --- /dev/null +++ b/2024/scripts/modeling_tools/creaseplus/__init__.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +CreasePlus MEL Tool Wrapper +Provides Python interface to launch the CreasePlus MEL tool +""" + +import maya.cmds as cmds +import maya.mel as mel +import os + + +def start(): + """Launch CreasePlus MEL tool""" + # Get the directory containing this script + script_dir = os.path.dirname(os.path.abspath(__file__)) + icon_dir = os.path.join(script_dir, 'icons').replace('\\', '/') + + # Set global MEL variable for icon path + mel.eval(f'global string $cp_icon_path = "{icon_dir}/"') + + # Source the MEL script + mel_script = os.path.join(script_dir, 'CreasePlus.mel').replace('\\', '/') + + try: + mel.eval(f'source "{mel_script}"') + mel.eval('cpUi') + print(f"CreasePlus: UI launched successfully") + except Exception as e: + print(f"CreasePlus: Error launching UI: {e}") diff --git a/2024/scripts/modeling_tools/creaseplus/cp_(read)commands.txt b/2024/scripts/modeling_tools/creaseplus/cp_(read)commands.txt new file mode 100644 index 0000000..8c14e11 --- /dev/null +++ b/2024/scripts/modeling_tools/creaseplus/cp_(read)commands.txt @@ -0,0 +1,46 @@ +cpAttrSwitch; + //Use to toggle between attributs, select object first. +cpDisplayBool; + //Perform boolean with operands display +cpKeepBool; + //perform boolean preserving the operands +cpHbevel; + //perform hBevel +cpMirror; + //Mirrors the mesh +cpPanelBool; + //Performs panel boolean : creates panel cutting/carving with operands +cpMeshSlicer; + //slice mesh with curve, select curve and mesh first. +cpTglBoolv; + //Toggle visibility of the boolean objects +cpHedgeSel; + //Select Hard edges of the selected objects +cpShapeShifter; + //triggers ShapeShifter if found on the disk +cpGoz; + //Send meshes to Zbrush, with nGon cleanup +cpQsmooth; + //Apply a 30 degree smoothing to selected objects are components +cpHardDisplay; + //Toggles display of hard edges in realtime +cpmakeUV; + //make UV based on hard edges +cpCurveCham; + //Perform curve bevel (must draw two curve point around a corner before use) +cpTransferBevel; + //transfer bevel settings from one object to the others +cpCleanAttrs; + //kills custom attributes of the objects +cpBakThatNod; + //Bake selected Node from the channel Box(select object then node) +cpInstanceBool; + // perform Instance bool + +cpAttachCurve; +cpCurveBool; +cpCloseCurve; +cpCurveMultiply; + +cpUi; + //Calls Crease+ 's UI \ No newline at end of file diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_bevel.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_bevel.png new file mode 100644 index 0000000000000000000000000000000000000000..252161dd1693934abab8bc203e8c11802e425089 GIT binary patch literal 15616 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_bool.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_bool.png new file mode 100644 index 0000000000000000000000000000000000000000..aba3c37b72d1ca7fbfa970230fff20cb5aeb995d GIT binary patch literal 15692 zcmeI3d0Z3M7RM*7EsFXcDo7P$s3K}ISx7=+2q-~;8bCw@v>%DdBpJ-sOppLBpgyZr z(Yo*e*Rs@yq9WRg;u7~Q*5#=vZmm9X*JA5Z#nMTFa6xd|_vxRL&nKC~y}xtLo$opK zGXKnixR}wN9=;wB1bIe9O5*V=+xGp)4gd8Eoxcsgd~AqJ#vrJRm+eb|idOqTQ1GW{ zLXs&-Iz}khYZ)?yehR`cYYn&>f<&QagG@dZF;S-=DpVIjds?%fMnx4NvO?r#2&aM zGAfk9c*&^dbogH(G_}cO5W;XqMg}8;!_XU5FiRj1z)UvGX47#69m~|2WM;Y!^LGS! z7e|6%awBRmp?V$F7FRY!pKc1F(QJuYKF#-~HMAtsVa@Dtim+K`fLRPC+>w()-r{3O zH)`xlQ^;XNgJ=<*3B&zZ9r_v6dXpYg>pMx=GTmunye3jGq(KoEzrT@0ySfhsdQj=>RtF#u)z82J8C$V{?76$R7+aTIc)Qg77C zOkz|kQz5WHrxL-fgMhN7tAyctjoyea3lVcfa7V*{m%Y=3Q98^d)5(!2i5MSXpr}F^ z#N!}b0m7!U6zm}S6lG8_J(ww1(B%Rd7vb?Z3Z+tDhbWbT?(c<`=;i6Q-O?Od@fSk_ z?(c<;HKO=QC({5L+v@*niVniOmnss)@czsM`WEkA`&l*)`J(OUy9o_yKa&hHBZk;^ zTnO#mmTNi0TFxk&kA3F~WpdkTCYIYa1fmeZZAM#{)#BOghW@_=bi@bTJI|4!Msy$A zP>xV`Rp&u4z0#B+Ga@5Ycu)M9z3zzG)~$Vb5o|mCHE7#HI7Zvn=UvCXUr&+kP!r<4 zfUiqtuK`O0zc<#J*`ZIe)l`#i*Ynv-`~$OWzs;`TbbHt254(cX?Oj_v$Lmm&nBAPM z-7w%~J9!<)!Z`dP0TJ`KTn<+Rw;yir5r>))O_Bt~_b+DaN-ln1cAxeW9Xcj=<_JtQ zJ32}Q{5!W-(lLrZEa1;6aLa>A+akAYgumHny`#T5Fc^+Z0@5I~NnC`8Kmmyhq(Nwt zxCjw}0umQUgU}{%5h4NwBrcE!p-tiGfdUd2NQ2NOaS&KwB(tqH&0hoE#O1U*QFAYlOndFz)=J~9e| zT#BP4BNEJY7m7aDBt-N)HY>X(T64f{V@3QYJf9)`19`8`opt%n*K-KGbnt=^|2*fu zxM+RD?I=Ih9+(%pJz;U*I`uYg0gOU#3T+%k(bOU4K2o zG7q6GEwendq@*$olwe9<=Xp7kbB3m6`&UA0*ZfUSH@}|cUD@y6R`VcbVpKAsbhm2i ztTBaGc$|rexoZu}e?o2CCDMNgBjLw-~UJ!Zq}SppsPdVFI_FN({lUwpBQNnx+cD)-K#?y0(L9b|p9qfl_9F8^7I z>W)_DwuOxud#hIrhp)c%bL~yRAbI^A)#;LfH`m>FS|g^^nF=zgPuzvYtCKCV^&1ZU zz7u7<$#p*nU2&t0C z{@$cYiG`jn7iD%gA9k*CsqXfQnHwg)q~B0-(P!MN!l2*!`A~Slmb8YADUrUfxXLwO z=Hvxc_IOn_D$HovTii#ch*WGV=u3GL*~j#{7>{_DYA2y?~|_=TFRC_hACbHtlT?u6YkCTmqxg-#}7L>)N(p{ zF?z$h$jLW4Xl+>>mS4AFfpKJ)uT4*hvTir*%BX>5Ow@-G}AoHjNCBZgN*$<8`n9* zpY}N3`%IUtup28-dUTKZgEG(a8^dBKhb*H%c6yeZmv4@<%6$UX#Mb&939NZWq3|14Ew;r|3Ikg_ipLlyZc}1BIxFCou{r4%ZqE2dHP#!-g&2mFN9c<5yAsKQ9rUIV{UuIP&(Q z*;Nfw258D7;h_`zCAyU+R#Eu-hj+b}z}^~nRC;dH?!ebSSo0GaqO-m!eEi>}iJP9! z^`ENT>swlL@MXZiPCizCAHI7@(UtRQ`yv`nmMCBBb$eX9=JsrlU#n;X8Tp` zTPBE@QGa2<8|(cM$mmfL%xwilv}Bd~1$%Ix)NLal_Ntq;y!vJC)snL%35&X)*`0Ij z3#{gJk-6?}+_!fqST$cdqq#gat*hRZxq@7%M1YCRfO82p|Cx6w6IPv`R<@7)UZP69l0s)Y_uf zSm}D96{VHc>PoBP4QUl?rAn)^*osiC>DJcbb*oisebk*K2nU2tyH7t(o+p`?bN>JL zJ@Y#k=F6;zpBXdMV~hs`K||FlWg>MI+Q06Dso!y7WqYX0-%P4GBm{XrXa5d@-r3{} zK_NUmIn|OHHv`oYh9HfO$iRXM3?@nqLGrKylSZ41SvVP37H$mX-mX8&<>0zdZi*xh zi8DoF*|@6Ej3pJ$Ox70WYGpcZn8HI|fKmwzm_@@WFzAgWS`f;0^0kOGm=i1u5=erB#le9bAtI2#hzJ%Te4z*xBdA!&>H2UL z9#kYZ>oUaS34w#8yXVK_fOKPX=mM3}Q+flMZY5g{xT@+k$MTx_&x3iw8H zqBF_UJW7nznsJi_CyX3>UQGs(X9?wU?S;BOUH4@$br&*{UF;}|aDm1I3xW{1Ka)<| z?J?z<^^T$Gv@oW}44BbEQa(YyK2tVfA;@fEfRf$a0~V&{BrdMIcE95_82T+uTA~(F z2)dB=>m-vGn=m*LBZ)k-7K>U$-O9xN?%slD_DoK%O!l4u$Bq@?1K8|6PMc#XIA=&s z-76Yt#xxefoJ#j~KSjuijC8Cjj(-Yn)Dih)fE?~?>6!1IY?xAG!4%Yb4CW&O zz6ePch*2Seie!8w1Vs=aiBs7pM;xKUGZ*)tLm~om0Ls2OsQshUSTuhq3#bM1=(K1i zVK!(i3f!Q{!eEmzOAhxm0?O`Hg+>y3!b}YdQ;6hnf6ai)vC>erk+f)xT1>4}Pz^yi zu0t_ICe(>V7+-)1b$m=DmhfeWID{{iNwiWib$lRFsRLqM9B6+gwUW^0*>_7x=9y9|oTS$0Vqo1;tJiUsC1DGDw?6IAEi4)<#98CJKm%ZC5I6X?tj*axnWpN$!R zZ$mj#IaC8DA&E>&zQ&A2WKnD4kL-14*50E*Ef^w;CPC&Jmse zYAsOX(m3WoAcvo6>#6M2r`qRKpXbmA3lZuA3+%sLRK>s_vP^P?daDyXCNcc z(PeZ_74YxeF_X?#>S2L;PJz20RC-Tx_eS`OgPuG3ixY$Cm?9tz+L*ybiwG1jxIh}T zF@uX15h!4Afi!4i1{W!9|M*6fn3z8niKkixv?mU~qvnXk!K!Eh13B-~wsT#=ncpqvzE> z%t*cOmruRe*ZlU9N7PG!9IYxb4uT3NK~Tvu2zu~@x^_TN9s)tv(jf@l2thtX`GOPC z5afDKt&B)6X#eV+x%%W;&%b`u>KY%jXXUi2mHzB0@l)Ar=W>pXNyy+99QR%Bdt&&# zi1Gh$n<(In8Peo(%vU1dm3XVmd_IoBcct!`$4$+4jhZsz(@AXamA^i;E&Xz#@LYwA zY#%*)FWF9>pP&1rwsn5d&HX7Ayo~q9*hZzZ;@Q6pE)S3|h1^OrZMn9{ssOJaFg9zn zmweDg_NHN*T+>PnOK!PXD>_+KVTiBqcUdplTz3ynW$9PTN2n9pL)4eAEy#I$-@KL! z?&d~S+KU|@V1{zBplRcso6RvTS+ft%Y1vm6raUa2)zZ2C(Lbw~RI;x`OqKa}Z1Wvd zeITIx{@m70he~(tvz@4P=j;z9DsO+r*449T-k3H#Vr=duep^B9;+jhh;Wl$oRYv>* zTZ#>e_dfCHvHOty-^gb!-0{ZC569VdT869`;+Ha7d2|Fc$mDV8tMhxLt;Mn882NLzDrt$tM~-nfA~r7*Td@o0-;tymF_c=8W^y!FJl(3`BoS7rBRSu2}L z{TgDt;p1PXK+xBApqR+qn*wp+GIE~+LgFWj88Q$#cey61AwOYT^Z1>;V&T1M$@gu`b2d>D{*Kch-Zgu_fb4WM2 z+4H4N7w_%&RyJE7Mf)FV_wPtj7e(G47u!*P@%F*ko&F8`ZVer^gLk^jzj_ijzT(A> zVs#9!vV7n47Eiw$W6wo~-?oOl{>`W1+hT?zXN!qI)1LW(9aFzZ6O=Zog_<(zq?u^*v#^gC5EuYEKl-A>-dlgQ<*?KY<) zlO8=dWv;v7=e3JIS+l>cIlZc8M$6R(?9AtxTdR*-hc@tHmr2>8y%W}OjGt@?PC~`3 z4`LG6`Lyj0T$N*ekm)laVZ)B0cQ)p@FaEG~uP(~m^lRS2xnpi-z&Yd9ZiG>e1S@niNsu1{p#+zCE*C2TR$Th2 z=-A!Z7fvSFd~EGA)Hl#AH9qT*vIpUCdh7w-{p0hMTVqY7DMk7~6eYSLNCIS?&3{pj)q&){VM21vgJ-Z5-ZoME>oZNiU2n zzgAN%XsowZ{pY=7dyoD+D`xxG@4FiI<|bTuXied*ev`93x@E+MjOw0@huv)@B)~zb! zR4G=gN2$oM+ExXz7Qqd@S5S(rcsO;rTK5Iqpze2)AiN+r?LGZCIVYKi_x=B$=bhiX zFkfb6R7A*7`-%1t1Pu)f4UD0#0`qr}9rgR6&x#+Y%V1q-A^|}Tqs(6xv~kmT2=a2p zViU*&MYt5fH6BV8o{DgbT!c4M%oa;L_#&~`Q#^w$;PFK;PY4TnT!B#P$&-2t*qtAa+@6YL zdR3YUA1(`Dc!PGsQyl(+PS(buzhGf*eN(1z$ zlEn3~IIfmkS6S3sgzSI-%c^336pv|DxPh1^gL_-L=es)_8mJ^uIkg_eTpph*U$o zJEpH}`&M33TvU8@ANX*eEO@go)ckh?KwYhSM0mmJY3r_R)hC$eRGn?niv>LD1M|(lomQ~Bw>9zoR#lN1w*T{)|9Jr_nl9 zz`t|LOj=v1hXv|61@3xK={d<=8{uyby6@<3P7J1Fihwj|V+I#3B2d8K0%_333@%zk zpn$;z(x8nQT(pQl0fP&qK^rr;Xc2(|1{X+!HfC_qA_4^rE|3Oo%;2I$1PT~jAPw4> z!9|M*6fn3z8niKkixv?mU~qvnXk!K!Eh13B-~wsT#tbf6M4*7d1=6668CB*zFv!`uq{tWdGst!w4&BG>ek2e&VB%;qMb}O2XAFjU8asIx(^#QTvqR(0Hwrj@a z#L}CeY`OXJOzWn{FHX1?xn&M`!1~dcwsqLfi2s(@2IsS`Ky4FruFn5K2-_wb^?*v~ zv2j|;pj#b}J=@B1zhiBHP8-)Rjk6h-@9hh>AsHXLE}M`wWy!7y6N{g0C>2exNe6xnpupOt%IcChQkk`SmI*coV@n`JdT5^wweOu+2R2tWmbg6CR6W?Kv2ACpBZ4&RSJYRgO zwKz6& zrTrh%0=~FlKjWjuG;!vuWY?gI8Y66cny7LzUh|!9`ns5uI6UHy*>HIF&j*gRj}lDaGL|Rh0eB_S0AW0P0jOU#oAtRvU9%{<{!O% z)sRo!CtdmUu4D9#FQAyDy74#M^1~bA9Ew?7){d*Sxy2RNXP-7ctUA`LL5Gx18oz2* z8Mbz-aj35bI=sI2wO8BWbL-~2*r{eUj)LyVQVjZuZz5JUwG-ME%Zrw{6xF#MZPi{m zBKW8CIvZ!VR+qDqg@?A=*2S{omlxjM|J%ND?zze1L_>q@1a_MSJL=Zvxg>9F8J1a5 zlRYMP&9{ZW6mAdyN|Us?+|O`oVBFl}&2>9h|8PEBaZk~HXp*Dd!;w(~)b;0&FRicH zEi71ad2Z$Xe{Xe*bDp==!=JrppJL1Jd8tqL4WH}2L>_&IbC;t#Qrn{z= zfckS&%bT11UCS@$>npK6&6`?`WyTjJ5{E5h^WMuzkAyD`4dpFs3W5!U-`bp{8}EIl{>a_3TJf`}*Jq)U^ekc9fyI^PSChkn LA_DjLrxg4T64|!B literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png new file mode 100644 index 0000000000000000000000000000000000000000..aba3c37b72d1ca7fbfa970230fff20cb5aeb995d GIT binary patch literal 15692 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 tTP5a9UC9>#q6w={{!J+NKpU) literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png new file mode 100644 index 0000000000000000000000000000000000000000..1af7e393a94d80ea8abc2710f6d51045d1bbea91 GIT binary patch literal 15695 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 I7#O$o|I)SQdH?_b literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_eye.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_eye.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd1af163d34a478866c64245f85e2d3c0b62c0b GIT binary patch literal 15374 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png new file mode 100644 index 0000000000000000000000000000000000000000..d24a005510229d100a54e72a9bbf822543fcae28 GIT binary patch literal 15876 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 br4Zkn0j=6`3lL!i05GpK~AG_)Q%ZSNS literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png new file mode 100644 index 0000000000000000000000000000000000000000..efc00cff6eb75e0b8bb77544dfb51bb4911c7b38 GIT binary patch literal 15745 zcmeI3d0Z3M7RLuc1yoc}peh=JCf6f zKD8F1MNsTVrG4%zQ9gdGs8q#;QbEhBTUA`@QiVR>Btf_!IBh@ubMpBlbGY|+&bjkF z=U(QYSs6KXazE!G&JYCklZ1<-@GHymb?k-z4i8)L9e#1rh0ioVP#-tT*ACiR;0Zy& zqf{~RSiE!!PmXHnG6kB1(2W`$u7)6fm{BK_FF-I#5~5UTL#a=WRZuA^MJRO!N6L`u zL`aG%JVTE}XH1QeXDpD1D5zlqXTFh#2hbpxjAGQNwFaIslxmI3!)?njOr=;Q*n&{% zcuPV`yfl&`LiGrRLl2_K89`hMH-ygQaJhlp01Au2q}Fu!U!l|#4Ab#oI4v!Wp2nu5dL_&Z2?>E2ESSZj;R>1|U5m+#G_Aqg z7UX>#F=CMGRXR+CYAKeuvLrMW3#C#miP}D`_odObCDIyN+2Isnqf7@g=?u6lCxyJt zN0+KsTbHJg!-yKuAX?0T`!T!p)1{yoYDhu5N!d2tZDPD8QfXW6F4wEkbeY@VpDdCAw?CcY(Cu8FyLkFG@e9jz+_rEA`uJl0lG@1 z;Bi8dgM(R222Cz!Av9J{U@|S3jU>^M85{~LQm7H@RLra1~it{|J4*-g!v#_pW3uRSxAH;wrV`(xyGG2-I#Gl#gwx}K5I)~@OmeXIY>R1TdXvg}z@7NFP$+sM8 zJiHh1b;+zXVDjM)#@aL6^zoLOs#C3cE{lPGV5a4_)fJrX>^k$~uHbZM*LKfXtqK#c zTC;T;2D~gMukBcf#vc+8K@f+-=J4Up!<{`MRYpV|FIM6E*I?;N4t`%&pUx9qI?n9Q z5twLow3Q0@cW$kuZ4`f4z@Jm#wg;7tMQ+;&|FF@1NB?kOFdUf#q(NwtxCjw}0umQU zgU}{%5h4NwBrcE!p-tiGfdUd2NQ2NOaS=UrdZs%y)g^x8yU* z%15G0%a_dUo4-EN>9TUqRpHpMjh7=>?3x{teWp(@1nfvL)akER^l!ekfB2#1BSnkv z6+T>2dGS@ky`$Cdjwjs9*=vXxH86aBZmH0o(Z{!U)pM-6hnLX*>ELg@YCTS;pQD&A z*cJAQvnv&HFZCMs^pIDuyxu?eoEiJ7?iSM=lGx{x!~PQO%96l4qb0Y>X7GG8>tc#d zPu*6+_1SiC&xw4kq-IBwe}cbi`L?Fb*tDuO_sehkJQ(+rc2l6AKV@yLWO>QB9zDK? zSNV7yDnC2H{>PNca>S8RaXhK$OOaiOB5CQkk)$x$926K{%-n7`k922HK`uS!!FJ}SoAFG zT~Qdd2nsc``_4ivqt0R)zb9j!APja@oJCX-g`N9jS%p4^6^*XYG_OGciTb4cIS=R-DJ9$srKz4v>)2>Qj7F}m1y&L_d1c9{;lU+vxYZ|vor zSyh)Vzvc5btP~5YST7a|?m`|DBD^W}!ime)&=vf~4W_07N!^tHRj|D7UkJ&p-;!t; zGXH^}Fv)vY&pN$%b9LdEbL;w+u9nuCu9>TcJv}M9^T_j#`|a|Pz5e4`n;=wf?LXtm z%hG44N8;9Le%lHpr!vzdyf1`kmiWKh^R68;>$k7ka6oWk@VFa?zJxXnx@{<(`sT&& z{Osb~#|HCGbJoCh5z1#nGB*qwW5^P~)1bz<#F0$PS3VW6#I&)^^*$idf&E2|3k z?2Qzx&P_mOk9hUES@{-%E2x*%54YuP>Vy$>53l;stSC|Sb2p=U3OuE|Gm-C zCD_l*+m-uzRtGdZ%6x9T{ai5cUxKg#*7tLEygnuhey4<%&fOTB=Vywwyd*7|I90rN ILgJGD18$-2E&u=k literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_mirror.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_mirror.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e7c0ccd4ee9104eda4055162511a32a4c1e240 GIT binary patch literal 15819 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..98de1eb23ee321a7af9c14c5e32eb79d2f0c7bb1 GIT binary patch literal 15717 zcmeI3Yg7|w8pj8ssGx{tt5$`^fYz$XjtKvvpYsrB2!i^_q!KxC^?6sONZ<1lR?qp|oTgN~^J8PoV->@d9; zjmM;E26ReVc%(9IwlYA)2ogC9Qv^f;4T>Z56pdPI6r=<)YDIi+EL{>F$Y59twS8LeOQUZqq&2p(BPhZth#uy!*l<@Sm9ovF zPco=&LsKbXRE=s-Ep8-yoGyL(cpa`Y#_PH%+1A}{VPa0g!rE$gIbMyX%hE8BSO~JacS$pg@+fuO4kdU}n zf!Kf|xXuu%)2T)FRTl9MAzduCtt$GcX_!`}GZ{Y@!ksPc^WB~el^{4OBG#iHlg(lB z*pVC`fsc=X=gVaK3)pNRiCx(#N0?59#in+ZgD>#ukONS5&Oz)S6@nwbD+{Ov@~D)8 zSe-$G;377lbdl!0Qc}!Ftj|ri91Gf9sa zjHq?T1v1`kxwb>B?ToT|Y&%zgD6OZNNNL>=s7eTTXl)->o3qu1{n-h$=LhWF*D%GS z+7E3gdn%i%`y@tPEN(&!XhzrN)TTg#A)^Q^2tsUp*-HLsGK84mp zO+c&#VqA!A4md*iy|(tsc72p}PSr^^y&soNd|;0Cx77-EceYOduodj?Y;AW=)nd4a z+ghztGvKnGy!K;Z3h|JDihTKe9$yG|Ztm=ez*10klmsL8uhF_H`NVzMJe@nbG*0i% z2z0a>?NbH(JGafGy_I-aAf8j;wg;7tliaou{^Fqhj{f4rU^=P@NP{${aFHSc1r#oj z25C&;B1HrWC|n>7(wM?UiU<@?xIh}DF@=j15h$Q=fiy^C3KuCNP(a}VX^_SgE>c9G zfWigRAdM+pq=-NPg$txX8dJDP5rF~<7f6FNrf`uW0tFN!(jbi~T%?FV0fh^s zK^jxIND+Yo3KvL&G^TKoA_4^zE|3OkOyMF$1PUlzAPv%(!bOS*6i~Q88l>?DaXGiY z`iE+X_x()7i+wHW;k$^J0_jSrJPd-;MnF(TCIr2FOI&}2pd>Z~H7FoRum*w#>2kh4 zGXa8n6w4$bktsJT^5@3qP91zM$kaD?X1yi9J|ST4k49GJhT{yQ|t zvf%X?>5@Gy-wzHAbqi4-(n+JoxD1?LHSub0)*W^329~>fSwWcbn^&cc%MRa4YW|<8 z`9$Nhd8M@_1x>=bITusEDO`~)DU2Ve_h9#0A=cP_g88M3Dxy_Dqk2M~(NEAaN>Z<>4;h6iy_dK+)aB&g)fkCzw&(D&kg~})O z7M111tirD!KP1f`8XJDpb!&Eoc0;u++RZS${NT%+L;1~4GWU&+`>v07l^z?p9FpIf zn)7^m)ti@2`))2>zsxN-Va`o%^~FKiT3*47V7K#Cvu>QoYl+<#9YkA^;i8^**ZkPx zsR)Yr#nPq&5aI2c`CEgluMwum3P^#v`b%4yds?-Q#Q zZi50)=`TY(NfaN&(-zx3i8r+#8`9P%0h$|U8^vdrnO>SvZ+IWd>#VyTlA z;nL{5?23n$oxYPstnGi?HL@tZS|?h#Ioy1*qAEe`O1n1a^qh5>pKUuGp5VTxGNg{x z{A$cBy353`9@O_arQkd&(Y#D-EdSWzp$!>=PrR%-wT=~W|2!>wo#nx%-KquW`67pr zucXOaCT~Aog6-QeVo0tiLEPI;gI=Q z(fb>}(KX_MXYcpV_ukb!v#>AC`;(0;&kWP55Ao9nL^&)iL+;nBcJkSgteJ`yFY~w? zKYPi!OQRD-}P$jrKiKSTOkP-iAY7|CzYUCnjM**?@f?&#~#QjCe0ghOI&+m`} zr8$TCP33whLoP{rsFoIe%DktPHA}az#y1ot$gWL1#>~7Zyz}@T_p7I46VIJpWLfFo z9JJ|a1*b=L-oyPqxBgXV%2>#%ee1d5$u9lc$9iyoaIF#7 ftWEFzHV!&+bNd&^o>w>$M;;^#4VUa5ubBUT^waVK literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png new file mode 100644 index 0000000000000000000000000000000000000000..08210b5eff4398b2ebfe2cb048f16bc00e83a85a GIT binary patch literal 15783 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png new file mode 100644 index 0000000000000000000000000000000000000000..a4be8f8f4dd8dbb7c6a5acb669f9b3dc249cae0b GIT binary patch literal 15657 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 T-523U6$HgZ#)&GXrY!v*kj=tM literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/cp_ss.png b/2024/scripts/modeling_tools/creaseplus/icons/cp_ss.png new file mode 100644 index 0000000000000000000000000000000000000000..af3603b8541744d25dbe28ca229f2d114a2b4330 GIT binary patch literal 15952 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 LNAmW~6leVb-;F_* literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/sp_crease.png b/2024/scripts/modeling_tools/creaseplus/icons/sp_crease.png new file mode 100644 index 0000000000000000000000000000000000000000..998747b2169f8ea3c33e27001a072f3818fd041a GIT binary patch literal 15956 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png b/2024/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png new file mode 100644 index 0000000000000000000000000000000000000000..1ebf087102344f5b1c6ce4e872a2671dfe954a72 GIT binary patch literal 15632 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png b/2024/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png new file mode 100644 index 0000000000000000000000000000000000000000..af77be9cdc8c48258e2c616137a67d18a4ffbfdc GIT binary patch literal 15763 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/sp_smooth.png b/2024/scripts/modeling_tools/creaseplus/icons/sp_smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..bc91bde981ddb3fa6ed74df112219ea3506eb2d4 GIT binary patch literal 15626 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 literal 0 HcmV?d00001 diff --git a/2024/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png b/2024/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cf31b8f864664e0215f6fe8717c8c6b0230d32 GIT binary patch literal 15395 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 literal 0 HcmV?d00001 diff --git a/2025/icons/springmagic.png b/2025/icons/springmagic.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b647928c924a505be59dc56815957650e1b32c GIT binary patch literal 11579 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/__init__.py b/2025/scripts/__init__.py new file mode 100644 index 0000000..a5682fb --- /dev/null +++ b/2025/scripts/__init__.py @@ -0,0 +1,2 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- \ No newline at end of file diff --git a/2025/scripts/animation_tools/springmagic/HowToInstall.txt b/2025/scripts/animation_tools/springmagic/HowToInstall.txt new file mode 100644 index 0000000..5333dd4 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/HowToInstall.txt @@ -0,0 +1,8 @@ +1. Unzip all files + +2. copy "springmagic" folder into Maya scripts path, i.e. + "C:\Users\YOUR_USER_NAME\Documents\maya\scripts" + +3. Start Maya and run command below in command bar with Python way + import springmagic + springmagic.main() \ No newline at end of file diff --git a/2025/scripts/animation_tools/springmagic/UtilityFunctions.txt b/2025/scripts/animation_tools/springmagic/UtilityFunctions.txt new file mode 100644 index 0000000..4bc7c22 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/UtilityFunctions.txt @@ -0,0 +1,57 @@ +############################################ +# Utility Functions +############################################ + +# to get object parrent +# parent = obj.getParent() + +# to get all parents of a joint +# parentList = joint.getAllParents() + +# to get root bone +# rootBone = joint.root() + +# to get object all children +# children = pm.listRelatives(obj, allDescendents = 1) + +# to make sure the selection is a mesh +# pm.nodeType(pm.ls(sl=True, type='transform')[0].getShape()) == 'mesh' + +# to get vertex in selection as flatten +# pm.ls(sl=True, type='float3', flatten=True)[0] + +# to get skin cluster +# pm.listHistory(pm.ls(sl=True), type='skinCluster')[0] + +# to get all influcent bone of a skin cluster +# obj.getInfluence() + +# About path module + +# from pymel.util.path import path +# filePath = 'c:/temp/test/myTestFile.txt' +# fpPathObj = path(filePath) +# fpPathObj +# # Result: path('c:/temp/test/myTestFile.txt') # +# fpPathObj.basename() +# # Result: 'myTestFile.txt' # +# # .name is a property which returns the same +# fpPathObj.name +# # Result: 'myTestFile.txt' # +# # namebase returns fileName only w/o extension +# fpPathObj.namebase +# # Result: 'myTestFile' # +# # return directory above file +# fpPathObj.parent +# # Result: path('c:/temp/test') # +# # check extension +# fpPathObj.endswith('txt') +# # Result: True # +# # check existance +# fpPathObj.exists() +# # Result: True # +# # check to see if folder type +# fpPathObj.parent.isdir() +# # Result: True # +# fpPathObj.parent.parent.name +# # Result: 'temp' # \ No newline at end of file diff --git a/2025/scripts/animation_tools/springmagic/__init__.py b/2025/scripts/animation_tools/springmagic/__init__.py new file mode 100644 index 0000000..2c60697 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/__init__.py @@ -0,0 +1,12 @@ +__version__ = "3.5a" + +from springmagic.main import main + + +def version(): + """ + Return the current version of the Spring Magic + + :rtype: str + """ + return __version__ diff --git a/2025/scripts/animation_tools/springmagic/core.py b/2025/scripts/animation_tools/springmagic/core.py new file mode 100644 index 0000000..792a852 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/core.py @@ -0,0 +1,976 @@ +# - * - coding: utf - 8 - * - +# PEP8 formatting + +##################################################################################### +# +# Spring Magic for Maya +# +# Calculate bone chain animation by settings, support collisions and wind force +# Can work with rigging controller as well +# +# Need pringMagic.ui file to work with +# This script need also icon file support, which should be put in same folder +# +# feel free to mail me redtank@outlook.com for any bug or issue +# +# Yanbin Bai +# 2021.02 +# +##################################################################################### + +import math +import logging +# import copy + +import pymel.core as pm +import pymel.core.datatypes as dt +import maya.cmds as cmds + +from . import decorators +from . import springMath + +from .utility import * + +from itertools import cycle +from itertools import chain +from weakref import WeakValueDictionary + +from collections import OrderedDict + +################################### +# spring magic +#################################### + +kWindObjectName = 'spring_wind' +kSpringProxySuffix = '_SpringProxy' +kCollisionPlaneSuffix = '_SpringColPlane' +kCapsuleNameSuffix = '_collision_capsule' +kNullSuffix = '_SpringNull' + + +# kTwistNullSuffix = '_SpringTwistNull' + + +class Spring: + + def __init__(self, ratio=0.5, twistRatio=0.0, tension=0.0, extend=0.0, inertia=0.0): + self.ratio = ratio + self.twist_ratio = twistRatio + self.tension = tension + self.extend = extend + self.inertia = inertia + + +class SpringMagic: + + def __init__(self, startFrame, endFrame, subDiv=1.0, isLoop=False, isPoseMatch=False, isCollision=False, + isFastMove=False, wipeSubframe=True): + self.start_frame = startFrame + self.end_frame = endFrame + + self.sub_div = subDiv + self.is_loop = isLoop + self.is_pose_match = isPoseMatch + self.is_fast_move = isFastMove + self.wipe_subframe = wipeSubframe + + self.is_collision = isCollision + self.collision_planes_list = None + + self.wind = None + + +class SpringData: + cur_position_locator = None + prev_position_locator = None + prev_grand_child_position_locator = None + + _instances = WeakValueDictionary() + + @property + def Count(self): + return len(self._instances) + + def __init__(self, springMagic, spring, transform, child, grand_child, grand_parent): + # self.current_child_position + + self._instances[id(self)] = self + + self.springMagic = springMagic + self.spring = spring + + self.parent = transform + self.child = child + self.grand_child = grand_child + self.grand_parent = grand_parent + + self.child_position = get_translation(child) + self.grand_child_position = get_translation(grand_child) if grand_child else None + + self.previous_child_position = self.child_position + + self.rotation = get_rotation(transform) + self.up_vector = get_matrix(transform)[4:7] + + transform_pos = get_translation(transform) + self.bone_length = springMath.distance(transform_pos, self.child_position) + + self.has_child_collide = False + self.has_plane_collide = False + + # create temporary locators use for aim constraint + if not SpringData.cur_position_locator: + SpringData.cur_position_locator = pm.spaceLocator(name='cur_position_locator') + + if not SpringData.prev_position_locator: + SpringData.prev_position_locator = pm.spaceLocator(name='prev_position_locator') + + if not SpringData.prev_grand_child_position_locator: + SpringData.prev_grand_child_position_locator = pm.spaceLocator(name='prev_grand_child_position_locator') + + # Weight attribute to de/activate the aim constraint in pose match mode + self.pairblend_weight_attribute = None + self.aim_constraint = None + + self.__create_child_proxy() + self.__prepare_animation_key() + self.__create_aim_constraint() + self.__init_pairblend_weight() + + def __del__(self): + + if self.Count == 0: + # print('Last Counter object deleted') + + # delete temporary locators (useful, it's delete constraints at the same time) + pm.delete(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator) + + SpringData.cur_position_locator = None + SpringData.prev_position_locator = None + SpringData.prev_grand_child_position_locator = None + + # remove all spring nulls, add recursive incase name spaces + # pm.delete(pm.ls('*' + kNullSuffix + '*', recursive=1)) + else: + # print(self.Count, 'Counter objects remaining') + pass + + if self.child_proxy: + # remove spring nulls, add recursive incase name spaces + pm.delete(pm.ls('*' + self.child_proxy + '*', recursive=1)) + + def update(self, has_collision, has_hit_plane, child_pos_corrected): + # Update current transform with the new values + self.child_position = get_translation(self.child) + self.grand_child_position = get_translation(self.grand_child) if self.grand_child else None + self.previous_child_position = child_pos_corrected + + self.rotation = get_rotation(self.parent) + self.up_vector = get_matrix(self.parent)[4:7] + + self.has_child_collide = has_collision + self.has_plane_collide = has_hit_plane + + def __create_child_proxy(self): + # create a null at child pos, then parent to obj parent for calculation + child_proxy_locator_name = self.parent.name() + kNullSuffix + child_proxy_list = pm.ls(child_proxy_locator_name) + + if not child_proxy_list: + self.child_proxy = pm.spaceLocator(name=child_proxy_locator_name) + else: + self.child_proxy = child_proxy_list[0] + + self.child_proxy.getShape().setAttr('visibility', False) + + pm.parent(self.child_proxy, self.parent.getParent()) + # pm.parent(child_proxy, self.grand_parent) + + if not self.springMagic.is_pose_match: + self.child_proxy.setTranslation(self.child.getTranslation(space='world'), space='world') + self.child_proxy.setRotation(self.child.getRotation(space='world'), space='world') + + def __prepare_animation_key(self): + if not self.springMagic.is_pose_match: + # remove exists keys + pm.cutKey(self.parent, time=(self.springMagic.start_frame, self.springMagic.end_frame + 0.99999)) + pm.cutKey(self.child, time=(self.springMagic.start_frame, self.springMagic.end_frame + 0.99999)) + + # set key + pm.setKeyframe(self.parent, attribute='rotate') + + if self.spring.extend != 0.0: + pm.setKeyframe(self.child, attribute='tx') + + def __create_aim_constraint(self): + # Create a constraint per transform to speed up computation, not active yet (weight=0) + self.aim_constraint = pm.aimConstraint(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator, self.parent, + aimVector=[1, 0, 0], upVector=[0, 1, 0], maintainOffset=False, weight=0) + + def __init_pairblend_weight(self): + # if transform rotation has no animation, set a key at start frame to force the creation of a pairblend when the aim constraint is created + for rotation_input in ['rx', 'ry', 'rz']: + rotation_connection = pm.listConnections(self.parent + '.' + rotation_input, d=False, s=True) + + if not rotation_connection: + pm.setKeyframe(self.parent, attribute=rotation_input) + + pairblends = pm.listConnections(self.parent, type="pairBlend", destination=True, skipConversionNodes=True) + + # Find the pairblend connected to the aim constraint + for pairblend in pairblends: + + connected_constraint_list = cmds.listConnections(pairblend.name(), type='constraint', destination=False) + + if self.aim_constraint.name() in connected_constraint_list: + + # Get pairblend weight connected attribute + # return [u'joint2.blendAim1')] + weight_attribute_list = cmds.listConnections(pairblend + '.weight', d=False, s=True, p=True) + + if weight_attribute_list: + self.pairblend_weight_attribute = weight_attribute_list[0] + + def set_pairblend_weight(self, blend_value): + if self.pairblend_weight_attribute: + pm.setAttr(self.pairblend_weight_attribute, blend_value) + + def keyframe_child_proxy(self): + + if self.child_proxy: + # Deactivate pairblend weight + # Aim constraint weight set to 0 is not enough, it paratizes the process + self.set_pairblend_weight(0.0) + + self.child_proxy.setTranslation(self.child.getTranslation(space='world'), space='world') + pm.setKeyframe(self.child_proxy, attribute='translate') + self.child_proxy.setRotation(self.child.getRotation(space='world'), space='world') + pm.setKeyframe(self.child_proxy, attribute='rotate') + + self.set_pairblend_weight(1.0) + + def apply_inertia(self, currentChildPosition): + ratio = self.spring.ratio / self.springMagic.sub_div + inertia_offset = [0.0, 0.0, 0.0] + + if self.spring.inertia > 0.0: + bone_ref_loc_offset_dir = currentChildPosition - self.child_position + bone_ref_loc_offset_distance = ( + (bone_ref_loc_offset_dir) * (1 - ratio) * (1 - self.spring.inertia)).length() + + inertia_offset = bone_ref_loc_offset_dir.normal() * ( + bone_ref_loc_offset_distance / self.springMagic.sub_div) + + # apply mass + force_direction = self.child_position - self.previous_child_position + force_distance = force_direction.length() * self.spring.inertia + + # offset position + inertia_offset += force_direction.normal() * (force_distance / self.springMagic.sub_div) + + return inertia_offset + + def apply_wind(self, frame): + wind_offset = [0.0, 0.0, 0.0] + + if self.springMagic.wind: + wind_max_force = self.springMagic.wind.getAttr('MaxForce') + wind_min_force = self.springMagic.wind.getAttr('MinForce') + wind_frequency = self.springMagic.wind.getAttr('Frequency') + + mid_force = (wind_max_force + wind_min_force) / 2 + + # get source x - axis direction in world space + wind_direction = get_matrix(self.springMagic.wind)[:3] + # sDirection = sObj.getMatrix()[0][:3] + wind_direction = dt.Vector(wind_direction[0], wind_direction[1], wind_direction[2]).normal() + wind_distance = math.sin(frame * wind_frequency) * (wind_max_force - wind_min_force) + mid_force + + # offset position + wind_offset = wind_direction.normal() * wind_distance + + return wind_offset + + def detect_collision(self, new_obj_pos, new_child_pos, capsule_list): + col_pre = col_cur = None + + child_pos_corrected = self.child_position + + if self.springMagic.is_collision and capsule_list: + + if preCheckCollision(new_obj_pos, self.bone_length, capsule_list): + + # check collision from previous pos to cur pos + col_pre, col_body_pre, hitCylinder_pre = springMath.checkCollision(new_child_pos, self.child_position, + capsule_list, True) + + # check collision from cur pos to previous pos + col_cur, col_body_cur, hitCylinder_cur = springMath.checkCollision(new_child_pos, self.child_position, + capsule_list, False) + + if col_pre and (col_cur is None): + new_child_pos = col_pre + elif col_cur and (col_pre is None): + child_pos_corrected = col_cur + elif col_pre and col_cur: + + # move cur child pose to closest out point if both pre and cur pos are already inside of col body + # if distance(col_pre, new_child_pos) < distance(col_cur, new_child_pos): + mid_point = (self.child_position + new_child_pos) / 2 + + if springMath.distance(col_pre, mid_point) < springMath.distance(col_cur, mid_point): + new_child_pos = col_pre + else: + new_child_pos = col_cur + + if self.springMagic.is_fast_move: + child_pos_corrected = new_child_pos + + # # draw debug locator + # if col_pre and col_cur: + # locator1 = pm.spaceLocator(name=obj.name() + '_col_pre_locator_' + str(i)) + # locator1.setTranslation(col_pre) + # locator1 = pm.spaceLocator(name=obj.name() + '_col_cur_locator_' + str(i)) + # locator1.setTranslation(col_cur) + + return True if col_pre or col_cur else False, new_child_pos, child_pos_corrected + + def detect_plane_hit(self, new_obj_pos, new_child_pos, grand_parent_has_plane_collision): + has_hit_plane = False + + if self.springMagic.is_collision and self.springMagic.collision_planes_list[0]: + collision_plane = self.springMagic.collision_planes_list[0] + has_plane_collision = springMath.checkPlaneCollision(new_obj_pos, new_child_pos, collision_plane) + + if has_plane_collision or grand_parent_has_plane_collision: + new_child_pos = repeatMoveToPlane(self.parent, new_child_pos, self.child, collision_plane, 3) + has_hit_plane = True + + return has_hit_plane, new_child_pos + + # calculate upvector by interpolation y axis for twist + def compute_up_vector(self): + twist_ratio = self.spring.twist_ratio / self.springMagic.sub_div + + cur_obj_yAxis = get_matrix(self.child_proxy)[4:7] + prev_up_vector = dt.Vector(self.up_vector[0], self.up_vector[1], self.up_vector[2]).normal() + cur_up_vector = dt.Vector(cur_obj_yAxis[0], cur_obj_yAxis[1], cur_obj_yAxis[2]).normal() + + up_vector = (prev_up_vector * (1 - twist_ratio)) + (cur_up_vector * twist_ratio) + + return up_vector + + def aim_by_ratio(self, upVector, newChildPos, childPosCorrected): + ratio = self.spring.ratio / self.springMagic.sub_div + tension = self.spring.tension / (1.0 / (springMath.sigmoid(1 - self.springMagic.sub_div) + 0.5)) + + # print("obj: " + str(self.parent.name())) + # print("newChildPos: " + str(newChildPos)) + # print("childPosCorrected: " + str(childPosCorrected)) + # print("grand_child_position: " + str(self.grand_child_position)) + # print("upVector: " + str(upVector)) + # print("ratio: " + str(ratio)) + # print("tension: " + str(tension)) + + SpringData.cur_position_locator.setTranslation(newChildPos) + SpringData.prev_position_locator.setTranslation(childPosCorrected) + + pm.aimConstraint(self.parent, e=True, worldUpVector=upVector) + + pm.aimConstraint(SpringData.cur_position_locator, self.parent, e=True, w=ratio) + pm.aimConstraint(SpringData.prev_position_locator, self.parent, e=True, w=1 - ratio) + + if self.has_child_collide and self.grand_child_position and tension != 0: + SpringData.prev_grand_child_position_locator.setTranslation(self.grand_child_position) + pm.aimConstraint(SpringData.prev_grand_child_position_locator, self.parent, e=True, w=(1 - ratio) * tension) + + pm.setKeyframe(self.parent, attribute='rotate') + + pm.aimConstraint(SpringData.cur_position_locator, SpringData.prev_position_locator, + SpringData.prev_grand_child_position_locator, self.parent, e=True, w=0.0) + + def extend_bone(self, childPosCorrected): + if self.spring.extend != 0.0: + child_translation = self.child.getTranslation() + # get length between bone pos and child pos + x2 = (childPosCorrected - get_translation(self.parent)).length() + x3 = (self.bone_length * (1 - self.spring.extend)) + (x2 * self.spring.extend) + self.child.setTranslation([x3, child_translation[1], child_translation[2]]) + pm.setKeyframe(self.child, attribute='tx') + # else: + # self.child.setTranslation([self.bone_length, child_translation[1], child_translation[2]]) + + +def createCollisionPlane(): + # remove exist plane + collision_plane = get_node('*' + kCollisionPlaneSuffix + '*') + + if collision_plane: + pm.delete(collision_plane) + + collision_plane = pm.polyPlane(name="the" + kCollisionPlaneSuffix, sx=1, sy=1, w=10, h=10, ch=1)[0] + + # one side display + pm.setAttr(collision_plane.doubleSided, False) + + # lock scale + pm.setAttr(collision_plane.sx, lock=True) + pm.setAttr(collision_plane.sy, lock=True) + pm.setAttr(collision_plane.sz, lock=True) + + pm.select(collision_plane) + + +def removeBody(clear=False): + cylinder_list = getCapsule(clear) + + pm.delete(cylinder_list) + + collision_plane = get_node('*' + kCollisionPlaneSuffix + '*') + + if collision_plane: + pm.delete(collision_plane) + + +def addWindObj(): + windCone = pm.cone(name=kWindObjectName)[0] + + windCone.setScale([5, 5, 5]) + + pm.delete(windCone, constructionHistory=1) + + # add wind attr + pm.addAttr(windCone, longName='MaxForce', attributeType='float') + pm.setAttr(windCone.name() + '.MaxForce', 1, e=1, keyable=1) + pm.addAttr(windCone, longName='MinForce', attributeType='float') + pm.setAttr(windCone.name() + '.MinForce', 0.5, e=1, keyable=1) + pm.addAttr(windCone, longName='Frequency', attributeType='float') + pm.setAttr(windCone.name() + '.Frequency', 1, e=1, keyable=1) + # pm.addAttr(windCone, longName='Wave', attributeType='float') + # pm.setAttr(windCone.name() + '.Wave', 0.5, e=1, keyable=1) + + setWireShading(windCone, False) + + pm.makeIdentity(apply=True) + windCone.setRotation([0, 0, 90]) + + +def bindControls(linked_chains=False): + selected_ctrls = pm.ls(sl=True) + pm.select(clear=True) + + # The chains are linked, we can sort them + if linked_chains: + # Create list for every ctrls chains + # ie [[ctrl1, ctrl1.1, ctrl1.2], [ctrl2, ctrl2.1, ctrl2.2, ctrl2.3]] + all_ctrls_descendants_list = pm.listRelatives(selected_ctrls, allDescendents=True) + top_hierarchy_ctrls_list = [x for x in selected_ctrls if x not in all_ctrls_descendants_list] + + ctrls_chains_list = [[x] + [y for y in pm.listRelatives(x, allDescendents=True) if y in selected_ctrls][::-1] + for x in top_hierarchy_ctrls_list] + # No sorting possible because the controlers have no lineage + else: + ctrls_chains_list = [selected_ctrls] + + proxy_joint_chain_list = [] + + for ctrls_list in ctrls_chains_list: + + proxy_joint_list = [] + + for ctrl in ctrls_list: + # create proxy joint in ctrl world position + ctrl_position = pm.xform(ctrl, worldSpace=1, rp=1, q=1) + + proxyJoint = pm.joint(name=ctrl.name() + kSpringProxySuffix, position=ctrl_position, radius=0.2, roo='xyz') + proxy_joint_list.append(proxyJoint) + + for joint in proxy_joint_list: + # set joint orientation + pm.joint(joint, edit=1, orientJoint='xyz', zeroScaleOrient=True) + + # Straight bones alignment + joint.setRotation([0, 0, 0]) + joint.setAttr('rotateAxis', [0, 0, 0]) + joint.setAttr('jointOrient', [0, 0, 0]) + + # Free rotation (move rotation values to joint orient values) + # pm.makeIdentity(proxy_joint_list[idx], apply=True, t=False, r=True, s=False, pn=True) + + if proxy_joint_list: + # parent root proxy joint to control parent + pm.parent(proxy_joint_list[0], ctrls_list[0].getParent()) + + # Necessary to start a new joint chain + pm.select(clear=True) + + proxy_joint_chain_list += [proxy_joint_list] + + for idx, joint in enumerate(proxy_joint_list[:-1]): + # orient joint chain + cns = pm.aimConstraint(ctrls_list[idx + 1], proxy_joint_list[idx], aimVector=[1, 0, 0], upVector=[0, 0, 0], + worldUpVector=[0, 1, 0], skip='x') + pm.delete(cns) + + for idx, joint in enumerate(proxy_joint_list): + pm.parentConstraint(proxy_joint_list[idx], ctrls_list[idx], maintainOffset=True) + + pm.select(proxy_joint_chain_list) + + +def clearBind(startFrame, endFrame): + proxyJointLst = pm.ls(sl=True) + pm.select(d=True) + + ctrlList = [] + + for bone in proxyJointLst: + ctrl = pm.ls(bone.name().split(kSpringProxySuffix)[0])[0] + ctrlList.append(ctrl) + + if ctrlList: + pm.bakeResults(*ctrlList, t=(startFrame, endFrame)) + + pm.delete(proxyJointLst) + + +def bindPose(): + pm.runtime.GoToBindPose() + + +# Prepare all information to call SpringMagicMaya function +def startCompute(spring, springMagic, progression_callback=None): + autokeyframe_state = cmds.autoKeyframe(query=True, state=True) + cmds.autoKeyframe(state=False) + + # get selection obj + objs = pm.ls(sl=True) + + # check objects validity + for obj in objs: + # has duplicate name obj + nameCntErr = (len(pm.ls(obj.name())) > 1) + + # is a duplicate obj + nameValidErr = (obj.name().find('|') > 0) + + if nameCntErr or nameValidErr: + raise ValueError(obj.name() + ' has duplicate name object! Stopped!') + + obj_translation = obj.getTranslation() + + if (obj_translation[0] < 0 or abs(obj_translation[1]) > 0.001 or abs( + obj_translation[2]) > 0.001) and obj.getParent() and (obj.getParent() in objs): + pm.warning(obj.getParent().name() + "'s X axis not point to child! May get broken result!") + + # Search for collision objects + if springMagic.is_collision: + springMagic.collision_planes_list = [get_node('*' + kCollisionPlaneSuffix + '*')] + + # Search for a wind object + if pm.ls(kWindObjectName): + springMagic.wind = pm.ls(kWindObjectName)[0] + + SpringMagicMaya(objs, spring, springMagic, progression_callback) + + cmds.autoKeyframe(state=autokeyframe_state) + + +# @decorators.viewportOff +@decorators.gShowProgress(status="SpringMagic does his magic") +def SpringMagicMaya(objs, spring, springMagic, progression_callback=None): + # on each frame go through all objs and do: + # 1. make a vectorA from current obj position to previous child position + # 2. make a vectorB from current obj position to current child position + # 3. calculate the angle between two vectors + # 4. rotate the obj towards vectorA base on spring value + + start_frame = springMagic.start_frame + end_frame = springMagic.end_frame + sub_div = springMagic.sub_div + + # remove all spring nulls, add recursive incase name spaces + pm.delete(pm.ls('*' + kNullSuffix + '*', recursive=True)) + + # get all capsules in scene + capsule_list = getCapsule(True) if springMagic.is_collision else None + + if progression_callback: + progression_callback(0) + + # Save object previous frame information in a ordered dict + spring_data_dict = OrderedDict() + + # Initialize data on the first frame + pm.currentTime(start_frame, edit=True) + + # Create a list of objects chains + # ie [[nt.Joint(u'joint1'), nt.Joint(u'joint2'), nt.Joint(u'joint4')], [nt.Joint(u'joint7'), nt.Joint(u'joint8'), nt.Joint(u'joint10')]] + all_joints_descendants_list = pm.listRelatives(objs, allDescendents=True, type='transform') + top_hierarchy_joints_list = [x for x in objs if x not in all_joints_descendants_list] + + # transforms_chains_list = map(lambda x: [x] + [y for y in pm.listRelatives(x, allDescendents=True) if y in objs][::-1], top_hierarchy_joints_list) + + # Deal with the specific case of root bone with no parent. + # The root bone is considered the driver, so we remove it from the calculation. + transforms_chains_list = [ + ([x] if x.getParent() else []) + [y for y in pm.listRelatives(x, allDescendents=True) if y in objs][::-1] for x + in top_hierarchy_joints_list] + + # Remove empty lists + transforms_chains_list = [x for x in transforms_chains_list if x != []] + + # Create progression bar generator values + number_of_progession_step = 0 + + if springMagic.is_pose_match: + number_of_progession_step += end_frame - start_frame + 1 + + if springMagic.is_loop: + # Doesn't process the first frame on the first loop + number_of_progession_step += ((end_frame - start_frame) * 2 + 1) * sub_div + else: + # Doesn't process the first frame + number_of_progession_step += (end_frame - start_frame) * sub_div + + progression_increment = 100.0 / number_of_progession_step + progression_generator = frange(progression_increment, 100.0 + progression_increment, progression_increment) + + # Create spring data for each transforms at start frame + for transforms_chain in transforms_chains_list: + + if SpringMagicMaya.isInterrupted(): + break + + transforms_cycle = cycle(transforms_chain) + + # Prime the pump + parent = first_transform = next(transforms_cycle) + grand_parent = parent.getParent() + child = next(transforms_cycle) + grand_child = next(transforms_cycle) + + # skip end bone + for transform in transforms_chain[:-1]: + + if SpringMagicMaya.isInterrupted(): + break + + # End of cycle iteration + if grand_child == first_transform: + grand_child = None + + spring_data_dict[parent.name()] = SpringData(springMagic, spring, parent, child, grand_child, grand_parent) + + grand_parent, parent, child, grand_child = parent, child, grand_child, next(transforms_cycle) + + # Save joints position over timeline + # Parse timeline just one time + if springMagic.is_pose_match: + for frame in range(0, end_frame - start_frame + 1): + + if SpringMagicMaya.isInterrupted(): + break + + pm.currentTime(start_frame + frame, edit=True) + + for spring_data in list(spring_data_dict.values()): + + if not SpringMagicMaya.isInterrupted(): + spring_data.keyframe_child_proxy() + + progression = next(progression_generator) + progression = clamp(progression, 0, 100) + + if progression_callback: + progression_callback(progression) + + SpringMagicMaya.progress(progression) + + # Generate frame index + # Skip first frame on first calculation pass + frame_increment = 1.0 / sub_div + frame_generator = frange(frame_increment, end_frame - start_frame + frame_increment, frame_increment) + + # On second calculation pass compute first frame + if springMagic.is_loop: + frame_generator = chain(frame_generator, frange(0, end_frame - start_frame + frame_increment, frame_increment)) + + for frame in frame_generator: + + # print('Frame: ' + str(frame)) + + if SpringMagicMaya.isInterrupted(): + break + + pm.currentTime(start_frame + frame, edit=True) + + for previous_frame_spring_data in list(spring_data_dict.values()): + + if SpringMagicMaya.isInterrupted(): + break + + grand_parent_spring_data = None + if previous_frame_spring_data.grand_parent and previous_frame_spring_data.grand_parent.name() in list( + spring_data_dict.keys()): + grand_parent_spring_data = spring_data_dict[previous_frame_spring_data.grand_parent.name()] + + # get current position of parent and child + parent_pos = get_translation(previous_frame_spring_data.parent) + + # print("obj: " + str(previous_frame_spring_data.parent.name())) + + new_child_pos = get_translation(previous_frame_spring_data.child_proxy) + + # Apply inertia + new_child_pos += previous_frame_spring_data.apply_inertia(new_child_pos) + + # apply wind + new_child_pos += previous_frame_spring_data.apply_wind(start_frame + frame) + + # detect collision + has_collision, new_child_pos, child_pos_corrected = previous_frame_spring_data.detect_collision(parent_pos, + new_child_pos, + capsule_list) + + # detect plane collision + grand_parent_has_plane_collision = False + if grand_parent_spring_data: + grand_parent_has_plane_collision = grand_parent_spring_data.has_plane_collide + + has_hit_plane, new_child_pos = previous_frame_spring_data.detect_plane_hit(parent_pos, new_child_pos, + grand_parent_has_plane_collision) + + # calculate upvector by interpolation y axis for twist + up_vector = previous_frame_spring_data.compute_up_vector() + + # apply aim constraint to do actual rotation + previous_frame_spring_data.aim_by_ratio(up_vector, new_child_pos, child_pos_corrected) + + # Extend bone if needed (update child translation) + previous_frame_spring_data.extend_bone(child_pos_corrected) + + # Update current transform with the new values + previous_frame_spring_data.update(has_collision, has_hit_plane, child_pos_corrected) + + # Update the grand parent has_child_collide value + if grand_parent_spring_data: + grand_parent_spring_data.has_child_collide = has_collision + + progression = next(progression_generator) + progression = clamp(progression, 0, 100) + + if progression_callback: + progression_callback(progression) + + SpringMagicMaya.progress(progression) + + # bake result on frame + if springMagic.wipe_subframe and not SpringMagicMaya.isInterrupted(): + transform_to_bake_list = [spring_data.parent for spring_data in list(spring_data_dict.values())] + + # Deactivate all pairblend otherwise bake doesn't work with animation layers + for spring_data in list(spring_data_dict.values()): + spring_data.set_pairblend_weight(0.0) + + bakeAnim(transform_to_bake_list, start_frame, end_frame) + + +def bakeAnim(objList, startFrame, endFrame): + pm.bakeResults( + objList, + t=(startFrame, endFrame), + sampleBy=1, + disableImplicitControl=False, + preserveOutsideKeys=True, + sparseAnimCurveBake=False, + removeBakedAttributeFromLayer=False, + bakeOnOverrideLayer=False, + minimizeRotation=True, + shape=False, + simulation=False) + + +SM_boneTransformDict = {} + + +def copyBonePose(): + global SM_boneTransformDict + + for obj in pm.ls(sl=True): + SM_boneTransformDict[obj] = [obj.getTranslation(), obj.getRotation()] + + +def pasteBonePose(): + global SM_boneTransformDict + + for obj in pm.ls(sl=True): + if obj in list(SM_boneTransformDict.keys()): + logging.debug(SM_boneTransformDict[obj][0]) + + obj.setTranslation(SM_boneTransformDict[obj][0]) + obj.setRotation(SM_boneTransformDict[obj][1]) + + +def preCheckCollision(objPos, objLength, capsuleList): + # print('objPos:' + str(objPos)) + # print('objLength:' + str(objLength)) + + # pre check bone length compare with collision body radius + # will improve performance if bone is far from capsule + for capsule in capsuleList: + capsule_children_list = pm.listRelatives(capsule, children=1, type='transform') + + p = capsule_children_list[0].getTranslation(space='world') + q = capsule_children_list[1].getTranslation(space='world') + r = capsule.getAttr('scaleZ') + + bone_to_capsule_distance = springMath.dist_to_line(p, q, objPos) + + # print('p:' + str(p)) + # print('q:' + str(q)) + # print('r:' + str(r)) + # print('boneToCapsuleDistance:' + str(bone_to_capsule_distance)) + + # means close enough to have a hit change + if bone_to_capsule_distance < objLength + r: + return True + + return False + + +def repeatMoveToPlane(obj, objPos, objTarget, colPlane, times): + # Y axis direction of plane + n = dt.Vector(get_matrix(colPlane)[4:7]) + q = get_translation(colPlane) + d = n.dot(q) + + # for i in range(times): + # pt = objPos + # obj.setTranslation(proj_pt_to_plane(pt, n, d), space='world') + # if (i + 1) != times: + # obj.setTranslation(get_translation(objTarget), space='world') + pt = objPos + outPos = springMath.proj_pt_to_plane(pt, n, d) + + return outPos + + +def setWireShading(obj, tmp): + obj.getShape().overrideEnabled.set(True) + obj.getShape().overrideShading.set(False) + + if tmp: + obj.getShape().overrideDisplayType.set(1) + + +def addCapsuleSphereConstraint(sphereObj): + # create a locator and make sphere follow it + locator = pm.spaceLocator(name=sphereObj.name() + '_locator' + kCapsuleNameSuffix) + + locator.setTranslation(sphereObj.getTranslation()) + locator.setRotation(sphereObj.getRotation()) + locator.getShape().setAttr('visibility', False) + + pm.parentConstraint(locator, sphereObj) + + return locator + + +def createCapsuleGeometry(size): + # create geometry + cylinder, cylinder_history = pm.cylinder(radius=size, sections=8, heightRatio=3) + pm.rename(cylinder.name(), cylinder.name() + kCapsuleNameSuffix) + + sphereA, sphereA_history = pm.sphere(radius=size, endSweep=180, sections=4) + pm.rename(sphereA.name(), sphereA.name() + kCapsuleNameSuffix) + + sphereB, sphereB_history = pm.sphere(radius=size, endSweep=180, sections=4) + pm.rename(sphereB.name(), sphereB.name() + kCapsuleNameSuffix) + + # set to wireframe shader + setWireShading(cylinder, False) + setWireShading(sphereA, True) + setWireShading(sphereB, True) + + # build a capsule with geometry + cylinder.setAttr('rotateZ', 90) + sphereA.setAttr('translateY', -1.5 * size) + sphereB.setAttr('rotateZ', 180) + sphereB.setAttr('translateY', 1.5 * size) + + # add constrain + locatorA = addCapsuleSphereConstraint(sphereA) + locatorB = addCapsuleSphereConstraint(sphereB) + + pm.parent(locatorA, cylinder) + pm.parent(locatorB, cylinder) + + pm.parent(sphereA, cylinder) + pm.parent(sphereB, cylinder) + + sphereA.setAttr('inheritsTransform', False) + sphereB.setAttr('inheritsTransform', False) + + pm.connectAttr(cylinder.scaleY, (sphereA_history.name() + '.radius')) + pm.connectAttr(cylinder.scaleY, (sphereB_history.name() + '.radius')) + pm.connectAttr(cylinder.scaleY, cylinder.scaleZ) + + return cylinder + + +def getCapsule(getAll): + if getAll: + nurbsTransLst = pm.ls(type='transform') + else: + nurbsTransLst = pm.ls(sl=True) + + nurbsSurfaceLst = [] + for obj in nurbsTransLst: + if obj.getShape() and (pm.nodeType(obj.getShape()) == 'nurbsSurface'): + nurbsSurfaceLst.append(obj) + + cylinderLst = [] + for obj in nurbsTransLst: + if 'ylinder' in obj.name() and kCapsuleNameSuffix in obj.name(): + cylinderLst.append(obj) + + return cylinderLst + + +def addCapsuleBody(): + # create capsule body for collision + # place capsule at ori point of nothing selected in scene + # place capsule match with object position and rotation if select scene object + collisionBoneList = [] + objs = pm.ls(sl=True) + + for obj in objs: + children = pm.listRelatives(obj, children=1) + + # only add capsule to the obj which has child + if children: + collisionBoneList.append([obj, children[0]]) + + if collisionBoneList: + for couple in collisionBoneList: + baseBone = couple[0] + endBone = couple[1] + capsule = createCapsuleGeometry(1) + + pm.parent(capsule, baseBone) + # match capsule to bone + endBoneTrans = endBone.getTranslation() + capsule.setTranslation(endBoneTrans * 0.5) + capsule.setAttr('scaleX', endBoneTrans[0] / 3) + capsule.setAttr('scaleY', endBoneTrans[0] / 3) + cns = pm.aimConstraint(endBone, capsule, aimVector=[1, 0, 0]) + pm.delete(cns) + + else: + capsule = createCapsuleGeometry(1) + capsule.setAttr('scaleX', 10) + capsule.setAttr('scaleY', 10) + pm.select(clear=1) diff --git a/2025/scripts/animation_tools/springmagic/decorators.py b/2025/scripts/animation_tools/springmagic/decorators.py new file mode 100644 index 0000000..143d23b --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/decorators.py @@ -0,0 +1,121 @@ +import maya.mel as mel +import maya.cmds as cmds + +from functools import wraps + + +# ----------------------------------------------------------------------------- +# Decorators +# ----------------------------------------------------------------------------- +def viewportOff(func): + """ + Decorator - turn off Maya display while func is running. + if func will fail, the error will be raised after. + """ + @wraps(func) + def wrap(*args, **kwargs): + + # Turn $gMainPane Off: + mel.eval("paneLayout -e -manage false $gMainPane") + + # Decorator will try/except running the function. + # But it will always turn on the viewport at the end. + # In case the function failed, it will prevent leaving maya viewport off. + try: + return func(*args, **kwargs) + except Exception: + raise # will raise original error + finally: + mel.eval("paneLayout -e -manage true $gMainPane") + + return wrap + + +class gShowProgress(object): + """ + Function decorator to show the user (progress) feedback. + @usage + + import time + @gShowProgress(end=10) + def createCubes(): + for i in range(10): + time.sleep(1) + if createCubes.isInterrupted(): break + iCube = cmds.polyCube(w=1,h=1,d=1) + cmds.move(i,i*.2,0,iCube) + createCubes.step() + """ + + def __init__(self, status='Busy...', start=0, end=100, interruptable=True): + import maya.mel + + self.mStartValue = start + self.mEndValue = end + self.mStatus = status + self.mInterruptable = interruptable + self.mMainProgressBar = maya.mel.eval('$tmp = $gMainProgressBar') + + def step(self, inValue=1): + """Increase step + @param inValue (int) Step value""" + cmds.progressBar(self.mMainProgressBar, edit=True, step=inValue) + + def progress(self, inValue): + """Set progression value + @param inValue (int) Progress value""" + cmds.progressBar(self.mMainProgressBar, edit=True, progress=inValue) + + def isInterrupted(self): + """Check if the user has interrupted the progress + @return (boolean)""" + return cmds.progressBar(self.mMainProgressBar, query=True, isCancelled=True) + + def start(self): + """Start progress""" + cmds.waitCursor(state=True) + cmds.progressBar( + self.mMainProgressBar, + edit=True, + beginProgress=True, + isInterruptable=self.mInterruptable, + status=self.mStatus, + minValue=self.mStartValue, + maxValue=self.mEndValue) + cmds.refresh() + + def end(self): + """Mark the progress as ended""" + cmds.progressBar(self.mMainProgressBar, edit=True, endProgress=True) + cmds.waitCursor(state=False) + + def __call__(self, inFunction): + """ + Override call method + @param inFunction (function) Original function + @return (function) Wrapped function + @description + If there are decorator arguments, __call__() is only called once, + as part of the decoration process! You can only give it a single argument, + which is the function object. + """ + def wrapped_f(*args, **kwargs): + # Start progress + self.start() + # Call original function + inFunction(*args, **kwargs) + # End progress + self.end() + + # Add special methods to the wrapped function + wrapped_f.step = self.step + wrapped_f.progress = self.progress + wrapped_f.isInterrupted = self.isInterrupted + + # Copy over attributes + wrapped_f.__doc__ = inFunction.__doc__ + wrapped_f.__name__ = inFunction.__name__ + wrapped_f.__module__ = inFunction.__module__ + + # Return wrapped function + return wrapped_f diff --git a/2025/scripts/animation_tools/springmagic/history.txt b/2025/scripts/animation_tools/springmagic/history.txt new file mode 100644 index 0000000..74c3ccf --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/history.txt @@ -0,0 +1,75 @@ +##################################################################################### +# +# Spring Magic for Maya +# +# Calculate bone chain animation by settings, support collisions and wind force +# Can work with rigging controller as well +# +# Need pringMagic.ui file to work with +# This script need also icon file support, which should be put in same folder +# +# feel free to mail me redtank@outlook.com for any bug or issue +# +# Yanbin Bai +# 2021.02 +# +##################################################################################### + +3.5a +- Fix bug tension calculation introduced in the 3.5 (Benoit Degand) +- Fix bug inertia calculation introduced in the 3.5 (Benoit Degand) +- Clarify code splitting source code in class and methods (Benoit Degand) + +3.5 +- Apply PEP8 coding format (Benoit Degand) +- Add possiblity to cancel the operation (Esc) (Benoit Degand) +- Increase speed (x2), avoiding locators and aim constraints intensive creation/deletion (Benoit Degand) +- Fragment source code in several files (Benoit Degand) +- Pose Match default off + +3.4b +- fix collision bug + +3.4a +- fix wind bug + +3.4 +- add plane collision +- add pose match + +3.3 +- add inertia effect + +3.2 +- fix wind effect cannot set key issue + +3.1 +- add bind controller +- add wind +- add flex setting +- improve performance +- fix twist bug +- add capsule icon +- seperate skinTools to spring magic and skin magic + +3.0 +- re-write spring magic to improve performance +- add capsule collision for spring magic +- add donate page + +2.7.8 +- fix script stop working issue cause by highend3d.com changed their web page + +2.7.7 +- add time out for update checking in case of network issue + +2.7.6 +- fix spring magic calculation issue on MAYA 2016 +- update UI for MAYA 2016 +Thanks for all the help from Nobuyuki Kobayashi nobuyuki@unity3d.com + +2.7.5 +- add floor collision to spring magic + +2.7 +- Add spring magic diff --git a/2025/scripts/animation_tools/springmagic/icons/China Flag.png b/2025/scripts/animation_tools/springmagic/icons/China Flag.png new file mode 100644 index 0000000000000000000000000000000000000000..15e088b9c4fef037ed7adb910cad03eb10363678 GIT binary patch literal 2212 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/addPlane.png b/2025/scripts/animation_tools/springmagic/icons/addPlane.png new file mode 100644 index 0000000000000000000000000000000000000000..af46dfac43e1e81a3268051145e6cda7392acb45 GIT binary patch literal 18787 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�*_x?^cA<=^2leqMKEB2|>flpgMLorEFe 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 LNkvXXu0mjfjnZ0i literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/bilibili.png b/2025/scripts/animation_tools/springmagic/icons/bilibili.png new file mode 100644 index 0000000000000000000000000000000000000000..b1c1a9f43732df5441a54e2bc40c54e98d3d16f4 GIT binary patch literal 22210 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 BM_K>? literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/clearCapsule.png b/2025/scripts/animation_tools/springmagic/icons/clearCapsule.png new file mode 100644 index 0000000000000000000000000000000000000000..507c483f451ebf5a5017a2b179566b1c50d29570 GIT binary patch literal 4732 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

K8!>#^XXt!O1#bSl6qYLE!52(#YKzz8o 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 Z9RNDox9feyrlJ4<002ovPDHLkV1juYxsm_? literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/ctrl_bind.png b/2025/scripts/animation_tools/springmagic/icons/ctrl_bind.png new file mode 100644 index 0000000000000000000000000000000000000000..7f343f280c5fe2c93f0f2afb6a367f3dc6faeea0 GIT binary patch literal 4107 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 JPDHLkV1fnLqly3k literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/donut.png b/2025/scripts/animation_tools/springmagic/icons/donut.png new file mode 100644 index 0000000000000000000000000000000000000000..d7acafe0404468e1994beec2446e21b5de7cc012 GIT binary patch literal 1098 zcmV-Q1hxB#P)oBRyGC?mDIsIJb}MD2GinUzA0#$0(M07RMH6SLBCloA^<|IeciRpc=IbUWH@Wxs`~1%N zp6~fl)Etk!YL%?NJg3&gF;)^MHY{!#DqUVc{olu;rzEF0WIW#@D7*%qf!B5Oz#vd? zWNRw4S1O=gtGqV2DSP{sJ$sV>6L9>+HO(d=X~v*s;O*K4VBI1Yfei@nu1*63M}tX_ z`C5xo9FCf`OaBoTe6MWZ70WW*OhG*Y8aN5QlSE)W$B57do`&}iWkF|kDl}`Ao-VCw z;hZqA>oS8E*{^?mCszcWc3RNH3tCq?WfHSs2 z*G*d7OuJ6l#SnLXe?&1S*S5j`Q9j5ur~o1aPyvD&aX!p zBc49+Y6ch(9xwgFniWHS7dIK2;3Bte8fYwHP*+L}Q5sC3J5P}{3-r5LPr%K>x2IP^ z-*akc-Yf@edGf4=CQfqg=cAfZ|2XUQjk92@TLk7}srav{G#T0|RbUYmy%vgMq9r@H z&qEVDU;~kQ*3h{|vc#@U-TD5%nd|le_0bTe<4G zMWa|E0z;!^jX{JF={Zepo&r9jhyEmO!=Z3XFRX1(p2SRQxa{bI|FzX~ypW=EW zTC9atRK#o}W*s(*7u8<*+CORepp{HVg(8*s7 zf4~C?()D}JeE5B2J@izoXG?xCTDK};*p!7jO3^y<;fKc1->-cva(_*ZF651XR8+98!7pi`0akSJlwJ8K~srT?D(;5DKKGtRJ=60 zx2J*k-F2tFu~fIi20s^QrHqtjeCiLE@ z)2sgV!Uc+=r_L2Ues^e-(|?hhBEawZa`E;dFc$n{y!Y0iejj}CvNXQuFIvEG!nsD~ QMF0Q*07*qoM6N<$g6$XuQ2+n{ literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/english.png b/2025/scripts/animation_tools/springmagic/icons/english.png new file mode 100644 index 0000000000000000000000000000000000000000..2bf1f6583365cfffc0722029d9e4a2df6aaf03ff GIT binary patch literal 4265 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/japanese.png b/2025/scripts/animation_tools/springmagic/icons/japanese.png new file mode 100644 index 0000000000000000000000000000000000000000..7967692894a9b2efbdbc882667f031a3a4faa50f GIT binary patch literal 16328 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/language.png b/2025/scripts/animation_tools/springmagic/icons/language.png new file mode 100644 index 0000000000000000000000000000000000000000..755a11de66563dfb1766fc25519207e2aa6855df GIT binary patch literal 4366 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� znDFp!PlFrRhIX*P(<6p5cN6V3u0@=VG(L0ilSpswqd-5()YS6Z<#KWwd8Gy0$`QPs zODc9O%LyDph97}-iNxr`Ya1(q>3QJ;jG~-lq#ApsIsm2_u)aZ&GUY1%;daN0pe#M6>eCAi^a21Ls?00bA?o~<2J!;!~E2FL8kXv*ihtTpFpH*r<5 znf|r%>-3C(^JFWf+iG;Qlfk{7uF$K>8E*l)O@KrHqNQRFB=a=OE5F4^?7U}0sQlC-^Dv41#HbzO1LZ6GpeVPkZy$8Q>3NKsGDug(rzyPfhLnoV$naj9F}q4M5Z9~6K0(GF6>Cfw;u^oGFe8$<3W@V!1BA=^ z)h8cseMCZ62YsTWk7PG%_Xg@gbF$Y3Sz`gGy^;c!3P4=dVvM>p9cWI<83v&I1OJ(O z@leDIW&n<6hU_iW*t+c*522bp?U`_SHI&|F%Te`hyQ+_HYHk?`-obL4KT$)#s2bMA z_^6OUFmrp#AZN)l`Gaia0j@J46YkJ0*8CYY{NPxtu22q7;E7!_(@SS^>;RBu3yo% zzG@~YRnLbSHB&Z;QAP=y{prmsRGnc%Vcta_8O%M&eD)G&4LTHu(=kJsY2A~YlqlgU zV>X3^U6QZ)Lp<)Deu<!#?|LW4p{2Ru8w`E#NHRFObV$Dj=7PxXbi9 zDY?OD|62v2Wc!;OH{FcQ_AcxV;EjFBl>kdHNeD_H=NTD$8mo0+^H`1U8*|)0YZ7?( znDIk{VLapw-~A4}u<=v;fr1vK4>HD}^^{e1rPXTa5{j+(a`>^#%kXR?ROt(WC^5bl z3g>6cG&?;^7$#(#Z|d1v6faI9yqT7Tyyg56hFYF^b_BavyY#UO&2;Q9iUy_+y-PdZ zBG$sz;xEe}t0r62>6CAmAC&)Rw_kT`siTt@=iTMCd04;wIHQj_meQ>_% zNNk(FGNV$KI|g;n$HY~S7|@x zlZZ5g`s|apM3$ZNb)0SwBsq|Z6ITs}%#g;jPT1brXk=LXojY36p{7a+`1nSWYr*H! zPf)xz3FnL{PDvdWCKvZY6RZgCgnI>F3Xc)ThD=Xdbp*^~UAnv9A1{45H36T%zOAfC4RE}k+iR=bA@)`yleZX(7qT!TcNV5v7kPp zj*os_MvVU*|E&w!lnEz{8@l&FRaG&>1$iK9CmiNJni}lZojR4`^T_@5UiKP|(Pw}3 z-wp5|Hu!M6<$3S(=Kkc1rSr@aaIADYtjdcZo9&XRa=U`^;d*wu@L6G<%F^{9iu^Fj zt6n+AG$S*8x5~`oNNC(}?z!BI^pk2TZ<2elRK!ZMv*jtv3VW^A3^gd`6Qb0L+Bo-~ z9Ai0M?*3VvYTF}OdLmz?Kt(6WeRUB2z`||fJe4$MdZYmJS#RQS8|C%IC8z2R&$nOR z?z6mwt)RS^6e@L<>f1q-ESvx0y)Xs!VflpUwe*YeeXvs5z4~$M6354jC2K|Jt6c`Z zSXW!OJ~!u}utTn7ti`XtzB1UZ)1=cOaZDmACS62Ch)u9!_FPNcU~X|Pck9a_lXdKb z=Y4Yj>d^9uRT_S|Q&q_UYb$cpOLNPT?Y9&+UYnvQI8qM)KS=~Q8Z9Gh;bdPEn`O<+ti1-3nUtb6Gn1}0sSKajgTLH9*|MwvH`u^X# zeLt;aV-LR;V4we6VBbNy$unO8v<7Wo|B8MG0UpIP@2~n-%xV9A2iXj2MOFV+z^3O< z5E}h=>Q9ib%h+fD$AYg1|81N$fp24*ZCd{ z7E#dl9gh~L=`TZQ1~mPaLW|M#mmr&IPBYll9sZ@?GQJzz9RDTAw^{d3lZ`C=wtPE* z|3kjJr2pgF^8vYM(q> IplKcY55zNy-~a#s literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/paypal.png b/2025/scripts/animation_tools/springmagic/icons/paypal.png new file mode 100644 index 0000000000000000000000000000000000000000..d4463169335f3eaa571da565b845bb3baf799fff GIT binary patch literal 17632 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/redo.png b/2025/scripts/animation_tools/springmagic/icons/redo.png new file mode 100644 index 0000000000000000000000000000000000000000..a75ef63caf8eafc13072fcb6d605281cb6a5bc40 GIT binary patch literal 4256 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/update.png b/2025/scripts/animation_tools/springmagic/icons/update.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f4d7104d56d45f88d2d3aea739c6ecfdb7eb48 GIT binary patch literal 4462 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 AK>z>% literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/vimeo.png b/2025/scripts/animation_tools/springmagic/icons/vimeo.png new file mode 100644 index 0000000000000000000000000000000000000000..319d5a68d85ba5eee9ef467ce1a13eafd404efc2 GIT binary patch literal 20737 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%0AO3>t=lEQi{RP(*Kz=^_1=r8r>*x4fnf(RV6+nJI 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 MGWVpbBu#?ASsfiZj#IWP}eQF zSKCEdLnUpL>Qy3bx89p1SxV7z-@Heq_x{o6p3mo;-|zRFXZb$g=XpNo|@%7#Qm(g<|1Q7!oAMcfzh1 z%$%L#a2~=7Sk2SM5tED@1fD6Kv*j>QS6ZY92RuNZLsGha_!JcXv+%ovr4W(9QW~RE3 zv-OlMi^164APK75^87()xupE;lg0Y_`oH;XUwC1^Bd=mbAICM;ZHFh*rO_|s{`ewo z?Xpq(ja|pxOan8=YZ`l8h$o`oW@Tq{FyTMmu`|`(RNFRZeeXziRdKh*Jrm{#;ULtJ zE_H4&h#E4@`Ok`yrZokI?WX%%e>if18zXIy!McH!BZhHfk{jjqi*J`>-cP3;3Rd@a z3$43Wzuc=F@Nt!VYPs9r-{0HWDfV8!e!ruWlV5mLFX}F z+tPUKbyw|hWSX9JfL`E6gV-n8R4P>(d4i|m;Nb9lc=*DdJ4KDhiz5cwd968v8^e?u zdcEaWDvjB-zBdQ%2Pe{P(;o$`Du^@f^GRXuCRX&E zwjG6&8OVy^`Wmu|4+gDh$=%J03h>vH6eR6Z`eOv|w_weY4H9N#Kcf##RH*o@pm1C%>7R!r^dpva+&_ za*}>}u37NWcvaAYGwFr-{-t|0?RmL23sYE24#h=f4($atoJ+6~Y<6E4WLKN?@!h+Q z9TU7}U7MVmoCN6fMVBsJB1fC}rjIKh240>2xNlXr`gL7C?%-CyOgFJ{ z%7{iibzWXV5=lKPf?2WeYxciGJF73UlM9&MEb z02;O-5}k9>ngx}&CNnUme(g9>+WeE(JL+;JA9{NuDk>{E%Zg5=jV<_KTS(mX@x|DK0j9F+3dq_Qjf>o*vNVZXHFhLMNg{g4?^y zP-m#DGlH{Rdr#e=j6om2ChPYsdk|cJwzNnjYRffQ%4@QGh1adfI=t;omwMuws3f?o z%k?jI2MS@y0i9T8F1I}_|4<6}E2&hoasT}n*j`HE>C7XoM~@C^6;d|v`M3^;&bgN> zE5va?m=6aCrPG~V`rv8?R?M3lZS_KkDantQlj@O0{3QQ-Op^SrKj!Z6mR zp1w8c+Q>^4`VosxPfs^ry!hH=L_|c!GTZF^dS_%-%ME-Ixz)#Z#;@%&Hf}nb{=9zP z66535<|AASZ*Ol91l1?IA3U%MH&Qoe7DV^)-WvL3@Z@eyiw=4sP)E_9jcqmIt-FG4 zXqp2Q`Fk7(u z&cE`Vy@!(B;}1-GIvdWLw~Jai{u(b0s!R~KvTny*x~ zhLkQFE;Y9;l==JR8f*$~sd1sY;>OI)1&O_5-XR|hfAuuow{M@))y>T&FE4LXpTR^j zlp1T|Wikb5-mu8%^iyM*<%GQYP)r7-@~?uTajTUS)Z1k zaj|~tXn8;x-(cy#ElVpM6sfTWXqcKF7Qx)Cn?SYa^n`ZeHd5!|FK&?o;Am;do? z(!1NMO!6|~5&!DV*NluxQWn+^RCWF7c(DEQ$&|GA5OB|Ni|Ew=J1WER*&5v=MbC%F zwr{U;5*~}QqfR-Nu8W&C3TmCNrG9rSr1Fw#wcV{W9px5kYIt_3&Hyp$`o^C$&B-m4 r+MFij(UNA@-huG(->L_v^*~H>dG&^bM|oB=KWctnf!r$3O&R|Kn>8fA literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/wind.png b/2025/scripts/animation_tools/springmagic/icons/wind.png new file mode 100644 index 0000000000000000000000000000000000000000..47938d943ca58ab8b72e21d9895801f790ada43a GIT binary patch literal 4543 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/icons/youtube.png b/2025/scripts/animation_tools/springmagic/icons/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9ac8cc87094cd93c17aa4d195991de8b676388 GIT binary patch literal 18445 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 X>8%d7`mkvBANCkvP4uqoIv)KmTwC++ literal 0 HcmV?d00001 diff --git a/2025/scripts/animation_tools/springmagic/main.py b/2025/scripts/animation_tools/springmagic/main.py new file mode 100644 index 0000000..18e2d56 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/main.py @@ -0,0 +1,13 @@ +from .import ui as ui + + +def main(*args, **kwargs): + widget = ui.SpringMagicWidget() + widget.show() + + +if __name__ == "__main__": + import springmagic + + with springmagic.app(): + springmagic.main() diff --git a/2025/scripts/animation_tools/springmagic/mkDevTools.py b/2025/scripts/animation_tools/springmagic/mkDevTools.py new file mode 100644 index 0000000..915fac1 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/mkDevTools.py @@ -0,0 +1,36 @@ +from os import path +import compileall +import sys, types + + +def recompile(modulename): + """Recompile the given module, its directory's contents!""" + myScriptPath = sys.modules[modulename.__name__].__path__[0] + if path.isdir(myScriptPath): + compileall.compile_dir(myScriptPath, force=True) + + +def reload_module(modulename): + """Reload the given module and all children""" + + # Get a reference to each loaded module + loaded_modules = dict([(key, value) for key, value in list(sys.modules.items()) + if key.startswith(modulename.__name__) and + isinstance(value, types.ModuleType)]) + + # Delete references to these loaded modules from sys.modules + for key in loaded_modules: + del sys.modules[key] + + # Load each of the modules again + # Make old modules share state with new modules + for key in loaded_modules: + print('re-loading %s' % key) + newmodule = __import__(key) + oldmodule = loaded_modules[key] + oldmodule.__dict__.clear() + oldmodule.__dict__.update(newmodule.__dict__) + +def refresh(modulename): + recompile(modulename) + reload_module(modulename) \ No newline at end of file diff --git a/2025/scripts/animation_tools/springmagic/springMagic.py b/2025/scripts/animation_tools/springmagic/springMagic.py new file mode 100644 index 0000000..7c761ea --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/springMagic.py @@ -0,0 +1,28 @@ +import sys +import os +import inspect + + +def main(): + # Add SprinMagic path to PYTHON_PATH + script_name = inspect.getframeinfo(inspect.currentframe()).filename + script_path = os.path.dirname(os.path.abspath(script_name)) + path_name = os.path.dirname(script_path) + + if os.path.exists(path_name) and path_name not in sys.path: + sys.path.append(path_name) + + # Import SpringMagic module + + # Recompile SpringMagic module if modification has been made + + from . import main as app + from . import mkDevTools as dev + + import springmagic + dev.refresh(springmagic) + # Launch SpringMagic + app.main() + + # Remove SprinMagic path from PYTHON_PATH + sys.path.remove(path_name) diff --git a/2025/scripts/animation_tools/springmagic/springMagic.ui b/2025/scripts/animation_tools/springmagic/springMagic.ui new file mode 100644 index 0000000..2120b5d --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/springMagic.ui @@ -0,0 +1,1664 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 8 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + Spring Magic + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 46 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 52 + 71 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the spring is, bigger value, softer result.</p><p>Important: only working for &quot;X-axis aiming to child&quot; joint chain.</p></body></html> + + + Spring + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 90 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the twist (X-axis) is</p></body></html> + + + Twist + + + + + + 120 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + Bone Pose + + + + + 10 + 20 + 61 + 31 + + + + Go to joint bind pose + + + Bind Pose + + + + + + 10 + 60 + 61 + 31 + + + + + 8 + + + + Set joint chain as straight + + + Straight + + + + + + 80 + 20 + 51 + 31 + + + + Copy bone poses + + + Copy + + + + + + 80 + 60 + 51 + 31 + + + + Paste bone poses + + + Paste + + + + + + + 260 + 280 + 81 + 51 + + + + + 10 + 75 + true + + + + <html><head/><body><p>Affect select object only</p></body></html> + + + Apply + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + Collisions + + + + + 10 + 30 + 61 + 17 + + + + <html><head/><body><p>Active collision calculation with capsule body in scene.</p><p>May slow down the calculation</p></body></html> + + + Active + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>Add a capsule at original point if select notion, or add a capsule match with selected bone.</p><p>Note: you can adjust the capsule with move or scale the cylinder at middle. Parent capsule to diffecrent object to move follow it.</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>Clear all capsules in scene</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 80 + 30 + 75 + 17 + + + + <html><head/><body><p>Click on this if capsule attach on a fast move bone, like sprinting legs, to reduce the clip through.</p><p>Note: May cause more poping if capsule moving slowly.</p></body></html> + + + Fast Move + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 232 + 0 + 71 + 16 + + + + <html><head/><body><p>Tension of the chain, means how much the force of bend will be path through the chain, only take effect when collision happends. Can reduce poping and clip through of collision result.</p></body></html> + + + Tension + + + + + false + + + + 271 + 0 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + Key Setting + + + + false + + + + 120 + 50 + 71 + 16 + + + + <html><head/><body><p>Remove precision keys on sub frame after calculation</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 20 + 50 + 71 + 16 + + + + <html><head/><body><p>How many sub frame that will be go through during 1 frame, that for capture really fast move</p><p>collision body. Default value is 1, if set as 5, means will step as 1/5 frame to calculation.</p><p>will increase calculation time by times</p></body></html> + + + Sub-Frame + + + + + false + + + + 80 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 61 + 17 + + + + Current time line range + + + Active + + + true + + + + + + 140 + 20 + 51 + 17 + + + + From + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 230 + 20 + 21 + 16 + + + + To + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 280 + 50 + 51 + 16 + + + + <html><head/><body><p>Will caculate twice to get looped result</p></body></html> + + + Loop + + + false + + + + + true + + + + 194 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Add wind controller</p></body></html> + + + Wind + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + Controller + + + + + 10 + 20 + 71 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Bind bone chain to selected rigging controller</p></body></html> + + + Bind + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + <html><head/><body><p>Bake bone chain animation back to controller</p></body></html> + + + Bake + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 166 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define flexibility of spring, which can produce strech and squash animation</p></body></html> + + + Flex + + + + + + 192 + 50 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 52 + 61 + 16 + + + + + 8 + + + + <html><head/><body><p>set between 0 to 1</p><p>define inertia of spring, which can produce weight result</p></body></html> + + + Inertia + + + + + + 277 + 50 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 320 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + New Version Available! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Tutorials on YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Set Language + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2025/scripts/animation_tools/springmagic/springMagic_chn.ui b/2025/scripts/animation_tools/springmagic/springMagic_chn.ui new file mode 100644 index 0000000..f44b798 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/springMagic_chn.ui @@ -0,0 +1,1821 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 9 + 50 + false + PreferDefault + true + + + + false + + + + + + + + + + + + + + + + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + + + icons/spring.pngicons/spring.png + + + 算飘带 + + + + true + + + + 20 + -20 + 341 + 341 + + + + + 10 + + + + 计算飘带 + + + true + + + + + 40 + 40 + 31 + 20 + + + + + 10 + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,链条摆动幅度,数字越大结果越柔软</p><p>注意:计算只对+X轴朝向子物体的骨骼链有效</p></body></html> + + + 摆动 + + + + + + 160 + -68 + 31 + 16 + + + + + 10 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + + 10 + + + + 0 + + + + + + 86 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,拧转效果(X轴)的柔软度,越大拧得越多</p></body></html> + + + 拧转 + + + + + + 116 + 40 + 31 + 20 + + + + + 10 + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 0 + 220 + 141 + 101 + + + + + 10 + + + + 骨骼姿态 + + + + + 10 + 20 + 61 + 31 + + + + + 10 + + + + 回到蒙皮姿态 + + + 蒙皮姿态 + + + + + + 10 + 60 + 61 + 31 + + + + + 10 + + + + 清零旋转值 + + + 拉直 + + + + + + 80 + 20 + 51 + 31 + + + + + 10 + + + + 复制所选的骨骼姿势 + + + 复制 + + + + + + 80 + 60 + 51 + 31 + + + + + 10 + + + + 粘贴骨骼姿势 + + + 粘贴 + + + + + + + 250 + 270 + 81 + 51 + + + + + 12 + 75 + true + + + + <html><head/><body><p>仅计算选中的物体</p></body></html> + + + 计算 + + + + + + 350 + 22 + 41 + 16 + + + + + 10 + + + + UpAxis + + + + + + 0 + 150 + 331 + 61 + + + + + 10 + + + + 碰撞 + + + + + 10 + 30 + 51 + 17 + + + + + 10 + + + + <html><head/><body><p>勾选后会计算飘带与场景中胶囊体的碰撞</p><p>会减慢计算速度</p></body></html> + + + 启用 + + + + + false + + + + 70 + 30 + 71 + 17 + + + + + 10 + + + + <html><head/><body><p>如果胶囊体附加在快速移动的物体上,比如奔跑中的双腿与裙子的碰撞。勾选此项时,可以减少穿插。</p><p>注意:在碰撞体移动较慢时勾选此项,可能会造成结果抖动。</p></body></html> + + + 快速移动 + + + + + + 380 + 22 + 50 + 16 + + + + + 10 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + + 10 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 170 + 14 + 41 + 41 + + + + <html><head/><body><p>创建一个胶囊体,如果不选择骨骼,则在原点生成,如选择骨骼,则跟骨骼大小位置对齐</p><p>注意:可以缩放移动中间的圆柱形来调整胶囊体。也可以将胶囊体设为子物体来跟随父物体移动。</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 220 + 120 + 41 + 41 + + + + 删除选中的胶囊体 + + + + + + + icons/removeCapsule.pngicons/removeCapsule.png + + + + 32 + 32 + + + + + + true + + + + 270 + 14 + 41 + 41 + + + + 清除场景中所有的胶囊体 + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + true + + + + 220 + 14 + 41 + 41 + + + + <html><head/><body><p>创建一个碰撞平面</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 230 + -10 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>链条张力,用于定义由碰撞造成的弯曲如何在链条中传递,仅在碰撞发生时生效。</p><p>适当设置可减少碰撞计算结果的抖动和穿插。</p></body></html> + + + 张力 + + + + + false + + + + 260 + -20 + 31 + 20 + + + + + 10 + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 0 + 70 + 331 + 71 + + + + + 10 + + + + 计算范围 + + + + + 20 + 20 + 91 + 17 + + + + + 10 + + + + 当前时间轴显示范围 + + + 当前时间轴 + + + true + + + + + + 140 + 20 + 41 + 17 + + + + + 10 + + + + + + + + + false + + + + 180 + 20 + 31 + 20 + + + + + 10 + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 220 + 20 + 16 + 16 + + + + + 10 + + + + + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + 10 + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + false + + + + 30 + 48 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>将一帧拆分成若干碎帧来进行细分计算,以捕捉非常快速移动的碰撞体</p><p>相应的会成倍增加计算时间,但能获得更精细的效果</p><p>默认为1,如设为5,则会以1/5帧为步进来计算</p></body></html> + + + 拆帧 + + + + + false + + + + 60 + 46 + 31 + 20 + + + + + 10 + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 270 + 50 + 51 + 16 + + + + + 10 + + + + <html><head/><body><p>是否循环计算,以对齐首尾帧</p></body></html> + + + 循环 + + + false + + + + + false + + + + 100 + 50 + 71 + 16 + + + + + 10 + + + + <html><head/><body><p>在计算完成后清理不在整数上的细碎关键帧</p></body></html> + + + 清理碎帧 + + + true + + + + + true + + + + 190 + 50 + 71 + 16 + + + + + 10 + + + + <html><head/><body><p>使计算结果尽量贴合已有的骨骼关键帧</p></body></html> + + + 姿态拟合 + + + true + + + false + + + + + + + 310 + 30 + 30 + 30 + + + + + 0 + 0 + + + + 在当前书签栏创建快捷启动图标 + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + + + + 160 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,给骨骼链增加弹性,用于创造拉伸和挤压的效果</p></body></html> + + + 伸缩 + + + + + + 190 + 40 + 31 + 20 + + + + + 10 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 150 + 220 + 91 + 101 + + + + + 10 + + + + 控制器 + + + + + 10 + 20 + 71 + 31 + + + + + 10 + 50 + false + + + + <html><head/><body><p>根据所选择的动画控制器来创建骨骼链</p></body></html> + + + 绑定 + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + + 10 + + + + <html><head/><body><p>将所选骨骼链的计算结果烘焙到控制器上</p></body></html> + + + 烘焙 + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 250 + 230 + 81 + 31 + + + + + 10 + 50 + false + + + + <html><head/><body><p>创建风向控制器</p></body></html> + + + + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 270 + 41 + 31 + 20 + + + + + 10 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 42 + 61 + 16 + + + + + 10 + + + + <html><head/><body><p>范围从0-1,给骨骼链增加惯性,产生一定的重量感</p></body></html> + + + 惯性 + + + label_24 + label_15 + collision_groupBox + springSpring_lineEdit + label_16 + springSubs_lineEdit + label_17 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_8 + label_18 + springTension_lineEdit + keyRange_groupBox + shelf_button + label_19 + springExtend_lineEdit + groupBox + springWind_Button + springInertia_lineEdit + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + 有新版本! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + YouTube 英文教程 + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + 语言设置 + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 340 + 21 + 16 + + + + + 8 + + + + chn + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + label_23 + setEnabled(bool) + + + 71 + 193 + + + 81 + 141 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 63 + 191 + + + 113 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 61 + 191 + + + 201 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 92 + 185 + + + 136 + 185 + + + + + springCapsule_checkBox + clicked(bool) + label_18 + setEnabled(bool) + + + 61 + 198 + + + 281 + 64 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 48 + 193 + + + 313 + 64 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 213 + 113 + + + 243 + 119 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 218 + 111 + + + 308 + 116 + + + + + diff --git a/2025/scripts/animation_tools/springmagic/springMagic_eng.ui b/2025/scripts/animation_tools/springmagic/springMagic_eng.ui new file mode 100644 index 0000000..2120b5d --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/springMagic_eng.ui @@ -0,0 +1,1664 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 8 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + Spring Magic + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 46 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 52 + 71 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the spring is, bigger value, softer result.</p><p>Important: only working for &quot;X-axis aiming to child&quot; joint chain.</p></body></html> + + + Spring + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 90 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define how soft the twist (X-axis) is</p></body></html> + + + Twist + + + + + + 120 + 50 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + Bone Pose + + + + + 10 + 20 + 61 + 31 + + + + Go to joint bind pose + + + Bind Pose + + + + + + 10 + 60 + 61 + 31 + + + + + 8 + + + + Set joint chain as straight + + + Straight + + + + + + 80 + 20 + 51 + 31 + + + + Copy bone poses + + + Copy + + + + + + 80 + 60 + 51 + 31 + + + + Paste bone poses + + + Paste + + + + + + + 260 + 280 + 81 + 51 + + + + + 10 + 75 + true + + + + <html><head/><body><p>Affect select object only</p></body></html> + + + Apply + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + Collisions + + + + + 10 + 30 + 61 + 17 + + + + <html><head/><body><p>Active collision calculation with capsule body in scene.</p><p>May slow down the calculation</p></body></html> + + + Active + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>Add a capsule at original point if select notion, or add a capsule match with selected bone.</p><p>Note: you can adjust the capsule with move or scale the cylinder at middle. Parent capsule to diffecrent object to move follow it.</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>Clear all capsules in scene</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 80 + 30 + 75 + 17 + + + + <html><head/><body><p>Click on this if capsule attach on a fast move bone, like sprinting legs, to reduce the clip through.</p><p>Note: May cause more poping if capsule moving slowly.</p></body></html> + + + Fast Move + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 232 + 0 + 71 + 16 + + + + <html><head/><body><p>Tension of the chain, means how much the force of bend will be path through the chain, only take effect when collision happends. Can reduce poping and clip through of collision result.</p></body></html> + + + Tension + + + + + false + + + + 271 + 0 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + Key Setting + + + + false + + + + 120 + 50 + 71 + 16 + + + + <html><head/><body><p>Remove precision keys on sub frame after calculation</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 20 + 50 + 71 + 16 + + + + <html><head/><body><p>How many sub frame that will be go through during 1 frame, that for capture really fast move</p><p>collision body. Default value is 1, if set as 5, means will step as 1/5 frame to calculation.</p><p>will increase calculation time by times</p></body></html> + + + Sub-Frame + + + + + false + + + + 80 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 61 + 17 + + + + Current time line range + + + Active + + + true + + + + + + 140 + 20 + 51 + 17 + + + + From + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 230 + 20 + 21 + 16 + + + + To + + + + + false + + + + 250 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 280 + 50 + 51 + 16 + + + + <html><head/><body><p>Will caculate twice to get looped result</p></body></html> + + + Loop + + + false + + + + + true + + + + 194 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Add wind controller</p></body></html> + + + Wind + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + Controller + + + + + 10 + 20 + 71 + 31 + + + + + 8 + 50 + false + + + + <html><head/><body><p>Bind bone chain to selected rigging controller</p></body></html> + + + Bind + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + <html><head/><body><p>Bake bone chain animation back to controller</p></body></html> + + + Bake + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 166 + 52 + 61 + 16 + + + + <html><head/><body><p>set between 0 to 1</p><p>define flexibility of spring, which can produce strech and squash animation</p></body></html> + + + Flex + + + + + + 192 + 50 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 52 + 61 + 16 + + + + + 8 + + + + <html><head/><body><p>set between 0 to 1</p><p>define inertia of spring, which can produce weight result</p></body></html> + + + Inertia + + + + + + 277 + 50 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 320 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + New Version Available! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Tutorials on YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + Set Language + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + language_button + main_lang_id + spring_language_list + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2025/scripts/animation_tools/springmagic/springMagic_jpn.ui b/2025/scripts/animation_tools/springmagic/springMagic_jpn.ui new file mode 100644 index 0000000..26428f1 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/springMagic_jpn.ui @@ -0,0 +1,1760 @@ + + + SpringMagic_mainWindow + + + Qt::NonModal + + + true + + + + 0 + 0 + 380 + 425 + + + + + 0 + 0 + + + + + 380 + 425 + + + + + 380 + 655 + + + + ArrowCursor + + + false + + + Qt::NoFocus + + + Spring Magic 3.5a + + + + icons/Title.pngicons/Title.png + + + + 24 + 24 + + + + Qt::ToolButtonIconOnly + + + true + + + QTabWidget::Rounded + + + false + + + + + true + + + + 0 + 0 + 381 + 341 + + + + + 0 + 0 + + + + + 9 + 50 + false + + + + false + + + Qt::DefaultContextMenu + + + true + + + + + + + + + + + + + + + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 1 + + + Qt::ElideNone + + + true + + + false + + + false + + + false + + + true + + + + + icons/spring.pngicons/spring.png + + + スプリングマジック + + + + true + + + + 10 + -30 + 361 + 341 + + + + Spring Magic + + + true + + + + + 30 + 56 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 20 + 40 + 71 + 16 + + + + + 9 + + + + <html><head/><body><p>0から1までの値をセットします。</p><p>スプリングの柔らかさを定義します。大きい値ほど柔らかい結果となります。</p><p>重要:ジョイントチェーンは&quot;子に向かってX軸方向&quot;にのみ機能します。</p></body></html> + + + スプリング + + + + + + 160 + -68 + 31 + 16 + + + + Subs + + + + + + 190 + -70 + 31 + 20 + + + + 0 + + + + + + 96 + 40 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>0から1までの値をセットします。</p><p>(X軸に対し)ツイストの柔らかさを定義します。</p></body></html> + + + ツイスト + + + + + + 101 + 57 + 31 + 20 + + + + + + + 0.7 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 230 + 141 + 101 + + + + + 9 + + + + ボーンポーズ + + + + + 4 + 20 + 91 + 31 + + + + + 9 + + + + バインドポーズにします。 + + + バインドポーズ + + + + + + 4 + 60 + 71 + 31 + + + + + 9 + + + + ジョイントチェーンをまっすぐにします。 + + + ストレート + + + + + + 97 + 20 + 41 + 31 + + + + + 9 + + + + + + + コピー + + + + + + 87 + 60 + 51 + 31 + + + + + 9 + + + + + + + ペースト + + + + + + + 260 + 280 + 81 + 51 + + + + + 12 + 75 + true + + + + <html><head/><body><p>選択したオブジェクトにのみ影響します。</p></body></html> + + + 適用 + + + + + + 420 + 40 + 41 + 16 + + + + UpAxis + + + + + + 10 + 160 + 331 + 61 + + + + + 9 + + + + 衝突判定 + + + + + 10 + 30 + 81 + 17 + + + + + 9 + + + + <html><head/><body><p>シーン内のカプセルボディに対する衝突計算をアクティブにする。</p><p>計算がスローダウンする可能性があります。</p></body></html> + + + アクティブ + + + + + true + + + + 180 + 14 + 41 + 41 + + + + <html><head/><body><p>選択物の元の位置にカプセルを追加する、もしくは選択したボーンにふさわしい位置にカプセルを追加します。</p><p>注意:中央のシリンダー部を動かしたりスケールすることで、カプセルを調整することができます。異なったオブジェクトにカプセルをペアレントすると、それをフォローして移動します。</p></body></html> + + + + + + + icons/addCapsule.pngicons/addCapsule.png + + + + 32 + 32 + + + + false + + + false + + + + + true + + + + 280 + 14 + 41 + 41 + + + + <html><head/><body><p>シーン中のすべてのカプセルを消去します。</p></body></html> + + + + + + + icons/clearCapsule.pngicons/clearCapsule.png + + + + 32 + 32 + + + + + + false + + + + 90 + 30 + 75 + 17 + + + + + 9 + + + + <html><head/><body><p>クリックで有効にすることで、全速力で動く足のような高速で動くボーンにカプセルをアタッチした場合、すり抜けを減少することができます。</p><p>注意:カプセルがゆっくりと動く場合には、ポッピングの原因になることがあります。</p></body></html> + + + 高速移動 + + + + + + 380 + 22 + 50 + 16 + + + + <html><head/><body><p>Add a floor collition for joint chain</p><p>Script will trying to keep all the joints above the hight during caculation</p><p>启用地面碰撞,计算时会尽量将骨骼保持在设定高度之上</p></body></html> + + + Floor + + + false + + + + + false + + + + 430 + 20 + 31 + 20 + + + + <html><head/><body><p>Floor height</p><p>地面高度</p></body></html> + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + true + + + + 230 + 14 + 41 + 41 + + + + <html><head/><body><p>Create a collision plane</p></body></html> + + + + + + + icons/addPlane.pngicons/addPlane.png + + + + 32 + 32 + + + + false + + + false + + + + + + false + + + + 240 + -30 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>チェーンのテンション、つまりチェーン全体にどの程度曲がる力が適用されるかの度合いは、衝突発生時にのみ影響します。衝突の結果として、ポッピングしたりクリップしたりするのを緩和できます。</p></body></html> + + + テンション + + + + + false + + + + 250 + -10 + 31 + 20 + + + + + + + 0.5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 331 + 71 + + + + + 9 + + + + キー範囲 + + + + false + + + + 110 + 50 + 71 + 16 + + + + + 9 + + + + <html><head/><body><p>計算後のサブフレーム上の精度キーを取り除きます。</p></body></html> + + + Wipe Sub + + + true + + + + + false + + + + 10 + 50 + 61 + 16 + + + + + 9 + + + + <html><head/><body><p>1フレーム経過する際に評価されるサブフレーム数を設定することで、衝突物の非常に素早い動きをキャプチャすることができます。</p><p>デフォルト値は1で、5をセットすれば1/5フレームごとに評価されます。</p><p>値を増やすと計算時間が増えます。</p></body></html> + + + Sub-Frame + + + + + false + + + + 70 + 48 + 31 + 20 + + + + + + + 1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 30 + 20 + 91 + 17 + + + + 現在のタイムラインの範囲 + + + アクティブ + + + true + + + + + + 140 + 20 + 51 + 17 + + + + + 9 + + + + 始点 + + + + + false + + + + 190 + 20 + 31 + 20 + + + + + + + 0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 240 + 20 + 31 + 16 + + + + + 9 + + + + 終点 + + + + + false + + + + 280 + 20 + 31 + 20 + + + + + + + 200 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 274 + 50 + 51 + 16 + + + + + 9 + + + + <html><head/><body><p>結果がループするように、2回計算します。</p></body></html> + + + ループ + + + false + + + + + true + + + + 190 + 50 + 81 + 16 + + + + + 8 + + + + <html><head/><body><p>make result close to exists keyframe pose</p></body></html> + + + Pose Match + + + true + + + false + + + + + + + 260 + 240 + 81 + 31 + + + + + 9 + 50 + false + + + + <html><head/><body><p>ウィンドコントローラを追加します。</p></body></html> + + + ウィンド + + + + icons/wind.pngicons/wind.png + + + + 24 + 24 + + + + + + + 160 + 230 + 91 + 101 + + + + + 9 + + + + コントローラー + + + + + 5 + 20 + 81 + 31 + + + + + 9 + 50 + false + + + + <html><head/><body><p>選択されたリグコントローラにボーンチェインをバインドします。</p></body></html> + + + バインド + + + + icons/ctrl_bind.pngicons/ctrl_bind.png + + + + 24 + 24 + + + + + + true + + + + 10 + 60 + 71 + 31 + + + + + 9 + + + + <html><head/><body><p>ボーンチェインのアニメーションをコントローラにベイクし戻します。</p></body></html> + + + ベイク + + + + icons/ctrl_bake.pngicons/ctrl_bake.png + + + + 24 + 24 + + + + + + + + 170 + 40 + 61 + 16 + + + + + 9 + + + + 0〜1の間に設定する +ストラッチとスカッシュアニメーションを生成するスプリングの柔軟性を定義する + + + フレックス + + + + + + 180 + 57 + 31 + 20 + + + + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 270 + 40 + 41 + 16 + + + + + 8 + + + + <html><head/><body><p>0〜1の間に設定する</p><p>ばねの慣性を定義します。これにより、重量結果が生成されます</p></body></html> + + + 慣性 + + + + + + 266 + 56 + 31 + 20 + + + + + 8 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 310 + 40 + 30 + 30 + + + + + 0 + 0 + + + + <html><head/><body><p>Creat shelf button of Spring Magic</p></body></html> + + + Qt::LeftToRight + + + false + + + + + + + icons/Shelf.pngicons/Shelf.png + + + + 30 + 30 + + + + false + + + false + + + false + + + true + + + label_24 + keyRange_groupBox + springSpring_lineEdit + label_25 + springSubs_lineEdit + label_26 + springXspring_lineEdit + springBonePose_groupBox + springApply_Button + label_29 + collision_groupBox + label_30 + springTension_lineEdit + springWind_Button + ctrl_groupBox + label_27 + springExtend_lineEdit + label_32 + springInertia_lineEdit + shelf_button + + + + + + + 10 + 410 + 345 + 200 + + + + + 200 + 200 + + + + + 345 + 40 + + + + + 345 + 200 + + + + + 8 + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'SimSun'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:9pt;">Created by Bai Yanbin</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:9pt;"><br /></p></body></html> + + + + + + 10 + 375 + 361 + 27 + + + + + Consolas + 12 + + + + false + + + 0 + + + Qt::AlignCenter + + + true + + + Qt::Horizontal + + + false + + + QProgressBar::TopToBottom + + + + + + 13 + 353 + 231 + 16 + + + + + 8 + + + + + + + Qt::PlainText + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 220 + 342 + 31 + 30 + + + + + 0 + 0 + + + + PointingHandCursor + + + 新バージョンが利用できます! + + + Qt::LeftToRight + + + false + + + + + + + icons/update.pngicons/update.png + + + + 25 + 25 + + + + false + + + false + + + false + + + true + + + + + true + + + + 280 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + チュートリアル@YouTube + + + false + + + + + + + icons/youtube.pngicons/youtube.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + 307 + 235 + 36 + 111 + + + + + false + + + + false + + + QFrame::NoFrame + + + QFrame::Raised + + + 0 + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + QListView::LeftToRight + + + + 36 + 36 + + + + QListView::IconMode + + + + + + + 简体中文 + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/China Flag.pngicons/China Flag.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + English + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/english.pngicons/english.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + AlignHCenter|AlignVCenter|AlignCenter + + + + icons/japanese.pngicons/japanese.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + true + + + + 310 + 342 + 31 + 31 + + + + + false + + + + PointingHandCursor + + + false + + + Qt::NoFocus + + + 言語設定 + + + false + + + + + + + icons/language.pngicons/language.png + + + + 25 + 25 + + + + false + + + false + + + false + + + false + + + true + + + + + + -50 + 360 + 21 + 16 + + + + + 8 + + + + eng + + + main_processLabel + link_pushButton + main_tab + main_textEdit + main_progressBar + miscUpdate_pushButton + vimeo_pushButton + spring_language_list + language_button + main_lang_id + + + + true + + + + + false + + + Reset + + + + + false + + + false + + + false + + + About... + + + QAction::AboutRole + + + + + main_tab + main_textEdit + + + + + springCapsule_checkBox + clicked(bool) + springFastMove_checkBox + setEnabled(bool) + + + 62 + 193 + + + 127 + 191 + + + + + springCapsule_checkBox + clicked(bool) + label_31 + setEnabled(bool) + + + 70 + 196 + + + 82 + 146 + + + + + springCapsule_checkBox + clicked(bool) + springSubDiv_lineEdit + setEnabled(bool) + + + 57 + 194 + + + 125 + 139 + + + + + springCapsule_checkBox + clicked(bool) + label_30 + setEnabled(bool) + + + 65 + 191 + + + 277 + 66 + + + + + springCapsule_checkBox + clicked(bool) + springTension_lineEdit + setEnabled(bool) + + + 50 + 191 + + + 274 + 72 + + + + + springFrom_radioButton + toggled(bool) + springFrom_lineEdit + setEnabled(bool) + + + 185 + 114 + + + 222 + 111 + + + + + springFrom_radioButton + toggled(bool) + springEnd_lineEdit + setEnabled(bool) + + + 182 + 116 + + + 277 + 116 + + + + + springCapsule_checkBox + clicked(bool) + springClearSubFrame_checkBox + setEnabled(bool) + + + 67 + 192 + + + 212 + 147 + + + + + diff --git a/2025/scripts/animation_tools/springmagic/springMath.py b/2025/scripts/animation_tools/springmagic/springMath.py new file mode 100644 index 0000000..a8588cd --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/springMath.py @@ -0,0 +1,291 @@ +import math +import pymel.core as pm +import pymel.core.datatypes as dt + + +def sigmoid(x): + return 1 / (1 + math.exp(-x)) + + +def distance(a, b): + return (b - a).length() + + +def lerp_vec(a, b, t): + return (a * (1 - t)) + (b * t) + + +def dist_to_plane(pt, n, d): + return n.dot(pt) - (d / n.dot(n)) + + +def dist_to_line(a, b, p): + ap = p - a + ab = b - a + result = a + ((ap.dot(ab) / ab.dot(ab)) * ab) + return distance(result, p) + + +def is_same_side_of_plane(pt, test_pt, n, d): + d1 = math.copysign(1, dist_to_plane(pt, n, d)) + d2 = math.copysign(1, dist_to_plane(test_pt, n, d)) + + # print(pt, test_pt, d1, d2) + return d1 * d2 == 1.0 + + +def proj_pt_to_plane(pt, n, d): + t = n.dot(pt) - d + return (pt - (n * t)) + + +def pt_in_sphere(pt, c, r): + return (pt - c).length() <= r + + +def pt_in_cylinder(pt, p, q, r): + n = (q - p).normal() + d = n.dot(p) + + if not is_same_side_of_plane(pt, (p + q) / 2.0, n, d): + return False + + n = (q - p).normal() + d = n.dot(q) + + if not is_same_side_of_plane(pt, (p + q) / 2.0, n, d): + return False + + proj_pt = proj_pt_to_plane(pt, n, d) + # logging("proj_pt", proj_pt) + # logging("q", q) + # logging("distance(proj_pt, q)", distance(proj_pt, q)) + + return distance(proj_pt, q) <= r + + +def segment_sphere_isect(sa, sb, c, r): + NotFound = (False, None) + + p = sa + d = (sb - sa).normal() + + m = p - c + b = m.dot(d) + c = m.dot(m) - r * r + + if c > 0.0 and b > 0.0: + return NotFound + + discr = b * b - c + if discr < 0.0: + return NotFound + + t = -b - math.sqrt(discr) + if t < 0.0: + return NotFound + + dist = distance(sa, sb) + q = p + d * t + return ((t >= 0 and t <= dist), q) + + +def segment_cylinder_isect(sa, sb, p, q, r): + SM_EPSILON = 1e-6 + d = q - p + m = sa - p + n = sb - sa + md = m.dot(d) + nd = n.dot(d) + dd = d.dot(d) + + NotFound = (False, None) + if md < 0 and md + nd < 0: + return NotFound + + if md > dd and md + nd > dd: + return NotFound + + nn = n.dot(n) + mn = m.dot(n) + + a = dd * nn - nd * nd + k = m.dot(m) - r * r + c = dd * k - md * md + + if abs(a) < SM_EPSILON: + if c > 0: + return NotFound + if md < 0: + t = -mn / nn + elif md > dd: + t = (nd - mn) / nn + else: + t = 0 + return (True, lerp_vec(sa, sb, t)) + + b = dd * mn - nd * md + discr = b * b - a * c + if discr < 0: + return NotFound + + t = (-b - math.sqrt(discr)) / a + if t < 0.0 or t > 1.0: + return NotFound + if (md + t * nd < 0.0): + if nd <= 0.0: + return NotFound + t = -md / nd + return (k + 2 * t * (mn + t * nn) <= 0.0, lerp_vec(sa, sb, t)) + elif md + t * nd > dd: + if nd >= 0.0: + return NotFound + t = (dd - md) / nd + return (k + dd - 2 * md + t * (2 * (mn - nd) + t * nn) <= 0.0, lerp_vec(sa, sb, t)) + + return (True, lerp_vec(sa, sb, t)) + + +def pt_in_capsule(pt, p, q, r): + return pt_in_cylinder(pt, p, q, r) or pt_in_sphere(pt, p, r) or pt_in_sphere(pt, q, r) + + +def segment_capsule_isect(sa, sb, p, q, r): + # sa = dt.Vector() + # ray start point pos vector + # sb = dt.Vector() + # ray end point pos vector + # p = dt.Vector() + # capsle one sphere tip pos + # q = dt.Vector() + # capsle another sphere tip pos + # r = float + # radio of capsle sphere + + if pt_in_capsule(sa, p, q, r): + if pt_in_capsule(sb, p, q, r): + # both inside. extend sb to get intersection + newb = sa + (sb - sa).normal() * 200.0 + sa, sb = newb, sa + else: + sb, sa = sa, sb + + # d = (sb - sa).normal() + + i1 = segment_sphere_isect(sa, sb, p, r) + i2 = segment_sphere_isect(sa, sb, q, r) + i3 = segment_cylinder_isect(sa, sb, p, q, r) + + dist = float('inf') + closest_pt = None + hit = False + hitCylinder = False + + for i in [i1, i2, i3]: + + if i[0]: + hit = True + pt = i[1] + + if distance(sa, pt) < dist: + closest_pt = pt + + dist = min(dist, distance(sa, pt)) + # draw_locator(i1[2], 'i1') + + return (hit, closest_pt, hitCylinder) + + +def checkCollision(cur_pos, pre_pos, capsuleLst, isRevert): + # calculate collision with all the capsule in scene + if isRevert: + sa = cur_pos + sb = pre_pos + else: + sb = cur_pos + sa = pre_pos + + isHited = False + closest_pt_dict = {} + + for obj in capsuleLst: + objChildren = pm.listRelatives(obj, children=1, type='transform') + p = objChildren[0].getTranslation(space='world') + q = objChildren[1].getTranslation(space='world') + r = obj.getAttr('scaleZ') * 1 + + hit, closest_pt, hitCylinder = segment_capsule_isect(sa, sb, p, q, r) + + if hit: + isHited = True + closest_pt_dict[obj.name()] = [obj, closest_pt] + # drawDebug_box(closest_pt) + + if isHited: + pt_length = 9999 + closest_pt = None + col_obj = None + + for pt in list(closest_pt_dict.keys()): + lLength = (closest_pt_dict[pt][1] - pre_pos).length() + + if lLength < pt_length: + pt_length = lLength + closest_pt = closest_pt_dict[pt][1] + col_obj = closest_pt_dict[pt][0] + + # return col pt and col_body speed + return closest_pt, col_obj, hitCylinder + else: + return None, None, None + + +def ckeckPointInTri(pos, pa, pb, pc): + ra = math.acos(((pa - pos).normal()).dot((pb - pos).normal())) + ra = dt.degrees(ra) + rb = math.acos(((pb - pos).normal()).dot((pc - pos).normal())) + rb = dt.degrees(rb) + rc = math.acos(((pc - pos).normal()).dot((pa - pos).normal())) + rc = dt.degrees(rc) + + return (abs(ra + rb + rc) > 359) + + +def getVertexPositions(obj): + vertex_positions_list = [] + + for vertex in obj.vtx: + vertex_positions_list.append(vertex.getPosition(space='world')) + + return vertex_positions_list + + +def checkPlaneCollision(objPos, childPos, colPlane): + + v_coords = getVertexPositions(colPlane) + + collision_plane_matrix = pm.xform(colPlane, worldSpace=1, matrix=1, q=1) + n = dt.Vector(collision_plane_matrix[4:7]) # Y axis direction of plane + q = v_coords[1] + d = n.dot(q) + + # get obj distance to plane + toPlaneDistance = dist_to_plane(objPos, n, d) + toPlaneDistance_child = dist_to_plane(childPos, n, d) + + # child projection position on plane + projectPos_child = proj_pt_to_plane(childPos, n, d) + + inPlane = False + + if ckeckPointInTri(projectPos_child, v_coords[0], v_coords[1], v_coords[2]): + inPlane = True + elif ckeckPointInTri(projectPos_child, v_coords[3], v_coords[1], v_coords[2]): + inPlane = True + + # bone above plane and bone child under plane and child project point on plane + # means has collision with plane + if (toPlaneDistance > 0) and (toPlaneDistance_child < 0) and inPlane: + return projectPos_child + else: + return None diff --git a/2025/scripts/animation_tools/springmagic/ui.py b/2025/scripts/animation_tools/springmagic/ui.py new file mode 100644 index 0000000..abbcf44 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/ui.py @@ -0,0 +1,460 @@ +import os +import time +import inspect +import webbrowser +import urllib.request, urllib.error, urllib.parse +import random +import datetime +import maya.mel as mel +import pymel.core as pm + +from . import core as core + +from shutil import copyfile + +kSpringMagicVersion = 30500 + +scriptName = inspect.getframeinfo(inspect.currentframe()).filename +scriptPath = os.path.dirname(os.path.abspath(scriptName)) + +# Parameter Initialization +ui_file = scriptPath + os.sep + 'springMagic.ui' + +# Constants +kVimeoLink = r'' +kYoutubeLink = r'https://animbai.com/2017/10/14/skintools-tutorials/' + +kUpdateLink = r'https://animbai.com/category/download/' +kVersionCheckLink = r'http://animbai.com/skintoolsver/' +kOldPersonalLink = r'http://www.scriptspot.com/3ds-max/scripts/spring-magic' + + +def widgetPath(windowName, widgetNames): + """ + @param windowName: Window instance name to search + @param widgetNames: list of names to search for + """ + returnDict = {} + mayaWidgetList = pm.lsUI(dumpWidgets=True) + + for widget in widgetNames: + for mayaWidget in mayaWidgetList: + if windowName in mayaWidget: + if mayaWidget.endswith(widget): + returnDict[widget] = mayaWidget + + return returnDict + + +class SpringMagicWidget(): + + def __init__(self, *args, **kwargs): + self.init() + + def init(self): + try: + pm.deleteUI(self.ui) + except Exception: + pass + + # title = pm.window(pm.loadUI(ui_file = ui_file)) + + self.ui = pm.loadUI(f=ui_file) + + ui_widget_list = [ + 'main_progressBar', + 'main_processLabel', + 'main_textEdit', + 'main_lang_id', + 'spring_language_list', + 'springSpring_lineEdit', + 'springSubs_lineEdit', + 'springXspring_lineEdit', + 'springTension_lineEdit', + 'springExtend_lineEdit', + 'springInertia_lineEdit', + 'springSubDiv_lineEdit', + 'springLoop_checkBox', + 'springPoseMatch_checkBox', + 'springClearSubFrame_checkBox', + 'springFrom_lineEdit', + 'springEnd_lineEdit', + 'springActive_radioButton', + 'springFrom_radioButton', + # 'springUpAxis_comboBox', + 'springApply_Button', + 'springCapsule_checkBox', + 'springFastMove_checkBox', + 'springFloor_checkBox', + 'springFloor_lineEdit', + 'springBindPose_button', + 'springStraight_button', + 'springCopy_button', + 'springPaste_button', + # 'donateBitcoin_lineEdit', + 'miscUpdate_pushButton', + 'springAddBody_Button', + 'springClearBody_Button', + 'springAddPlane_Button', + 'springAddWindCmd', + 'springBind_Button', + 'springBake_Button', + 'shelf_button', + 'vimeo_pushButton', + 'language_button', + 'statusbar', + 'springWind_Button'] + + self.uiObjects = widgetPath(self.ui, ui_widget_list) + + # Main UI + self.main_progressBar = pm.progressBar(self.uiObjects['main_progressBar'], edit=True) + self.main_processLabel = pm.text(self.uiObjects['main_processLabel'], edit=True) + self.main_lineEdit = pm.ui.PyUI(self.uiObjects['main_textEdit'], edit=True) + self.lang_id = pm.text(self.uiObjects['main_lang_id'], edit=True) + + self.language_list = pm.textScrollList(self.uiObjects['spring_language_list'], edit=True, + selectCommand=self.languageSelectedCmd, visible=False) + + self.spring_lineEdit = pm.textField(self.uiObjects['springSpring_lineEdit'], edit=True, + changeCommand=self.springRatioChangeCmd) + self.subs_lineEdit = pm.textField(self.uiObjects['springSubs_lineEdit'], edit=True) + self.Xspring_lineEdit = pm.textField(self.uiObjects['springXspring_lineEdit'], edit=True, + changeCommand=self.twistChangeCmd) + self.tension_lineEdit = pm.textField(self.uiObjects['springTension_lineEdit'], edit=True, + changeCommand=self.tensionChangeCmd) + self.extend_lineEdit = pm.textField(self.uiObjects['springExtend_lineEdit'], edit=True, + changeCommand=self.extendChangeCmd) + self.inertia_lineEdit = pm.textField(self.uiObjects['springInertia_lineEdit'], edit=True, + changeCommand=self.inertiaChangeCmd) + self.sub_division_lineEdit = pm.textField(self.uiObjects['springSubDiv_lineEdit'], edit=True, + changeCommand=self.subDivChangeCmd) + self.loop_checkBox = pm.checkBox(self.uiObjects['springLoop_checkBox'], edit=True) + self.pose_match_checkBox = pm.checkBox(self.uiObjects['springPoseMatch_checkBox'], edit=True) + self.clear_subframe_checkBox = pm.checkBox(self.uiObjects['springClearSubFrame_checkBox'], edit=True) + self.from_lineEdit = pm.textField(self.uiObjects['springFrom_lineEdit'], edit=True) + self.end_lineEdit = pm.textField(self.uiObjects['springEnd_lineEdit'], edit=True) + self.active_radioButton = pm.radioButton(self.uiObjects['springActive_radioButton'], edit=True) + self.from_radioButton = pm.radioButton(self.uiObjects['springFrom_radioButton'], edit=True) + # self.upAxis_comboBox = pm.optionMenu(self.uiObjects['springUpAxis_comboBox'], edit=True) + self.apply_button = pm.button(self.uiObjects['springApply_Button'], edit=True, command=self.applyCmd) + self.add_body_button = pm.button(self.uiObjects['springAddBody_Button'], edit=True, command=self.addBodyCmd) + self.clear_body_button = pm.button(self.uiObjects['springClearBody_Button'], edit=True, + command=self.clearBodyCmd) + self.add_plane_button = pm.button(self.uiObjects['springAddPlane_Button'], edit=True, + command=self.createColPlaneCmd) + self.wind_button = pm.button(self.uiObjects['springWind_Button'], edit=True, command=self.addWindCmd) + self.bind_button = pm.button(self.uiObjects['springBind_Button'], edit=True, command=self.bindControlsCmd) + self.bake_button = pm.button(self.uiObjects['springBake_Button'], edit=True, command=self.clearBindCmd) + self.shelf_button = pm.button(self.uiObjects['shelf_button'], edit=True, command=self.goShelfCmd) + self.vimeo_button = pm.button(self.uiObjects['vimeo_pushButton'], edit=True, command=self.youtubeCmd) + self.language_button = pm.button(self.uiObjects['language_button'], edit=True, command=self.languageCmd) + + self.collision_checkBox = pm.checkBox(self.uiObjects['springCapsule_checkBox'], edit=True) + self.fast_move_checkBox = pm.checkBox(self.uiObjects['springFastMove_checkBox'], edit=True) + self.floor_checkBox = pm.checkBox(self.uiObjects['springFloor_checkBox'], edit=True) + self.floor_lineEdit = pm.textField(self.uiObjects['springFloor_lineEdit'], edit=True, + changeCommand=self.twistChangeCmd) + + self.bind_pose_button = pm.button(self.uiObjects['springBindPose_button'], edit=True, command=self.setCmd) + self.straight_button = pm.button(self.uiObjects['springStraight_button'], edit=True, command=self.straightCmd) + self.copy_button = pm.button(self.uiObjects['springCopy_button'], edit=True, command=self.copyCmd) + self.paste_button = pm.button(self.uiObjects['springPaste_button'], edit=True, command=self.pasteCmd) + + # self.statusbar = pm.button(self.uiObjects['statusbar'], edit=True, menuItemCommand=self.testCmd) + + self.misc_update_button = pm.button(self.uiObjects['miscUpdate_pushButton'], edit=True, + command=self.updatePageCmd) + + self.spam_word = ['', '', '', '', ''] + + def show(self): + + pm.showWindow(self.ui) + + self.checkUpdate() + + def progression_callback(self, progression): + pm.progressBar(self.main_progressBar, edit=True, progress=progression) + + ############################################# + # Buttons callbacks + ############################################ + + def showSpam(self, *args): + sWord = self.spam_word[random.randint(0, 4)] + # print as unicode\ + kwargs = {"edit": True} + sWord = sWord if isinstance(sWord, str) else str(sWord, "utf8", errors="ignore") + kwargs.setdefault("label", sWord) + + pm.text(self.main_processLabel, **kwargs) + + def pasteCmd(self, *args): + core.pasteBonePose() + + def setCmd(self, *args): + + picked_bones = pm.ls(sl=1, type='joint') + + if picked_bones: + self.apply_button.setEnable(False) + + core.bindPose() + + # Select only the joints + pm.select(picked_bones) + + self.apply_button.setEnable(True) + + def straightCmd(self, *args): + + picked_bones = pm.ls(sl=1, type='joint') + + if picked_bones: + self.apply_button.setEnable(False) + + for bone in picked_bones: + core.straightBonePose(bone) + + # Select only the joints + pm.select(picked_bones) + + self.apply_button.setEnable(True) + + def applyCmd(self, *args): + picked_transforms = pm.ls(sl=1, type='transform') + + if picked_transforms: + self.apply_button.setEnable(False) + + pm.text(self.main_processLabel, edit=True, label='Calculating Bone Spring... (Esc to cancel)') + + springRatio = 1 - float(self.spring_lineEdit.getText()) + twistRatio = 1 - float(self.Xspring_lineEdit.getText()) + isLoop = bool(self.loop_checkBox.getValue()) + isPoseMatch = bool(self.pose_match_checkBox.getValue()) + isFastMove = self.fast_move_checkBox.getValue() + isCollision = self.collision_checkBox.getValue() + + subDiv = 1.0 + if isCollision: + subDiv = float(self.sub_division_lineEdit.getText()) + + # get frame range + if self.active_radioButton.getSelect(): + startFrame = int(pm.playbackOptions(q=1, minTime=1)) + endFrame = int(pm.playbackOptions(q=1, maxTime=1)) + else: + startFrame = int(self.from_lineEdit.getText()) + endFrame = int(self.end_lineEdit.getText()) + + tension = float(self.tension_lineEdit.getText()) + inertia = float(self.inertia_lineEdit.getText()) + extend = float(self.extend_lineEdit.getText()) + + wipeSubFrame = self.clear_subframe_checkBox.getValue() + + spring = core.Spring(springRatio, twistRatio, tension, extend, inertia) + springMagic = core.SpringMagic(startFrame, endFrame, subDiv, isLoop, isPoseMatch, isCollision, isFastMove, + wipeSubFrame) + + startTime = datetime.datetime.now() + + try: + core.startCompute(spring, springMagic, self.progression_callback) + + deltaTime = (datetime.datetime.now() - startTime) + + pm.text(self.main_processLabel, edit=True, + label="Spring Calculation Time: {0}s".format(deltaTime.seconds)) + + except ValueError as exception: + pm.text(self.main_processLabel, edit=True, label='Process aborted') + pm.warning(exception) + + # Select only the joints + pm.select(picked_transforms) + + pm.progressBar(self.main_progressBar, edit=True, progress=0) + + self.apply_button.setEnable(True) + + def copyCmd(self, *args): + core.copyBonePose() + + def webCmd(self, *args): + # open my linked in page :) + webbrowser.open(kOldPersonalLink, new=2) + + def twistChangeCmd(self, *args): + self.limitTextEditValue(self.Xspring_lineEdit, defaultValue=0.7) + + def extendChangeCmd(self, *args): + self.limitTextEditValue(self.extend_lineEdit, defaultValue=0.0) + + def inertiaChangeCmd(self, *args): + self.limitTextEditValue(self.inertia_lineEdit, defaultValue=0.0) + + def springRatioChangeCmd(self, *args): + self.limitTextEditValue(self.spring_lineEdit, defaultValue=0.7) + + def tensionChangeCmd(self, *args): + self.limitTextEditValue(self.tension_lineEdit, defaultValue=0.5) + + def subDivChangeCmd(self, *args): + # self.limitTextEditValue(self.sub_division_lineEdit, defaultValue=1) + pass + + def addWindCmd(self, *args): + core.addWindObj() + + def addBodyCmd(self, *args): + core.addCapsuleBody() + + def createColPlaneCmd(self, *args): + core.createCollisionPlane() + + def removeBodyCmd(self, *args): + core.removeBody(clear=False) + + def clearBodyCmd(self, *args): + core.removeBody(clear=True) + + def bindControlsCmd(self, *args): + core.bindControls() + + def clearBindCmd(self, *args): + + # get frame range + if self.active_radioButton.getSelect(): + startFrame = int(pm.playbackOptions(q=1, minTime=1)) + endFrame = int(pm.playbackOptions(q=1, maxTime=1)) + else: + startFrame = int(self.from_lineEdit.getText()) + endFrame = int(self.end_lineEdit.getText()) + + core.clearBind(startFrame, endFrame) + + def goShelfCmd(self, *args): + parentTab = mel.eval( + '''global string $gShelfTopLevel;string $shelves = `tabLayout -q -selectTab $gShelfTopLevel`;''') + imageTitlePath = scriptPath + os.sep + "icons" + os.sep + "Title.png" + commandLine = "import springmagic\nspringmagic.main()" + + pm.shelfButton(commandRepeatable=True, image1=imageTitlePath, label="Spring Magic", parent=parentTab, + command=commandLine) + + def languageCmd(self, *args): + self.language_list.setVisible(not self.language_list.getVisible()) + + def languageSelectedCmd(self, *args): + self.language_list.setVisible(False) + self.applyLanguage(int(self.language_list.getSelectIndexedItem()[0])) + + def youtubeCmd(self, *args): + try: + webbrowser.open(kYoutubeLink, new=2) + except Exception: + pass + + def vimeoCmd(self, *args): + # try: + # webbrowser.open(kVimeoLink, new=2) + # except Exception: + # pass + pass + + def updatePageCmd(self, *args): + try: + webbrowser.open(kUpdateLink, new=2) + except Exception: + pass + + def applyLanguage(self, lanId): + lanDict = {1: '_chn', 2: '_eng', 3: '_jpn'} + + if lanId in list(lanDict.keys()): + # get new language ui file path + new_ui_file = scriptPath + os.sep + os.path.basename(ui_file).split('.')[0] + lanDict[lanId] + '.' + \ + os.path.basename(ui_file).split('.')[1] + copyfile(new_ui_file, ui_file) + + # Reload interface + self.init() + self.show() + + def detectMayaLanguage(self): + mayaLan = None + try: + mayaLan = os.environ['MAYA_UI_LANGUAGE'] + except Exception: + import locale + mayaLan = locale.getdefaultlocale()[0] + + lanDict = {'zh_CN': 1, 'en_US': 2, 'ja_JP': 3} + self.applyLanguage(lanDict[mayaLan]) + + def printTextEdit(self, textEdit, inputString): + ctime = time.ctime() + ptime = ctime.split(' ') + inputString = ptime[3] + ' - ' + inputString + pm.scrollField(textEdit, edit=True, insertionPosition=0, insertText=inputString + '\n') + + def checkUpdate(self): + + self.misc_update_button.setVisible(0) + + page_content = None + + site = kVersionCheckLink + hdr = { + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', + 'Accept-Encoding': 'none', + 'Accept-Language': 'en-US,en;q=0.8', + 'Connection': 'keep-alive'} + + req = urllib.request.Request(site, headers=hdr) + + try: + page = urllib.request.urlopen(req, timeout=5) + page_content = page.read() + except Exception: + print('checkUpdate failed') + + if page_content: + if isinstance(page_content, bytes): + page_content = page_content.decode("utf-8") + if len(page_content.split('|springMagic|')) > 1: + new_kSpringMagicVersion = int(page_content.split('|springMagic|')[1]) + + if new_kSpringMagicVersion > kSpringMagicVersion: + self.misc_update_button.setVisible(1) + + self.spam_word = [] + + prefix = '|spam' + suffix = '|' + + if self.lang_id.getLabel() == 'chn': + suffix = 'chn|' + + self.spam_word = [page_content.split(prefix + str(i) + suffix)[1] for i in range(1, 6)] + else: + pm.text(self.main_processLabel, edit=True, label='Check update failed, try later.') + + self.showSpam() + + def limitTextEditValue(self, ui_object, minValue=0, maxValue=1, roundF=2, defaultValue=0): + value = 0 + + try: + value = float(ui_object.getText()) + value = round(value, roundF) + value = max(min(maxValue, value), minValue) + except Exception: + value = defaultValue + + ui_object.setText(str(value)) diff --git a/2025/scripts/animation_tools/springmagic/utility.py b/2025/scripts/animation_tools/springmagic/utility.py new file mode 100644 index 0000000..3e83880 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/utility.py @@ -0,0 +1,56 @@ +import pymel.core as pm +import pymel.core.datatypes as dt + + +########################## +# Usefull function +########################## + +def clamp(n, minn, maxn): + return max(min(maxn, n), minn) + + +def get_node(name): + node_list = pm.ls(name) + node = None + + if node_list: + node = node_list[0] + + return node + + +def get_matrix(obj): + return pm.xform(obj, worldSpace=1, matrix=1, q=1) + + +def frange(start, stop=None, step=None): + # if set start=0.0 and step = 1.0 if not specified + start = float(start) + + if stop is None: + stop = start + 0.0 + start = 0.0 + + if step is None: + step = 1.0 + + # print("start = ", start, "stop = ", stop, "step = ", step) + + count = 0 + while True: + temp = float(start + count * step) + if step > 0 and temp >= stop: + break + elif step < 0 and temp <= stop: + break + yield temp + count += 1 + + +def get_translation(n): + return dt.Vector(pm.xform(n, worldSpace=1, translation=1, query=1)) + + +def get_rotation(n): + return pm.xform(n, worldSpace=1, rotation=1, query=1) diff --git a/2025/scripts/animation_tools/springmagic/安装说明.txt b/2025/scripts/animation_tools/springmagic/安装说明.txt new file mode 100644 index 0000000..e756a06 --- /dev/null +++ b/2025/scripts/animation_tools/springmagic/安装说明.txt @@ -0,0 +1,13 @@ +1. 解压缩 springmagic.zip 并复制 "springmagic" 目录至位于 Windows 用户路径下的 Maya 脚本目录 +例如 + "C:\Users\你的用户名\Documents\maya\scripts" +2. 启动 Maya,在 Maya 里运行如下 Python 命令, 会出现工具界面 + import springmagic + springmagic.main() +3. 用工具界面右上方的创建快捷按钮功能,在书签栏创建一个快捷按钮,方便下次使用 + + +复制这个 + +import springmagic +springmagic.main() \ No newline at end of file diff --git a/2025/scripts/modeling_tools/ModIt/ModIt_Global.py b/2025/scripts/modeling_tools/ModIt/ModIt_Global.py index 94f8a39..46a5b7c 100644 --- a/2025/scripts/modeling_tools/ModIt/ModIt_Global.py +++ b/2025/scripts/modeling_tools/ModIt/ModIt_Global.py @@ -1,43 +1,44 @@ ##GLOBAL VARIABLEs -try: - from PySide6 import QtWidgets, QtCore, QtGui - from PySide6.QtWidgets import * - from PySide6.QtGui import * - from PySide6.QtCore import * - from shiboken6 import wrapInstance - -except ImportError: - from PySide2 import QtWidgets, QtCore, QtGui - from shiboken2 import wrapInstance - from PySide2.QtGui import QIcon - from PySide2.QtWidgets import QWidget - import shiboken2 - +from PySide2 import QtWidgets, QtCore, QtGui from maya import cmds as mc +import maya.mel as mel import json +from .Qt import QtWidgets, QtCore, QtCompat import os import maya.cmds as cmds from maya import OpenMayaUI as omui +# Special cases for different Maya versions +try: + from shiboken2 import wrapInstance +except ImportError: + from shiboken import wrapInstance + +try: + from PySide2.QtGui import QIcon + from PySide2.QtWidgets import QWidget +except ImportError: + from PySide.QtGui import QIcon, QWidget from . import ModIt_CSS ##_____________________________________________PATH +MODIT_DIR = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/') USERAPPDIR = mc.internalVar(userAppDir=True) VERSION = mc.about(v=True) -IconsPathThemeClassic = os.path.join(USERAPPDIR, VERSION+'/scripts/ModIt/Icons/Theme_Classic/') -ToolPath = os.path.join(USERAPPDIR, VERSION+'/scripts/ModIt/Tools/') -PreferencePath = os.path.join(USERAPPDIR, VERSION+'/scripts/ModIt/Preferences/') -PlugInsPath = os.path.join(USERAPPDIR, VERSION+'/plug-ins') -PrefIcons = os.path.join(USERAPPDIR, VERSION+'/prefs/icons') -UserScriptFolder = os.path.join(USERAPPDIR, VERSION+'/scripts') -RessourcePath = os.path.join(USERAPPDIR, VERSION+'/scripts/ModIt/Ressources/') +IconsPathThemeClassic = os.path.join(MODIT_DIR, 'Icons/Theme_Classic/').replace('\\', '/') +ToolPath = os.path.join(MODIT_DIR, 'Tools/').replace('\\', '/') +PreferencePath = os.path.join(MODIT_DIR, 'Preferences/').replace('\\', '/') +PlugInsPath = os.path.join(USERAPPDIR, VERSION+'/plug-ins').replace('\\', '/') +PrefIcons = os.path.join(USERAPPDIR, VERSION+'/prefs/icons').replace('\\', '/') +UserScriptFolder = os.path.join(USERAPPDIR, VERSION+'/scripts').replace('\\', '/') +RessourcePath = os.path.join(MODIT_DIR, 'Ressources/').replace('\\', '/') ##_____________________________________________PREFERENCES -ModItTitle = "ModIt - 3.3" +ModItTitle = "ModIt - 3.1.1" ##_____________________________________________UI diff --git a/2025/scripts/modeling_tools/ModIt/Preferences/TabOpen.json b/2025/scripts/modeling_tools/ModIt/Preferences/TabOpen.json index c9862c0..dbf9e29 100644 --- a/2025/scripts/modeling_tools/ModIt/Preferences/TabOpen.json +++ b/2025/scripts/modeling_tools/ModIt/Preferences/TabOpen.json @@ -1 +1 @@ -{"TAB_OPEN": 0} \ No newline at end of file +{"TAB_OPEN": 2} \ No newline at end of file diff --git a/2025/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini b/2025/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini index 0f863b9..538c2cd 100644 --- a/2025/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini +++ b/2025/scripts/modeling_tools/ModIt/Preferences/settingsFile.ini @@ -1,2 +1,2 @@ [General] -windowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x5\xce\0\0\x2\x31\0\0\a!\0\0\x4\xf1\0\0\x5\xce\0\0\x2^\0\0\a!\0\0\x4\xf1\0\0\0\0\0\0\0\0\xf\0\0\0\x5\xce\0\0\x2^\0\0\a!\0\0\x4\xf1) +windowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x4V\0\0\0q\0\0\x5\xa9\0\0\x3\x37\0\0\x4V\0\0\0\x90\0\0\x5\xa9\0\0\x3\x37\0\0\0\0\0\0\0\0\a\x80\0\0\x4V\0\0\0\x90\0\0\x5\xa9\0\0\x3\x37) diff --git a/2025/scripts/modeling_tools/__init__.py b/2025/scripts/modeling_tools/__init__.py index cb40630..e4383fc 100644 --- a/2025/scripts/modeling_tools/__init__.py +++ b/2025/scripts/modeling_tools/__init__.py @@ -9,5 +9,6 @@ General modeling utilities from .batchextrusion import show_batch_extrusion_ui __all__ = [ - 'show_batch_extrusion_ui' + 'show_batch_extrusion_ui', + 'creaseplus' ] diff --git a/2025/scripts/modeling_tools/creaseplus/CreasePlus.mel b/2025/scripts/modeling_tools/creaseplus/CreasePlus.mel new file mode 100644 index 0000000..aa12154 --- /dev/null +++ b/2025/scripts/modeling_tools/creaseplus/CreasePlus.mel @@ -0,0 +1,1153 @@ +//AUTHOR : BAIDHIR HIDAIR © 2017. +//don't modify , don't distribute. + +//preprocessors +{//dumpster start +global int $cp_maya_v1; +string $cp_get_maya_v = `about -v`; + +string $cp_token_array[]; + +if(`tokenize $cp_get_maya_v "Extension Student" $cp_token_array`){ + $cp_get_maya_v = `stringArrayToString $cp_token_array ""`; +} + +$cp_maya_v1 = (int) $cp_get_maya_v; + +}//dumpster end + +// +if(!`namespace -ex ":cpB"`){ + namespace -add "cpB"; +} + +if(!`dragAttrContext -ex "cpCtx"`) + dragAttrContext "cpCtx"; + + if(!`curveCVCtx -ex cpCurvectx`) + curveCVCtx -d 1 -n "cpCurvectx"; +///////////////////////////////////////////////////// LOCAL REALM +global proc string cpGetShade(string $Shape[]){ + +string $sg; + +string $Sgs[] = `ls -typ "shadingEngine"`; + +for ( $i in $Sgs ){if ( `sets -isMember $i $Shape[0]` ){$sg = $i; break;}} + +return $sg; +} + +proc int cpIsBoolOp(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "BoolOp"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".BoolOp")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + + +global proc int cpIsBvlOp(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "hOffset"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".hOffset")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + +proc int cpIsMir(string $op){ + +int $isop; + +string $opAttr[] = `listAttr -ud $op`; + +for($i in $opAttr){ + if($i == "mAxis"){ + string $attrCo[] = `connectionInfo -dfs ($op + ".mAxis")`; + if($attrCo[0] != ""){$isop = 1; break;} + } +} +return $isop; +} + +proc string cpGetCamDir(){ + + string $activePanel = `getPanel -wf`; + + if(`getPanel -to $activePanel` != "modelPanel"){error "get In a modeling View!\n";} + + vector $camPos = eval("camera -q -p `modelEditor -q -cam " + $activePanel + "`"); + + vector $camTarget = eval("camera -q -wci `modelEditor -q -cam " + $activePanel + "`"); + + + vector $cameraDir = $camTarget - $camPos; + + vector $normalizeDir = unit($cameraDir); + + $normalizeDir = abs($normalizeDir); + + if (($normalizeDir.x) > ($normalizeDir.y) && ($normalizeDir.x) > ($normalizeDir.z)){ + return "x"; + } + else if (($normalizeDir.y) > ($normalizeDir.x) && ($normalizeDir.y) > ($normalizeDir.z)){ + return "y"; + } + else if (($normalizeDir.z) > ($normalizeDir.y) && ($normalizeDir.z) > ($normalizeDir.x)){ + return "z"; + } + + return ""; +} + +proc float[] cpCoi(string $op){ + + float $coi[]; + float $coords1[] = `exactWorldBoundingBox $op`; + + $coi[0] = ($coords1[3] - $coords1[0]); + $coi[1] = ($coords1[4] - $coords1[1]); + $coi[2] = ($coords1[5] - $coords1[2]); + + $coi[3] = ($coords1[0] + $coords1[3]) * 0.5; + $coi[4] = ($coords1[1] + $coords1[4]) * 0.5; + $coi[5] = ($coords1[2] + $coords1[5]) * 0.5; + + + return $coi; +} + +proc cpGetGoz(){ + if(`about -win`){ + //For Windows + int $gozTest = `filetest -f "C:/Users/Public/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel"`; + string $sGoz = "source " + "\"C:/Users/Public/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel\""; + if($gozTest == 0){ + warning "To use this feature you need Goz script from Pixologic Zbrush.\n"; + return; + } + eval($sGoz); + }else{ + //For Mac + int $gozTest = `filetest -f "/Users/Shared/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel"`; + string $sGoz = "source " + "\"/Users/Shared/Pixologic/GoZApps/Maya/GoZBrushFromMaya.mel\""; + if($gozTest == 0){ + warning "To use this feature you need Goz script from Pixologic Zbrush.\n"; + return; + } + eval($sGoz); + } +} + +proc cpNodBaker(string $nod){ + + string $toPlug[] = `listConnections - p 1 - d 1 - s 0 $nod`; + if (size($toPlug) < 1) { + error "Boolean is not connected directly to the mesh. Simply delete your history"; + } + + string $fromPlug[] = `listConnections - p 1 - d 0 - s 1 $toPlug[0]`; + if (size($fromPlug) < 1) { + error "Boolean is not connected directly to the mesh. Simply delete your history"; + } + + + string $inTheFuture[] = `listHistory - f 1 $nod`; + if (size($fromPlug) < 1) { + error "Impossible: there is future."; + } + + string $shape; + int $foundIt = false; + for ($shape in $inTheFuture) { + if ("mesh" == `nodeType $shape`) { + $foundIt = true; + break; + } + } + + if (!$foundIt) { + error "Cannot find the polygon shape in the future of this node."; + } + + string $trans[0] = `listRelatives - p $shape`; + if (size($trans) < 1) { + error "Impossible: there must be a parent transform"; + } + + string $newShapeName = $shape + "Baked#"; + string $newShape = `createNode mesh - n $newShapeName - p $trans[0]`; + + disconnectAttr $fromPlug[0] $toPlug[0]; + connectAttr $fromPlug[0]($newShape + ".i"); + connectAttr($newShape + ".o") $toPlug[0]; + + delete - ch $newShape; + + setAttr($newShape + ".io") 1; +} +///////////////////////////////////////////////////// GLOBAL REALM ///////////////////////////////////// + +global proc cpAttrSwitch(){ + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + +global int $iterator; + +if(`currentCtx` != "cpCtx"){ + $iterator = 0; +} + +if(`cpIsBoolOp $op[0]` == 1){ + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + switch($iterator){ + case 0: + setAttr ($op[0] + ".BoolOp") 2; + break; + case 1: + setAttr ($op[0] + ".BoolOp") 1; + break; + case 2: + setAttr ($op[0] + ".BoolOp") 3; + break; + default: + setAttr ($op[0] + ".BoolOp") 2; + $iterator = 0; + break; + } + $iterator++; +}else if(`cpIsBvlOp $op[0]` == 1){ + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + switch($iterator){ + case 0: + dragAttrContext -e -ct ($op[0] + ".hOffset") "cpCtx"; print "Switch to H Offset"; + break; + case 1: + dragAttrContext -e -ct ($op[0] + ".hDivisions") "cpCtx"; print "Switch to H Divisions"; + break; + default: + dragAttrContext -e -ct ($op[0] + ".hOffset") "cpCtx"; print "Switch to H Offset"; + $iterator = 0; + break; + } + $iterator++; +}else if(`cpIsMir $op[0]` == 1){ + + dragAttrContext -e -r "cpCtx"; + setToolTo "cpCtx"; + + if($cp_maya_v1 > 2016){ + switch($iterator){ + case 0: + setAttr ($op[0] + ".mirrorSide") 0; print "Switch to Positive Side Symmetry"; + break; + case 1: + setAttr ($op[0] + ".mirrorSide") 1; print "Switch to Negative Side Symmetry"; + break; + default: + setAttr ($op[0] + ".mirrorSide") 0; + $iterator = 0; + break; + } + }else{ + switch($iterator){ + case 0: + setAttr ($op[0] + ".mAxis") 0; + break; + case 1: + setAttr ($op[0] + ".mAxis") 1; print "Switch to -X"; + break; + case 2: + setAttr ($op[0] + ".mAxis") 2; + break; + case 3: + setAttr ($op[0] + ".mAxis") 3; print "Switch to -Y"; + break; + case 4: + setAttr ($op[0] + ".mAxis") 4; + break; + case 5: + setAttr ($op[0] + ".mAxis") 5; print "Switch to -Z"; + break; + default: + setAttr ($op[0] + ".mAxis") 0; + $iterator = 0; + break; + } + } + $iterator++; +}else{ + setToolTo moveSuperContext; warning "There's no attributes to 'cycle' on the Object.\n"; +} + +} + +global proc cpDisplayBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $below1[] = `listRelatives -c -f $buf`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + setAttr ($i + ".overrideEnabled") 1; + + setAttr ($i + ".overrideShading") 0; + setAttr ($i + ".overrideColor") 1; + +} + +showHidden -a $below2; + +for($i in $below1){ + + xform -cp $i; rename $i ("cpB:" + "op#"); + +} + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpKeepBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `duplicate $buf`; + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $opCopy`; + +string $below1[] = `listRelatives -c -f $opCopy`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + setAttr ($i + ".overrideEnabled") 1; + + setAttr ($i + ".overrideShading") 0; + setAttr ($i + ".overrideColor") 1; + +} + +showHidden -a $below2; + +for($i in $below1){ + + xform -cp $i; rename $i ("cpB:" + "op#"); + +} + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpHbevel(){ + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); +string $ControlNode[]; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBvlOp $op[0]`){ + select -r $op[0]; cpAttrSwitch; return; + } +} + +if(size(`filterExpand -ex 1 -sm 34`)){ + + select -r `polyListComponentConversion -te`; + invertSelection; + +string $invId[] = `ls -sl -fl`; + +polySelectConstraint -m 0 -dis; +polySelectConstraint -m 3 -t 0x8000 -sm 1; +polySelectConstraint -m 0 -dis; + +string $HeId[] = `ls -sl -fl`; + +string $finalId[] = `stringArrayRemove $invId $HeId`; + +if(!`size $finalId`){error "No Hard edges where detected.\n";} + +$op = eval("listRelatives -p -f `listRelatives -p -f`"); + +if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 1 -sg 1 -sn 1 -sa 180 -o 0 -n "HBevel" $finalId`; +}else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0 -n "HBevel" $finalId`; +} + +string $ud[] = `listAttr -ud $op[0]`; + +if(`size $ud`){ + for($i in $ud){ + deleteAttr -at $i $op[0]; + } +} + +addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.15 $op[0]; + +connectAttr ($op[0] + ".hOffset") ($ControlNode[0] + ".offset"); + +addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $op[0]; + +connectAttr ($op[0] + ".hDivisions") ($ControlNode[0] + ".segments"); + +if($cp_maya_v1 > 2016){ + + addAttr -ln "hMitering" -k 1 -at "enum" -en "Auto=0:Star=2:Round=3" -dv 0 $op[0]; + + connectAttr ($op[0] + ".hMitering") ($ControlNode[0] + ".mitering"); +} + +select -r $op[0]; cpAttrSwitch; + +}else{ + +if(!`size $op`){error "Select at least one Object.\n";} + +for($i in $op){ + +select -r $i; + +polySelectConstraint -m 0 -dis; +polySelectConstraint -m 3 -t 0x8000 -sm 1; +polySelectConstraint -m 0 -dis; + + +if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 1 -sg 1 -sn 1 -sa 180 -o 0 -n "HBevel"`; +}else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0 -n "HBevel"`; +} + +string $ud[] = `listAttr -ud $i`; + +if(`size $ud`){ + for($j in $ud){ + deleteAttr -at $j $i; + } +} + +addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.15 $i; + +connectAttr ($i + ".hOffset") ($ControlNode[0] + ".offset"); + +addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $i; + +connectAttr ($i + ".hDivisions") ($ControlNode[0] + ".segments"); + + if($cp_maya_v1 > 2016){ + + addAttr -ln "hMitering" -k 1 -at "enum" -en "Auto=0:Round=3:Uniform=1:Star=2:None=4" -dv 0 $i; + + connectAttr ($i + ".hMitering") ($ControlNode[0] + ".mitering"); + } + +} + +select -r $op; cpAttrSwitch; + +} + +} + +global proc cpMirror(){ + + global int $cp_maya_v1; + +string $ControlMesh[] = eval("listRelatives -p -f `filterExpand -ex 1 -fp 1 -sm 12`"); + +if(!`size $ControlMesh`){error "Select at least one Object.\n";} + +if(`currentCtx` == "cpCtx"){ + if(`cpIsMir $ControlMesh[0]`){ + select -r $ControlMesh[0]; cpAttrSwitch; return; + } +} + +for($i in $ControlMesh){ + +string $ControlNode[] = `polyMirrorFace $i`; + +polyMergeVertex -d 0.015 -am 1 $i; + +string $ud[] = `listAttr -ud $i`; + +if(`size $ud`){ + for($j in $ud){ + if($j == "BoolOp"){continue;} + deleteAttr -at $j $i; + } +} + +if($cp_maya_v1 > 2016){ + + addAttr -ln "mirrorSide" -k 1 -at "enum" -en "+=0:-=1" -dv 0 $i; + + connectAttr ($i + ".mirrorSide") ($ControlNode[0] + ".axisDirection"); + + + addAttr -ln "mPosition" -k 1 -at "floatLinear" -dv `getAttr ($ControlNode[0] + ".mirrorPosition")` $i; + + connectAttr ($i + ".mPosition") ($ControlNode[0] + ".mirrorPosition"); + + + addAttr -ln "mAxis" -k 1 -at "enum" -en "X=0:Y=1:Z=2" -dv 0 $i; + + connectAttr ($i + ".mAxis") ($ControlNode[0] + ".axis"); +}else{ + + addAttr -ln "mdX" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotX")` $i; + + connectAttr ($i + ".mdX") ($ControlNode[0] + ".pivotX"); + + addAttr -ln "mdY" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotY")` $i; + + connectAttr ($i + ".mdY") ($ControlNode[0] + ".pivotY"); + + addAttr -ln "mdZ" -k 1 -at "doubleLinear" -dv `getAttr ($ControlNode[0] + ".pivotZ")` $i; + + connectAttr ($i + ".mdZ") ($ControlNode[0] + ".pivotZ"); + + addAttr -ln "mAxis" -k 1 -at "enum" -en "+X=0:-X=1:+Y=2:-Y=3:+Z=4:-Z=5" -dv 0 $i; + + connectAttr ($i + ".mAxis") ($ControlNode[0] + ".direction"); + +} + +} + +select -r $ControlMesh; cpAttrSwitch; + +} + +global proc cpPanelBool(){ + +string $buf[] = `ls -o -fl -l -sl`; + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `duplicate $opA $buf`; + +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $opD[] = `polyCBoolOp -op 3 -pcr 0 -cls 1 -ucb 1 $opCopy`; + +delete -ch $opC[0] $opD[0]; xform -cp $opC[0] $opD[0]; + +sets -e -fe $sg $opC[0] $opD[0]; + +select -r $opC[0] $opD[0]; + +} + +global proc cpMeshSlicer(){ + +string $buf[] = `filterExpand -ex 1 -sm 12`; +string $curve[] = `filterExpand -ex 1 -sm 9`; + +if(`size $buf` != 1){error;} +if(`size $curve` != 1){error;} + +makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 -pn 1 $curve[0]; + +string $dir = `cpGetCamDir`; + +int $exd; +int $cI; +string $d; + +if($dir == "x"){ + $exd = 0; + $cI = 3; + $d = "-d 1 0 0"; +}else if($dir == "y"){ + $exd = 1; + $cI = 4; + $d = "-d 0 1 0"; +}else if($dir == "z"){ + $exd = 2; + $cI = 5; + $d = "-d 0 0 1"; +}else{ + error; +} + +float $len[] = `cpCoi $buf[0]`; + +nurbsToPolygonsPref -f 3 -ucr 0 -uch 0 -pt 0 -m 0 -mt 0.1 -mrt 0; + +optionVar -iv "extrudeDirectionType" $exd; + +optionVar -fv "extrudeLength" ($len[$exd] + 1); + +string $opB[] = eval("extrude -ch 0 -rn 0 -po 1 -et 0 -upn 0 " + $d + " -l " + ($len[$exd] + 1.0) + " -ro 0 -sc 1 -dl 1 " + $curve[0]); + +string $curveShape[] = `listRelatives -c -f $curve[0]`; + +if(`getAttr ($curveShape[0] + ".form")` == 1){ + polyCloseBorder -ch 0 $opB; +} + +xform -cp $opB; delete -ch $opB; + +eval("move -" + $dir + " -rpr " + $len[$cI]); + +select -r $buf[0] $opB[0]; + +cpPanelBool; + +} + +global proc cpTglBox(){ + + string $ops[] = eval("listRelatives`ls -o -v \"cpB:*\"`"); + +for($i in $ops){ + + if(`getAttr ($i + ".overrideLevelOfDetail")`){ + + + setAttr ($i + ".overrideLevelOfDetail") 0; + + }else{ + setAttr ($i + ".overrideLevelOfDetail") 1; + } + +} + +} + +global proc cpTglBoolv(){ + + + string $vOps[] = `ls -o -v "cpB:*"`; + string $ivOps[] = `ls -o -iv "cpB:*"`; + + if (size($vOps)) + hide $vOps; + else if(size($ivOps)) + showHidden $ivOps; +} + +global proc cpHedgeSel(){ + + polySelectConstraint -m 0 -dis; + polySelectConstraint -m 3 -t 0x8000 -sm 1; + polySelectConstraint -m 0 -dis; + + hilite `ls -sl -o`; + + if(!size(`ls -sl -fl`)){error;} + +} + +global proc cpShapeShifter() { + + string $PrefsDir = (`internalVar -usd`) + "/AMTools/AMTScripts/StartShapeShifter.mel"; + int $IsValidDir = `filetest -f $PrefsDir`; + + + if($IsValidDir == 0){ + warning "Unable to start ShapeShifter,you have to purchase or update ShapeShifter for CREASE+ support.\n"; + return; + } + + eval("source " + "\"" + $PrefsDir + "\""); +} + +global proc cpGoz(){ + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(`size $op` == 0){error "There's No Selection.\n";} + + for ($i in $op){ + select -r $i; + polyCleanupArgList 4 { "0","2","0","0","1","0","0","0","0","1e-005","0","1e-005","0","1e-005","0","-1","0","0" }; + if(size(`ls -sl -fl`)){ + polyCleanupArgList 4 { "0","1","0","0","1","0","0","0","0","1e-005","0","1e-005","0","1e-005","0","-1","0","0" }; + } + } + + select -r $op; + + cpGetGoz(); + +} + +global proc cpQsmooth(){ + + string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(!`size $op`){ error "You must select Object(s) or component(s).\n"; return;} + + if(size(`filterExpand -ex 1 -sm 12`)){ + + for($i in $op){ + polySoftEdge -angle 30 -ch 1 $i; + } + }else{ + polySoftEdge -angle 30 -ch 1; + + } +} + +global proc cpHardDisplay(){ + int $g_cond[1]=`polyOptions -q -ae`; if ($g_cond[0]) polyOptions -hec; else polyOptions -ae; +} + +global proc cpmakeUV(){ + + global int $cp_maya_v1; + + string $op[] = `filterExpand -ex 1 -sm 12`; + + {// + string $listPlug[] = `pluginInfo -q -ls`; + + int $isload = stringArrayCount("Unfold3D", $listPlug); + + if($isload == 0){ + error " ' Unfold3D ' Plugin has to be loaded in order to continue.\n"; + } +}// + + for($i in $op){ + + string $opId[] = `polyListComponentConversion -tf $i`; + polyProjection -ch 1 -t "planar" -ibd on -kir -md "c" $opId; + + select -r $i; + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(!size(`ls -sl -fl`)){error ($i + "Your mesh as no hard edges, UV generation failed.\n");} + + polyMapCut -ch 1; + + $opId = `polyListComponentConversion -tuv $i`; + + if($cp_maya_v1 > 2016){ + u3dUnfold -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i; + }else{ + Unfold3D -u -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i; + } + //u3dUnfold -ite 10 -p 1 -bi 1 -tf 1 -ms 1024 -rs 0 $i;//>2016 version + + } + +select -r $op; +print "DONE!.\n"; + +} + +global proc cpCurveCham(){ + + string $cpnt[] = `ls -sl -fl`; + string $op[] = eval("listRelatives -p -f `ls -sl -o`"); + string $Ctrl[]; + + if(`size $op` != 1){ + error "Possible only on one curve.\n"; + } + + if(size(`filterExpand -ex 1 -sm 39 $cpnt`) != 2){ + error "Drag 2 Curve Points (using Shift).\n"; + } + + string $newCurve[] = `detachCurve -ch 0 -cos 1 -rpo 1`; + + if (size($newCurve) == 2){ + $Ctrl = `filletCurve -ch 1 -rpo 1 -t 1 -jn 1 -cir 1 -r 0.5 -bc 1 -d 0 -b 0 $newCurve[1] $newCurve[0]`; + + }else{ + $Ctrl = `filletCurve -ch on -rpo on -t true -jn true -cir true -r 0.5 -bc true -d 0 -b 0 $newCurve[2] $newCurve[1]`; + + } + + dragAttrContext -e -ct ($Ctrl[size($Ctrl)-1] + ".depth") "cpCtx"; + setToolTo "cpCtx"; + + +} + +global proc cpTransferBevel(){ + global int $cp_maya_v1; + string $op[] = `filterExpand -ex 1 -sm 12`; + + if(!`size $op`){error;} + + for($i = 0; $i < size($op); $i++){ + if(!`cpIsBvlOp $op[$i]`) + stringArrayRemoveAtIndex($i, $op); + } + + if(`size $op` < 2){error "TransferBevel only work for Hbevel Meshes";} + + if($cp_maya_v1 > 2016){ + float $data1 = `getAttr ($op[0] + ".hOffset")`; + int $data2 = `getAttr ($op[0] + ".hDivisions")`; + int $data3 = `getAttr ($op[0] + ".hMitering")`; + + for($i = 1; $i < size($op); $i++){ + setAttr ($op[$i] + ".hOffset") $data1; + setAttr ($op[$i] + ".hDivisions") $data2; + setAttr ($op[$i] + ".hMitering") $data3; + } + + }else{ + float $data1 = `getAttr ($op[0] + ".hOffset")`; + int $data2 = `getAttr ($op[0] + ".hDivisions")`; + + for($i = 1; $i < size($op); $i++){ + setAttr ($op[$i] + ".hOffset") $data1; + setAttr ($op[$i] + ".hDivisions") $data2; + } + } + +} + +global proc cpCleanAttrs(){ +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + + for($i in $op){ + string $cusAttrs[] = `listAttr -ud $i`; + + for($j in $cusAttrs){ + deleteAttr -at $j $i; + } + } + +} + +global proc cpBakThatNod(){ + + string $usel[] = `ls -sl -fl`; + + string $Selection[] = `filterExpand -ex 1 -sm 12`; + + if(`size $Selection` != 1){error "Select a mesh and a Node from ChannelBox(modeling Operation).\n";} + + nodBaker $usel[0]; + error "Nothing happened. You must select a mesh, then a node from the channelBox\n"; +} + +global proc cpInstanceBool(){ + +//standard bool function here +string $buf[] = `ls -o -fl -l -sl`; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBoolOp $buf[0]`){ + select -r $buf[0]; cpAttrSwitch; return; + } +} + +if(`size $buf` < 2){error;} + +//get first mesh out of the namespace no matter what : + +string $sg = eval("cpGetShade `listRelatives -c -f " + $buf[0] + "`"); + +string $opA = `rename $buf[0] "operand_A#"`; + +stringArrayRemoveAtIndex(0, $buf); + +string $opCopy[] = `instance $buf`; + +// bool: +string $opC[] = `polyCBoolOp -op 2 -pcr 0 -cls 1 -ucb 1 $opA $buf`; + +string $below1[] = `listRelatives -c -f $buf`; +string $below2[] = `listRelatives -c -f $below1`; + +for($i in $below2){ + setAttr ($i + ".intermediateObject") 0; + +} + + +addAttr -ln "BoolOp" -k 1 -at "enum" -en "Union=1:Difference=2:Intersection=3" -dv 2 $opC[0]; +connectAttr ($opC[0] + ".BoolOp") ($opC[1] + ".operation"); + +if($sg != ""){ + sets -e -fe $sg $opC[0]; +} +select -r $opC[0]; cpAttrSwitch; + +} + +global proc cpAttachCurve(){ + + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(!`size $curve`){error "You must select nurbsCurve(s).\n";} + + string $op[] = `attachCurve - ch 0 - rpo 1 - kmk 1 - m 0 - bb 0.5 - bki 0 - p 0.1`; + delete -ch $op[0]; + select -r $op[0]; +} + +global proc cpCurveBool(){ + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(`size $curve` != 2){error "You must select exactly two nurbs curves object.\n";} + + cutCurvePreset(0,1,0.01,6,0,1,0,1,2); select -cl; +} + +global proc cpCloseCurve(){ + + string $curve[] = `filterExpand -ex 1 -fp 1 -sm 9`; + + if(!`size $curve`){error "You must select nurbs curves.\n";} + + for($i in $curve){ + + + if(`getAttr ($i + ".degree")` == 3){ + + if (`getAttr ($i + ".form")` == 0){ + closeCurve -ch 0 -ps 0 -rpo 1 -bb 0.5 -bki 1 -p 0.1 $i; + }else{ + continue; + } + }else{ + + if(`getAttr ($i + ".form")` == 0){ + closeCurve -ch 0 -ps 1 -rpo 1 -bb 0.5 -bki 0 -p 0.1 $i; + }else{ + continue; + } + } + } +} + +global proc cpCurveMultiply(){ + + string $curve[] = `filterExpand -ex 1 - sm 9`; + + if(!`size $curve`){error "You must select at least one nurbs curve.\n";} + + for($i in $curve){ + + select -r $i; + selectCurveCV all; + int $numSpan = (size(`ls -sl -fl`) * 2); + select -r `eval("listRelatives -p -pa -f `ls -sl -o`")`; + rebuildCurve -ch 0 -rpo 1 -rt 0 -end 1 -kr 1 -kcp 0 -kep 1 -kt 1 -s $numSpan -d 1 -tol 0.01 $i; + } + select -r $curve; +} + +global proc cpAbout(){ + showHelp -a "http://polycount.com/discussion/173981/maya-crease-tool-for-hard-surface#latest"; +} + +global proc cpUi(){ +global string $cp_icon_path; +string $imgs = $cp_icon_path; + +if(`window -ex cpWin`){ + deleteUI cpWin; +} + +window -t "CREASE+ v 1" -tbm 1 -tlb 1 -rtf 1 -mxb 0 -bgc 0.1 0.1 0.1 cpWin; + +window -e -wh 265 300 cpWin; + +menuBarLayout -w 110 cpMenu; + menu -p cpMenu -l "Edit" -to 1 cpEdit; + menuItem -p cpEdit -l "Instance Bool" -c "cpInstanceBool"; + menuItem -p cpEdit -l "Transfer Bevel" -c "cpTransferBevel"; + menuItem -p cpEdit -l "Toggle Last" -c "cpAttrSwitch"; + menuItem -p cpEdit -l "Bake Selected Node (Channel Box)" -c "cpBakThatNod"; + menuItem -p cpEdit -l "Clean Attributes" -c "cpCleanAttrs"; + + + menu -p cpMenu -l "UV" -to 1 cpUVmenu; + menuItem -p cpUVmenu -l "Make UV" -c "cpmakeUV"; + + menu -p cpMenu -l "Help" -to 1 cpAbout; + menuItem -p cpAbout -l "About" -c "cpAbout"; + +tabLayout -p cpWin -tv 1 -tc 0 -iv 0 -cr 1 -bs "none" cpTab1; + +scrollLayout -p cpTab1 -cr 1 -bv 1 -h 235 cpMainScroll; + scrollLayout -e -pe 1 cpMainScroll; + +rowColumnLayout -p cpMainScroll -rs 1 7 -nr 3 cpmodCol; + +iconTextButton -p cpmodCol -i ($imgs + "cp_eye.png") -st "iconAndTextVertical" -fn "obliqueLabelFont" -dcc "cpTglBox" -c "cpTglBoolv" -ann "Toggle visibility of Bool Objects. Double-Click to Toggle Boxes.\n" ; + +iconTextButton -p cpmodCol -i ($imgs + "cp_bool.png") -l "Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpDisplayBool" -ann "Performs boolean operation with Bool Object Display.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_keep_bool.png") -l "Keep Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpKeepBool" -ann "Performs boolean operation with Bool Object Display While preserving the Operands.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_bevel.png") -l "HBevel" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHbevel" -ann "Performs HBevel based on Object or Face Selection.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_panelbool.png") -l "Panel Bool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpPanelBool" -ann "Creates Panels out of the Operands.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_mirror.png") -l "Mirror" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpMirror" -ann "Mirrors Selected Objects.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_sel_hard.png") -l "Get HardEdge" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHedgeSel" -ann "Select The Hard Edges of the Selected Meshes.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_ss.png") -l "ShapeShifter" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpShapeShifter" -ann "ShapeShifter support, behaves like ShapeShifter of AMTScripts.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_goz.png") -l "Zbrush" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpGoz" -ann "Sends Selected Meshes to Zbrush, fixing nGons automatically.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_quicksmooth.png") -l "30 smooth" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpQsmooth" -ann "Apply a 30° Smooth Based on Selected Meshes or component Selection.\n"; + +iconTextButton -p cpmodCol -i ($imgs + "cp_hard_display.png") -l "Hard Display" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpHardDisplay" -ann "Allow realtime display for Hard Edges.\n"; + + iconTextButton -p cpmodCol -i ($imgs + "cp_mesh_slicer.png") -l "Mesh Slicer" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpMeshSlicer" -ann "Performs Mesh Slicer (Select a curve and a Mesh).\n"; + + menuBarLayout -p cpTab1 -w 110 spMenu; + menu -p spMenu -l "SubD" -to 1 spSubD; + menuItem -p spSubD -l "Lower Res" -c "spLevel 1" ; + menuItem -p spSubD -l "Higher Res" -c "spLevel 2" ; + menuItem -p spSubD -l "Lower Weight" -c "spLevel 3" ; + menuItem -p spSubD -l "Higher Weight" -c "spLevel 4" ; + +scrollLayout -cr 1 -bv 1 -h 235 spMainScroll; + scrollLayout -e -pe 1 spMainScroll; + +rowColumnLayout -p spMainScroll -rs 1 7 -nr 3 spmodCol; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease1" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 1" -ann "Apply Crease Preset of a 1 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease2" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 2" -ann "Apply Crease Preset of a 2 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease.png") -l "Crease3" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spCreasePreset 3" -ann "Apply Crease Preset of a 3 arbitrary entensity.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_weight_tool.png") -l "Weight Tool" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spFastCrease" -ann "Weight tool alows interactive creasing with update right after.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_crease_editor.png") -l "Crease Set" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spShowCreaseEd" -ann "Opens Crease Set Editor.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_physical_crease.png") -l "Physical Crease" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spPhysicalCrease" -ann "Draw Loops around hard edges or component Selection.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_nocrease.png") -l "No Crease" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spNoCrease" -ann "Remove Creases/Weights.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_smooth.png") -l "SmoothSG" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "smoothSg" -ann "Smooth By Smoothing Groups.\n"; + +iconTextButton -p spmodCol -i ($imgs + "sp_smooth.png") -l "SmoothOS" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "spSmoothOs" -ann "Smooth the Mesh.\n"; + +scrollLayout -p cpTab1 -cr 1 -bv 1 -h 235 cpSecScroll; + scrollLayout -e -pe 1 cpSecScroll; + + rowColumnLayout -p cpSecScroll -rs 1 7 -nr 3 cpsecCol; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_draw.png") -l "Draw Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "setToolTo cpCurvectx" -ann "Enters the Draw curve context (1 degree curve).\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_bevel.png") -l "Curve Chamfer" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveCham" -ann "Performs curve Chamfer.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_attach.png") -l "Attach Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpAttachCurve" -ann "Attach seleted Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_close.png") -l "Close Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCloseCurve" -ann "Close selected Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_curve_bool.png") -l "Curve Intersection" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveBool" -ann "Intersecs selected Curves.\n"; + + iconTextButton -p cpsecCol -i ($imgs + "cp_multiply_curve.png") -l "Multiply Curve" -st "iconAndTextVertical" -fn "obliqueLabelFont" -c "cpCurveMultiply" -ann "Multiply Curve resolution by 2.\n"; + + + +tabLayout -e -tl "cpMainScroll" " " -tl "spMenu" " " -tl "cpSecScroll" " " cpTab1; + +showWindow cpWin; +} + +// Load extension file if exists +global string $cp_icon_path; +if ($cp_icon_path != "") { + string $scriptDir = `dirname $cp_icon_path`; + string $extFile = $scriptDir + "/CreasePlus_Extension1.mel"; + if (`filetest -r $extFile`) { + eval("source \"" + $extFile + "\""); + } +} \ No newline at end of file diff --git a/2025/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png b/2025/scripts/modeling_tools/creaseplus/CreasePlus_Doc.png new file mode 100644 index 0000000000000000000000000000000000000000..69e0f9e37ffa9e5a690366f4ea12180ad0ca9754 GIT binary patch literal 486881 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

x%=vPD1_?)bu!maKB>YC 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 cRcI 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%0AR+{En9+#|rM9Vx8xVxO%F52AAPC4Y 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

Kz23pt*vv-5DN?TOF%;m*RO`$AGzI}dXDA#BJT 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%0DW+D4XNN3^vN1;wf!9CqVmp3iA3jmM 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È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 lb^qh#|7Kh#`r@<&8EMpn%%{T 5){$smtLvl = 1;} + + +string $Node[0] =`polySmooth $i`; + + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + + addAttr -k 1 -ln "smoothLevel" -at "short" -dv ($smtLvl+1) -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".smoothLevel") ($Node[0] + ".divisions"); + + } + + select -r $op; + +} + +global proc smoothSg(){ // Smooth Based on Smoothing Groups + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + +if(!`size $op`){error "You must select Objects.\n";} + + +LowQualityDisplay; + + + for($i in $op){ + + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(size(`ls -sl -fl`)){polyCrease -op 2 $i; polyCrease -v 5.0 `ls -sl -fl`; } + + +string $Node1[] = `polySmooth $i`; + //basediv + + polyCrease -op 2 $i; + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + + addAttr -k 1 -ln "baseDiv" -at "short" -dv 2 -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".baseDiv") ($Node1[0] + ".divisions"); + +string $Node2[] =`polySmooth $i`; + //smoothdiv + + + addAttr -k 1 -ln "smoothDiv" -at "short" -dv 1 -hnv 1 -min 0 -max 5 $i; + + connectAttr ($i + ".smoothDiv") ($Node2[0] + ".divisions"); +} + + select -r $op; +} + +global proc spCreasePreset(int $power){// Prefab of the creasing command + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + if(!`size $op`){error "Select Objects or components.\n"; } + + polyOptions -dce 0; + + + if(size(`filterExpand -ex 1 -sm 12`)){ // if objects are selected instead + + for($i in $op){ + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if(!size(`ls -sl -fl`)){continue;} + + + if($power == 1){ + polyCrease -op 2 $i; + polyCrease -v 2.0; + }else if($power == 2){ + polyCrease -op 2 $i; + polyCrease -v 3.3; + }else if($power == 3){ + polyCrease -op 2 $i; + polyCrease -v 4.0; + }else{ + error ("argument " + $power + " has no behavior, use 1, 2, 3 instead.\n"); + } + + string $shape[0] = `listRelatives -c -f $i`; + + setAttr ($shape[0] + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + setAttr ($shape[0] + ".smoothLevel") ($smtLvl + 1); + } + select -r $op; HighQualityDisplay; + }else{ + //components + + if($power == 1){ + polyCrease -v 2.0; + }else if($power == 2){ + polyCrease -v 3.0; + }else if($power == 3){ + polyCrease -v 4.0; + }else{ + error ("argument " + $power + " has no behavior, use 1, 2, 3 instead.\n"); + } + + string $shape[0] = `listRelatives -c -f $op[0]`; + + setAttr ($shape[0] + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($op[0] + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + setAttr ($shape[0] + ".smoothLevel") ($smtLvl + 1); + + + hilite; HighQualityDisplay; + } +} + + +global proc spLevel(int $op){ //Utility for Levels of Weight and SubD + +string $ops[] = eval("listRelatives -p -f `polyListComponentConversion -tv`"); + + if(!`size $ops`){error;} + + string $edges[] = `filterExpand -ex 1 -sm 32`; + + int $itr; + + polyOptions -dce 0; + + if($op == 1){//Lower Rez + +for($i in $ops){ + + int $lvl = `getAttr ($i + ".smoothLevel")`; + + setAttr ($i + ".smoothLevel ") ($lvl-1); + +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 2){//Higher Rez + +for($i in $ops){ + + int $lvl = `getAttr ($i + ".smoothLevel")`; + + setAttr ($i + ".smoothLevel ") ($lvl+1); +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 3){ //Lower Weight + +for($i in $ops){ + + setAttr ($i + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + + + + + for($j in $edges){ + polyCrease -v ($Wval[$itr] - 1) $j; + $itr++; + } + + setAttr ($i + ".smoothLevel") ($smtLvl); + +} + +select -r $ops; HighQualityDisplay; + + }else if($op == 4){ // Higher Weight + +for($i in $ops){ + + setAttr ($i + ".osdSmoothTriangles") 1; + + float $Wval[] = `polyCrease -q -v ($i + ".e[*]")`; + + float $higherW = `spgetmaxf $Wval`; + + int $smtLvl = (int) `ceil $higherW`; + + if($smtLvl < 1){$smtLvl = 1;} + + + + for($j in $edges){ + polyCrease -v ($Wval[$itr] + 1) $j; + $itr++; + } + + setAttr ($i + ".smoothLevel") ($smtLvl + 2); +} + +select -r $ops; HighQualityDisplay; + + }else{ + error ($op + " is not an option, Try with 1, 2, 3 , 4 instead.\n"); + } + +} + + +global proc spPhysicalCrease(){// physical Crease + +global int $cp_maya_v1; + +string $op[] = eval("listRelatives -p -f `eval(\"listRelatives -p -f `polyListComponentConversion -tv`\")`"); + + string $ControlNode[]; + +if(`currentCtx` == "cpCtx"){ + if(`cpIsBvlOp $op[0]`){ + select -r $op[0]; cpAttrSwitch; return; + } +} + +if(size(`filterExpand -ex 1 -sm 12`)){ + + for($i in $op){ + + + select -r $i; + + polySelectConstraint -m 0 -dis; polySelectConstraint -m 3 -t 0x8000 -sm 1; polySelectConstraint -m 0 -dis; + + if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 0 -sg 1 -sn 1 -sa 180 -o 0`; + + }else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0`; + + } + + + string $ud[] = `listAttr -ud $i`; + + for($j in $ud){ + deleteAttr -at $j $i; + } + + addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.1 $i; + + connectAttr ($i + ".hOffset") ($ControlNode[0] + ".offset"); + + addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $i; + + connectAttr ($i + ".hDivisions") ($ControlNode[0] + ".segments"); + + } + + select -r $op; cpAttrSwitch; + +}else{ + if($cp_maya_v1 > 2016){ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -c 0 -sg 1 -sn 1 -sa 180 -o 0`; + + }else{ + $ControlNode = `polyBevel3 -af 1 -oaf 0 -sg 1 -fn 1 -sa 180 -o 0`; + + } + + string $ud[] = `listAttr -ud $op[0]`; + + for($j in $ud){ + deleteAttr -at $j $op[0]; + } + + addAttr -ln "hOffset" -k 1 -at "doubleLinear" -hnv 1 -min 0 -dv 0.1 $op[0]; + + connectAttr ($op[0] + ".hOffset") ($ControlNode[0] + ".offset"); + + addAttr -ln "hDivisions" -k 1 -at "long" -hnv 1 -min 0 -dv 1 $op[0]; + + connectAttr ($op[0] + ".hDivisions") ($ControlNode[0] + ".segments"); + + select -r $op; cpAttrSwitch; +} + +} + +global proc spShowCreaseEd(){ + python "from maya.app.general import creaseSetEditor; creaseSetEditor.showCreaseSetEditor()"; +} \ No newline at end of file diff --git a/2025/scripts/modeling_tools/creaseplus/__init__.py b/2025/scripts/modeling_tools/creaseplus/__init__.py new file mode 100644 index 0000000..243a04f --- /dev/null +++ b/2025/scripts/modeling_tools/creaseplus/__init__.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +CreasePlus MEL Tool Wrapper +Provides Python interface to launch the CreasePlus MEL tool +""" + +import maya.cmds as cmds +import maya.mel as mel +import os + + +def start(): + """Launch CreasePlus MEL tool""" + # Get the directory containing this script + script_dir = os.path.dirname(os.path.abspath(__file__)) + icon_dir = os.path.join(script_dir, 'icons').replace('\\', '/') + + # Set global MEL variable for icon path + mel.eval(f'global string $cp_icon_path = "{icon_dir}/"') + + # Source the MEL script + mel_script = os.path.join(script_dir, 'CreasePlus.mel').replace('\\', '/') + + try: + mel.eval(f'source "{mel_script}"') + mel.eval('cpUi') + print(f"CreasePlus: UI launched successfully") + except Exception as e: + print(f"CreasePlus: Error launching UI: {e}") diff --git a/2025/scripts/modeling_tools/creaseplus/cp_(read)commands.txt b/2025/scripts/modeling_tools/creaseplus/cp_(read)commands.txt new file mode 100644 index 0000000..8c14e11 --- /dev/null +++ b/2025/scripts/modeling_tools/creaseplus/cp_(read)commands.txt @@ -0,0 +1,46 @@ +cpAttrSwitch; + //Use to toggle between attributs, select object first. +cpDisplayBool; + //Perform boolean with operands display +cpKeepBool; + //perform boolean preserving the operands +cpHbevel; + //perform hBevel +cpMirror; + //Mirrors the mesh +cpPanelBool; + //Performs panel boolean : creates panel cutting/carving with operands +cpMeshSlicer; + //slice mesh with curve, select curve and mesh first. +cpTglBoolv; + //Toggle visibility of the boolean objects +cpHedgeSel; + //Select Hard edges of the selected objects +cpShapeShifter; + //triggers ShapeShifter if found on the disk +cpGoz; + //Send meshes to Zbrush, with nGon cleanup +cpQsmooth; + //Apply a 30 degree smoothing to selected objects are components +cpHardDisplay; + //Toggles display of hard edges in realtime +cpmakeUV; + //make UV based on hard edges +cpCurveCham; + //Perform curve bevel (must draw two curve point around a corner before use) +cpTransferBevel; + //transfer bevel settings from one object to the others +cpCleanAttrs; + //kills custom attributes of the objects +cpBakThatNod; + //Bake selected Node from the channel Box(select object then node) +cpInstanceBool; + // perform Instance bool + +cpAttachCurve; +cpCurveBool; +cpCloseCurve; +cpCurveMultiply; + +cpUi; + //Calls Crease+ 's UI \ No newline at end of file diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_bevel.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_bevel.png new file mode 100644 index 0000000000000000000000000000000000000000..252161dd1693934abab8bc203e8c11802e425089 GIT binary patch literal 15616 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_bool.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_bool.png new file mode 100644 index 0000000000000000000000000000000000000000..aba3c37b72d1ca7fbfa970230fff20cb5aeb995d GIT binary patch literal 15692 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 LA_DjLrxg4T64|!B literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_curve_bool.png new file mode 100644 index 0000000000000000000000000000000000000000..aba3c37b72d1ca7fbfa970230fff20cb5aeb995d GIT binary patch literal 15692 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 tTP5a9UC9>#q6w={{!J+NKpU) literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_curve_draw.png new file mode 100644 index 0000000000000000000000000000000000000000..1af7e393a94d80ea8abc2710f6d51045d1bbea91 GIT binary patch literal 15695 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 I7#O$o|I)SQdH?_b literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_eye.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_eye.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd1af163d34a478866c64245f85e2d3c0b62c0b GIT binary patch literal 15374 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_hard_display.png new file mode 100644 index 0000000000000000000000000000000000000000..d24a005510229d100a54e72a9bbf822543fcae28 GIT binary patch literal 15876 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 br4Zkn0j=6`3lL!i05GpK~AG_)Q%ZSNS literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_mesh_slicer.png new file mode 100644 index 0000000000000000000000000000000000000000..efc00cff6eb75e0b8bb77544dfb51bb4911c7b38 GIT binary patch literal 15745 zcmeI3d0Z3M7RLuc1yoc}peh=JCf6f zKD8F1MNsTVrG4%zQ9gdGs8q#;QbEhBTUA`@QiVR>Btf_!IBh@ubMpBlbGY|+&bjkF z=U(QYSs6KXazE!G&JYCklZ1<-@GHymb?k-z4i8)L9e#1rh0ioVP#-tT*ACiR;0Zy& zqf{~RSiE!!PmXHnG6kB1(2W`$u7)6fm{BK_FF-I#5~5UTL#a=WRZuA^MJRO!N6L`u zL`aG%JVTE}XH1QeXDpD1D5zlqXTFh#2hbpxjAGQNwFaIslxmI3!)?njOr=;Q*n&{% zcuPV`yfl&`LiGrRLl2_K89`hMH-ygQaJhlp01Au2q}Fu!U!l|#4Ab#oI4v!Wp2nu5dL_&Z2?>E2ESSZj;R>1|U5m+#G_Aqg z7UX>#F=CMGRXR+CYAKeuvLrMW3#C#miP}D`_odObCDIyN+2Isnqf7@g=?u6lCxyJt zN0+KsTbHJg!-yKuAX?0T`!T!p)1{yoYDhu5N!d2tZDPD8QfXW6F4wEkbeY@VpDdCAw?CcY(Cu8FyLkFG@e9jz+_rEA`uJl0lG@1 z;Bi8dgM(R222Cz!Av9J{U@|S3jU>^M85{~LQm7H@RLra1~it{|J4*-g!v#_pW3uRSxAH;wrV`(xyGG2-I#Gl#gwx}K5I)~@OmeXIY>R1TdXvg}z@7NFP$+sM8 zJiHh1b;+zXVDjM)#@aL6^zoLOs#C3cE{lPGV5a4_)fJrX>^k$~uHbZM*LKfXtqK#c zTC;T;2D~gMukBcf#vc+8K@f+-=J4Up!<{`MRYpV|FIM6E*I?;N4t`%&pUx9qI?n9Q z5twLow3Q0@cW$kuZ4`f4z@Jm#wg;7tMQ+;&|FF@1NB?kOFdUf#q(NwtxCjw}0umQU zgU}{%5h4NwBrcE!p-tiGfdUd2NQ2NOaS=UrdZs%y)g^x8yU* z%15G0%a_dUo4-EN>9TUqRpHpMjh7=>?3x{teWp(@1nfvL)akER^l!ekfB2#1BSnkv z6+T>2dGS@ky`$Cdjwjs9*=vXxH86aBZmH0o(Z{!U)pM-6hnLX*>ELg@YCTS;pQD&A z*cJAQvnv&HFZCMs^pIDuyxu?eoEiJ7?iSM=lGx{x!~PQO%96l4qb0Y>X7GG8>tc#d zPu*6+_1SiC&xw4kq-IBwe}cbi`L?Fb*tDuO_sehkJQ(+rc2l6AKV@yLWO>QB9zDK? zSNV7yDnC2H{>PNca>S8RaXhK$OOaiOB5CQkk)$x$926K{%-n7`k922HK`uS!!FJ}SoAFG zT~Qdd2nsc``_4ivqt0R)zb9j!APja@oJCX-g`N9jS%p4^6^*XYG_OGciTb4cIS=R-DJ9$srKz4v>)2>Qj7F}m1y&L_d1c9{;lU+vxYZ|vor zSyh)Vzvc5btP~5YST7a|?m`|DBD^W}!ime)&=vf~4W_07N!^tHRj|D7UkJ&p-;!t; zGXH^}Fv)vY&pN$%b9LdEbL;w+u9nuCu9>TcJv}M9^T_j#`|a|Pz5e4`n;=wf?LXtm z%hG44N8;9Le%lHpr!vzdyf1`kmiWKh^R68;>$k7ka6oWk@VFa?zJxXnx@{<(`sT&& z{Osb~#|HCGbJoCh5z1#nGB*qwW5^P~)1bz<#F0$PS3VW6#I&)^^*$idf&E2|3k z?2Qzx&P_mOk9hUES@{-%E2x*%54YuP>Vy$>53l;stSC|Sb2p=U3OuE|Gm-C zCD_l*+m-uzRtGdZ%6x9T{ai5cUxKg#*7tLEygnuhey4<%&fOTB=Vywwyd*7|I90rN ILgJGD18$-2E&u=k literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_mirror.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_mirror.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e7c0ccd4ee9104eda4055162511a32a4c1e240 GIT binary patch literal 15819 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_multiply_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..98de1eb23ee321a7af9c14c5e32eb79d2f0c7bb1 GIT binary patch literal 15717 zcmeI3Yg7|w8pj8ssGx{tt5$`^fYz$XjtKvvpYsrB2!i^_q!KxC^?6sONZ<1lR?qp|oTgN~^J8PoV->@d9; zjmM;E26ReVc%(9IwlYA)2ogC9Qv^f;4T>Z56pdPI6r=<)YDIi+EL{>F$Y59twS8LeOQUZqq&2p(BPhZth#uy!*l<@Sm9ovF zPco=&LsKbXRE=s-Ep8-yoGyL(cpa`Y#_PH%+1A}{VPa0g!rE$gIbMyX%hE8BSO~JacS$pg@+fuO4kdU}n zf!Kf|xXuu%)2T)FRTl9MAzduCtt$GcX_!`}GZ{Y@!ksPc^WB~el^{4OBG#iHlg(lB z*pVC`fsc=X=gVaK3)pNRiCx(#N0?59#in+ZgD>#ukONS5&Oz)S6@nwbD+{Ov@~D)8 zSe-$G;377lbdl!0Qc}!Ftj|ri91Gf9sa zjHq?T1v1`kxwb>B?ToT|Y&%zgD6OZNNNL>=s7eTTXl)->o3qu1{n-h$=LhWF*D%GS z+7E3gdn%i%`y@tPEN(&!XhzrN)TTg#A)^Q^2tsUp*-HLsGK84mp zO+c&#VqA!A4md*iy|(tsc72p}PSr^^y&soNd|;0Cx77-EceYOduodj?Y;AW=)nd4a z+ghztGvKnGy!K;Z3h|JDihTKe9$yG|Ztm=ez*10klmsL8uhF_H`NVzMJe@nbG*0i% z2z0a>?NbH(JGafGy_I-aAf8j;wg;7tliaou{^Fqhj{f4rU^=P@NP{${aFHSc1r#oj z25C&;B1HrWC|n>7(wM?UiU<@?xIh}DF@=j15h$Q=fiy^C3KuCNP(a}VX^_SgE>c9G zfWigRAdM+pq=-NPg$txX8dJDP5rF~<7f6FNrf`uW0tFN!(jbi~T%?FV0fh^s zK^jxIND+Yo3KvL&G^TKoA_4^zE|3OkOyMF$1PUlzAPv%(!bOS*6i~Q88l>?DaXGiY z`iE+X_x()7i+wHW;k$^J0_jSrJPd-;MnF(TCIr2FOI&}2pd>Z~H7FoRum*w#>2kh4 zGXa8n6w4$bktsJT^5@3qP91zM$kaD?X1yi9J|ST4k49GJhT{yQ|t zvf%X?>5@Gy-wzHAbqi4-(n+JoxD1?LHSub0)*W^329~>fSwWcbn^&cc%MRa4YW|<8 z`9$Nhd8M@_1x>=bITusEDO`~)DU2Ve_h9#0A=cP_g88M3Dxy_Dqk2M~(NEAaN>Z<>4;h6iy_dK+)aB&g)fkCzw&(D&kg~})O z7M111tirD!KP1f`8XJDpb!&Eoc0;u++RZS${NT%+L;1~4GWU&+`>v07l^z?p9FpIf zn)7^m)ti@2`))2>zsxN-Va`o%^~FKiT3*47V7K#Cvu>QoYl+<#9YkA^;i8^**ZkPx zsR)Yr#nPq&5aI2c`CEgluMwum3P^#v`b%4yds?-Q#Q zZi50)=`TY(NfaN&(-zx3i8r+#8`9P%0h$|U8^vdrnO>SvZ+IWd>#VyTlA z;nL{5?23n$oxYPstnGi?HL@tZS|?h#Ioy1*qAEe`O1n1a^qh5>pKUuGp5VTxGNg{x z{A$cBy353`9@O_arQkd&(Y#D-EdSWzp$!>=PrR%-wT=~W|2!>wo#nx%-KquW`67pr zucXOaCT~Aog6-QeVo0tiLEPI;gI=Q z(fb>}(KX_MXYcpV_ukb!v#>AC`;(0;&kWP55Ao9nL^&)iL+;nBcJkSgteJ`yFY~w? zKYPi!OQRD-}P$jrKiKSTOkP-iAY7|CzYUCnjM**?@f?&#~#QjCe0ghOI&+m`} zr8$TCP33whLoP{rsFoIe%DktPHA}az#y1ot$gWL1#>~7Zyz}@T_p7I46VIJpWLfFo z9JJ|a1*b=L-oyPqxBgXV%2>#%ee1d5$u9lc$9iyoaIF#7 ftWEFzHV!&+bNd&^o>w>$M;;^#4VUa5ubBUT^waVK literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_panelbool.png new file mode 100644 index 0000000000000000000000000000000000000000..08210b5eff4398b2ebfe2cb048f16bc00e83a85a GIT binary patch literal 15783 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_sel_hard.png new file mode 100644 index 0000000000000000000000000000000000000000..a4be8f8f4dd8dbb7c6a5acb669f9b3dc249cae0b GIT binary patch literal 15657 zcmeI3X;c&E8pnrKK%la;A_(S0w6&T{7D6N@0VE)Zp&Sf~s8>QVfhpOV2_{e!(OR@9 z73+r8E4LQJ4Y!MOT`1Qo6pG6&R)va2#RXABYb)Mry^{pt1;J_W>Bq@A$vnL8|NlJi z{N9E6GArZbrn$NJxz^^Rx*U1t84G3Lv0KYhEqvv1{G~CPlwShKo@qwVp zfv6-&pCq2alWA0Rsa%ta(2XiBu7)6fs8K7GWgvP=Dw2k(1=NSfzM)c3xqv#GBW8%T z5lA{3ovlM=X2(fn*%`7BIW<)1!Z-5p1S&)?r5II8HO4avsFu7uJT^DOREkBS&k#_< z%>^k*;&@7gMu$*1^kABd5zM7LL}4+Q9GJm|*$f(s%?o1if>@NE4^`-b zM|_=J!AlTD^_0W^5>V6idMyuz4F&_1vpD`;4jS}!%y)Yw>S zl2>^|2qx2^T0N>!Q_Oj#shUi^fJ!wN>izWGmrC1PNR9Qd!zsc>sTO9^8Sr2xxvbZt z&D1F^LzBy3M2V;nwI0KL%t3wHbd6qvrE7*L+1ov2VSG-+;@;YWj#s4`v^1uVT!c9#!;BPQOg%o*~DM7||hY<{qofvJ|W{#K-TI z7okI>dW}w^(I|!1RTlpWAtfThvZ^TW%|_L7jRBj$hX-2v=DRN&B9iJ6A-*2DGzOE# zW=I$e9-GVKaA=IlJO%?uVpR^vA=b!IMb=KGa;aYWhq8cLAdg(e zQ)qN5sa}Yxq-hAORj2XczD7XVyQ+8*8l^^u4+{~p`S4)PfXlMdcrj{BFICHs7?BWf zprfdq$7Q6lp26-cm*CAB~li$VKqsYM!Drg^vY zq?Z55)PVi9)F0?j{G^jA0gZX|f40ORXZ>i+dx-U(QD%>2=kla7^JylOnKuL?=fnM4`-au)?6IN$?*v-&1NNb7 z7}62-n>Lg+l|?ml5=^7e8>BiUJPltHe`K#)v-YIKM~f}{`2!{#lAkD zeDk5k!`A{nE~#Y>n0)xPw!X?%eUf=jm6;Yjm&L$8Fw^|oV+FehTIamk3U&{)_Bj*P zs9wnGsWzY)aG6hD>#;Bse@H-t!5j{o!-oep4|K$%Mnst;Lh=2JnO7wTzb}htV8@`w zIYSwNjvk|Rs(^pzmYKA+;tvb>a|+!1pwfSmdpE*g9Q57MUz`|BM-~BT5XK}fLPVf| z#0AnIj7eOCh(G~}3#369leh>GfdUd2NP{pYaS|gor=^i3_Ab z7?ZdN5rF~{7f6FJCUFrW0tF;4kOpB);vz%@3P@Za4Z@hjMTiI#khnk^gfWSW5D_RK zae*`lV-go3B2Yl$0%;J&BrZZkpn${$(jbgUT!e@~0f`HwK^T*`2oZq-5*J8=Fn%L0 zm%dm35H>x4E|CeMHZbPhM??m5VT|&1U-9+U)v!llL0~ZQXq)834%sy z)-E_51wrSj=3Gm zT2$SpGAJJZt}U)RKIP7pmyLouf5$p$Z1(7X*i;21+0L`S041V}3T;n>xpX^r+h1;< znl-0LM0W_V*_^N%2V|g1^>pEUp~cO=VSfG%EAuxu~LPJ5~4j zx+j~PS^4%q{Pd$@Vf4{XgSd_6yf|d4ZTka<_MA&^7qxm`_8q&jq%zuII9%O){NlNq zNv52vl0YrJYhu?h#`Y0Uj}6-d9|;j1+!T1Jdd#M+JC|{5muU)4J#h}RHTf{ahh&Q? zI=*Y&ym9vU6tCvwFKT}c3zqFmsGB{Wva&?5j~VBG?lRZ*Obr^6(;3x#uGk}Pr;Ta1 z>(l%tC&FfGxAST04{egMcRd>v+am3uYKW4LuY-QDlzHjnhR&$GhXvl*0on~GS5%$fJM!oiyA2H~^HV-6yHep({~Vg+R<>c{ z>AJ|W@LHc?3vDq$;*X zC+NCQ*Vhrvl{L}-a>W+AUPZk2yLQjG{xY_(?W~<+!>wxi=k<4T-LE+1lylNn+ZC@4 zfAU+UD~qmw|2%f<@kq#zZ}K;Jo7Vc&AK&MabD%1|{>Nn4J54a7U0Pak&2jjRWK)G_ zpl;v&2j85!=WLRgc6n0&|aDlVoe zG8*?BfI{39hm-53HZ~p=z4ws$_Q#DoJ&fK}qjHaQlE;-$W!BxWhS351xlUI~Bqi>fc5T`_NixN6gJ0{8&l>8wkHtmayk-L}*~x`h T-523U6$HgZ#)&GXrY!v*kj=tM literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/cp_ss.png b/2025/scripts/modeling_tools/creaseplus/icons/cp_ss.png new file mode 100644 index 0000000000000000000000000000000000000000..af3603b8541744d25dbe28ca229f2d114a2b4330 GIT binary patch literal 15952 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 LNAmW~6leVb-;F_* literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/sp_crease.png b/2025/scripts/modeling_tools/creaseplus/icons/sp_crease.png new file mode 100644 index 0000000000000000000000000000000000000000..998747b2169f8ea3c33e27001a072f3818fd041a GIT binary patch literal 15956 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png b/2025/scripts/modeling_tools/creaseplus/icons/sp_nocrease.png new file mode 100644 index 0000000000000000000000000000000000000000..1ebf087102344f5b1c6ce4e872a2671dfe954a72 GIT binary patch literal 15632 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png b/2025/scripts/modeling_tools/creaseplus/icons/sp_physical_crease.png new file mode 100644 index 0000000000000000000000000000000000000000..af77be9cdc8c48258e2c616137a67d18a4ffbfdc GIT binary patch literal 15763 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/sp_smooth.png b/2025/scripts/modeling_tools/creaseplus/icons/sp_smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..bc91bde981ddb3fa6ed74df112219ea3506eb2d4 GIT binary patch literal 15626 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 literal 0 HcmV?d00001 diff --git a/2025/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png b/2025/scripts/modeling_tools/creaseplus/icons/sp_weight_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cf31b8f864664e0215f6fe8717c8c6b0230d32 GIT binary patch literal 15395 zcmeI3dsGuw9>*_Gc`1q&s`YH$A%Mu%WRj2onN0!;3h@|4q{_qBWHP{Ll8MP6Azdus z`si-gLMm*F6j_h%sk`E;;OnsU)fIcJkHzPr>uQ(Qs#tA(tSIYoXA%e(1gG88KPTrT z^W)y{_xHQ=xew-_c{gKLT1fEtU;sdfE_hmO~U<=DS8qC$qTVklZ%Tr4S$lhC#TRHjm?P^lc1%f+lhY%j4exI=8Q zM|zU<=1C>(gpIN?6m3DcytsibVl*NVSIGP6xi7QTTgYPXVaHNL9k>;hNu=mtCL`hX zSc_~X_t1<4N}5PBX<_WFPd2E}T1Ydry^tQFq_=y>!t9*r_1@Zpj@N7+w6vX>wt_{_ zgLF`*J*&h@qM4+fF0v8iv=!{FL=JZM43*zEIsGzmJwuM2bWlUsxE_zqy%an%q-O6G zOR!o=11){?-It9_#Tin|uEzwiR3?s- zWyun-I3=ct7fTZ{sT4}$Q4YwVr;Sv8$zVBHw+hYyDF^0Y_m2^0@E?=~)+7mNGQsP zDU^w%jFiWV69_}TSe2+C#fdV7RBSXTRS8BzqCr8Z+z|D8*#1K5RGKK_c1urcsf9dpk^&`%JRpHap4f zIE|=x%Xtqm?-|8;+&dS;3GOu065NI$jcT-CYu~WE&K?`}|4yJMKV%=eMsXo&dD({Y zq;jiYzUIYSwtjvk|D zs-S=8?wRzovJVUFa|-HxQ0YI(-i`1R2Yq++6DNk#2}NKUys?0b7ZEHFaKSWqV*wX0 zB3K~cf@$!^0xn)eut2~C)8LH-T)c>2fq)C9!5a&>coD$@0T)bzHx_X5B7y}1E|>;y zEa2ir1PcUQFb&>Vz{QIQ76`at8oaT9ix&|r5OBdXcw+$ z1=HY-1zfy{V1a-OrokHvxOfr40s$9HgEtm%@gjl+0xp;aZ!F;AMFa~3TrdsZSir@L z2o?yqU>dx!fQuIqED&(PG+YU6 z<5ih%v~=V+5(~TO)4cn^wX(5?H4WqU`z-L+ww`U-vY>hEmJ-*5+q0jDw#_xT@2sDZJ82s-Hg9)hb`(|ow}uYajr7}_raa5kHATI#zIl0e=J6Z8?KhcUrJddI zvrWHnO`P$k6_>A8&90QWw7F@;(bdO5=!JUMj=Y~Q4w25QtUi6UwkDwLlUciE6Lp>c z_H8Fa7FB2cV?^j5{9UJWucg_Bsg{PkrHD)>i2H`UNcYD3g%7sBd9r4Vepn6>zApxd z&KKpMyD@Xh#Jtt#f+_+ZHMGY^Iwj#bo5R4pvZ=@$SMEn>gUT)?$22sx=e~2aTA!S^ zWT|fiSP9O3`?#j{V(!+DPL2#}i_Gu*ZcXdwKEG5Q^{bROJ(?M|C9fi&>(D<_l5~#< z2=(IRHM{w5J|iEwAZ{M$7+`JO@1Var#zw#ZK}i5Q^|g4>AYk%L|mR2=9 z^NuVXd*z8~WZV2(A(Oz;@*Y1xORWY&FkBLU0R7J$7X!_v`RBi@_nGOsye)F(uvq^f60UE zZ-4sd_S_2@VWi`aRrg*g+}e&E+*Nr?+tQ#u68dFG(vy9a)UMT0i+vW3!Qz*em)~gX z96$V{gFg9w3+sXq-R@(^YX?Hxj@(_kT66G1kaKHItv+C5?M)ROJ~jpz>f19vFy9uR z+_~fF`=P%*wI)~BXxFW&Z(1|*S-`rF*B>ezo#u3|Rd%(8eErRwfOMy!^zQH8{_OC~ zm`f{XX11t7vu*Pomm+C#UgG7%*v`s{< zmEV4IVuo$l@~vSX7G6^jpN*>jT$watXYhXC1>o-SwkKzNK$P-U3*OQ3I` + + + + +# importCurves +Imports Curves that were Exported using the Export Button. +NOTE: Only import files that were exported using Export Curves button. +WARNING: This operation is NOT undoable! + +# exportCurves +Exports selected curves into a .curves (or .ma) file. Can then be Imported using Import Curves. + +# changeScaleFactor +Opens a window that controls the Scale Factor and Precision Scale. +*** +Scale factor determines the initial size of the created curve and adjusts other parameters. +Scale factor is stored in a global preset, in the scene and on each curve. +Priority of scale factors Curve>Scene>Global. +Setting the appropriate scale factor before starting a project can help to have a good initial Width and size of the cards. +*** +Precision Scale controls the world scale of the curve without changing the curve appearance, CV positions and other parameters. +Lowering the Precision scale (from 1.0 to 0.05 for example) helps to fix the geometry deformation on very small curves. +The default value of 0.05 should be sufficient for most cases. Values lower than 0.01 can affect performance. +*** +Normalize Selected and Normalize Selected to Default will change the Scale Factor and Precision Scale of the selected curves, without changing their appearance or CV positions. +Normalize Selected to Default will reset the slider values to default (0.5 and 0.05) and Normalize Selected will use the current slider values. + +# normalizeSelectedButton +Normalize selected curves to the chosen slider values. +Normalization will not change the CV positions or geometry appearance, but the selected objects will have new Scale Factor and Precision Scale applied. + +# normalizeSelectedToDefaultButton +Normalize selected curves to the default slider values (0.5, 0.05). +Resets the slider values to the default. +Normalization will not change the CV positions or geometry appearance, but the selected objects will have new Scale Factor and Precision Scale applied. + +# saveScaleFactorAndPrecisionScaleButton +Saves the selected slider values to the global storage and to the current scene. +New scenes will automatically have these Scale Factor and Precision Scale values. +NOTE: This will not apply the new values to already existing objects. See Normalize buttons. + +# saveScaleFactorAndPrecisionScaleButtonAndClose +Saves the selected slider values to the global storage and to the current scene. +New scenes will automatically have these Scale Factor and Precision Scale values. +Closes the window after save. +NOTE: This will not apply the new values to already existing objects. See Normalize buttons. + +# closePrecisionScaleWindow +Close this window without save + +# globalCurveThickness +Opens a window that controls the thickness of the curves in the scene as well as the global curve thickness preset across the scenes. + +# setAOSettings +Manually sets the recommended AO settings for older Maya versions. +These AO settings are needed to use the "See Through" or "Toggle Always on Top" functions. +Are applied automatically by those functions. + +# setTransparencySettings +Sets recommended transparency settings for Maya viewport. +*** +Simple Transparency is fast but very inaccurate render mode. Only suitable for simple, one layer hair. +Object Sorting Transparency has average performance impact and quality. Can have issues on complex multi-layered grooms. +Depth Transparency - these are the optimal settings for the highest quality of the hair cards preview. Can have performance impact on slower systems. + +# convertToWarpCard +Converts selection to Warp Cards. +Compatible attributes are retained. + +# convertToWarpTube +Converts selection to Warp Tubes. +Compatible attributes are retained. + +# convertToExtrudeCard +Converts selection to Extrude Cards. +Compatible attributes are retained. + +# convertToExtrudeTube +Converts selection to Extrude Tubes. +Compatible attributes are retained. + +# duplicateUnparentCurves +Duplicates selected NURBS curves and unparents them (parents them to the world). +Original curves are not deleted. +Can be used to easily extract and export curves from GS CurveTools objects. + +# syncCurveColor +Toggles the syncing of the curve color to the layer color. + +# colorizedRegroup +Toggles the colorization of the regrouped layers when Regroup by Layer function is used. + +# colorOnlyDiffuse +Colorize only the diffuse component of the card material. +Alpha will stay the same. + +# checkerPattern +Toggles the use of the checker pattern when the Color mode is enabled. + +# ignoreLastLayer +Toggles the filtering (All, Curve, Geo) and Extraction (Extract All) of the last layer. If enabled, the last layer is ignored. +NOTE: Last layer is typically used for templates, so it is ignored by default. + +# ignoreTemplateCollections +Ignores the filtering (All, Curve, Geo) and Extraction (Extract All) of all the collections that have "template" in their name. Case insensitive. + +# groupTemplateCollections +Collections that have "template" in their name (case insensitive) will be grouped together into "CT_Templates" group by Regroup By Layer function. + +# syncOutlinerLayerVis +Syncs the outliner and layer visibility. If enabled, hiding the layer will also hide the curve groups in the outliner. + +# keepCurveAttributes +If enabled, the attributes that are stored in the curve will be restored if the curve that was duplicated (on its own, without the geo) is used to create other cards or tubes. +If disabled, the attributes will be ignored and reset. +Example: +1. Create a card and change its twist value. +2. Ctrl+D and Shift+P the curve (not the curve group). +3. Click Curve Card and the twist value will be restored on a newly created card. + +# boundCurvesFollowParent +Will ensure that moving a parent curve in a Bound Object (Bound Group) will also move all the child curves along with it to a new layer. Recommended to keep this enabled. + +# massBindOption +Will bind selected hair clump (or geometry) to all selected "empty" curves. + +# bindDuplicatesCurves +Will automatically duplicate the curves before binding them to the curve, leaving old curves behind with no edits. + +# bindFlipUVs +Enabling this option will flip the UVs of the original cards before binding them to the curve. +This option will also flip the UVs back when using Unbind for better workflow. +Disabling this option will result in an old Bind/Unbind behaviour. + +# unpackDeleteOriginalObject +Unpack (Shift + Click on Unbind) will delete the original Bind object. + +# unpackCVMatch +Unpack (Shift + Click on Unbind) will match the CVs of the original Bind object. + +# addBetweenBlendAttributes +Enables blending of the attributes when using Add Cards/Tubes or Fill functions. + +# fillCreateCurvesOnly +When enabled Fill function will only create curves (not the geo). + +# convertInstances +Will automatically convert instanced curves to normal curves before any other function is applied. + +# replacingCurveLayerSelection +Will disable additive selection for the layers. When holding Ctrl and clicking on a new layer, old layer will be deselected automatically. + +# useAutoRefineOnNewCurves +Automatically enables auto-refine on the new curves. + +# flipUVsAfterMirror +Enabling this option will flip the UVs horizontally after mirroring the cards to achieve exact mirroring. + +# enableTooltips +Will toggle the visibility of these tooltips you are reading right now. + +# showLayerCollectionsMenu +Shows layer collections menu widget. + +# importIntoANewCollection +If enabled, all the imported curves will be placed into a new "Imported Curves" layer collection. +If disabled, all the imported curves will be placed into the "Main" layer collection + +# layerNumbersOnly +Layers will use only numbers if enabled. + +# convertToNewLayerSystem +Converts all the layers in the scene to a new layer system that is hidden from the Channel Box Display Layers window. +Layers can still be accessed from Window->Relationship Editors->Display Layer window. + +# updateLayers +Utility function that will manually update all layers. Used for if layers are correct for some reason. + +# resetToDefaults +Resets every option and the GS CurveTools to the default "factory" state. + +# maya2020UVFix +This function will fix any broken UVs when trying to open old scenes in Maya 2020 or 2022 or when opening scenes in 2020 and 2022 when using Maya Binary file type. This will have no effect on older versions of Maya (<2020). This bug is native to Maya and thus can’t be fixed in GS CurveTools plug-in. + +# mayaFixBrokenGraphs +This function will attempt to fix all the broken graphs in the scene. +Use if one of the graphs (Width, Twist or Profile) is in a broken state. + +# convertBezierToNurbs +Converts the selected Bezier curves to NURBS curves. +Bezier curves are not supported by the GS CurveTools. + +# maya2020TwistAttribute +This function will fix any broken cards created in Maya 2020.4 before v1.2.2 update. + +# maya2020UnbindFix +This function will fix any cards that are not unbinding properly and were created before v1.2.3 update in Maya 2020.4. + +# deleteAllAnimationKeys +This function will delete all the animation keys on all the curves present in the scene. +This can fix deformation issues when using duplicate or other GS CurveTools functions. +Some functions (like duplicate) will delete the keys automatically, however the keys can still cause issues. + + + +# warpSwitch +Advanced cards and tubes suitable for longer hair. +Additional options and controls. +Slower than Extrude (viewport performance). +Can have issues on very small scales. + +# extrudeSwitch +Simple cards and tubes suitable for shorter hair and brows. +Has limited controls. +Much faster than Warp (viewport performance). +Better for small scales. + +# newCard +Creates a new Card in the middle of the world. Used at the beginning of the project to create templates. + +# newTube +Creates a new Tube in the middle of the world. Used at the beginning of the project to create templates. + +# curveCard +Converts selected Maya curve to CurveTools Card. + +# curveTube +Converts selected Maya curve to CurveTools Tube. + +# gsBind +Binds selection to a single curve. Creates a Bind Group. Selection options: +1. Single "empty" curve (default Maya curve) and single combined geometry. +2. Single "empty" curve (default Maya curve) and any number of Curve Cards and Curve Tubes. +*** +Shift + Click will duplicate the original curves/geo before binding it to the empty curve. +Same option is available in the Options menu (Duplicate Curves Before Bind). + +# gsUnbind +Normal Click: +UnBinds geometry or Cards/Tubes from selected Bound object. +Geometry and Cards/Tubes will be placed at the origin. +*** +Shift + Click: +Will UNPACK the selected Bind object in-place. +Unpack will attempt to create an in-place approximation of the cards and tubes that Bind object consists of. +Basically it will extract the geometry and create cards (or tubes) based on that geometry. +The original Bind object will be deleted in the process. Optionally, you can keep it (toggle in the options menu). +This operation is not procedural, so you will not be able to return back to the Bind object after (unlike regular UnBind). +WARNING: Unpack is not a 1 to 1 conversion. It will try its best to approximate the shape, but complex twists and bends will not be captured. + +# addCards +Creates Cards in-between selected Cards based on the Add slider value. +Shift + Click: creates objects but does not blend the attributes. +Bound objects are NOT supported. + +NOTE: Selection order defines the direction of added Cards if more than 2 initial Cards are selected. + +# addTubes +Creates Tubes in-between selected Tubes based on the Add slider value. +Shift + Click: creates objects but does not blend the attributes. +Bound objects are NOT supported. + +NOTE: Selection order defines the direction of added Tubes if more than 2 initial Tubes are selected. + +# gsFill +Creates Cards/Tubes or Bound Groups in between selected Cards/Tubes or Bound Groups based on the Add slider value. +Shift + Click: creates objects but does not blend the attributes. + +NOTE 1: Selection order defines the direction of added curves if more than 2 initial curves are selected. +NOTE 2: The type of Card or Tube or Bound Group is defined by the previous curve in the selection chain. +NOTE 3: Options -> Fill Creates Only Curves option will make the Fill function create only NURBS curves, but not the geo. + +# gsSubdivide +Subdivides selected curve into multiple curves based on the Add slider value +Shift + Click subdivides selected curve but does not delete the original curve + +# gsEdgeToCurve +Converts selected geometry edges to curves. +Multiple unconnected edge groups can be selected at the same time. +*** +Key Combinations: +Shift + Click will create a curve without the curvature (first degree curve or simply a line) + +# gsGeoToCurve +Opens the Geo-to-Curve UI +Geo to Curve algorithm will attempt to generate GS CurveTools cards and tubes from selected geometry. +Selected geometry should be either one-sided cards or regular tubes without caps (or both). +Multi-selection compatible, but selected geometries should be separate objects and not one combined object. + +# layerCollectionsComboBox +Layer collections drop-down menu. +Allows to separate the project into different layer collections, up to 80 layers in each collection. +Has additional functionality in marking menu (Hold RMB): +*** +Marking menu: +1. Clear - will delete all the cards from the current layer. Undoable operation. +2. Merge Up, Merge Down - merge all the cards from the current layer to the layer above or below it. +3. Copy, Paste - will copy all the cards from the current layer and paste them to the layer that user selects. +4. Move Up, Move Down - will rearrange the current layer collections by moving the currently selected collection up or down in the list. +5. Rename - will rename the current layer collection + +# layerCollectionsPlus +Add additional layer collection after the current one. + +# layerCollectionsMinus +Remove current layer collection. All the cards from the removed collection will be merged one layer UP. + +# gsAllFilter +Layer filter. Controls the visibility of all objects in all layers: +Normal click will show all curves and geometry in all layers. +Shift + Click will hide all curves and geometry in all layers +Ctrl + Click will show all the curves and geometry in all layers and all collections. +Ctrl + Shift + Click will hide all curves and geometry in all layers and all collections. + +# gsCurveFilter +Layer filter. Hides all geometry and shows all the curves in all layers. +Ctrl + Click will do the same thing, but for all layers and all collections. +NOTE: Holding RMB will open a marking menu with Toggle Always on Top function as well as "Auto-Hide Inactive Curves" function. +Toggle Always on Top function will toggle the Always on Top feature that will show the curve component always on top. The effect is different in different Maya versions +Auto-Hide Inactive Curves will hide all the curve components on all inactive layer collections when switching between collections. + +# gsGeoFilter +Layer filter. Hides all curves and shows only geometry. +Ctrl + Click will do the same thing, but for all layers and all collections. + +# colorMode +Color mode toggle. Enables colors for each layer and (optionally) UV checker material. +NOTE: Checker pattern can be disabled in the Options menu + +# curveGrp0 +Curve Layers that are used for organization of the cards and tubes in the scene. +Selected layer (white outline) will be used to store newly created cards. +Holding RMB will open a marking menu with all the functions of current layer. +*** +Key Combinations: +Shift + Click: additively select the contents of the layers. +Ctrl + Click: exclusively select the contents of the layer. +Alt + Click: show/hide selected layer. +Ctrl + Shift: show/hide curve component on selected layer. +Ctrl + Alt: show/hide geo component for the selected layer. +Shift + Alt + Click: isolate select the layer. +Shift + Ctrl + Alt + Click: enable Always on Top for each layer (only for Maya 2022+). +*** +Layer MMB Dragging: +MMB + Drag: move the contents of one layer to another layer. Combine if target layer has contents. +MMB + Shift + Drag: copy the contents of one layer to another layer. Copy and Add if target layer has contents. + +# gsExtractSelected +Extracts (Duplicates) the geometry component from the selected curves: +*** +Key Combinations: +Normal click will extract geometry and combine it. +Shift + Click will extract geometry as individual cards. +Ctrl + Click will extract geometry, combine it, open export menu and delete the extracted geo after export. +Shift + Ctrl click will extract geometry, open export menu and delete the extracted geo after export. + +# gsExtractAll +Extracts (Duplicates) the geometry component from all layers and collections. Original layers are HIDDEN, NOT deleted: +Last Layer in the current Collection is ignored by default. Can be changed in the options. +Collections with "template" in their name (case insensitive) will be ignored by default. Can be changed in the options. +*** +Key Combinations: +Normal click will extract geometry and combine it. +Shift + Click will extract geometry as individual cards grouped by layers. +Ctrl + Click will extract geometry, combine it, open export menu and delete the extracted geo after export. +Shift + Ctrl click will extract geometry, open export menu and delete the extracted geo after export. + +# gsSelectCurve +Selects the curve components of the selected Curve Cards/Tubes. +NOTE: Useful during the selection in the outliner. + +# gsSelectGeo +Selects the geometry component of the selected Curve Cards/Tubes. +NOTE: Useful for quick assignment of the materials. + +# gsSelectGroup +Selects the group component of the selected Curve Cards/Tubes. +NOTE: Useful when you are deleting curves from viewport selection. + +# gsGroupCurves +Groups the selected curves and assigns the name from Group Name input field (or default name if empty). + +# gsRegroupByLayer +Regroups all the curves based on their layer number, group names and collection names. +Group names can be changed in the Layer Names & Colors menu. +Groups can be colorized if the "Colorize Regrouped Layers" is enabled in the Options menu. +Collections with "template" in their name will be grouped under "CT_Templates". Can be changed in the options. + +# gsGroupNameTextField +The name used by the Group Curves function. +If empty, uses the default name. + +# gsCustomLayerNamesAndColors +Opens a menu where group names and colors can be changed and stored in a global preset. + +# gsTransferAttributes +Transfers attributes from the FIRST selected curve to ALL the other curves in the selection. +NOTE: Shift + Click transfers the attributes from the LAST selected curve to ALL others. +NOTE2: Holding RMB on this button opens a marking menu with Copy-Paste and Filter functionality + +# gsTransferUVs +Transfers UVs from the FIRST selected curve to ALL the other curves in the selection. +NOTE: Shift + Click transfers the UVs from the LAST selected curve to ALL others. +NOTE2: Holding RMB on this button opens a marking menu with Copy-Paste and Filter functionality + +# gsResetPivot +Resets the pivot on all selected curves to the default position (root CV). + +# gsRebuildWithCurrentValue +Rebuild selected curves using current rebuild slider value + +# gsResetRebuildSliderRange +Reset rebuild slider range (1 to 50) + +# gsDuplicateCurve +Duplicates all the selected curves and selects them. +NOTE: You can select either NURBS curve component, geometry component or group to duplicate. + +# gsRandomizeCurve +Opens a window where different attributes of the selected curves can be randomized: +1. Enable the sections of interest and change the parameters. +2. Dragging the sliders in each section enables a PREVIEW of the randomization. Releasing the slider will reset the curves. +3. Click Randomize if you wish to apply the current randomization. + +# gsExtendCurve +Lengthens a selected curves based on the Factor slider. + +# gsReduceCurve +Shortens the selected curves based on the Factor slider. + +# gsSmooth +Smoothes selected curves or curve CVs based on the Factor slider. +NOTE 1: At least 3 CVs should be selected for component smoothing. +NOTE 2: Holding RMB will open a marking menu where you can select a stronger smoothing algorithm. + +# mirrorX +Mirrors or Flips all the selected curves on the World X axis. + +# mirrorY +Mirrors or Flips all the selected curves on the World Y axis. + +# mirrorZ +Mirrors or Flips all the selected curves on the World Z axis. + +# gsControlCurve +Adds a Control Curve Deformer to the selected curves. Can be used to adjust groups of curves. +NOTE 1: Should NOT be used to permanently control clumps of cards. Use Bind instead. + +# gsApplyControlCurve +Applies the Control Curve Deformer. +Either the Control Curve or any controlled Curves can be selected for this to work. + +# gsCurveControlWindow +Opens a Curve Control Window. Contains all the available controls for curves. + +# gsUVEditorMain +Opens a UV editor that can be used to setup and adjust UVs on multiple cards. +NOTE 1: Lambert material with PNG, JPG/JPEG or TIF/TIFF (LZW or No Compression) texture file is recommended. TGA (24bit and no RLE) is also supported. +NOTE 2: Make sure to select the curves or the group, not the geo, to adjust the UVs. +NOTE 3: Using default Maya UV editor will break GS CurveTools Cards, Tubes and Bound Groups. +NOTE 4: Default UV editor can be used when custom geometry is used in a Bound Groups. + + + + +# gsLayerSelector +Shows the Layer of the selected curve. +Selecting different layer will change the layer of all the selected curves. + +# gsColorPicker +Layer/Card Color Picker. + +# gsCurveColorPicker +Curve Color Picker. + +# selectedObjectName +Selected object name. Editing this field will rename all the selected objects. + +# lineWidth +Controls the thickness of the selected curves. + +# gsBindAxisAuto +Automatic selection of the bind Axis (recommended). +NOTE: Change to manual X, Y, Z axis if bind operation result is not acceptable. + +# AxisFlip +Flips the direction of the bound geometry. + +# editOrigObj +Temporarily disables curve bind and shows the original objects. +Used to adjust the objects after the bind. +To add or remove from the Bound group use Unbind. + +# selectOriginalCurves +Selects the original curves that were attached to a bind curve. +Allows to edit their attributes without using Unbind or Edit Original Objects + +# twistCurveFrame +Advanced twist control graph. Allows for precise twisting of the geometry along the curve. Click to expand. + +# Magnitude +Twist multiplier. The larger the values, the more the twist. Default is 0.5. + +# gsTwistGraphResetButton +Resets the graph to the default state. + +# gsTwistGraphPopOut +Opens a larger graph in a separate window that is synced to the main graph. + +# widthLockSwitch +Links/Unlinks the X and Z width sliders. +If linked, the sliders will move as one. + +# LengthLock +Locks/Unlocks the length slider. +When Locked the geometry is stretched to the length of the curve and the slider is ignored. + +# widthCurveFrame +Advanced width control graph. Allows for precise scaling of the geometry along the curve. Click to expand. + +# gsWidthGraphResetButton +Resets the graph to the default state. + +# gsWidthGraphPopOut +Opens a larger graph in a separate window that is synced to the main graph. + +# profileCurveGraph +Advanced control over the profile of the card. Modifies the profile applied by the Profile slider. Click to expand. +Add or remove points and change them to increase or decrease the Profile value along the curve. + +# autoEqualizeSwitchOn +Locks the points horizontally to equal intervals to avoid geometry deformation. + +# autoEqualizeSwitchOff +Unlocks the points and allows for the full control. + +# equalizeCurveButton +Snaps the points to the equal horizontal intervals. + +# gsResetProfileGraphButton +Resets the curve to the default state. + +# gsProfileGraphPopOut +Opens a larger graph in a separate window that is synced to the main graph. + +# reverseNormals +Reverses the normals on the selected cards/tubes. + +# orientToNormalsFrame +Orient selected cards/tubes to the normals of the selected geo. + +# gsOrientToNormalsSelectTarget +Set selected mesh as a target for the algorithm. + +# orientRefreshViewport +Toggles the viewport update during the alignment process. +Disabling can speed up the process. + +# gsOrientToNormals +Starts the alignment process. +Will align the selected cards to the normals of the selected geometry. + +# flipUV +Flips the UVs of the card/tube horizontally. + +# resetControlSliders +Resets the range of the sliders to the default state. + +# UVFrame +Legacy controls for the UVs. Just use the new UV Editor. + +# solidifyFrame +Expands controls that control the thickness of the cards/tubes. + +# solidify +Toggles the thickness of the geometry. + + + +# lengthDivisions +Change the length divisions of the selected cards/tubes. + +# dynamicDivisions +Toggles the dynamic divisions mode. +Dynamic divisions will change the divisions of the cards/tubes based on the length of the curves. +In dynamic divisions mode, L-Div slider will control the density of the divisions, not the fixed divisions count. + +# widthDivisions +Change the width divisions of the selected cards/tubes. + +# Orientation +Change the orientation of the card/tube around the curve. + +# Twist +Smoothly twist the entire geometry card/tube. Twists the tip of the card. + +# invTwist +Smoothly twist the entire geometry card. Twists the root of the card. + +# Width +Change the width of the selected card. + +# Taper +Linearly changes the width of the card/tube along the length of the curve. + +# WidthX +Change the width of the tube along the X axis. + +# WidthZ +Change the width of the tube along the Z axis. + +# Length +Change the length of the attached geometry. Works only when Length Unlock button is checked. + +# Offset +Offset the geometry along the curve. + +# Profile +Change the profile of the card along the length of the curve uniformly. + +# profileSmoothing +Smoothing will smooth the profile transition. + +# otherFrame +Other less used options + +# curveRefine +Controls the number of "virtual" vertices on the curve. These are the vertices that are used to calculate the geometry deformation. +Zero (0) value will disable the refinement and the geometry will be attached directly to the curve. The fastest option. +Larger refine values means smoother geometry that is a closer fit to the curve. +Only increase past 20 if you need additional precision or if there are any visual glitches with the geometry. +Large refine values can cause significant performance drop, lag and other issues on smaller curve sizes. +Recommended values are: +20 for curves with less than 20 CVs. +0 (disabled) or same as the number of CVs for curves with more than 20 CVs. + +# autoRefine +Enables auto-refine for selected curves. Recommended to keep this on. +Manual refinement can be helpful if the geometry deformation is wrong or not precise enough. + +# samplingAccuracy +Increases the sampling accuracy of the deformer that attaches the geometry to a curve. +Larger values = more precise geometry fit to a curve and more lag. + +# surfaceNormals +Changes the smoothing angle of the normals of the geometry. + +# gsIterationsSlider +Controls the number of iterations per card. + +# gsMinimumAngle +Controls the target angle difference between the normal of the mesh and the card. + +# solidifyThickness +Controls the amount of thickness on the geometry. + +# solidifyDivisions +Controls the number of divisions on the solidify extrusion. + +# solidifyScaleX +Changes the scale on the X axis. + +# solidifyScaleY +Changes the scale on the Y axis. + +# solidifyOffset +Controls the offset of the solidify extrusion. + +# solidifyNormals +Controls the smoothing angle for normals of the solidify extrusion. + +# geometryHighlight +If enabled, selecting the curve will also highlight the geometry component that is attached to that curve. +Works only on GS CurveTools curves and geo. + +# curveHighlight +If enabled, selected curves and their components will be additionally highlighted for better visibility. +The curves and components will be in X-Ray mode by default. +Colors and transparency values can be changes in the menu below. + +# gsSelectedCVColor +Selected CV highlight color + +# gsSelectedCVAlpha +Selected CV highlight transparency (alpha) + +# gsDeselectedCVColor +Deselected CV highlight color + +# gsDeselectedCVAlpha +Deselected CV highlight transparency (alpha) + +# curveVisibility +Toggle selected curves highlight + +# gsCurveHighlightColor +Selected curve highlight color + +# gsCurveHighlightAlpha +Selected curve highlight transparency (alpha) + +# hullVisibility +Toggle hull visibility. +Hull is a line that connects all the CVs on the curve. + +# gsHullHighlightColor +Hull highlight color + +# gsHullHighlightAlpha +Hull highlight transparency (alpha) + +# advancedVisibilityFrame +Better highlights for selected curves and components. + +# lazyUpdate +Enables lazy update for selected curves. +Lazy update can slightly increase the performance of the highlight, +however it has some visual drawbacks (curve highlight can fail to update when switching curves in component selection mode) + +# alwaysOnTop +Toggles X-Ray (always on top) drawing for highlighted components. +Disabling this defeats the purpose of the advanced visibility, but hey, it's your choice. + +# curveDistanceColor +Toggles the distance color effect on the curve highlight. +Distance color darkens the curve color the further it is from the camera. + +# cvDistanceColor +Toggles the distance color effect on the CV highlight. +Distance color darkens the CVs color the further it is from the camera. + +# hullDistanceColor +Toggles the distance color effect on the hull highlight. +Distance color darkens the hull color the further it is from the camera. + +# gsDistanceColorMinValue +Distance color minimum. +This value is the minimum allowed color multiplier for the Distance Color effect. +The lower this value, the darker further parts of the curve will be. +Black at 0.0 +Original color at 1.0 + +# gsDistanceColorMaxValue +Distance color maximum. +This value is the maximum allowed color multiplier for the Distance Color effect. +The higher this value, the brighter closest parts of the curve will be. +Black at 0.0 +Original color at 1.0 + +# CVocclusion +Toggles the experimental CV occlusion mode (hull is affected as well) +When the appropriate mesh name is added to Occluder Mesh input field, +this function will automatically hide CVs and hull lines that are behind this mesh (even in X-Ray mode). +Warning: enabling this mode can negatively impart viewport performance. + +# gsSelectOccluderButton +This button adds the selected mesh name to the Occluder Mesh input field. + +# gsOccluderMeshName +Type the full path for the occluder mesh here, or use the "Select Occluder" button on the left <- + + + + +# gsGenerateLayerColorGradient +Generate a color gradient for the layer colors. +Rows control the number of Rows to generate. +Left color picker sets the initial color. +Right color picker sets the final color. + +# gsRandomizeLayerColors +Generate random colors for the layers. +SatMin controls the minimum allowed saturation. +SatMax controls the maximum allowed saturation. + +# gsResetAllLayerColors +Resets all the color swatches to the default color. + +# gsGetCurrentSceneLayers +Populates the menu with the names and colors stored in the scene. + +# gsSetAsCurrentSceneLayers +Applies the names and colors from the menu to the scene. + +# gsLoadGlobalLayerPreset +Load the global names and colors preset to the menu. +NOTE: Don't forget to Set to Scene before closing the menu. + +# gsSaveGlobalLayerPreset +Saves the current names and colors from the menu to the global preset. + + + +# gsUVSelect +Enables the selection of the UVs. +Drag to draw a box selection. + +# gsUVMove +Enables the Move tool. +Move the selected UVs or move individual UVs if nothing is selected. + +# gsUVRotate +Enables the Rotation of the selected UVs. +Hold LMB and drag anywhere in the viewport to rotate the selected UVs. +Rotation pivot is the center of the individual unscaled UV. + +# gsUVScale +Enables the Scaling of the selected UVs. +Hold LMB and drag in the viewport to scale the card Horizontally of Vertically. +Repeated hotkey click will toggle between Horizontal and Vertical scaling. + +# gsUVHorizontalScale +Horizontal scaling mode selector. + +# gsUVVerticalScale +Vertical scaling mode selector. + +# gsDrawUVs +Enables the UVs Drawing Tool: +1. Select UVs using Selection Mode. +2. Enable the UV Drawing Tool. +3. Draw a UV Rectangle anywhere in the viewport to create/move the UVs there. + +# gsHorizontalFlipUV +Flips the selected UVs horizontally. +Flipped UVs have the blue circle indicator inside the root rectangle. + +# gsVerticalFlipUV +Flips the selected UVs vertically. + +# gsResetUVs +Resets the selected UVs to the default 0,1 rectangle. + +# gsSyncSelectionUVs +Syncs selection between UV editor and Maya Viewport. + +# gsRandomizeUVs +Randomize selected UV positions between already existing UV positions. +*** +Normal click will keep the overall density distribution of the UVs. +This means that if there is one card in one position and twenty cards in the other, +it will keep this distribution of 1 to 20. +*** +Shift+Click will ignore the original density distribution +and simply randomize the UVs between the original positions. + +# gsFocusUVs +Focuses on the selected UVs or on all the UVs if nothing is selected. + +# gsUVIsolateSelect +Hides all the unselected UVs and shows only the selected ones. + +# gsUVShowAll +Shows all the hidden UVs. + +# UVEditorUseTransforms +Use "Coverage" and "Translate Frame" parameters from place2dTexture node for texture. +Offset is not supported. +Diffuse and Alpha channel MUST have the same coverage and translate frame values. + +# UVEditorTransparencyToggle +Enable texture map transparency using Alpha map from Transparency plug in the material node + +# UVEditorBGColorPicker +Background Color + +# UVEditorGridColorPicker +Grid Color + +# UVEditorFrameColorPicker +Frame Color + +# UVEditorUVFrameSelectedColorPicker +Selected UV frame color + +# UVEditorUVFrameDeselectedColorPicker +Deselected UV frame color + +# UVEditorUVCardFillColorPicker +UV frame background color + + + +# gsGeoToCurve_outputTypeSwitch +Controls the output of Geo-to-Curve algorithm + +# gsGeoToCurve_generateAuto +Automatically determine the final object type (card or tube) based on the selected geometry. + +# gsGeoToCurve_generateCards +Generate cards from selected geometry (one-sided cards or tubes) + +# gsGeoToCurve_generateTubes +Generate tubes from selected geometry (one-sided cards or tubes) + +# gsGeoToCurve_generateCurves +Generate curves from selected geometry (one-sided cards or tubes) + +# gsGeoToCurve_cardType +Controls the type of generated objects (Warp or Extrude) + +# gsGeoToCurve_warp +Generate Warp cards or tubes + +# gsGeoToCurve_extrude +Generate Extrude cards or tubes + +# gsGeoToCurve_matchAttributes +Controls which attributes on the new cards/tubes should be approximated from the original geometry. +NOTE: This process is not perfect and final result can be inaccurate. + +# gsGeoToCurve_orientation +Match orientation attribute during the generation process + +# gsGeoToCurve_width +Match orientation attribute during the generation process + +# gsGeoToCurve_taper +Match taper attribute during the generation process + +# gsGeoToCurve_twist +Match twist attribute during the generation process + +# gsGeoToCurve_profile +Match profile attribute during the generation process + +# gsGeoToCurve_material +Copy material (shader) from the original geometry + +# gsGeoToCurve_UVs +Tries to approximate the UVs from the original geometry +NOTE: Matches the bounding box of the UVs. Rotated and deformed UVs are not matched precisely. + +# gsGeoToCurve_UVMatchOptions +Controls UV matching behaviour + +# gsGeoToCurve_verticalFlip +Vertically flip matched UVs + +# gsGeoToCurve_horizontalFlip +Horizontally flip matched UVs + +# gsGeoToCurve_reverseCurve +Reverse generated curve direction +Root CV should be generated near the scalp of the model. +Enable or disable if resulting card direction and taper are reversed. + +# gsGeoToCurve_convertSelected +Convert selected geometry to cards, tubes or curves based on the selected options. +Newly created procedural objects will be placed in the currently selected layer. +NOTE: if the currently selected layer is hidden (grayed out), the newly created objects will be hidden as well. + +# gsGeoToCurve_deleteOriginalObject +Delete the original geometry after converting it to cards, tubes or curves. + +# gsGeoToCurve_useAimMesh +Use the aim mesh (selected below) to place the root CV of the generated cards, tubes or curves close to the target mesh. +Placing CVs close to the target mesh will help with the alignment process and general adjustments later on. +The aim mesh should be a polygonal mesh. + +# gsGeoToCurve_selectAimMesh +Select the aim mesh in the scene and click this button to add its name to the input field. diff --git a/2025/scripts/userSetup.py b/2025/scripts/userSetup.py index 6362f42..cac1bf4 100644 --- a/2025/scripts/userSetup.py +++ b/2025/scripts/userSetup.py @@ -51,12 +51,14 @@ TOOL_CONFIG = { {'name': 'gs_curvetools', 'path': 'modeling_tools/gs_curvetools/icons'}, {'name': 'gs_toolbox', 'path': 'modeling_tools/gs_toolbox/icons'}, {'name': 'modit', 'path': 'modeling_tools/ModIt/Icons/Theme_Classic'}, + {'name': 'creaseplus', 'path': 'modeling_tools/creaseplus/icons'}, {'name': 'ngskintools2', 'path': 'rigging_tools/ngskintools2/ui/images'}, {'name': 'mgpicker', 'path': 'animation_tools/mgpicker/MGPicker_Program/Icons'}, {'name': 'atools', 'path': 'animation_tools/atools/img'}, {'name': 'dwpicker', 'path': 'animation_tools/dwpicker/icons'}, {'name': 'studiolibrary', 'path': 'animation_tools/studiolibrary/studiolibrary/resource/icons'}, {'name': 'studiolibrary_maya', 'path': 'animation_tools/studiolibrary/studiolibrarymaya/icons'}, + {'name': 'springmagic', 'path': 'animation_tools/springmagic/icons'}, ], } @@ -425,7 +427,6 @@ def load_tool_scripts(): _tool_log("[Tool] No scripts configured") return - global _ADDED_SCRIPT_PATHS loaded = 0 for cfg in script_configs: name = cfg.get('name', '') @@ -689,4 +690,4 @@ def cleanup_on_exit(): _tool_log(f"[Tool] Cleanup error: {e}") # Register cleanup function -atexit.register(cleanup_on_exit) \ No newline at end of file +atexit.register(cleanup_on_exit) diff --git a/2025/shelves/shelf_Nexus_Animation.mel b/2025/shelves/shelf_Nexus_Animation.mel index 64919b0..e74d2fb 100644 --- a/2025/shelves/shelf_Nexus_Animation.mel +++ b/2025/shelves/shelf_Nexus_Animation.mel @@ -285,5 +285,40 @@ global proc shelf_Nexus_Animation () { -commandRepeatable 1 -flat 1 ; + shelfButton + -enableCommandRepeat 1 + -flexibleWidthType 3 + -flexibleWidthValue 32 + -enable 1 + -width 35 + -height 34 + -manage 1 + -visible 1 + -preventOverride 0 + -annotation "Spring Magic - Calculate bone chain animation with spring physics" + -enableBackground 0 + -backgroundColor 0 0 0 + -highlightColor 0.321569 0.521569 0.65098 + -align "center" + -label "SpringMagic" + -labelOffset 0 + -rotation 0 + -flipX 0 + -flipY 0 + -useAlpha 1 + -font "plainLabelFont" + -imageOverlayLabel "Spring" + -overlayLabelColor 0.8 0.8 0.8 + -overlayLabelBackColor 0 0 0 0.5 + -image "springmagic.png" + -image1 "springmagic.png" + -style "iconOnly" + -marginWidth 0 + -marginHeight 1 + -command "import springmagic\nspringmagic.main()" + -sourceType "python" + -commandRepeatable 1 + -flat 1 + ; } diff --git a/2025/shelves/shelf_Nexus_DevTools.mel b/2025/shelves/shelf_Nexus_DevTools.mel index 0e3e283..7abf05a 100644 --- a/2025/shelves/shelf_Nexus_DevTools.mel +++ b/2025/shelves/shelf_Nexus_DevTools.mel @@ -30,7 +30,7 @@ global proc shelf_Nexus_DevTools () { -overlayLabelColor 0.8 0.8 0.8 -overlayLabelBackColor 0 0 0 0.5 -image "iconviewer.png" - -image1 "iconviewer.png" + -image1 "iconviewer.png" -style "iconOnly" -marginWidth 0 -marginHeight 1 diff --git a/2025/shelves/shelf_Nexus_Modeling.mel b/2025/shelves/shelf_Nexus_Modeling.mel index 08b9f8b..51da4c7 100644 --- a/2025/shelves/shelf_Nexus_Modeling.mel +++ b/2025/shelves/shelf_Nexus_Modeling.mel @@ -174,7 +174,7 @@ global proc shelf_Nexus_Modeling () { -style "iconOnly" -marginWidth 0 -marginHeight 1 - -command "import gs_curvetools.main as gs_curvetools_main; from importlib import reload; reload(gs_curvetools_main); gs_curvetools_main.reset(); del gs_curvetools_main" + -command "import gs_curvetools.core.utils as gs_curvetools_utils; gs_curvetools_utils.reset_ui(); del gs_curvetools_utils" -sourceType "python" -commandRepeatable 1 -flat 1 @@ -209,7 +209,7 @@ global proc shelf_Nexus_Modeling () { -style "iconOnly" -marginWidth 0 -marginHeight 1 - -command "import gs_curvetools.main as gs_curvetools_main; from importlib import reload; reload(gs_curvetools_main); gs_curvetools_main.stop(); del gs_curvetools_main" + -command "import gs_curvetools.core.utils as gs_curvetools_utils; gs_curvetools_utils.stop_ui(); del gs_curvetools_utils" -sourceType "python" -commandRepeatable 1 -flat 1 @@ -294,101 +294,31 @@ global proc shelf_Nexus_Modeling () { -manage 1 -visible 1 -preventOverride 0 - -annotation "Instant Tie - Easy way to create tie and rope" + -annotation "CreasePlus - Advanced hard surface modeling tool" -enableBackground 0 -backgroundColor 0 0 0 -highlightColor 0.321569 0.521569 0.65098 -align "center" - -label "InstantTie" + -label "CreasePlus" -labelOffset 0 -rotation 0 -flipX 0 -flipY 0 -useAlpha 1 -font "plainLabelFont" - -imageOverlayLabel "Tie" + -imageOverlayLabel "Crease+" -overlayLabelColor 0.8 0.8 0.8 -overlayLabelBackColor 0 0 0 0.5 - -image "instant_tie.png" - -image1 "instant_tie.png" + -image "creaseplus.png" + -image1 "creaseplus.png" -style "iconOnly" -marginWidth 0 -marginHeight 1 - -command "from modeling_tools import instant_tie\ninstant_tie.InstantTie()" + -command "from modeling_tools import creaseplus\ncreaseplus.start()" -sourceType "python" -commandRepeatable 1 -flat 1 ; - shelfButton - -enableCommandRepeat 1 - -flexibleWidthType 3 - -flexibleWidthValue 32 - -enable 1 - -width 35 - -height 34 - -manage 1 - -visible 1 - -preventOverride 0 - -annotation "Corner Killer - Fixing corner topology" - -enableBackground 0 - -backgroundColor 0 0 0 - -highlightColor 0.321569 0.521569 0.65098 - -align "center" - -label "CornerKiller" - -labelOffset 0 - -rotation 0 - -flipX 0 - -flipY 0 - -useAlpha 1 - -font "plainLabelFont" - -imageOverlayLabel "CK" - -overlayLabelColor 0.8 0.8 0.8 - -overlayLabelBackColor 0 0 0 0.5 - -image "cornerkiller.png" - -image1 "cornerkiller.png" - -style "iconOnly" - -marginWidth 0 - -marginHeight 1 - -command "from modeling_tools import cornerkiller\ncornerkiller.cornerKiller()" - -sourceType "python" - -commandRepeatable 1 - -flat 1 - ; - shelfButton - -enableCommandRepeat 1 - -flexibleWidthType 3 - -flexibleWidthValue 32 - -enable 1 - -width 35 - -height 34 - -manage 1 - -visible 1 - -preventOverride 0 - -annotation "Flatten Model By UV - Select a mesh first, then click to flatten by UV" - -enableBackground 0 - -backgroundColor 0 0 0 - -highlightColor 0.321569 0.521569 0.65098 - -align "center" - -label "FlattenUV" - -labelOffset 0 - -rotation 0 - -flipX 0 - -flipY 0 - -useAlpha 1 - -font "plainLabelFont" - -imageOverlayLabel "Flat" - -overlayLabelColor 0.8 0.8 0.8 - -overlayLabelBackColor 0 0 0 0.5 - -image "flattenmodelbyuv.png" - -image1 "flattenmodelbyuv.png" - -style "iconOnly" - -marginWidth 0 - -marginHeight 1 - -command "source \"modeling_tools/flattenmodelbyuv.mel\";\nflattenModelbyUV();" - -sourceType "mel" - -commandRepeatable 1 - -flat 1 - ; shelfButton -enableCommandRepeat 1 -flexibleWidthType 3 @@ -459,6 +389,111 @@ global proc shelf_Nexus_Modeling () { -commandRepeatable 1 -flat 1 ; + shelfButton + -enableCommandRepeat 1 + -flexibleWidthType 3 + -flexibleWidthValue 32 + -enable 1 + -width 35 + -height 34 + -manage 1 + -visible 1 + -preventOverride 0 + -annotation "Flatten Model By UV - Select a mesh first, then click to flatten by UV" + -enableBackground 0 + -backgroundColor 0 0 0 + -highlightColor 0.321569 0.521569 0.65098 + -align "center" + -label "FlattenUV" + -labelOffset 0 + -rotation 0 + -flipX 0 + -flipY 0 + -useAlpha 1 + -font "plainLabelFont" + -imageOverlayLabel "Flat" + -overlayLabelColor 0.8 0.8 0.8 + -overlayLabelBackColor 0 0 0 0.5 + -image "flattenmodelbyuv.png" + -image1 "flattenmodelbyuv.png" + -style "iconOnly" + -marginWidth 0 + -marginHeight 1 + -command "source \"modeling_tools/flattenmodelbyuv.mel\";\nflattenModelbyUV();" + -sourceType "mel" + -commandRepeatable 1 + -flat 1 + ; + shelfButton + -enableCommandRepeat 1 + -flexibleWidthType 3 + -flexibleWidthValue 32 + -enable 1 + -width 35 + -height 34 + -manage 1 + -visible 1 + -preventOverride 0 + -annotation "Instant Tie - Easy way to create tie and rope" + -enableBackground 0 + -backgroundColor 0 0 0 + -highlightColor 0.321569 0.521569 0.65098 + -align "center" + -label "InstantTie" + -labelOffset 0 + -rotation 0 + -flipX 0 + -flipY 0 + -useAlpha 1 + -font "plainLabelFont" + -imageOverlayLabel "Tie" + -overlayLabelColor 0.8 0.8 0.8 + -overlayLabelBackColor 0 0 0 0.5 + -image "instant_tie.png" + -image1 "instant_tie.png" + -style "iconOnly" + -marginWidth 0 + -marginHeight 1 + -command "from modeling_tools import instant_tie\ninstant_tie.InstantTie()" + -sourceType "python" + -commandRepeatable 1 + -flat 1 + ; + shelfButton + -enableCommandRepeat 1 + -flexibleWidthType 3 + -flexibleWidthValue 32 + -enable 1 + -width 35 + -height 34 + -manage 1 + -visible 1 + -preventOverride 0 + -annotation "Corner Killer - Fixing corner topology" + -enableBackground 0 + -backgroundColor 0 0 0 + -highlightColor 0.321569 0.521569 0.65098 + -align "center" + -label "CornerKiller" + -labelOffset 0 + -rotation 0 + -flipX 0 + -flipY 0 + -useAlpha 1 + -font "plainLabelFont" + -imageOverlayLabel "CK" + -overlayLabelColor 0.8 0.8 0.8 + -overlayLabelBackColor 0 0 0 0.5 + -image "cornerkiller.png" + -image1 "cornerkiller.png" + -style "iconOnly" + -marginWidth 0 + -marginHeight 1 + -command "from modeling_tools import cornerkiller\ncornerkiller.cornerKiller()" + -sourceType "python" + -commandRepeatable 1 + -flat 1 + ; shelfButton -enableCommandRepeat 1 -flexibleWidthType 3 diff --git a/CleanCache.bat b/CleanCache.bat new file mode 100644 index 0000000..f8b1b79 --- /dev/null +++ b/CleanCache.bat @@ -0,0 +1,53 @@ +@echo off +setlocal enabledelayedexpansion +echo ======================================== +echo Nexus Cache Cleaner +echo ======================================== +echo. + +echo Starting cache cleanup... +echo. + +REM 计数器初始化 +set "pycache_count=0" +set "temp_count=0" + +REM 清理 Python __pycache__ 目录 +echo [1/2] Cleaning Python cache files... +for /f "delims=" %%d in ('dir /s /b /ad __pycache__ 2^>nul') do ( + echo Deleting: %%d + rd /s /q "%%d" 2>nul + if !errorlevel! equ 0 ( + set /a pycache_count+=1 + ) +) + +REM 清理临时文件 +echo [2/2] Cleaning temporary files... +for %%ext in (*.tmp *.temp *.pyo) do ( + for /f "delims=" %%f in ('dir /s /b "%%ext" 2^>nul') do ( + echo Deleting: %%f + del /f /q "%%f" 2>nul + if !errorlevel! equ 0 ( + set /a temp_count+=1 + ) + ) +) + +echo. +echo ======================================== +echo Cleanup Summary: +echo Python cache directories: !pycache_count! +echo Temporary files: !temp_count! +echo ======================================== + +if !pycache_count! gtr 0 ( + echo Cache cleanup completed successfully! +) else if !temp_count! gtr 0 ( + echo Temporary files cleanup completed! +) else ( + echo No cache files found to clean. +) + +echo. +pause \ No newline at end of file diff --git a/modules/QuadRemesher.mod b/modules/QuadRemesher.mod index a394675..dd45b34 100644 --- a/modules/QuadRemesher.mod +++ b/modules/QuadRemesher.mod @@ -3,39 +3,39 @@ PATH +:= QuadRemesher MAYA_PLUG_IN_PATH +:= plug-ins MAYA_SCRIPT_PATH +:= scripts MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons +XBMLANGPATH+:=icons + MAYAVERSION:2021 PLATFORM:win64 QuadRemesher 1.0.1 ../plug-ins/QuadRemesher PATH +:= QuadRemesher MAYA_PLUG_IN_PATH +:= plug-ins MAYA_SCRIPT_PATH +:= scripts MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons +XBMLANGPATH+:=icons + MAYAVERSION:2022 PLATFORM:win64 QuadRemesher 1.0.1 ../plug-ins/QuadRemesher PATH +:= QuadRemesher MAYA_PLUG_IN_PATH +:= plug-ins MAYA_SCRIPT_PATH +:= scripts MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons +XBMLANGPATH+:=icons + MAYAVERSION:2023 PLATFORM:win64 QuadRemesher 1.0.1 ../plug-ins/QuadRemesher PATH +:= QuadRemesher MAYA_PLUG_IN_PATH +:= plug-ins MAYA_SCRIPT_PATH +:= scripts MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons +XBMLANGPATH+:=icons + MAYAVERSION:2024 PLATFORM:win64 QuadRemesher 1.0.1 ../plug-ins/QuadRemesher PATH +:= QuadRemesher MAYA_PLUG_IN_PATH +:= plug-ins MAYA_SCRIPT_PATH +:= scripts MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons +XBMLANGPATH+:=icons + MAYAVERSION:2025 PLATFORM:win64 QuadRemesher 1.0.1 ../plug-ins/QuadRemesher PATH +:= QuadRemesher MAYA_PLUG_IN_PATH +:= plug-ins MAYA_SCRIPT_PATH +:= scripts MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons \ No newline at end of file +XBMLANGPATH+:=icons \ No newline at end of file diff --git a/plug-ins/QuadRemesher/QuadRemesher.mod b/plug-ins/QuadRemesher/QuadRemesher.mod deleted file mode 100644 index e4788ee..0000000 --- a/plug-ins/QuadRemesher/QuadRemesher.mod +++ /dev/null @@ -1,41 +0,0 @@ -+ MAYAVERSION:2020 PLATFORM:win64 QuadRemesher 1.0.1 H:/Workspace/Raw/Tools/Maya/plug-ins/QuadRemesher -PATH +:= QuadRemesher -MAYA_PLUG_IN_PATH +:= plug-ins -MAYA_SCRIPT_PATH +:= scripts -MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons - -+ MAYAVERSION:2021 PLATFORM:win64 QuadRemesher 1.0.1 H:/Workspace/Raw/Tools/Maya/plug-ins/QuadRemesher -PATH +:= QuadRemesher -MAYA_PLUG_IN_PATH +:= plug-ins -MAYA_SCRIPT_PATH +:= scripts -MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons - -+ MAYAVERSION:2022 PLATFORM:win64 QuadRemesher 1.0.1 H:/Workspace/Raw/Tools/Maya/plug-ins/QuadRemesher -PATH +:= QuadRemesher -MAYA_PLUG_IN_PATH +:= plug-ins -MAYA_SCRIPT_PATH +:= scripts -MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons - -+ MAYAVERSION:2023 PLATFORM:win64 QuadRemesher 1.0.1 H:/Workspace/Raw/Tools/Maya/plug-ins/QuadRemesher -PATH +:= QuadRemesher -MAYA_PLUG_IN_PATH +:= plug-ins -MAYA_SCRIPT_PATH +:= scripts -MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons - -+ MAYAVERSION:2024 PLATFORM:win64 QuadRemesher 1.0.1 H:/Workspace/Raw/Tools/Maya/plug-ins/QuadRemesher -PATH +:= QuadRemesher -MAYA_PLUG_IN_PATH +:= plug-ins -MAYA_SCRIPT_PATH +:= scripts -MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons - -+ MAYAVERSION:2025 PLATFORM:win64 QuadRemesher 1.0.1 H:/Workspace/Raw/Tools/Maya/plug-ins/QuadRemesher -PATH +:= QuadRemesher -MAYA_PLUG_IN_PATH +:= plug-ins -MAYA_SCRIPT_PATH +:= scripts -MAYA_SHELF_PATH +:= shelves -XBMLANGPATH +:= icons \ No newline at end of file diff --git a/plug-ins/QuadRemesher/plug-ins/QuadRemesherPlugIn.py b/plug-ins/QuadRemesher/plug-ins/QuadRemesherPlugIn.py index 88779dc..4c09a61 100644 --- a/plug-ins/QuadRemesher/plug-ins/QuadRemesherPlugIn.py +++ b/plug-ins/QuadRemesher/plug-ins/QuadRemesherPlugIn.py @@ -36,7 +36,21 @@ def initializePlugin(plugin): a=1 # install the ShelfButton the first time and if not already installed - mel.eval('QuadRemesher_shelf') + try: + import os + # Get plugin directory + plugin_path = om.MFnPlugin(plugin).loadPath() + quadremesher_dir = os.path.dirname(plugin_path) + shelf_mel = os.path.join(quadremesher_dir, 'shelves', 'QuadRemesher_shelf.mel') + shelf_mel = os.path.normpath(shelf_mel).replace('\\', '/') + + if os.path.exists(shelf_mel): + mel.eval(f'source "{shelf_mel}"') + mel.eval('QuadRemesher_shelf') + else: + print(f"Warning: QuadRemesher shelf file not found at: {shelf_mel}") + except Exception as e: + print(f"Warning: Could not install QuadRemesher shelf: {e}") # Uninitialize the plug-in diff --git a/plug-ins/QuadRemesher/shelves/QuadRemesher_shelf.mel b/plug-ins/QuadRemesher/shelves/QuadRemesher_shelf.mel index ddee0d5..674443d 100644 --- a/plug-ins/QuadRemesher/shelves/QuadRemesher_shelf.mel +++ b/plug-ins/QuadRemesher/shelves/QuadRemesher_shelf.mel @@ -6,7 +6,7 @@ global proc QuadRemesher_shelf () { if ($verbose) print "QuadRemesher_shelf execution...\n"; - $theButtonCommand = "import QuadRemesher\nqr = QuadRemesher.QuadRemesher()\n"; + $theButtonCommand = "import sys, os, maya.cmds as mc\nplug_info = mc.pluginInfo('QuadRemesherPlugIn', q=True, path=True)\nqr_scripts = os.path.join(os.path.dirname(plug_info), '..', 'scripts')\nqr_scripts = os.path.normpath(qr_scripts)\nif qr_scripts not in sys.path: sys.path.insert(0, qr_scripts)\nimport QuadRemesher\nqr = QuadRemesher.QuadRemesher()"; // search if the shelfButton exists: // NB: shelfButton -query -exists "QuadRemesher" doesn't work because, the name of the shelfButtons are not saved by Maya in shelf.mel diff --git a/plug-ins/QuadRemesher/安装方法.txt b/plug-ins/QuadRemesher/安装方法.txt deleted file mode 100644 index 7ac4c27..0000000 --- a/plug-ins/QuadRemesher/安装方法.txt +++ /dev/null @@ -1,12 +0,0 @@ -安装方法: -1. 修改 QuadRemesher.mod 文件中的脚本路径为当前路径,如: - - H:/Workspace/Raw/Tools/Maya/plug-ins/QuadRemesher - - 注意要使用“/”而不是 “\” - -2. 复制 QuadRemesher.mod 文件到 Documents\maya\modules 文件夹中 - -2. 运行Maya - -3. 在插件管理器中启用QuadRemesher插件 \ No newline at end of file