├── .gitignore ├── README.md ├── README_cgmTools ├── Red9 ├── Codebase_Tracker.xlsx ├── LICENSE ├── README.md ├── __init__.py ├── core │ ├── AnimationBinder.py │ ├── Red9_AnimationUtils.py │ ├── Red9_Audio.py │ ├── Red9_CoreUtils.py │ ├── Red9_General.py │ ├── Red9_MelCore.mel │ ├── Red9_Meta.py │ ├── Red9_PoseSaver.py │ ├── Red9_Tools.py │ └── __init__.py ├── docs │ ├── Makefile │ ├── Red9 ProPack_release_notes │ │ ├── Red9 ProPack Manual - Pro_to_BND.pdf │ │ ├── Red9 ProPack Manual - Pro_to_BND_2020.pdf │ │ ├── Red9 ProPack Release Notes - Jan 2019.pdf │ │ └── Red9 ProPack Release Notes - Sep 2019.pdf │ ├── Red9-StudioTools Help.odt │ ├── Red9-StudioTools Help.pdf │ ├── html │ │ ├── .buildinfo │ │ ├── .doctrees │ │ │ ├── environment.pickle │ │ │ ├── index.doctree │ │ │ ├── red9core_templates │ │ │ │ ├── Red9_AnimationUtils.doctree │ │ │ │ ├── Red9_Audio.doctree │ │ │ │ ├── Red9_Core.doctree │ │ │ │ ├── Red9_General.doctree │ │ │ │ ├── Red9_Meta.doctree │ │ │ │ ├── Red9_PoseSaver.doctree │ │ │ │ ├── Red9_Setup.doctree │ │ │ │ └── Red9_Tools.doctree │ │ │ ├── red9pro_templates │ │ │ │ ├── Red9_Pro_anim_map.doctree │ │ │ │ ├── Red9_Pro_animation.doctree │ │ │ │ ├── Red9_Pro_audio.doctree │ │ │ │ ├── Red9_Pro_export.doctree │ │ │ │ ├── Red9_Pro_general.doctree │ │ │ │ ├── Red9_Pro_importexport.doctree │ │ │ │ ├── Red9_Pro_metadata_pro.doctree │ │ │ │ ├── Red9_Pro_optimiser.doctree │ │ │ │ ├── Red9_Pro_project.doctree │ │ │ │ ├── Red9_Pro_r9data.doctree │ │ │ │ ├── Red9_Pro_r9skinning.doctree │ │ │ │ ├── Red9_Pro_rigutils.doctree │ │ │ │ ├── Red9_Pro_skining.doctree │ │ │ │ ├── Red9_Pro_skinning.doctree │ │ │ │ ├── Red9_Pro_uibase.doctree │ │ │ │ └── tools │ │ │ │ │ ├── Red9_Pro_anim_binder.doctree │ │ │ │ │ ├── Red9_Pro_anim_tools.doctree │ │ │ │ │ ├── Red9_Pro_health_manager.doctree │ │ │ │ │ ├── Red9_Pro_metahuman_tools.doctree │ │ │ │ │ ├── Red9_Pro_project_manager.doctree │ │ │ │ │ └── Red9_Pro_rig_manager.doctree │ │ │ └── red9templates │ │ │ │ ├── Red9_AnimationUtils.doctree │ │ │ │ ├── Red9_Core.doctree │ │ │ │ ├── Red9_Meta.doctree │ │ │ │ └── core.doctree │ │ ├── _images │ │ │ ├── Red9_ProPack_logo.png │ │ │ ├── Red9_ProPack_splash.png │ │ │ ├── Red9_ProPack_strap1.png │ │ │ ├── Red9_ProPack_strap2.png │ │ │ ├── Red9_ProPack_strap_pro.png │ │ │ └── red9.png │ │ ├── _sources │ │ │ ├── index.rst.txt │ │ │ ├── index.txt │ │ │ ├── red9core_templates │ │ │ │ ├── Red9_AnimationUtils.rst.txt │ │ │ │ ├── Red9_Audio.rst.txt │ │ │ │ ├── Red9_Core.rst.txt │ │ │ │ ├── Red9_General.rst.txt │ │ │ │ ├── Red9_Meta.rst.txt │ │ │ │ ├── Red9_PoseSaver.rst.txt │ │ │ │ ├── Red9_Setup.rst.txt │ │ │ │ └── Red9_Tools.rst.txt │ │ │ └── red9pro_templates │ │ │ │ ├── Red9_Pro_anim_map.rst.txt │ │ │ │ ├── Red9_Pro_animation.rst.txt │ │ │ │ ├── Red9_Pro_audio.rst.txt │ │ │ │ ├── Red9_Pro_export.rst.txt │ │ │ │ ├── Red9_Pro_general.rst.txt │ │ │ │ ├── Red9_Pro_importexport.rst.txt │ │ │ │ ├── Red9_Pro_metadata_pro.rst.txt │ │ │ │ ├── Red9_Pro_optimiser.rst.txt │ │ │ │ ├── Red9_Pro_project.rst.txt │ │ │ │ ├── Red9_Pro_r9data.rst.txt │ │ │ │ ├── Red9_Pro_r9skinning.rst.txt │ │ │ │ ├── Red9_Pro_rigutils.rst.txt │ │ │ │ ├── Red9_Pro_skining.rst.txt │ │ │ │ ├── Red9_Pro_skinning.rst.txt │ │ │ │ ├── Red9_Pro_uibase.rst.txt │ │ │ │ └── tools │ │ │ │ ├── Red9_Pro_anim_binder.rst.txt │ │ │ │ ├── Red9_Pro_anim_tools.rst.txt │ │ │ │ ├── Red9_Pro_health_manager.rst.txt │ │ │ │ ├── Red9_Pro_metahuman_tools.rst.txt │ │ │ │ ├── Red9_Pro_project_manager.rst.txt │ │ │ │ └── Red9_Pro_rig_manager.rst.txt │ │ ├── _static │ │ │ ├── Red9_ProPack_logo.png │ │ │ ├── ajax-loader.gif │ │ │ ├── basic.css │ │ │ ├── comment-bright.png │ │ │ ├── comment-close.png │ │ │ ├── comment.png │ │ │ ├── css │ │ │ │ ├── badge_only.css │ │ │ │ ├── fonts │ │ │ │ │ ├── Roboto-Slab-Bold.woff │ │ │ │ │ ├── Roboto-Slab-Bold.woff2 │ │ │ │ │ ├── Roboto-Slab-Regular.woff │ │ │ │ │ ├── Roboto-Slab-Regular.woff2 │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ ├── fontawesome-webfont.woff2 │ │ │ │ │ ├── lato-bold-italic.woff │ │ │ │ │ ├── lato-bold-italic.woff2 │ │ │ │ │ ├── lato-bold.woff │ │ │ │ │ ├── lato-bold.woff2 │ │ │ │ │ ├── lato-normal-italic.woff │ │ │ │ │ ├── lato-normal-italic.woff2 │ │ │ │ │ ├── lato-normal.woff │ │ │ │ │ └── lato-normal.woff2 │ │ │ │ └── theme.css │ │ │ ├── doctools.js │ │ │ ├── documentation_options.js │ │ │ ├── down-pressed.png │ │ │ ├── down.png │ │ │ ├── file.png │ │ │ ├── graphviz.css │ │ │ ├── jquery-3.2.1.js │ │ │ ├── jquery.js │ │ │ ├── js │ │ │ │ ├── badge_only.js │ │ │ │ ├── html5shiv-printshiv.min.js │ │ │ │ ├── html5shiv.min.js │ │ │ │ └── theme.js │ │ │ ├── language_data.js │ │ │ ├── minus.png │ │ │ ├── nature.css │ │ │ ├── plus.png │ │ │ ├── pygments.css │ │ │ ├── searchtools.js │ │ │ ├── underscore-1.3.1.js │ │ │ ├── underscore.js │ │ │ ├── up-pressed.png │ │ │ ├── up.png │ │ │ └── websupport.js │ │ ├── genindex-A.html │ │ ├── genindex-B.html │ │ ├── genindex-C.html │ │ ├── genindex-D.html │ │ ├── genindex-E.html │ │ ├── genindex-F.html │ │ ├── genindex-G.html │ │ ├── genindex-H.html │ │ ├── genindex-I.html │ │ ├── genindex-J.html │ │ ├── genindex-K.html │ │ ├── genindex-L.html │ │ ├── genindex-M.html │ │ ├── genindex-N.html │ │ ├── genindex-O.html │ │ ├── genindex-P.html │ │ ├── genindex-R.html │ │ ├── genindex-S.html │ │ ├── genindex-T.html │ │ ├── genindex-U.html │ │ ├── genindex-V.html │ │ ├── genindex-W.html │ │ ├── genindex-Z.html │ │ ├── genindex-all.html │ │ ├── genindex.html │ │ ├── index.html │ │ ├── objects.inv │ │ ├── py-modindex.html │ │ ├── red9core_templates │ │ │ ├── Red9_AnimationUtils.html │ │ │ ├── Red9_Audio.html │ │ │ ├── Red9_Core.html │ │ │ ├── Red9_General.html │ │ │ ├── Red9_Meta.html │ │ │ ├── Red9_PoseSaver.html │ │ │ ├── Red9_Setup.html │ │ │ └── Red9_Tools.html │ │ ├── red9pro_templates │ │ │ ├── Red9_Pro_anim_map.html │ │ │ ├── Red9_Pro_animation.html │ │ │ ├── Red9_Pro_audio.html │ │ │ ├── Red9_Pro_export.html │ │ │ ├── Red9_Pro_general.html │ │ │ ├── Red9_Pro_importexport.html │ │ │ ├── Red9_Pro_metadata_pro.html │ │ │ ├── Red9_Pro_optimiser.html │ │ │ ├── Red9_Pro_project.html │ │ │ ├── Red9_Pro_r9data.html │ │ │ ├── Red9_Pro_rigutils.html │ │ │ ├── Red9_Pro_skining.html │ │ │ ├── Red9_Pro_skinning.html │ │ │ ├── Red9_Pro_uibase.html │ │ │ └── tools │ │ │ │ ├── Red9_Pro_anim_binder.html │ │ │ │ ├── Red9_Pro_anim_tools.html │ │ │ │ ├── Red9_Pro_health_manager.html │ │ │ │ ├── Red9_Pro_metahuman_tools.html │ │ │ │ ├── Red9_Pro_project_manager.html │ │ │ │ └── Red9_Pro_rig_manager.html │ │ ├── search.html │ │ └── searchindex.js │ ├── images │ │ ├── AnimationUI.jpg │ │ ├── AnimationUI_Pose.jpg │ │ ├── AnimationUI_filter.jpg │ │ ├── AnimationUI_main.jpg │ │ ├── CopyKeys.jpg │ │ ├── FilterUI.jpg │ │ ├── LocknHide.jpg │ │ ├── NodeName_re.jpg │ │ ├── PoseManager.jpg │ │ ├── SnapTransforms.jpg │ │ ├── TimeOffset.jpg │ │ ├── TimeRange.jpg │ │ └── Track and Stabilize.jpg │ ├── make.bat │ ├── red9_videos.json │ ├── source │ │ ├── Red9_ProPack_logo.png │ │ ├── Red9_ProPack_splash.png │ │ ├── Red9_ProPack_strap1.png │ │ ├── Red9_ProPack_strap2.png │ │ ├── Red9_ProPack_strap_pro.png │ │ ├── conf.py │ │ ├── index.rst │ │ ├── red9.png │ │ ├── red9core_templates │ │ │ ├── Red9_AnimationUtils.rst │ │ │ ├── Red9_Audio.rst │ │ │ ├── Red9_Core.rst │ │ │ ├── Red9_General.rst │ │ │ ├── Red9_Meta.rst │ │ │ ├── Red9_PoseSaver.rst │ │ │ ├── Red9_Setup.rst │ │ │ └── Red9_Tools.rst │ │ └── red9pro_templates │ │ │ ├── Red9_Pro_anim_map.rst │ │ │ ├── Red9_Pro_animation.rst │ │ │ ├── Red9_Pro_audio.rst │ │ │ ├── Red9_Pro_export.rst │ │ │ ├── Red9_Pro_general.rst │ │ │ ├── Red9_Pro_importexport.rst │ │ │ ├── Red9_Pro_metadata_pro.rst │ │ │ ├── Red9_Pro_optimiser.rst │ │ │ ├── Red9_Pro_project.rst │ │ │ ├── Red9_Pro_r9data.rst │ │ │ ├── Red9_Pro_rigutils.rst │ │ │ ├── Red9_Pro_skining.rst │ │ │ ├── Red9_Pro_skinning.rst │ │ │ ├── Red9_Pro_uibase.rst │ │ │ └── tools │ │ │ ├── Red9_Pro_anim_binder.rst │ │ │ ├── Red9_Pro_anim_tools.rst │ │ │ ├── Red9_Pro_health_manager.rst │ │ │ ├── Red9_Pro_metahuman_tools.rst │ │ │ ├── Red9_Pro_project_manager.rst │ │ │ └── Red9_Pro_rig_manager.rst │ └── sphinxme.py ├── icons │ ├── Red9StudioPack.ico │ ├── Red9_ProPack_logo.png │ ├── Red9_StudioPack_logo.png │ ├── Rocket9_buttonStrap.bmp │ ├── Rocket9_buttonStrap.png │ ├── Rocket9_buttonStrap2.bmp │ ├── Rocket9_buttonStrap_narrow.png │ ├── api_30.png │ ├── blogspot_30.png │ ├── bug_30.png │ ├── camera_30.png │ ├── domain_30.png │ ├── facebook_30.png │ ├── hand_with_pen_30.png │ ├── info_30.png │ ├── locationon_30.png │ ├── lock_30.png │ ├── meta_node_30.png │ ├── mirror_30.png │ ├── pose_30.png │ ├── red9.jpg │ ├── red9.png │ ├── red9_update.png │ ├── search_30.png │ ├── sortBy.psd │ ├── sortByDate.bmp │ ├── sortByName.bmp │ ├── sound.png │ ├── sound_30.png │ ├── twitter_30.png │ ├── vimeo_30.png │ ├── workflow_30.png │ └── youtube.png ├── license.txt ├── packages │ ├── __init__.py │ ├── _version.py │ ├── configobj.py │ ├── pydub │ │ ├── __init__.py │ │ ├── audio_segment.py │ │ ├── effects.py │ │ ├── exceptions.py │ │ ├── generators.py │ │ ├── logging_utils.py │ │ ├── playback.py │ │ ├── pyaudioop.py │ │ ├── scipy_effects.py │ │ ├── silence.py │ │ └── utils.py │ └── pyperclip │ │ ├── __init__.py │ │ └── __main__.py ├── plug-ins │ ├── SnapRuntime.py │ └── evalManager_switch.py ├── presets │ ├── ART_v1.cfg │ ├── ART_v1.mirrorMap │ ├── Andy_Rig.cfg │ ├── Basic_Rig.cfg │ ├── Basic_Skeleton.cfg │ ├── Default.cfg │ ├── HumanIK.cfg │ ├── MaxforMaya.cfg │ ├── MetaRig.cfg │ ├── MorpheusRig.cfg │ ├── Red9_DevRig.cfg │ ├── Red9_MetaRig_unitTest.cfg │ ├── Red9_PuppetRig.cfg │ ├── Standard_Hierarchy.cfg │ ├── Stewart_Rig.cfg │ ├── TSM.cfg │ ├── __red9animreset__ │ ├── posehandlers │ │ ├── Red9_facial_poseHandler.py │ │ ├── fingerMirrorID_poseHandler.py │ │ ├── finger_poseHandler.py │ │ └── test_poseHandler.py │ └── resource_files │ │ └── HIK_default.hikproperties └── startup │ ├── __init__.py │ ├── language_packs │ ├── __init__.py │ └── language_english.py │ ├── maya_native │ ├── maya_2009 │ │ └── Maya_Hacked.mel │ ├── maya_2010 │ │ └── Maya_Hacked.mel │ ├── maya_2011 │ │ └── Maya_Hacked.mel │ ├── maya_2012 │ │ └── Maya_Hacked.mel │ ├── maya_2013 │ │ └── Maya_Hacked.mel │ ├── maya_2014 │ │ └── Maya_Hacked.mel │ ├── maya_2015 │ │ └── Maya_Hacked.mel │ ├── maya_2016.5 │ │ └── Maya_Hacked.mel │ ├── maya_2016 │ │ └── Maya_Hacked.mel │ ├── maya_2017 │ │ └── Maya_Hacked.mel │ ├── maya_2018 │ │ └── Maya_Hacked.mel │ ├── maya_2019 │ │ └── Maya_Hacked.mel │ ├── maya_2020 │ │ └── Maya_Hacked.mel │ ├── maya_2022 │ │ └── Maya_Hacked.mel │ ├── maya_2023 │ │ └── Maya_Hacked.mel │ └── red9MayaHacks.mel │ └── setup.py ├── cgm ├── __init__.py ├── assets │ ├── cgmController.mb │ └── example_project.cfg ├── cgmDat │ └── mrs │ │ ├── characters │ │ └── DeathWolf.cgmBlockConfig │ │ ├── human │ │ └── baseMale │ │ │ ├── baseMale_gameToon.cgmBlockConfig │ │ │ └── baseMale_mobileToon.cgmBlockConfig │ │ ├── proximals │ │ ├── cougar.cgmBlockConfig │ │ ├── elk.cgmBlockConfig │ │ └── wolf.cgmBlockConfig │ │ └── shapeDat │ │ └── human │ │ ├── baseFemale │ │ ├── R_arm_limb.cgmShapeDat │ │ ├── R_index_limb.cgmShapeDat │ │ ├── R_leg_limb.cgmShapeDat │ │ ├── R_middle_limb.cgmShapeDat │ │ ├── R_pinky_limb.cgmShapeDat │ │ ├── R_ring_limb.cgmShapeDat │ │ ├── R_thumb_limb.cgmShapeDat │ │ └── spine_segment.cgmShapeDat │ │ └── baseMale │ │ ├── R_arm_limb.cgmShapeDat │ │ ├── R_index_limb.cgmShapeDat │ │ ├── R_leg_limb.cgmShapeDat │ │ ├── R_middle_limb.cgmShapeDat │ │ ├── R_pinky_limb.cgmShapeDat │ │ ├── R_ring_limb.cgmShapeDat │ │ ├── R_thumb_limb.cgmShapeDat │ │ └── spine_segment.cgmShapeDat ├── cgmInitialize.py ├── core │ ├── __init__.py │ ├── cgmPy │ │ ├── OM_Utils.py │ │ ├── __init__.py │ │ ├── dict_utils.py │ │ ├── os_Utils.py │ │ ├── path_Utils.py │ │ ├── str_Utils.py │ │ └── validateArgs.py │ ├── cgm_Dat.py │ ├── cgm_Deformers.py │ ├── cgm_General.py │ ├── cgm_Meta.py │ ├── cgm_RigMeta.py │ ├── classes │ │ ├── ControlFactory.py │ │ ├── DraggerContextFactory.py │ │ ├── GamePad.py │ │ ├── GuiFactory.py │ │ ├── HotkeyFactory.py │ │ ├── Keyboard.py │ │ ├── NodeFactory.py │ │ ├── PostBake.py │ │ ├── SnapFactory.py │ │ └── __init__.py │ ├── exampleForMark.py │ ├── examples │ │ ├── help_RigBlocks.py │ │ ├── help_cgmAttr.py │ │ ├── help_cgmBlendshape.py │ │ ├── help_cgmFuncCls.py │ │ ├── help_cgmNode.py │ │ ├── help_cgmObject.py │ │ ├── help_datList_msgList.py │ │ ├── help_introToMeta.py │ │ ├── help_logger.py │ │ ├── help_rayCasting.py │ │ └── help_unittesting.py │ ├── lib │ │ ├── __init__.py │ │ ├── anim_utils.py │ │ ├── arrange_utils.py │ │ ├── asset_utils.py │ │ ├── attribute_utils.py │ │ ├── camera_utils.py │ │ ├── constraint_utils.py │ │ ├── control_utils.py │ │ ├── curve_Utils.py │ │ ├── distance_utils.py │ │ ├── ease_utils.py │ │ ├── euclid │ │ │ ├── PKG-INFO │ │ │ ├── README │ │ │ └── __init__.py │ │ ├── geo_Utils.py │ │ ├── hud_utils.py │ │ ├── inputs │ │ │ ├── LICENSE │ │ │ ├── README.rst │ │ │ └── __init__.py │ │ ├── list_utils.py │ │ ├── locator_utils.py │ │ ├── math_utils.py │ │ ├── mayaBeOdd_utils.py │ │ ├── mayaSettings_utils.py │ │ ├── meta_Utils.py │ │ ├── meta_utils │ │ │ ├── __init__.py │ │ │ └── anim_meta.py │ │ ├── ml_tools │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── icons │ │ │ │ ├── ml_animCurveEditor.png │ │ │ │ ├── ml_arcTracer.png │ │ │ │ ├── ml_breakdown.png │ │ │ │ ├── ml_cameraDepthDragger.png │ │ │ │ ├── ml_convertRotationOrder.png │ │ │ │ ├── ml_copyAnim.png │ │ │ │ ├── ml_deleteKey.png │ │ │ │ ├── ml_goToKeyframe.png │ │ │ │ ├── ml_hold.png │ │ │ │ ├── ml_keyValueDragger.png │ │ │ │ ├── ml_resetChannels.png │ │ │ │ ├── ml_selectKeyed.png │ │ │ │ ├── ml_setKey.png │ │ │ │ ├── ml_stopwatch.png │ │ │ │ ├── ml_tangentWeight.png │ │ │ │ ├── ml_toggleVisibility.png │ │ │ │ ├── ml_transferKeytimes.png │ │ │ │ └── ml_worldBake.png │ │ │ ├── ml_animCurveEditor.py │ │ │ ├── ml_arcTracer.py │ │ │ ├── ml_ballisticAnimation.py │ │ │ ├── ml_breakdown.py │ │ │ ├── ml_breakdownDragger.py │ │ │ ├── ml_cameraDepthDragger.py │ │ │ ├── ml_centerOfMass.py │ │ │ ├── ml_colorControl.py │ │ │ ├── ml_controlLibrary.py │ │ │ ├── ml_convertRotationOrder.py │ │ │ ├── ml_copyAnim.py │ │ │ ├── ml_copySkin.py │ │ │ ├── ml_deleteKey.py │ │ │ ├── ml_frameGraphEditor.py │ │ │ ├── ml_goToKeyframe.py │ │ │ ├── ml_graphEditorMask.py │ │ │ ├── ml_hold.py │ │ │ ├── ml_lockAndHideAttributes.py │ │ │ ├── ml_parentShape.py │ │ │ ├── ml_pivot.py │ │ │ ├── ml_puppet.py │ │ │ ├── ml_resetBind.py │ │ │ ├── ml_resetChannels.py │ │ │ ├── ml_selectKeyed.py │ │ │ ├── ml_setKey.py │ │ │ ├── ml_stopwatch.py │ │ │ ├── ml_tangentWeight.py │ │ │ ├── ml_toggleVisibility.py │ │ │ ├── ml_toolbox.py │ │ │ ├── ml_transferKeytimes.py │ │ │ ├── ml_utilities.py │ │ │ └── ml_worldBake.py │ │ ├── mouse_utils.py │ │ ├── nameTools.py │ │ ├── name_utils.py │ │ ├── node_utils.py │ │ ├── noise.py │ │ ├── path_utils.py │ │ ├── playblast_utils.py │ │ ├── position_utils.py │ │ ├── rayCaster.py │ │ ├── rigging_utils.py │ │ ├── sdk_utils.py │ │ ├── search_utils.py │ │ ├── selection_Utils.py │ │ ├── shapeCaster.py │ │ ├── shape_utils.py │ │ ├── shared_data.py │ │ ├── skinDat.py │ │ ├── skin_utils.py │ │ ├── snap_utils.py │ │ ├── string_utils.py │ │ ├── surface_Utils.py │ │ ├── transform_utils.py │ │ ├── wing │ │ │ ├── __init__.py │ │ │ ├── executeWingCode.py │ │ │ ├── mayaWingServer.py │ │ │ ├── wingHotkeys.py │ │ │ └── wingdbstub.py │ │ └── zoo │ │ │ ├── __init__.py │ │ │ ├── apiExtensions.py │ │ │ ├── baseMelUI.py │ │ │ ├── cacheDecorators.py │ │ │ ├── exceptionHandlers.py │ │ │ ├── melUtils.py │ │ │ ├── misc.py │ │ │ ├── names.py │ │ │ ├── path.py │ │ │ ├── typeFactories.py │ │ │ └── vectors.py │ ├── mel │ │ ├── cgmMarkingMenu.mel │ │ ├── cgmRiggerMM.mel │ │ └── cgmTemplateMM.mel │ ├── mrs │ │ ├── Animate.py │ │ ├── Builder.py │ │ ├── Helpers.py │ │ ├── MRSDat.py │ │ ├── PoseManager.py │ │ ├── RigBlocks.py │ │ ├── Scene.py │ │ ├── Scene2.py │ │ ├── SceneDat.py │ │ ├── Shots.py │ │ ├── __init__.py │ │ ├── assets │ │ │ ├── __init__.py │ │ │ ├── headSimple_01.mtl │ │ │ └── headSimple_01.obj │ │ ├── blocks │ │ │ ├── __init__.py │ │ │ ├── example.py │ │ │ ├── master.py │ │ │ ├── organic │ │ │ │ ├── __init__.py │ │ │ │ ├── brow.py │ │ │ │ ├── eye.py │ │ │ │ ├── eye.py.orig │ │ │ │ ├── hand.py │ │ │ │ ├── head.py │ │ │ │ ├── limb.py │ │ │ │ ├── muzzle.py │ │ │ │ └── segment.py │ │ │ └── simple │ │ │ │ ├── __init__.py │ │ │ │ ├── doodad.py │ │ │ │ ├── eyeMain.py │ │ │ │ └── handle.py │ │ ├── help │ │ │ └── help_master_intro.py │ │ └── lib │ │ │ ├── ModuleControlFactory.py │ │ │ ├── ModuleShapeCaster.py │ │ │ ├── __init__.py │ │ │ ├── animate_utils.py │ │ │ ├── batch_utils.py │ │ │ ├── blockShapes_utils.py │ │ │ ├── block_utils.py │ │ │ ├── builder_utils.py │ │ │ ├── face_utils.py │ │ │ ├── general_utils.py │ │ │ ├── module_utils.py │ │ │ ├── post_utils.py │ │ │ ├── puppet_utils.py │ │ │ ├── rigBits.py │ │ │ ├── rigFrame_utils.py │ │ │ ├── rigShapes_utils.py │ │ │ ├── scene_utils.py │ │ │ └── shared_dat.py │ ├── presets │ │ ├── __init__.py │ │ └── cgmDynFK_presets.py │ ├── reloadFactory.py │ ├── rig │ │ ├── __init__.py │ │ ├── constraint_utils.py │ │ ├── create_utils.py │ │ ├── dynamic_utils.py │ │ ├── general_utils.py │ │ ├── ik_utils.py │ │ ├── joint_utils.py │ │ ├── lib │ │ │ └── __init__.py │ │ ├── segment_utils.py │ │ ├── shader_utils.py │ │ ├── skin_utils.py │ │ └── spacePivot_utils.py │ ├── tests │ │ ├── __init__.py │ │ ├── cgmMeta_test.py │ │ ├── cgmTests.py │ │ ├── mayaBeOdd.py │ │ ├── mayaBeOdd_r9ONLY.py │ │ ├── morphyTestTorso.ma │ │ ├── test_MRS │ │ │ ├── __init__.py │ │ │ └── test_RigBlocks.py │ │ ├── test_cgmMeta │ │ │ ├── __init__.py │ │ │ ├── test_PuppetMeta.py │ │ │ ├── test_base.py │ │ │ └── test_mClasses.py │ │ └── test_coreLib │ │ │ ├── __init__.py │ │ │ ├── test_ATTR.py │ │ │ ├── test_NODEFACTORY.py │ │ │ ├── test_PATH.py │ │ │ └── test_VALID.py │ └── tools │ │ ├── Project.py │ │ ├── SVGator.py │ │ ├── __init__.py │ │ ├── animDraw.py │ │ ├── animDrawTool.py │ │ ├── animFilterTool.py │ │ ├── attrTools.py │ │ ├── attributeRandomizer.py │ │ ├── bakeAndPrep.py │ │ ├── baseTool.py │ │ ├── controllerPuppet.py │ │ ├── controllerPuppetTool.py │ │ ├── designerSpring.py │ │ ├── dragger.py │ │ ├── dynFKTool.py │ │ ├── dynParentTool.py │ │ ├── funcIterTime.py │ │ ├── jointTools.py │ │ ├── keyEaser.py │ │ ├── keyframeToMotionCurve.py │ │ ├── lib │ │ ├── __init__.py │ │ ├── annotations.py │ │ ├── cgmDeveloperLib.py │ │ ├── project_utils.py │ │ ├── snap_calls.py │ │ ├── tool_calls.py │ │ └── tool_chunks.py │ │ ├── lightLoomLite.py │ │ ├── liveRecord.py │ │ ├── locinator.py │ │ ├── markingMenus │ │ ├── __init__.py │ │ ├── cgmMMPuppet.py │ │ ├── cgmMMRigger.py │ │ ├── cgmMMTemplate.py │ │ ├── cgmMM_tool.py │ │ ├── cgmPuppetKey.py │ │ └── lib │ │ │ ├── __init__.py │ │ │ ├── contextual_utils.py │ │ │ └── mm_utils.py │ │ ├── meshTools.py │ │ ├── mocapBakeTools.py │ │ ├── randomizeAttribute.py │ │ ├── setTools.py │ │ ├── snapTools.py │ │ ├── spring.py │ │ ├── toolbox.py │ │ ├── trajectoryAim.py │ │ ├── transformTools.py │ │ └── updateTool.py ├── images │ ├── __init__.py │ ├── cgmDefault.png │ ├── cgm_project.png │ ├── cgm_project_asset.png │ ├── cgm_project_commercial.png │ ├── cgm_project_template.psd │ ├── cgm_project_unity.png │ ├── cgm_project_unreal.png │ ├── cgm_uiFooter.bmp │ ├── cgm_uiFooter.png │ ├── cgm_uiFooter_gray.png │ ├── cgmonastery_uiFooter_gray.png │ └── icons │ │ ├── __init__.py │ │ ├── anim.png │ │ ├── anim_2.png │ │ ├── arrow_down.png │ │ ├── arrow_up.png │ │ ├── bake.png │ │ ├── clear.png │ │ ├── contract.png │ │ ├── expand.png │ │ ├── explorer_25.png │ │ ├── export.png │ │ ├── find_file.png │ │ ├── mrs │ │ ├── brow.png │ │ ├── eye.png │ │ ├── eyeMain.png │ │ ├── hand.png │ │ ├── handle.png │ │ ├── head.png │ │ ├── limb.png │ │ ├── master.png │ │ ├── muzzle.png │ │ └── segment.png │ │ ├── new_file.png │ │ ├── rebuild.png │ │ ├── refresh.png │ │ ├── rig_export.png │ │ ├── scene.png │ │ ├── select.png │ │ ├── select_add.png │ │ ├── select_all.png │ │ ├── set_25.png │ │ ├── sortBy.psd │ │ ├── sortBy_date.png │ │ └── sortBy_name.png ├── lib │ ├── __init__.py │ ├── attributes.py │ ├── autoname.py │ ├── batch.py │ ├── bo │ │ ├── README.md │ │ ├── __init__.py │ │ ├── abPointLoft.py │ │ ├── boBatchFileMaker.py │ │ ├── boBatchFileProcessor.mel │ │ ├── boBlendShapes.mel │ │ ├── boCurveSlider.py │ │ ├── boGhosting.mel │ │ ├── boGraphEditor.mel │ │ ├── boMarkingMenus.mel │ │ ├── boMotion.mel │ │ ├── boMotion.py │ │ ├── boNClothPreroll.mel │ │ ├── boProjectViewer2.mel │ │ ├── boRandomizer.mel │ │ ├── boRenderStats.mel │ │ ├── boResetter.py │ │ ├── boRightClickManager.mel │ │ ├── boRightClickOverrides.mel │ │ ├── boScriptJobs.mel │ │ ├── boSliders.mel │ │ ├── boSmear.mel │ │ ├── boSmear.py │ │ ├── boTSMTools.mel │ │ ├── boTimers.mel │ │ ├── boTimers.py │ │ ├── boTimingCharts.mel │ │ ├── boTriggers.mel │ │ ├── boUVSnapshot.py │ │ ├── boUtilities.mel │ │ └── boZDepthShader.mel │ ├── cgmBaseMelUI.py │ ├── cgmDeveloperLib.py │ ├── cgmMath.py │ ├── cgmNames.conf │ ├── cgmSettings.conf │ ├── cgmTypes.conf │ ├── classes │ │ ├── AttrFactory.py │ │ ├── BufferFactory.py │ │ ├── ControlFactory.py │ │ ├── DraggerContextFactory.py │ │ ├── NameFactory.py │ │ ├── ObjectFactory.py │ │ ├── OptionVarFactory.py │ │ ├── SetFactory.py │ │ └── __init__.py │ ├── constraints.py │ ├── controlBuilder.py │ ├── curves.py │ ├── deformers.py │ ├── dictionary.py │ ├── distance.py │ ├── dynamics.py │ ├── geo.py │ ├── gigs │ │ └── project_02012.py │ ├── guiFactory.py │ ├── joints.py │ ├── lists.py │ ├── locators.py │ ├── logic.py │ ├── ml │ │ ├── __init__.py │ │ ├── euclid.py │ │ ├── ml_arcTracer.py │ │ ├── ml_breakdownDragger.py │ │ ├── ml_convertRotationOrder.py │ │ ├── ml_copyAnim.py │ │ ├── ml_deleteKey.py │ │ ├── ml_hold.py │ │ ├── ml_keyValueDragger.py │ │ ├── ml_resetChannels.py │ │ ├── ml_setKey.py │ │ ├── ml_stopwatch.py │ │ ├── ml_utilities.py │ │ └── ml_worldBake.py │ ├── modules.py │ ├── names.py │ ├── nodes.py │ ├── openSource │ │ ├── __init__.py │ │ └── euclid.py │ ├── optionVars.py │ ├── position.py │ ├── pyui.py │ ├── rigging.py │ ├── sdk.py │ ├── search.py │ ├── settings.py │ ├── skinning.py │ ├── specialCaseStuff.py │ ├── surfaces.py │ └── zoo │ │ ├── __init__.py │ │ ├── zooMel │ │ ├── CST │ │ │ ├── control.arrow.shape │ │ │ ├── control.band.shape │ │ │ ├── control.cone.shape │ │ │ ├── control.cube.shape │ │ │ ├── control.cylinder.shape │ │ │ ├── control.eye.shape │ │ │ ├── control.face.shape │ │ │ ├── control.hand.shape │ │ │ ├── control.hex.shape │ │ │ ├── control.locator.shape │ │ │ ├── control.pin.shape │ │ │ ├── control.pointer.shape │ │ │ ├── control.ring.shape │ │ │ ├── control.sphere.shape │ │ │ ├── control.sphere2.shape │ │ │ ├── control.starcircle.shape │ │ │ ├── control.target.shape │ │ │ ├── control.textall.shape │ │ │ ├── zooCST.mel │ │ │ ├── zooCSTBuildIKFK.mel │ │ │ ├── zooCSTBuildIKFK_altTwist.mel │ │ │ ├── zooCSTBuildMPath.mel │ │ │ ├── zooCSTBuildPrimArm.mel │ │ │ ├── zooCSTBuildPrimBasicSpine.mel │ │ │ ├── zooCSTBuildPrimEyes.mel │ │ │ ├── zooCSTBuildPrimFKSpine.mel │ │ │ ├── zooCSTBuildPrimFinger.mel │ │ │ ├── zooCSTBuildPrimHand.mel │ │ │ ├── zooCSTBuildPrimHaunch.mel │ │ │ ├── zooCSTBuildPrimHead.mel │ │ │ ├── zooCSTBuildPrimIKFKSpine.mel │ │ │ ├── zooCSTBuildPrimIKSpine.mel │ │ │ ├── zooCSTBuildPrimLeg.mel │ │ │ ├── zooCSTBuildPrimMoveableEyes.mel │ │ │ ├── zooCSTBuildPrimReverseSpine.mel │ │ │ ├── zooCSTBuildPrimRootSpine.mel │ │ │ ├── zooCSTBuildRoot.mel │ │ │ ├── zooCSTBuildSplineIK.mel │ │ │ ├── zooCSTBuildWorld.mel │ │ │ ├── zooCSTCtrlType.mel │ │ │ ├── zooCSTHelp_flags.zooHelp │ │ │ ├── zooCSTHelp_intro.zooHelp │ │ │ ├── zooCSTHelp_tech.zooHelp │ │ │ ├── zooCSTHelp_works.zooHelp │ │ │ ├── zooCSTInfo.mel │ │ │ ├── zooCSTMakeStretchy.mel │ │ │ ├── zooCSTMakeStretchy_limitsMethod.mel │ │ │ ├── zooCSTPrimitives.mel │ │ │ ├── zooCSTTips.txt │ │ │ ├── zooCSTUtils.mel │ │ │ ├── zooCSTValidateFlags.mel │ │ │ ├── zooCSTWin.mel │ │ │ └── zooEyeSwapper.mel │ │ ├── zooAddCameraMask.mel │ │ ├── zooAlign.mel │ │ ├── zooArrays_float.mel │ │ ├── zooArrays_int.mel │ │ ├── zooArrays_str.mel │ │ ├── zooAttrUtils.mel │ │ ├── zooAutoSave.mel │ │ ├── zooBGBlaster.mel │ │ ├── zooBGBlasterUtils.mel │ │ ├── zooBlendToSdk.mel │ │ ├── zooBodgeK.mel │ │ ├── zooBodgeK_help.zooHelp │ │ ├── zooBoltOnIK.mel │ │ ├── zooBoltOnIKWin.mel │ │ ├── zooBounds.mel │ │ ├── zooBrandTools.mel │ │ ├── zooBuildControl.mel │ │ ├── zooCam.mel │ │ ├── zooChangeRoo.mel │ │ ├── zooChangeSpace.mel │ │ ├── zooCurveLight.mel │ │ ├── zooDates.mel │ │ ├── zooDeleteStaticChannels.mel │ │ ├── zooDynChain.mel │ │ ├── zooEazelUtils.mel │ │ ├── zooFitTimeline.mel │ │ ├── zooFlags.mel │ │ ├── zooGetLookat.mel │ │ ├── zooGraphFilter.mel │ │ ├── zooGraphFilterUtils.mel │ │ ├── zooGreaseMonkey.mel │ │ ├── zooGreaseMonkeyUtils.mel │ │ ├── zooGreaseMonkey_help.zooHelp │ │ ├── zooHUDCtrl.mel │ │ ├── zooHeavy.mel │ │ ├── zooHeavyMenu.mel │ │ ├── zooHeavyUtils.mel │ │ ├── zooHelp.mel │ │ ├── zooHotkeyer.mel │ │ ├── zooKeyCommands.mel │ │ ├── zooKeyCommandsWin.mel │ │ ├── zooKeyCommands_help.zooHelp │ │ ├── zooKeyUtils.mel │ │ ├── zooKeymaster.mel │ │ ├── zooKeymasterMenu.mel │ │ ├── zooKeymasterWin.mel │ │ ├── zooKeymaster_help.zooHelp │ │ ├── zooLineOfAction.mel │ │ ├── zooLockFile.mel │ │ ├── zooNameSpacey.mel │ │ ├── zooNameSpaceyUtils.mel │ │ ├── zooNameSpacey_help.zooHelp │ │ ├── zooObjMenu.mel │ │ ├── zooObjMenuUtils.mel │ │ ├── zooObjMenu_help.zooHelp │ │ ├── zooPanelCycler.mel │ │ ├── zooParentToChild.mel │ │ ├── zooPickwalk.mel │ │ ├── zooPickwalkAuthor.mel │ │ ├── zooPickwalk_help.zooHelp │ │ ├── zooPosesToSliders.mel │ │ ├── zooReblender.mel │ │ ├── zooRegister.mel │ │ ├── zooRegisterWin.mel │ │ ├── zooRenamer.mel │ │ ├── zooRenamerUtils.mel │ │ ├── zooRenamer_help.zooHelp │ │ ├── zooReorderAttribs.mel │ │ ├── zooReorderAttrs.mel │ │ ├── zooReplaceShape.mel │ │ ├── zooResetAttrs.mel │ │ ├── zooResource.mel │ │ ├── zooSelecto.mel │ │ ├── zooSelectoMenu.mel │ │ ├── zooSelectoPresets.mel │ │ ├── zooSelectoUtils.mel │ │ ├── zooSetLookat.mel │ │ ├── zooSetMenu.mel │ │ ├── zooSetMenu_help.zooHelp │ │ ├── zooSetkey.mel │ │ ├── zooShaders.mel │ │ ├── zooShelveIt.mel │ │ ├── zooShots.mel │ │ ├── zooShotsHelp.zooHelp │ │ ├── zooShotsUtils.mel │ │ ├── zooSketchy.mel │ │ ├── zooSketchyUtils.mel │ │ ├── zooSortToHeirarchy.mel │ │ ├── zooSpaceSwitching.mel │ │ ├── zooStickToCurve.mel │ │ ├── zooStrUtils.mel │ │ ├── zooSurgeon.mel │ │ ├── zooSurgeonUtils.mel │ │ ├── zooTangentWks.mel │ │ ├── zooTangentWksUtils.mel │ │ ├── zooToggle.mel │ │ ├── zooToggleUI.mel │ │ ├── zooTriggerator.mel │ │ ├── zooTriggeratorUtils.mel │ │ ├── zooTriggered.mel │ │ ├── zooTriggeredHelp.zooHelp │ │ ├── zooTriggeredPresets.mel │ │ ├── zooTriggeredTech.zooHelp │ │ ├── zooTriggeredUtils.mel │ │ ├── zooUtils.mel │ │ ├── zooVectors.mel │ │ ├── zooVisMan.mel │ │ ├── zooVisManUtils.mel │ │ ├── zooWeightSave.mel │ │ ├── zooWeightSave_help.zooHelp │ │ └── zooXferAnim.mel │ │ ├── zooPy │ │ ├── __init__.py │ │ ├── binarySearchTree.py │ │ ├── cacheDecorators.py │ │ ├── colours.py │ │ ├── consoleChroma.py │ │ ├── dependencies.py │ │ ├── devTest.py │ │ ├── devTest_name.py │ │ ├── devTest_sobject.py │ │ ├── devTest_typeFactories.py │ │ ├── events.py │ │ ├── exceptionHandlers.py │ │ ├── kdTree.py │ │ ├── misc.py │ │ ├── moduleUtils.py │ │ ├── name.py │ │ ├── names.py │ │ ├── path.py │ │ ├── perforce.py │ │ ├── presets.py │ │ ├── profileDecorators.py │ │ ├── sobject.py │ │ ├── strUtils.py │ │ ├── typeFactories.py │ │ └── vectors.py │ │ ├── zooPyMaya │ │ ├── __init__.py │ │ ├── animClip.py │ │ ├── animLib.py │ │ ├── animLibUI.py │ │ ├── animUtils.py │ │ ├── apiExtensions.py │ │ ├── baseMelUI.py │ │ ├── baseRigPrimitive.py │ │ ├── baseSkeletonBuilder.py │ │ ├── baseSkeletonPreset.py │ │ ├── blendShapeTools.py │ │ ├── build_motionPath.py │ │ ├── change.py │ │ ├── changeIkFk.py │ │ ├── changeParent.py │ │ ├── changeRo.py │ │ ├── cmdStrResolver.py │ │ ├── constants.py │ │ ├── control.py │ │ ├── cstWrappers.py │ │ ├── devTestUI.py │ │ ├── devTest_animClip.py │ │ ├── devTest_base.py │ │ ├── devTest_skeletonBuilder.py │ │ ├── dynamicChain.py │ │ ├── fileUI.py │ │ ├── graphEditorUtils.py │ │ ├── mappingEditor.py │ │ ├── mappingUtils.py │ │ ├── mayaDecorators.py │ │ ├── mayaDependencies.py │ │ ├── melUtils.py │ │ ├── meshUtils.py │ │ ├── namespaceHelpers.py │ │ ├── picker.py │ │ ├── plugins │ │ │ └── zooMirror.py │ │ ├── posePropagator.py │ │ ├── poseSym.py │ │ ├── poseSymIcons.xcf │ │ ├── poseSymUI.py │ │ ├── poseSym_match.png │ │ ├── poseSym_swap.png │ │ ├── posesToSliders.py │ │ ├── presetsUI.py │ │ ├── refPropagation.py │ │ ├── referenceUtils.py │ │ ├── resetAttrs.py │ │ ├── rigPrim_bipedLimbs.py │ │ ├── rigPrim_curves.py │ │ ├── rigPrim_hands.py │ │ ├── rigPrim_heads.py │ │ ├── rigPrim_ikFkBase.py │ │ ├── rigPrim_misc.py │ │ ├── rigPrim_quadrupeds.py │ │ ├── rigPrim_root.py │ │ ├── rigPrim_spines.py │ │ ├── rigPrim_stretchy.py │ │ ├── rigPrimitives.py │ │ ├── rigUtils.py │ │ ├── skeletonBuilder.py │ │ ├── skeletonBuilderPresets.py │ │ ├── skeletonBuilderUI.py │ │ ├── skeletonPart_arbitraryChain.py │ │ ├── skeletonPart_arm.py │ │ ├── skeletonPart_hand.py │ │ ├── skeletonPart_head.py │ │ ├── skeletonPart_leg.py │ │ ├── skeletonPart_quadrupedLimbs.py │ │ ├── skeletonPart_spine.py │ │ ├── skinCluster.py │ │ ├── skinWeights.py │ │ ├── skinWeightsBase.py │ │ ├── skinWeightsUI.py │ │ ├── spaceSwitching.py │ │ ├── spaceSwitchingUI.py │ │ ├── triggered.py │ │ ├── triggeredPresets.py │ │ ├── triggeredUI.py │ │ ├── twistNode.py │ │ ├── visManager.py │ │ ├── visManagerUI.py │ │ ├── xferAnimUI.py │ │ └── zooMirror.py │ │ ├── zooToolbox.mel │ │ └── zooToolbox.py ├── license.txt ├── mel │ ├── JTDdynParent.mel │ ├── JTDdynParentUI.mel │ ├── __init__.py │ ├── abSymMesh.mel │ ├── abTwoFace.mel │ ├── abWeightLifter.mel │ ├── autoTangent.mel │ ├── cgmPuppetKeyMM.mel │ ├── cgmSetKeyMM.mel │ ├── cgmSetToolsMM.mel │ ├── cgmSnapMM.mel │ ├── cometJointOrient.mel │ ├── dbRandomizeAttr.mel │ ├── jbExportQSS.mel │ ├── jbGraphSetDrivenAttribute.mel │ ├── jbMirrorSelectedJoints.mel │ ├── seShapeTaper.mel │ ├── tweenMachine.mel │ ├── tweenMachine_docs.html │ └── xml_lib.mel ├── plugins │ └── __init__.py ├── projects │ ├── CGM.py │ ├── __init__.py │ ├── lbs │ │ ├── __init__.py │ │ └── lbs_utils.py │ ├── mk1 │ │ ├── __init__.py │ │ └── mk1_utils.py │ ├── morpheusForUnity │ │ ├── __init__.py │ │ ├── m_utils.py │ │ └── scratchpad.py │ ├── oldFish.py │ ├── projectAA.py │ ├── projectN.py │ ├── projectT.py │ ├── rigMRS.py │ └── specpl.py └── tools │ ├── __init__.py │ ├── animTools.py │ ├── attrTools.py │ ├── bufferTools.py │ ├── findTextures.py │ ├── lib │ ├── __init__.py │ ├── animToolsLib.py │ ├── attrToolsLib.py │ ├── bufferToolsLib.py │ ├── locinatorLib.py │ ├── namingToolsLib.py │ ├── puppetBoxLib.py │ ├── setToolsLib.py │ └── tdToolsLib.py │ ├── locinator.py │ ├── markingMenus │ ├── __init__.py │ ├── cgmSetKey.py │ ├── cgmSetMenu.py │ └── cgmSnap.py │ ├── namingTools.py │ ├── polyUniteTool.py │ ├── puppetBox.py │ ├── setTools.py │ └── tdTools.py ├── cgmToolbox.mel ├── cgmToolbox.py └── cgmUpdate.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .pyc 3 | -------------------------------------------------------------------------------- /README_cgmTools: -------------------------------------------------------------------------------- 1 | Welcome to cgmTools 2 | ------------------------------- 3 | 4 | Learn and Grab Stuff 5 | --Get started with cgmTools | https://bit.ly/cgmToolsWiki 6 | --CGM Production Docs | https://bit.ly/cgmProductionDocs 7 | --CGM Tools Docs | https://bit.ly/cgmToolsDocs 8 | --MRS Docs | https://bit.ly/MRSDocs 9 | --Find cgmRigs here | https://bit.ly/cgmRigsDoc -------------------------------------------------------------------------------- /Red9/Codebase_Tracker.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/Codebase_Tracker.xlsx -------------------------------------------------------------------------------- /Red9/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, Mark Jackson 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /Red9/README.md: -------------------------------------------------------------------------------- 1 | # Red9_StudioPack_Python3 2 | Red9 StudioPack for Maya : converted for Python3 3 | -------------------------------------------------------------------------------- /Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Manual - Pro_to_BND.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Manual - Pro_to_BND.pdf -------------------------------------------------------------------------------- /Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Manual - Pro_to_BND_2020.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Manual - Pro_to_BND_2020.pdf -------------------------------------------------------------------------------- /Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Release Notes - Jan 2019.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Release Notes - Jan 2019.pdf -------------------------------------------------------------------------------- /Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Release Notes - Sep 2019.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/Red9 ProPack_release_notes/Red9 ProPack Release Notes - Sep 2019.pdf -------------------------------------------------------------------------------- /Red9/docs/Red9-StudioTools Help.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/Red9-StudioTools Help.odt -------------------------------------------------------------------------------- /Red9/docs/Red9-StudioTools Help.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/Red9-StudioTools Help.pdf -------------------------------------------------------------------------------- /Red9/docs/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 6b364f3c61b1b2f97316772534cf5264 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/environment.pickle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/environment.pickle -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/index.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_AnimationUtils.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_AnimationUtils.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_Audio.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_Audio.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_Core.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_Core.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_General.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_General.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_Meta.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_Meta.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_PoseSaver.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_PoseSaver.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_Setup.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_Setup.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9core_templates/Red9_Tools.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9core_templates/Red9_Tools.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_anim_map.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_anim_map.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_animation.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_animation.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_audio.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_audio.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_export.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_export.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_general.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_general.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_importexport.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_importexport.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_metadata_pro.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_metadata_pro.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_optimiser.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_optimiser.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_project.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_project.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_r9data.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_r9data.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_r9skinning.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_r9skinning.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_rigutils.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_rigutils.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_skining.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_skining.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_skinning.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_skinning.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_uibase.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/Red9_Pro_uibase.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_anim_binder.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_anim_binder.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_anim_tools.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_anim_tools.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_health_manager.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_health_manager.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_metahuman_tools.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_metahuman_tools.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_project_manager.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_project_manager.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_rig_manager.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9pro_templates/tools/Red9_Pro_rig_manager.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9templates/Red9_AnimationUtils.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9templates/Red9_AnimationUtils.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9templates/Red9_Core.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9templates/Red9_Core.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9templates/Red9_Meta.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9templates/Red9_Meta.doctree -------------------------------------------------------------------------------- /Red9/docs/html/.doctrees/red9templates/core.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/.doctrees/red9templates/core.doctree -------------------------------------------------------------------------------- /Red9/docs/html/_images/Red9_ProPack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_images/Red9_ProPack_logo.png -------------------------------------------------------------------------------- /Red9/docs/html/_images/Red9_ProPack_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_images/Red9_ProPack_splash.png -------------------------------------------------------------------------------- /Red9/docs/html/_images/Red9_ProPack_strap1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_images/Red9_ProPack_strap1.png -------------------------------------------------------------------------------- /Red9/docs/html/_images/Red9_ProPack_strap2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_images/Red9_ProPack_strap2.png -------------------------------------------------------------------------------- /Red9/docs/html/_images/Red9_ProPack_strap_pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_images/Red9_ProPack_strap_pro.png -------------------------------------------------------------------------------- /Red9/docs/html/_images/red9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_images/red9.png -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9core_templates/Red9_AnimationUtils.rst.txt: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_AnimationUtils 8 | =================== 9 | 10 | Red9_AnimationUtils deals with all the key, attribute and time management 11 | within Red9. Anything from copying keys between processed hierarchies 12 | to Mirroring animation data. 13 | 14 | 15 | .. automodule:: Red9.core.Red9_AnimationUtils 16 | 17 | .. rubric:: Core Functions 18 | 19 | .. autosummary:: 20 | 21 | getChannelBoxSelection 22 | getChannelBoxAttrs 23 | getNodeAttrStatus 24 | getSettableChannels 25 | getAnimLayersFromGivenNodes 26 | nodesDriven 27 | timeLineRangeGet 28 | timeLineRangeProcess 29 | animRangeFromNodes 30 | mergeAnimLayers 31 | eulerSelected 32 | 33 | 34 | 35 | .. rubric:: Core Classes 36 | 37 | .. autosummary:: 38 | 39 | AnimationUI 40 | AnimFunctions 41 | RandomizeKeys 42 | FilterCurves 43 | MirrorHierarchy 44 | MirrorSetup 45 | AnimationLayerContext 46 | CameraTracker 47 | 48 | 49 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9core_templates/Red9_Audio.rst.txt: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_Audio 8 | ========== 9 | 10 | Red9 Audio is the module for all audio handling within the Red9 pack. 11 | 12 | This includes the wrapper to the new audio compile tools for mixing multiple wavs 13 | inside Maya to a single merged track, allowing you to finally playblast multiple 14 | separate audio nodes! Why the hell Autodesk haven't done this I have no idea 15 | as it's a major issue when you're dealing with facial sequences. There's is 16 | a 'compile' flag in the playblast command but it's never worked. 17 | 18 | 19 | .. automodule:: Red9.core.Red9_Audio 20 | 21 | .. rubric:: Core Functions 22 | 23 | .. autosummary:: 24 | 25 | milliseconds_to_Timecode 26 | milliseconds_to_frame 27 | timecode_to_milliseconds 28 | timecode_to_frame 29 | frame_to_timecode 30 | frame_to_milliseconds 31 | combineAudio 32 | inspect_wav 33 | audioPathLoaded 34 | 35 | .. rubric:: Main Classes 36 | 37 | .. autosummary:: 38 | 39 | AudioHandler 40 | AudioNode 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9core_templates/Red9_Core.rst.txt: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_CoreUtils 8 | ============== 9 | 10 | Red9_CoreUtils is the backbone of much of the systems, used to filter, find and process nodes 11 | on mass withing Maya as well as containing a lot of core functions for dealing with data. 12 | 13 | The FilterNode and FilterSettings classes are used throughout the pack, in fact any 14 | time the tools process a hierarchy it's these classes that deal with it. 15 | 16 | 17 | .. automodule:: Red9.core.Red9_CoreUtils 18 | 19 | .. rubric:: Core Functions 20 | 21 | .. autosummary:: 22 | 23 | nodeNameStrip 24 | prioritizeNodeList 25 | sortNumerically 26 | stringReplace 27 | matchNodeLists 28 | getBlendTargetsFromMesh 29 | processMatchedNodes 30 | matchNodeLists 31 | timeOffset_addPadding 32 | timeOffset_collapse 33 | 34 | decodeString 35 | floatIsEqual 36 | valueToMappedRange 37 | distanceBetween 38 | 39 | 40 | .. rubric:: Core Classes 41 | 42 | .. autosummary:: 43 | 44 | FilterNode_Settings 45 | FilterNode 46 | MatchedNodeInputs 47 | LockChannels 48 | TimeOffset 49 | MatrixOffset 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9core_templates/Red9_General.rst.txt: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_General 8 | ============ 9 | 10 | Red9 General is a module for general functions called and used throughout the codebase. 11 | This includes most of the context managers and decorators. 12 | 13 | .. note:: 14 | Nothing inside this module should require any other part of Red9 15 | 16 | 17 | .. automodule:: Red9.core.Red9_General 18 | 19 | .. rubric:: Key functions 20 | 21 | .. autosummary:: 22 | 23 | getCurrentFPS 24 | getModifier 25 | forceToString 26 | itersubclasses 27 | inspectFunctionSource 28 | getScriptEditorSelection 29 | 30 | thumbNailScreen 31 | thumbnailFromPlayBlast 32 | thumbnailApiFromView 33 | 34 | os_OpenFileDirectory 35 | os_OpenFile 36 | formatPath 37 | formatPath_join 38 | sceneName 39 | 40 | writeJson 41 | readJson 42 | 43 | .. rubric:: Context Managers / decorators 44 | 45 | .. autosummary:: 46 | 47 | AnimationContext 48 | undoContext 49 | ProgressBarContext 50 | HIKContext 51 | SceneRestoreContext 52 | Timer 53 | runProfile 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9core_templates/Red9_PoseSaver.rst.txt: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_PoseSaver 8 | ============== 9 | 10 | Red9_PoseSaver is designed as a generic module for storing and dealing 11 | with poses inside Maya. The PoseData object is the base for all of this 12 | and is what's wrapped by the AnimUI and the MetaData.poseCacheLoad() calls. 13 | 14 | There's also a powerful setup for testing a rigs current pose against a 15 | previously stored pose file, or you can test poseObjectA==poseObjectB 16 | or even poseFileA==poseFileB 17 | 18 | 19 | .. automodule:: Red9.core.Red9_PoseSaver 20 | 21 | .. rubric:: Core Pose Classes 22 | 23 | .. autosummary:: 24 | 25 | DataMap 26 | PoseData 27 | PosePointCloud 28 | PoseBlender 29 | PoseCompare 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9core_templates/Red9_Setup.rst.txt: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_Setup 8 | ========== 9 | 10 | This is the main startup module that controls all aspects of the boot for both StudioPack and much of ProPack. 11 | Built to allow users to tailor and use these Maya boot calls in their own pipelines. 12 | 13 | 14 | .. automodule:: Red9.startup.setup 15 | 16 | .. rubric:: Main Functions 17 | 18 | .. autosummary:: 19 | 20 | maya_QT_mainWindow 21 | maya_QT_QApplication 22 | maya_appplication_size 23 | maya_screen_mapping 24 | mayaVersion 25 | mayaInstallDir 26 | mayaPrefs 27 | mayaUpAxis 28 | getCurrentFPS 29 | addScriptsPath 30 | addIconsPath 31 | addPythonPackages 32 | sourceMelFolderContents 33 | load_shelf 34 | start 35 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9core_templates/Red9_Tools.rst.txt: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_Tools 8 | ========== 9 | 10 | Red9 Tools is the module for general tools within Red9 11 | 12 | 13 | .. automodule:: Red9.core.Red9_Tools 14 | 15 | .. rubric:: Main Classes 16 | 17 | .. autosummary:: 18 | 19 | SceneReviewerUI 20 | SceneReviewer 21 | RecordAttrs 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_anim_map.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : anim_map 2 | ===================== 3 | 4 | ProPack anim_map module if the core of the r9Anim animation format. Recently 5 | moved to become a separate module in it's own right rather than just part of the 6 | base animation module. 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9panim = r9pro.r9import('r9panim_map') 11 | 12 | In the latest drop (May 2022) we've finally added in a frame sampler to extend 13 | the functionality, and to speed up saving animations which are part of an animLayer in Maya. 14 | Previously we used Maya's internal animLayer merge code but that was just too slow so we've 15 | written the new frame sampler to speed saving scenes with lots of layer. This has also opened up a new set 16 | of features in that the code now deals with attributes that are constrained, driven, connected 17 | or part of a layer. If an attr is found to be driven then we sample the animation on save. If an 18 | attr isn't flagged as driven we take the original code path and just grab the animCurve data direct 19 | from the plugged animCurve node. 20 | 21 | Because of this new support we've also added a wrapper in r9Anim module to merge animLayers 22 | via the new mechanism. In a client file test Maya was taking 45 seconds to merge and delete 23 | all the animLayer data, ours took 8 seconds. 24 | 25 | .. automodule:: Red9.pro_pack.core.anim_map 26 | 27 | .. rubric:: Main Classes 28 | 29 | .. autosummary:: 30 | 31 | AnimationStore 32 | AnimMap 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_animation.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : animation 2 | ===================== 3 | 4 | ProPack animation module deals with the more complex animation functions 5 | such as the animation re-director systems. Recently the r9Anim codebase 6 | was shifted over to it's own module during maintenance for clarity 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9panim = r9pro.r9import('r9panim') 11 | 12 | .. automodule:: Red9.pro_pack.core.animation 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | Anim_Redirect 19 | AnimPointCloud 20 | Anim_Transfer 21 | Pro_To_Bnd_UI 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_audio.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : audio 2 | ====================== 3 | 4 | ProPack audio module manages BWav formats, Timecode and the more advanced aspects of dealing with Audio within Maya. 5 | All the BWav handling in the StudioPack ultimately calls this codebase but most of the actual handling in ProPack still uses the AudioNode and AudioHandler 6 | from the StudioPack API. 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9paudio = r9pro.r9import('r9paudio') 11 | 12 | .. automodule:: Red9.pro_pack.core.audio 13 | 14 | .. rubric:: Core Functions 15 | 16 | .. autosummary:: 17 | 18 | milliseconds_to_Timecode 19 | milliseconds_to_frame 20 | timecode_to_milliseconds 21 | timecode_to_frame 22 | frame_to_timecode 23 | frame_to_milliseconds 24 | validate_timecodeString 25 | 26 | .. rubric:: Main Classes 27 | 28 | .. autosummary:: 29 | 30 | Timecode 31 | BWav_Handler 32 | AudioGRP_Manager 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_export.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : exporter 2 | ====================== 3 | 4 | ProPack exporter module is our own export management system for 5 | handling the output of files based on the metaData export node 6 | class systems. This module is largely the UI management as the 7 | majority of the codebase is bound to the metadata_pro mNode classes 8 | 9 | >>> # import statement for the module via the r9pro decompiler 10 | >>> from Red9.pro_pack import r9pro 11 | >>> r9exp = r9pro.r9import('r9exp') 12 | 13 | .. automodule:: Red9.pro_pack.core.exporter 14 | 15 | .. rubric:: Main Classes 16 | 17 | .. autosummary:: 18 | 19 | ExportManager 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_general.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : general 2 | ======================= 3 | 4 | ProPack general module for non-specific classes / functions 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9pgeneral = r9pro.r9import('r9pgeneral') 9 | 10 | .. automodule:: Red9.pro_pack.core.general 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | PlayblastTask 17 | BatchLogger 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_importexport.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : importexport 2 | ======================= 3 | 4 | ProPack importexport module manages files and sourcecontrol 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9ie = r9pro.r9import('r9ie') 9 | 10 | .. automodule:: Red9.pro_pack.core.importexport 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | MayaFile 17 | Fbx 18 | P4_sourceControl 19 | r9File 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_metadata_pro.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : metadata_pro 2 | ======================== 3 | 4 | ProPack metadata module contains all the specifically built nodes for the 5 | extended pipelines running under ProPack. These include our Red9Puppet and 6 | the exporter and audio management systems. This is the very core of all the Red9 7 | pipeline when running the Red9 Puppet rig. 8 | 9 | >>> # import statement for the module via the r9pro decompiler 10 | >>> from Red9.pro_pack import r9pro 11 | >>> r9pmeta = r9pro.r9import('r9pmeta') 12 | 13 | .. automodule:: Red9.pro_pack.core.metadata_pro 14 | 15 | .. rubric:: Main Classes 16 | 17 | .. autosummary:: 18 | 19 | Pro_MetaRig_Base 20 | Pro_MetaRig 21 | Pro_MetaRig_SRC 22 | Pro_MetaRig_Prop 23 | Pro_MetaRig_Vehicle 24 | Pro_MetaRig_External 25 | Pro_MetaRig_RigidBody 26 | Pro_MetaRig_FacialUI 27 | ExportTag_Base 28 | ExportTag_Character 29 | ExportTag_Facial 30 | ExportTag_Prop 31 | ExportTag_Vehicle 32 | ExportTag_RigidBody 33 | ExportTag_Environment 34 | ExportLoopNode 35 | SceneMover 36 | ImagePlane 37 | AudioGroup 38 | MetaTimeCodeHUD 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_r9data.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : r9Data 2 | ======================= 3 | 4 | ProPack r9Data object is a custom dict handler for Python that keeps sync 5 | with a file version of the data. This is how all the settings files in ProPack are 6 | maintained. It's also a fully dot completable dict method 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9data = r9pro.r9import('r9data') 11 | 12 | .. automodule:: Red9.pro_pack.core.r9data 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | R9dict 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_r9skinning.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : skinning 2 | ======================= 3 | 4 | ProPack skinning management and file format for Maya 5 | 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9skn = r9pro.r9import('r9skn') 10 | 11 | 12 | .. automodule:: Red9.pro_pack.core.skinning 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | Selectionfilter 19 | Weights 20 | Skn 21 | Skn_file 22 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_rigutils.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : rigutils 2 | ====================== 3 | 4 | ProPack rigutils module contains useful tools for managing both rig 5 | and skeletal data for the ProPack systems. 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9rigutils = r9pro.r9import('r9rigutils') 10 | 11 | .. automodule:: Red9.pro_pack.core.rigutils 12 | 13 | .. autosummary:: 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_skining.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : skining 2 | ======================= 3 | 4 | ProPack skinning management and file format for Maya 5 | 6 | DEPRICATED AND REPLACED WITH THE NEW "skinning" module 7 | 8 | 9 | >>> # import statement for the module via the r9pro decompiler 10 | >>> from Red9.pro_pack import r9pro 11 | >>> r9skinning = r9pro.r9import('r9skinning') 12 | 13 | 14 | .. automodule:: Red9.pro_pack.core.skining 15 | 16 | .. rubric:: Main Classes 17 | 18 | .. autosummary:: 19 | 20 | Selectionfilter 21 | Skincluster 22 | Sknfile 23 | Shapelayout 24 | R9sknui 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_skinning.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : skinning 2 | ======================= 3 | 4 | ProPack skinning management and file format for Maya 5 | 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9skn = r9pro.r9import('r9skn') 10 | 11 | 12 | .. automodule:: Red9.pro_pack.core.skinning 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | Selectionfilter 19 | Weights 20 | Skn 21 | Skn_file 22 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/Red9_Pro_uibase.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : uibase 2 | ======================= 3 | 4 | ProPack uibase QT and UI management for ProPack 5 | 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9uib = r9pro.r9import('r9uib') 10 | 11 | 12 | .. automodule:: Red9.pro_pack.UI.uibase 13 | 14 | .. rubric:: Main Classes 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/tools/Red9_Pro_anim_binder.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : anim_binder 2 | ================================ 3 | 4 | ProPack anim_binder module is the replacement of the original AnimationBinder 5 | module which was done back in 2011 for the Autodesk MasterClass support files. 6 | This deals with creating the BND binder files themselves. 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9anim_binder = r9pro.r9import('r9anim_binder') 11 | 12 | .. automodule:: Red9.pro_pack.tools.anim_binder 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/tools/Red9_Pro_anim_tools.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : anim_tools 2 | ============================== 3 | 4 | ProPack anim_tools module deals with the more generic animation functions, 5 | primarily UI wrapping for some of the base rig inetractions setups. 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9anim_tools = r9pro.r9import('r9anim_tools') 10 | 11 | .. automodule:: Red9.pro_pack.tools.anim_tools 12 | 13 | .. rubric:: Main Classes 14 | 15 | .. autosummary:: 16 | 17 | AnimCurveFilter 18 | IK_FK_MatchingUI 19 | SpaceMatchingUI 20 | WristLock_Spaces_UI 21 | Track_locomotion 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/tools/Red9_Pro_health_manager.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : health_manager 2 | ================================== 3 | 4 | ProPack health_manager module is the main HealthManager UI wrapping. 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9health_man = r9pro.r9import('r9health_man') 9 | 10 | .. automodule:: Red9.pro_pack.tools.health_manager 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/tools/Red9_Pro_metahuman_tools.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : metahuman_tools 2 | ================================== 3 | 4 | metahuman_tools module is designed specifically to hook into and automate the 5 | integration or Unreal's MetaHuman rigs to the Red9 ProPack. 6 | 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9metahuman_tools = r9pro.r9import('r9metahuman_tools') 11 | 12 | .. automodule:: Red9.pro_pack.tools.metahuman_tools 13 | 14 | .. rubric:: Main Classes 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/tools/Red9_Pro_project_manager.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : project_manager 2 | ==================================== 3 | 4 | ProPack project_manager module the base UI wrapping of the main project module. 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9project_man = r9pro.r9import('r9project_man') 9 | 10 | .. automodule:: Red9.pro_pack.tools.project_manager 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/html/_sources/red9pro_templates/tools/Red9_Pro_rig_manager.rst.txt: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : rig_manager 2 | =============================== 3 | 4 | ProPack rig_manager module is the main UI wrapping for all of the RigManager setups. 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9rig_man = r9pro.r9import('r9rig_man') 9 | 10 | .. automodule:: Red9.pro_pack.tools.rig_manager 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/html/_static/Red9_ProPack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/Red9_ProPack_logo.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/ajax-loader.gif -------------------------------------------------------------------------------- /Red9/docs/html/_static/comment-bright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/comment-bright.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/comment-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/comment-close.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/comment.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff2 -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff2 -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-bold-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-bold-italic.woff -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-bold-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-bold-italic.woff2 -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-bold.woff -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-bold.woff2 -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-normal-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-normal-italic.woff -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-normal-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-normal-italic.woff2 -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-normal.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-normal.woff -------------------------------------------------------------------------------- /Red9/docs/html/_static/css/fonts/lato-normal.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/css/fonts/lato-normal.woff2 -------------------------------------------------------------------------------- /Red9/docs/html/_static/documentation_options.js: -------------------------------------------------------------------------------- 1 | var DOCUMENTATION_OPTIONS = { 2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), 3 | VERSION: '3.0', 4 | LANGUAGE: 'None', 5 | COLLAPSE_INDEX: false, 6 | FILE_SUFFIX: '.html', 7 | HAS_SOURCE: true, 8 | SOURCELINK_SUFFIX: '.txt', 9 | NAVIGATION_WITH_KEYS: false, 10 | }; -------------------------------------------------------------------------------- /Red9/docs/html/_static/down-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/down-pressed.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/down.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/file.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/graphviz.css: -------------------------------------------------------------------------------- 1 | /* 2 | * graphviz.css 3 | * ~~~~~~~~~~~~ 4 | * 5 | * Sphinx stylesheet -- graphviz extension. 6 | * 7 | * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. 8 | * :license: BSD, see LICENSE for details. 9 | * 10 | */ 11 | 12 | img.graphviz { 13 | border: 0; 14 | max-width: 100%; 15 | } 16 | 17 | object.graphviz { 18 | max-width: 100%; 19 | } 20 | -------------------------------------------------------------------------------- /Red9/docs/html/_static/js/badge_only.js: -------------------------------------------------------------------------------- 1 | !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); -------------------------------------------------------------------------------- /Red9/docs/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/minus.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/plus.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/up-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/up-pressed.png -------------------------------------------------------------------------------- /Red9/docs/html/_static/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/_static/up.png -------------------------------------------------------------------------------- /Red9/docs/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/html/objects.inv -------------------------------------------------------------------------------- /Red9/docs/images/AnimationUI.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/AnimationUI.jpg -------------------------------------------------------------------------------- /Red9/docs/images/AnimationUI_Pose.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/AnimationUI_Pose.jpg -------------------------------------------------------------------------------- /Red9/docs/images/AnimationUI_filter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/AnimationUI_filter.jpg -------------------------------------------------------------------------------- /Red9/docs/images/AnimationUI_main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/AnimationUI_main.jpg -------------------------------------------------------------------------------- /Red9/docs/images/CopyKeys.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/CopyKeys.jpg -------------------------------------------------------------------------------- /Red9/docs/images/FilterUI.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/FilterUI.jpg -------------------------------------------------------------------------------- /Red9/docs/images/LocknHide.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/LocknHide.jpg -------------------------------------------------------------------------------- /Red9/docs/images/NodeName_re.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/NodeName_re.jpg -------------------------------------------------------------------------------- /Red9/docs/images/PoseManager.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/PoseManager.jpg -------------------------------------------------------------------------------- /Red9/docs/images/SnapTransforms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/SnapTransforms.jpg -------------------------------------------------------------------------------- /Red9/docs/images/TimeOffset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/TimeOffset.jpg -------------------------------------------------------------------------------- /Red9/docs/images/TimeRange.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/TimeRange.jpg -------------------------------------------------------------------------------- /Red9/docs/images/Track and Stabilize.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/images/Track and Stabilize.jpg -------------------------------------------------------------------------------- /Red9/docs/source/Red9_ProPack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/source/Red9_ProPack_logo.png -------------------------------------------------------------------------------- /Red9/docs/source/Red9_ProPack_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/source/Red9_ProPack_splash.png -------------------------------------------------------------------------------- /Red9/docs/source/Red9_ProPack_strap1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/source/Red9_ProPack_strap1.png -------------------------------------------------------------------------------- /Red9/docs/source/Red9_ProPack_strap2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/source/Red9_ProPack_strap2.png -------------------------------------------------------------------------------- /Red9/docs/source/Red9_ProPack_strap_pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/source/Red9_ProPack_strap_pro.png -------------------------------------------------------------------------------- /Red9/docs/source/red9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/docs/source/red9.png -------------------------------------------------------------------------------- /Red9/docs/source/red9core_templates/Red9_AnimationUtils.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_AnimationUtils 8 | =================== 9 | 10 | Red9_AnimationUtils deals with all the key, attribute and time management 11 | within Red9. Anything from copying keys between processed hierarchies 12 | to Mirroring animation data. 13 | 14 | 15 | .. automodule:: Red9.core.Red9_AnimationUtils 16 | 17 | .. rubric:: Core Functions 18 | 19 | .. autosummary:: 20 | 21 | getChannelBoxSelection 22 | getChannelBoxAttrs 23 | getNodeAttrStatus 24 | getSettableChannels 25 | getAnimLayersFromGivenNodes 26 | nodesDriven 27 | timeLineRangeGet 28 | timeLineRangeProcess 29 | animRangeFromNodes 30 | mergeAnimLayers 31 | eulerSelected 32 | 33 | 34 | 35 | .. rubric:: Core Classes 36 | 37 | .. autosummary:: 38 | 39 | AnimationUI 40 | AnimFunctions 41 | RandomizeKeys 42 | FilterCurves 43 | MirrorHierarchy 44 | MirrorSetup 45 | AnimationLayerContext 46 | CameraTracker 47 | 48 | 49 | -------------------------------------------------------------------------------- /Red9/docs/source/red9core_templates/Red9_Audio.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_Audio 8 | ========== 9 | 10 | Red9 Audio is the module for all audio handling within the Red9 pack. 11 | 12 | This includes the wrapper to the new audio compile tools for mixing multiple wavs 13 | inside Maya to a single merged track, allowing you to finally playblast multiple 14 | separate audio nodes! Why the hell Autodesk haven't done this I have no idea 15 | as it's a major issue when you're dealing with facial sequences. There's is 16 | a 'compile' flag in the playblast command but it's never worked. 17 | 18 | 19 | .. automodule:: Red9.core.Red9_Audio 20 | 21 | .. rubric:: Core Functions 22 | 23 | .. autosummary:: 24 | 25 | milliseconds_to_Timecode 26 | milliseconds_to_frame 27 | timecode_to_milliseconds 28 | timecode_to_frame 29 | frame_to_timecode 30 | frame_to_milliseconds 31 | combineAudio 32 | inspect_wav 33 | audioPathLoaded 34 | 35 | .. rubric:: Main Classes 36 | 37 | .. autosummary:: 38 | 39 | AudioHandler 40 | AudioNode 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Red9/docs/source/red9core_templates/Red9_Core.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_CoreUtils 8 | ============== 9 | 10 | Red9_CoreUtils is the backbone of much of the systems, used to filter, find and process nodes 11 | on mass withing Maya as well as containing a lot of core functions for dealing with data. 12 | 13 | The FilterNode and FilterSettings classes are used throughout the pack, in fact any 14 | time the tools process a hierarchy it's these classes that deal with it. 15 | 16 | 17 | .. automodule:: Red9.core.Red9_CoreUtils 18 | 19 | .. rubric:: Core Functions 20 | 21 | .. autosummary:: 22 | 23 | nodeNameStrip 24 | prioritizeNodeList 25 | sortNumerically 26 | stringReplace 27 | matchNodeLists 28 | getBlendTargetsFromMesh 29 | processMatchedNodes 30 | matchNodeLists 31 | timeOffset_addPadding 32 | timeOffset_collapse 33 | 34 | decodeString 35 | floatIsEqual 36 | valueToMappedRange 37 | distanceBetween 38 | 39 | 40 | .. rubric:: Core Classes 41 | 42 | .. autosummary:: 43 | 44 | FilterNode_Settings 45 | FilterNode 46 | MatchedNodeInputs 47 | LockChannels 48 | TimeOffset 49 | MatrixOffset 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /Red9/docs/source/red9core_templates/Red9_General.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_General 8 | ============ 9 | 10 | Red9 General is a module for general functions called and used throughout the codebase. 11 | This includes most of the context managers and decorators. 12 | 13 | .. note:: 14 | Nothing inside this module should require any other part of Red9 15 | 16 | 17 | .. automodule:: Red9.core.Red9_General 18 | 19 | .. rubric:: Key functions 20 | 21 | .. autosummary:: 22 | 23 | getCurrentFPS 24 | getModifier 25 | forceToString 26 | itersubclasses 27 | inspectFunctionSource 28 | getScriptEditorSelection 29 | 30 | thumbNailScreen 31 | thumbnailFromPlayBlast 32 | thumbnailApiFromView 33 | 34 | os_OpenFileDirectory 35 | os_OpenFile 36 | formatPath 37 | formatPath_join 38 | sceneName 39 | 40 | writeJson 41 | readJson 42 | 43 | .. rubric:: Context Managers / decorators 44 | 45 | .. autosummary:: 46 | 47 | AnimationContext 48 | undoContext 49 | ProgressBarContext 50 | HIKContext 51 | SceneRestoreContext 52 | Timer 53 | runProfile 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Red9/docs/source/red9core_templates/Red9_PoseSaver.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_PoseSaver 8 | ============== 9 | 10 | Red9_PoseSaver is designed as a generic module for storing and dealing 11 | with poses inside Maya. The PoseData object is the base for all of this 12 | and is what's wrapped by the AnimUI and the MetaData.poseCacheLoad() calls. 13 | 14 | There's also a powerful setup for testing a rigs current pose against a 15 | previously stored pose file, or you can test poseObjectA==poseObjectB 16 | or even poseFileA==poseFileB 17 | 18 | 19 | .. automodule:: Red9.core.Red9_PoseSaver 20 | 21 | .. rubric:: Core Pose Classes 22 | 23 | .. autosummary:: 24 | 25 | DataMap 26 | PoseData 27 | PosePointCloud 28 | PoseBlender 29 | PoseCompare 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Red9/docs/source/red9core_templates/Red9_Setup.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_Setup 8 | ========== 9 | 10 | This is the main startup module that controls all aspects of the boot for both StudioPack and much of ProPack. 11 | Built to allow users to tailor and use these Maya boot calls in their own pipelines. 12 | 13 | 14 | .. automodule:: Red9.startup.setup 15 | 16 | .. rubric:: Main Functions 17 | 18 | .. autosummary:: 19 | 20 | maya_QT_mainWindow 21 | maya_QT_QApplication 22 | maya_appplication_size 23 | maya_screen_mapping 24 | mayaVersion 25 | mayaInstallDir 26 | mayaPrefs 27 | mayaUpAxis 28 | getCurrentFPS 29 | addScriptsPath 30 | addIconsPath 31 | addPythonPackages 32 | sourceMelFolderContents 33 | load_shelf 34 | start 35 | -------------------------------------------------------------------------------- /Red9/docs/source/red9core_templates/Red9_Tools.rst: -------------------------------------------------------------------------------- 1 | 2 | .. image:: ../../_images/Red9_ProPack_strap_pro.png 3 | :target: http://red9consultancy.com/propack 4 | 5 | 6 | | 7 | Red9_Tools 8 | ========== 9 | 10 | Red9 Tools is the module for general tools within Red9 11 | 12 | 13 | .. automodule:: Red9.core.Red9_Tools 14 | 15 | .. rubric:: Main Classes 16 | 17 | .. autosummary:: 18 | 19 | SceneReviewerUI 20 | SceneReviewer 21 | RecordAttrs 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_anim_map.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : anim_map 2 | ===================== 3 | 4 | ProPack anim_map module if the core of the r9Anim animation format. Recently 5 | moved to become a separate module in it's own right rather than just part of the 6 | base animation module. 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9panim = r9pro.r9import('r9panim_map') 11 | 12 | In the latest drop (May 2022) we've finally added in a frame sampler to extend 13 | the functionality, and to speed up saving animations which are part of an animLayer in Maya. 14 | Previously we used Maya's internal animLayer merge code but that was just too slow so we've 15 | written the new frame sampler to speed saving scenes with lots of layer. This has also opened up a new set 16 | of features in that the code now deals with attributes that are constrained, driven, connected 17 | or part of a layer. If an attr is found to be driven then we sample the animation on save. If an 18 | attr isn't flagged as driven we take the original code path and just grab the animCurve data direct 19 | from the plugged animCurve node. 20 | 21 | Because of this new support we've also added a wrapper in r9Anim module to merge animLayers 22 | via the new mechanism. In a client file test Maya was taking 45 seconds to merge and delete 23 | all the animLayer data, ours took 8 seconds. 24 | 25 | .. automodule:: Red9.pro_pack.core.anim_map 26 | 27 | .. rubric:: Main Classes 28 | 29 | .. autosummary:: 30 | 31 | AnimationStore 32 | AnimMap 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_animation.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : animation 2 | ===================== 3 | 4 | ProPack animation module deals with the more complex animation functions 5 | such as the animation re-director systems. Recently the r9Anim codebase 6 | was shifted over to it's own module during maintenance for clarity 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9panim = r9pro.r9import('r9panim') 11 | 12 | .. automodule:: Red9.pro_pack.core.animation 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | Anim_Redirect 19 | AnimPointCloud 20 | Anim_Transfer 21 | Pro_To_Bnd_UI 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_audio.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : audio 2 | ====================== 3 | 4 | ProPack audio module manages BWav formats, Timecode and the more advanced aspects of dealing with Audio within Maya. 5 | All the BWav handling in the StudioPack ultimately calls this codebase but most of the actual handling in ProPack still uses the AudioNode and AudioHandler 6 | from the StudioPack API. 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9paudio = r9pro.r9import('r9paudio') 11 | 12 | .. automodule:: Red9.pro_pack.core.audio 13 | 14 | .. rubric:: Core Functions 15 | 16 | .. autosummary:: 17 | 18 | milliseconds_to_Timecode 19 | milliseconds_to_frame 20 | timecode_to_milliseconds 21 | timecode_to_frame 22 | frame_to_timecode 23 | frame_to_milliseconds 24 | validate_timecodeString 25 | 26 | .. rubric:: Main Classes 27 | 28 | .. autosummary:: 29 | 30 | Timecode 31 | BWav_Handler 32 | AudioGRP_Manager 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_export.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : exporter 2 | ====================== 3 | 4 | ProPack exporter module is our own export management system for 5 | handling the output of files based on the metaData export node 6 | class systems. This module is largely the UI management as the 7 | majority of the codebase is bound to the metadata_pro mNode classes 8 | 9 | >>> # import statement for the module via the r9pro decompiler 10 | >>> from Red9.pro_pack import r9pro 11 | >>> r9exp = r9pro.r9import('r9exp') 12 | 13 | .. automodule:: Red9.pro_pack.core.exporter 14 | 15 | .. rubric:: Main Classes 16 | 17 | .. autosummary:: 18 | 19 | ExportManager 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_general.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : general 2 | ======================= 3 | 4 | ProPack general module for non-specific classes / functions 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9pgeneral = r9pro.r9import('r9pgeneral') 9 | 10 | .. automodule:: Red9.pro_pack.core.general 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | PlayblastTask 17 | BatchLogger 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_importexport.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : importexport 2 | ======================= 3 | 4 | ProPack importexport module manages files and sourcecontrol 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9ie = r9pro.r9import('r9ie') 9 | 10 | .. automodule:: Red9.pro_pack.core.importexport 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | MayaFile 17 | Fbx 18 | P4_sourceControl 19 | r9File 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_metadata_pro.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : metadata_pro 2 | ======================== 3 | 4 | ProPack metadata module contains all the specifically built nodes for the 5 | extended pipelines running under ProPack. These include our Red9Puppet and 6 | the exporter and audio management systems. This is the very core of all the Red9 7 | pipeline when running the Red9 Puppet rig. 8 | 9 | >>> # import statement for the module via the r9pro decompiler 10 | >>> from Red9.pro_pack import r9pro 11 | >>> r9pmeta = r9pro.r9import('r9pmeta') 12 | 13 | .. automodule:: Red9.pro_pack.core.metadata_pro 14 | 15 | .. rubric:: Main Classes 16 | 17 | .. autosummary:: 18 | 19 | Pro_MetaRig_Base 20 | Pro_MetaRig 21 | Pro_MetaRig_SRC 22 | Pro_MetaRig_Prop 23 | Pro_MetaRig_Vehicle 24 | Pro_MetaRig_External 25 | Pro_MetaRig_RigidBody 26 | Pro_MetaRig_FacialUI 27 | ExportTag_Base 28 | ExportTag_Character 29 | ExportTag_Facial 30 | ExportTag_Prop 31 | ExportTag_Vehicle 32 | ExportTag_RigidBody 33 | ExportTag_Environment 34 | ExportLoopNode 35 | SceneMover 36 | ImagePlane 37 | AudioGroup 38 | MetaTimeCodeHUD 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_r9data.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : r9Data 2 | ======================= 3 | 4 | ProPack r9Data object is a custom dict handler for Python that keeps sync 5 | with a file version of the data. This is how all the settings files in ProPack are 6 | maintained. It's also a fully dot completable dict method 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9data = r9pro.r9import('r9data') 11 | 12 | .. automodule:: Red9.pro_pack.core.r9data 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | R9dict 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_rigutils.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : rigutils 2 | ====================== 3 | 4 | ProPack rigutils module contains useful tools for managing both rig 5 | and skeletal data for the ProPack systems. 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9rigutils = r9pro.r9import('r9rigutils') 10 | 11 | .. automodule:: Red9.pro_pack.core.rigutils 12 | 13 | .. autosummary:: 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_skining.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : skining 2 | ======================= 3 | 4 | ProPack skinning management and file format for Maya 5 | 6 | DEPRICATED AND REPLACED WITH THE NEW "skinning" module 7 | 8 | 9 | >>> # import statement for the module via the r9pro decompiler 10 | >>> from Red9.pro_pack import r9pro 11 | >>> r9skinning = r9pro.r9import('r9skinning') 12 | 13 | 14 | .. automodule:: Red9.pro_pack.core.skining 15 | 16 | .. rubric:: Main Classes 17 | 18 | .. autosummary:: 19 | 20 | Selectionfilter 21 | Skincluster 22 | Sknfile 23 | Shapelayout 24 | R9sknui 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_skinning.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : skinning 2 | ======================= 3 | 4 | ProPack skinning management and file format for Maya 5 | 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9skn = r9pro.r9import('r9skn') 10 | 11 | 12 | .. automodule:: Red9.pro_pack.core.skinning 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | Selectionfilter 19 | Weights 20 | Skn 21 | Skn_file 22 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/Red9_Pro_uibase.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : uibase 2 | ======================= 3 | 4 | ProPack uibase QT and UI management for ProPack 5 | 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9uib = r9pro.r9import('r9uib') 10 | 11 | 12 | .. automodule:: Red9.pro_pack.UI.uibase 13 | 14 | .. rubric:: Main Classes 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/tools/Red9_Pro_anim_binder.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : anim_binder 2 | ================================ 3 | 4 | ProPack anim_binder module is the replacement of the original AnimationBinder 5 | module which was done back in 2011 for the Autodesk MasterClass support files. 6 | This deals with creating the BND binder files themselves. 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9anim_binder = r9pro.r9import('r9anim_binder') 11 | 12 | .. automodule:: Red9.pro_pack.tools.anim_binder 13 | 14 | .. rubric:: Main Classes 15 | 16 | .. autosummary:: 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/tools/Red9_Pro_anim_tools.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : anim_tools 2 | ============================== 3 | 4 | ProPack anim_tools module deals with the more generic animation functions, 5 | primarily UI wrapping for some of the base rig inetractions setups. 6 | 7 | >>> # import statement for the module via the r9pro decompiler 8 | >>> from Red9.pro_pack import r9pro 9 | >>> r9anim_tools = r9pro.r9import('r9anim_tools') 10 | 11 | .. automodule:: Red9.pro_pack.tools.anim_tools 12 | 13 | .. rubric:: Main Classes 14 | 15 | .. autosummary:: 16 | 17 | AnimCurveFilter 18 | IK_FK_MatchingUI 19 | SpaceMatchingUI 20 | WristLock_Spaces_UI 21 | Track_locomotion 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/tools/Red9_Pro_health_manager.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : health_manager 2 | ================================== 3 | 4 | ProPack health_manager module is the main HealthManager UI wrapping. 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9health_man = r9pro.r9import('r9health_man') 9 | 10 | .. automodule:: Red9.pro_pack.tools.health_manager 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/tools/Red9_Pro_metahuman_tools.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : metahuman_tools 2 | ================================== 3 | 4 | metahuman_tools module is designed specifically to hook into and automate the 5 | integration or Unreal's MetaHuman rigs to the Red9 ProPack. 6 | 7 | 8 | >>> # import statement for the module via the r9pro decompiler 9 | >>> from Red9.pro_pack import r9pro 10 | >>> r9metahuman_tools = r9pro.r9import('r9metahuman_tools') 11 | 12 | .. automodule:: Red9.pro_pack.tools.metahuman_tools 13 | 14 | .. rubric:: Main Classes 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/tools/Red9_Pro_project_manager.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : project_manager 2 | ==================================== 3 | 4 | ProPack project_manager module the base UI wrapping of the main project module. 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9project_man = r9pro.r9import('r9project_man') 9 | 10 | .. automodule:: Red9.pro_pack.tools.project_manager 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/source/red9pro_templates/tools/Red9_Pro_rig_manager.rst: -------------------------------------------------------------------------------- 1 | Pro_Pack : tools : rig_manager 2 | =============================== 3 | 4 | ProPack rig_manager module is the main UI wrapping for all of the RigManager setups. 5 | 6 | >>> # import statement for the module via the r9pro decompiler 7 | >>> from Red9.pro_pack import r9pro 8 | >>> r9rig_man = r9pro.r9import('r9rig_man') 9 | 10 | .. automodule:: Red9.pro_pack.tools.rig_manager 11 | 12 | .. rubric:: Main Classes 13 | 14 | .. autosummary:: 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Red9/docs/sphinxme.py: -------------------------------------------------------------------------------- 1 | ''' 2 | cmds : sphinx-build -b html X:\Red9_Dev\Red9\docs\source X:\Red9\docs\html 3 | 4 | cmds : sphinx-build -b html X:\Red9_Dev\Red9\docs\source X:\Red9_Dev\Red9\docs\html 5 | 6 | # from within Maya 7 | import os 8 | os.system('sphinx-build -b html X:\Red9_Dev\Red9\docs\source X:\Red9\docs\html') 9 | 10 | 11 | remember after you pip install sphinx you also need to also pip install the lib sphinx_rtd_theme 12 | 13 | ''' 14 | 15 | import os 16 | # import time 17 | # import pymel.core as pCore 18 | 19 | THISDIR = os.path.dirname(__file__) 20 | OUTPUTHTML = THISDIR + "/html" 21 | SOURCEFOLDER = "%s/source" % THISDIR 22 | 23 | # starttime = time.strftime("%H") 24 | # time.gmtime 25 | 26 | 27 | # import maya.OpenMaya 28 | # import maya.OpenMayaUI 29 | # import maya.OpenMayaAnim 30 | 31 | if __name__ == "__main__": 32 | #while time.strftime("%H") == starttime: 33 | print 'SRC : ', SOURCEFOLDER 34 | print 'OUTPUT : ', OUTPUTHTML 35 | cmd = "sphinx-build -b html %s %s" % (SOURCEFOLDER, OUTPUTHTML) 36 | os.system(cmd) 37 | 38 | -------------------------------------------------------------------------------- /Red9/icons/Red9StudioPack.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/Red9StudioPack.ico -------------------------------------------------------------------------------- /Red9/icons/Red9_ProPack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/Red9_ProPack_logo.png -------------------------------------------------------------------------------- /Red9/icons/Red9_StudioPack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/Red9_StudioPack_logo.png -------------------------------------------------------------------------------- /Red9/icons/Rocket9_buttonStrap.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/Rocket9_buttonStrap.bmp -------------------------------------------------------------------------------- /Red9/icons/Rocket9_buttonStrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/Rocket9_buttonStrap.png -------------------------------------------------------------------------------- /Red9/icons/Rocket9_buttonStrap2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/Rocket9_buttonStrap2.bmp -------------------------------------------------------------------------------- /Red9/icons/Rocket9_buttonStrap_narrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/Rocket9_buttonStrap_narrow.png -------------------------------------------------------------------------------- /Red9/icons/api_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/api_30.png -------------------------------------------------------------------------------- /Red9/icons/blogspot_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/blogspot_30.png -------------------------------------------------------------------------------- /Red9/icons/bug_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/bug_30.png -------------------------------------------------------------------------------- /Red9/icons/camera_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/camera_30.png -------------------------------------------------------------------------------- /Red9/icons/domain_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/domain_30.png -------------------------------------------------------------------------------- /Red9/icons/facebook_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/facebook_30.png -------------------------------------------------------------------------------- /Red9/icons/hand_with_pen_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/hand_with_pen_30.png -------------------------------------------------------------------------------- /Red9/icons/info_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/info_30.png -------------------------------------------------------------------------------- /Red9/icons/locationon_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/locationon_30.png -------------------------------------------------------------------------------- /Red9/icons/lock_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/lock_30.png -------------------------------------------------------------------------------- /Red9/icons/meta_node_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/meta_node_30.png -------------------------------------------------------------------------------- /Red9/icons/mirror_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/mirror_30.png -------------------------------------------------------------------------------- /Red9/icons/pose_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/pose_30.png -------------------------------------------------------------------------------- /Red9/icons/red9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/red9.jpg -------------------------------------------------------------------------------- /Red9/icons/red9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/red9.png -------------------------------------------------------------------------------- /Red9/icons/red9_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/red9_update.png -------------------------------------------------------------------------------- /Red9/icons/search_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/search_30.png -------------------------------------------------------------------------------- /Red9/icons/sortBy.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/sortBy.psd -------------------------------------------------------------------------------- /Red9/icons/sortByDate.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/sortByDate.bmp -------------------------------------------------------------------------------- /Red9/icons/sortByName.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/sortByName.bmp -------------------------------------------------------------------------------- /Red9/icons/sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/sound.png -------------------------------------------------------------------------------- /Red9/icons/sound_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/sound_30.png -------------------------------------------------------------------------------- /Red9/icons/twitter_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/twitter_30.png -------------------------------------------------------------------------------- /Red9/icons/vimeo_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/vimeo_30.png -------------------------------------------------------------------------------- /Red9/icons/workflow_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/workflow_30.png -------------------------------------------------------------------------------- /Red9/icons/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/icons/youtube.png -------------------------------------------------------------------------------- /Red9/packages/__init__.py: -------------------------------------------------------------------------------- 1 | ''' 2 | ------------------------------------------ 3 | Red9 Studio Pack : Maya Pipeline Solutions 4 | email: rednineinfo@gmail.com 5 | ------------------------------------------ 6 | 7 | This is a repository for all external Python Module dependencies 8 | =============================================================================== 9 | ''' -------------------------------------------------------------------------------- /Red9/packages/_version.py: -------------------------------------------------------------------------------- 1 | __version__ = '5.0.6' -------------------------------------------------------------------------------- /Red9/packages/pydub/__init__.py: -------------------------------------------------------------------------------- 1 | from .audio_segment import AudioSegment -------------------------------------------------------------------------------- /Red9/packages/pydub/exceptions.py: -------------------------------------------------------------------------------- 1 | class PydubException(Exception): 2 | """ 3 | Base class for any Pydub exception 4 | """ 5 | 6 | 7 | class TooManyMissingFrames(PydubException): 8 | pass 9 | 10 | 11 | class InvalidDuration(PydubException): 12 | pass 13 | 14 | 15 | class InvalidTag(PydubException): 16 | pass 17 | 18 | 19 | class InvalidID3TagVersion(PydubException): 20 | pass 21 | 22 | 23 | class CouldntDecodeError(PydubException): 24 | pass 25 | 26 | 27 | class CouldntEncodeError(PydubException): 28 | pass 29 | 30 | 31 | class MissingAudioParameter(PydubException): 32 | pass 33 | -------------------------------------------------------------------------------- /Red9/packages/pydub/logging_utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | 3 | """ 4 | import logging 5 | 6 | converter_logger = logging.getLogger("pydub.converter") 7 | 8 | def log_conversion(conversion_command): 9 | converter_logger.debug("subprocess.call(%s)", repr(conversion_command)) 10 | 11 | def log_subprocess_output(output): 12 | if output: 13 | for line in output.rstrip().splitlines(): 14 | converter_logger.debug('subprocess output: %s', line.rstrip()) 15 | -------------------------------------------------------------------------------- /Red9/packages/pyperclip/__main__.py: -------------------------------------------------------------------------------- 1 | import pyperclip 2 | import sys 3 | 4 | if len(sys.argv) > 1 and sys.argv[1] in ('-c', '--copy'): 5 | pyperclip.copy(sys.stdin.read()) 6 | elif len(sys.argv) > 1 and sys.argv[1] in ('-p', '--paste'): 7 | sys.stdout.write(pyperclip.paste()) 8 | else: 9 | print('Usage: python -m pyperclip [-c | --copy] | [-p | --paste]') 10 | print() 11 | print('When copying, stdin will be placed on the clipboard.') 12 | print('When pasting, the clipboard will be written to stdout.') -------------------------------------------------------------------------------- /Red9/presets/ART_v1.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | hierarchy = False 3 | filter_priority = , 4 | filterPriority = master_anim, offset_anim, body_anim, ik_wrist_r_anim, ik_wrist_l_anim, ik_foot_anim_l, ik_foot_anim_r 5 | incRoots = False 6 | searchPattern = anim, ctrl 7 | metaClass = , 8 | nodeTypes = nurbsCurve, 9 | metaRig = False 10 | searchAttrs = , 11 | infoBlock = EPIC Art_v1 : Basic template to get things up and running, needs testing 12 | transformClamp = True 13 | [[rigData]] 14 | snapPriority = True 15 | -------------------------------------------------------------------------------- /Red9/presets/Andy_Rig.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | metaRig = False 3 | infoBlock = AndyRig : rough config. Please note that for the AnimTools Hierarchy flags or PoseSaver you should use the rigs Character sets as root nodes 4 | searchAttrs = , 5 | hierarchy = True 6 | searchPattern = , 7 | filterPriority = andy_spine_Root$, rig_andy_spine_0_Hips$, rig_andy_spine_0_Shoulders$, rig_andy_spine_0_Mid$, andy_neck_IK_Cntrl$, andy_leg_IKleg_Cntrl_l$, andy_leg_IKleg_Cntrl_r$, andy_arm_IK_Cntrl_r$, andy_arm_IK_Cntrl_l$ 8 | transformClamp = True 9 | nodeTypes = , 10 | incRoots = True 11 | [[rigData]] 12 | parentSpaces = Parent 13 | snapPriority = True 14 | -------------------------------------------------------------------------------- /Red9/presets/Basic_Rig.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | metaRig = False 3 | searchAttrs = , 4 | hierarchy = False 5 | searchPattern = , 6 | filterPriority = , 7 | transformClamp = True 8 | nodeTypes = nurbsCurve, 9 | incRoots = True 10 | -------------------------------------------------------------------------------- /Red9/presets/Basic_Skeleton.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | hierarchy = False 3 | filterPriority = , 4 | incRoots = True 5 | searchPattern = , 6 | metaClass = , 7 | nodeTypes = joint, 8 | metaRig = False 9 | searchAttrs = , 10 | infoBlock = "" 11 | transformClamp = True 12 | [[rigData]] 13 | snapPriority = False 14 | -------------------------------------------------------------------------------- /Red9/presets/Default.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | searchAttrs = , 3 | hierarchy = False 4 | filterPriority = , 5 | incRoots = True 6 | searchPattern = , 7 | nodeTypes = nurbsCurve, 8 | transformClamp = True 9 | metaRig = False 10 | -------------------------------------------------------------------------------- /Red9/presets/HumanIK.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | searchAttrs = , 3 | hierarchy = False 4 | filterPriority = Ctrl_HipsEffector$, Ctrl_Hips$ 5 | incRoots = True 6 | searchPattern = , 7 | nodeTypes = hikIKEffector, hikFKJoint 8 | transformClamp = True 9 | metaRig = False 10 | infoBlock = HIK Rig : For the rootNode use the Ctrl_Reference node in the rig 11 | -------------------------------------------------------------------------------- /Red9/presets/MaxforMaya.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | searchAttrs = , 3 | hierarchy = False 4 | filterPriority = root_Ctrl$, hip_Ctrl$, ikSpine2_Ctrl$, footIKR_Ctrl$, footIKL_Ctrl$, footIKR_Ctrl$, footIKL_Ctrl$, kneePoleVectorIKR_Ctrl$, kneePoleVectorIKL_Ctrl$ 5 | incRoots = True 6 | searchPattern = Ctrl$, 7 | nodeTypes = nurbsCurve, 8 | transformClamp = True 9 | metaRig = False 10 | infoBlock = MaxForMaya Rig : For the root node of the hierarchy use the controls_Grp -------------------------------------------------------------------------------- /Red9/presets/MetaRig.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | hierarchy = False 3 | filterPriority = , 4 | incRoots = False 5 | searchPattern = , 6 | metaClass = , 7 | nodeTypes = , 8 | metaRig = True 9 | searchAttrs = , 10 | infoBlock = "" 11 | transformClamp = True 12 | [[rigData]] 13 | snapPriority = True 14 | -------------------------------------------------------------------------------- /Red9/presets/MorpheusRig.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | hierarchy = False 3 | filterPriority = all_anim$, m_spine_Root_anim$, rig_spine_0_skin_Hips_anim$, rig_spine_0_skin_Shoulders_anim$, m_neck_IK_anim$, m_leg_IKleg_Cntrl_r_anim$, m_leg_IKleg_Cntrl_l_anim$, m_arm_IK_Cntrl_r_anim$, m_arm_IK_Cntrl_l_anim$, m_leg_PV_Cntrl_r_anim$, m_leg_PV_Cntrl_l_anim$, m_arm_PV_Cntrl_r_anim$, m_arm_PV_Cntrl_l_anim$ 4 | incRoots = False 5 | searchPattern = anim$, NOT:Deform, NOT:deform 6 | metaClass = , 7 | nodeTypes = nurbsCurve, 8 | metaRig = False 9 | searchAttrs = , 10 | infoBlock = "" 11 | transformClamp = True 12 | [[rigData]] 13 | parentSpaces = Parent,lockMid 14 | snapPriority = True 15 | -------------------------------------------------------------------------------- /Red9/presets/Red9_DevRig.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | hierarchy = False 3 | filterPriority = COG_Ctr, L_Foot_Ctr, R_Foot_Ctr, R_Wrist_Ctr, L_Wrist_Ctr, L_Arm_PoleVector_Ctr, R_Arm_PoleVector_Ctr, R_Leg_PoleVector_Ctr, L_Leg_PoleVector_Ctr, Locomotion_Ctr 4 | incRoots = False 5 | searchPattern = , 6 | metaClass = , 7 | nodeTypes = , 8 | metaRig = True 9 | searchAttrs = , 10 | infoBlock = "* Master Config for the Red9 Puppet *" 11 | transformClamp = True 12 | [[rigData]] 13 | snapPriority = True 14 | -------------------------------------------------------------------------------- /Red9/presets/Red9_MetaRig_unitTest.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | metaRig = True 3 | infoBlock = "" 4 | searchAttrs = , 5 | hierarchy = False 6 | metaClass = , 7 | searchPattern = , 8 | filterPriority = COG__Ctrl, Hips_Ctrl, Chest_Ctrl, R_Wrist_Ctrl, L_Wrist_Ctrl, L_Foot_Ctrl, R_Foot_Ctrl, L_Knee_Ctrl, R_Knee_Ctrl 9 | transformClamp = True 10 | nodeTypes = , 11 | incRoots = False 12 | -------------------------------------------------------------------------------- /Red9/presets/Red9_PuppetRig.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | hierarchy = False 3 | filterPriority = COG_Ctr, L_Foot_Ctr, R_Foot_Ctr, R_Wrist_Ctr, L_Wrist_Ctr, L_Arm_PoleVector_Ctr, R_Arm_PoleVector_Ctr, R_Leg_PoleVector_Ctr, L_Leg_PoleVector_Ctr, Locomotion_Ctr 4 | incRoots = False 5 | searchPattern = , 6 | metaClass = , 7 | nodeTypes = , 8 | metaRig = True 9 | searchAttrs = , 10 | infoBlock = "* Master Config for the Red9 Puppet *" 11 | transformClamp = True 12 | [[rigData]] 13 | snapPriority = True 14 | -------------------------------------------------------------------------------- /Red9/presets/Standard_Hierarchy.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | searchAttrs = , 3 | hierarchy = True 4 | filterPriority = , 5 | incRoots = True 6 | searchPattern = , 7 | nodeTypes = , 8 | transformClamp = True 9 | metaRig = False 10 | infoBlock = Use this filter for standard Hierarchys where NO specific filtering is required. Also works with SelectionSets and CharacterSets 11 | -------------------------------------------------------------------------------- /Red9/presets/Stewart_Rig.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | hierarchy = False 3 | filterPriority = stw_root_ctrl, stw_COG_ctrl, stw_spine_ik_hip_ctrl, stw_spine_ik_shoulder_ctrl, stw_rt_foot_ik_ctrl, stw_lf_foot_ik_ctrl, stw_rt_arm_ik_ctrl, stw_lf_arm_ik_ctrl, stw_lf_knee_pv_ctrl, stw_rt_knee_pv_ctrl, stw_rt_elbow_pv_ctrl, stw_lf_elbow_pv_ctrl, stw_head_ctrl 4 | incRoots = True 5 | searchPattern = ctrl, 6 | metaClass = , 7 | nodeTypes = nurbsCurve, 8 | metaRig = False 9 | searchAttrs = , 10 | infoBlock = Animation Mentors : Stewart Rig. This is a really quick template that needs testing! Please let me know if you get issues. For Root of hierarchy searches use the 'stw_grp' node 11 | transformClamp = True 12 | [[rigData]] 13 | parentSpaces = space 14 | snapPriority = True 15 | -------------------------------------------------------------------------------- /Red9/presets/TSM.cfg: -------------------------------------------------------------------------------- 1 | [filterNode_settings] 2 | metaRig = False 3 | searchAttrs = , 4 | hierarchy = False 5 | searchPattern = , 6 | filterPriority = Character, Upper_Body, Spine_Pelvis_FK, Spine_Middle_FK, Spine_Torso_FK, LeftArm_Arm_IK, RightArm_Arm_IK, RightLeg_IK_Leg, LeftLeg_IK_Leg 7 | transformClamp = True 8 | nodeTypes = nurbsCurve, 9 | incRoots = False 10 | infoBlock = TSM : The Setup Machine : Use the object selection sets ar roots 11 | -------------------------------------------------------------------------------- /Red9/presets/__red9animreset__: -------------------------------------------------------------------------------- 1 | [AnimationUI] 2 | poseMode = thumb 3 | posePathMode = localPoseMode 4 | keyPasteMethod = replace 5 | [[checkboxes]] 6 | uicbPoseRelative = False 7 | uicbPoseHierarchy = True 8 | uicbPoseSpace = False 9 | uicbMatchMethod = True 10 | uicbSnapPriorityOnly = True 11 | uicbCAttrHierarchy = False 12 | uicbCKeyRange = False 13 | uicbCKeyAnimLay = False 14 | uicbCKeyHierarchy = False 15 | uicbSnapRange = False 16 | uicbSnapHierarchy = False 17 | uicbStabRots = True 18 | uicbStabTrans = True 19 | uicbStabRange = False 20 | uicbTimeOffsetHierarchy = False 21 | uicbTimeOffsetScene = False 22 | uicbTimeOffsetRange = False 23 | uicbTimeOffsetTimelines = True 24 | uicbMirrorHierarchy = False 25 | 26 | 27 | -------------------------------------------------------------------------------- /Red9/presets/posehandlers/test_poseHandler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/Red9/presets/posehandlers/test_poseHandler.py -------------------------------------------------------------------------------- /Red9/startup/__init__.py: -------------------------------------------------------------------------------- 1 | ''' 2 | ------------------------------------------ 3 | Red9 Studio Pack: Maya Pipeline Solutions 4 | Author: Mark Jackson 5 | email: rednineinfo@gmail.com 6 | 7 | Red9 blog : http://red9-consultancy.blogspot.co.uk/ 8 | MarkJ blog: http://markj3d.blogspot.co.uk 9 | ------------------------------------------ 10 | 11 | This is the internal boot folder for the systems. The maya_native folder 12 | contains any Maya default scripts that I'm over-loading, these are sourced 13 | by the pack when it boots, matching Maya versions first. 14 | =============================================================================== 15 | ''' 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Red9/startup/language_packs/__init__.py: -------------------------------------------------------------------------------- 1 | ''' 2 | ------------------------------------------ 3 | Red9 Studio Pack: Maya Pipeline Solutions 4 | Author: Mark Jackson 5 | email: rednineinfo@gmail.com 6 | 7 | Red9 blog : http://red9-consultancy.blogspot.co.uk/ 8 | MarkJ blog: http://markj3d.blogspot.co.uk 9 | ------------------------------------------ 10 | 11 | This is the internal boot folder for the systems. The maya_native folder 12 | contains any Maya default scripts that I'm over-loading, these are sourced 13 | by the pack when it boots, matching Maya versions first. 14 | =============================================================================== 15 | ''' 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /cgm/assets/cgmController.mb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/assets/cgmController.mb -------------------------------------------------------------------------------- /cgm/core/cgmPy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/cgmPy/__init__.py -------------------------------------------------------------------------------- /cgm/core/cgmPy/dict_utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | dict_utils 3 | www.cgmonastery.com 4 | 5 | 6 | """ 7 | # From Python ============================================================= 8 | import copy 9 | import re 10 | import pprint 11 | 12 | #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 13 | import logging 14 | logging.basicConfig() 15 | log = logging.getLogger(__name__) 16 | log.setLevel(logging.INFO) 17 | 18 | # From Maya ============================================================= 19 | import maya.cmds as mc 20 | from maya import OpenMaya 21 | 22 | # From Red9 ============================================================= 23 | from cgm.core.cgmPy import validateArgs as VALID 24 | 25 | # From cgm ============================================================== 26 | #from cgm.core import cgm_General as cgmGeneral 27 | #reload(cgmValid) 28 | 29 | #>>> Utilities 30 | def blendDat(dPrimary,dBlend): 31 | """ 32 | Assumes two lists of 33 | """ 34 | _res = {} 35 | for k,v1 in list(dPrimary.items()): 36 | v2 = dBlend.get(k) 37 | v_use = v1 38 | 39 | if v2: 40 | if VALID.isListArg(v1) and VALID.isListArg(v2): 41 | for v in v2: 42 | if v not in v_use: 43 | v_use.append(v) 44 | if issubclass(type(v1),dict) and issubclass(type(v2),dict): 45 | v_use = blendDat(v1,v2) 46 | _res[k] = v_use 47 | 48 | for k,v2 in list(dBlend.items()): 49 | if not _res.get(k): 50 | _res[k] = v2 51 | 52 | return _res 53 | 54 | -------------------------------------------------------------------------------- /cgm/core/classes/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/classes/__init__.py -------------------------------------------------------------------------------- /cgm/core/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/__init__.py -------------------------------------------------------------------------------- /cgm/core/lib/ease_utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | ------------------------------------------ 3 | ease_utils: cgm.core.lib 4 | Author: David Bokser 5 | email: dbokser@cgmonks.com 6 | Website : https://github.com/jjburton/cgmTools/wiki 7 | ------------------------------------------ 8 | 9 | algorithms from https://easings.net/ 10 | 11 | ================================================================ 12 | """ 13 | 14 | def easeInOutQuad(x): 15 | return 2.0 * x * x if x < 0.5 else 1.0 - pow(-2.0 * x + 2.0, 2.0) / 2.0 16 | 17 | def easeInOutCubic(x): 18 | return 4.0 * x * x * x if x < 0.5 else 1.0 - pow(-2.0 * x + 2.0, 3.0) / 2.0 -------------------------------------------------------------------------------- /cgm/core/lib/euclid/PKG-INFO: -------------------------------------------------------------------------------- 1 | Metadata-Version: 1.0 2 | Name: euclid 3 | Version: 0.01 4 | Summary: 2D and 3D vector, matrix, quaternion and geometry module 5 | Home-page: http://partiallydisassembled.net/euclid.html 6 | Author: Alex Holkner 7 | Author-email: alex@partiallydisassembled.net 8 | License: UNKNOWN 9 | Description: UNKNOWN 10 | Platform: UNKNOWN 11 | -------------------------------------------------------------------------------- /cgm/core/lib/euclid/README: -------------------------------------------------------------------------------- 1 | euclid 2 | 2D and 3D maths module for Python 3 | 4 | Homepage: http://code.google.com/p/pyeuclid/ 5 | Contact: Alex Holkner 6 | Alex.Holkner@mail.google.com 7 | 8 | Usage 9 | ----- 10 | 11 | See "euclid.txt" for detailed documentation. The file is readable as 12 | plain text, and can also be compiled to a set of HTML pages with the 13 | included Makefile. The documentation contains some tests which 14 | can also be run through the Makefile. 15 | 16 | License 17 | ------- 18 | 19 | Copyright (c) 2006 Alex Holkner 20 | 21 | This library is free software; you can redistribute it and/or modify it 22 | under the terms of the GNU Lesser General Public License as published by the 23 | Free Software Foundation; either version 2.1 of the License, or (at your 24 | option) any later version. 25 | 26 | This library is distributed in the hope that it will be useful, but WITHOUT 27 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 28 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 29 | for more details. 30 | 31 | You should have received a copy of the GNU Lesser General Public License 32 | along with this library; if not, write to the Free Software Foundation, 33 | Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 34 | -------------------------------------------------------------------------------- /cgm/core/lib/inputs/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Zeth 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of ledgrid nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /cgm/core/lib/inputs/README.rst: -------------------------------------------------------------------------------- 1 | Inputs 2 | ====== 3 | 4 | .. image:: https://raw.githubusercontent.com/zeth/inputs/master/devices.png 5 | 6 | **Inputs** aims to provide cross-platform Python support for keyboards, mice and gamepads. 7 | 8 | Install 9 | ------- 10 | 11 | Install through pypi:: 12 | 13 | pip install inputs 14 | 15 | Or download the whole repository from github:: 16 | 17 | git clone https://github.com/zeth/inputs.git 18 | cd inputs 19 | python setup.py install 20 | 21 | About 22 | ----- 23 | 24 | The inputs module provides an easy way for your Python program to 25 | listen for user input. 26 | 27 | Currently supported platforms are Linux (including the Raspberry Pi 28 | and Chromebooks in developer mode), Windows and the Apple Mac. 29 | 30 | Python versions supported are all versions of Python 3 and your 31 | granddad's Python 2.7. 32 | 33 | To get started quickly, just use the following:: 34 | 35 | from inputs import devices 36 | 37 | For more information, read the documentation at ReadTheDocs_ 38 | 39 | (Also available in the docs directory of the repository) 40 | 41 | To get involved with inputs, please visit the github project at: 42 | 43 | https://github.com/zeth/inputs 44 | 45 | 46 | .. _ReadTheDocs: https://inputs.readthedocs.io/ 47 | -------------------------------------------------------------------------------- /cgm/core/lib/meta_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/meta_utils/__init__.py -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/README.md: -------------------------------------------------------------------------------- 1 | # ml_tools 2 | 3 | This is an updated git repository of all the tools found on [my website](http://morganloomis.com). It's provided as an alternative to downloading tools individually, if you want to stay up to date with everything. 4 | 5 | Feel free to fork or contribute. -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/__init__.py -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_animCurveEditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_animCurveEditor.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_arcTracer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_arcTracer.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_breakdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_breakdown.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_cameraDepthDragger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_cameraDepthDragger.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_convertRotationOrder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_convertRotationOrder.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_copyAnim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_copyAnim.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_deleteKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_deleteKey.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_goToKeyframe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_goToKeyframe.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_hold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_hold.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_keyValueDragger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_keyValueDragger.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_resetChannels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_resetChannels.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_selectKeyed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_selectKeyed.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_setKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_setKey.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_stopwatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_stopwatch.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_tangentWeight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_tangentWeight.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_toggleVisibility.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_toggleVisibility.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_transferKeytimes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_transferKeytimes.png -------------------------------------------------------------------------------- /cgm/core/lib/ml_tools/icons/ml_worldBake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/ml_tools/icons/ml_worldBake.png -------------------------------------------------------------------------------- /cgm/core/lib/mouse_utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | ------------------------------------------ 3 | mouse_utils: cgm.core.lib 4 | Author: David Bokser 5 | email: dbokser@cgmonks.com 6 | Website : https://github.com/jjburton/cgmTools/wiki 7 | ------------------------------------------ 8 | 9 | Reference: 10 | https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes 11 | 12 | ================================================================ 13 | """ 14 | from ctypes import windll, Structure, c_long, byref 15 | 16 | class Point(Structure): 17 | _fields_ = [("x", c_long), ("y", c_long)] 18 | 19 | def getMousePosition(): 20 | pt = Point() 21 | windll.user32.GetCursorPos(byref(pt)) 22 | return { "x": pt.x, "y": windll.user32.GetSystemMetrics(1) - pt.y} 23 | 24 | def getMouseDown(button=1): 25 | if button == 1: 26 | return windll.user32.GetAsyncKeyState(0x01) > 1 27 | elif button == 2: 28 | return windll.user32.GetAsyncKeyState(0x02) > 1 29 | 30 | def getScreenSize(): 31 | user32 = windll.user32 32 | return user32.GetSystemMetrics(0), user32.GetSystemMetrics(1) 33 | -------------------------------------------------------------------------------- /cgm/core/lib/playblast_utils.py: -------------------------------------------------------------------------------- 1 | import maya.cmds as mc 2 | import os 3 | import cgm.core.lib.hud_utils as HUD 4 | 5 | def MakeThumbnail(filePath, dimensions=(256, 256)): 6 | now = mc.currentTime( q=True ) 7 | 8 | defaultImageFormat = mc.getAttr("defaultRenderGlobals.imageFormat") 9 | mc.setAttr( "defaultRenderGlobals.imageFormat", 8) 10 | 11 | # turn off all HUDS 12 | showSettings = HUD.getHUDAttributes('show') 13 | hudSettings = HUD.getHUDAttributes('hud') 14 | HUD.hideHUDAttributes() 15 | 16 | playblastImage = mc.playblast( fmt='image', cf=filePath, st=now, et=now, forceOverwrite=True, fp=False, clearCache=True, viewer=True, showOrnaments=True, percent=100, widthHeight=dimensions) 17 | 18 | # turn HUDS back on 19 | HUD.restoreHUDAttributes(showSettings, hudSettings) 20 | 21 | mc.setAttr( "defaultRenderGlobals.imageFormat", defaultImageFormat) 22 | 23 | return playblastImage 24 | -------------------------------------------------------------------------------- /cgm/core/lib/wing/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/wing/__init__.py -------------------------------------------------------------------------------- /cgm/core/lib/wing/executeWingCode.py: -------------------------------------------------------------------------------- 1 | """ 2 | executeWingCode.py 3 | Eric Pavey - 2011-03-23 4 | Module that Maya calls to when Wing pings it through a socket, telling Maya 5 | to execute the commands in the temp file as either Python or mel code. 6 | """ 7 | import __main__ 8 | import os 9 | 10 | import maya.OpenMaya as om 11 | 12 | def main(codeType): 13 | """ 14 | Evaluate the temp file on disk, made by Wing, in Maya. 15 | 16 | codeType : string : Supports either 'python' or 'mel' 17 | """ 18 | tempFile = os.path.join(os.environ['TEMP'], 'wingData.txt').replace("\\", "/") 19 | if os.access(tempFile , os.F_OK): 20 | # Print the lines from the file in Maya: 21 | with open(tempFile, "r") as f: 22 | for line in f.readlines(): 23 | print(line.rstrip()) 24 | print("\n") 25 | 26 | if codeType == "python": 27 | # execute the file contents in Maya: 28 | with open(tempFile , "r") as f: 29 | exec(f, __main__.__dict__, __main__.__dict__) 30 | elif codeType == "mel": 31 | melCmd = 'source "%s"'%tempFile 32 | # This causes the "// Result: " line to show up in the Script Editor: 33 | om.MGlobal.executeCommand(melCmd, True, True) 34 | else: 35 | print("No Wing-generated temp file exists: " + tempFile) -------------------------------------------------------------------------------- /cgm/core/lib/zoo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/lib/zoo/__init__.py -------------------------------------------------------------------------------- /cgm/core/lib/zoo/misc.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class Callback(object): 4 | ''' 5 | stupid little callable object for when you need to "bake" temporary args into a 6 | callback - useful mainly when creating callbacks for dynamicly generated UI items 7 | ''' 8 | def __init__( self, func, *a, **kw ): 9 | self._func = func 10 | self._args = a 11 | self._kwargs = kw 12 | def __call__( self, *args ): 13 | return self._func( *self._args, **self._kwargs ) 14 | 15 | 16 | def removeDupes( iterable ): 17 | ''' 18 | performs order preserving, fast duplicate item removal 19 | ''' 20 | unique = set() 21 | newIterable = iterable.__class__() 22 | for item in iterable: 23 | if item not in unique: newIterable.append(item) 24 | unique.add(item) 25 | 26 | return newIterable 27 | 28 | 29 | def iterBy( iterable, count ): 30 | ''' 31 | returns an generator which will yield "chunks" of the iterable supplied of size "count". eg: 32 | for chunk in iterBy( range( 7 ), 3 ): print chunk 33 | 34 | results in the following output: 35 | [0, 1, 2] 36 | [3, 4, 5] 37 | [6] 38 | ''' 39 | cur = 0 40 | i = iter( iterable ) 41 | while True: 42 | try: 43 | toYield = [] 44 | for n in range( count ): toYield.append( next(i) ) 45 | yield toYield 46 | except StopIteration: 47 | if toYield: yield toYield 48 | break 49 | 50 | 51 | #end 52 | -------------------------------------------------------------------------------- /cgm/core/mel/cgmMarkingMenu.mel: -------------------------------------------------------------------------------- 1 | global proc cgmMarkingMenu() { 2 | python("import cgm;import cgm.core.tools.markingMenus.cgmMM_tool as cgmMM_tool;"); 3 | python("import maya.cmds as mc;mc.evalDeferred(cgmMM_tool.run,lp=True);"); 4 | } 5 | 6 | global proc cgmMarkingMenuKillUI() { 7 | python("import maya.cmds as mc;import cgm.core.tools.markingMenus.lib.mm_utils as MMUTILS;mc.evalDeferred(MMUTILS.kill_mmTool,lp=True);"); 8 | } -------------------------------------------------------------------------------- /cgm/core/mel/cgmRiggerMM.mel: -------------------------------------------------------------------------------- 1 | global proc cgmRiggerMM() { 2 | python("from cgm.core.tools.markingMenus import cgmMMRigger;reload(cgmMMRigger);cgmMMRigger.run()"); 3 | } 4 | 5 | 6 | global proc cgmRiggerMMKillUI () { 7 | python("cgmMMRigger.killUI();"); 8 | } 9 | -------------------------------------------------------------------------------- /cgm/core/mel/cgmTemplateMM.mel: -------------------------------------------------------------------------------- 1 | global proc cgmTemplateMM() { 2 | python("from cgm.core.tools.markingMenus import cgmMMTemplate;reload(cgmMMTemplate);cgmMMTemplate.run()"); 3 | } 4 | 5 | 6 | global proc cgmTemplateMMKillUI () { 7 | python("from cgm.core.tools.markingMenus import cgmMMTemplate;cgmMMTemplate.killUI();"); 8 | } 9 | -------------------------------------------------------------------------------- /cgm/core/mrs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/mrs/__init__.py -------------------------------------------------------------------------------- /cgm/core/mrs/assets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/mrs/assets/__init__.py -------------------------------------------------------------------------------- /cgm/core/mrs/assets/headSimple_01.mtl: -------------------------------------------------------------------------------- 1 | newmtl initialShadingGroup1 2 | illum 4 3 | Kd 0.50 0.50 0.50 4 | Ka 0.00 0.00 0.00 5 | Tf 1.00 1.00 1.00 6 | Ni 1.00 7 | -------------------------------------------------------------------------------- /cgm/core/mrs/blocks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/mrs/blocks/__init__.py -------------------------------------------------------------------------------- /cgm/core/mrs/blocks/organic/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/mrs/blocks/organic/__init__.py -------------------------------------------------------------------------------- /cgm/core/mrs/blocks/simple/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/mrs/blocks/simple/__init__.py -------------------------------------------------------------------------------- /cgm/core/mrs/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/mrs/lib/__init__.py -------------------------------------------------------------------------------- /cgm/core/presets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/presets/__init__.py -------------------------------------------------------------------------------- /cgm/core/rig/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/rig/__init__.py -------------------------------------------------------------------------------- /cgm/core/rig/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/rig/lib/__init__.py -------------------------------------------------------------------------------- /cgm/core/tests/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cgm/core/tests/test_MRS/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/tests/test_MRS/__init__.py -------------------------------------------------------------------------------- /cgm/core/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/tools/__init__.py -------------------------------------------------------------------------------- /cgm/core/tools/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/tools/lib/__init__.py -------------------------------------------------------------------------------- /cgm/core/tools/lib/annotations.py: -------------------------------------------------------------------------------- 1 | """ 2 | ------------------------------------------ 3 | annotations: cgm.core.tools.lib 4 | Author: Josh Burton 5 | email: cgmonks.info@gmail.com 6 | 7 | Website : https://github.com/jjburton/cgmTools/wiki 8 | ------------------------------------------ 9 | 10 | ================================================================ 11 | """ 12 | __version__ = '0.1.10102017' 13 | 14 | cgmToolbox = {'ui':'Collection of tools in one ui'} 15 | 16 | _d = {'cgmToolbox':{'ui':'Collection of tools in one ui'}, 17 | 'attrTools':{'ui':'Launch cgmAttrTools - Collection of tools for making creating, editing and managing attributes a little less painful,'}, 18 | 'locinator':{'ui':None}, 19 | 'meshTools':{'ui':None}, 20 | 'dynParentTool':{'ui':None}, 21 | 'setTools':{'ui':None}, 22 | 'raycast':{'create':'Series of options for object creation using rayCasting', 23 | 'createType':'Change what will be created with rayCasting', 24 | 'drag':'Series of options for object creation using rayCasting using dragging'}} -------------------------------------------------------------------------------- /cgm/core/tools/markingMenus/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cgm/core/tools/markingMenus/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/core/tools/markingMenus/lib/__init__.py -------------------------------------------------------------------------------- /cgm/images/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/__init__.py -------------------------------------------------------------------------------- /cgm/images/cgmDefault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgmDefault.png -------------------------------------------------------------------------------- /cgm/images/cgm_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_project.png -------------------------------------------------------------------------------- /cgm/images/cgm_project_asset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_project_asset.png -------------------------------------------------------------------------------- /cgm/images/cgm_project_commercial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_project_commercial.png -------------------------------------------------------------------------------- /cgm/images/cgm_project_template.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_project_template.psd -------------------------------------------------------------------------------- /cgm/images/cgm_project_unity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_project_unity.png -------------------------------------------------------------------------------- /cgm/images/cgm_project_unreal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_project_unreal.png -------------------------------------------------------------------------------- /cgm/images/cgm_uiFooter.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_uiFooter.bmp -------------------------------------------------------------------------------- /cgm/images/cgm_uiFooter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_uiFooter.png -------------------------------------------------------------------------------- /cgm/images/cgm_uiFooter_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgm_uiFooter_gray.png -------------------------------------------------------------------------------- /cgm/images/cgmonastery_uiFooter_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/cgmonastery_uiFooter_gray.png -------------------------------------------------------------------------------- /cgm/images/icons/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/__init__.py -------------------------------------------------------------------------------- /cgm/images/icons/anim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/anim.png -------------------------------------------------------------------------------- /cgm/images/icons/anim_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/anim_2.png -------------------------------------------------------------------------------- /cgm/images/icons/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/arrow_down.png -------------------------------------------------------------------------------- /cgm/images/icons/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/arrow_up.png -------------------------------------------------------------------------------- /cgm/images/icons/bake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/bake.png -------------------------------------------------------------------------------- /cgm/images/icons/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/clear.png -------------------------------------------------------------------------------- /cgm/images/icons/contract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/contract.png -------------------------------------------------------------------------------- /cgm/images/icons/expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/expand.png -------------------------------------------------------------------------------- /cgm/images/icons/explorer_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/explorer_25.png -------------------------------------------------------------------------------- /cgm/images/icons/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/export.png -------------------------------------------------------------------------------- /cgm/images/icons/find_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/find_file.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/brow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/brow.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/eye.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/eyeMain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/eyeMain.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/hand.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/handle.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/head.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/limb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/limb.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/master.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/muzzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/muzzle.png -------------------------------------------------------------------------------- /cgm/images/icons/mrs/segment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/mrs/segment.png -------------------------------------------------------------------------------- /cgm/images/icons/new_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/new_file.png -------------------------------------------------------------------------------- /cgm/images/icons/rebuild.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/rebuild.png -------------------------------------------------------------------------------- /cgm/images/icons/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/refresh.png -------------------------------------------------------------------------------- /cgm/images/icons/rig_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/rig_export.png -------------------------------------------------------------------------------- /cgm/images/icons/scene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/scene.png -------------------------------------------------------------------------------- /cgm/images/icons/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/select.png -------------------------------------------------------------------------------- /cgm/images/icons/select_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/select_add.png -------------------------------------------------------------------------------- /cgm/images/icons/select_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/select_all.png -------------------------------------------------------------------------------- /cgm/images/icons/set_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/set_25.png -------------------------------------------------------------------------------- /cgm/images/icons/sortBy.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/sortBy.psd -------------------------------------------------------------------------------- /cgm/images/icons/sortBy_date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/sortBy_date.png -------------------------------------------------------------------------------- /cgm/images/icons/sortBy_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/images/icons/sortBy_name.png -------------------------------------------------------------------------------- /cgm/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/__init__.py -------------------------------------------------------------------------------- /cgm/lib/bo/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/README.md -------------------------------------------------------------------------------- /cgm/lib/bo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/__init__.py -------------------------------------------------------------------------------- /cgm/lib/bo/boBatchFileProcessor.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/boBatchFileProcessor.mel -------------------------------------------------------------------------------- /cgm/lib/bo/boMotion.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/boMotion.mel -------------------------------------------------------------------------------- /cgm/lib/bo/boSliders.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/boSliders.mel -------------------------------------------------------------------------------- /cgm/lib/bo/boSmear.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/boSmear.mel -------------------------------------------------------------------------------- /cgm/lib/bo/boTSMTools.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/boTSMTools.mel -------------------------------------------------------------------------------- /cgm/lib/bo/boTimers.py: -------------------------------------------------------------------------------- 1 | # Bo Timing Charts and other scripts uses some procedures that need to be timed, or automatic... 2 | 3 | # This python script contains a timer function to enable threaded timing 4 | # It also uses the executeDeferred procedure to make sure the mel doesn't return anything before the python script is done 5 | 6 | # The timer also needs to be interruptable, so we use a boTimerActive variable 7 | # to find out if the command should still be run once the timer ends 8 | 9 | 10 | import maya.mel as mel 11 | import maya.utils as utils 12 | import maya.cmds as cmds 13 | import sys 14 | import string 15 | import time 16 | import threading 17 | 18 | def boCmdEncode(cmd): 19 | return cmds.encodeString(cmd).replace("\\\"","\"") 20 | 21 | def boTimerStart(dur, cmd): 22 | newBoTimer = boTimer(dur, cmd) 23 | newBoTimer.start() 24 | return newBoTimer 25 | 26 | class boTimer(threading.Thread): 27 | def __init__(self, dur, cmd): 28 | self.dur = dur 29 | self.cmd = cmd 30 | self.cancel = 0 31 | threading.Thread.__init__(self) 32 | def run(self): 33 | time.sleep(self.dur) 34 | if self.cancel == 0: 35 | utils.executeDeferred(mel.eval, boCmdEncode(self.cmd)) 36 | def kill(self): 37 | self.cancel = 1 -------------------------------------------------------------------------------- /cgm/lib/bo/boTimingCharts.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/boTimingCharts.mel -------------------------------------------------------------------------------- /cgm/lib/bo/boUtilities.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/bo/boUtilities.mel -------------------------------------------------------------------------------- /cgm/lib/cgmBaseMelUI.py: -------------------------------------------------------------------------------- 1 | from cgm.lib.zoo.zooPyMaya.baseMelUI import * 2 | -------------------------------------------------------------------------------- /cgm/lib/cgmNames.conf: -------------------------------------------------------------------------------- 1 | ### Normal stuff 2 | 3 | 4 | ## rigger stuff 5 | module:part 6 | modules:parts 7 | 8 | ### Types 9 | 10 | null:null 11 | blendShapeGeo:bsGeo 12 | object:obj 13 | skinCluster:skinNode 14 | 15 | 16 | ### General acgmreviations 17 | left:l 18 | right:r 19 | top:t 20 | bottom:b 21 | front:f 22 | back:b 23 | 24 | blendShape:bs 25 | quickSelectSet:qss 26 | characterSet:cs 27 | template:tmpl 28 | 29 | 30 | ### Controls 31 | controlMaster:all 32 | 33 | ### Body Stuff 34 | 35 | #Torso 36 | cog:cog 37 | head:head 38 | neck:neck 39 | torso:spine 40 | 41 | 42 | #Arms 43 | clavicle:clav 44 | arm:arm 45 | uprArm:uprArm 46 | elbow:elbow 47 | lwrArm:lwrArm 48 | 49 | #Leg 50 | leg:leg 51 | uprLeg:uprLeg 52 | knee:knee 53 | lwrLeg:lwrLeg 54 | 55 | #Digits 56 | finger1:thumb 57 | finger2:index 58 | finger3:middle 59 | finger4:ring 60 | finger5:pinky 61 | toe1:big 62 | toe2:index 63 | toe3:middle 64 | toe4:ring 65 | toe5:pinky 66 | -------------------------------------------------------------------------------- /cgm/lib/classes/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/classes/__init__.py -------------------------------------------------------------------------------- /cgm/lib/ml/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/ml/__init__.py -------------------------------------------------------------------------------- /cgm/lib/openSource/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/openSource/__init__.py -------------------------------------------------------------------------------- /cgm/lib/zoo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/__init__.py -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.arrow.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | $control[1] = `createNode nurbsCurve -n "zooControlShape" -p $control[0]`; 5 | setAttr -k 0 ".v"; 6 | setAttr ".cc" -type "nurbsCurve" 7 | 1 7 0 no 3 8 | 8 0 1 4 5 6 7 8 11 9 | 8 10 | -0.105 -0.5 0 11 | 0.105 -0.5 0 12 | 0.105 0.036 0 13 | 0.325 0.036 0 14 | 0 0.5 0 15 | -0.325 0.036 0 16 | -0.105 0.036 0 17 | -0.105 -0.5 0 18 | ; 19 | $control[2] = `createNode nurbsCurve -n "zooControlShape1" -p $control[0]`; 20 | setAttr -k off ".v"; 21 | setAttr ".cc" -type "nurbsCurve" 22 | 1 4 0 no 3 23 | 5 0 1 4 5 6 24 | 5 25 | 0 -0.49 0 26 | 0.095 -0.5 0 27 | 0.095 0.046 0 28 | 0.305 0.046 0 29 | 0 0.48 0 30 | ; 31 | string $rot[] = `revolve -ch 0 -po 0 -rn 0 -ssw 0 -esw 360 -ut 0 -tol 0.01 -degree 1 -s 6 -ulp 1 -ax 0 1 0 $control[2]`; 32 | delete $control[2]; 33 | for( $s in `listRelatives -f -s $rot[0]` ) parent -add -s $s $control[0]; 34 | delete $rot; 35 | 36 | select $control[0]; 37 | } 38 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.band.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | 5 | string $circ1[] = `circle -c 0 0.13 0 -nr 0 1 0 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.02 -s 6 -ch 0`; 6 | string $circ2[] = `circle -c 0 -0.13 0 -nr 0 1 0 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.02 -s 6 -ch 0`; 7 | string $bandSurf[] = `cylinder -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -r 0.5 -hr 0.5 -d 3 -ut 0 -tol 0.01 -s 8 -nsp 1 -ch 0`; 8 | 9 | for( $s in `listRelatives -f -s $circ1[0]` ) parent -add -s $s $control[0]; 10 | for( $s in `listRelatives -f -s $circ2[0]` ) parent -add -s $s $control[0]; 11 | for( $s in `listRelatives -f -s $bandSurf[0]` ) parent -add -s $s $control[0]; 12 | delete $circ1; 13 | delete $circ2; 14 | delete $bandSurf; 15 | 16 | select $control[0]; 17 | } 18 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.cone.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | $control[1] = `createNode nurbsCurve -n "zooControlShape" -p $control[0]`; 5 | setAttr -k off ".v"; 6 | setAttr ".cc" -type "nurbsCurve" 7 | 1 8 0 no 3 8 | 9 0 1 2 3 4 5 6 7 8 9 | 9 10 | -0.5 -0.5 0 11 | -0.245 -0.5 -0.433 12 | 0.245 -0.5 -0.433 13 | 0.5 -0.5 0 14 | 0 0.5 0 15 | -0.5 -0.5 0 16 | -0.245 -0.5 0.433 17 | 0.245 -0.5 0.433 18 | 0.5 -0.5 0 19 | ; 20 | $control[2] = `createNode nurbsCurve -n "zooControlShape1" -p $control[0]`; 21 | setAttr -k off ".v"; 22 | setAttr ".cc" -type "nurbsCurve" 23 | 1 2 0 no 3 24 | 3 0 1 2 25 | 3 26 | 0.245 -0.5 -0.433 27 | 0 0.5 0 28 | -0.245 -0.5 0.433 29 | ; 30 | $control[3] = `createNode nurbsCurve -n "zooControlShape2" -p $control[0]`; 31 | setAttr -k off ".v"; 32 | setAttr ".cc" -type "nurbsCurve" 33 | 1 2 0 no 3 34 | 3 0 1 2 35 | 3 36 | -0.245 -0.5 -0.433 37 | 0 0.5 0 38 | 0.245 -0.5 0.433 39 | ; 40 | $control[4] = `createNode nurbsCurve -n "zooControlShape1" -p $control[0]`; 41 | setAttr ".cc" -type "nurbsCurve" 42 | 1 2 0 no 3 43 | 3 0 1 3 44 | 3 45 | 0 -0.49 0 46 | -0.49 -0.49 0 47 | 0 0.49 0 48 | ; 49 | string $rot[] = `revolve -ch 0 -po 0 -rn 0 -ssw 0 -esw 360 -ut 0 -tol 0.01 -degree 1 -s 6 -ulp 1 -ax 0 1 0 $control[4]`; 50 | delete $control[4]; 51 | for( $s in `listRelatives -f -s $rot[0]` ) parent -add -s $s $control[0]; 52 | delete $rot; 53 | select $control[0]; 54 | } 55 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.cube.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | $control[1] = `createNode nurbsCurve -n "zooControlShape" -p $control[0]`; 5 | setAttr -k 0 ".v"; 6 | setAttr ".cc" -type "nurbsCurve" 7 | 1 15 0 no 3 8 | 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 9 | 16 10 | -0.5 0.5 0.5 11 | -0.5 -0.5 0.5 12 | -0.5 -0.5 -0.5 13 | -0.5 0.5 -0.5 14 | -0.5 0.5 0.5 15 | 0.5 0.5 0.5 16 | 0.5 0.5 -0.5 17 | -0.5 0.5 -0.5 18 | -0.5 -0.5 -0.5 19 | 0.5 -0.5 -0.5 20 | 0.5 0.5 -0.5 21 | 0.5 -0.5 -0.5 22 | 0.5 -0.5 0.5 23 | 0.5 0.5 0.5 24 | 0.5 -0.5 0.5 25 | -0.5 -0.5 0.5; 26 | 27 | $control[2] = `createNode nurbsCurve -n "zooControlShape1" -p $control[0]`; 28 | setAttr ".cc" -type "nurbsCurve" 29 | 1 3 0 no 3 30 | 4 0 1 2 3 31 | 4 32 | 0 -0.49 0 33 | -0.49 -0.49 0.49 34 | -0.49 0.49 0.49 35 | 0 0.49 0 36 | ; 37 | string $rot[] = `revolve -ch 0 -po 0 -rn 0 -ssw 0 -esw 360 -ut 0 -tol 0.01 -degree 1 -s 4 -ulp 1 -ax 0 1 0 $control[2]`; 38 | delete $control[2]; 39 | for( $s in `listRelatives -f -s $rot[0]` ) parent -add -s $s $control[0]; 40 | delete $rot; 41 | select $control[0]; 42 | } 43 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.cylinder.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | 5 | string $curve1 = `curve -d 1 -p 0 -0.5 -0.25 -p 0.17678 -0.5 -0.17677 -p 0.25 -0.5 0 -p 0.17678 -0.5 0.17678 -p 0 -0.5 0.25 -p -0.17677 -0.5 0.17678 -p -0.25 -0.5 0 -p -0.17677 -0.5 -0.17677 -p 0 -0.5 -0.25 -p 0 0.5 -0.25 -p -0.17677 0.5 -0.17677 -p -0.25 0.5 0 -p -0.17677 0.5 0.17678 -p 0 0.5 0.25 -p 0.17678 0.5 0.17678 -p 0.25 0.5 0 -p 0.17678 0.5 -0.17677 -p 0 0.5 -0.25`; 6 | string $curve2 = `curve -d 1 -p -0.17677 0.5 -0.17677 -p -0.17677 -0.5 -0.17677 -p -0.25 -0.5 0 -p -0.25 0.5 0 -p -0.17677 0.5 0.17678 -p -0.17677 -0.5 0.17678 -p 0 -0.5 0.25 -p 0 0.5 0.25 -p 0.17678 0.5 0.17678 -p 0.17678 -0.5 0.17678 -p 0.25 -0.5 0 -p 0.25 0.5 0 -p 0.17678 0.5 -0.17677 -p 0.17678 -0.5 -0.17677`; 7 | for( $s in `listRelatives -f -s $curve1` ) parent -add -s $s $control[0]; 8 | for( $s in `listRelatives -f -s $curve2` ) parent -add -s $s $control[0]; 9 | delete $curve1; 10 | delete $curve2; 11 | string $rev = `curve -d 1 -p 0 -0.49 0 -p 0 -0.49 -0.24 -p 0 0.49 -0.24 -p 0 0.49 0`; 12 | string $rot[] = `revolve -ch 0 -po 0 -rn 0 -ssw 0 -esw 360 -ut 0 -tol 0.01 -degree 1 -s 8 -ulp 1 -ax 0 1 0 $rev`; 13 | delete $rev; 14 | for( $s in `listRelatives -f -s $rot[0]` ) parent -add -s $s $control[0]; 15 | delete $rot; 16 | 17 | select $control[0]; 18 | } 19 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.eye.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | $control[1] = `createNode nurbsCurve -n "zooControlShape" -p $control[0]`; 5 | setAttr -k 0 ".v"; 6 | setAttr ".cc" -type "nurbsCurve" 7 | 3 8 2 no 3 8 | 13 -2 -1 0 1 2 3 4 5 6 7 8 9 10 9 | 11 10 | 0.122 0.122 0 11 | 0 0.17254 0 12 | -0.122 0.122 0 13 | -0.17254 0 0 14 | -0.122 -0.122 0 15 | 0 -0.17254 0 16 | 0.122 -0.122 0 17 | 0.17254 0 0 18 | 0.122 0.122 0 19 | 0 0.17254 0 20 | -0.122 0.122 0; 21 | $control[2] = `createNode nurbsCurve -n "zooControlShape1" -p $control[0]`; 22 | setAttr -k 0 ".v"; 23 | setAttr ".cc" -type "nurbsCurve" 24 | 3 8 2 no 3 25 | 13 -2 -1 0 1 2 3 4 5 6 7 8 9 10 26 | 11 27 | 0.205598 0.2056 0 28 | 0 0.29076 0 29 | -0.205598 0.2056 0 30 | -0.29076 0 0 31 | -0.205598 -0.2056 0 32 | 0 -0.29076 0 33 | 0.205598 -0.2056 0 34 | 0.29076 0 0 35 | 0.205598 0.2056 0 36 | 0 0.29076 0 37 | -0.205598 0.2056 0; 38 | $control[3] = `createNode nurbsCurve -n "zooControlShape2" -p $control[0]`; 39 | setAttr -k 0 ".v"; 40 | setAttr ".cc" -type "nurbsCurve" 41 | 3 12 2 no 3 42 | 17 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 43 | 15 44 | 0.2778 0.26 0 45 | 0 0.3 0 46 | -0.2778 0.26 0 47 | -0.5213 0.0289 0 48 | -0.53 0 0 49 | -0.5213 -0.0289 0 50 | -0.2778 -0.26 0 51 | 0 -0.3 0 52 | 0.2778 -0.26 0 53 | 0.5221 -0.0289 0 54 | 0.529 0 0 55 | 0.5221 0.0289 0 56 | 0.2778 0.26 0 57 | 0 0.3 0 58 | -0.2778 0.26 0; 59 | setAttr ( $control[0] +".s" ) 0.95 0.95 0.95; 60 | setAttr ( $control[0] +".rx" ) -90; 61 | makeIdentity -a 1 -r 1 -s 1 $control[0]; 62 | select $control[0]; 63 | } -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.hex.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | 5 | string $circ[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 0.5 -d 1 -ut 0 -tol 0.0001 -s 6 -ch 0`; 6 | string $tor[] = `torus -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -msw 360 -r 0.5 -hr 0.25 -d 1 -ut 0 -tol 0.01 -s 6 -nsp 4 -ch 0`; 7 | setAttr( $tor[0] +".ry" ) -30; 8 | makeIdentity -a 1 -r 1 $tor[0]; 9 | 10 | for( $s in `listRelatives -f -s $circ[0]` ) parent -add -s $s $control[0]; 11 | for( $s in `listRelatives -f -s $tor[0]` ) parent -add -s $s $control[0]; 12 | delete $tor; 13 | delete $circ; 14 | 15 | select $control[0]; 16 | } 17 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.locator.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | $control[1] = `createNode nurbsCurve -n "zooControlShape" -p $control[0]`; 5 | setAttr -k off ".v"; 6 | setAttr ".cc" -type "nurbsCurve" 7 | 1 7 0 no 3 8 | 8 0 1 2 3 4 5 6 7 9 | 8 10 | 0.5 0 0 11 | -0.5 0 0 12 | 0 0 0 13 | 0 0 0.5 14 | 0 0 -0.5 15 | 0 0 0 16 | 0 0.5 0 17 | 0 -0.5 0 18 | ; 19 | select $control[0]; 20 | } 21 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.pointer.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | $control[1] = `createNode nurbsCurve -n "zooControlShape" -p $control[0]`; 5 | setAttr -k 0 ".v"; 6 | setAttr ".cc" -type "nurbsCurve" 7 | 1 11 0 no 3 8 | 12 0 1 2 3 4 5 6 7 8 9 10 11 9 | 12 10 | -0.5 -0.5 0 11 | 0.5 -0.5 0 12 | 0.5 -0.225 0 13 | 0.105 -0.225 0 14 | 0.105 -0.064 0 15 | 0.325 -0.064 0 16 | 0 0.5 0 17 | -0.325 -0.064 0 18 | -0.105 -0.064 0 19 | -0.105 -0.225 0 20 | -0.5 -0.225 0 21 | -0.5 -0.5 0 22 | ; 23 | $control[2] = `createNode nurbsCurve -n "zooControlShape1" -p $control[0]`; 24 | setAttr -k off ".v"; 25 | setAttr ".cc" -type "nurbsCurve" 26 | 1 6 0 no 3 27 | 7 0 1 2 3 4 5 6 28 | 7 29 | 0 -0.49 0 30 | 0.489399 -0.49 0.489399 31 | 0.489399 -0.235 0.489399 32 | 0.0908579 -0.235 0.0908579 33 | 0.0908579 -0.054 0.0908579 34 | 0.307929 -0.054 0.307929 35 | 0 0.48 0 36 | ; 37 | select -r ( $control[2] +".cv[*]" ); 38 | scale -r 0.99 1 1; 39 | string $rot[] = `revolve -ch 0 -po 0 -rn 0 -ssw 0 -esw 360 -ut 0 -tol 0.01 -degree 1 -s 4 -ulp 1 -ax 0 1 0 $control[2]`; 40 | scale -r 1 1 0.3 $rot[0]; 41 | makeIdentity -a 1 -s 1 $rot[0]; 42 | delete $control[2]; 43 | for( $s in `listRelatives -f -s $rot[0]` ) parent -add -s $s $control[0]; 44 | delete $rot; 45 | 46 | select $control[0]; 47 | } 48 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.ring.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | 5 | string $circ[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.02 -s 6 -ch 0`; 6 | string $tor[] = `torus -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -msw 360 -r 0.5 -hr 0.15 -d 3 -ut 0 -tol 0.01 -s 8 -nsp 4 -ch 0`; 7 | 8 | for( $s in `listRelatives -f -s $circ[0]` ) parent -add -s $s $control[0]; 9 | for( $s in `listRelatives -f -s $tor[0]` ) parent -add -s $s $control[0]; 10 | delete $tor; 11 | delete $circ; 12 | 13 | select $control[0]; 14 | } 15 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.sphere.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | string $circ1[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.0001 -s 8 -ch 0`; 5 | string $circ2[] = `circle -c 0 0 0 -nr 0 0 1 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.0001 -s 8 -ch 0`; 6 | string $circ3[] = `circle -c 0 0 0 -nr 0 0 1 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.0001 -s 8 -ch 0`; 7 | string $circ4[] = `circle -c 0 0 0 -nr 0 0 1 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.0001 -s 8 -ch 0`; 8 | string $sphere[] = `sphere -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -r 0.49 -d 3 -ut 0 -tol 0.025 -s 6 -nsp 4 -ch 0`; 9 | 10 | setAttr ( $circ3[0] +".ry" ) 60; 11 | setAttr ( $circ4[0] +".ry" ) -60; 12 | makeIdentity -a 1 -r 1 $circ3[0]; 13 | makeIdentity -a 1 -r 1 $circ4[0]; 14 | 15 | for( $s in `listRelatives -f -s $circ1[0]` ) parent -add -s $s $control[0]; 16 | for( $s in `listRelatives -f -s $circ2[0]` ) parent -add -s $s $control[0]; 17 | for( $s in `listRelatives -f -s $circ3[0]` ) parent -add -s $s $control[0]; 18 | for( $s in `listRelatives -f -s $circ4[0]` ) parent -add -s $s $control[0]; 19 | for( $s in `listRelatives -f -s $sphere[0]` ) parent -add -s $s $control[0]; 20 | 21 | delete $circ1[0]; 22 | delete $circ2[0]; 23 | delete $circ3[0]; 24 | delete $circ4[0]; 25 | delete $sphere[0]; 26 | select $control[0]; 27 | } 28 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/control.target.shape: -------------------------------------------------------------------------------- 1 | { 2 | string $control[] = {}; 3 | $control[0] = `createNode transform -n "zooControl"`; 4 | 5 | $control[1] = `createNode nurbsCurve -n "zooControlShape" -p $control[0]`; 6 | setAttr -k 0 ".v"; 7 | setAttr ".cc" -type "nurbsCurve" 8 | 1 1 0 no 3 9 | 2 0 1 10 | 2 11 | 0.08839 0 0.08839 12 | -0.08839 0 -0.08839 13 | ; 14 | $control[2] = `createNode nurbsCurve -n "zooControlShape1" -p $control[0]`; 15 | setAttr -k 0 ".v"; 16 | setAttr ".cc" -type "nurbsCurve" 17 | 1 1 0 no 3 18 | 2 0 1 19 | 2 20 | -0.08839 0 0.08839 21 | 0.08839 0 -0.08839 22 | ; 23 | 24 | string $circ[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 0.5 -d 3 -ut 0 -tol 0.02 -s 6 -ch 0`; 25 | string $incirc[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 0.125 -d 3 -ut 0 -tol 0.02 -s 6 -ch 0`; 26 | string $sphere[] = `sphere -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -r 0.125 -d 3 -ut 0 -tol 0.02 -s 6 -nsp 4 -ch 0`; 27 | string $tor[] = `torus -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -msw 360 -r 0.5 -hr 0.25 -d 3 -ut 0 -tol 0.01 -s 8 -nsp 4 -ch 0`; 28 | 29 | for( $s in `listRelatives -f -s $circ[0]` ) parent -add -s $s $control[0]; 30 | for( $s in `listRelatives -f -s $incirc[0]` ) parent -add -s $s $control[0]; 31 | for( $s in `listRelatives -f -s $sphere[0]` ) parent -add -s $s $control[0]; 32 | for( $s in `listRelatives -f -s $tor[0]` ) parent -add -s $s $control[0]; 33 | delete $sphere; 34 | delete $tor; 35 | delete $circ; 36 | delete $incirc; 37 | 38 | select $control[0]; 39 | } 40 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildIKFK_altTwist.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildIKFK_altTwist.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildMPath.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildMPath.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimBasicSpine.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimBasicSpine.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimEyes.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimEyes.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimFKSpine.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimFKSpine.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimFinger.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimFinger.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimHaunch.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimHaunch.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimHead.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimHead.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimIKFKSpine.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimIKFKSpine.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimIKSpine.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimIKSpine.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimLeg.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimLeg.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimRootSpine.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildPrimRootSpine.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTBuildSplineIK.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTBuildSplineIK.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTCtrlType.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTCtrlType.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTHelp_flags.zooHelp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTHelp_flags.zooHelp -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTHelp_tech.zooHelp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTHelp_tech.zooHelp -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTHelp_works.zooHelp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTHelp_works.zooHelp -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTInfo.mel: -------------------------------------------------------------------------------- 1 | global proc string zooCSTInfo ( string $function ) { 2 | string $creationDate = "08 March 2003"; 3 | string $version = "4.08.04"; 4 | 5 | if( $function == "created" ) return $creationDate; 6 | if( $function == "version" ) return $version; 7 | return ""; 8 | } 9 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTMakeStretchy.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTMakeStretchy.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTMakeStretchy_limitsMethod.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTMakeStretchy_limitsMethod.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTPrimitives.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTPrimitives.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTUtils.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTUtils.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTValidateFlags.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTValidateFlags.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/CST/zooCSTWin.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/CST/zooCSTWin.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooBodgeK_help.zooHelp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/zooBodgeK_help.zooHelp -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooBoltOnIKWin.mel: -------------------------------------------------------------------------------- 1 | global proc zooBoltOnIKWin() { 2 | string $windowName = "zooBoltOnIKWin"; 3 | string $windowTitle = "zooBoltOnIK"; 4 | 5 | if( `window -exists $windowName` ) deleteUI $windowName; 6 | window -title $windowTitle -resizeToFitChildren 1 -maximizeButton 0 -sizeable 0 -width 200 -height 30 $windowName; 7 | string $form = `formLayout`; 8 | string $text = `text -l "select your FK controls, then hit the button!"`; 9 | string $check = `checkBox -l "stretchy?" zooBoltOnCheck`; 10 | string $button = `button -l "Bolt on IK" -c( "zooBoltOnIK `ls -sl` `checkBox -q -v zooBoltOnCheck`;" )`; 11 | string $image = `image -width 100 -height 8 -backgroundColor ((float)1) ((float)0) ((float)0) -image(zooGetFileLocation(zooListEnv("XBMLANGPATH"),"zoo_sig","tga") +"zoo_sig.tga" )`; 12 | popupMenu -p $image -b 1 -pmc ( "showHelp -a \"http://www.macaronikazoo.com/\"" ); 13 | 14 | formLayout -e 15 | -af $text "top" 3 16 | -af $text "left" 5 17 | -an $text "right" 18 | -an $text "bottom" 19 | 20 | -ac $check "top" 3 $text 21 | -af $check "left" 2 22 | -af $check "right" 2 23 | -an $check "bottom" 24 | 25 | -ac $button "top" 3 $check 26 | -af $button "left" 2 27 | -af $button "right" 2 28 | -ac $button "bottom" 2 $image 29 | 30 | -an $image "top" 31 | -af $image "left" 2 32 | -af $image "right" 2 33 | -af $image "bottom" 2 34 | $form; 35 | 36 | showWindow $windowName; 37 | } 38 | 39 | 40 | //zoo.end 41 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooDynChain.mel: -------------------------------------------------------------------------------- 1 | global proc zooDynChain( string $optionStr ) { 2 | string $sel[] = `ls -sl`; 3 | string $temp[] = {}; 4 | string $start = $sel[0]; 5 | string $end = $sel[1]; 6 | int $reverse = 0; 7 | 8 | $temp = `zooGetFlagArguments $optionStr start`; if( `size $temp` ) $start = $temp[0]; 9 | $temp = `zooGetFlagArguments $optionStr end`; if( `size $temp` ) $end = $temp[0]; 10 | $temp = `zooGetFlagArguments $optionStr reverse`; if( `size $temp` ) $reverse = $temp[0]; 11 | 12 | string $a[] = `zooCSTBuildSplineIK "" $start $end "-stretch 0"`; 13 | string $ikHandle = $a[0]; 14 | string $curve = $a[1]; 15 | 16 | string $joints[] = { $start }; 17 | float $chainLength = 0; 18 | 19 | $joints = zooAddArray_str($joints, `zooGetInBTweenJoints $start $end` ); 20 | $joints = `zooAddArray_str $joints { $start }`; 21 | 22 | for( $n=1; $n<`size $joints`; $n++ ) $chainLength += `zooCSTDistBetween $joints[( $n-1 )] $joints[$n]`; 23 | 24 | string $particles = zooGetElement_str(0,`soft -c -d -g 1 $curve`); 25 | int $numParticles = `getAttr ( $particles +".count" )`;print $numParticles; 26 | 27 | setAttr ( $particles +".goalSmoothness" ) 1; 28 | for( $n=1; $n<$numParticles; $n++ ) particle -e -or $n -at goalPP -fv (1-(($n/(float)$numParticles)*0.95)) $particles; 29 | select $sel; 30 | } 31 | 32 | 33 | //zoo.end -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooFitTimeline.mel: -------------------------------------------------------------------------------- 1 | global proc zooFitTimeline() { 2 | string $currentEditor = `getPanel -up`; 3 | if( $currentEditor == "graphEditor1" || $currentEditor == "dopeSheetPanel1" ) zooTimeSetsFrameTime; 4 | else zooTimeSetsGoToSelectedTime; 5 | } 6 | 7 | 8 | global proc zooTimeSetsFrameTime() { 9 | string $currentEditor = `getPanel -wf`; 10 | if( $currentEditor == "dopeSheetPanel1" ) { 11 | $currentEditor = "dopeSheetPanel1DopeSheetEd"; 12 | animView -startTime ( `playbackOptions -q -minTime` - 1 ) -endTime ( `playbackOptions -q -maxTime` + 1 ) $currentEditor; 13 | } 14 | else if( $currentEditor == "graphEditor1" ) { 15 | $currentEditor = "graphEditor1GraphEd"; 16 | //determine min max key values in time range 17 | string $objs[] = `selectionConnection -q -obj graphEditor1FromOutliner`; 18 | float $start = `playbackOptions -q -minTime` - 1; 19 | float $end = `playbackOptions -q -maxTime` + 1; 20 | float $keys[] = sort(`keyframe -t( $start +":"+ $end ) -q -vc $objs`); 21 | float $minVal = $keys[0]; 22 | float $maxVal = $keys[(`size $keys`-1)]; 23 | float $range = $maxVal - $minVal; 24 | 25 | $range *= 0.15; 26 | $minVal -= $range; 27 | $maxVal += $range; 28 | animView -startTime $start -endTime $end -min $minVal -max $maxVal $currentEditor; 29 | } 30 | } 31 | 32 | 33 | global proc zooTimeSetsGoToSelectedTime() { 34 | float $selectedTimeRange[] = `zooGetSelectedRange`; 35 | if( $selectedTimeRange[2] ) playbackOptions -min $selectedTimeRange[0] -max $selectedTimeRange[1]; 36 | else playbackOptions -min `playbackOptions -q -ast` -max `playbackOptions -q -aet`; 37 | } 38 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooGetLookat.mel: -------------------------------------------------------------------------------- 1 | zooRegister; 2 | 3 | 4 | global proc string zooGetLookat( int $forceCreate ){ 5 | string $reg = `zooGetRegister zoo 1`; 6 | string $lookats[] = {}; 7 | string $lookat = ""; 8 | int $idxs[] = {}; 9 | 10 | zooListRegistered $reg lookat $idxs $lookats; 11 | for( $l in $lookats ) if( `objExists $l` ) $lookat = $l; 12 | if( !`objExists $lookat` ) { 13 | if( $forceCreate ) { 14 | string $grp = `group -em`; 15 | $grp = `rename $grp "zooLookat#"`; 16 | zooRegisterObj $reg lookat $grp 1 1; 17 | parentConstraint persp $grp; 18 | return $grp; 19 | } 20 | } 21 | else return $lookat; 22 | } 23 | 24 | 25 | //zoo.end 26 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooHeavy.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/zooHeavy.mel -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooKeymaster_help.zooHelp: -------------------------------------------------------------------------------- 1 | ----Usage---- 2 | Keymaster lets you bump key values around really easily. The 3 | script works on either selected keys, or if you don't have any selected keys, any keys on the current frame. If there are no keys on the current frame, then the script works on the keys on the previous most frame. 4 | 5 | Hitting the "push up" button will bump the key value up by a percentage value. By default the value is 2% (or 0.02). Hitting the "push down" button will decrease the value by the given percentage. So this script allows a super easy way to quickly bump the values of your keyframes around. 6 | 7 | 8 | ----Assigning Hotkeys---- 9 | You can assign this script to a hotkey if you want. So you might want to have a hotkey to bump values by 1% and another hotkey to bump values by 5%. Or whatever way you like to work. 10 | 11 | The command to put into the hotkey is: 12 | zooKeymaster "-dir up -factor 0.01"; 13 | 14 | this would bump keys up by 1%. If you wanted a key to bump down by 10% you would use this: 15 | 16 | zooKeymaster "-dir down -factor 0.1"; 17 | 18 | If you ever want to know what command to put as a hotkey, just set the values you want in the UI, press the direction to shift the keyframe and check out te script editor. It all gets echoed into the script editor so all you need to do is copy/paste it directly into your hotkey command. 19 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooNameSpacey_help.zooHelp: -------------------------------------------------------------------------------- 1 | Overview 2 | zooNameSpacey helps manage namespaces in a somewhat more friendly way than maya offers. 3 | 4 | All it does at the moment is offer navigation, renaming, and deletion tools. 5 | 6 | Navigating 7 | Double clicking a namespace will allow you to \"look\" into that namespace (kinda like a directory) to see if it has any sub-namespaces. This also changes the default namespace in maya. ie any new objects created get stuck into this default namespace. 8 | 9 | Renaming 10 | To rename a namespace, simply select it, and type in a new name at the bottom, and hit enter. The script handles renaming all sub spaces accordingly. 11 | 12 | Remove and Delete 13 | Remove will remove the namespace, and dump all its contents (including anything in sub spaces) into its parent's namespace. Delete will actually delete all contents of a namespace (including sub spaces) as well as removing the namespace itself."; -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooParentToChild.mel: -------------------------------------------------------------------------------- 1 | zooArrays_str; 2 | zooAlign ""; 3 | 4 | 5 | global proc zooParentToChild( string $obj ) { 6 | if( !`objExists $obj` ) return; 7 | string $parent = zooGetElement_str(0,`listRelatives -f -p $obj`); 8 | if( !`objExists $parent` ) return; 9 | 10 | string $axes[] = { "x","y","z" }; 11 | float $objScale[] = `getAttr ( $obj +".s" )`; 12 | float $parentScale[] = `getAttr ( $parent +".s" )`; 13 | 14 | $parentScale[0] *= $objScale[0]; 15 | $parentScale[1] *= $objScale[1]; 16 | $parentScale[2] *= $objScale[2]; 17 | 18 | string $sel[] = `ls -sl`; 19 | string $temp = `group -em`; 20 | 21 | //delete `parentConstraint $obj $temp`; 22 | zooAlignSimple $obj $temp; 23 | setAttr ( $parent +".s" ) 1 1 1; //the order the scale is applied in is very important - maya doesn't parent constrain stuff too well when scaling is involved - so don't fuck with ordering 24 | zooAlignSimple $temp $parent; 25 | zooAlignSimple $temp $obj; 26 | 27 | for( $n=0; $n<3; $n++ ) if( `getAttr -se ( $parent +".s"+ $axes[$n] )` ) setAttr ( $parent +".s"+ $axes[$n] ) $parentScale[$n]; 28 | for( $n=0; $n<3; $n++ ) if( `getAttr -se ( $obj +".s"+ $axes[$n] )` ) setAttr ( $obj +".s"+ $axes[$n] ) 1; 29 | //setAttr ( $obj +".s" ) 1 1 1; 30 | delete $temp; 31 | select $sel; 32 | } 33 | 34 | 35 | //zoo.end 36 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooReorderAttrs.mel: -------------------------------------------------------------------------------- 1 | global proc zooReorderAttrs( string $obj, string $newAttribOrder[] ) { 2 | string $selObjs[] = `ls -sl`; 3 | for ( $attrib in $newAttribOrder ) { 4 | //if the attribute is locked, we'll need to unlock it to rename it 5 | int $isAttrLocked = `getAttr -l ( $obj + "." + $attrib )`; 6 | if( $isAttrLocked ) setAttr -l 0 ( $obj + "." + $attrib ); 7 | 8 | //rename the attribute to a temporary name. You can't rename it to its own name, so we need to rename it to a proxy name, and then back again 9 | string $tempAttrib = `renameAttr ( $obj + "." + $attrib ) "temp"`; 10 | renameAttr ( $obj + "." + $tempAttrib ) $attrib; 11 | 12 | //if the attribute WAS locked, lock it again, in order to maximise transparency 13 | if( $isAttrLocked ) setAttr -l 1 ( $obj + "." + $attrib ); 14 | } 15 | 16 | select -r $selObjs; 17 | select $selObjs; 18 | } 19 | 20 | 21 | //zoo.end 22 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooReplaceShape.mel: -------------------------------------------------------------------------------- 1 | global proc zooReplaceShape( string $srcObj, string $tgtObj, int $world ) { 2 | //source object is the source transform - ie the shape you want to use 3 | //target object is the transform of the object you want the source's shape to be used for 4 | string $dupeSrc = zooGetElement_str(0,`duplicate -rc $srcObj`); 5 | string $srcShapes[] = `listRelatives -pa -s $dupeSrc`; 6 | string $tgtShapes[] = `listRelatives -pa -s $tgtObj`; 7 | string $cs[] = `listRelatives -pa -type transform $dupeSrc`; 8 | 9 | for( $c in $cs ) if( `objExists $c` ) delete $c; 10 | if( `size $tgtShapes` ) delete $tgtShapes; 11 | zooAttrState "-attrs t r s -k 1 -l 0" $dupeSrc; //make sure all transform attributes are unlocked 12 | 13 | //if( $world ) delete `pointConstraint $tgtObj $dupeSrc`; 14 | if( !$world ) delete `parentConstraint $tgtObj $dupeSrc`; 15 | 16 | parent $dupeSrc $tgtObj; 17 | makeIdentity -a 1 -t 1 -r 1 -s 1 $dupeSrc; 18 | for( $shape in $srcShapes ) parent -add -s $shape $tgtObj; 19 | delete $dupeSrc; 20 | } 21 | 22 | 23 | //end 24 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooResetAttrs.mel: -------------------------------------------------------------------------------- 1 | //simply resets all keyable attributes on a given object to its default value 2 | //great for running on a large selection such as all character controls... 3 | global proc zooResetAttrs( string $obj ) { 4 | python( "from cgm.lib.zoo.zooPyMaya import resetAttrs; resetAttrs.resetAttrs( '"+ $obj +"' );" ); 5 | } 6 | 7 | 8 | //zoo.end 9 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooResource.mel: -------------------------------------------------------------------------------- 1 | zooUtils; 2 | 3 | 4 | //resources all currently sourced scripts 5 | global proc zooResource() { 6 | string $sourced[] = sort(`zooListSourced`); 7 | for( $s in $sourced ) { 8 | print( "re-sourcing "+ $s +"\n" ); 9 | eval( "source "+ $s +";" ); 10 | } 11 | } 12 | 13 | 14 | //returns a list of all scripts that have been sourced in the current maya session 15 | global proc string[] zooListSourced() { 16 | string $paths[] = `zooListEnv ""`; 17 | string $sourced[] = {}; 18 | 19 | for( $p in $paths ) { 20 | string $scripts[] = `zooGetFiles $p "*.mel"`; 21 | for( $s in $scripts ) { 22 | $s = `match "^[^.]+" $s`; 23 | string $what = `whatIs $s`; 24 | 25 | $what = `tolower $what`; 26 | $what = `match "^[^ ]+" $what`; 27 | if( $what == "mel" ) $sourced[( `size $sourced` )] = $s; 28 | } 29 | } 30 | 31 | $sourced = stringArrayRemoveDuplicates( $sourced ); 32 | 33 | return $sourced; 34 | } 35 | 36 | 37 | //zoo.end 38 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooSetLookat.mel: -------------------------------------------------------------------------------- 1 | global proc zooSetLookat( string $camera ) { 2 | string $sel[] = `ls -sl`; 3 | string $lookat = `zooGetLookat 0`; 4 | 5 | if( !`objExists $lookat` ) return; 6 | if( !`objExists $camera` ) return; 7 | delete `parentConstraint $camera $lookat`; //this is an easy way to make sure there are no other targets on the point constraint 8 | parentConstraint $camera $lookat; 9 | select $sel; 10 | } 11 | 12 | 13 | //zoo.end 14 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooSetMenu_help.zooHelp: -------------------------------------------------------------------------------- 1 | Overview: 2 | zooSetMenu is a marking menu based script to help deal with quick selection sets. Quick selection sets are a great way to quickly select a bunch of character controls, and quickly key them when animating, among many other things. zooSetMenu has two parts to it, the marking menu, and its control window. The marking menu gives really fast access to selecting any quick selection set in the scene, adding to current selections, creating sets, or keying all objects in a set. 3 | 4 | The config window then supplements this with the ability to easily rename sets, add/remove items to/from sets, delete sets, hide all set members, or create post selection commands. 5 | 6 | Marking Menu Setup: 7 | Add to selection, will keep whatever is currently selected when it loads the quick select set. The update button will reload the UI for when quick select sets are created outside of this script. 8 | 9 | The "default behaviour" controls what happens when the hotkey assigned to zooSetMenu is pressed without displaying the menu. Ie if you had zooSetMenu assigned to the "y" button, when you just press and release the "y" key, the default behaviour would be called. Most of the options are self explanatory, except for the select "previous/current" option. This basically finds the first quick select set that the selected object belongs to, and selects it. If nothing is selected, it selects the previous set. This behaviour makes it easy to select a character's controls in scenes with multiple characters. 10 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooToggle.mel: -------------------------------------------------------------------------------- 1 | global proc zooToggle( string $what ) { 2 | string $cp = `getPanel -up`; 3 | if( $cp == "" ) $cp = `getPanel -wf`; 4 | if( $cp != "" ) { 5 | string $type = `getPanel -typeOf $cp`; 6 | if( $type != "modelPanel" ) return; 7 | 8 | switch( $what ) { 9 | case "shading": 10 | string $app = `modelEditor -q -displayAppearance $cp`; 11 | if( $app == "wireframe" ) modelEditor -e -displayAppearance "smoothShaded" $cp; 12 | else if ( $app == "smoothShaded" ) modelEditor -e -displayAppearance "wireframe" $cp; 13 | break; 14 | 15 | case "texturing": 16 | int $tex = `modelEditor -q -displayTextures $cp`; 17 | if( $tex ) modelEditor -e -displayTextures 0 $cp; 18 | else modelEditor -e -displayTextures 1 $cp; 19 | break; 20 | 21 | case "lighting": 22 | string $lit = `modelEditor -q -displayLights $cp`; 23 | if( $lit == "default" ) modelEditor -e -displayLights "all" $cp; 24 | else if ( $lit == "all" ) modelEditor -e -displayLights "selected" $cp; 25 | else modelEditor -e -displayLights "default" $cp; 26 | break; 27 | } 28 | } 29 | } 30 | 31 | 32 | //zoo.end 33 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooWeightSave_help.zooHelp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooMel/zooWeightSave_help.zooHelp -------------------------------------------------------------------------------- /cgm/lib/zoo/zooMel/zooXferAnim.mel: -------------------------------------------------------------------------------- 1 | // 2 | // xfer animation 3 | // 4 | // Created by Hamish McKenzie mel@macaronikazoo.com 5 | // Created : 10 May 2003 6 | // 7 | // Description: 8 | // This script will transfer animation from one group ob objects to another. It takes a 9 | // bunch of source objects, and tries to match them with a list of target objects. The 10 | // object mapping may be changed, if the script either gets it wrong, or you just want 11 | // it done in a different order. 12 | // 13 | // Usage: 14 | // simply run the command: 15 | // zooXferAnim; 16 | // 17 | // macaroniKazoo 18 | 19 | 20 | global proc zooXferAnim() { 21 | python( "from cgm.lib.zoo.zooPyMaya import xferAnimUI; xferAnimUI.load()" ); 22 | } 23 | 24 | 25 | //zoo.end -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPy/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | #end 4 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPy/devTest_name.py: -------------------------------------------------------------------------------- 1 | 2 | from unittest import TestCase 3 | from .name import Name, CamelCaseName 4 | 5 | class TestNames(TestCase): 6 | def runTest( self ): 7 | names = [ ('a_simple_case', '_', ['a', 'simple', 'case']), 8 | ('a__slightly_more_complicated_case', '_', ['a', '', 'slightly', 'more', 'complicated', 'case']), 9 | ('_a_', '_', ['', 'a', '']), 10 | ] 11 | 12 | for name, delim, expectedTokens in names: 13 | asName = Name( name, delim ) 14 | assert asName.split() == expectedTokens 15 | assert asName.up() == delim.join( expectedTokens[:-1] ) 16 | assert asName.up(2) == delim.join( expectedTokens[:-2] ) 17 | for n, tok in enumerate( expectedTokens ): 18 | assert asName[n] == tok 19 | 20 | camelNames = [ ('thisIsCamel', '_', ['this', 'Is', 'Camel']), 21 | ('ThisHasLOTSOFCaps', '_', ['This', 'Has', 'LOTSOFCaps']), 22 | ('SomeNumbers123In_thisOne456', '_', ['Some', 'Numbers', '123', 'In', 'this', 'One', '456']), 23 | ] 24 | 25 | for name, delim, expectedTokens in camelNames: 26 | asName = CamelCaseName( name ) 27 | assert len( asName ) == len( expectedTokens ) 28 | assert asName.split() == expectedTokens 29 | assert asName.up() == ''.join( expectedTokens[:-1] ) 30 | assert asName.up(2) == ''.join( expectedTokens[:-2] ) 31 | for n, tok in enumerate( expectedTokens ): 32 | assert asName[n] == tok 33 | 34 | 35 | #end 36 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPy/misc.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class Callback(object): 4 | ''' 5 | stupid little callable object for when you need to "bake" temporary args into a 6 | callback - useful mainly when creating callbacks for dynamicly generated UI items 7 | ''' 8 | def __init__( self, func, *a, **kw ): 9 | self._func = func 10 | self._args = a 11 | self._kwargs = kw 12 | def __call__( self, *args ): 13 | return self._func( *self._args, **self._kwargs ) 14 | 15 | 16 | def removeDupes( iterable ): 17 | ''' 18 | performs order preserving, fast duplicate item removal 19 | ''' 20 | unique = set() 21 | newIterable = iterable.__class__() 22 | for item in iterable: 23 | if item not in unique: newIterable.append(item) 24 | unique.add(item) 25 | 26 | return newIterable 27 | 28 | 29 | def iterBy( iterable, count ): 30 | ''' 31 | returns an generator which will yield "chunks" of the iterable supplied of size "count". eg: 32 | for chunk in iterBy( range( 7 ), 3 ): print chunk 33 | 34 | results in the following output: 35 | [0, 1, 2] 36 | [3, 4, 5] 37 | [6] 38 | ''' 39 | cur = 0 40 | i = iter( iterable ) 41 | while True: 42 | try: 43 | toYield = [] 44 | for n in range( count ): toYield.append( next(i) ) 45 | yield toYield 46 | except StopIteration: 47 | if toYield: yield toYield 48 | break 49 | 50 | 51 | #end 52 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPy/moduleUtils.py: -------------------------------------------------------------------------------- 1 | 2 | import sys 3 | 4 | from .path import Path 5 | 6 | 7 | def iterModuleNamesFromFilepath( filepath ): 8 | ''' 9 | generator function that yields all possible top-level module names for the given filepath 10 | 11 | The first yielded is the first module name to the given filepath 12 | ''' 13 | filepath = Path( filepath ) 14 | dirpath = filepath.up() 15 | 16 | for p in sys.path: 17 | p = Path( p ) 18 | if filepath.isUnder( p ): 19 | relpath = (filepath - p).setExtension() 20 | yield str( relpath ).replace( '/', '.' ) 21 | 22 | 23 | def sortByLength( strs ): 24 | return sorted( strs, cmp=lambda a, b: cmp( len(a), len(b) ) ) 25 | 26 | 27 | def getFirstModuleNameFromFilepath( filepath ): 28 | for moduleName in iterModuleNamesFromFilepath( filepath ): 29 | return moduleName 30 | 31 | raise ValueError( "The given filepath isn't discoverable given the current sys.path!" ) 32 | 33 | 34 | def getShortestModuleNameFromFilepath( filepath ): 35 | moduleNames = sortByLength( iterModuleNamesFromFilepath( filepath ) ) 36 | return moduleNames[0] 37 | 38 | 39 | def getLongestModuleNameFromFilepath( filepath ): 40 | moduleNames = sortByLength( iterModuleNamesFromFilepath( filepath ) ) 41 | return moduleNames[-1] 42 | 43 | 44 | #end 45 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPy/profileDecorators.py: -------------------------------------------------------------------------------- 1 | import cProfile as prof 2 | import pstats 3 | import os 4 | import time 5 | 6 | 7 | def d_profile(f): 8 | ''' 9 | writes out profiling info on the decorated function. the profile results are dumped in a file 10 | called something like "_profile__..txt" 11 | ''' 12 | def newFunc( *a, **kw ): 13 | def run(): f( *a, **kw ) 14 | baseDir = os.path.split( __file__ )[0] 15 | 16 | tmpFile = os.path.join( baseDir, 'profileResults.tmp' ) 17 | prof.runctx( 'run()', globals(), locals(), tmpFile ) 18 | 19 | try: 20 | module = f.__module__ 21 | except AttributeError: 22 | module = 'NOMODULE' 23 | 24 | dumpFile = os.path.join( baseDir, '_profile__%s.%s.txt' % (module, f.__name__) ) 25 | dumpF = file( dumpFile, 'w' ) 26 | stats = pstats.Stats( tmpFile ) 27 | stats.sort_stats( 'time', 'calls', 'name' ) 28 | stats.stream = dumpF 29 | stats.print_stats() 30 | 31 | stats.sort_stats( 'cumulative', 'time' ) 32 | stats.print_stats() 33 | dumpF.close() 34 | 35 | #remove the tmpFile 36 | os.remove( tmpFile ) 37 | print(('LOGGED PROFILING STATS TO', dumpFile)) 38 | 39 | newFunc.__name__ = f.__name__ 40 | newFunc.__doc__ = f.__doc__ 41 | 42 | return newFunc 43 | 44 | 45 | def d_timer(f): 46 | ''' 47 | simply reports the time taken by the decorated function 48 | ''' 49 | def newFunc( *a, **kw ): 50 | s = time.time() 51 | ret = f( *a, **kw ) 52 | print(('Time Taken by %s: %0.3g' % (f.__name__, time.time()-s))) 53 | 54 | return ret 55 | 56 | newFunc.__name__ = f.__name__ 57 | newFunc.__doc__ = f.__doc__ 58 | 59 | return newFunc 60 | 61 | 62 | #end 63 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | #end 4 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/animUtils.py: -------------------------------------------------------------------------------- 1 | 2 | import maya.cmds as cmd 3 | 4 | 5 | class KeyServer(object): 6 | ''' 7 | This class is basically an iterator over keys set on the given objects. 8 | Key times are iterated over in chronological order. Calling getNodes 9 | on the iterator will provide a list of nodes that have keys on the 10 | current frame 11 | ''' 12 | def __init__( self, nodes, changeTime=True ): 13 | self._nodes = nodes 14 | self._changeTime = changeTime 15 | self._curIndex = 0 16 | self._keys = list( set( cmd.keyframe( nodes, q=True ) or [] ) ) 17 | self._keys.sort() 18 | self._keyNodeDict = {} 19 | self._keyNodeDictHasBeenPopulated = False 20 | def _populateDict( self ): 21 | keyNodeDict = self._keyNodeDict 22 | for node in self._nodes: 23 | keys = cmd.keyframe( node, q=True ) 24 | if keys: 25 | for key in set( keys ): 26 | keyNodeDict.setdefault( key, [] ) 27 | keyNodeDict[ key ].append( node ) 28 | 29 | self._keyNodeDictHasBeenPopulated = True 30 | def getNodesAtTime( self ): 31 | if not self._keyNodeDictHasBeenPopulated: 32 | self._populateDict() 33 | 34 | keyNodeDict = self._keyNodeDict 35 | 36 | return keyNodeDict[ self._keys[ self._curIndex ] ][:] 37 | def __iter__( self ): 38 | for key in self._keys: 39 | if self._changeTime: 40 | cmds.currentTime( key, e=True ) 41 | 42 | yield key 43 | 44 | 45 | #end 46 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/change.py: -------------------------------------------------------------------------------- 1 | 2 | from .baseMelUI import * 3 | 4 | from .changeIkFk import ChangeIkFkLayout 5 | from .changeParent import ChangeParentLayout 6 | from .changeRo import ChangeRoLayout 7 | 8 | 9 | class ChangeLayout(MelColumnLayout): 10 | def __init__( self, parent ): 11 | frame = MelFrameLayout( self, l='Change Ik/Fk', cll=True, cl=False ) 12 | ChangeIkFkLayout( frame ) 13 | 14 | frame = MelFrameLayout( self, l='Change Parent', cll=True, cl=True ) 15 | ChangeParentLayout( frame ) 16 | 17 | frame = MelFrameLayout( self, l='Change Rotation Order', cll=True, cl=True ) 18 | ChangeRoLayout( frame ) 19 | 20 | 21 | class ChangeWindow(BaseMelWindow): 22 | WINDOW_NAME = 'changeTool' 23 | WINDOW_TITLE = 'Change Tools' 24 | 25 | DEFAULT_SIZE = 300, 250 26 | DEFAULT_MENU = 'Help' 27 | FORCE_DEFAULT_SIZE = True 28 | 29 | def __init__( self ): 30 | ChangeLayout( self ) 31 | self.show() 32 | 33 | 34 | #end 35 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/constants.py: -------------------------------------------------------------------------------- 1 | 2 | from cgm.lib.zoo.zooPy.vectors import Matrix 3 | 4 | ROTATE_ORDER_STRS = "xyz", "yzx", "zxy", "xzy", "yxz", "zyx" 5 | MATRIX_ROTATION_ORDER_CONVERSIONS_TO = Matrix.ToEulerXYZ, Matrix.ToEulerYZX, Matrix.ToEulerZXY, Matrix.ToEulerXZY, Matrix.ToEulerYXZ, Matrix.ToEulerZYX 6 | 7 | #end 8 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/devTestUI.py: -------------------------------------------------------------------------------- 1 | 2 | from cgm.lib.zoo.zooPy.misc import removeDupes 3 | from cgm.lib.zoo.zooPy.devTest import TEST_CASES, runTestCases 4 | 5 | from .baseMelUI import * 6 | 7 | 8 | class DevTestLayout(MelVSingleStretchLayout): 9 | def __init__( self, parent, *a, **kw ): 10 | MelVSingleStretchLayout.__init__( self, parent, *a, **kw ) 11 | 12 | self.UI_tests = UI_tests = MelObjectScrollList( self, ams=True ) 13 | self.UI_run = UI_run = MelButton( self, l='Run Tests', c=self.on_test ) 14 | 15 | for testCls in TEST_CASES: 16 | UI_tests.append( testCls ) 17 | 18 | self.setStretchWidget( UI_tests ) 19 | self.layout() 20 | 21 | ### EVENT HANDLERS ### 22 | def on_test( self, *a ): 23 | ''' 24 | run the selected tests - the modules are reloaded before running the tests so 25 | its easy to iterate when writing the tests 26 | ''' 27 | runTestCases( self.UI_tests.getSelectedItems() ) 28 | 29 | 30 | class DevTestWindow(BaseMelWindow): 31 | WINDOW_NAME = 'devTestWindow' 32 | WINDOW_TITLE = 'Maya Devtest Runner' 33 | 34 | DEFAULT_MENU = None 35 | DEFAULT_SIZE = 300, 300 36 | FORCE_DEFAULT_SIZE = True 37 | 38 | def __init__( self ): 39 | BaseMelWindow.__init__( self ) 40 | 41 | DevTestLayout( self ) 42 | self.show() 43 | 44 | 45 | #end 46 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/poseSymIcons.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooPyMaya/poseSymIcons.xcf -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/poseSym_match.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooPyMaya/poseSym_match.png -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/poseSym_swap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/lib/zoo/zooPyMaya/poseSym_swap.png -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/resetAttrs.py: -------------------------------------------------------------------------------- 1 | 2 | from . import apiExtensions 3 | 4 | from maya.cmds import * 5 | from cgm.lib.zoo.zooPy.misc import removeDupes 6 | 7 | 8 | def resetAttrs( obj, skipVisibility=True ): 9 | ''' 10 | simply resets all keyable attributes on a given object to its default value 11 | great for running on a large selection such as all character controls... 12 | ''' 13 | 14 | #obj = apiExtensions.asMObject( obj ) 15 | attrs = listAttr( obj, k=True, s=True, m=True ) or [] 16 | if skipVisibility: 17 | if 'visibility' in attrs: 18 | attrs.remove( 'visibility' ) 19 | 20 | if not attrs: 21 | return 22 | 23 | selAttrs = channelBox( 'mainChannelBox', q=True, sma=True ) or channelBox( 'mainChannelBox', q=True, sha=True ) 24 | 25 | for attr in attrs: 26 | 27 | #if there are selected attributes AND the current attribute isn't in the list of selected attributes, skip it... 28 | if selAttrs: 29 | attrShortName = attributeQuery( attr, n=obj, shortName=True ) 30 | if attrShortName not in selAttrs: 31 | continue 32 | 33 | default = 0 34 | 35 | try: 36 | default = attributeQuery( attr, n=obj, listDefault=True )[ 0 ] 37 | except RuntimeError: pass 38 | 39 | attrpath = '%s.%s' % (obj, attr) 40 | if not getAttr( attrpath, settable=True ): 41 | continue 42 | 43 | #need to catch because maya will let the default value lie outside an attribute's 44 | #valid range (ie maya will let you creat an attrib with a default of 0, min 5, max 10) 45 | try: 46 | setAttr( attrpath, default ) 47 | except RuntimeError: pass 48 | 49 | 50 | def resetAttrsForSelection(): 51 | for obj in ls( sl=True ) or []: 52 | resetAttrs( obj ) 53 | 54 | 55 | #end 56 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/rigPrimitives.py: -------------------------------------------------------------------------------- 1 | 2 | import sys 3 | from . import skeletonBuilder 4 | from . import baseRigPrimitive 5 | 6 | from cgm.lib.zoo.zooPy.path import Path 7 | from .skeletonBuilder import * 8 | from .baseRigPrimitive import * 9 | 10 | RIG_PART_SCRIPT_PREFIX = 'rigPrim_' 11 | 12 | 13 | ### !!! DO NOT IMPORT RIG SCRIPTS BELOW THIS LINE !!! ### 14 | 15 | def _iterRigPartScripts(): 16 | for f in Path( __file__ ).up().files(): 17 | if f.hasExtension( 'py' ): 18 | if f.name().startswith( RIG_PART_SCRIPT_PREFIX ): 19 | yield f 20 | 21 | def _importRigPrimitiveScripts(): 22 | for f in _iterRigPartScripts(): 23 | __import__( f.name(), globals() ) 24 | 25 | _importRigPrimitiveScripts() 26 | 27 | def _setupSkeletonPartRigMethods(): 28 | ''' 29 | sets up the rig method associations on the skeleton parts. This is a list on each skeleton part containing 30 | the rigging methods that are compatible with that skeleton part 31 | ''' 32 | 33 | _rigMethodDict = {} 34 | for cls in RigPart.GetSubclasses(): 35 | try: 36 | assoc = cls.SKELETON_PRIM_ASSOC 37 | except AttributeError: continue 38 | 39 | if assoc is None: 40 | continue 41 | 42 | for partCls in assoc: 43 | if partCls is None: 44 | continue 45 | 46 | try: 47 | _rigMethodDict[ partCls ].append( (cls.PRIORITY, cls) ) 48 | except KeyError: 49 | _rigMethodDict[ partCls ] = [ (cls.PRIORITY, cls) ] 50 | 51 | for partCls, rigTypes in list(_rigMethodDict.items()): 52 | rigTypes.sort() 53 | rigTypes = [ rigType for priority, rigType in rigTypes ] 54 | partCls.RigTypes = rigTypes 55 | 56 | _setupSkeletonPartRigMethods() 57 | 58 | 59 | #end 60 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/skeletonBuilder.py: -------------------------------------------------------------------------------- 1 | 2 | import sys 3 | from . import baseSkeletonBuilder 4 | 5 | from cgm.lib.zoo.zooPy.path import Path 6 | from .baseSkeletonBuilder import * 7 | 8 | SKELETON_PART_SCRIPT_PREFIX = 'skeletonPart_' 9 | 10 | _LOAD_ORDER = 'spine', 'head', 'arm', 'hand', 'leg' 11 | 12 | 13 | def _iterSkeletonPartScripts(): 14 | for f in Path( __file__ ).up().files(): 15 | if f.hasExtension( 'py' ): 16 | if f.name().startswith( SKELETON_PART_SCRIPT_PREFIX ): 17 | yield f 18 | 19 | def _importSkeletonPartScripts(): 20 | for f in _iterSkeletonPartScripts(): 21 | __import__( f.name(), globals() ) 22 | 23 | _importSkeletonPartScripts() 24 | 25 | #end 26 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/skeletonBuilderPresets.py: -------------------------------------------------------------------------------- 1 | 2 | from .baseSkeletonPreset import * 3 | 4 | 5 | #end 6 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/skeletonPart_spine.py: -------------------------------------------------------------------------------- 1 | 2 | from .baseSkeletonBuilder import * 3 | 4 | 5 | class Spine(SkeletonPart): 6 | HAS_PARITY = False 7 | 8 | @classmethod 9 | def _build( cls, parent=None, count=3, direction='y', **kw ): 10 | idx = kw[ 'idx' ] 11 | partScale = kw[ 'partScale' ] 12 | 13 | parent = getParent( parent ) 14 | directionAxis = Axis.FromName( direction ) 15 | 16 | allJoints = [] 17 | prevJoint = str( parent ) 18 | posInc = float( partScale ) / 2 / (count + 2) 19 | moveList = list( directionAxis.asVector() * posInc ) 20 | for n in range( count ): 21 | j = createJoint( 'spine%s%d' % ('' if idx == 0 else '%d_' % idx, n+1) ) 22 | cmd.parent( j, prevJoint, relative=True ) 23 | move( moveList[0], moveList[1], moveList[2], j, r=True, ws=True ) 24 | allJoints.append( j ) 25 | prevJoint = j 26 | 27 | jointSize( j, 2 ) 28 | 29 | return allJoints 30 | def _align( self, _initialAlign=False ): 31 | for n, item in enumerate( self[ :-1 ] ): 32 | alignAimAtItem( item, self[ n+1 ] ) 33 | 34 | #if there is a head part parented to this part, then use it as a look at for the end joint 35 | childParts = self.getChildParts() 36 | hasHeadPartAsChild = False 37 | headPart = None 38 | 39 | HeadCls = SkeletonPart.GetNamedSubclass( 'Head' ) or type( None ) 40 | for p in childParts: 41 | if isinstance( p, HeadCls ): 42 | headPart = p 43 | break 44 | 45 | if headPart is None: 46 | autoAlignItem( self.end ) 47 | else: 48 | alignAimAtItem( self.end, headPart.base ) 49 | 50 | 51 | #end 52 | -------------------------------------------------------------------------------- /cgm/lib/zoo/zooPyMaya/skinCluster.py: -------------------------------------------------------------------------------- 1 | from .meshUtils import * 2 | 3 | 4 | #end -------------------------------------------------------------------------------- /cgm/lib/zoo/zooToolbox.mel: -------------------------------------------------------------------------------- 1 | 2 | 3 | global proc zooToolbox() { 4 | python( "import zooToolbox; zooToolbox.ToolboxWindow()" ); 5 | } 6 | 7 | 8 | //zoo.end 9 | -------------------------------------------------------------------------------- /cgm/mel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/mel/__init__.py -------------------------------------------------------------------------------- /cgm/mel/autoTangent.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/mel/autoTangent.mel -------------------------------------------------------------------------------- /cgm/mel/cgmPuppetKeyMM.mel: -------------------------------------------------------------------------------- 1 | global proc cgmPuppetKeyMM() { 2 | python("from cgm.core.tools.markingMenus import cgmPuppetKey;reload(cgmPuppetKey);cgmPuppetKey.run()"); 3 | } 4 | 5 | 6 | global proc cgmPuppetKeyMMKillUI () { 7 | python("cgmPuppetKey.killUI();"); 8 | } 9 | -------------------------------------------------------------------------------- /cgm/mel/cgmSetKeyMM.mel: -------------------------------------------------------------------------------- 1 | global proc cgmSetKeyMM() { 2 | python("from cgm.tools.markingMenus import cgmSetKey;reload(cgmSetKey);cgmSetKey.run()"); 3 | } 4 | 5 | 6 | global proc cgmSetKeyMMKillUI () { 7 | python("cgmSetKey.killUI();"); 8 | } 9 | -------------------------------------------------------------------------------- /cgm/mel/cgmSetToolsMM.mel: -------------------------------------------------------------------------------- 1 | global proc cgmSetToolsMM() { 2 | python("from cgm.tools.markingMenus import cgmSetMenu;reload(cgmSetMenu);cgmSetMenu.run()"); 3 | } 4 | 5 | global proc cgmSetToolsMMKillUI() { 6 | python("cgmSetMenu.killUI()"); 7 | } 8 | 9 | /* 10 | global proc cgmSetToolsMM() { 11 | python("from cgm.tools.markingMenus import cgmSetMenu;reload(cgmSetMenu);cgmSetMenu.run()"); 12 | } 13 | 14 | global proc cgmSetToolsMMKillUI() { 15 | python("cgmSetMenu.killUI()"); 16 | } -------------------------------------------------------------------------------- /cgm/mel/cgmSnapMM.mel: -------------------------------------------------------------------------------- 1 | global proc cgmSnapMM() { 2 | python("from cgm.tools.markingMenus import cgmSnap;reload(cgmSnap);cgmSnap.run()"); 3 | } 4 | 5 | global proc cgmSnapMMKillUI() { 6 | python("cgmSnap.killUI()"); 7 | } -------------------------------------------------------------------------------- /cgm/mel/cometJointOrient.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/mel/cometJointOrient.mel -------------------------------------------------------------------------------- /cgm/mel/jbGraphSetDrivenAttribute.mel: -------------------------------------------------------------------------------- 1 | /* 2 | TITLE: jbGraphSetDrivenAttribute 3 | VERSION: 1.0 4 | AUTHOR:Josh Burton 5 | DATE: October 26, 2007 6 | 7 | DESCRIPTION: 8 | Script for use with setting up set driven key poses. Sometimes you wanna see all the curves 9 | of one attribute in the graph editor and not manually select them. 10 | 11 | HOW TO USE: 12 | 1. Select an attribute 13 | 2. Run script 14 | 15 | LIMITATIONS: 16 | - Select an attribute with set driven keys connected 17 | 18 | HISTORY: 19 | 10.26.07 - BIRTH! 20 | 21 | */ 22 | 23 | global proc jbGraphSetDrivenAttribute() { 24 | global string $gChannelBoxName; 25 | string $selected[] = `ls -sl`; 26 | string $selAttr[] = `channelBox -q -sma $gChannelBoxName`; 27 | string $fullAttr = $selected[0] + "." + $selAttr[0]; 28 | select `listConnections -p true $fullAttr`; 29 | } 30 | jbGraphSetDrivenAttribute; 31 | GraphEditor; 32 | 33 | -------------------------------------------------------------------------------- /cgm/mel/jbMirrorSelectedJoints.mel: -------------------------------------------------------------------------------- 1 | global proc jbMirrorSelectedJoints () { 2 | $jointsToMirror = `ls -sl -type joint`; 3 | for($joint in $jointsToMirror) { 4 | mirrorJoint -myz -sr "Left" "Right" $joint; 5 | } 6 | } 7 | jbMirrorSelectedJoints; 8 | -------------------------------------------------------------------------------- /cgm/mel/tweenMachine.mel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/mel/tweenMachine.mel -------------------------------------------------------------------------------- /cgm/plugins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/plugins/__init__.py -------------------------------------------------------------------------------- /cgm/projects/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/projects/__init__.py -------------------------------------------------------------------------------- /cgm/projects/lbs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/projects/lbs/__init__.py -------------------------------------------------------------------------------- /cgm/projects/mk1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/projects/mk1/__init__.py -------------------------------------------------------------------------------- /cgm/projects/morpheusForUnity/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/projects/morpheusForUnity/__init__.py -------------------------------------------------------------------------------- /cgm/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/tools/__init__.py -------------------------------------------------------------------------------- /cgm/tools/lib/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/tools/lib/__init__.py -------------------------------------------------------------------------------- /cgm/tools/markingMenus/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjburton/cgmToolsPy3/423ea04251d10d07c8a8f0e3016fe95ef422094d/cgm/tools/markingMenus/__init__.py -------------------------------------------------------------------------------- /cgmToolbox.mel: -------------------------------------------------------------------------------- 1 | global proc cgmToolbox() { 2 | python( "import importlib;import cgmToolbox;importlib.reload(cgmToolbox);" ); 3 | } 4 | 5 | --------------------------------------------------------------------------------