Files
MetaBox/Scripts/Modeling/Manage/NewTask.py
2025-04-17 04:52:48 +08:00

239 lines
8.4 KiB
Python

#!/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()