我有三个身体部位的人体模型:头部、躯干和腿。我从 Mixamo 获得这些模型的装备和动画。我正在拍摄两个人体模型(父母),并交替从父母那里获取身体部位来创造一个新孩子。我正在根据孩子的装备(从其中一位父母那里拿走)转移身体部位的蒙皮网格。因为父母有一些不同的装备(来自 Mixamo),所以那些身体部位连接不正确,它们之间的缝隙很小。我正在考虑如何填补这些空白。有人可以帮忙......因为我被困住了吗?那就太好了……
请注意,情况并非总是如此。还有其他组合,零件的连接将继续+ - 不错
蒙皮网格转码
public static void TransferSkinnedMeshes(SkinnedMeshRenderer[] skinnedMeshRenderersList, Transform newArmature, Transform newParent)
{
foreach (var t in skinnedMeshRenderersList)
{
string cachedRootBoneName = t.rootBone.name;
var newBones = new Transform[t.bones.Length];
for (var x = 0; x < t.bones.Length; x++)
foreach (var newBone in newArmature.GetComponentsInChildren<Transform>())
if (newBone.name == t.bones[x].name)
{
newBones[x] = newBone;
}
Transform matchingRootBone = GetRootBoneByName(newArmature, cachedRootBoneName);
t.rootBone = matchingRootBone != null ? matchingRootBone : newArmature.transform;
t.bones = newBones;
Transform transform;
(transform = t.transform).SetParent(newParent);
transform.localPosition = Vector3.zero;
}
}
static Transform GetRootBoneByName(Transform parentTransform, string name)
{
return parentTransform.GetComponentsInChildren<Transform>().FirstOrDefault(transformChild => transformChild.name == name);
}
我尝试在 chatGPT 的帮助下编写着色器……但它没有用。另外,我想从 Mixamo 获得相同的装备,但因为我正在设置关键位置以通过眼规自动装备,所以我无法获得好的结果