Merge pull request #584 from hiroj/fix_animationImporter_blendShape

fix_animationImporter_blendShape
This commit is contained in:
ousttrue 2020-10-14 14:30:59 +09:00 committed by GitHub
commit 11f256c334
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -265,23 +265,24 @@ namespace UniGLTF
{
var node = ctx.GLTF.nodes[channel.target.node];
var mesh = ctx.GLTF.meshes[node.mesh];
//var primitive = mesh.primitives.FirstOrDefault();
//var targets = primitive.targets;
var primitive = mesh.primitives.FirstOrDefault();
var targets = primitive.targets;
List<string> blendShapeNames = new List<string>();
var transform = ctx.Nodes[channel.target.node];
var skinnedMeshRenderer = transform.GetComponent<SkinnedMeshRenderer>();
if (skinnedMeshRenderer == null)
List<string> targetNames;
if(primitive != null && primitive.extras != null && primitive.extras.targetNames != null && primitive.extras.targetNames.Count > 0)
{
continue;
targetNames = primitive.extras.targetNames;
}
else if(mesh.extras != null && mesh.extras.targetNames != null && mesh.extras.targetNames.Count > 0)
{
targetNames = mesh.extras.targetNames;
}
else
{
throw new Exception("glTF BlendShape Animation. targetNames invalid.");
}
for (int j = 0; j < skinnedMeshRenderer.sharedMesh.blendShapeCount; j++)
{
blendShapeNames.Add(skinnedMeshRenderer.sharedMesh.GetBlendShapeName(j));
}
var keyNames = blendShapeNames
var keyNames = targetNames
.Where(x => !string.IsNullOrEmpty(x))
.Select(x => "blendShape." + x)
.ToArray();