This commit is contained in:
Jeffreytsai1004 2025-02-07 05:10:30 +08:00
parent 270f5702d9
commit 64ae5c7c64
160 changed files with 230474 additions and 166 deletions

BIN
Metahuman.pdf Normal file

Binary file not shown.

View File

@ -1,15 +0,0 @@
# Metahuman Customized Tool
Metahuman Customized Toolbag for Maya
## Tool Name
MetaFusion
## VERSION
Beta 1.0.0
## MAYA VERSION
2022~2025

View File

@ -38,8 +38,9 @@
## 代码基本结构
```
.
以"\"结尾的行为文件夹
```.
├── dnacalib\
│ ├── CMakeModulesExtra\
│ ├── DNACalib\
@ -150,10 +151,49 @@
│ ├── MSLiveLink 参考模块MSLiveLink
│ ├── SuperRiggingEditor 参考模块SuperRiggingEditor
├── resources\
│ ├── assets\
│ │ ├── YAxisUp\
│ │ │ ├── full_rig.mb Y轴向上全身绑定Maya基础文件
│ │ │ ├── sub_ctrl.mb Y轴向上次级控制器Maya基础文件
│ │ ├── ZAxisUp\
│ │ │ ├── full_rig.mb Z轴向上全身绑定Maya基础文件
│ │ │ ├── sub_ctrl.mb Z轴向上次级控制器Maya基础文件
│ ├── dna\
│ │ ├── NDA文件...
│ ├── icons\
│ │ ├── NDA图标...
│ ├── data\
│ │ ├── MetaHuman\
│ │ │ ├── Deploy.dna 部署dna
│ │ │ ├── JointsInfo.json 骨骼基础信息
│ │ │ ├── VertexsInfo.json 顶点基础信息
│ │ ├── ARKit.json ARKit基础信息
│ │ ├── BodyJoints.json 身体骨骼基础信息
│ │ ├── JointsInfluence.json 骨骼影响基础信息
│ │ ├── Topology.json 拓扑基础信息
│ ├── maps\ 贴图路径(DDS)
│ ├── mask\ Mask贴图路径(TGA)
│ ├── meta_anim\
│ │ ├── meta_body_anim.py MetaHuman Body Animation
│ │ ├── meta_face_anim.py MetaHuman Face Animation
│ ├── meta_body_ctrl\
│ │ ├── meta_body_ctrl.py MetaHuman Body Control
│ ├── meta_motion_apply\
│ │ ├── match_files\
│ │ │ ├── metahuman_match_file.txt MetaHuman Motion 资源依赖文件
│ │ │ ├── meta_motion_apply.py MetaHuman Motion 应用
│ ├── shaders\
│ │ ├── dx11_shd_body.fx DX11身体材质
│ │ ├── dx11_shd_eyeLeft.fx DX11左眼球材质
│ │ ├── dx11_shd_eyeRight.fx DX11右眼球材质
│ │ ├── dx11_shd_head.fx DX11头材质
│ │ ├── dx11_shd_teeth.fx DX11牙齿材质
│ ├── skinCluster\
│ │ ├── CTRL_Root_Face.skin Skin Cluster
│ ├── additional_assemble_script.py 附加组装脚本
│ ├── analog_gui.ma 模拟图形用户界面MA文件
│ ├── gui.ma Maya GUI文件
│ ├── vtx_color.py 顶点色配置
├── scripts\
│ ├── builder\
│ │ ├── maya\
@ -184,20 +224,28 @@
│ │ ├── style.qss 样式文件
│ │ ├── menu.py 菜单UI模块
│ │ ├── toolshelf.py 工具栏UI模块
│ │ ├── models.py 模型UI模块
│ │ ├── mesh.py 模型UI模块
│ │ ├── rigging.py 绑定UI模块
│ │ ├── adjust.py 调整UI模块
│ │ ├── define.py 定义UI模块
│ ├── utils\
│ │ ├── menu_utils.py 菜单UI功能模块文件语言帮助菜单功能编辑和工具菜单功能从其他功能模块引用
│ │ ├── mesh_utils.py 模型UI功能模块
│ │ ├── rigging_utils.py 绑定UI功能模块
│ │ ├── adjust_utils.py 调整UI功能模块
│ │ ├── define_utils.py 定义UI功能模块
│ ├── utils\ 功能模块
│ │ ├── __init__.py
│ │ ├── menu.py 菜单功能模块(文件,语言,帮助菜单功能,编辑和工具菜单功能从其他功能模块引用)
│ │ ├── models.py 模型功能模块
│ │ ├── rigging.py 绑定功能模块
│ │ ├── adjust.py 调整功能模块
│ │ ├── define.py 定义功能模块
│ │ ├── ... 功能模块
│ ├── MetaFusion.py 插件启动框架
├── CleanPycache.bat
├── Install.mel 拖入maya安装文件
├── Install.py 安装执行文件
├── CleanPycache.bat
```
├── Metahuman.pdf 官方Metahuman解析说明文档```
# 参考这些文件,并基于目前的项目文件来完善项目:
DNA Calibration Document : https://epicgames.github.io/MetaHuman-DNA-Calibration/index.html
MetaHuman-DNA-Calibration 代码:https://github.com/EpicGames/MetaHuman-DNA-Calibration
@Metahuman.pdf

File diff suppressed because it is too large Load Diff

951
resources/analog_gui.ma Normal file
View File

@ -0,0 +1,951 @@
//Maya ASCII 2018ff08 scene
//Name: head_ac.ma
//Last modified: Wed, Apr 21, 2021 11:20:39 AM
//Codeset: 1252
requires maya "2018ff08";
requires "stereoCamera" "10.0";
currentUnit -l centimeter -a degree -t film;
fileInfo "application" "maya";
fileInfo "product" "Maya 2018";
fileInfo "version" "2018";
fileInfo "cutIdentifier" "201804211841-f3d65dda2a";
fileInfo "osv" "Microsoft Windows 8 Business Edition, 64-bit (Build 9200)\n";
createNode transform -s -n "persp";
rename -uid "1F733D66-48BC-F36A-95F0-85B776379FF9";
setAttr ".v" no;
setAttr ".t" -type "double3" 24.485336033143696 169.38252420185964 53.037144136961373 ;
setAttr ".r" -type "double3" -14.738352729976052 42.199999999997246 0 ;
setAttr ".rp" -type "double3" -8.8817841970012523e-16 0 -1.4210854715202004e-14 ;
setAttr ".rpt" -type "double3" 1.9335790755028676e-15 -8.2753054847504594e-16 3.4833295142429146e-17 ;
createNode camera -s -n "perspShape" -p "persp";
rename -uid "33E8B9B2-4CB3-2516-26DF-77BB12730D3B";
setAttr -k off ".v" no;
setAttr ".fl" 34.999999999999979;
setAttr ".fcp" 1000;
setAttr ".coi" 43.516841180429559;
setAttr ".imn" -type "string" "persp";
setAttr ".den" -type "string" "persp_depth";
setAttr ".man" -type "string" "persp_mask";
setAttr ".tp" -type "double3" 2.9223375320434575 158.78015124797821 9.5714322924613953 ;
setAttr ".hc" -type "string" "viewSet -p %camera";
createNode transform -s -n "top";
rename -uid "BB4ED561-41ED-487C-1D33-CF8A4B0897BD";
setAttr ".v" no;
setAttr ".t" -type "double3" -0.28301886792452824 100.1 0.51457975986277915 ;
setAttr ".r" -type "double3" -89.999999999999986 0 0 ;
createNode camera -s -n "topShape" -p "top";
rename -uid "45260076-45D4-A6A5-B953-A3A5EB644534";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".fcp" 1000;
setAttr ".coi" 100.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "top";
setAttr ".den" -type "string" "top_depth";
setAttr ".man" -type "string" "top_mask";
setAttr ".hc" -type "string" "viewSet -t %camera";
setAttr ".o" yes;
createNode transform -s -n "front";
rename -uid "818C2BEB-4773-6A7B-8F67-34B4624793CD";
setAttr ".v" no;
setAttr ".t" -type "double3" -0.93640657189876109 158.21400996191252 184.61923504963326 ;
createNode camera -s -n "frontShape" -p "front";
rename -uid "906AC02E-43FF-58CF-105F-5EADA6CD732D";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".fcp" 1000;
setAttr ".coi" 100.1;
setAttr ".ow" 26.683629442125433;
setAttr ".imn" -type "string" "front";
setAttr ".den" -type "string" "front_depth";
setAttr ".man" -type "string" "front_mask";
setAttr ".hc" -type "string" "viewSet -f %camera";
setAttr ".o" yes;
createNode transform -s -n "side";
rename -uid "5795909A-43CB-84AB-8B20-5A89303D2FAD";
setAttr ".v" no;
setAttr ".t" -type "double3" 100.1 0 0 ;
setAttr ".r" -type "double3" 0 89.999999999999986 0 ;
createNode camera -s -n "sideShape" -p "side";
rename -uid "9A728A09-4A23-159B-0248-1696FEE647FF";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".fcp" 1000;
setAttr ".coi" 100.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "side";
setAttr ".den" -type "string" "side_depth";
setAttr ".man" -type "string" "side_mask";
setAttr ".hc" -type "string" "viewSet -s %camera";
setAttr ".o" yes;
createNode transform -n "GRP_C_eyesAim";
rename -uid "709659EE-4602-72CC-4460-ECA2BD7E29D7";
setAttr ".t" -type "double3" 3.6739410342115364e-15 158.823 30 ;
setAttr ".r" -type "double3" 89.999999999999972 -6.3611093629270304e-15 89.999999999999972 ;
createNode transform -n "CTRL_C_eyesAim" -p "GRP_C_eyesAim";
rename -uid "45E674E2-47F2-9AB0-4C87-0FAF4A7D66C1";
setAttr -l on -k off ".v";
setAttr ".ovc" 17;
setAttr -l on -k off ".sx";
setAttr -l on -k off ".sy";
setAttr -l on -k off ".sz";
createNode mesh -n "CTRL_C_eyesAimShape" -p "CTRL_C_eyesAim";
rename -uid "FA0EBD96-4E9C-9FBD-730F-9D9888AD83F4";
setAttr -k off ".v";
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".pv" -type "double2" 0.50000005960464478 0.625 ;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr ".sdt" 0;
setAttr ".ugsdt" no;
setAttr -s 40 ".pt[0:39]" -type "float3" -2.1778078 -2.1091487 0.0010064747
-0.63444263 -2.0921736 2.5070686 0.87174493 -2.0049238 3.4610748 2.236877 -1.6531019
3.9886992 3.5849981 -0.92042053 4.6062508 4.7610202 0.013844609 4.8480072 5.4536204
0.9482013 4.6062512 5.5771995 1.6808825 3.9971507 4.7629995 2.0327044 3.4610763 3.4997358
2.0731709 2.5070701 1.9781556 2.1169405 0.0010064151 -2.2206321 -2.1519725 0.0010066237
-0.6689896 -2.1362562 2.5227318 0.85088497 -2.0431926 3.4801607 2.2288394 -1.6841838
4.0138559 3.6185279 -0.92718017 4.6465402 4.8093305 0.013844609 4.8963175 5.5159903
0.96101868 4.6558037 5.652595 1.7210438 4.0323839 4.8156238 2.0738878 3.4764824 3.5441055
2.1172686 2.507515 2.0209796 2.1597643 0.0010065641 -3.6832709 -2.0882215 -2.5070395
-4.935019 -2.0049543 -3.4561272 -5.7491007 -1.6531324 -3.9951358 -5.6255822 -0.92051208
-4.604238 -4.933013 0.013814091 -4.8459949 -3.7569308 0.94814026 -4.604239 -2.4152093
1.6807606 -3.9951372 -1.043855 2.0325823 -3.4561281 0.44689128 2.0731099 -2.5070415
-3.7268405 -2.1323347 -2.5061455 -5.0150599 -2.0554609 -3.4934902 -5.8321519 -1.6918133
-4.0395069 -5.7079926 -0.93958557 -4.6675749 -4.996635 0.013814091 -4.9096169 -3.8011932
0.96721387 -4.6675749 -2.4069414 1.7287494 -4.0348592 -1.008054 2.0799456 -3.4678564
0.48457316 2.117238 -2.5176306;
setAttr ".vnm" 0;
createNode mesh -n "polySurfaceShape1" -p "CTRL_C_eyesAim";
rename -uid "83C0EF37-455C-0D88-54F1-DB81B4114D7C";
setAttr -k off ".v";
setAttr ".io" yes;
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr -s 44 ".uvst[0].uvsp[0:43]" -type "float2" 0.25 0.75 0.30000001
0.75 0.35000002 0.75 0.40000004 0.75 0.45000005 0.75 0.50000006 0.75 0.55000007 0.75
0.60000008 0.75 0.6500001 0.75 0.70000011 0.75 0.75000012 0.75 0.25 0.5 0.30000001
0.5 0.35000002 0.5 0.40000004 0.5 0.45000005 0.5 0.50000006 0.5 0.55000007 0.5 0.60000008
0.5 0.6500001 0.5 0.70000011 0.5 0.75000012 0.5 0.30000001 0.75 0.25 0.75 0.25 0.5
0.30000001 0.5 0.35000002 0.75 0.35000002 0.5 0.40000004 0.75 0.40000004 0.5 0.45000005
0.75 0.45000005 0.5 0.50000006 0.75 0.50000006 0.5 0.55000007 0.75 0.55000007 0.5
0.60000008 0.75 0.60000008 0.5 0.6500001 0.75 0.6500001 0.5 0.70000011 0.75 0.70000011
0.5 0.75000012 0.75 0.75000012 0.5;
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr ".sdt" 0;
setAttr ".ugsdt" no;
setAttr -s 44 ".pt[0:43]" -type "float3" -8.9406967e-08 -170.35814
-30 -4.4703484e-08 -170.36223 -30 7.4505806e-09 -170.37811 -30 -1.4901161e-07 -170.37811
-30 -2.3841858e-07 -170.37817 -30 -2.9802322e-08 -170.37811 -30 -2.682209e-07 -170.37814
-30 -5.9604645e-08 -170.3782 -30 2.9802322e-08 -170.3782 -30 0 -170.37814 -30 0 -170.37819
-30 -2.682209e-07 -170.35834 -30 0.02161561 -170.36226 -30 0.043231159 -170.38104
-30 0.064846814 -170.38106 -30 0.05558297 -170.39049 -30 0.052495062 -170.37811 -30
0.046319276 -170.37189 -30 0.046319306 -170.38434 -30 0.046319149 -170.37819 -30
0.030879304 -170.37811 -30 -1.1920929e-07 -170.37799 -30 0 -170.35825 -30 0 -170.36618
-30 0 -170.37808 -30 0 -170.37808 -30 0 -170.37808 -30 0 -170.37808 -30 0 -170.37808
-30 0 -170.37808 -30 0 -170.37808 -30 0 -170.37808 -30 0 -170.37808 -30 0 -170.35825
-30 -0.031694796 -170.36618 -30 -0.027888168 -170.36877 -30 -0.037184224 -170.37343
-30 -0.032536194 -170.37808 -30 -0.037184224 -170.37808 -30 -0.032536194 -170.37808
-30 -0.041832253 -170.39204 -30 -0.049407061 -170.38425 -30 -0.024703529 -170.37808
-30 0 -170.37808 -30;
setAttr -s 44 ".vt[0:43]" 4.9378752e-07 172.4811554 30 -1.52639031 172.46821594 30
-2.90336728 172.39685059 30 -3.99614239 172.045028687 30 -4.60524416 171.31240845 30
-4.84700108 170.37808228 30 -4.60524464 169.4437561 30 -3.99614358 168.71113586 30
-2.90336847 168.35931396 30 -1.52639163 168.31878662 30 -7.0791589e-07 168.27500916 30
-1.070642e-07 172.52407837 30 -1.55754161 172.5123291 30 -2.96262026 172.43804932 30
-4.0776968 172.079055786 30 -4.70111704 171.33148193 30 -4.94780731 170.37808228 30
-4.70111704 169.42468262 30 -4.077697277 168.67710876 30 -2.96262074 168.31811523 30
-1.55754197 168.2746582 30 4.3148738e-08 168.23208618 30 -4.9378752e-07 172.4811554 30
1.52639031 172.46821594 30 2.90336728 172.39685059 30 3.99614239 172.045028687 30
4.60524416 171.31240845 30 4.84700108 170.37808228 30 4.60524464 169.4437561 30 3.99614358 168.71113586 30
2.90336847 168.35931396 30 1.52639163 168.31878662 30 7.0791589e-07 168.27500916 30
1.070642e-07 172.52407837 30 1.55754161 172.5123291 30 2.96262026 172.43804932 30
4.0776968 172.079055786 30 4.70111704 171.33148193 30 4.94780731 170.37808228 30
4.70111704 169.42468262 30 4.077697277 168.67710876 30 2.96262074 168.31811523 30
1.55754197 168.2746582 30 -4.3148738e-08 168.23208618 30;
setAttr -s 62 ".ed[0:61]" 0 1 0 1 2 0 2 3 0 3 4 0 4 5 0 5 6 0 6 7 0
7 8 0 8 9 0 9 10 0 11 12 0 12 13 0 13 14 0 14 15 0 15 16 0 16 17 0 17 18 0 18 19 0
19 20 0 20 21 0 0 11 1 1 12 1 2 13 1 3 14 1 4 15 1 5 16 1 6 17 1 7 18 1 8 19 1 9 20 1
10 21 1 22 23 0 23 24 0 24 25 0 25 26 0 26 27 0 27 28 0 28 29 0 29 30 0 30 31 0 31 32 0
33 34 0 34 35 0 35 36 0 36 37 0 37 38 0 38 39 0 39 40 0 40 41 0 41 42 0 42 43 0 22 33 1
23 34 1 24 35 1 25 36 1 26 37 1 27 38 1 28 39 1 29 40 1 30 41 1 31 42 1 32 43 1;
setAttr -s 20 -ch 80 ".fc[0:19]" -type "polyFaces"
f 4 -1 20 10 -22
mu 0 4 1 0 11 12
f 4 -2 21 11 -23
mu 0 4 2 1 12 13
f 4 -3 22 12 -24
mu 0 4 3 2 13 14
f 4 -4 23 13 -25
mu 0 4 4 3 14 15
f 4 -5 24 14 -26
mu 0 4 5 4 15 16
f 4 -6 25 15 -27
mu 0 4 6 5 16 17
f 4 -7 26 16 -28
mu 0 4 7 6 17 18
f 4 -8 27 17 -29
mu 0 4 8 7 18 19
f 4 -9 28 18 -30
mu 0 4 9 8 19 20
f 4 -10 29 19 -31
mu 0 4 10 9 20 21
f 4 52 -42 -52 31
mu 0 4 22 25 24 23
f 4 53 -43 -53 32
mu 0 4 26 27 25 22
f 4 54 -44 -54 33
mu 0 4 28 29 27 26
f 4 55 -45 -55 34
mu 0 4 30 31 29 28
f 4 56 -46 -56 35
mu 0 4 32 33 31 30
f 4 57 -47 -57 36
mu 0 4 34 35 33 32
f 4 58 -48 -58 37
mu 0 4 36 37 35 34
f 4 59 -49 -59 38
mu 0 4 38 39 37 36
f 4 60 -50 -60 39
mu 0 4 40 41 39 38
f 4 61 -51 -61 40
mu 0 4 42 43 41 40;
setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ;
setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ;
setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ;
setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ;
setAttr ".vnm" 0;
createNode transform -n "GRP_L_eyeAim" -p "CTRL_C_eyesAim";
rename -uid "B4AE1E09-452A-75B7-D909-7FA8A9CAF3D8";
setAttr ".t" -type "double3" -0.042848632812507503 0 2.9223375320434446 ;
createNode transform -n "CTRL_L_eyeAim" -p "GRP_L_eyeAim";
rename -uid "80B54E56-4462-9CAA-0B13-0F9618FD5DC1";
setAttr -l on -k off ".v";
setAttr -l on -k off ".sx";
setAttr -l on -k off ".sy";
setAttr -l on -k off ".sz";
createNode mesh -n "CTRL_L_eyeAimShape" -p "CTRL_L_eyeAim";
rename -uid "3911CFF8-4AB7-A90C-137A-97A7FDF62665";
setAttr -k off ".v";
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr ".sdt" 0;
setAttr ".ugsdt" no;
setAttr -s 40 ".pt[0:39]" -type "float3" 0 1.7572482e-07 1.7572484e-07
0 0.29581171 0.29581174 0 0.56266713 0.56266713 0 0.77444476 0.7744447 0 0.91041446
0.91041446 0 0.95726633 0.95726639 0 0.91041458 0.91041464 0 0.77444494 0.77444488
0 0.56266737 0.56266743 0 0.29581189 0.29581189 0 3.2127969e-07 3.2127969e-07 0 -0.29581127
-0.29581127 0 -0.56266677 -0.56266677 0 -0.77444458 -0.77444458 0 -0.91041434 -0.91041434
0 -0.95726633 -0.95726627 0 -0.91041446 -0.91041446 0 -0.77444494 -0.77444488 0 -0.56266713
-0.56266713 0 -0.29581171 -0.29581174 0 1.8110103e-07 1.8110103e-07 0 0.3129696 0.3129696
0 0.59530348 0.59530348 0 0.81936467 0.81936473 0 0.96322107 0.96322107 0 1.0127906
1.0127906 0 0.96322107 0.96322107 0 0.81936479 0.81936479 0 0.59530354 0.59530354
0 0.31296965 0.31296968 0 1.8110103e-07 1.8110103e-07 0 -0.31296933 -0.3129693 0
-0.59530324 -0.59530324 0 -0.81936461 -0.81936461 0 -0.96322107 -0.96322107 0 -1.0127906
-1.0127906 0 -0.96322107 -0.96322107 0 -0.81936479 -0.81936479 0 -0.59530342 -0.59530342
0 -0.31296939 -0.31296939;
setAttr ".vnm" 0;
createNode mesh -n "polySurfaceShape6" -p "CTRL_L_eyeAim";
rename -uid "9EB4F4D9-416D-E136-C7F5-D1A5B732EC1A";
setAttr -k off ".v";
setAttr ".io" yes;
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr -s 42 ".uvst[0].uvsp[0:41]" -type "float2" 0 0.75 0.050000001
0.75 0.1 0.75 0.15000001 0.75 0.2 0.75 0.25 0.75 0.30000001 0.75 0.35000002 0.75
0.40000004 0.75 0.45000005 0.75 0.50000006 0.75 0.55000007 0.75 0.60000008 0.75 0.6500001
0.75 0.70000011 0.75 0.75000012 0.75 0.80000013 0.75 0.85000014 0.75 0.90000015 0.75
0.95000017 0.75 1.000000119209 0.75 0 0.5 0.050000001 0.5 0.1 0.5 0.15000001 0.5
0.2 0.5 0.25 0.5 0.30000001 0.5 0.35000002 0.5 0.40000004 0.5 0.45000005 0.5 0.50000006
0.5 0.55000007 0.5 0.60000008 0.5 0.6500001 0.5 0.70000011 0.5 0.75000012 0.5 0.80000013
0.5 0.85000014 0.5 0.90000015 0.5 0.95000017 0.5 1.000000119209 0.5;
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr ".sdt" 0;
setAttr ".ugsdt" no;
setAttr -s 40 ".pt[0:39]" -type "float3" -0.02273389 3.0891045e-09
-5.7187006e-34 -0.021621136 0.0070251282 1.5599001e-18 -0.01839206 0.013362584 2.9671128e-18
-0.013362616 0.018392069 4.083856e-18 -0.0070251394 0.021621138 4.8008984e-18 -4.8394493e-09
0.022733927 5.0479375e-18 0.0070251399 0.021621129 4.8008566e-18 0.01336265 0.018392088
4.0838577e-18 0.018392013 0.013362609 2.9670969e-18 0.021621313 0.0070251618 1.5598939e-18
0.02273389 6.5458567e-09 7.675519e-25 0.021621136 -0.0070251497 -1.5598986e-18 0.01839206
-0.013362652 -2.9670931e-18 0.013362586 -0.018392054 -4.0838577e-18 0.0070251776
-0.02162122 -4.8008574e-18 6.9134864e-10 -0.022733908 -5.0479508e-18 -0.0070251725
-0.021621138 -4.8008562e-18 -0.013362616 -0.018392054 -4.0838738e-18 -0.018392103
-0.013362618 -2.9670948e-18 -0.021621147 -0.007025131 -1.5598984e-18 0.012790322
-2.2870912e-09 3.1530611e-34 0.012164332 -0.0039524259 -8.7760844e-19 0.0103475 -0.0075179785
-1.6693239e-18 0.0075179739 -0.010347502 -2.29761e-18 0.0039524385 -0.012164305 -2.7010259e-18
1.1435455e-09 -0.012790285 -2.8400221e-18 -0.0039524059 -0.012164296 -2.7010261e-18
-0.0075179664 -0.010347499 -2.2976066e-18 -0.010347515 -0.007517979 -1.6693255e-18
-0.012164332 -0.003952425 -8.7761754e-19 -0.012790322 -2.2870912e-09 3.1530611e-34
-0.012164332 0.0039524091 8.7761754e-19 -0.0103475 0.0075179664 1.669327e-18 -0.0075179739
0.0103475 2.2976062e-18 -0.0039523952 0.012164305 2.7010195e-18 1.5247269e-09 0.012790278
2.8400154e-18 0.0039524245 0.012164296 2.701016e-18 0.0075179744 0.010347499 2.2976145e-18
0.01034756 0.0075179804 1.6693264e-18 0.012164234 0.003952397 8.7761485e-19;
setAttr -s 40 ".vt[0:39]" 0.98000002 1.110223e-16 2.4651903e-32 0.93203545 -0.30283666 -6.7243246e-17
0.79283673 -0.57602954 -1.2790425e-16 0.57602966 -0.79283667 -1.760451e-16 0.30283678 -0.93203545 -2.0695344e-16
8.9406967e-08 -0.98000014 -2.1760374e-16 -0.30283663 -0.93203557 -2.0695347e-16 -0.57602954 -0.79283684 -1.7604514e-16
-0.79283673 -0.57602978 -1.279043e-16 -0.93203557 -0.30283687 -6.7243292e-17 -0.98000026 -1.4901161e-07 -3.3087225e-23
-0.93203568 0.3028366 6.7243233e-17 -0.79283696 0.5760296 1.2790426e-16 -0.57602984 0.79283684 1.7604514e-16
-0.30283689 0.93203568 2.069535e-16 -1.4901161e-07 0.98000038 2.176038e-16 0.30283663 0.9320358 2.0695352e-16
0.57602966 0.79283708 1.760452e-16 0.7928369 0.57602996 1.2790434e-16 0.9320358 0.30283701 6.7243325e-17
1 1.110223e-16 2.4651903e-32 0.95105654 -0.309017 -6.8615558e-17 0.809017 -0.5877853 -1.3051456e-16
0.58778524 -0.80901706 -1.7963787e-16 0.30901697 -0.9510566 -2.1117699e-16 -2.9802322e-08 -1.000000119209 -2.2204463e-16
-0.30901706 -0.95105666 -2.11177e-16 -0.58778536 -0.80901712 -1.7963789e-16 -0.80901718 -0.58778536 -1.3051457e-16
-0.95105678 -0.30901706 -6.8615571e-17 -1.000000238419 1.110223e-16 2.4651903e-32
-0.95105678 0.30901706 6.8615571e-17 -0.80901724 0.58778542 1.3051458e-16 -0.58778548 0.8090173 1.7963793e-16
-0.30901715 0.95105696 2.1117707e-16 0 1.000000476837 2.2204471e-16 0.30901715 0.95105702 2.1117708e-16
0.5877856 0.80901748 1.7963797e-16 0.80901754 0.5877856 1.3051462e-16 0.95105714 0.30901718 6.8615598e-17;
setAttr -s 60 ".ed[0:59]" 0 1 0 1 2 0 2 3 0 3 4 0 4 5 0 5 6 0 6 7 0
7 8 0 8 9 0 9 10 0 10 11 0 11 12 0 12 13 0 13 14 0 14 15 0 15 16 0 16 17 0 17 18 0
18 19 0 19 0 0 20 21 0 21 22 0 22 23 0 23 24 0 24 25 0 25 26 0 26 27 0 27 28 0 28 29 0
29 30 0 30 31 0 31 32 0 32 33 0 33 34 0 34 35 0 35 36 0 36 37 0 37 38 0 38 39 0 39 20 0
0 20 1 1 21 1 2 22 1 3 23 1 4 24 1 5 25 1 6 26 1 7 27 1 8 28 1 9 29 1 10 30 1 11 31 1
12 32 1 13 33 1 14 34 1 15 35 1 16 36 1 17 37 1 18 38 1 19 39 1;
setAttr -s 20 -ch 80 ".fc[0:19]" -type "polyFaces"
f 4 -1 40 20 -42
mu 0 4 1 0 21 22
f 4 -2 41 21 -43
mu 0 4 2 1 22 23
f 4 -3 42 22 -44
mu 0 4 3 2 23 24
f 4 -4 43 23 -45
mu 0 4 4 3 24 25
f 4 -5 44 24 -46
mu 0 4 5 4 25 26
f 4 -6 45 25 -47
mu 0 4 6 5 26 27
f 4 -7 46 26 -48
mu 0 4 7 6 27 28
f 4 -8 47 27 -49
mu 0 4 8 7 28 29
f 4 -9 48 28 -50
mu 0 4 9 8 29 30
f 4 -10 49 29 -51
mu 0 4 10 9 30 31
f 4 -11 50 30 -52
mu 0 4 11 10 31 32
f 4 -12 51 31 -53
mu 0 4 12 11 32 33
f 4 -13 52 32 -54
mu 0 4 13 12 33 34
f 4 -14 53 33 -55
mu 0 4 14 13 34 35
f 4 -15 54 34 -56
mu 0 4 15 14 35 36
f 4 -16 55 35 -57
mu 0 4 16 15 36 37
f 4 -17 56 36 -58
mu 0 4 17 16 37 38
f 4 -18 57 37 -59
mu 0 4 18 17 38 39
f 4 -19 58 38 -60
mu 0 4 19 18 39 40
f 4 -20 59 39 -41
mu 0 4 20 19 40 41;
setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ;
setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ;
setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ;
setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ;
setAttr ".vnm" 0;
createNode transform -n "GRP_R_eyeAim" -p "CTRL_C_eyesAim";
rename -uid "88D8BBE6-438A-219E-BA0B-F2BBEC1BD069";
setAttr ".t" -type "double3" 0.071119262695304997 0 -2.933106899261487 ;
createNode transform -n "CTRL_R_eyeAim" -p "GRP_R_eyeAim";
rename -uid "E204FDC3-4B0C-CAA7-E105-3B9C0C937BDA";
setAttr -l on -k off ".v";
setAttr -l on -k off ".sx";
setAttr -l on -k off ".sy";
setAttr -l on -k off ".sz";
createNode mesh -n "CTRL_R_eyeAimShape" -p "CTRL_R_eyeAim";
rename -uid "AC818542-4CBD-FE7B-9A52-7AB7E4F6F81D";
setAttr -k off ".v";
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr ".sdt" 0;
setAttr ".ugsdt" no;
setAttr -s 40 ".pt[0:39]" -type "float3" 0 1.7620036e-07 1.7620036e-07
0 0.2967757 0.2967757 0 0.56450075 0.56450075 0 0.77696848 0.77696848 0 0.91338128
0.91338128 0 0.9603858 0.96038586 0 0.91338146 0.9133814 0 0.77696866 0.77696866
0 0.56450093 0.56450093 0 0.29677582 0.29677585 0 3.2222951e-07 3.2222951e-07 0 -0.29677525
-0.29677525 0 -0.56450033 -0.56450033 0 -0.77696836 -0.77696836 0 -0.91338104 -0.9133811
0 -0.9603858 -0.9603858 0 -0.91338128 -0.91338128 0 -0.7769686 -0.77696854 0 -0.56450075
-0.56450075 0 -0.29677567 -0.2967757 0 1.8110103e-07 1.8110103e-07 0 0.3129696 0.3129696
0 0.59530348 0.59530348 0 0.81936467 0.81936473 0 0.96322107 0.96322107 0 1.0127906
1.0127906 0 0.96322107 0.96322107 0 0.81936479 0.81936479 0 0.59530354 0.59530354
0 0.31296965 0.31296968 0 1.8110103e-07 1.8110103e-07 0 -0.31296933 -0.3129693 0
-0.59530324 -0.59530324 0 -0.81936461 -0.81936461 0 -0.96322107 -0.96322107 0 -1.0127906
-1.0127906 0 -0.96322107 -0.96322107 0 -0.81936479 -0.81936479 0 -0.59530342 -0.59530342
0 -0.31296939 -0.31296939;
setAttr ".vnm" 0;
createNode mesh -n "polySurfaceShape4" -p "CTRL_R_eyeAim";
rename -uid "8C241986-40E3-7327-92E9-A69E45EB116B";
setAttr -k off ".v";
setAttr ".io" yes;
setAttr ".vir" yes;
setAttr ".vif" yes;
setAttr ".uvst[0].uvsn" -type "string" "map1";
setAttr -s 42 ".uvst[0].uvsp[0:41]" -type "float2" 0 0.75 0.050000001
0.75 0.1 0.75 0.15000001 0.75 0.2 0.75 0.25 0.75 0.30000001 0.75 0.35000002 0.75
0.40000004 0.75 0.45000005 0.75 0.50000006 0.75 0.55000007 0.75 0.60000008 0.75 0.6500001
0.75 0.70000011 0.75 0.75000012 0.75 0.80000013 0.75 0.85000014 0.75 0.90000015 0.75
0.95000017 0.75 1.000000119209 0.75 0 0.5 0.050000001 0.5 0.1 0.5 0.15000001 0.5
0.2 0.5 0.25 0.5 0.30000001 0.5 0.35000002 0.5 0.40000004 0.5 0.45000005 0.5 0.50000006
0.5 0.55000007 0.5 0.60000008 0.5 0.6500001 0.5 0.70000011 0.5 0.75000012 0.5 0.80000013
0.5 0.85000014 0.5 0.90000015 0.5 0.95000017 0.5 1.000000119209 0.5;
setAttr ".cuvs" -type "string" "map1";
setAttr ".dcc" -type "string" "Ambient+Diffuse";
setAttr ".covm[0]" 0 1 1;
setAttr ".cdvm[0]" 0 1 1;
setAttr ".sdt" 0;
setAttr ".ugsdt" no;
setAttr -s 40 ".pt[0:39]" -type "float3" -0.019614395 2.6135796e-09
-4.9339915e-34 -0.01865432 0.0060611512 1.3458541e-18 -0.015868334 0.01152899 2.559973e-18
-0.011529022 0.015868343 3.5234763e-18 -0.0060611609 0.01865432 4.142133e-18 -4.1753907e-09
0.019614428 4.3552705e-18 0.0060611637 0.018654313 4.1420912e-18 0.011529057 0.015868364
3.523478e-18 0.015868289 0.011529016 2.5599571e-18 0.018654497 0.0060611838 1.3458479e-18
0.019614395 5.5960054e-09 6.6222999e-25 0.01865432 -0.0060611735 -1.3458527e-18 0.015868334
-0.011529059 -2.5599538e-18 0.01152899 -0.01586833 -3.523478e-18 0.006061201 -0.018654404
-4.142092e-18 5.964832e-10 -0.019614413 -4.3552834e-18 -0.0060611959 -0.018654324
-4.1420904e-18 -0.011529022 -0.015868332 -3.5234949e-18 -0.015868379 -0.011529024
-2.5599553e-18 -0.01865433 -0.0060611526 -1.3458522e-18 0.012790322 -2.2870912e-09
3.1530611e-34 0.012164332 -0.0039524259 -8.7760844e-19 0.0103475 -0.0075179785 -1.6693239e-18
0.0075179739 -0.010347502 -2.29761e-18 0.0039524385 -0.012164305 -2.7010259e-18 1.1435455e-09
-0.012790285 -2.8400221e-18 -0.0039524059 -0.012164296 -2.7010261e-18 -0.0075179664
-0.010347499 -2.2976066e-18 -0.010347515 -0.007517979 -1.6693255e-18 -0.012164332
-0.003952425 -8.7761754e-19 -0.012790322 -2.2870912e-09 3.1530611e-34 -0.012164332
0.0039524091 8.7761754e-19 -0.0103475 0.0075179664 1.669327e-18 -0.0075179739 0.0103475
2.2976062e-18 -0.0039523952 0.012164305 2.7010195e-18 1.5247269e-09 0.012790278 2.8400154e-18
0.0039524245 0.012164296 2.701016e-18 0.0075179744 0.010347499 2.2976145e-18 0.01034756
0.0075179804 1.6693264e-18 0.012164234 0.003952397 8.7761485e-19;
setAttr -s 40 ".vt[0:39]" 0.98000002 1.110223e-16 2.4651903e-32 0.93203545 -0.30283666 -6.7243246e-17
0.79283673 -0.57602954 -1.2790425e-16 0.57602966 -0.79283667 -1.760451e-16 0.30283678 -0.93203545 -2.0695344e-16
8.9406967e-08 -0.98000014 -2.1760374e-16 -0.30283663 -0.93203557 -2.0695347e-16 -0.57602954 -0.79283684 -1.7604514e-16
-0.79283673 -0.57602978 -1.279043e-16 -0.93203557 -0.30283687 -6.7243292e-17 -0.98000026 -1.4901161e-07 -3.3087225e-23
-0.93203568 0.3028366 6.7243233e-17 -0.79283696 0.5760296 1.2790426e-16 -0.57602984 0.79283684 1.7604514e-16
-0.30283689 0.93203568 2.069535e-16 -1.4901161e-07 0.98000038 2.176038e-16 0.30283663 0.9320358 2.0695352e-16
0.57602966 0.79283708 1.760452e-16 0.7928369 0.57602996 1.2790434e-16 0.9320358 0.30283701 6.7243325e-17
1 1.110223e-16 2.4651903e-32 0.95105654 -0.309017 -6.8615558e-17 0.809017 -0.5877853 -1.3051456e-16
0.58778524 -0.80901706 -1.7963787e-16 0.30901697 -0.9510566 -2.1117699e-16 -2.9802322e-08 -1.000000119209 -2.2204463e-16
-0.30901706 -0.95105666 -2.11177e-16 -0.58778536 -0.80901712 -1.7963789e-16 -0.80901718 -0.58778536 -1.3051457e-16
-0.95105678 -0.30901706 -6.8615571e-17 -1.000000238419 1.110223e-16 2.4651903e-32
-0.95105678 0.30901706 6.8615571e-17 -0.80901724 0.58778542 1.3051458e-16 -0.58778548 0.8090173 1.7963793e-16
-0.30901715 0.95105696 2.1117707e-16 0 1.000000476837 2.2204471e-16 0.30901715 0.95105702 2.1117708e-16
0.5877856 0.80901748 1.7963797e-16 0.80901754 0.5877856 1.3051462e-16 0.95105714 0.30901718 6.8615598e-17;
setAttr -s 60 ".ed[0:59]" 0 1 0 1 2 0 2 3 0 3 4 0 4 5 0 5 6 0 6 7 0
7 8 0 8 9 0 9 10 0 10 11 0 11 12 0 12 13 0 13 14 0 14 15 0 15 16 0 16 17 0 17 18 0
18 19 0 19 0 0 20 21 0 21 22 0 22 23 0 23 24 0 24 25 0 25 26 0 26 27 0 27 28 0 28 29 0
29 30 0 30 31 0 31 32 0 32 33 0 33 34 0 34 35 0 35 36 0 36 37 0 37 38 0 38 39 0 39 20 0
0 20 1 1 21 1 2 22 1 3 23 1 4 24 1 5 25 1 6 26 1 7 27 1 8 28 1 9 29 1 10 30 1 11 31 1
12 32 1 13 33 1 14 34 1 15 35 1 16 36 1 17 37 1 18 38 1 19 39 1;
setAttr -s 20 -ch 80 ".fc[0:19]" -type "polyFaces"
f 4 -1 40 20 -42
mu 0 4 1 0 21 22
f 4 -2 41 21 -43
mu 0 4 2 1 22 23
f 4 -3 42 22 -44
mu 0 4 3 2 23 24
f 4 -4 43 23 -45
mu 0 4 4 3 24 25
f 4 -5 44 24 -46
mu 0 4 5 4 25 26
f 4 -6 45 25 -47
mu 0 4 6 5 26 27
f 4 -7 46 26 -48
mu 0 4 7 6 27 28
f 4 -8 47 27 -49
mu 0 4 8 7 28 29
f 4 -9 48 28 -50
mu 0 4 9 8 29 30
f 4 -10 49 29 -51
mu 0 4 10 9 30 31
f 4 -11 50 30 -52
mu 0 4 11 10 31 32
f 4 -12 51 31 -53
mu 0 4 12 11 32 33
f 4 -13 52 32 -54
mu 0 4 13 12 33 34
f 4 -14 53 33 -55
mu 0 4 14 13 34 35
f 4 -15 54 34 -56
mu 0 4 15 14 35 36
f 4 -16 55 35 -57
mu 0 4 16 15 36 37
f 4 -17 56 36 -58
mu 0 4 17 16 37 38
f 4 -18 57 37 -59
mu 0 4 18 17 38 39
f 4 -19 58 38 -60
mu 0 4 19 18 39 40
f 4 -20 59 39 -41
mu 0 4 20 19 40 41;
setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ;
setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ;
setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ;
setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ;
setAttr ".vnm" 0;
createNode transform -n "LOC_C_eyeDriver";
rename -uid "ED592681-4738-8305-9CAE-AFAE42CF4502";
setAttr ".v" no;
setAttr ".t" -type "double3" 3.1533927013116698e-15 156.71624755859375 0.40573886036872864 ;
createNode locator -n "LOC_C_eyeDriverShape" -p "LOC_C_eyeDriver";
rename -uid "B2AEC674-449C-B16F-8C80-A295E5B95769";
setAttr -k off ".v";
createNode transform -n "LOC_L_eyeDriver" -p "LOC_C_eyeDriver";
rename -uid "7A557C07-4753-A300-82FC-59AA59914AF7";
setAttr ".v" no;
setAttr ".t" -type "double3" 2.9223375320434539 2.06390380859375 9.1656932532787323 ;
createNode locator -n "LOC_L_eyeDriverShape" -p "LOC_L_eyeDriver";
rename -uid "40A2D245-47D9-E29A-4B6E-A8932B345417";
setAttr -k off ".v";
createNode transform -n "LOC_R_eyeDriver" -p "LOC_C_eyeDriver";
rename -uid "D7F53DD7-4B6C-297F-3509-98A30FAC64E4";
setAttr ".v" no;
setAttr ".t" -type "double3" -2.9331068992614777 2.1778717041015625 9.1122569739818573 ;
createNode locator -n "LOC_R_eyeDriverShape" -p "LOC_R_eyeDriver";
rename -uid "7C456F8F-4440-C6AB-E0EA-3F8BFBE12BBD";
setAttr -k off ".v";
createNode transform -n "LOC_L_eyeAimUp" -p "LOC_C_eyeDriver";
rename -uid "39E9DC6B-4305-1039-1353-978F5B5F8AC6";
setAttr ".v" no;
setAttr ".t" -type "double3" 2.9223375320434539 9.9572450969737361 9.1656932532787323 ;
createNode locator -n "LOC_L_eyeAimUpShape" -p "LOC_L_eyeAimUp";
rename -uid "28656579-45B3-0F5F-3BE4-5AB06E2FA6E1";
setAttr -k off ".v";
createNode transform -n "LOC_R_eyeAimUp" -p "LOC_C_eyeDriver";
rename -uid "EB7F71A5-4665-1E52-0F9F-098CDED02488";
setAttr ".v" no;
setAttr ".t" -type "double3" -2.9331068992614777 9.9989473674815486 9.1122569739818573 ;
createNode locator -n "LOC_R_eyeAimUpShape" -p "LOC_R_eyeAimUp";
rename -uid "27949BA8-4486-4715-03D5-09948FE54202";
setAttr -k off ".v";
createNode lightLinker -s -n "lightLinker1";
rename -uid "F9D0317C-417C-161D-70EC-3FA54FF4FF9B";
setAttr -s 4 ".lnk";
setAttr -s 4 ".slnk";
createNode displayLayerManager -n "layerManager";
rename -uid "EBBB791D-4D58-9BE1-DD33-029F97FD4011";
createNode displayLayer -n "defaultLayer";
rename -uid "8C781950-4A38-A1E6-7DB9-C9AE66742526";
createNode renderLayerManager -n "renderLayerManager";
rename -uid "F79AF7F5-42BB-470B-6221-57A4A54AE748";
createNode renderLayer -n "defaultRenderLayer";
rename -uid "FBD2BD3F-4CD0-4D1B-6380-0B82C45B7C47";
setAttr ".g" yes;
createNode lambert -n "GUIAnalog_red_shader";
rename -uid "889C7E60-475A-449F-8E3A-39BAFD1B1808";
setAttr ".dc" 1;
setAttr ".c" -type "float3" 1 0 0 ;
setAttr ".ambc" -type "float3" 1 1 1 ;
createNode shadingEngine -n "lambert2SG";
rename -uid "92234C02-478C-F1AF-BB7F-05B176543179";
setAttr ".ihi" 0;
setAttr ".ro" yes;
createNode materialInfo -n "materialInfo1";
rename -uid "60A23EA0-4078-4B90-53CE-F6A13DAEB395";
createNode lambert -n "GUIAnalog_yellow_shader";
rename -uid "F7D0CA28-4401-4FCA-BD20-CE9E6027619D";
setAttr ".dc" 1;
setAttr ".c" -type "float3" 1 1 0 ;
setAttr ".ambc" -type "float3" 1 1 1 ;
createNode shadingEngine -n "GUI_shader_yellowSG";
rename -uid "B2733F56-47E5-4C29-EDE0-B79A14ED5555";
setAttr ".ihi" 0;
setAttr -s 2 ".dsm";
setAttr ".ro" yes;
createNode materialInfo -n "materialInfo2";
rename -uid "2477FE3F-4588-95B0-B50B-66A681421EC7";
createNode polyMergeVert -n "polyMergeVert1";
rename -uid "3F1DD2E5-460E-4476-7518-DDB4FCAC2B10";
setAttr ".ics" -type "componentList" 5 "vtx[0]" "vtx[10:11]" "vtx[21:22]" "vtx[32:33]" "vtx[43]";
setAttr ".ix" -type "matrix" 1 0 0 0 0 1 0 0 0 0 1 0 0 170.37808240000001 30 1;
setAttr ".d" 0.02;
setAttr ".am" yes;
createNode script -n "uiConfigurationScriptNode";
rename -uid "CCCE5341-45BB-F578-DD8C-019B5E6BA1AE";
setAttr ".b" -type "string" (
"// Maya Mel UI Configuration File.\n//\n// This script is machine generated. Edit at your own risk.\n//\n//\n\nglobal string $gMainPane;\nif (`paneLayout -exists $gMainPane`) {\n\n\tglobal int $gUseScenePanelConfig;\n\tint $useSceneConfig = $gUseScenePanelConfig;\n\tint $nodeEditorPanelVisible = stringArrayContains(\"nodeEditorPanel1\", `getPanel -vis`);\n\tint $nodeEditorWorkspaceControlOpen = (`workspaceControl -exists nodeEditorPanel1Window` && `workspaceControl -q -visible nodeEditorPanel1Window`);\n\tint $menusOkayInPanels = `optionVar -q allowMenusInPanels`;\n\tint $nVisPanes = `paneLayout -q -nvp $gMainPane`;\n\tint $nPanes = 0;\n\tstring $editorName;\n\tstring $panelName;\n\tstring $itemFilterName;\n\tstring $panelConfig;\n\n\t//\n\t// get current state of the UI\n\t//\n\tsceneUIReplacement -update $gMainPane;\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Top View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Top View\")) -mbv $menusOkayInPanels $panelName;\n"
+ "\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -editorChanged \"updateModelPanelBar\" \n -camera \"top\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n"
+ " -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n"
+ " -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n"
+ " $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Side View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Side View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -editorChanged \"updateModelPanelBar\" \n -camera \"side\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n"
+ " -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n"
+ " -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n"
+ " -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Front View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Front View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -editorChanged \"updateModelPanelBar\" \n -camera \"front\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"wireframe\" \n -activeOnly 0\n"
+ " -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n"
+ " -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n"
+ " -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Persp View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Persp View\")) -mbv $menusOkayInPanels $panelName;\n"
+ "\t\t$editorName = $panelName;\n modelEditor -e \n -docTag \"RADRENDER\" \n -editorChanged \"updateModelPanelBar\" \n -camera \"persp\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n"
+ " -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n"
+ " -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 0\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 1\n -captureSequenceNumber -1\n -width 1248\n -height 627\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n"
+ " $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n"
+ " -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -isSet 0\n -isSetMember 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n"
+ " -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -selectCommand \"<function selCom at 0x7f29c5c04aa0>\" \n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n -renderFilterIndex 0\n -selectionOrder \"chronological\" \n -expandAttribute 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"Outliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"Outliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 1\n"
+ " -showReferenceMembers 1\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n"
+ " -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"graphEditor\" (localizedPanelLabel(\"Graph Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Graph Editor\")) -mbv $menusOkayInPanels $panelName;\n"
+ "\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 1\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 0\n -showLeafs 1\n -showNumericAttrsOnly 1\n"
+ " -highlightActive 0\n -autoSelectNewObjects 1\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 1\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 1\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n"
+ " -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 1\n -displayInfinities 0\n -displayValues 0\n -autoFit 1\n -autoFitTime 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -showResults \"off\" \n -showBufferCurves \"off\" \n -smoothness \"fine\" \n -resultSamples 1\n -resultScreenSamples 0\n -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n -showCurveNames 0\n -showActiveCurveNames 0\n -stackedCurves 0\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -displayNormalized 0\n -preSelectionHighlight 0\n"
+ " -constrainDrag 0\n -classicMode 1\n -valueLinesToggle 0\n -outliner \"graphEditor1OutlineEd\" \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dopeSheetPanel\" (localizedPanelLabel(\"Dope Sheet\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dope Sheet\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n"
+ " -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 1\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 0\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 1\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n"
+ " -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -displayValues 0\n -autoFit 0\n -autoFitTime 0\n -snapTime \"integer\" \n -snapValue \"none\" \n"
+ " -outliner \"dopeSheetPanel1OutlineEd\" \n -showSummary 1\n -showScene 0\n -hierarchyBelow 0\n -showTicks 1\n -selectionWindow 0 0 0 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"timeEditorPanel\" (localizedPanelLabel(\"Time Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Time Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"clipEditorPanel\" (localizedPanelLabel(\"Trax Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Trax Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = clipEditorNameFromPanel($panelName);\n clipEditor -e \n"
+ " -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -displayValues 0\n -autoFit 0\n -autoFitTime 0\n -snapTime \"none\" \n -snapValue \"none\" \n -initialized 0\n -manageSequencer 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"sequenceEditorPanel\" (localizedPanelLabel(\"Camera Sequencer\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Camera Sequencer\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = sequenceEditorNameFromPanel($panelName);\n clipEditor -e \n -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n"
+ " -displayInfinities 0\n -displayValues 0\n -autoFit 0\n -autoFitTime 0\n -snapTime \"none\" \n -snapValue \"none\" \n -initialized 0\n -manageSequencer 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperGraphPanel\" (localizedPanelLabel(\"Hypergraph Hierarchy\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypergraph Hierarchy\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"HyperGraphEd\");\n hyperGraph -e \n -graphLayoutStyle \"hierarchicalLayout\" \n -orientation \"horiz\" \n -mergeConnections 0\n -zoom 1\n -animateTransition 0\n -showRelationships 1\n -showShapes 0\n -showDeformers 0\n -showExpressions 0\n"
+ " -showConstraints 0\n -showConnectionFromSelected 0\n -showConnectionToSelected 0\n -showConstraintLabels 0\n -showUnderworld 0\n -showInvisible 0\n -transitionFrames 1\n -opaqueContainers 0\n -freeform 0\n -imagePosition 0 0 \n -imageScale 1\n -imageEnabled 0\n -graphType \"DAG\" \n -heatMapDisplay 0\n -updateSelection 1\n -updateNodeAdded 1\n -useDrawOverrideColor 0\n -limitGraphTraversal -1\n -range 0 0 \n -iconSize \"smallIcons\" \n -showCachedConnections 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperShadePanel\" (localizedPanelLabel(\"Hypershade\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n"
+ "\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypershade\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"visorPanel\" (localizedPanelLabel(\"Visor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Visor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"nodeEditorPanel\" (localizedPanelLabel(\"Node Editor\")) `;\n\tif ($nodeEditorPanelVisible || $nodeEditorWorkspaceControlOpen) {\n\t\tif (\"\" == $panelName) {\n\t\t\tif ($useSceneConfig) {\n\t\t\t\t$panelName = `scriptedPanel -unParent -type \"nodeEditorPanel\" -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n"
+ " -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n -additiveGraphingMode 0\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -editorMode \"default\" \n $editorName;\n\t\t\t}\n\t\t} else {\n\t\t\t$label = `panel -q -label $panelName`;\n"
+ "\t\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n -additiveGraphingMode 0\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n"
+ " -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -editorMode \"default\" \n $editorName;\n\t\t\tif (!$useSceneConfig) {\n\t\t\t\tpanel -e -l $label $panelName;\n\t\t\t}\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"createNodePanel\" (localizedPanelLabel(\"Create Node\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Create Node\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"polyTexturePlacementPanel\" (localizedPanelLabel(\"UV Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"UV Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"renderWindowPanel\" (localizedPanelLabel(\"Render View\")) `;\n"
+ "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Render View\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"shapePanel\" (localizedPanelLabel(\"Shape Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tshapePanel -edit -l (localizedPanelLabel(\"Shape Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"posePanel\" (localizedPanelLabel(\"Pose Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tposePanel -edit -l (localizedPanelLabel(\"Pose Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynRelEdPanel\" (localizedPanelLabel(\"Dynamic Relationships\")) `;\n\tif (\"\" != $panelName) {\n"
+ "\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dynamic Relationships\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"relationshipPanel\" (localizedPanelLabel(\"Relationship Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Relationship Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"referenceEditorPanel\" (localizedPanelLabel(\"Reference Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Reference Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"componentEditorPanel\" (localizedPanelLabel(\"Component Editor\")) `;\n"
+ "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Component Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynPaintScriptedPanelType\" (localizedPanelLabel(\"Paint Effects\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Paint Effects\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"scriptEditorPanel\" (localizedPanelLabel(\"Script Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Script Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"profilerPanel\" (localizedPanelLabel(\"Profiler Tool\")) `;\n"
+ "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Profiler Tool\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"contentBrowserPanel\" (localizedPanelLabel(\"Content Browser\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Content Browser\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"Stereo\" (localizedPanelLabel(\"Stereo\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Stereo\")) -mbv $menusOkayInPanels $panelName;\nstring $editorName = ($panelName+\"Editor\");\n stereoCameraView -e \n -editorChanged \"updateModelPanelBar\" \n -camera \"persp\" \n -useInteractiveMode 0\n"
+ " -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n"
+ " -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererOverrideName \"stereoOverrideVP2\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 4 4 \n -bumpResolution 4 4 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 0\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n"
+ " -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 0\n -height 0\n -sceneRenderFilter 0\n"
+ " -displayMode \"centerEye\" \n -viewColor 0 0 0 1 \n -useCustomBackground 1\n $editorName;\n stereoCameraView -e -viewSelected 0 $editorName;\n stereoCameraView -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"ToggledOutliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"ToggledOutliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n"
+ " -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -isSet 0\n -isSetMember 0\n -displayMode \"DAG\" \n -expandObjects 0\n"
+ " -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -selectCommand \"pass\" \n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n -renderFilterIndex 0\n -selectionOrder \"chronological\" \n -expandAttribute 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\tif ($useSceneConfig) {\n string $configName = `getPanel -cwl (localizedPanelLabel(\"Current Layout\"))`;\n if (\"\" != $configName) {\n\t\t\tpanelConfiguration -edit -label (localizedPanelLabel(\"Current Layout\")) \n"
+ "\t\t\t\t-userCreated false\n\t\t\t\t-defaultImage \"vacantCell.xP:/\"\n\t\t\t\t-image \"\"\n\t\t\t\t-sc false\n\t\t\t\t-configString \"global string $gMainPane; paneLayout -e -cn \\\"single\\\" -ps 1 100 100 $gMainPane;\"\n\t\t\t\t-removeAllPanels\n\t\t\t\t-ap false\n\t\t\t\t\t(localizedPanelLabel(\"Persp View\")) \n\t\t\t\t\t\"modelPanel\"\n"
+ "\t\t\t\t\t\"$panelName = `modelPanel -unParent -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels `;\\n$editorName = $panelName;\\nmodelEditor -e \\n -docTag \\\"RADRENDER\\\" \\n -editorChanged \\\"updateModelPanelBar\\\" \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 0\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -greasePencils 1\\n -shadows 1\\n -captureSequenceNumber -1\\n -width 1248\\n -height 627\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n"
+ "\t\t\t\t\t\"modelPanel -edit -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels $panelName;\\n$editorName = $panelName;\\nmodelEditor -e \\n -docTag \\\"RADRENDER\\\" \\n -editorChanged \\\"updateModelPanelBar\\\" \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 0\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -greasePencils 1\\n -shadows 1\\n -captureSequenceNumber -1\\n -width 1248\\n -height 627\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n"
+ "\t\t\t\t$configName;\n\n setNamedPanelLayout (localizedPanelLabel(\"Current Layout\"));\n }\n\n panelHistory -e -clear mainPanelHistory;\n sceneUIReplacement -clear;\n\t}\n\n\ngrid -spacing 5 -size 12 -divisions 5 -displayAxes yes -displayGridLines yes -displayDivisionLines yes -displayPerspectiveLabels no -displayOrthographicLabels no -displayAxesBold yes -perspectiveLabelPosition axis -orthographicLabelPosition edge;\nviewManip -drawCompass 0 -compassAngle 0 -frontParameters \"\" -homeParameters \"\" -selectionLockParameters \"\";\n}\n");
setAttr ".st" 3;
createNode script -n "sceneConfigurationScriptNode";
rename -uid "785F78BA-4949-5C03-6D3D-9192313CFC78";
setAttr ".b" -type "string" "playbackOptions -min 0 -max 40 -ast 0 -aet 48 ";
setAttr ".st" 6;
createNode polyNormal -n "polyNormal2";
rename -uid "70447BD8-4A79-5422-829B-599579DD9DF2";
setAttr ".ics" -type "componentList" 1 "f[0:19]";
setAttr ".unm" no;
createNode polyNormal -n "polyNormal4";
rename -uid "FF53B6E6-4260-DBED-42FC-1B97BD2E814A";
setAttr ".ics" -type "componentList" 1 "f[0:19]";
setAttr ".unm" no;
createNode shapeEditorManager -n "shapeEditorManager";
rename -uid "D286AE96-4AAE-409A-C2A9-16B0B4DE9020";
createNode poseInterpolatorManager -n "poseInterpolatorManager";
rename -uid "DC12955F-40C5-EF5A-B29A-69A669F64799";
select -ne :time1;
setAttr -av -k on ".cch";
setAttr -av -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".o" 0;
setAttr -av -k on ".unw";
setAttr -av -k on ".etw";
setAttr -av -k on ".tps";
setAttr -av -k on ".tms";
select -ne :hardwareRenderingGlobals;
setAttr -av -k on ".ihi";
setAttr ".vac" 2;
setAttr -k on ".hwi";
setAttr -av ".ta";
setAttr -av ".tq";
setAttr ".etmr" no;
setAttr -av ".tmr" 4096;
setAttr -av ".aoam";
setAttr -av ".aora";
setAttr -k on ".hff";
setAttr -av -k on ".hfd";
setAttr -av -k on ".hfs";
setAttr -av -k on ".hfe";
setAttr -av -k on ".hfcr";
setAttr -av -k on ".hfcg";
setAttr -av -k on ".hfcb";
setAttr -av ".hfa";
setAttr -av ".mbe";
setAttr -av -k on ".mbsof";
setAttr -k on ".blen";
setAttr -k on ".blat";
select -ne :renderPartition;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 4 ".st";
setAttr -cb on ".an";
setAttr -cb on ".pt";
select -ne :renderGlobalsList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
select -ne :defaultShaderList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 6 ".s";
select -ne :postProcessList1;
setAttr -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
setAttr -s 2 ".p";
select -ne :defaultRenderingList1;
setAttr -k on ".ihi";
select -ne :initialShadingGroup;
setAttr -av -k on ".cch";
setAttr -k on ".fzn";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".bbx";
setAttr -k on ".vwm";
setAttr -k on ".tpv";
setAttr -k on ".uit";
setAttr -k on ".mwc";
setAttr -cb on ".an";
setAttr -cb on ".il";
setAttr -cb on ".vo";
setAttr -cb on ".eo";
setAttr -cb on ".fo";
setAttr -cb on ".epo";
setAttr -k on ".ro" yes;
select -ne :initialParticleSE;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".mwc";
setAttr -cb on ".an";
setAttr -cb on ".il";
setAttr -cb on ".vo";
setAttr -cb on ".eo";
setAttr -cb on ".fo";
setAttr -cb on ".epo";
setAttr ".ro" yes;
select -ne :defaultRenderGlobals;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -k on ".nds";
setAttr -cb on ".bnm";
setAttr -k on ".macc";
setAttr -k on ".macd";
setAttr -k on ".macq";
setAttr -k on ".mcfr";
setAttr -cb on ".ifg";
setAttr -k on ".clip";
setAttr -k on ".edm";
setAttr -av -k on ".edl";
setAttr -k on ".ren";
setAttr -av -k on ".esr";
setAttr -k on ".ors";
setAttr -cb on ".sdf";
setAttr -av -k on ".outf";
setAttr -av -cb on ".imfkey";
setAttr -av -k on ".gama";
setAttr -av -k on ".an";
setAttr -cb on ".ar";
setAttr -k on ".fs";
setAttr -k on ".ef";
setAttr -av -k on ".bfs";
setAttr -cb on ".me";
setAttr -cb on ".se";
setAttr -av -k on ".be";
setAttr -av -cb on ".ep" 1;
setAttr -k on ".fec";
setAttr -av -k on ".ofc";
setAttr -cb on ".ofe";
setAttr -cb on ".efe";
setAttr -cb on ".oft";
setAttr -cb on ".umfn";
setAttr -cb on ".ufe";
setAttr -av -k on ".pff";
setAttr -av -cb on ".peie";
setAttr -av -cb on ".ifp";
setAttr -k on ".rv";
setAttr -k on ".comp";
setAttr -k on ".cth";
setAttr -k on ".soll";
setAttr -cb on ".sosl";
setAttr -k on ".rd";
setAttr -k on ".lp";
setAttr -av -k on ".sp";
setAttr -k on ".shs";
setAttr -av -k on ".lpr";
setAttr -cb on ".gv";
setAttr -cb on ".sv";
setAttr -k on ".mm";
setAttr -av -k on ".npu";
setAttr -k on ".itf";
setAttr -k on ".shp";
setAttr -cb on ".isp";
setAttr -k on ".uf";
setAttr -k on ".oi";
setAttr -k on ".rut";
setAttr -k on ".mot";
setAttr -av -k on ".mb";
setAttr -av -k on ".mbf";
setAttr -k on ".mbso";
setAttr -k on ".mbsc";
setAttr -av -k on ".afp";
setAttr -k on ".pfb";
setAttr -k on ".pram";
setAttr -k on ".poam";
setAttr -k on ".prlm";
setAttr -k on ".polm";
setAttr -cb on ".prm";
setAttr -cb on ".pom";
setAttr -cb on ".pfrm";
setAttr -cb on ".pfom";
setAttr -av -k on ".bll";
setAttr -av -k on ".bls";
setAttr -av -k on ".smv";
setAttr -k on ".ubc";
setAttr -k on ".mbc";
setAttr -cb on ".mbt";
setAttr -k on ".udbx";
setAttr -k on ".smc";
setAttr -k on ".kmv";
setAttr -cb on ".isl";
setAttr -cb on ".ism";
setAttr -cb on ".imb";
setAttr -av -k on ".rlen";
setAttr -av -k on ".frts";
setAttr -k on ".tlwd";
setAttr -k on ".tlht";
setAttr -k on ".jfc";
setAttr -cb on ".rsb";
setAttr -k on ".ope";
setAttr -k on ".oppf";
setAttr -av -k on ".rcp";
setAttr -av -k on ".icp";
setAttr -av -k on ".ocp";
setAttr -cb on ".hbl";
select -ne :defaultResolution;
setAttr -av -k on ".cch";
setAttr -av -k on ".ihi";
setAttr -av -k on ".nds";
setAttr -k on ".bnm";
setAttr -av -k on ".w" 640;
setAttr -av -k on ".h" 480;
setAttr -av ".pa";
setAttr -av -k on ".al";
setAttr -av -k on ".dar" 1.3333332538604736;
setAttr -av -k on ".ldar";
setAttr -av -k on ".dpi";
setAttr -av -k on ".off";
setAttr -av -k on ".fld";
setAttr -av -k on ".zsl";
setAttr -av -k on ".isu";
setAttr -av -k on ".pdu";
select -ne :defaultLightSet;
setAttr -k on ".cch";
setAttr -k on ".ihi";
setAttr -av -k on ".nds";
setAttr -k on ".bnm";
setAttr -k on ".mwc";
setAttr -k on ".an";
setAttr -k on ".il";
setAttr -k on ".vo";
setAttr -k on ".eo";
setAttr -k on ".fo";
setAttr -k on ".epo";
setAttr ".ro" yes;
select -ne :defaultObjectSet;
setAttr -k on ".cch";
setAttr -k on ".ihi";
setAttr -k on ".nds";
setAttr -k on ".bnm";
setAttr -k on ".mwc";
setAttr -k on ".an";
setAttr -k on ".il";
setAttr -k on ".vo";
setAttr -k on ".eo";
setAttr -k on ".fo";
setAttr -k on ".epo";
setAttr ".ro" yes;
select -ne :hardwareRenderGlobals;
setAttr -av -k on ".cch";
setAttr -cb on ".ihi";
setAttr -av -k on ".nds";
setAttr -cb on ".bnm";
setAttr -av ".ctrs" 256;
setAttr -av ".btrs" 512;
setAttr -av -k off -cb on ".fbfm";
setAttr -av -k off -cb on ".ehql";
setAttr -av -k off -cb on ".eams";
setAttr -av -k off -cb on ".eeaa";
setAttr -av -k off -cb on ".engm";
setAttr -av -k off -cb on ".mes";
setAttr -av -k off -cb on ".emb";
setAttr -av -k off -cb on ".mbbf";
setAttr -av -k off -cb on ".mbs";
setAttr -av -k off -cb on ".trm";
setAttr -av -k off -cb on ".tshc";
setAttr -av -k off -cb on ".enpt";
setAttr -av -k off -cb on ".clmt";
setAttr -av -k off -cb on ".tcov";
setAttr -av -k off -cb on ".lith";
setAttr -av -k off -cb on ".sobc";
setAttr -av -k off -cb on ".cuth";
setAttr -av -k off -cb on ".hgcd";
setAttr -av -k off -cb on ".hgci";
setAttr -av -k off -cb on ".mgcs";
setAttr -av -k off -cb on ".twa";
setAttr -av -k off -cb on ".twz";
setAttr -cb on ".hwcc";
setAttr -cb on ".hwdp";
setAttr -cb on ".hwql";
setAttr -k on ".hwfr";
setAttr -k on ".soll";
setAttr -k on ".sosl";
setAttr -k on ".bswa";
setAttr -k on ".shml";
setAttr -k on ".hwel";
connectAttr "polyMergeVert1.out" "CTRL_C_eyesAimShape.i";
connectAttr "polyNormal4.out" "CTRL_L_eyeAimShape.i";
connectAttr "polyNormal2.out" "CTRL_R_eyeAimShape.i";
relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" "lambert2SG.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" "GUI_shader_yellowSG.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" "lambert2SG.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" "GUI_shader_yellowSG.message" ":defaultLightSet.message";
connectAttr "layerManager.dli[0]" "defaultLayer.id";
connectAttr "renderLayerManager.rlmi[0]" "defaultRenderLayer.rlid";
connectAttr "GUIAnalog_red_shader.oc" "lambert2SG.ss";
connectAttr "CTRL_C_eyesAimShape.iog" "lambert2SG.dsm" -na;
connectAttr "lambert2SG.msg" "materialInfo1.sg";
connectAttr "GUIAnalog_red_shader.msg" "materialInfo1.m";
connectAttr "GUIAnalog_yellow_shader.oc" "GUI_shader_yellowSG.ss";
connectAttr "CTRL_R_eyeAimShape.iog" "GUI_shader_yellowSG.dsm" -na;
connectAttr "CTRL_L_eyeAimShape.iog" "GUI_shader_yellowSG.dsm" -na;
connectAttr "GUI_shader_yellowSG.msg" "materialInfo2.sg";
connectAttr "GUIAnalog_yellow_shader.msg" "materialInfo2.m";
connectAttr "polySurfaceShape1.o" "polyMergeVert1.ip";
connectAttr "CTRL_C_eyesAimShape.wm" "polyMergeVert1.mp";
connectAttr "polySurfaceShape4.o" "polyNormal2.ip";
connectAttr "polySurfaceShape6.o" "polyNormal4.ip";
connectAttr "lambert2SG.pa" ":renderPartition.st" -na;
connectAttr "GUI_shader_yellowSG.pa" ":renderPartition.st" -na;
connectAttr "GUIAnalog_red_shader.msg" ":defaultShaderList1.s" -na;
connectAttr "GUIAnalog_yellow_shader.msg" ":defaultShaderList1.s" -na;
connectAttr "defaultRenderLayer.msg" ":defaultRenderingList1.r" -na;
// End of head_ac.ma

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

73
resources/data/ARKit.json Normal file
View File

@ -0,0 +1,73 @@
{
"ARKit": [
0,
1,
2,
3,
4,
5,
6,
7,
10,
11,
14,
15,
16,
17,
18,
19,
30,
31,
32,
33,
34,
35,
36,
37,
51,
52,
65,
66,
67,
68,
69,
70,
73,
74,
75,
76,
77,
78,
79,
80,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
99,
100,
101,
102,
175,
176,
179,
180,
191,
192,
193,
194,
198,
199,
200,
201,
253
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,62 @@
{
"type": [
{
"MetaHuman": [
"MetaHuman"
]
},
{
"DAZ": [
"DAZG8F",
"DAZG8M",
"DAZG9"
]
},
{
"VFACE": [
"VFACE"
]
},
{
"CC": [
"CC3"
]
}
],
"MetaHuman":{
"path": "files/presets/metahuman/",
"dna": "files/data/MetaHuman/Deploy.dna",
"jointsInfo": "files/data/MetaHuman/JointsInfo.json",
"vertexsInfo": "files/data/MetaHuman/VertexsInfo.json"
},
"DAZG8F":{
"path": "files/presets/daz/",
"dna": "files/data/DAZG8F/Deploy.dna",
"jointsInfo": "files/data/DAZG8F/JointsInfo.json",
"vertexsInfo": "files/data/DAZG8F/VertexsInfo.json"
},
"DAZG8M":{
"path": "files/presets/daz/",
"dna": "files/data/DAZG8M/Deploy.dna",
"jointsInfo": "files/data/DAZG8M/JointsInfo.json",
"vertexsInfo": "files/data/DAZG8M/VertexsInfo.json"
},
"DAZG9":{
"path": "files/presets/daz/",
"dna": "files/data/DAZG9/Deploy.dna",
"jointsInfo": "files/data/DAZG9/JointsInfo.json",
"vertexsInfo": "files/data/DAZG9/VertexsInfo.json"
},
"VFACE":{
"path": "files/presets/vface/",
"dna": "files/data/VFACE/Deploy.dna",
"jointsInfo": "files/data/VFACE/JointsInfo.json",
"vertexsInfo": "files/data/VFACE/VertexsInfo.json"
},
"CC3":{
"path": "files/presets/cc/",
"dna": "files/data/CC3/Deploy.dna",
"jointsInfo": "files/data/CC3/JointsInfo.json",
"vertexsInfo": "files/data/CC3/VertexsInfo.json"
}
}

168407
resources/gui.ma Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,177 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
MetaHuman Body Animation
"""
import os # 导入os模块
import sys # 导入sys模块
import json # 导入json模块
import maya.cmds as cmds # 导入maya命令模块
def mgApplyBodyMocap():
objLs = cmds.ls(sl=1) # 获取当前选中的对象列表
namespace = ''
filePath = cmds.fileDialog2(fileMode=1, caption="Import Metahuman Body Animation") # 打开文件对话框以选择动画文件
if not filePath:
print("No file selected.") # 如果未选择文件,打印消息并返回
return
filePath = filePath[0] # 获取选择的文件路径
if len(objLs) > 0:
if ':' in objLs[0]:
namespace = objLs[0].split(':')[0] + ':' # 获取选中对象的命名空间
else:
namespace = ''
# 加载JSON文件
try:
with open(filePath, 'r') as f:
anim_keys = json.load(f) # 读取并加载json文件
except ValueError as e:
print("Error loading JSON file:", e) # 如果加载json文件出错打印错误消息并返回
return
# 要转换的控制器列表
controllers_to_convert = [
'hips_ctrl', 'spine_01_ctrl', 'spine_02_ctrl', 'spine_03_ctrl',
'neck_01_ctrl', 'neck_02_ctrl', 'head_ctrl', 'body_ctrl'
]
controllers_to_special_convert_l = [
'hand_l_ik_ctrl', 'foot_l_ik_ctrl'
]
controllers_to_special_convert_r = [
'hand_r_ik_ctrl', 'foot_r_ik_ctrl'
]
for dict_key in anim_keys:
keyframes_list = anim_keys[dict_key] # 获取当前控制器的关键帧列表
ctrl = dict_key
attr = 'translateY'
if '.' in ctrl:
ctrl_string_list = ctrl.split('.')
ctrl = ctrl_string_list[0]
if len(ctrl_string_list) > 2:
attr = ctrl_string_list[1].replace('Location', 'translate').replace('Rotation', 'rotate').replace('Scale', 'scale') + ctrl_string_list[-1].upper()
else:
attr = 'translate' + ctrl_string_list[-1].upper()
# 检查控制器名称末尾是否有数字
ctrl_name = ctrl
if ctrl_name.split('_')[-1].isdigit():
ctrl_name = ctrl_name.replace('_' + ctrl_name.split('_')[-1], '')
ctrl_name = namespace + ctrl_name # 添加命名空间到控制器名称
if cmds.objExists(ctrl_name): # 如果控制器对象存在
for key_num in range(0, len(keyframes_list)):
key_val = keyframes_list[key_num]
key_value = key_val[0]
key_time = key_val[1]
# 初始化变量以存储旋转值和平移值
rotateX = None
rotateY = None
rotateZ = None
translateX = None
translateY = None
translateZ = None
# 将关键帧值分配给适当的属性
if 'rotateX' in attr:
rotateX = key_value
elif 'rotateY' in attr:
rotateY = key_value
elif 'rotateZ' in attr:
rotateZ = key_value
elif 'translateX' in attr:
translateX = key_value
elif 'translateY' in attr:
translateY = key_value
elif 'translateZ' in attr:
translateZ = key_value
# 对指定控制器的旋转进行特殊处理
if ctrl_name in controllers_to_convert:
if rotateX is not None:
# 将X旋转转换为Z旋转并取负值
cmds.setKeyframe(ctrl_name, attribute='rotateZ', v=-rotateX, t=key_time)
if rotateZ is not None:
# 将Z旋转转换为X旋转并取负值
cmds.setKeyframe(ctrl_name, attribute='rotateX', v=-rotateZ, t=key_time)
if rotateY is not None:
cmds.setKeyframe(ctrl_name, attribute='rotateY', v=rotateY, t=key_time)
# 确保body_ctrl的平移数据被正确导入
if ctrl_name == 'body_ctrl':
if translateX is not None:
# 将X平移转换为Z平移并取负值
cmds.setKeyframe(ctrl_name, attribute='translateZ', v=-translateX, t=key_time)
if translateY is not None:
# 将Y平移转换为负值
cmds.setKeyframe(ctrl_name, attribute='translateY', v=-translateY, t=key_time)
if translateZ is not None:
# 将Z平移转换为X平移
cmds.setKeyframe(ctrl_name, attribute='translateX', v=translateZ, t=key_time)
elif ctrl_name in controllers_to_special_convert_l:
if rotateX is not None:
# 将X旋转转换为Z旋转并取负值
cmds.setKeyframe(ctrl_name, attribute='rotateZ', v=-rotateX, t=key_time)
if rotateZ is not None:
# 将Z旋转转换为X旋转并取负值
cmds.setKeyframe(ctrl_name, attribute='rotateX', v=-rotateZ, t=key_time)
if rotateY is not None:
# 将Y旋转转换为负值
cmds.setKeyframe(ctrl_name, attribute='rotateY', v=-rotateY, t=key_time)
if translateX is not None:
# 将X平移转换为Z平移并取负值
cmds.setKeyframe(ctrl_name, attribute='translateZ', v=-translateX, t=key_time)
if translateY is not None:
# 将Y平移转换为负值
cmds.setKeyframe(ctrl_name, attribute='translateY', v=-translateY, t=key_time)
if translateZ is not None:
# 将Z平移转换为X平移不取负值
cmds.setKeyframe(ctrl_name, attribute='translateX', v=translateZ, t=key_time)
elif ctrl_name in controllers_to_special_convert_r:
if rotateX is not None:
# 将X旋转转换为Z旋转并取负值
cmds.setKeyframe(ctrl_name, attribute='rotateZ', v=-rotateX, t=key_time)
if rotateZ is not None:
# 将Z旋转转换为X旋转并取负值
cmds.setKeyframe(ctrl_name, attribute='rotateX', v=-rotateZ, t=key_time)
if rotateY is not None:
# 将Y旋转转换为负值
cmds.setKeyframe(ctrl_name, attribute='rotateY', v=-rotateY, t=key_time)
if translateX is not None:
# 将X平移转换为Z平移不取负值
cmds.setKeyframe(ctrl_name, attribute='translateZ', v=translateX, t=key_time)
if translateY is not None:
# 将Y平移导入但不转换
cmds.setKeyframe(ctrl_name, attribute='translateY', v=translateY, t=key_time)
if translateZ is not None:
# 将Z平移转换为X平移并取负值
cmds.setKeyframe(ctrl_name, attribute='translateX', v=-translateZ, t=key_time)
else:
# 对于其他控制器将Y旋转和Z旋转取负值
if rotateY is not None:
cmds.setKeyframe(ctrl_name, attribute='rotateY', v=-rotateY, t=key_time)
if rotateZ is not None:
cmds.setKeyframe(ctrl_name, attribute='rotateZ', v=-rotateZ, t=key_time)
if rotateX is not None:
cmds.setKeyframe(ctrl_name, attribute='rotateX', v=rotateX, t=key_time)
# 对于非指定控制器,直接设置平移数据
if translateX is not None:
cmds.setKeyframe(ctrl_name, attribute='translateX', v=translateX, t=key_time)
if translateY is not None:
cmds.setKeyframe(ctrl_name, attribute='translateY', v=translateY, t=key_time)
if translateZ is not None:
cmds.setKeyframe(ctrl_name, attribute='translateZ', v=translateZ, t=key_time)
else:
print('Skipping ' + ctrl_name + ' as no such object exists.') # 如果对象不存在,打印跳过消息
print('Applied Animation to Body Rig.') # 打印应用动画完成消息
mgApplyBodyMocap() # 调用导入函数

View File

@ -0,0 +1,54 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
MetaHuman Face Animation
"""
import os, sys
import maya.cmds as cmds
import imp
def mgApplyFaceMocap():
objLs = cmds.ls(sl=1)
namespace = ''
filePath = cmds.fileDialog2(fileMode=1, caption="Import Metahuman Face Animation")[0]
if len(objLs)>0:
if ':' in objLs[0]:
namespace = objLs[0].split(':')[0] + ':'
else:
namespace = ''
anim_keys_file = imp.load_source('', filePath)
anim_keys = anim_keys_file.anim_keys_dict
for dict_key in anim_keys:
keyframes_list = anim_keys[dict_key]
ctrl = dict_key
attr = 'translateY'
if '.' in ctrl:
ctrl_string_list = ctrl.split('.')
ctrl = ctrl_string_list[0]
if len(ctrl_string_list)>2:
attr = ctrl_string_list[1].replace('Location', 'translate').replace('Rotation', 'rotate').replace('Scale', 'scale') + ctrl_string_list[-1].upper()
else:
attr = 'translate' + ctrl_string_list[-1].upper()
# check for numbers at the end of cntrl name
ctrl_name = ctrl
if ctrl_name.split('_')[-1].isdigit():
ctrl_name = ctrl_name.replace('_' + ctrl_name.split('_')[-1], '')
ctrl_name = namespace + ctrl_name
if cmds.objExists(ctrl_name):
for key_num in range(0,len(keyframes_list)):
key_val = keyframes_list[key_num]
cmds.setKeyframe(ctrl_name, attribute=attr, v = key_val[0], t=key_val[1] )
else:
print('Skipping ' + ctrl_name + ' as no such object exists.')
print('Applied Animation to Face Rig.')
mgApplyFaceMocap()

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
pelvis
pelvis
spine_01
spine_02
spine_03
spine_04
spine_05
neck_01
neck_02
head
clavicle_l
upperarm_l
lowerarm_l
hand_l
clavicle_r
upperarm_r
lowerarm_r
hand_r
thigh_l
calf_l
foot_l
ball_l
thigh_r
calf_r
foot_r
ball_r
thumb_01_l
thumb_02_l
thumb_03_l
index_metacarpal_l
index_01_l
index_02_l
index_03_l
middle_metacarpal_l
middle_01_l
middle_02_l
middle_03_l
ring_metacarpal_l
ring_01_l
ring_02_l
ring_03_l
pinky_metacarpal_l
pinky_01_l
pinky_02_l
pinky_03_l
thumb_01_r
thumb_02_r
thumb_03_r
index_metacarpal_r
index_01_r
index_02_r
index_03_r
middle_metacarpal_r
middle_01_r
middle_02_r
middle_03_r
ring_metacarpal_r
ring_01_r
ring_02_r
ring_03_r
pinky_metacarpal_r
pinky_01_l
pinky_02_r
pinky_03_r

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

74
resources/vtx_color.py Normal file

File diff suppressed because one or more lines are too long

View File

@ -23,8 +23,15 @@ SCRIPTS_PATH = str(os.path.join(TOOL_PATH, "scripts").replace("\\", "/"))
RESOURCES_PATH = str(os.path.join(TOOL_PATH, "resources").replace("\\", "/"))
ICONS_PATH = str(os.path.join(RESOURCES_PATH, "icons").replace("\\", "/"))
STYLES_PATH = str(os.path.join(RESOURCES_PATH, "styles").replace("\\", "/"))
# DNA
DNA_FILE_PATH = str(os.path.join(RESOURCES_PATH, "dna").replace("\\", "/"))
DNA_IMG_PATH = str(os.path.join(RESOURCES_PATH, "img").replace("\\", "/"))
DNA_VERSION = str("MH.4")
LOD_LEVELS = range(8)
DEFAULT_MESH_INDICES = range(54)
GUI_PATH = str(os.path.join(RESOURCES_PATH, "gui.ma").replace("\\", "/"))
ASSEMBLE_SCRIPT = str(os.path.join(RESOURCES_PATH, "additional_assemble_script.py").replace("\\", "/"))
# SYSTEM_INFO
SYSTEM_OS = str("Windows" if cmds.about(os=True).lower().startswith("win") else "Linux")
@ -79,7 +86,9 @@ if __name__ == "__main__":
BUILDER_PATH,
DNALIB_PATH,
UI_PATH,
UTILS_PATH
UTILS_PATH,
GUI_PATH,
ASSEMBLE_SCRIPT
}
for i in validate_paths:
if not i in sys.path:

View File

@ -24,141 +24,95 @@ except ImportError:
#===================================== 2. BlendShape Manager Class =====================================
# 菜单
@staticmethod
def create_rl4_node(): pass
@staticmethod
def delete_rl4_node(): pass
@staticmethod
def mirror_left_to_right(): pass
@staticmethod
def mirror_right_to_left(): pass
@staticmethod
def pose_a_to_t(): pass
@staticmethod
def pose_t_to_a(): pass
@staticmethod
def transfer_lod_texture(): pass
@staticmethod
def set_joint_color(): pass
@staticmethod
def unmark_all(): pass
@staticmethod
def rebuild_all_targets(): pass
@staticmethod
def bake_all_animations(): pass
@staticmethod
def bake_all_keyframes(): pass
@staticmethod
def restore_expression(): pass
@staticmethod
def blend_filter(): pass
@staticmethod
def range_increase(): pass
@staticmethod
def range_reduction(): pass
@staticmethod
def flip_target(): pass
@staticmethod
def mirror_target(): pass
@staticmethod
def find_flip_target(): pass
@staticmethod
def add_blend_shape(): pass
@staticmethod
def batch_blend_shape(): pass
@staticmethod
def rebuild_selected_target(): pass
@staticmethod
def blend_selected_target(): pass
@staticmethod
def psd(): pass
@staticmethod
def bse(): pass
@staticmethod
def key(): pass
@staticmethod
def mir(): pass
@staticmethod
def ark(): pass
@staticmethod
def ctr(): pass
@staticmethod
def restore_default_expression(): pass
@staticmethod
def find_selected_expression(): pass
@staticmethod
def write_current_expression(): pass
@staticmethod
def control_panel_search(): pass
@staticmethod
def select_associated_joints(): pass
@staticmethod
def write_mirror_expression(): pass
@staticmethod
def organize_targets(): pass
@staticmethod
def advanced_blend(): pass
@staticmethod
def rebuild_targets(): pass
@staticmethod
def add_blend(): pass
@staticmethod
def delete_blend(): pass
@staticmethod
def batch_blend(): pass
@staticmethod
def show_help(): pass
@staticmethod
def edit_control_panel(): pass
@staticmethod
def preview_control_panel(): pass
@staticmethod
def import_editor(): pass
@staticmethod
def import_editor_preview(): pass

View File

@ -23,32 +23,22 @@ except ImportError:
wrapInstance = None
#===================================== 2. DNA Definition Class =====================================
@staticmethod
def write_joints_weights(): pass
@staticmethod
def write_geometry(): pass
@staticmethod
def write_skin_weights(): pass
@staticmethod
def write_blend_targets(): pass
@staticmethod
def create_new_lod(): pass
@staticmethod
def bind_skin(): pass
@staticmethod
def unbind_skin(): pass
@staticmethod
def update_runtime_lod(): pass
@staticmethod
def quick_create_binding(): pass
@staticmethod
def create_skin(): pass

View File

@ -122,10 +122,9 @@ class MenuManager:
("创建RL4节点", "connect.png", adjust_utils.create_rl4_node),
("删除RL4节点", "disconnect.png", adjust_utils.delete_rl4_node),
None,
("导入FBX蒙皮", "export_skin.png", rigging_utils.import_skin),
("导出FBX蒙皮", "export_skin.png", rigging_utils.export_skin),
None,
("退出", "exit.png", menu_utils.shutdown),
None,
("帮助文档", "help.png", menu_utils.show_help),
("关于", "warning.png", menu_utils.show_about)
]
@ -144,7 +143,7 @@ class MenuManager:
icon_path = os.path.join(data.ICONS_PATH, icon)
if os.path.exists(icon_path):
action.setIcon(QtGui.QIcon(icon_path))
action.triggered.connect(lambda checked=False, cb=callback: cb())
action.triggered.connect(lambda checked=False, fn=callback: fn())
menu.addAction(action)
def _add_toolbar_items(self, toolbar, items):
@ -159,5 +158,5 @@ class MenuManager:
icon_path = os.path.join(data.ICONS_PATH, icon)
if os.path.exists(icon_path):
action.setIcon(QtGui.QIcon(icon_path))
action.triggered.connect(lambda checked=False, cb=callback: cb())
action.triggered.connect(lambda checked=False, fn=callback: fn())
toolbar.addAction(action)

View File

@ -4,6 +4,7 @@
#===================================== 1. Module Imports =====================================
import maya.cmds as cmds
import maya.mel as mel
import webbrowser
import os
from scripts.config import data
@ -24,34 +25,24 @@ except ImportError:
#===================================== 2. Menu Utils =====================================
# File
@staticmethod
def load_dna(): pass
@staticmethod
def save_dna(): pass
@staticmethod
def load_project_dna(): pass
@staticmethod
def rename_blendshape_target(): pass
@staticmethod
def reset_blendshape_target(): pass
@staticmethod
def export_fbx(): pass
@staticmethod
def shutdown(): pass
@staticmethod
def set_chinese(): pass
@staticmethod
def set_english(): pass
@staticmethod
def show_help():
"""显示帮助文档"""
try:
@ -60,7 +51,6 @@ def show_help():
except Exception as e:
cmds.warning(f"打开帮助文档失败: {str(e)}")
@staticmethod
def show_about():
"""显示关于信息"""
try:

View File

@ -23,93 +23,59 @@ except ImportError:
wrapInstance = None
#===================================== 2. Model Manager Class =====================================
@staticmethod
def clean_mesh(): pass
def load_custom_models(): pass
@staticmethod
def create_lod(): pass
@staticmethod
def auto_load_models(): pass
@staticmethod
def standardize_naming(): pass
@staticmethod
def auto_group(): pass
@staticmethod
def split_mesh(): pass
@staticmethod
def generate_facial_accessories(): pass
@staticmethod
def fix_split(): pass
@staticmethod
def fix_normals(): pass
@staticmethod
def fix_vertex_order(): pass
@staticmethod
def fix_seams(): pass
@staticmethod
def clean_options(): pass
@staticmethod
def import_skeleton(): pass
@staticmethod
def create_skin(): pass
@staticmethod
def export_skin(): pass
@staticmethod
def import_skin(): pass
@staticmethod
def copy_skin(): pass
@staticmethod
def create_rbf_deformer(): pass
@staticmethod
def quick_bind_clothing(): pass
@staticmethod
def clone_blendshape(): pass
@staticmethod
def transfer_uv_order(): pass
@staticmethod
def create_face_controller(): pass
@staticmethod
def extract_52bs(): pass
@staticmethod
def fix_joint_orientation(): pass
@staticmethod
def create_body_controller(): pass
@staticmethod
def import_face_animation(): pass
@staticmethod
def import_body_animation(): pass

View File

@ -24,89 +24,61 @@ except ImportError:
#===================================== 2. Rigging Manager Class =====================================
# 菜单
@staticmethod
def export_skin(): pass
@staticmethod
def import_skin(): pass
@staticmethod
def copy_skin(): pass
@staticmethod
def create_rbf_deformer(): pass
@staticmethod
def quick_bind_clothing(): pass
@staticmethod
def clone_blendshape(): pass
@staticmethod
def transfer_uv_order(): pass
@staticmethod
def create_face_controller(): pass
@staticmethod
def extract_52bs(): pass
@staticmethod
def fix_joint_orientation(): pass
@staticmethod
def create_body_controller(): pass
@staticmethod
def import_face_animation(): pass
@staticmethod
def import_body_animation(): pass
# 预设
@staticmethod
def update_dna_button(): pass
@staticmethod
def export_preset(): pass
@staticmethod
def import_preset(): pass
@staticmethod
def load_project_dna(): pass
@staticmethod
def load_preset(): pass
@staticmethod
def data_layer(): pass
@staticmethod
def overwirte_description(): pass
# 描述
@staticmethod
def create_description(): pass
@staticmethod
def clear_preview(): pass
@staticmethod
def import_skeleton(): pass
@staticmethod
def create_binding(): pass
@staticmethod
def create_skin(): pass
@staticmethod
def import_preview(): pass
@staticmethod
def create_preview(): pass
@staticmethod
def load_dna(): pass

View File

@ -0,0 +1,27 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
from Core import GetMeshes, GetBlendShape
def AddBlendShape(targetName):
# 获取当前选择的对象
sel = cmds.ls(selection=True)
for obj in sel:
for j in range(50):
meshe = GetMeshes(m=j)
if obj == meshe:
if targetName:
blendShape = GetBlendShape(meshe)
if not cmds.objExists(blendShape):
blendShape = GetMeshes(i=j) + "_blendShapes"
cmds.blendShape(meshe, automatic=True, name=blendShape)
attrWeight = blendShape + ".weight"
currentBlendShapeList = cmds.listAttr(attrWeight, multi=True)
if targetName not in currentBlendShapeList:
cmds.duplicate(meshe, returnRootsOnly=True, name=targetName)
targetIndex = cmds.getAttr(attrWeight, size=True)
cmds.blendShape(blendShape, edit=True, target=(meshe, targetIndex, targetName, 1), weight=(targetIndex, 0))
cmds.delete(targetName)
cmds.select(sel, replace=True)

View File

@ -0,0 +1,35 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
from Core import GetMeshes
def AutomaticGrouping():
# 遍历LOD级别
for i in range(8):
lodMesh = GetMeshes(lod=i)
group = "head_lod{}_grp".format(i)
if not cmds.objExists(group):
cmds.group(em=True, name=group)
for j in range(len(lodMesh)):
if lodMesh[j] >= 50:
continue
mesh = GetMeshes(m=lodMesh[j])
if cmds.objExists(mesh):
try:
cmds.parent(mesh, group)
except:
pass
bodyGrps = ["body_lod0_grp", "body_lod1_grp", "body_lod2_grp", "body_lod3_grp"]
for i in range(4):
bodyIndex = 50 + i
mesh = GetMeshes(m=bodyIndex)
if not cmds.objExists(bodyGrps[i]):
cmds.group(em=True, name=bodyGrps[i])
if cmds.objExists(mesh):
try:
cmds.parent(mesh, bodyGrps[i])
except:
pass

View File

@ -0,0 +1,81 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
import re
from Core import GetMeshes, GetBlendShapes, ProgressBar, SetBlendShapes
def batch_add_blend_shape(lod, meshes):
"""
批量为指定LOD级别的模型添加混合变形目标
参数:
lod (int): LOD级别
meshes (list): 要处理的网格体名称列表
"""
# 获取指定LOD级别的所有网格体索引
mesh_indices = GetMeshes(lod=lod)
# 开始进度条
ProgressBar(sp=True)
for mesh_index in mesh_indices:
mesh = GetMeshes(m=mesh_index)
if cmds.objExists(mesh):
lod_mesh = GetMeshes(i=mesh_index)
# 使用正则表达式匹配第一个下划线前的内容
head = re.match(r'[^_]+', lod_mesh).group(0)
if head in meshes:
blend_shape = f"{lod_mesh}_blendShapes"
if not cmds.objExists(blend_shape):
# 创建混合变形节点
cmds.blendShape(mesh, automatic=True, name=blend_shape)
# 根据不同的模型类型处理不同的目标数量
target_count_map = {
"head": 0,
"teeth": 1,
"saliva": 1,
"eyeLeft": 3,
"eyeRight": 4,
"eyeshell": 8,
"eyelashes": 8,
"eyeEdge": 8,
"cartilage": 8
}
if head in target_count_map:
target_count = target_count_map[head]
count = GetBlendShapes(tc=target_count)
# 设置进度条
ProgressBar(max_value=count)
ProgressBar(t=f"[{blend_shape}] Creating Target Mesh...")
# 创建混合变形目标
for index in range(count):
ProgressBar(apr=1)
bs_name = GetBlendShapes(bsn=target_count, index=index)
# 复制网格体作为目标
cmds.duplicate(mesh, returnRootsOnly=True, name=bs_name)
# 对LOD0级别的特定模型设置混合变形目标
if lod == 0 and (head in ["head", "teeth", "cartilage"]):
SetBlendShapes(ct=mesh_index, index=index, target=bs_name)
# 添加混合变形目标
cmds.blendShape(
blend_shape,
edit=True,
tangentSpace=True,
target=(mesh, index, bs_name, 1.0),
weight=(index, 0)
)
# 删除临时目标模型
cmds.delete(bs_name)
# 结束进度条
ProgressBar(ep=True)

View File

@ -0,0 +1,37 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
import re
from Core import GetMeshes
def batch_del_blend_shape(lod, meshes):
"""
批量删除指定LOD级别模型的混合变形节点
参数:
lod (int): LOD级别
meshes (list): 要处理的网格体名称列表
"""
# 获取指定LOD级别的所有网格体索引
mesh_indices = GetMeshes(lod=lod)
for mesh_index in mesh_indices:
# 获取网格体名称
mesh = GetMeshes(m=mesh_index)
if cmds.objExists(mesh):
# 获取LOD网格体名称
lod_mesh = GetMeshes(i=mesh_index)
# 使用正则表达式匹配第一个下划线前的内容
head = re.match(r'[^_]+', lod_mesh).group(0)
# 如果当前模型在要处理的列表中
if head in meshes:
# 构建混合变形节点名称
blend_shape = f"{lod_mesh}_blendShapes"
# 如果混合变形节点存在则删除
if cmds.objExists(blend_shape):
cmds.delete(blend_shape)

View File

@ -0,0 +1,105 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
import maya.mel as mel
from Core import get_orig_name, get_orig_shape_name, ProgressBar, GetBlendShape
def bind_pose_reset(objs):
"""
重置模型的绑定姿势
参数:
objs (list): 要处理的模型列表
"""
# 开始进度条
ProgressBar(sp=True)
ProgressBar(max_value=len(objs))
for obj in objs:
# 更新进度条
ProgressBar(t=f"[{obj}] Bind Pose Reset...")
ProgressBar(apr=1)
# 获取蒙皮变形节点
skin_cluster = mel.eval(f'findRelatedSkinCluster("{obj}")')
if cmds.objExists(skin_cluster):
# 获取混合变形节点
blend_shape = GetBlendShape(obj)
# 创建临时复制模型
copy_name = cmds.duplicate(obj, name=f"{obj}_CopyTarget", returnRootsOnly=True)
cmds.blendShape(copy_name[0])
cmds.delete(copy_name[0], constructionHistory=True)
# 获取骨骼并应用蒙皮
bones = cmds.skinCluster(skin_cluster, query=True, influence=True)
cmds.skinCluster(bones, copy_name[0], toSelectedBones=True)
# 复制蒙皮权重
cmds.copySkinWeights(
sourceShape=obj,
destinationShape=copy_name[0],
noMirror=True,
surfaceAssociation="closestPoint",
influenceAssociation=["closestJoint", "oneToOne"]
)
# 解绑原模型
cmds.skinCluster(obj, edit=True, unbind=True)
# 获取复制模型的形状节点
target_shape = cmds.pickWalk(copy_name[0], direction="down")
if cmds.objExists(blend_shape):
# 处理带有混合变形的情况
orig = get_orig_name(obj)
try:
cmds.connectAttr(f"{orig[0]}.outMesh", f"{blend_shape}.originalGeometry[0]", force=True)
cmds.connectAttr(f"{orig[0]}.worldMesh[0]", f"{blend_shape}.input[0].inputGeometry", force=True)
except: pass
cmds.currentTime(0)
cmds.connectAttr(f"{target_shape[0]}.outMesh", f"{orig[0]}.inMesh", force=True)
cmds.currentTime(1)
cmds.disconnectAttr(f"{target_shape[0]}.outMesh", f"{orig[0]}.inMesh")
cmds.currentTime(0)
else:
# 处理不带混合变形的情况
orig = get_orig_shape_name(obj)
if orig:
cmds.currentTime(0)
cmds.connectAttr(f"{target_shape[0]}.outMesh", f"{orig[0]}.inMesh", force=True)
cmds.currentTime(1)
cmds.disconnectAttr(f"{target_shape[0]}.outMesh", f"{orig[0]}.inMesh")
cmds.currentTime(0)
# 重置控制点位置
vertex_count = cmds.polyEvaluate(orig[0], vertex=True)
for i in range(vertex_count):
cmds.setAttr(f"{orig[0]}.controlPoints[{i}]", 0, 0, 0, type="float3")
else:
# 处理没有Orig节点的情况
still_shape = cmds.pickWalk(obj, direction="down")
cmds.currentTime(0)
cmds.connectAttr(f"{target_shape[0]}.outMesh", f"{still_shape[0]}.inMesh", force=True)
cmds.currentTime(1)
cmds.disconnectAttr(f"{target_shape[0]}.outMesh", f"{still_shape[0]}.inMesh")
cmds.currentTime(0)
# 重新绑定蒙皮并复制权重
cmds.skinCluster(bones, obj, name=skin_cluster, toSelectedBones=True)
cmds.copySkinWeights(
sourceShape=copy_name[0],
destinationShape=obj,
noMirror=True,
surfaceAssociation="closestPoint",
influenceAssociation=["closestJoint", "oneToOne"]
)
# 删除临时模型
cmds.delete(copy_name[0])
# 结束进度条
ProgressBar(ep=True)

View File

@ -0,0 +1,59 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
import maya.mel as mel
from Core import GetMeshes, GetJoints
def bind_skin_cluster():
"""
为模型绑定蒙皮变形器
- 处理LOD0到LOD7的所有模型
- 根据模型索引获取对应的骨骼并绑定
- 设置最大影响数
"""
# 遍历8个LOD级别
for i in range(8):
# 获取当前LOD级别的骨骼列表
joint_lod = GetJoints(lod=i, type="string")
# 检查所有骨骼是否存在
exists = True
for joint in joint_lod:
if not cmds.objExists(joint):
exists = False
break
# 如果所有骨骼都存在处理当前LOD级别的模型
if exists:
# 获取当前LOD级别的模型索引列表
lod_indices = GetMeshes(lod=i)
# 遍历处理每个模型
for mesh_index in lod_indices:
# 获取模型名称
mesh = GetMeshes(m=mesh_index)
if cmds.objExists(mesh):
# 检查是否已经有蒙皮变形器
skin_cluster = mel.eval(f'findRelatedSkinCluster("{mesh}")')
if not cmds.objExists(skin_cluster):
# 构建蒙皮变形器名称
name = f"{GetMeshes(i=mesh_index)}_skinCluster"
# 获取影响骨骼和最大影响数
influences = GetJoints(inf=mesh_index)
max_influences = GetJoints(mi=mesh_index)
# 创建蒙皮变形器
cmds.skinCluster(
influences,
mesh,
name=name,
maximumInfluences=max_influences,
toSelectedBones=True
)
# 执行权重绑定
mel.eval('SGBindSkinClusterWeights')

View File

@ -0,0 +1,110 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
import maya.mel as mel
def blend_shape_find_flip_target(axis, target_ids_a, target_ids_b, blend_shape):
"""
查找并设置混合变形目标的镜像关系
参数:
axis (int): 镜像轴向 (1=X, 2=Y, 3=Z, 4=Topology)
target_ids_a (list): 源目标ID列表
target_ids_b (list): 目标ID列表
blend_shape (str): 混合变形节点名称
"""
# 检查混合变形节点是否存在
if not cmds.objExists(blend_shape):
cmds.warning(f"No Exists BlendShape: {blend_shape}")
return
# 检查源目标和目标列表长度是否相等
if len(target_ids_a) != len(target_ids_b):
cmds.warning("Unequal Mirror Targets...")
return
# 获取当前对称建模设置
original_symmetry = cmds.symmetricModelling(query=True, symmetry=True)
symmetry_space = None
symmetry_axis = None
if original_symmetry:
symmetry_space = cmds.symmetricModelling(query=True, about=True)
if symmetry_space == "topo":
symmetry_axis = mel.eval('blendShapeGetTopoSymmetryEdge()')
else:
symmetry_axis = cmds.symmetricModelling(query=True, axis=True)
# 处理每对目标
for target_a, target_b in zip(target_ids_a, target_ids_b):
# 检查并重命名目标
target_name = f"{blend_shape}.weight[{target_a}]"
target_name = cmds.aliasAttr(target_name, query=True)
exist = False
if cmds.objExists(target_name):
exist = True
cmds.rename(target_name, f"{target_name}_temp")
# 重新生成目标并设置连接
target_mesh = cmds.sculptTarget(
blend_shape,
edit=True,
regenerate=True,
target=target_a
)
target_mesh_shape = cmds.listRelatives(target_mesh[0], shapes=True)
# 断开原有连接并建立新连接
cmds.disconnectAttr(
f"{target_mesh_shape[0]}.worldMesh[0]",
f"{blend_shape}.inputTarget[0].inputTargetGroup[{target_a}].inputTargetItem[6000].inputGeomTarget"
)
cmds.connectAttr(
f"{target_mesh_shape[0]}.worldMesh[0]",
f"{blend_shape}.inputTarget[0].inputTargetGroup[{target_b}].inputTargetItem[6000].inputGeomTarget",
force=True
)
# 删除临时目标网格
cmds.delete(target_mesh)
# 恢复原始名称
if exist:
cmds.rename(f"{target_name}_temp", target_name)
# 获取几何体索引
geometry_indices = cmds.blendShape(blend_shape, query=True, geometryIndices=True)
# 构建命令字符串
cmd_parts = []
for geometry in geometry_indices:
cmd = f"blendShape -e "
for target_id in target_ids_b:
cmd += f"-ft {geometry} {target_id} "
if axis == 4:
cmd += "-ss 0 "
else:
cmd += "-ss 1 "
if axis == 1:
cmd += "-sa x "
elif axis == 2:
cmd += "-sa y "
elif axis == 3:
cmd += "-sa z "
cmd += f"{blend_shape};"
cmd_parts.append(cmd)
# 添加对称设置恢复命令
if not original_symmetry or not symmetry_axis:
cmd_parts.append('symmetricModelling -s 0')
elif symmetry_space == "topo":
cmd_parts.append(f'symmetricModelling -e -about {symmetry_space} -s 1 {symmetry_axis}')
else:
cmd_parts.append(f'symmetricModelling -e -about {symmetry_space} -axis {symmetry_axis} -s 1')
# 执行命令
for cmd in cmd_parts:
mel.eval(cmd)

Some files were not shown because too many files have changed in this diff Show More