Remove clearBlendShape argument. Because it is always false.

This commit is contained in:
ousttrue
2020-11-13 14:26:33 +09:00
parent 68328edd15
commit 50748722d1
4 changed files with 15 additions and 18 deletions

View File

@@ -222,7 +222,7 @@ namespace MeshUtility
/// <param name="src">正規化前のSkinnedMeshRendererのTransform</param>
/// <param name="dst">正規化後のSkinnedMeshRendererのTransform</param>
/// <param name="boneMap">正規化前のボーンから正規化後のボーンを得る</param>
static void NormalizeSkinnedMesh(Transform src, Transform dst, Dictionary<Transform, Transform> boneMap, bool clearBlendShape)
static void NormalizeSkinnedMesh(Transform src, Transform dst, Dictionary<Transform, Transform> boneMap)
{
var srcRenderer = src.GetComponent<SkinnedMeshRenderer>();
if (srcRenderer == null
@@ -237,15 +237,6 @@ namespace MeshUtility
var srcMesh = srcRenderer.sharedMesh;
var originalSrcMesh = srcMesh;
if (clearBlendShape)
{
// clear blendShape if not bake current blendshape
for (int i = 0; i < srcMesh.blendShapeCount; ++i)
{
srcRenderer.SetBlendShapeWeight(i, 0);
}
}
// 元の Transform[] bones から、無効なboneを取り除いて前に詰めた配列を作る
var dstBones = srcRenderer.bones
.Where(x => x != null && boneMap.ContainsKey(x))
@@ -307,8 +298,10 @@ namespace MeshUtility
//
// clear blendShape always
var backcup = new List<float>();
for (int i = 0; i < srcMesh.blendShapeCount; ++i)
{
backcup.Add(srcRenderer.GetBlendShapeWeight(i));
srcRenderer.SetBlendShapeWeight(i, 0);
}
@@ -442,6 +435,11 @@ namespace MeshUtility
srcRenderer.bones = new Transform[] { };
srcRenderer.sharedMesh = originalSrcMesh;
}
// restore blendshape weights
for (int i = 0; i < backcup.Count; ++i)
{
srcRenderer.SetBlendShapeWeight(i, backcup[i]);
}
}
/// <summary>
@@ -481,11 +479,10 @@ namespace MeshUtility
/// 回転とスケールを除去したヒエラルキーのコピーを作成する(MeshをBakeする)
/// </summary>
/// <param name="go">対象のヒエラルキーのルート</param>
/// <param name="clearBlendShapeBeforeNormalize">BlendShapeを0クリアするか否か。false の場合 BlendShape の現状を Bake する</param>
/// <param name="bakeCurrentBlendShape">BlendShapeを0クリアするか否か。false の場合 BlendShape の現状を Bake する</param>
/// <param name="createAvatar">Avatarを作る関数</param>
/// <returns></returns>
public static (GameObject, Dictionary<Transform, Transform>) Execute(GameObject go,
bool clearBlendShapeBeforeNormalize, CreateAvatarFunc createAvatar)
public static (GameObject, Dictionary<Transform, Transform>) Execute(GameObject go, CreateAvatarFunc createAvatar)
{
//
// 正規化されたヒエラルキーを作る
@@ -503,7 +500,7 @@ namespace MeshUtility
continue;
}
NormalizeSkinnedMesh(src, dst, boneMap, clearBlendShapeBeforeNormalize);
NormalizeSkinnedMesh(src, dst, boneMap);
NormalizeNoneSkinnedMesh(src, dst);
}

View File

@@ -196,7 +196,7 @@ namespace VRM
if (settings.PoseFreeze)
{
// BoneNormalizer.Execute は Copy を作って正規化する。UNDO無用
target = VRMBoneNormalizer.Execute(target, settings.ForceTPose, false);
target = VRMBoneNormalizer.Execute(target, settings.ForceTPose);
destroy.Add(target);
}

View File

@@ -49,7 +49,7 @@ namespace VRM
var go = Selection.activeObject as GameObject;
// BoneNormalizer.Execute はコピーを正規化する。UNDO無用
Selection.activeGameObject = VRMBoneNormalizer.Execute(go, true, false);
Selection.activeGameObject = VRMBoneNormalizer.Execute(go, true);
}
}
}

View File

@@ -42,7 +42,7 @@ namespace VRM
/// <param name="go">対象モデルのルート</param>
/// <param name="forceTPose">強制的にT-Pose化するか</param>
/// <returns>正規化済みのモデル</returns>
public static GameObject Execute(GameObject go, bool forceTPose, bool clearBlendShapeBeforeNormalize)
public static GameObject Execute(GameObject go, bool forceTPose)
{
//
// T-Poseにする
@@ -66,7 +66,7 @@ namespace VRM
//
// 正規化されたヒエラルキーを作る
//
var (normalized, bMap) = MeshUtility.BoneNormalizer.Execute(go, clearBlendShapeBeforeNormalize, (_src, dst, boneMap) =>
var (normalized, bMap) = MeshUtility.BoneNormalizer.Execute(go, (_src, dst, boneMap) =>
{
var src = _src.GetComponent<Animator>();