Closed2

URPにVRMアバターを導入する(マテリアルエラーの解決)

だーら(Flamers / Memotia)だーら(Flamers / Memotia)

マテリアルエラーの解決

Assets\UniGLTF\Runtime\UniGLTF\IO\ImporterContext.cs
33行目から("Removing MaterialFallback.FallbackShaders parameter fixed this issue"とのこと、以下は元のコード)
        public ImporterContext(
            GltfData data,
            IReadOnlyDictionary<SubAssetKey, UnityEngine.Object> externalObjectMap = null,
            ITextureDeserializer textureDeserializer = null,
            IMaterialDescriptorGenerator materialGenerator = null)
        {
            Data = data;
            TextureDescriptorGenerator = new GltfTextureDescriptorGenerator(Data);
            MaterialDescriptorGenerator = materialGenerator ?? new GltfMaterialDescriptorGenerator();

            ExternalObjectMap = externalObjectMap ?? new Dictionary<SubAssetKey, UnityEngine.Object>();
            textureDeserializer = textureDeserializer ?? new UnityTextureDeserializer();

            TextureFactory = new TextureFactory(textureDeserializer, ExternalObjectMap
                .Where(x => x.Value is Texture)
                .ToDictionary(x => x.Key, x => (Texture)x.Value),
                Data.MigrationFlags.IsRoughnessTextureValueSquared);
            MaterialFactory = new MaterialFactory(ExternalObjectMap
                .Where(x => x.Value is Material)
                .ToDictionary(x => x.Key, x => (Material)x.Value), MaterialFallback.FallbackShaders);
            AnimationClipFactory = new AnimationClipFactory(ExternalObjectMap
                .Where(x => x.Value is AnimationClip)
                .ToDictionary(x => x.Key, x => (AnimationClip)x.Value));
        }

が、解決しない。
→ 一度Assetsから削除して、再度インポートしたのちSceneに配置したら治った。
importerのスクリプトを編集していたので、再度インポートしないと適応されないのは当たり前か..

参考

このスクラップは2023/03/12にクローズされました