コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }