Compare commits
2 Commits
main
...
2.4.0_Free
Author | SHA1 | Date | |
---|---|---|---|
682f41beaa | |||
bf627a166b |
BIN
Icons/Close.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/Corrective (64).jpg
Normal file
After Width: | Height: | Size: 6.9 KiB |
1
Icons/Icons.mb
Normal file
BIN
Icons/JointButton.png
Normal file
After Width: | Height: | Size: 359 B |
BIN
Icons/JointButtonH.png
Normal file
After Width: | Height: | Size: 130 B |
BIN
Icons/JointButtonHPressed.png
Normal file
After Width: | Height: | Size: 132 B |
BIN
Icons/JointButtonSelected.png
Normal file
After Width: | Height: | Size: 334 B |
BIN
Icons/JointButtonSelected21.png
Normal file
After Width: | Height: | Size: 327 B |
BIN
Icons/MetaPipeLoading.jpg
Normal file
After Width: | Height: | Size: 179 KiB |
BIN
Icons/Metapipe Logo (64).jpg
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
Icons/Title1.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/Title2.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/Title3.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/Toggle.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UI LOGO.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
Icons/UIBODY.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
Icons/UIButton1.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton10.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton10Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton11.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton11Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton12.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton12Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton13.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton13Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton14.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton14Pressed.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
Icons/UIButton15.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton15Pressed.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton1Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton2.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton2Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton3.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton3Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton4.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
Icons/UIButton4Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton5.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton5Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton6.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton6Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton7.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
Icons/UIButton7Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton8.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton8Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButton9.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Icons/UIButton9Pressed.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Icons/UIButtonEmpty.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
Icons/UIButtonEmptyPressed.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
Icons/UIButtonEmptySRT.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIButtonEmptySRTPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UICover.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
Icons/UIGEOC.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGEOCPressed.png
Normal file
After Width: | Height: | Size: 300 B |
BIN
Icons/UIGeoall.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeobody.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeobodyPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeocartilage.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeocartilagePressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeocombined.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeocombinedPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeEdge.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeEdgePressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeLeft.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeLeftPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeRightPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyelashes.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyelashesPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeright.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeshell.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoeyeshellPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoflipflops.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoflipflopsPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeohead.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoheadPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeosaliva.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeosalivaPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoteeth.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIGeoteethPressed.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/UIHAND.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
Icons/UIHEAD.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
Icons/UISettings.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/Yup.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/Zup.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/center.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/freeze.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Icons/unlock.png
Normal file
After Width: | Height: | Size: 12 KiB |
1703
MetaPipeFree24.py
Normal file
93
README.md
@ -1,61 +1,52 @@
|
|||||||
#### 1 如果你有之前的版本,请将文件移至其他位置
|
### 1 - 从 "github.com/EpicGames/MetaHuman-DNA-Calibration" 下载 Epic Game's DNA Calibration "版本" 1.1.0
|
||||||
|
|
||||||
#### 2 现在 Maya 2022 和 2023 使用相同的 DNA Calibration
|
### 2 - 将文件路径设置为 C:\dna_calibration (推荐) 或其他位置。请记住该路径。
|
||||||
|
|
||||||
安装 DNA_Calibration 1.1.0 (https://github.com/EpicGames/MetaHuman-DNA-Calibration/archive/refs/tags/1.1.0.zip) 将文件解压到 C 盘并将主文件夹重命名为 dna_calibration。
|
### 3 - 复制所有 python 文件并粘贴到 "c:/Arts and Spells/Metapipe Free 2.4.0" (推荐)。
|
||||||
|
|
||||||
#### 3 进入下载的文件夹并在文本框中输入"cmd"。控制面板将会弹出
|
|
||||||
|
|
||||||
输入 "python metapipe.py"
|
|
||||||
|
|
||||||
或者如果上述方法不起作用,可以选择其他解决方案
|
|
||||||
|
|
||||||
- 复制所有 python 文件并粘贴到 "c:/Arts and Spells/Scripts" (推荐)。
|
|
||||||
|
|
||||||
- 打开 "MetaPipeStudioSource.py" 并修改以下版本信息
|
|
||||||
|
|
||||||
* ROOT_DIR
|
|
||||||
* MAYA_VERSION
|
|
||||||
* dnaPath
|
|
||||||
* body_type
|
|
||||||
|
|
||||||
- 修改完成后将文件另存为 "dat.py" 并保存在 "c:/Arts and Spells/Scripts" 中
|
|
||||||
|
|
||||||
#### 4 - 复制插件
|
|
||||||
|
|
||||||
前往此路径 "Documents\Megascans Library\support\plugins\maya\7.0\MSLiveLink\DHI\plugins\Windows\2023" (7.0 是当前 MSLiveLink 版本,可能会变更) 并复制 embeddedRL4.mll 文件
|
|
||||||
|
|
||||||
#### 5 - 在 "Documents/Megascans Library/support/plugins/maya/7.0/MSLiveLink/" 中创建名为 "plug-ins" 的文件夹,并将文件粘贴其中。
|
|
||||||
|
|
||||||
#### 6 - 按照教程使用
|
|
||||||
|
|
||||||
#### 7 - 如果你有任何问题,欢迎在 Discord 或 Artstation 上询问!祝使用愉快!
|
|
||||||
|
|
||||||
身体构建自动代码:
|
|
||||||
|
|
||||||
|
### 4 - 将以下代码复制粘贴到架构编辑器命令行或通过脚本编辑器运行(选择 Python 选项卡)
|
||||||
```
|
```
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import importlib
|
||||||
import sys
|
import sys
|
||||||
|
import maya.cmds as cmds
|
||||||
|
import os
|
||||||
|
from os import path as ospath
|
||||||
|
from sys import path as syspath
|
||||||
|
from sys import platform
|
||||||
|
|
||||||
sys.path.append("c:/Arts and Spells/Scripts")
|
ROOT_DIR = "G:/DNA_Calibration_1.1.0"
|
||||||
import Body_Prep
|
MAIN_PATH = "C:/Arts and Spells/Metapipe Free 2.4.0"
|
||||||
Body_Prep.run()
|
MAYA_VERSION = "2023"
|
||||||
|
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(
|
||||||
|
"不支持操作系统,请编译依赖项并为 LIB_DIR"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Adds directories to path
|
||||||
|
syspath.insert(0, ROOT_DIR)
|
||||||
|
syspath.insert(0, LIB_DIR)
|
||||||
|
sys.path.append(MAIN_PATH)
|
||||||
|
import MetaPipeFree
|
||||||
|
importlib.reload(MetaPipeFree)
|
||||||
|
|
||||||
|
# Dna Path
|
||||||
|
dnaPath = "G:/DNA_Calibration_1.1.0/data/dna_files/Ada.dna"
|
||||||
|
|
||||||
|
CHARACTER_NAME = os.path.basename(dnaPath).split(".")[0]
|
||||||
|
MetaPipeFree.codeblock(dnaPath, ROOT_DIR, CHARACTER_NAME)
|
||||||
|
MetaPipeFree.show_dna_edit_window(dnaPath, ROOT_DIR)
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Metapipe 架构编辑器代码:
|
### 5 - 前往路径 "G:\BridgeLibrary\support\plugins\maya\7.0\MSLiveLink\DHI\plugins\Windows\2023" (7.0 是当前 MSLiveLink 版本,可能会变更) 并复制 embeddedRL4.mll 文件
|
||||||
|
|
||||||
```
|
|
||||||
import sys
|
|
||||||
|
|
||||||
sys.path.append("c:/Arts and Spells/Scripts")
|
|
||||||
import MetaPipeStudio
|
|
||||||
MetaPipeStudio.show_dna_edit_window()
|
|
||||||
```
|
|
||||||
|
|
||||||
修正混合变形安装:
|
|
||||||
|
|
||||||
* 1 - 复制 extractDerltas.py 并粘贴到 Maya 插件文件夹 --> documents/maya/"""2023/2022"""/plug-ins
|
|
||||||
* 2 - 复制 correctiveBlendshape.txt 文件中的文本并粘贴到 Maya 架构编辑器的 "MEL SCRIPT TAB" 中
|
|
||||||
* 3 - 在 Maya 中启用 extractDeltas 插件 - Windows - Settings and Preferences - Plugin Manager
|
|
||||||
* 4 - 将 bsIndex.py 文件复制粘贴到 C:/Arts and Spells/Scripts (推荐) 或修改架构编辑器中的 correctiveBlendshape 代码并设置你的路径。
|
|
||||||
|
|
||||||
|
### 6 - 在 "Documents/Megascans Library/support/plugins/maya/7.0/MSLiveLink/" 中创建名为 "plug-ins" 的文件夹,并将文件粘贴其中。
|
||||||
|
|
||||||
|
### 7 - 运行代码!祝使用愉快!如有任何问题,请在 Artstation 或 Discord 上询问...
|
71
freeInstaller.py
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if getattr(sys, 'frozen', False):
|
||||||
|
# Running in a bundle (PyInstaller)
|
||||||
|
source_folder = os.path.dirname(sys.executable)
|
||||||
|
source_folder = os.path.join(source_folder, "metapipeFree")
|
||||||
|
else:
|
||||||
|
# Running in a normal Python environment
|
||||||
|
source_folder = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
source_folder_data = os.path.join(source_folder, "data")
|
||||||
|
source_folder_icons = os.path.join(source_folder, "Icons")
|
||||||
|
source_folder_scripts = os.path.join(source_folder, "scripts")
|
||||||
|
destination_folder = "C:/Arts and Spells/Metapipe Free 2.4.0"
|
||||||
|
destination_folder_data = destination_folder + "/data"
|
||||||
|
destination_folder_icons = destination_folder + "/Icons"
|
||||||
|
destination_folder_scripts = "C:/Arts and Spells/Scripts"
|
||||||
|
def move_files(source_folder, destination_folder):
|
||||||
|
files = os.listdir(source_folder)
|
||||||
|
os.makedirs(destination_folder, exist_ok=True)
|
||||||
|
os.makedirs(destination_folder_scripts, exist_ok=True)
|
||||||
|
|
||||||
|
for file_name in files:
|
||||||
|
source = os.path.join(source_folder, file_name)
|
||||||
|
destination = os.path.join(destination_folder, file_name)
|
||||||
|
|
||||||
|
if os.path.isfile(source): # Check if the item is a file
|
||||||
|
try:
|
||||||
|
shutil.copy(source, destination)
|
||||||
|
except PermissionError as e:
|
||||||
|
print(f"Permission error: {e}")
|
||||||
|
# Handle the permission error as needed
|
||||||
|
|
||||||
|
def run():
|
||||||
|
if not source_folder == destination_folder:
|
||||||
|
try:
|
||||||
|
os.makedirs(destination_folder, exist_ok=True)
|
||||||
|
move_files(source_folder, destination_folder)
|
||||||
|
move_files(source_folder_data, destination_folder_data)
|
||||||
|
move_files(source_folder_icons, destination_folder_icons)
|
||||||
|
move_files(source_folder_scripts, destination_folder_scripts)
|
||||||
|
print("Installation completed successfully.")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"An Error occurred: {e}")
|
||||||
|
else:
|
||||||
|
print("Installation already completed.")
|
||||||
|
|
||||||
|
shelfCH = 0
|
||||||
|
shelves_folder = os.path.expanduser("~/Documents/maya/2023/prefs/shelves")
|
||||||
|
if os.path.exists(shelves_folder):
|
||||||
|
shutil.copy(os.path.join(source_folder, "shelf_MetapipeFree.mel"), shelves_folder)
|
||||||
|
shelfCH = 1
|
||||||
|
|
||||||
|
shelves_folder = os.path.expanduser("~/Documents/maya/2023/zh_CN/prefs/shelves")
|
||||||
|
if os.path.exists(shelves_folder):
|
||||||
|
shutil.copy(os.path.join(source_folder, "shelf_MetapipeFree.mel"), shelves_folder)
|
||||||
|
shelfCH = 1
|
||||||
|
|
||||||
|
shelves_folder = os.path.expanduser("~/Documents/maya/2023/ja_JP/prefs/shelves")
|
||||||
|
if os.path.exists(shelves_folder):
|
||||||
|
shutil.copy(os.path.join(source_folder, "shelf_MetapipeFree.mel"), shelves_folder)
|
||||||
|
shelfCH = 1
|
||||||
|
|
||||||
|
shelves_folder = os.path.expanduser("~/Documents/maya/2023/en_US/prefs/shelves")
|
||||||
|
if os.path.exists(shelves_folder):
|
||||||
|
shutil.copy(os.path.join(source_folder, "shelf_MetapipeFree.mel"), shelves_folder)
|
||||||
|
shelfCH = 1
|
||||||
|
|
||||||
|
if shelfCH == 0:
|
||||||
|
print("ERROR: Maya folder is not in Default Place. Please find shelf folder of Maya and copy and paste 'shelf_MetaPipeFree' file manually.")
|