Python scripting tools in Maya
Below are some of the tools I created in order to assist with a more efficient pipeline during production. I used Python to script as that 's the the language I mostly familiar with. As for UI design, I tried to make it intuitive and simple for users to understand. Sometimes I coded directly with Maya's commands or Qt framework through PySide2.
Renamer Tool
Problem: Renaming multiple objects of meshes or groups could be troublesome, since it's an obvious and repetitive tasks. There are a lot of renamer scripts existing in the public, however, I decided to create the tool from scratch and figured out what's the must need and more crucial function that could really benefit this process.
Solution: The main issue is to rename the objects in one click with different usual styles of renaming. The tool should cater the need of replace a certain word in the name, add prefix, add suffix, rename as all upper/lower case and rename with start sequence number and padding. I also find out that it might be useful to have a one click button to rename all the children from a group name.
Solution: The main issue is to rename the objects in one click with different usual styles of renaming. The tool should cater the need of replace a certain word in the name, add prefix, add suffix, rename as all upper/lower case and rename with start sequence number and padding. I also find out that it might be useful to have a one click button to rename all the children from a group name.
Keyframe Manipulating Tool
Problem: When producing short film Sirena, I realized a lot of time we are trying to figure out the time of how Sirena drops down to the water. And from my personal experience, in order to insert a key normally we have to move all the key behinds by dragging the range on the timeline, however, the timeline in Maya is sometimes hard to drag. Therefore is there a simple way to insert key without having to manipulating the keys behind?
Solution: In order to simplified the manipulation of a bunch of keyframes, the tool is designed to mainly retime all the keyframes in average which is the absolute retiming. In this way, animator does not need to move key by key to make them the same gap. Another insert relative keyframe is also designed to help animator to move the keys behind where he/she wants to insert directly. The move to next is an option for user to choose which it will highlight and move to another key once the last operation is done. Referenced Chris Zurbrigg's patreon tutorial for UI design with PySide2.
Solution: In order to simplified the manipulation of a bunch of keyframes, the tool is designed to mainly retime all the keyframes in average which is the absolute retiming. In this way, animator does not need to move key by key to make them the same gap. Another insert relative keyframe is also designed to help animator to move the keys behind where he/she wants to insert directly. The move to next is an option for user to choose which it will highlight and move to another key once the last operation is done. Referenced Chris Zurbrigg's patreon tutorial for UI design with PySide2.
Wire Generator
Problem: In set dressing or 3D modeling, sometimes it is important to avoid repetitiveness but creating something similar to each other. While I am set dressing for a small project in Carnegie Mellon, I create this script for easy generate wire between telephone poles.
Solution: The script could create multiple natural-look wires in one click to avoid time consuming situation. The randomness and slack amount decides the randomness of generating the wire and the drop extent of the wire. If both of the values are set to higher value, there will be more diverse look wires and the wire will drop lower.
Solution: The script could create multiple natural-look wires in one click to avoid time consuming situation. The randomness and slack amount decides the randomness of generating the wire and the drop extent of the wire. If both of the values are set to higher value, there will be more diverse look wires and the wire will drop lower.