mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-04-30 00:08:59 +08:00
chore: use WD blend tree to avoid getting facial expressions stuck
This commit is contained in:
parent
8e76d0225f
commit
c7d3cb6fa4
@ -59,6 +59,8 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
avatar.baseAnimationLayers = animLayers;
|
avatar.baseAnimationLayers = animLayers;
|
||||||
|
|
||||||
var parameters = controller.parameters.ToList();
|
var parameters = controller.parameters.ToList();
|
||||||
|
|
||||||
|
var actions = GenerateActions(avatar, actionMenus, parameters);
|
||||||
parameters.Add(new AnimatorControllerParameter()
|
parameters.Add(new AnimatorControllerParameter()
|
||||||
{
|
{
|
||||||
name = DIRECT_BLEND_TREE_PARAM,
|
name = DIRECT_BLEND_TREE_PARAM,
|
||||||
@ -66,11 +68,9 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
defaultFloat = 1,
|
defaultFloat = 1,
|
||||||
});
|
});
|
||||||
|
|
||||||
var actions = GenerateActions(avatar, actionMenus, parameters);
|
|
||||||
|
|
||||||
controller.parameters = parameters.ToArray();
|
controller.parameters = parameters.ToArray();
|
||||||
|
|
||||||
int layersToInsert = 2; // TODO
|
int layersToInsert = 1; // TODO
|
||||||
|
|
||||||
var rootBlendTree = GenerateRootBlendLayer(actions);
|
var rootBlendTree = GenerateRootBlendLayer(actions);
|
||||||
AdjustAllBehaviors(controller, b =>
|
AdjustAllBehaviors(controller, b =>
|
||||||
@ -86,8 +86,8 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
}
|
}
|
||||||
|
|
||||||
var layerList = controller.layers.ToList();
|
var layerList = controller.layers.ToList();
|
||||||
layerList.Insert(0, GenerateBlendshapeBaseLayer(avatar));
|
//layerList.Insert(0, GenerateBlendshapeBaseLayer(avatar));
|
||||||
rootBlendTree.defaultWeight = 1;
|
//rootBlendTree.defaultWeight = 1;
|
||||||
layerList.Insert(0, rootBlendTree);
|
layerList.Insert(0, rootBlendTree);
|
||||||
layerList[1].defaultWeight = 1;
|
layerList[1].defaultWeight = 1;
|
||||||
controller.layers = layerList.ToArray();
|
controller.layers = layerList.ToArray();
|
||||||
@ -120,6 +120,8 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_context.SaveAsset(clip);
|
||||||
|
|
||||||
layer.stateMachine = new AnimatorStateMachine();
|
layer.stateMachine = new AnimatorStateMachine();
|
||||||
_context.SaveAsset(layer.stateMachine);
|
_context.SaveAsset(layer.stateMachine);
|
||||||
|
|
||||||
@ -128,6 +130,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
state.writeDefaultValues = false;
|
state.writeDefaultValues = false;
|
||||||
|
|
||||||
layer.defaultWeight = 1;
|
layer.defaultWeight = 1;
|
||||||
|
layer.name = "Write blendshape defaults";
|
||||||
|
|
||||||
return layer;
|
return layer;
|
||||||
}
|
}
|
||||||
@ -182,6 +185,9 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
|
|
||||||
var rootState = layer.stateMachine.AddState("Root");
|
var rootState = layer.stateMachine.AddState("Root");
|
||||||
rootState.motion = motion;
|
rootState.motion = motion;
|
||||||
|
// WD off causes other write default states to fail to write their defaults (facial expressions get stuck
|
||||||
|
// on e.g. kikyo)
|
||||||
|
rootState.writeDefaultValues = true;
|
||||||
|
|
||||||
return layer;
|
return layer;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user