/// <summary>
        /// エクスポート可能か検証する。
        /// </summary>
        /// <returns></returns>
        public void Validate(GameObject ExportRoot, VRMExportSettings m_settings, VRMMetaObject meta)
        {
            m_validations.Clear();
            if (ExportRoot == null)
            {
                return;
            }
            var proxy = ExportRoot.GetComponent <VRMBlendShapeProxy>();

            m_validations.AddRange(_Validate(ExportRoot, m_settings));
            m_validations.AddRange(VRMSpringBoneValidator.Validate(ExportRoot));
            var firstPerson = ExportRoot.GetComponent <VRMFirstPerson>();

            if (firstPerson != null)
            {
                m_validations.AddRange(firstPerson.Validate());
            }
            if (proxy != null)
            {
                m_validations.AddRange(proxy.Validate());

                // Export サイズ の 計算
                var clips = new List <BlendShapeClip>();
                if (proxy.BlendShapeAvatar != null)
                {
                    clips.AddRange(proxy.BlendShapeAvatar.Clips);
                }

                ExpectedByteSize = 0;
                foreach (var renderer in ExportRoot.GetComponentsInChildren <Renderer>())
                {
                    var relativePath = UniGLTF.UnityExtensions.RelativePathFrom(renderer.transform, ExportRoot.transform);
                    var mesh         = GetMesh(renderer);
                    ExpectedByteSize += CalcMeshSize(relativePath, mesh, m_settings, clips);
                }
            }
            MetaHasError = meta.Validate().Any();
        }
Example #2
0
        /// <summary>
        /// エクスポート可能か検証する。
        /// </summary>
        /// <returns></returns>
        public void Validate(GameObject ExportRoot, VRMExportSettings m_settings, VRMMetaObject meta)
        {
            m_validations.Clear();
            if (ExportRoot == null)
            {
                return;
            }
            var proxy = ExportRoot.GetComponent <VRMBlendShapeProxy>();

            m_validations.AddRange(_Validate(ExportRoot, m_settings));
            m_validations.AddRange(VRMSpringBoneValidator.Validate(ExportRoot));
            var firstPerson = ExportRoot.GetComponent <VRMFirstPerson>();

            if (firstPerson != null)
            {
                m_validations.AddRange(firstPerson.Validate());
            }
            if (proxy != null)
            {
                m_validations.AddRange(proxy.Validate());
            }
            MetaHasError = meta.Validate().Any();
        }