Giter Club home page Giter Club logo

gt-tools's Introduction

GitHub contributors GitHub language count GitHub last commit GitHub forks GitHub stars GitHub issues GitHub license GitHub stars

Description

This is my collection of scripts for Autodesk Maya – These scripts were created with the aim of automating, enhancing or simply filling the missing details of what I find lacking in Maya.

After installing or running the script collection, you’ll find a pull-down menu that provides easy access to a variety of tools and utilities. This menu contains sub-menus that have been organized to contain related tools, for example: modeling, rigging, utilities, etc…

For help on how to use these scripts, click on the “Help” button at the top right of their window (within Maya) or check their documentation by going to the docs folder. For changelog see the releases page.

All of these items are supplied as is. You alone are solely responsible for any issues. Use at your own risk. Hopefully these scripts are helpful to you as they are to me.

Note: Python 2 is no longer supported. If you want to still use an older versions of Maya, make sure to use a GT-Tools version below "3.0.0" for compatibility.

Package tested using Autodesk Maya 2022, 2023 and 2024 (Windows 11)

Organization

  • docs: Documentation on installation, usage, and troubleshooting of the package and its tools.
  • gt.tools: The "tools" directory contains separate folders, each representing a distinct tool.
  • gt.ui: The "ui" module provides utilities for user interface operations.
  • gt.utils: The "utils" module is a set of reusable functions that are not tied to any specific tool.
  • tests: Package unittests for tools, ui and utilities. See CONTRIBUTING for more details.

Setup (Install, Uninstall, Run Only)

TL;DR: Download and extract the files; Drag and drop the file "setup_drag_drop_maya.py" onto the Maya viewport; Select the option "Install", "Uninstall" or "Run Only"; Enjoy!

GT Tools Installation Tutorial

This script collection comes with an auto setup tool ("setup_drag_drop_maya.py") to call it drag and drop the file on your Maya viewport. From the setup window you can "Install", "Uninstall" or "Run Only".
Here is how you do it in more details:

  1. Open Maya (in case it's closed).
  2. Download the latest release (or clone this repository).
  3. Un-zip (Decompress) the file you downloaded. (the setup won't work if it's still compressed)
  4. Drag and drop "setup_drag_drop_maya.py" on to your Maya viewport.
  5. An user interface with the setup options will open.
  6. Select the desired operation. E.g. "Install", "Uninstall", or "Run Only"
  7. Enjoy!

After installing, you can delete the downloaded/extracted files (as they have already been copied)

Setup Window

GT Tools Installation Setup Window

  1. Install: Copies the files to the installation path and loads (reloads) the package.
  2. Uninstall: Deletes the files from the installation path and unloads the package.
  3. Run Only: "One time use only"; Loads tools from current location without copying files.

Checksum Verification

When installing it for the first time, Maya might show you a small dialog window saying "UserSetup Checksum Verification", you can confirm it with a "Yes". This window is only letting you know that the "userSetup.mel" script was modified. This is a security feature from Autodesk that is used to tell the user that the startup script was modified. This check is used to prevent infected scenes from modifying the startup script without the user knowing. In our case, we did it deliberately as part of the installation process, so you can just confirm it.

Run Only

The setup window offers the option to run the tools without installing them. To do this, follow the same drag and drop steps and click on "Run Only" instead of "Install". This is going to load the tools from the location you have them, allowing you to run it one time only.

Updating

Simply install it again. The auto setup will handle the file changes.
If updating a major version, it's recommended that you uninstall it first before installing it again. This will eliminate any unnecessary files.
In case updating it manually, make sure to overwrite (replace) the files when moving them.

Contributors

If you'd like to contribute, see the CONTRIBUTING file for a detailed explanation on how to do that.
Pull requests are warmly welcome.

Looking for other ways to contribute? You could buy me a coffee! ☕ or use the Github sponsor ❤️ options!
This is definitely a huge motivation boost! 🤩

Licensing

The MIT License 2020 - Guilherme Trevisan

gt-tools's People

Contributors

trevisangmw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gt-tools's Issues

Create "gt_color_manager"

  • Script to quickly set the outliner color or viewport color of many objects at the same time.
  • Option to auto color based on naming.
  • Option to color transform vs shape node.
  • Option to color based on type.
  • A few preset colors.
  • In view feedback of how many objects were colored.

"gt_transfer_transforms" should ignore locked attributes

Add a check to see if attribute is locked before changing it.
Give user a warning or ignore it when this is the case.
Image below shows that the script stops execution when attribute is locked (forcing the user to uncheck locked channels, which is not ideal)
image

Create "gt_rigger_facial_logic.py"

  • Create a facial auto rigger.
  • Generate sticky lips using curves and ribbons
  • Add button to auto attach to "gt_auto_biped_rigger"
  • Use loader buttons to load facial edge flow
  • Use loaded edge to extract vertices and create all necessary controls and joints

Auto Bipped Rigger: lookdevKit plugin not loaded by default

Make sure lookdevKit plugin is loaded. I was getting errors when building.

Warning: Unrecognized node type 'floatConstant'; preserving node information during this session.

Warning: The source attribute 'left_leg_strechyInactive_value.outFloat' cannot be found.

I just added this to the gt_auto_biped_rigger.py:

# Main Dialog ============================================================================
def build_gui_auto_biped_rig():
    '''  Creates the main GUI for GT Auto Biped Rigger '''

    if not cmds.pluginInfo("lookdevKit", query=True, loaded=True):
        cmds.loadPlugin("lookdevKit", quiet=True)

Thanks. Keep it up!

Create "gt_path_manager.py"

  • Use QT to populate a table with all nodes containing paths.
  • Add a button to find files and update path according to file existence.
  • Add loading bar for when searching for files.
  • Add icons according to node types.

Update biped leg autorigger

"gt_create_ctrl_simple_IK_leg.py" desperately needs an update. It's currently unintuitive and easily failing.

  • It should create the entire rig for a biped leg (do not assume FK exists, but check for it)
  • Add controls for heel, toe and ball roll.
  • Auto determine the direction of the polar vector.
  • Update "gt_make_stretchy_leg.py" to generate all measure nodes already connected with the rest of the rig (or with annotations about what to do)
  • Let the user know in case non-unique elements are found.

Maya to Discord not working

Error message: Error connecting to webhook.

Tried different settings and servers, tried discord.com and discordapp.com, neither are working.

Update "Check for Updates" button

  • It should compare current version with latest github release and offer to update/download newest version if the online one is higher.

[FEAT]: Create a time-lapse viewport recorder

  • Take screenshots of a selected viewport (give an option to tear off a new viewport to have an specific camera for the time-lapse)
  • Use threading to count down, then save an image after the countdown is done. Repeat till the user stops it or an error occurs.
  • Give option to select where the output (screenshots) should be stored.
  • Manage the screenshots so they don't overwrite one another.

Create "docs" folder

  • Create a folder with a "README.md" explaining how to use every script.
  • Include an alternative way to open it (HTML?) so the user can view it after downloading the script package.
  • Include small gifs showing every script GUI.

Add facial and corrective joints setup to biped rigger GUI

  • Add proxy creation and auto rigging buttons to biped rigger GUI
  • Add validation to create facial/correct proxy and controls
  • Add validation to merge functions (facial/correct -> biped/base)
  • Update documentation to include all new changes
  • Add shortcut to biped rigger interface to GT Tools drop-down menu

Create Render Calculator Script

  • Calculate render time based on average render time vs number of machines vs number of frames.
  • Output Hours, Minutes, Weeks.
  • Option to import current render settings.
  • Option to use multiple render times to calculate average (for when using many machines).
  • Buttons to start batch render, cancel render and attempt to open output folder.

Create fSpy importer

  • A script that parses the JSON file created through fSpy and creates a camera inside Maya
  • Compute the focal length for the camera (default Maya 35mm)
  • Add options to auto convert +Z to +Y and camera rig.

Create script to convert blendshapes into attributes

  • GUI to load blend shape node from selected geo (cycle through found blend shape nodes)
  • GUI to load target control (usually a curve)
  • Text field to filter undesired strings
  • Option to ignore blend shapes with connections

Import takes too long to load

About "gt_replace_reference_paths.py"

-It takes too long to import "pymel" as it reloads plugins. Find another solution that doesn't require "pymel"

Create a startup booster script

  • A script that automatically unchecks the autoload for a few heavy plugins. (Making Maya start faster)
  • It should also have an option to auto create a shelf button to load missing plugins. (A button per plugin)

Update "gt_check_for_updates"

  • Create a function to auto check for updates every X amount of days. Use "optionVars" to store date.
  • Give the user the option to deactivate auto updates.

Issues with "Check for Updates"

  • Text is green even when there is an error.
  • Link should show only latest release.
  • The "Update" should be disabled after refreshing with an updated version.

Create combine and separate curves

  • Simple functions to quickly combine/separate selected curves. (Much like the combine/separate geo functions, but for curves)
  • Check if only curves were selected, then move all their shapes to a single transform.
  • If multiple shapes found, separate curves into new transforms.

Add utilities to "gt_auto_biped_rigger"

  • Auto create character definition for HumanIK and definition
  • Toggle the visibility of all joint labels
  • Add a button to create a seamless FK/IK switch shelf button.

Create "gt_custom_attr_manager"

  • Textfield with list of affected attributes.
  • Hide/unhide attributes for selected elements.
  • Lock/unlock attributes for selected elements.
  • Auto create a list of attributes for selected elements.
  • Auto delete a list of attributes for selected elements.
  • Maybe attempt to change the order of the attributes.

Create "gt_voxelize_geo.py"

  • Script for creating a voxelized version out of a model.
  • Option to extract color out of textures.
  • Resolution to determine how many voxels to generate.

GT Auto Biped Rigger generating flipped ik feet depending on the angle of the leg

Discussed in #57

Originally posted by farhorizons11 August 7, 2021
Hello, I'm having this issue hope you can take a look.
as you can see the proxy is perfectly mirrored (1st image)
and then this happens when I click create Rig ( notice the right foot) (2nd image)
however, when I switch from IK to FK, it's normal again (3rd image)

unknown
unknown (1)
unknown (2)
This happens almost everytime I adjust the proxy before creating the rig

Prevent installation script from overwriting userSetup.mel

(Original issue had a different title, but that wasn't necessarily the problem)
Currently, the auto-installation script will overwrite userSetup.mel located in C:/Users/%username%/maya/20xx/scripts . Because of this, anything that was added within that file isn't registered any more in maya -- a bit of an inconvenience.

Maybe it would be more feasible if the script were to just append source "gt_tools_menu.mel"; to a new line if the file already exists?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.