public List <BlendShapeKey> FindLipsync() { if (_avatar == null) { return(new List <BlendShapeKey>()); } if (_avatar.lipSync != VRC_AvatarDescriptor.LipSyncStyle.VisemeBlendShape || _avatar.VisemeSkinnedMesh == null || _avatar.VisemeSkinnedMesh.sharedMesh == null) { return(new List <BlendShapeKey>()); } var relativePathToSkinnedMesh = SharedLayerUtils.ResolveRelativePath(_avatar.transform, _avatar.VisemeSkinnedMesh.transform); return(_avatar.VisemeBlendShapes .Where(blendShapeName => blendShapeName != null) .Select(blendShapeName => new BlendShapeKey(relativePathToSkinnedMesh, blendShapeName)) .ToList()); }
public List <BlendShapeKey> FindBlink() { if (_avatar == null) { return(new List <BlendShapeKey>()); } var eyeLook = _avatar.customEyeLookSettings; if (eyeLook.eyelidsSkinnedMesh == null || eyeLook.eyelidsSkinnedMesh.sharedMesh == null) { return(new List <BlendShapeKey>()); } var relativePathToSkinnedMesh = SharedLayerUtils.ResolveRelativePath(_avatar.transform, eyeLook.eyelidsSkinnedMesh.transform); return(eyeLook.eyelidsBlendshapes .Select(i => BlendShapeNameIfValid(i, eyeLook)) .Where(blendShapeName => blendShapeName != null) .Select(blendShapeName => new BlendShapeKey(relativePathToSkinnedMesh, blendShapeName)) .ToList()); }