#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2023/03/30 10:00 # @Author : Jerry Tsai # @Site : VIRTUOUS # @Software: Maya2022 # @Title : NewTask # @Version : Release 1.0 import maya.cmds as cmds import pymel.core as pm import importlib import os import sys # #importlib.reload(sys) sys.path.append("../..") sys.path.append("..") DockControl = 'DockControl' window_name = 'NewTask' window_title = 'NewTask' column_01 = 'NewTask' DefaultSubFolder = ["01_Brief", "02_MP", "02_MP/Screenshot", "03_HP", "03_HP/Screenshot", "04_LP", "04_LP/Screenshot", "05_Bake", "05_Bake/Screenshot", "05_Bake/HP&LP", "06_Texture", "06_Texture/Screenshot", "06_Texture/MeshMaps", "06_Texture/SP", "08_Engine", "08_Engine/Screenshot", "08_Engine/FBX", "08_Engine/Assets"] CharacterFolder = ["01_Brief", "02_MP", "02_MP/Screenshot", "03_HP", "03_HP/Screenshot", "04_LP", "04_LP/Screenshot", "05_Bake", "05_Bake/Screenshot", "05_Bake/HP&LP", "06_Texture", "06_Texture/Screenshot", "06_Texture/MeshMaps", "06_Texture/SP", "08_Engine", "08_Engine/Screenshot", "08_Engine/FBX", "08_Engine/Assets"] WeaponFolder = ["01_Brief", "02_MP", "02_MP/Screenshot", "03_HP", "03_HP/Screenshot", "04_LP", "04_LP/Screenshot", "05_Bake", "05_Bake/Screenshot", "05_Bake/HP&LP", "06_Texture", "06_Texture/Screenshot", "06_Texture/MeshMaps", "06_Texture/SP", "08_Engine", "08_Engine/Screenshot", "08_Engine/FBX", "08_Engine/Assets"] PropFolder = ["01_Brief", "02_MP", "02_MP/Screenshot", "03_HP", "03_HP/Screenshot", "04_LP", "04_LP/Screenshot", "05_Bake", "05_Bake/Screenshot", "05_Bake/HP&LP", "06_Texture", "06_Texture/Screenshot", "06_Texture/MeshMaps", "06_Texture/SP", "08_Engine", "08_Engine/Screenshot", "08_Engine/FBX", "08_Engine/Assets"] EnvironmentFolder = ["01_Brief", "02_MP", "02_MP/Screenshot", "03_HP", "03_HP/Screenshot", "04_LP", "04_LP/Screenshot", "05_Bake", "05_Bake/Screenshot", "05_Bake/HP&LP", "06_Texture", "06_Texture/Screenshot", "06_Texture/MeshMaps", "06_Texture/SP", "08_Engine", "08_Engine/Screenshot", "08_Engine/FBX", "08_Engine/Assets"] AnimationFolder = ["FBX", "Maya", "Mocap", "Reference", "Approved/FBX", "Approved/Maya"] RiggingFolder = ["Resource", "Resource/ma", "Resource/textures", "Rig", "Skin"] OtherFolder = ["01_Brief", "02_MP", "02_MP/Screenshot", "03_HP", "03_HP/Screenshot", "04_LP", "04_LP/Screenshot", "05_Bake", "05_Bake/Screenshot", "05_Bake/HP&LP", "06_Texture", "06_Texture/Screenshot", "06_Texture/MeshMaps", "06_Texture/SP", "08_Engine", "08_Engine/Screenshot", "08_Engine/FBX", "08_Engine/Assets"] # ??? def create(Workspace, TaskType, Project, Task, SubFolder): WorkspacePath = cmds.textFieldGrp(Workspace, q=True, text=True).replace("\\", "/") TaskTypePath = cmds.optionMenuGrp(TaskType, q=True, v=True).replace("\\", "/") ProjectPath = cmds.textFieldGrp(Project, q=True, text=True).replace("\\", "/") TaskPath = cmds.textFieldGrp(Task, q=True, text=True).replace("\\", "/") if TaskTypePath == "Character": SubFolder = CharacterFolder elif TaskTypePath == "Weapon": SubFolder = WeaponFolder elif TaskTypePath == "Prop": SubFolder = PropFolder elif TaskTypePath == "Environment": SubFolder = EnvironmentFolder elif TaskTypePath == "Animation": SubFolder = AnimationFolder elif TaskTypePath == "Rigging": SubFolder = RiggingFolder elif TaskTypePath == "Other": SubFolder = OtherFolder TaskPath = WorkspacePath + "/" + ProjectPath + "/" + TaskTypePath + "/" + TaskPath SubFolderPath = [TaskPath + "/" + i for i in SubFolder] def create_sub_folder(sub_folder_path): for i in sub_folder_path: if os.path.exists(i): pass else: os.makedirs(i) if os.path.exists(TaskPath): create_sub_folder(SubFolderPath) os.startfile(TaskPath) print("Task Path: ", TaskPath) else: os.makedirs(TaskPath) create_sub_folder(SubFolderPath) os.startfile(TaskPath) print("Task Path: ", TaskPath) def window_content(): SubFolder = DefaultSubFolder cmds.text(l='', h=5, bgc=[0.1, 0.15, 0.25]) cmds.text(l=u"««««««« ========== New Task ========== »»»»»»", h=30, bgc=[0.1, 0.15, 0.25]) cmds.text(l='', h=5, bgc=[0.1, 0.15, 0.25]) cmds.text("----------------------------------------------------------------------") cmds.text(l='', h=5) # ???????? cmds.text(" How to use:", align="left") cmds.text(" 1. Enter the work path, the default is “D:\\Workspace” .", align="left") cmds.text(" 2. Select the task type.", align="left") cmds.text(" 3. Enter the project name, the default is “Project01”", align="left") cmds.text(" 4. Enter the task name, the default is “Character_001”", align="left") cmds.text(u" 5. Click the “Create” button to complete", align="left") cmds.text("----------------------------------------------------------------------") cmds.text(l='', h=5) Workspace = cmds.textFieldGrp(label="Workspace : ", text="D:\\Workspace").replace("\\", "/") Project = cmds.textFieldGrp(label="ProjectName : ", text="Project_001") def change(*args): task_type_path = cmds.optionMenuGrp(TaskType, q=True, v=True) cmds.textFieldGrp(Task, e=True, text=task_type_path + "_001") TaskType = cmds.optionMenuGrp(label="TaskType : ", cc=change) cmds.menuItem(label="Character") cmds.menuItem(label="Weapon") cmds.menuItem(label="Prop") cmds.menuItem(label="Environment") cmds.menuItem(label="Animation") cmds.menuItem(label="Rigging") cmds.menuItem(label="Other") TaskTypePath = cmds.optionMenuGrp(TaskType, q=True, v=True) cmds.textFieldGrp(Project, q=True, text=True) Task = cmds.textFieldGrp(label="TaskName : ", text=TaskTypePath + "_001") cmds.text(l='', h=10) cmds.button(label="Create", c=lambda *args: create(Workspace, TaskType, Project, Task, SubFolder)) cmds.text(l='', h=10) class window_class(object): def __init__(self): self.win = None self.create_window() def create_window(self): global window_name global window_title global column_01 global DefaultSubFolder if pm.window(window_name, query=True, exists=True): pm.deleteUI(window_name) self.win = pm.window(window_name, title=window_title, sizeable=True) pm.columnLayout(adjustableColumn=True) window_content() pm.showWindow(self.win) if __name__ == "__main__": window_class()