Updated
This commit is contained in:
238
Scripts/Modeling/Manage/NewTask.py
Normal file
238
Scripts/Modeling/Manage/NewTask.py
Normal file
@ -0,0 +1,238 @@
|
||||
#!/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()
|
Reference in New Issue
Block a user