Creator 每个网格是由多个子网格组成,并且允许每个子网格都可以有不同数量的形状(Shape),尽管几乎所有模型里面,子网格的形状数量一定相同。
如果有形变动画,动画播放的时候就会自动生效。
如果是手动设置控制每个形状的权重,可以看下:
-
MeshRenderer.setWeights:设置某个子网格的所有形状的权重 -
MeshRenderer.setWeight: 设置某个子网格的某个形状的权重
例如:
function setAllWeights(meshRenderer: MeshRenderer, weights: number[]) {
const { mesh } = meshRenderer;
if (!mesh || !mesh.morph) {
return;
}
// 确保一下所有子网格的形状数量都是 `weights.length`
assert(mesh.morph.subMeshMorphs.every((subMeshMorph) => subMeshMoprh?.targets.length === weights.length));
// 设置每个子网格的形状权重
const nSubMeshes = mesh.struct.primitives.length;
for (let iSubMesh = 0; iSubMesh < nSubMeshes; ++iSubMesh) {
meshRenderer.setWeights(iSubMesh, weights);
}
}







