120 lines
4.9 KiB
Python
120 lines
4.9 KiB
Python
import importlib
|
|
import sys
|
|
import maya.cmds as cmds
|
|
import os
|
|
import dat
|
|
importlib.reload(dat)
|
|
from os import path as ospath
|
|
from sys import path as syspath
|
|
from sys import platform
|
|
from dat import ROOT_DIR
|
|
from dat import MAIN_PATH
|
|
from dat import MAYA_VERSION
|
|
from dat import dnaPath
|
|
from dat import body_type
|
|
|
|
ROOT_LIB_DIR = f"{ROOT_DIR}/lib/Maya{MAYA_VERSION}"
|
|
if platform == "win32":
|
|
LIB_DIR = f"{ROOT_LIB_DIR}/windows"
|
|
elif platform == "linux":
|
|
LIB_DIR = f"{ROOT_LIB_DIR}/linux"
|
|
else:
|
|
raise OSError(
|
|
"OS not supported, please compile dependencies and add value to LIB_DIR"
|
|
)
|
|
|
|
# Adds directories to path
|
|
syspath.insert(0, ROOT_DIR)
|
|
sys.path.append(f"{ROOT_DIR}/examples")
|
|
syspath.insert(0, LIB_DIR)
|
|
sys.path.append(MAIN_PATH)
|
|
import MetaPipeFree
|
|
import BatchImport
|
|
import BuildBody_drv
|
|
import Export_FBX
|
|
import MetaTrans
|
|
import Prepare
|
|
importlib.reload(MetaPipeFree)
|
|
|
|
def studio_load_dna():
|
|
if not cmds.objExists('wpGRP'):
|
|
MetaPipeFree.loadimport(ROOT_DIR)
|
|
def repExtra(repBase, tartar):
|
|
# Define the base mesh and target mesh
|
|
base_mesh = cmds.duplicate(repBase)
|
|
cmds.rename(base_mesh, repBase + "_CS")
|
|
target_mesh = tartar
|
|
cmds.select([repBase + "_CS", target_mesh], r=True)
|
|
cmds.CreateWrap()
|
|
|
|
repExtra('cartilage_lod0_mesh', 'head_lod0_mesh')
|
|
repExtra('saliva_lod0_mesh', 'teeth_lod0_mesh')
|
|
|
|
head_mesh = 'head_lod0_mesh'
|
|
eye_meshes = ['eyeRight_lod0_mesh', 'eyeLeft_lod0_mesh'] # Replace with actual eye mesh names
|
|
|
|
# Create a group
|
|
group_name = 'wpGRP'
|
|
if not cmds.objExists(group_name):
|
|
cmds.group(em=True, name=group_name)
|
|
|
|
# Parent the head mesh and eye meshes to the group
|
|
cmds.parent(head_mesh, eye_meshes, group_name)
|
|
cmds.parent(group_name, "head_lod0_grp")
|
|
|
|
repExtra('eyeshell_lod0_mesh', 'wpGRP')
|
|
repExtra('eyeEdge_lod0_mesh', 'head_lod0_mesh')
|
|
repExtra('eyelashes_lod0_mesh', 'head_lod0_mesh')
|
|
cmds.warning("Loaded Succesfully!")
|
|
else:
|
|
cmds.warning("Already Loaded!")
|
|
def studio_save_dna(body_type):
|
|
BuildBody_drv.LODS(body_type)
|
|
MetaPipeFree.saveimport(ROOT_DIR)
|
|
|
|
#DNA Calib File Path
|
|
dnaCalibPath=ROOT_DIR
|
|
CHARACTER_NAME = os.path.basename(dnaPath).split(".")[0]
|
|
MetaPipeFree.codeblock (dnaPath, ROOT_DIR, CHARACTER_NAME)
|
|
def show_dna_edit_window():
|
|
studio_window_name = "MetaPipe Studio 2023 1.3.0"
|
|
if cmds.window(studio_window_name, exists = True):
|
|
cmds.deleteUI(studio_window_name)
|
|
cmds.window(studio_window_name, title=studio_window_name, width=350, height=550, sizeable=False, resizeToFitChildren=True)
|
|
|
|
color = (0.164, 0.384, 0) # RGB Values
|
|
colorbuttons = (.2, .2, .2)
|
|
layout = cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1,150)], columnSpacing=[(1,100)], backgroundColor=(0.1,0.1,0.1))
|
|
|
|
cmds.text(label="", height = 25)
|
|
cmds.text(label="METAPIPE STUDIO 1.3.0", height = 40, font="boldLabelFont")
|
|
cmds.text(label="", height = 15)
|
|
cmds.text(label="Metahuman DNA", height = 20)
|
|
text_dna = cmds.textField(text=dnaPath)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Update", command=lambda x: MetaPipeFree.update_dna_dir(text_dna, ROOT_DIR), backgroundColor=color, height= 20)
|
|
cmds.text(label="", height = 20)
|
|
cmds.button(label="Open DNA Viewer", command=lambda x: MetaPipeFree.OpenDNA(ROOT_DIR), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Load DNA", command=lambda x: studio_load_dna(), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Batch Import", command=lambda x: BatchImport.FileBatchImport(), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Joint Trns", command=lambda x: MetaTrans.joint_transformation(), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Save Dna", command=lambda x: studio_save_dna(body_type), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Prepare To Export", command=lambda x: MetaPipeFree.prepare_export(), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Build Body", command=lambda x: BuildBody_drv.build_body(ROOT_DIR, body_type), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Material Assign", command=lambda x: Prepare.matSet(), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.button(label="Export", command=lambda x: Export_FBX.export_fbx(dnaCalibPath), backgroundColor=colorbuttons, height= 40)
|
|
cmds.text(label="", height = 5)
|
|
cmds.text(label="ARTS AND SPELLS", height = 40, font="boldLabelFont")
|
|
|
|
cmds.showWindow()
|
|
|
|
#show_dna_edit_window()
|