Skip to content

Commit 0c85fae

Browse files
authored
Merge pull request #466 from umasteeringgroup/MeshModifiers
Mesh modifiers
2 parents 9cce0f2 + 1bebc13 commit 0c85fae

27 files changed

+26025
-4256
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: f0188188c253e0c4bb9b46e19fa7312e, type: 3}
13+
m_Name: MaleHairSlick01FatHead_Recipe
14+
m_EditorClassIdentifier:
15+
label:
16+
resourcesOnly: 0
17+
recipeType: Wardrobe
18+
DisplayValue: Slick Hair
19+
compatibleRaces:
20+
- HumanMale
21+
- Elf Male
22+
wardrobeRecipeThumbs:
23+
- race: HumanMale
24+
filename:
25+
thumb: {fileID: 21300000, guid: a2b3f41c230578a48894cb9be219a8d0, type: 3}
26+
- race: Elf Male
27+
filename:
28+
thumb: {fileID: 0}
29+
wardrobeSlot: Hair
30+
Appended: 0
31+
Hides: []
32+
HideTags: []
33+
suppressWardrobeSlots: []
34+
activeWardrobeSet: []
35+
MeshHideAssets: []
36+
MeshModifiers:
37+
- {fileID: 11400000, guid: eaa41da245ae05c4bb3fdb7c3e0fe0e5, type: 2}
38+
OverrideDNA:
39+
PreloadValues: []
40+
disabled: 0
41+
recipeString: '{"version":3,"packedSlotDataList":[],"slotsV2":[],"slotsV3":[{"id":"MaleHairSlick01","scale":100,"copyIdx":-1,"overlays":[{"id":"MaleHairSlick01_Overlay","colorIdx":0,"rect":[0.0,0.0,0.0,0.0],"isTransformed":false,"scale":{"x":0.0,"y":0.0,"z":0.0},"rotation":0.0,"blendModes":[0,0],"Tags":[],"tiling":[false,false],"uvOverride":0,"translate":{"x":0.0,"y":0.0}}],"Tags":["smooshable"],"Races":[],"blendShapeTarget":"","overSmoosh":0.0,"smooshDistance":0.0,"smooshInvertX":false,"smooshInvertY":false,"smooshInvertZ":false,"smooshInvertDist":false,"smooshTargetTag":"","smooshableTag":"","isSwapSlot":false,"swapTag":"","uvOverride":0,"isDisabled":false,"expandAlongNormal":0},{"id":"M_High
42+
poly Head","scale":100,"copyIdx":-1,"overlays":[{"id":"Maincap_Overlay","colorIdx":0,"rect":[0.0,0.0,0.0,0.0],"isTransformed":false,"scale":{"x":0.0,"y":0.0,"z":0.0},"rotation":0.0,"blendModes":[0,0,0,0,0],"Tags":[],"tiling":[false,false,false,false,false],"uvOverride":0,"translate":{"x":0.0,"y":0.0}}],"Tags":["Head","Face","smooshtarget"],"Races":[],"blendShapeTarget":"","overSmoosh":0.0,"smooshDistance":0.0,"smooshInvertX":false,"smooshInvertY":false,"smooshInvertZ":false,"smooshInvertDist":false,"smooshTargetTag":"","smooshableTag":"","isSwapSlot":false,"swapTag":"","uvOverride":0,"isDisabled":false,"expandAlongNormal":0}],"colors":[],"fColors":[{"name":"Hair","colors":[255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0],"ShaderParms":[],"alwaysUpdate":false,"alwaysUpdateParms":false,"isBaseColor":false,"displayColor":-1}],"sharedColorCount":1,"race":"HumanMale","packedDna":[],"uvOverride":0}'
43+
forceKeep: 0
44+
labelLocalFiles: 0
45+
IncompatibleRecipes: []
46+
UserField:
47+
replaces: Nothing

UMAProject/Assets/UMA/Content/Contrib/MaleHairSlick01/MaleHairSlick01FatHead_Recipe.asset.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UMAProject/Assets/UMA/Content/Contrib/MaleHairSlick01/MaleHairSlick01_Recipe.asset

+3-2
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ MonoBehaviour:
3333
suppressWardrobeSlots: []
3434
activeWardrobeSet: []
3535
MeshHideAssets: []
36+
MeshModifiers: []
3637
OverrideDNA:
3738
PreloadValues: []
3839
disabled: 0
39-
recipeString: '{"version":3,"packedSlotDataList":[],"slotsV2":[],"slotsV3":[{"id":"MaleHairSlick01","scale":100,"copyIdx":-1,"overlays":[{"id":"MaleHairSlick01_Overlay","colorIdx":0,"rect":[0.0,0.0,0.0,0.0],"isTransformed":false,"scale":{"x":0.0,"y":0.0,"z":0.0},"rotation":0.0,"blendModes":[0,0],"Tags":[],"tiling":[false,false],"uvOverride":0}],"Tags":["smooshable"],"Races":[],"blendShapeTarget":"","overSmoosh":0.0,"smooshDistance":0.0,"smooshInvertX":false,"smooshInvertY":false,"smooshInvertZ":false,"smooshInvertDist":false,"smooshTargetTag":"","smooshableTag":"","isSwapSlot":false,"swapTag":"","uvOverride":0,"isDisabled":false,"expandAlongNormal":0},{"id":"M_High
40-
poly Head","scale":100,"copyIdx":-1,"overlays":[{"id":"Maincap_Overlay","colorIdx":0,"rect":[0.0,0.0,0.0,0.0],"isTransformed":false,"scale":{"x":0.0,"y":0.0,"z":0.0},"rotation":0.0,"blendModes":[0,0,0,0,0],"Tags":[],"tiling":[false,false,false,false,false],"uvOverride":0}],"Tags":["Head","Face","smooshtarget"],"Races":[],"blendShapeTarget":"","overSmoosh":0.0,"smooshDistance":0.0,"smooshInvertX":false,"smooshInvertY":false,"smooshInvertZ":false,"smooshInvertDist":false,"smooshTargetTag":"","smooshableTag":"","isSwapSlot":false,"swapTag":"","uvOverride":0,"isDisabled":false,"expandAlongNormal":0}],"colors":[],"fColors":[{"name":"Hair","colors":[255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0],"ShaderParms":[],"alwaysUpdate":false,"alwaysUpdateParms":false,"isBaseColor":false,"displayColor":-1}],"sharedColorCount":1,"race":"HumanMale","packedDna":[],"uvOverride":0}'
40+
recipeString: '{"version":3,"packedSlotDataList":[],"slotsV2":[],"slotsV3":[{"id":"MaleHairSlick01","scale":100,"copyIdx":-1,"overlays":[{"id":"MaleHairSlick01_Overlay","colorIdx":0,"rect":[0.0,0.0,0.0,0.0],"isTransformed":false,"scale":{"x":0.0,"y":0.0,"z":0.0},"rotation":0.0,"blendModes":[0,0],"Tags":[],"tiling":[false,false],"uvOverride":0,"translate":{"x":0.0,"y":0.0}}],"Tags":["smooshable"],"Races":[],"blendShapeTarget":"","overSmoosh":0.0,"smooshDistance":0.0,"smooshInvertX":false,"smooshInvertY":false,"smooshInvertZ":false,"smooshInvertDist":false,"smooshTargetTag":"","smooshableTag":"","isSwapSlot":false,"swapTag":"","uvOverride":0,"isDisabled":false,"expandAlongNormal":0},{"id":"M_High
41+
poly Head","scale":100,"copyIdx":-1,"overlays":[{"id":"Maincap_Overlay","colorIdx":0,"rect":[0.0,0.0,0.0,0.0],"isTransformed":false,"scale":{"x":0.0,"y":0.0,"z":0.0},"rotation":0.0,"blendModes":[0,0,0,0,0],"Tags":[],"tiling":[false,false,false,false,false],"uvOverride":0,"translate":{"x":0.0,"y":0.0}}],"Tags":["Head","Face","smooshtarget"],"Races":[],"blendShapeTarget":"","overSmoosh":0.0,"smooshDistance":0.0,"smooshInvertX":false,"smooshInvertY":false,"smooshInvertZ":false,"smooshInvertDist":false,"smooshTargetTag":"","smooshableTag":"","isSwapSlot":false,"swapTag":"","uvOverride":0,"isDisabled":false,"expandAlongNormal":0}],"colors":[],"fColors":[{"name":"Hair","colors":[255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0],"ShaderParms":[],"alwaysUpdate":false,"alwaysUpdateParms":false,"isBaseColor":false,"displayColor":-1}],"sharedColorCount":1,"race":"HumanMale","packedDna":[],"uvOverride":0}'
4142
forceKeep: 0
4243
labelLocalFiles: 0
4344
IncompatibleRecipes: []

UMAProject/Assets/UMA/Core/Editor/Extensions/DynamicCharacterSystem/DynamicCharacterAvatarEditor.cs

+7-2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class DynamicCharacterAvatarEditor : Editor
2929
private string[] cachedRaceDNA = { };
3030
private string[] rawcachedRaceDNA = { };
3131
private SceneView sceneView;
32+
3233
private MeshModifier MeshModifier = null;
3334

3435
protected DynamicCharacterAvatar thisDCA;
@@ -764,6 +765,10 @@ private void DoUtilitiesGUI()
764765
{
765766
VertexEditorStage.ShowStage(thisDCA,MeshModifier);
766767
}
768+
if (GUILayout.Button("Create"))
769+
{
770+
VertexEditorStage.ShowStage(thisDCA, null);
771+
}
767772

768773

769774
/*if (GUILayout.Button("Open vertex adjuster"))
@@ -777,13 +782,13 @@ private void DoUtilitiesGUI()
777782

778783
GUILayout.EndHorizontal();
779784

780-
GUILayout.BeginHorizontal();
785+
/*GUILayout.BeginHorizontal();
781786
782787
if (GUILayout.Button("Force Rebuild"))
783788
{
784789
thisDCA.ForceUpdate(false, false, true);
785790
}
786-
GUILayout.EndHorizontal();
791+
GUILayout.EndHorizontal(); */
787792

788793

789794
// Edit weights of the selected vertex on the slot.

UMAProject/Assets/UMA/Core/Editor/Extensions/DynamicCharacterSystem/pWardrobeRecipeEditor.cs

+26-16
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,6 @@ protected virtual bool DrawWardrobeSlotsFields(Type TargetType, bool ShowHelp =
10281028

10291029
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
10301030
MeshHideAsset deleteme = null;
1031-
MeshModifier deleteMeshMod = null;
10321031
bool deleteNulls = false;
10331032
GUILayout.Label("Mesh Hide Assets", EditorStyles.boldLabel);
10341033
int count = 0;
@@ -1066,29 +1065,40 @@ protected virtual bool DrawWardrobeSlotsFields(Type TargetType, bool ShowHelp =
10661065
GUILayout.Label("Mesh Modifiers", EditorStyles.boldLabel);
10671066

10681067
count = 0;
1069-
foreach (MeshModifier mm in recipe.MeshModifiers)
1068+
int delPos = -1;
1069+
int delCount = 0;
1070+
foreach (MeshModifier mm in recipe.MeshModifiers)
10701071
{
10711072
count++;
10721073
EditorGUILayout.BeginHorizontal();
10731074
GUILayout.Space(10);
1074-
EditorGUILayout.LabelField(mm.name, GUILayout.ExpandWidth(true));
1075-
//GUILayout.Label($"[{mm.SlotName}]", GUILayout.Width(90.0f));
1076-
if (GUILayout.Button("Inspect", GUILayout.Width(65)))
1077-
{
1078-
InspectorUtlity.InspectTarget(mm);
1079-
}
1080-
if (GUILayout.Button("X", GUILayout.Width(20.0f)))
1075+
if (mm == null)
10811076
{
1082-
deleteMeshMod = mm;
1077+
EditorGUILayout.LabelField("Null Mesh Modifier", EditorStyles.miniLabel);
10831078
}
1079+
else
1080+
{
1081+
EditorGUILayout.LabelField(mm.name, GUILayout.ExpandWidth(true));
1082+
//GUILayout.Label($"[{mm.SlotName}]", GUILayout.Width(90.0f));
1083+
if (GUILayout.Button("Inspect", GUILayout.Width(65)))
1084+
{
1085+
InspectorUtlity.InspectTarget(mm);
1086+
}
1087+
}
1088+
if (GUILayout.Button("X", GUILayout.Width(20.0f)))
1089+
{
1090+
1091+
delPos = delCount;
1092+
}
10841093
EditorGUILayout.EndHorizontal();
1094+
delCount++;
10851095
}
1086-
if (deleteMeshMod != null)
1087-
{
1088-
recipe.MeshModifiers.Remove(deleteMeshMod);
1089-
deleteMeshMod = null;
1090-
}
1091-
if (count == 0)
1096+
1097+
if (delPos > -1)
1098+
{
1099+
recipe.MeshModifiers.RemoveAt(delPos);
1100+
}
1101+
if (count == 0)
10921102
{
10931103
GUILayout.BeginHorizontal();
10941104
GUILayout.Space(10);

0 commit comments

Comments
 (0)