โจ๐ฌ ๐๐๐ฌ ๐๐๐ฅ๐๐ก๐๐ฃ๐ ๐๐๐ฅ: ๐๐๐ค๐ฌ๐๐ง๐ค๐๐ง๐๐จ๐จ๐ฝ๐๐ง ๐๐ ๐
Hello VFX & Animation Professionals! ๐
I'm thrilled to introduce a game-changing utility to elevate your Maya scripting workflowโshowProgressBar! ๐
In the fast-paced world of VFX and animation, efficient pipelines are crucial. showProgressBarย is designed to provide real-time progress updates directly within Maya, ensuring you stay informed without disrupting your creative flow. Whether you're running long simulations, rendering batches, or processing complex scenes, this tool keeps you in the loop effortlessly.
๐จ ๐๐ฃ๐ฉ๐ง๐ค๐๐ช๐๐๐ฃ๐ ๐๐ง๐ค๐๐ง๐๐จ๐จ๐ฝ๐๐ง๐๐
Our new UI, ProgressBarUI, is not just functional but also sleek and modern. Here's what it includes:
Progress Bar: Visually tracks the progress of your operations.
Status Text: Displays current action details.
Cancel Button: Allows you to abort the process if needed.
Agave Font: Consistent and stylish typography across all elements.
All UI elements are crafted using the elegant Agave font, ensuring a cohesive and professional look.
๐ ๏ธ๐ ๏ธ ๐จ๐๐ค๐ฌ๐๐ง๐ค๐๐ง๐๐จ๐จ๐ฝ๐๐ง (๐ข๐๐ฎ๐.๐๐ข๐๐จ Version):
##1 import maya.cmds as mc import time def showProgressBar(title, maxValue, message): """ Displays a progress bar within Maya to track long-running operations.
:param title: <str> The title of the progress window. :param maxValue: <int> The maximum value of the progress bar. :param message: <str> The initial status message. :return: <None> """ # Open the progress window mc.progressWindow(title=title, progress=0, status=message, isInterruptable=True)
for i in range(maxValue + 1): # Check if the user has canceled the operation if mc.progressWindow(query=True, isCancelled=True): mc.progressWindow(endProgress=True) print "Operation cancelled by user." return
# Update the progress window mc.progressWindow(edit=True, progress=i, status="Processing step {}/{}".format(i, maxValue))
# Simulate a long-running task time.sleep(0.05)
# Close the progress window upon completion mc.progressWindow(endProgress=True) print "Progress completed successfully." # Test function to demonstrate showProgressBar def test_showProgressBar(): showProgressBar(title="Processing...", maxValue=100, message="Starting processing...")
test_showProgressBar() |
๐จ๐๐ค๐ฌ๐๐ง๐ค๐๐ง๐๐จ๐จ๐ฝ๐๐ง (๐๐ฎ๐๐๐๐2 Version):
import maya.cmds as mc from PySide2 import QtWidgets, QtCore def showProgressBar(title, maxValue): """ Displays a progress bar within Maya to track long-running operations.
:param title: <str> The title of the progress window. :param maxValue: <int> The maximum value of the progress bar. :return: <tuple> (window, progressBar, cancelButton) """ window = QtWidgets.QWidget() window.setWindowTitle(title) window.setObjectName('ProgressStyleUI') window.setStyleSheet("font-family: 'Agave';") layout = QtWidgets.QVBoxLayout() progressBar = QtWidgets.QProgressBar() progressBar.setMaximum(maxValue) layout.addWidget(progressBar) statusLabel = QtWidgets.QLabel("Starting...") layout.addWidget(statusLabel) cancelButton = QtWidgets.QPushButton("Cancel") layout.addWidget(cancelButton) window.setLayout(layout) window.setFixedSize(300, 100) cancelButton.clicked.connect(lambda: mc.progressWindow(endProgress=True))
return window, progressBar, statusLabel if __name__ == "__main__": window, progressBar, statusLabel = showProgressBar("Processing...", 100) window.show() for i in range(101): mc.progressWindow(edit=True, progress=i, status="Processing frame {}".format(i)) progressBar.setValue(i) statusLabel.setText("Processing frame {}".format(i)) QtWidgets.QApplication.processEvents() # Simulate a long-running task QtCore.QThread.sleep(1) mc.progressWindow(endProgress=True) window.close() |
๐ ๐๐๐๐ฉ ๐จ๐๐ค๐ฌ๐๐ง๐ค๐๐ง๐๐จ๐จ๐ฝ๐๐ง ๐๐๐๐๐ง๐จ:
Real-Time Feedback: Monitor the progress of your scripts without leaving Maya.
User Control: Option to cancel ongoing processes, providing flexibility and control.
Seamless Integration: Built with Maya 2020 and Python 2.7 using PySide2, ensuring smooth performance and compatibility.
Stylish UI: Modern and trendy interface that enhances user experience.
๐ง ๐๐๐ฎ ๐ฝ๐๐ฃ๐๐๐๐ฉ๐จ:
โข ๐ Boost Efficiency: Keep track of script executions in real-time, minimizing downtime and maximizing productivity.
โข ๐ ๏ธ Enhanced Control: Easily manage and cancel processes without disrupting your workflow.
โข ๐ก Professional Appearance: A polished UI that aligns with industry standards, making your tools more appealing and user-friendly.
โข ๐ Scalable: Perfect for both simple tasks and complex, long-running operations within your pipeline.
I'm sharing showProgressBarย to help Maya developers and technical artists create more intuitive and efficient scripts. Say goodbye to uncertainty during script execution and hello to clear, in-context progress updates!
โจ Ready to Transform Your Workflow?ย โจ Reach out or comment below to see showProgressBar in action. Letโs take our Maya scripting to the next level together! ๐ช๐
#Maya #PythonScripting #MayaTools #VFX #3DAnimation #ScriptDevelopment #MayaDevelopment #Automation #WorkflowEnhancement #TechnicalArt #ScriptingTools
๐๐ช๐๐๐ช'๐จ ๐๐๐ฃ๐ ๐จ :
โข YouTube Channel: https://lnkd.in/gZyWJN_yโข Vimeo: https://vimeo.com/subbu118โข Creature Rigging: https://lnkd.in/gNpibPndโข Hyper Rig: https://www.hyper-rig.com
Comments