diff --git a/Assets/UniGLTF/Editor/SerializedPropertyEditor/SerializedPropertyEditor.cs b/Assets/UniGLTF/Editor/SerializedPropertyEditor.cs similarity index 85% rename from Assets/UniGLTF/Editor/SerializedPropertyEditor/SerializedPropertyEditor.cs rename to Assets/UniGLTF/Editor/SerializedPropertyEditor.cs index 4224f0dd5..925984bf2 100644 --- a/Assets/UniGLTF/Editor/SerializedPropertyEditor/SerializedPropertyEditor.cs +++ b/Assets/UniGLTF/Editor/SerializedPropertyEditor.cs @@ -27,9 +27,17 @@ namespace UniGLTF return new SerializedPropertyEditor(serializedObject, prop); } - public void OnInspectorGUI() + public void OnInspectorGUI(bool updateApply = true) { + if (updateApply) + { + m_serializedObject.Update(); + } RecursiveProperty(m_rootProperty); + if (updateApply) + { + m_serializedObject.ApplyModifiedProperties(); + } } protected virtual void RecursiveProperty(SerializedProperty root) diff --git a/Assets/UniGLTF/Editor/SerializedPropertyEditor/SerializedPropertyEditor.cs.meta b/Assets/UniGLTF/Editor/SerializedPropertyEditor.cs.meta similarity index 83% rename from Assets/UniGLTF/Editor/SerializedPropertyEditor/SerializedPropertyEditor.cs.meta rename to Assets/UniGLTF/Editor/SerializedPropertyEditor.cs.meta index b3bf15676..c97bcb353 100644 --- a/Assets/UniGLTF/Editor/SerializedPropertyEditor/SerializedPropertyEditor.cs.meta +++ b/Assets/UniGLTF/Editor/SerializedPropertyEditor.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 094682fd8f99ab7488b000e12d6a45b3 +guid: c73bab19bcf7dca42be82c82a38a4011 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportSettings.cs b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportSettings.cs deleted file mode 100644 index e92079fe5..000000000 --- a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportSettings.cs +++ /dev/null @@ -1,27 +0,0 @@ - - -using UnityEngine; - -namespace UniGLTF -{ - public class GltfExportSettings : ScriptableObject - { - public GameObject Root { get; set; } - - public Axes InverseAxis; - - [Header("MorphTarget(BlendShape)")] - public bool Sparse; - - public bool DropNormal; - - public bool DivideVertexBuffer; - - public MeshExportSettings MeshExportSettings => new MeshExportSettings - { - UseSparseAccessorForMorphTarget = Sparse, - ExportOnlyBlendShapePosition = DropNormal, - DivideVertexBuffer = DivideVertexBuffer, - }; - } -} diff --git a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportWindow.cs b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportWindow.cs index 6888cd5e3..72b36db88 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportWindow.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportWindow.cs @@ -28,18 +28,19 @@ namespace UniGLTF } Tabs _tab; + [SerializeField] + public GltfExportSettings Settings = new GltfExportSettings(); - GltfExportSettings m_settings; - Editor m_settingsInspector; + SerializedPropertyEditor m_editor; MeshExportValidator m_meshes; Editor m_meshesInspector; protected override void Initialize() { - m_settings = ScriptableObject.CreateInstance(); - m_settings.InverseAxis = UniGLTFPreference.GltfIOAxis; - m_settingsInspector = Editor.CreateEditor(m_settings); + Settings.InverseAxis = UniGLTFPreference.GltfIOAxis; + var so = new SerializedObject(this); + m_editor = new SerializedPropertyEditor(so, so.FindProperty(nameof(Settings))); m_meshes = ScriptableObject.CreateInstance(); m_meshesInspector = Editor.CreateEditor(m_meshes); @@ -47,15 +48,9 @@ namespace UniGLTF protected override void Clear() { - // m_settingsInspector - UnityEditor.Editor.DestroyImmediate(m_settingsInspector); - m_settingsInspector = null; // m_meshesInspector UnityEditor.Editor.DestroyImmediate(m_meshesInspector); m_meshesInspector = null; - // m_settings - ScriptableObject.DestroyImmediate(m_settings); - m_settings = null; } protected override IEnumerable ValidatorFactory() @@ -73,7 +68,7 @@ namespace UniGLTF protected override void OnLayout() { - m_meshes.SetRoot(State.ExportRoot, m_settings.MeshExportSettings, new DefualtBlendShapeExportFilter()); + m_meshes.SetRoot(State.ExportRoot, Settings, new DefualtBlendShapeExportFilter()); } protected override bool DoGUI(bool isValid) @@ -92,8 +87,7 @@ namespace UniGLTF break; case Tabs.ExportSettings: - m_settings.Root = State.ExportRoot; - m_settingsInspector.OnInspectorGUI(); + m_editor.OnInspectorGUI(); break; } @@ -116,16 +110,10 @@ namespace UniGLTF } var gltf = new glTF(); - using (var exporter = new gltfExporter(gltf, m_settings.InverseAxis)) + using (var exporter = new gltfExporter(gltf, Settings)) { exporter.Prepare(State.ExportRoot); - var settings = new MeshExportSettings - { - ExportOnlyBlendShapePosition = m_settings.DropNormal, - UseSparseAccessorForMorphTarget = m_settings.Sparse, - DivideVertexBuffer = m_settings.DivideVertexBuffer, - }; - exporter.Export(settings, new EditorTextureSerializer()); + exporter.Export(Settings, new EditorTextureSerializer()); } if (isGlb) diff --git a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs index f00644a14..d3d94dc76 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/MeshExportValidator.cs @@ -31,8 +31,12 @@ namespace UniGLTF public int ExpectedExportByteSize => Meshes.Where(x => x.IsRendererActive).Sum(x => x.ExportByteSize); - public void SetRoot(GameObject ExportRoot, MeshExportSettings settings, IBlendShapeExportFilter blendShapeFilter) + public void SetRoot(GameObject ExportRoot, GltfExportSettings settings, IBlendShapeExportFilter blendShapeFilter) { + if(ExportRoot==null) + { + return; + } MeshExportInfo.GetInfo(ExportRoot.transform.Traverse().Skip(1), Meshes, settings); foreach(var info in Meshes) { diff --git a/Assets/UniGLTF/Editor/SerializedPropertyEditor.meta b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier.meta similarity index 77% rename from Assets/UniGLTF/Editor/SerializedPropertyEditor.meta rename to Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier.meta index 880411af0..098f234ae 100644 --- a/Assets/UniGLTF/Editor/SerializedPropertyEditor.meta +++ b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ebda22df7de116b4dbc84385b56a69b8 +guid: 882d5cdaa29c5cf40bc5892189d0adba folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Deserializer.g.cs b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Deserializer.g.cs new file mode 100644 index 000000000..aadb23c13 --- /dev/null +++ b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Deserializer.g.cs @@ -0,0 +1,60 @@ +// This file is generated from JsonSchema. Don't modify this source code. +using UniJSON; +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace UniGLTF.Extensions.VRMC_materials_hdr_emissiveMultiplier { + +public static class GltfDeserializer +{ + public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(VRMC_materials_hdr_emissiveMultiplier.ExtensionName); + +public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_materials_hdr_emissiveMultiplier extension) +{ + if(src is UniGLTF.glTFExtensionImport extensions) + { + foreach(var kv in extensions.ObjectItems()) + { + if(kv.Key.GetUtf8String() == ExtensionNameUtf8) + { + extension = Deserialize(kv.Value); + return true; + } + } + } + + extension = default; + return false; +} + + +public static VRMC_materials_hdr_emissiveMultiplier Deserialize(JsonNode parsed) +{ + var value = new VRMC_materials_hdr_emissiveMultiplier(); + + foreach(var kv in parsed.ObjectItems()) + { + var key = kv.Key.GetString(); + + if(key=="extensions"){ + value.Extensions = new glTFExtensionImport(kv.Value); + continue; + } + + if(key=="extras"){ + value.Extras = new glTFExtensionImport(kv.Value); + continue; + } + + if(key=="emissiveMultiplier"){ + value.EmissiveMultiplier = kv.Value.GetSingle(); + continue; + } + + } + return value; +} + +} // GltfDeserializer +} // UniGLTF diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportSettings.cs.meta b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Deserializer.g.cs.meta similarity index 83% rename from Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportSettings.cs.meta rename to Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Deserializer.g.cs.meta index e8725dbc9..346257494 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportSettings.cs.meta +++ b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Deserializer.g.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 82aac657de39cf948ab7bf1be5a0f3ad +guid: 751f36caf65fbcd4a91ae0d5419fdbd8 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Format.g.cs b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Format.g.cs new file mode 100644 index 000000000..d5537e80f --- /dev/null +++ b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Format.g.cs @@ -0,0 +1,22 @@ +// This file is generated from JsonSchema. Don't modify this source code. +using System; +using System.Collections.Generic; + + +namespace UniGLTF.Extensions.VRMC_materials_hdr_emissiveMultiplier +{ + + public class VRMC_materials_hdr_emissiveMultiplier + { + public const string ExtensionName = "VRMC_materials_hdr_emissiveMultiplier"; + + // Dictionary object with extension-specific objects. + public object Extensions; + + // Application-specific data. + public object Extras; + + // A multiplier for emissiveFactor + public float? EmissiveMultiplier; + } +} diff --git a/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Format.g.cs.meta b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Format.g.cs.meta new file mode 100644 index 000000000..bd37f29a9 --- /dev/null +++ b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Format.g.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 222764601817e1f459cb9ce3119ab0be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Serializer.g.cs b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Serializer.g.cs new file mode 100644 index 000000000..e9d1e271a --- /dev/null +++ b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Serializer.g.cs @@ -0,0 +1,55 @@ +// This file is generated from JsonSchema. Don't modify this source code. +using System; +using System.Collections.Generic; +using System.Linq; +using UniJSON; + +namespace UniGLTF.Extensions.VRMC_materials_hdr_emissiveMultiplier { + + static public class GltfSerializer + { + + public static void SerializeTo(ref UniGLTF.glTFExtension dst, VRMC_materials_hdr_emissiveMultiplier extension) + { + if (dst is glTFExtensionImport) + { + throw new NotImplementedException(); + } + + if (!(dst is glTFExtensionExport extensions)) + { + extensions = new glTFExtensionExport(); + dst = extensions; + } + + var f = new JsonFormatter(); + Serialize(f, extension); + extensions.Add(VRMC_materials_hdr_emissiveMultiplier.ExtensionName, f.GetStoreBytes()); + } + + +public static void Serialize(JsonFormatter f, VRMC_materials_hdr_emissiveMultiplier value) +{ + f.BeginMap(); + + + if(value.Extensions!=null){ + f.Key("extensions"); + (value.Extensions as glTFExtension).Serialize(f); + } + + if(value.Extras!=null){ + f.Key("extras"); + (value.Extras as glTFExtension).Serialize(f); + } + + if(value.EmissiveMultiplier.HasValue){ + f.Key("emissiveMultiplier"); + f.Value(value.EmissiveMultiplier.GetValueOrDefault()); + } + + f.EndMap(); +} + + } // class +} // namespace diff --git a/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Serializer.g.cs.meta b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Serializer.g.cs.meta new file mode 100644 index 000000000..bbf07b349 --- /dev/null +++ b/Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier/Serializer.g.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2fc13fdbe30a3fa4381d8cb4aa8346c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfExportSettings.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfExportSettings.cs new file mode 100644 index 000000000..6ab2be85e --- /dev/null +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfExportSettings.cs @@ -0,0 +1,44 @@ + + +using System; + +namespace UniGLTF +{ + [Serializable] + public class GltfExportSettings + { + public Axes InverseAxis = Axes.Z; + + /// + /// https://github.com/vrm-c/UniVRM/issues/800 + /// + /// VertexBuffer を共有バッファ方式にする + /// UniVRM-0.71.0 までの挙動 + /// + public bool DivideVertexBuffer; + + /// + /// MorphTarget に Sparse Accessor を使う + /// + public bool UseSparseAccessorForMorphTarget; + + /// + /// MorphTarget を Position だけにする(normal とか捨てる) + /// + public bool ExportOnlyBlendShapePosition; + + /// + /// tangent を出力する + /// + public bool ExportTangents +#if GLTF_EXPORT_TANGENTS + = true, +#endif + ; + + /// + /// VRMC_materials_hdr_emissiveMultiplier + /// + public bool UseEmissiveMultiplier; + } +} diff --git a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportSettings.cs.meta b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfExportSettings.cs.meta similarity index 83% rename from Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportSettings.cs.meta rename to Assets/UniGLTF/Runtime/UniGLTF/IO/GltfExportSettings.cs.meta index f8ffaa2a9..a545de819 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ExportDialog/GltfExportSettings.cs.meta +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfExportSettings.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6e6d0977c916e05438394a6ea65b6a1c +guid: ffb6f28f0bcf447468389128f208019c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfPbrMaterialImporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfPbrMaterialImporter.cs index d1b8b3632..58b50a157 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfPbrMaterialImporter.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/GltfPbrMaterialImporter.cs @@ -121,9 +121,13 @@ namespace UniGLTF if (src.emissiveFactor != null && src.emissiveFactor.Length == 3) { - matDesc.Colors.Add("_EmissionColor", - src.emissiveFactor.ToColor3(ColorSpace.Linear, ColorSpace.Linear) - ); + var emissiveFactor = src.emissiveFactor.ToColor3(ColorSpace.Linear, ColorSpace.Linear); + if (UniGLTF.Extensions.VRMC_materials_hdr_emissiveMultiplier.GltfDeserializer.TryGet(src.extensions, + out UniGLTF.Extensions.VRMC_materials_hdr_emissiveMultiplier.VRMC_materials_hdr_emissiveMultiplier ex)) + { + emissiveFactor *= ex.EmissiveMultiplier.Value; + } + matDesc.Colors.Add("_EmissionColor", emissiveFactor); } if (src.emissiveTexture != null && src.emissiveTexture.index != -1) diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/IMaterialExporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/IMaterialExporter.cs index a458a9283..883bc11fb 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/IMaterialExporter.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/IMaterialExporter.cs @@ -9,6 +9,6 @@ namespace UniGLTF /// public interface IMaterialExporter { - glTFMaterial ExportMaterial(Material m, ITextureExporter textureExporter); + glTFMaterial ExportMaterial(Material m, ITextureExporter textureExporter, GltfExportSettings settings); } } diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/MaterialExporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/MaterialExporter.cs index 3def3963d..8711d43e4 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/MaterialExporter.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/MaterialExporter.cs @@ -16,14 +16,14 @@ namespace UniGLTF public class MaterialExporter : IMaterialExporter { - public virtual glTFMaterial ExportMaterial(Material m, ITextureExporter textureExporter) + public virtual glTFMaterial ExportMaterial(Material m, ITextureExporter textureExporter, GltfExportSettings settings) { var material = CreateMaterial(m); // common params material.name = m.name; Export_Color(m, textureExporter, material); - Export_Emission(m, textureExporter, material); + Export_Emission(m, textureExporter, material, settings.UseEmissiveMultiplier); Export_Normal(m, textureExporter, material); Export_OcclusionMetallicRoughness(m, textureExporter, material); @@ -148,17 +148,28 @@ namespace UniGLTF } } - static void Export_Emission(Material m, ITextureExporter textureExporter, glTFMaterial material) + static void Export_Emission(Material m, ITextureExporter textureExporter, glTFMaterial material, bool useEmissiveMultiplier) { if (m.IsKeywordEnabled("_EMISSION") == false) + { return; + } if (m.HasProperty("_EmissionColor")) { var color = m.GetColor("_EmissionColor"); if (color.maxColorComponent > 1) { - color /= color.maxColorComponent; + var maxColorComponent = color.maxColorComponent; + color /= maxColorComponent; + if (useEmissiveMultiplier) + { + UniGLTF.Extensions.VRMC_materials_hdr_emissiveMultiplier.GltfSerializer.SerializeTo(ref material.extensions, + new Extensions.VRMC_materials_hdr_emissiveMultiplier.VRMC_materials_hdr_emissiveMultiplier + { + EmissiveMultiplier = maxColorComponent, + }); + } } material.emissiveFactor = color.ToFloat3(ColorSpace.Linear, ColorSpace.Linear); } diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportInfo.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportInfo.cs index aa4f58667..1e768fa08 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportInfo.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportInfo.cs @@ -183,7 +183,7 @@ namespace UniGLTF public string Summary; #endregion - MeshExportInfo(Renderer renderer, MeshExportSettings settings) + MeshExportInfo(Renderer renderer, GltfExportSettings settings) { if (renderer == null) { @@ -264,7 +264,7 @@ namespace UniGLTF public static MeshExportInfo Create(GameObject go) { var list = new List(); - GetInfo(go.transform.Traverse(), list, MeshExportSettings.Default); + GetInfo(go.transform.Traverse(), list, new GltfExportSettings()); return list[0]; } @@ -275,7 +275,7 @@ namespace UniGLTF /// /// /// blendShape の export を filtering する - public static void GetInfo(IEnumerable nodes, List list, MeshExportSettings settings) + public static void GetInfo(IEnumerable nodes, List list, GltfExportSettings settings) { list.Clear(); foreach (var node in nodes) @@ -311,7 +311,7 @@ namespace UniGLTF public void CalcMeshSize( GameObject root, Renderer renderer, - MeshExportSettings settings, + GltfExportSettings settings, IBlendShapeExportFilter blendShapeFilter ) { @@ -321,7 +321,7 @@ namespace UniGLTF public void CalcMeshSize( string relativePath, - MeshExportSettings settings, + GltfExportSettings settings, IBlendShapeExportFilter blendShapeFilter ) { diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportSettings.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportSettings.cs deleted file mode 100644 index 4af2f6290..000000000 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExportSettings.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; - -namespace UniGLTF -{ - [Serializable] - public struct MeshExportSettings - { - // - // https://github.com/vrm-c/UniVRM/issues/800 - // - // VertexBuffer を共有バッファ方式にする - // UniVRM-0.71.0 までの挙動 - // - public bool DivideVertexBuffer; - - // MorphTarget に Sparse Accessor を使う - public bool UseSparseAccessorForMorphTarget; - - // MorphTarget を Position だけにする(normal とか捨てる) - public bool ExportOnlyBlendShapePosition; - - // tangent を出力する - public bool ExportTangents; - - public static MeshExportSettings Default => new MeshExportSettings - { - UseSparseAccessorForMorphTarget = false, - ExportOnlyBlendShapePosition = false, - DivideVertexBuffer = false, -#if GLTF_EXPORT_TANGENTS - ExportTangents = true, -#endif - }; - } -} diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_DividedVertexBuffer.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_DividedVertexBuffer.cs index 3c7988919..39fede909 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_DividedVertexBuffer.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_DividedVertexBuffer.cs @@ -19,7 +19,7 @@ namespace UniGLTF /// public static (glTFMesh, Dictionary) Export(glTF gltf, int gltfBuffer, MeshExportInfo unityMesh, List unityMaterials, - IAxisInverter axisInverter, MeshExportSettings settings) + IAxisInverter axisInverter, GltfExportSettings settings) { var mesh = unityMesh.Mesh; var gltfMesh = new glTFMesh(mesh.name); diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_SharedVertexBuffer.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_SharedVertexBuffer.cs index f80edb35b..192077151 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_SharedVertexBuffer.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MeshIO/MeshExporter_SharedVertexBuffer.cs @@ -26,7 +26,7 @@ namespace UniGLTF /// public static (glTFMesh, Dictionary blendShapeIndexMap) Export(glTF gltf, int bufferIndex, MeshExportInfo unityMesh, List unityMaterials, - IAxisInverter axisInverter, MeshExportSettings settings) + IAxisInverter axisInverter, GltfExportSettings settings) { var mesh = unityMesh.Mesh; var materials = unityMesh.Materials; diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/gltfExporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/gltfExporter.cs index 7044ea4a9..203fa6a97 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/gltfExporter.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/gltfExporter.cs @@ -64,9 +64,10 @@ namespace UniGLTF } TextureExporter m_textureExporter; - IAxisInverter m_axisInverter; - public gltfExporter(glTF gltf, Axes invertAxis = Axes.Z) + GltfExportSettings m_settings; + + public gltfExporter(glTF gltf, GltfExportSettings settings) { glTF = gltf; @@ -78,7 +79,12 @@ namespace UniGLTF version = "2.0", }; - m_axisInverter = invertAxis.Create(); + m_settings = settings; + if (m_settings == null) + { + // default + m_settings = new GltfExportSettings(); + } } GameObject m_tmpParent = null; @@ -87,7 +93,7 @@ namespace UniGLTF { // コピーを作って左手系を右手系に変換する Copy = GameObject.Instantiate(go); - Copy.transform.ReverseRecursive(m_axisInverter); + Copy.transform.ReverseRecursive(m_settings.InverseAxis.Create()); // Export の root は gltf の scene になるので、 // エクスポート対象が単一の GameObject の場合に、 @@ -216,7 +222,7 @@ namespace UniGLTF // do nothing } - public virtual void Export(MeshExportSettings meshExportSettings, ITextureSerializer textureSerializer) + public virtual void Export(GltfExportSettings meshExportSettings, ITextureSerializer textureSerializer) { var bytesBuffer = new ArrayByteBuffer(new byte[50 * 1024 * 1024]); var bufferIndex = glTF.AddBuffer(bytesBuffer); @@ -234,7 +240,7 @@ namespace UniGLTF m_textureExporter = new TextureExporter(textureSerializer); var materialExporter = CreateMaterialExporter(); - glTF.materials = Materials.Select(x => materialExporter.ExportMaterial(x, TextureExporter)).ToList(); + glTF.materials = Materials.Select(x => materialExporter.ExportMaterial(x, TextureExporter, m_settings)).ToList(); #endregion #region Meshes @@ -242,8 +248,8 @@ namespace UniGLTF foreach (var unityMesh in uniqueUnityMeshes) { var (gltfMesh, blendShapeIndexMap) = meshExportSettings.DivideVertexBuffer - ? MeshExporter_DividedVertexBuffer.Export(glTF, bufferIndex, unityMesh, Materials, m_axisInverter, meshExportSettings) - : MeshExporter_SharedVertexBuffer.Export(glTF, bufferIndex, unityMesh, Materials, m_axisInverter, meshExportSettings) + ? MeshExporter_DividedVertexBuffer.Export(glTF, bufferIndex, unityMesh, Materials, m_settings.InverseAxis.Create(), meshExportSettings) + : MeshExporter_SharedVertexBuffer.Export(glTF, bufferIndex, unityMesh, Materials, m_settings.InverseAxis.Create(), meshExportSettings) ; glTF.meshes.Add(gltfMesh); Meshes.Add(unityMesh.Mesh); @@ -281,7 +287,7 @@ namespace UniGLTF { if (uniqueBones != null && renderer is SkinnedMeshRenderer smr) { - var matrices = x.GetBindPoses().Select(m_axisInverter.InvertMat4).ToArray(); + var matrices = x.GetBindPoses().Select(m_settings.InverseAxis.Create().InvertMat4).ToArray(); var accessor = glTF.ExtendBufferAndGetAccessorIndex(bufferIndex, matrices, glBufferTarget.NONE); var skin = new glTFSkin { diff --git a/Assets/UniGLTF/Tests/UniGLTF/EditorTextureSerializerTests.cs b/Assets/UniGLTF/Tests/UniGLTF/EditorTextureSerializerTests.cs index 4824ac31c..1b239377a 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/EditorTextureSerializerTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/EditorTextureSerializerTests.cs @@ -19,9 +19,9 @@ namespace UniGLTF private static readonly Texture2D NormalMapGrayTex = AssetDatabase.LoadAssetAtPath($"{AssetPath}/{NormalMapGrayImageName}.png"); private static readonly Color32 JustGray = new Color32(127, 127, 127, 255); private static readonly Color32 SrgbGrayInSrgb = JustGray; - private static readonly Color32 SrgbGrayInLinear = ((Color) SrgbGrayInSrgb).linear; + private static readonly Color32 SrgbGrayInLinear = ((Color)SrgbGrayInSrgb).linear; private static readonly Color32 LinearGrayInLinear = JustGray; - private static readonly Color32 LinearGrayInSrgb = ((Color) LinearGrayInLinear).gamma; + private static readonly Color32 LinearGrayInSrgb = ((Color)LinearGrayInLinear).gamma; private static readonly Color32 NormalizedLinearGrayInLinear = new Color32(127, 127, 255, 255); [Test] @@ -123,10 +123,13 @@ namespace UniGLTF // Export glTF var gltf = new glTF(); - using (var exporter = new gltfExporter(gltf, Axes.X)) + using (var exporter = new gltfExporter(gltf, new GltfExportSettings + { + InverseAxis = Axes.X + })) { exporter.Prepare(root); - var settings = new MeshExportSettings + var settings = new GltfExportSettings { ExportOnlyBlendShapePosition = false, UseSparseAccessorForMorphTarget = false, diff --git a/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs b/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs index 145ab3fd1..8bf264371 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/GltfLoadTests.cs @@ -58,10 +58,10 @@ namespace UniGLTF static Byte[] Export(GameObject root) { var gltf = new glTF(); - using (var exporter = new gltfExporter(gltf)) + using (var exporter = new gltfExporter(gltf, new GltfExportSettings())) { exporter.Prepare(root); - exporter.Export(MeshExportSettings.Default, new EditorTextureSerializer()); + exporter.Export(new GltfExportSettings(), new EditorTextureSerializer()); return gltf.ToGlbBytes(); } } diff --git a/Assets/UniGLTF/Tests/UniGLTF/MaterialTests.cs b/Assets/UniGLTF/Tests/UniGLTF/MaterialTests.cs index 88d0e8508..f57baef33 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/MaterialTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/MaterialTests.cs @@ -29,7 +29,7 @@ namespace UniGLTF srcMaterial.mainTextureScale = scale; var materialExporter = new MaterialExporter(); - var gltfMaterial = materialExporter.ExportMaterial(srcMaterial, textureExporter); + var gltfMaterial = materialExporter.ExportMaterial(srcMaterial, textureExporter, new GltfExportSettings()); gltfMaterial.pbrMetallicRoughness.baseColorTexture.extensions = gltfMaterial.pbrMetallicRoughness.baseColorTexture.extensions.Deserialize(); Assert.IsTrue(glTF_KHR_texture_transform.TryGet(gltfMaterial.pbrMetallicRoughness.baseColorTexture, out glTF_KHR_texture_transform t)); @@ -243,7 +243,7 @@ namespace UniGLTF material.EnableKeyword("_EMISSION"); var materialExporter = new MaterialExporter(); var textureExporter = new TextureExporter(new EditorTextureSerializer()); - var gltfMaterial = materialExporter.ExportMaterial(material, textureExporter); + var gltfMaterial = materialExporter.ExportMaterial(material, textureExporter, new GltfExportSettings()); Assert.AreEqual(gltfMaterial.emissiveFactor, new float[] { 0, 0.5f, 1 }); } diff --git a/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs b/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs index aedf44fc7..78e5bad92 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs @@ -26,7 +26,7 @@ namespace UniGLTF try { - validator.SetRoot(root, MeshExportSettings.Default, new DefualtBlendShapeExportFilter()); + validator.SetRoot(root, new GltfExportSettings(), new DefualtBlendShapeExportFilter()); var vs = validator.Validate(root); Assert.False(vs.All(x => x.CanExport)); } @@ -46,7 +46,7 @@ namespace UniGLTF try { - validator.SetRoot(root, MeshExportSettings.Default, new DefualtBlendShapeExportFilter()); + validator.SetRoot(root, new GltfExportSettings(), new DefualtBlendShapeExportFilter()); var vs = validator.Validate(root); Assert.False(vs.All(x => x.CanExport)); } @@ -66,7 +66,7 @@ namespace UniGLTF try { - validator.SetRoot(root, MeshExportSettings.Default, new DefualtBlendShapeExportFilter()); + validator.SetRoot(root, new GltfExportSettings(), new DefualtBlendShapeExportFilter()); var vs = validator.Validate(root); Assert.False(vs.All(x => x.CanExport)); } @@ -90,7 +90,7 @@ namespace UniGLTF // remove MeshFilter Component.DestroyImmediate(child.GetComponent()); - validator.SetRoot(root, MeshExportSettings.Default, new DefualtBlendShapeExportFilter()); + validator.SetRoot(root, new GltfExportSettings(), new DefualtBlendShapeExportFilter()); var vs = validator.Validate(root); Assert.True(vs.All(x => x.CanExport)); } @@ -114,7 +114,7 @@ namespace UniGLTF // set null child.GetComponent().sharedMesh = null; - validator.SetRoot(root, MeshExportSettings.Default, new DefualtBlendShapeExportFilter()); + validator.SetRoot(root, new GltfExportSettings(), new DefualtBlendShapeExportFilter()); var vs = validator.Validate(root); Assert.True(vs.All(x => x.CanExport)); } diff --git a/Assets/UniGLTF/Tests/UniGLTF/MeshTests.cs b/Assets/UniGLTF/Tests/UniGLTF/MeshTests.cs index 1ef275bd5..dcfb007f3 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/MeshTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/MeshTests.cs @@ -128,7 +128,7 @@ namespace UniGLTF }; var (go, mesh) = CreateMesh(Materials.ToArray()); - var meshExportSettings = new MeshExportSettings + var meshExportSettings = new GltfExportSettings { DivideVertexBuffer = false }; @@ -176,7 +176,7 @@ namespace UniGLTF }; var (go, mesh) = CreateMesh(Materials.ToArray()); - var meshExportSettings = new MeshExportSettings + var meshExportSettings = new GltfExportSettings { DivideVertexBuffer = true }; diff --git a/Assets/UniGLTF/Tests/UniGLTF/TextureTests.cs b/Assets/UniGLTF/Tests/UniGLTF/TextureTests.cs index 7a97301db..00baf6061 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/TextureTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/TextureTests.cs @@ -24,7 +24,7 @@ namespace UniGLTF material.mainTexture = tex0; var materialExporter = new MaterialExporter(); - materialExporter.ExportMaterial(material, textureExporter); + materialExporter.ExportMaterial(material, textureExporter, new GltfExportSettings()); var exported = textureExporter.Export(); diff --git a/Assets/UniGLTF/Tests/UniGLTF/UniGLTFTests.cs b/Assets/UniGLTF/Tests/UniGLTF/UniGLTFTests.cs index 8b93b7fff..c155aefda 100644 --- a/Assets/UniGLTF/Tests/UniGLTF/UniGLTFTests.cs +++ b/Assets/UniGLTF/Tests/UniGLTF/UniGLTFTests.cs @@ -103,10 +103,10 @@ namespace UniGLTF var gltf = new glTF(); string json = null; - using (var exporter = new gltfExporter(gltf)) + using (var exporter = new gltfExporter(gltf, new GltfExportSettings())) { exporter.Prepare(go); - exporter.Export(MeshExportSettings.Default, new EditorTextureSerializer()); + exporter.Export(new GltfExportSettings(), new EditorTextureSerializer()); // remove empty buffer gltf.buffers.Clear(); @@ -294,10 +294,10 @@ namespace UniGLTF public void GlTFToJsonTest() { var gltf = new glTF(); - using (var exporter = new gltfExporter(gltf)) + using (var exporter = new gltfExporter(gltf, new GltfExportSettings())) { exporter.Prepare(CreateSimpleScene()); - exporter.Export(MeshExportSettings.Default, new EditorTextureSerializer()); + exporter.Export(new GltfExportSettings(), new EditorTextureSerializer()); } var expected = gltf.ToJson().ParseAsJson(); @@ -530,10 +530,10 @@ namespace UniGLTF // export var gltf = new glTF(); var json = default(string); - using (var exporter = new gltfExporter(gltf)) + using (var exporter = new gltfExporter(gltf, new GltfExportSettings())) { exporter.Prepare(go); - exporter.Export(UniGLTF.MeshExportSettings.Default, new EditorTextureSerializer()); + exporter.Export(new UniGLTF.GltfExportSettings(), new EditorTextureSerializer()); json = gltf.ToJson(); } @@ -612,10 +612,10 @@ namespace UniGLTF // export var gltf = new glTF(); string json; - using (var exporter = new gltfExporter(gltf)) + using (var exporter = new gltfExporter(gltf, new GltfExportSettings())) { exporter.Prepare(go); - exporter.Export(UniGLTF.MeshExportSettings.Default, new EditorTextureSerializer()); + exporter.Export(new UniGLTF.GltfExportSettings(), new EditorTextureSerializer()); json = gltf.ToJson(); } @@ -669,17 +669,17 @@ namespace UniGLTF } // validate - validator.SetRoot(root, MeshExportSettings.Default, new DefualtBlendShapeExportFilter()); + validator.SetRoot(root, new GltfExportSettings(), new DefualtBlendShapeExportFilter()); var vs = validator.Validate(root); Assert.True(vs.All(x => x.CanExport)); // export var gltf = new glTF(); string json; - using (var exporter = new gltfExporter(gltf)) + using (var exporter = new gltfExporter(gltf, new GltfExportSettings())) { exporter.Prepare(root); - exporter.Export(UniGLTF.MeshExportSettings.Default, new EditorTextureSerializer()); + exporter.Export(new UniGLTF.GltfExportSettings(), new EditorTextureSerializer()); json = gltf.ToJson(); } diff --git a/Assets/VRM.Samples/Editor/Tests/VRMImportExportTests.cs b/Assets/VRM.Samples/Editor/Tests/VRMImportExportTests.cs index ef02dba1e..db68226ee 100644 --- a/Assets/VRM.Samples/Editor/Tests/VRMImportExportTests.cs +++ b/Assets/VRM.Samples/Editor/Tests/VRMImportExportTests.cs @@ -166,7 +166,7 @@ namespace VRM.Samples */ importedJson.RemoveValue(Utf8String.From("/bufferViews/*/byteStride")); - var vrm = VRMExporter.Export(UniGLTF.MeshExportSettings.Default, loaded.gameObject, new EditorTextureSerializer()); + var vrm = VRMExporter.Export(new GltfExportSettings(), loaded.gameObject, new EditorTextureSerializer()); // TODO: Check contents in JSON /*var exportJson = */ diff --git a/Assets/VRM.Samples/Editor/Tests/VRMMaterialTests.cs b/Assets/VRM.Samples/Editor/Tests/VRMMaterialTests.cs index bfa2ee0b7..e79f78d3a 100644 --- a/Assets/VRM.Samples/Editor/Tests/VRMMaterialTests.cs +++ b/Assets/VRM.Samples/Editor/Tests/VRMMaterialTests.cs @@ -12,7 +12,7 @@ namespace VRM.Samples var material = Resources.Load(resourceName); var exporter = new VRMMaterialExporter(); var textureExporter = new TextureExporter(new EditorTextureSerializer()); - var exported = exporter.ExportMaterial(material, textureExporter); + var exported = exporter.ExportMaterial(material, textureExporter, new GltfExportSettings()); // parse glTFExtensionExport to glTFExtensionImport exported.extensions = exported.extensions.Deserialize(); diff --git a/Assets/VRM.Samples/Scripts/VRMRuntimeExporter.cs b/Assets/VRM.Samples/Scripts/VRMRuntimeExporter.cs index fe8d99127..cd14c02fd 100644 --- a/Assets/VRM.Samples/Scripts/VRMRuntimeExporter.cs +++ b/Assets/VRM.Samples/Scripts/VRMRuntimeExporter.cs @@ -92,7 +92,7 @@ namespace VRM.Samples return; } - var vrm = VRMExporter.Export(UniGLTF.MeshExportSettings.Default, m_model, new RuntimeTextureSerializer()); + var vrm = VRMExporter.Export(new UniGLTF.GltfExportSettings(), m_model, new RuntimeTextureSerializer()); var bytes = vrm.ToGlbBytes(); File.WriteAllBytes(path, bytes); Debug.LogFormat("export to {0}", path); diff --git a/Assets/VRM/Editor/Format/VRMExportSettings.cs b/Assets/VRM/Editor/Format/VRMExportSettings.cs index 66cba297d..3560f6808 100644 --- a/Assets/VRM/Editor/Format/VRMExportSettings.cs +++ b/Assets/VRM/Editor/Format/VRMExportSettings.cs @@ -50,7 +50,7 @@ namespace VRM [Tooltip("Divide vertex buffer. For more gltf compatibility")] public bool DivideVertexBuffer = false; - public MeshExportSettings MeshExportSettings => new MeshExportSettings + public GltfExportSettings MeshExportSettings => new GltfExportSettings { UseSparseAccessorForMorphTarget = UseSparseAccessor, ExportOnlyBlendShapePosition = OnlyBlendshapePosition, diff --git a/Assets/VRM/Runtime/IO/VRMExporter.cs b/Assets/VRM/Runtime/IO/VRMExporter.cs index 473eb65fb..30dd44166 100644 --- a/Assets/VRM/Runtime/IO/VRMExporter.cs +++ b/Assets/VRM/Runtime/IO/VRMExporter.cs @@ -15,7 +15,7 @@ namespace VRM return new VRMMaterialExporter(); } - public static glTF Export(MeshExportSettings configuration, GameObject go, ITextureSerializer textureSerializer) + public static glTF Export(GltfExportSettings configuration, GameObject go, ITextureSerializer textureSerializer) { var gltf = new glTF(); using (var exporter = new VRMExporter(gltf)) @@ -28,7 +28,7 @@ namespace VRM public readonly VRM.glTF_VRM_extensions VRM = new glTF_VRM_extensions(); - public VRMExporter(glTF gltf) : base(gltf, Axes.Z) + public VRMExporter(glTF gltf) : base(gltf, new GltfExportSettings()) { gltf.extensionsUsed.Add(glTF_VRM_extensions.ExtensionName); } diff --git a/Assets/VRM/Tests/VRMLoadTests.cs b/Assets/VRM/Tests/VRMLoadTests.cs index fe8beef1f..a73b325a1 100644 --- a/Assets/VRM/Tests/VRMLoadTests.cs +++ b/Assets/VRM/Tests/VRMLoadTests.cs @@ -105,7 +105,7 @@ namespace VRM try { // export - var vrm = VRMExporter.Export(UniGLTF.MeshExportSettings.Default, go, new EditorTextureSerializer()); + var vrm = VRMExporter.Export(new UniGLTF.GltfExportSettings(), go, new EditorTextureSerializer()); // re import if (vrm != null) diff --git a/Assets/VRM/Tests/VrmDividedMeshTests.cs b/Assets/VRM/Tests/VrmDividedMeshTests.cs index 9460ad3c8..a568d8fc3 100644 --- a/Assets/VRM/Tests/VrmDividedMeshTests.cs +++ b/Assets/VRM/Tests/VrmDividedMeshTests.cs @@ -66,7 +66,7 @@ namespace VRM var path = AliciaPath; var loaded = Load(File.ReadAllBytes(path), path); - var exported = VRMExporter.Export(new UniGLTF.MeshExportSettings + var exported = VRMExporter.Export(new UniGLTF.GltfExportSettings { DivideVertexBuffer = true, // test this ExportOnlyBlendShapePosition = true, diff --git a/Assets/VRM10.Samples/Scenes/RenderingServicePostProcessingProfile.asset b/Assets/VRM10.Samples/Scenes/RenderingServicePostProcessingProfile.asset new file mode 100644 index 000000000..0ec610d06 --- /dev/null +++ b/Assets/VRM10.Samples/Scenes/RenderingServicePostProcessingProfile.asset @@ -0,0 +1,1375 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3} + m_Name: RenderingServicePostProcessingProfile + m_EditorClassIdentifier: + settings: + - {fileID: 114586142691262828} + - {fileID: 114612535807957692} +--- !u!114 &114586142691262828 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 48a79b01ea5641d4aa6daa2e23605641, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + intensity: + overrideState: 1 + value: 1 + threshold: + overrideState: 1 + value: 1 + softKnee: + overrideState: 1 + value: 0.5 + clamp: + overrideState: 0 + value: 65472 + diffusion: + overrideState: 1 + value: 7 + anamorphicRatio: + overrideState: 0 + value: 0 + color: + overrideState: 0 + value: {r: 1, g: 1, b: 1, a: 1} + fastMode: + overrideState: 0 + value: 0 + dirtTexture: + overrideState: 0 + value: {fileID: 0} + defaultState: 1 + dirtIntensity: + overrideState: 0 + value: 0 +--- !u!114 &114612535807957692 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: adb84e30e02715445aeb9959894e3b4d, type: 3} + m_Name: ColorGrading + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + gradingMode: + overrideState: 0 + value: 1 + externalLut: + overrideState: 0 + value: {fileID: 0} + defaultState: 1 + tonemapper: + overrideState: 1 + value: 3 + toneCurveToeStrength: + overrideState: 0 + value: 0 + toneCurveToeLength: + overrideState: 0 + value: 0.5 + toneCurveShoulderStrength: + overrideState: 1 + value: 1 + toneCurveShoulderLength: + overrideState: 1 + value: 0.5 + toneCurveShoulderAngle: + overrideState: 0 + value: 0 + toneCurveGamma: + overrideState: 0 + value: 1 + ldrLut: + overrideState: 0 + value: {fileID: 0} + defaultState: 4 + ldrLutContribution: + overrideState: 0 + value: 1 + temperature: + overrideState: 0 + value: 0 + tint: + overrideState: 0 + value: 0 + colorFilter: + overrideState: 0 + value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + overrideState: 0 + value: 0 + saturation: + overrideState: 1 + value: 10 + brightness: + overrideState: 0 + value: 0 + postExposure: + overrideState: 0 + value: 0 + contrast: + overrideState: 1 + value: 10 + mixerRedOutRedIn: + overrideState: 0 + value: 100 + mixerRedOutGreenIn: + overrideState: 0 + value: 0 + mixerRedOutBlueIn: + overrideState: 0 + value: 0 + mixerGreenOutRedIn: + overrideState: 0 + value: 0 + mixerGreenOutGreenIn: + overrideState: 0 + value: 100 + mixerGreenOutBlueIn: + overrideState: 0 + value: 0 + mixerBlueOutRedIn: + overrideState: 0 + value: 0 + mixerBlueOutGreenIn: + overrideState: 0 + value: 0 + mixerBlueOutBlueIn: + overrideState: 0 + value: 100 + lift: + overrideState: 0 + value: {x: 1, y: 1, z: 1, w: 0} + gamma: + overrideState: 0 + value: {x: 1, y: 1, z: 1, w: 0} + gain: + overrideState: 0 + value: {x: 1, y: 1, z: 1, w: 0} + masterCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + redCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + greenCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + blueCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + hueVsHueCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + hueVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + satVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + lumVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 diff --git a/Assets/VRM10.Samples/Scenes/RenderingServicePostProcessingProfile.asset.meta b/Assets/VRM10.Samples/Scenes/RenderingServicePostProcessingProfile.asset.meta new file mode 100644 index 000000000..1ded12ecc --- /dev/null +++ b/Assets/VRM10.Samples/Scenes/RenderingServicePostProcessingProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0e684fa1214e6f419f662ce3db4f991 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/VRM10.Samples/Scenes/VRM10Viewer.unity b/Assets/VRM10.Samples/Scenes/VRM10Viewer.unity index 0182ac500..066746055 100644 --- a/Assets/VRM10.Samples/Scenes/VRM10Viewer.unity +++ b/Assets/VRM10.Samples/Scenes/VRM10Viewer.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.4465791, g: 0.4964133, b: 0.57481784, a: 1} + m_IndirectSpecularColor: {r: 0.18028381, g: 0.22571406, b: 0.30692294, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -3750,6 +3750,97 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1322834809} m_CullTransparentMesh: 0 +--- !u!1 &1407428956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1407428958} + - component: {fileID: 1407428957} + - component: {fileID: 1407428959} + m_Layer: 0 + m_Name: PostProcess + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1407428957 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1407428956} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 1 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1407428958 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1407428956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1407428959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1407428956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3} + m_Name: + m_EditorClassIdentifier: + sharedProfile: {fileID: 11400000, guid: b0e684fa1214e6f419f662ce3db4f991, type: 2} + isGlobal: 1 + blendDistance: 0 + weight: 1 + priority: 0 --- !u!1 &1476033060 GameObject: m_ObjectHideFlags: 0 @@ -3991,10 +4082,10 @@ GameObject: m_Component: - component: {fileID: 1629460662} - component: {fileID: 1629460661} - - component: {fileID: 1629460660} - component: {fileID: 1629460659} - component: {fileID: 1629460658} - component: {fileID: 1629460657} + - component: {fileID: 1629460660} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -4033,14 +4124,66 @@ Behaviour: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1629460656} m_Enabled: 1 ---- !u!92 &1629460660 -Behaviour: +--- !u!114 &1629460660 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1629460656} m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} + m_Name: + m_EditorClassIdentifier: + volumeTrigger: {fileID: 1629460662} + volumeLayer: + serializedVersion: 2 + m_Bits: 1 + stopNaNPropagation: 1 + finalBlitToCameraTarget: 0 + antialiasingMode: 0 + temporalAntialiasing: + jitterSpread: 0.75 + sharpness: 0.25 + stationaryBlending: 0.95 + motionBlending: 0.85 + subpixelMorphologicalAntialiasing: + quality: 2 + fastApproximateAntialiasing: + fastMode: 0 + keepAlpha: 0 + fog: + enabled: 1 + excludeSkybox: 1 + debugLayer: + lightMeter: + width: 512 + height: 256 + showCurves: 1 + histogram: + width: 512 + height: 256 + channel: 3 + waveform: + exposure: 0.12 + height: 256 + vectorscope: + size: 256 + exposure: 0.12 + overlaySettings: + linearDepth: 0 + motionColorIntensity: 4 + motionGridSize: 64 + colorBlindnessType: 0 + colorBlindnessStrength: 1 + m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} + m_ShowToolkit: 0 + m_ShowCustomSorter: 0 + breakBeforeColorGrading: 0 + m_BeforeTransparentBundles: [] + m_BeforeStackBundles: [] + m_AfterStackBundles: [] --- !u!20 &1629460661 Camera: m_ObjectHideFlags: 0 @@ -4079,7 +4222,7 @@ Camera: m_HDR: 1 m_AllowMSAA: 1 m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 + m_ForceIntoRT: 1 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 diff --git a/Assets/VRM10/Editor/Components/VRM10ObjectEditor.cs b/Assets/VRM10/Editor/Components/VRM10ObjectEditor.cs index 4398a599d..fa61e3737 100644 --- a/Assets/VRM10/Editor/Components/VRM10ObjectEditor.cs +++ b/Assets/VRM10/Editor/Components/VRM10ObjectEditor.cs @@ -47,7 +47,6 @@ namespace UniVRM10 } EditorGUILayout.Separator(); - serializedObject.Update(); switch (_tab) { case Tabs.Meta: @@ -66,7 +65,6 @@ namespace UniVRM10 m_firstPerson.OnInspectorGUI(); break; } - serializedObject.ApplyModifiedProperties(); } } } diff --git a/Assets/VRM10/Editor/GeneratorMenu.cs b/Assets/VRM10/Editor/GeneratorMenu.cs index 55e36c0fc..e39a678b3 100644 --- a/Assets/VRM10/Editor/GeneratorMenu.cs +++ b/Assets/VRM10/Editor/GeneratorMenu.cs @@ -41,10 +41,10 @@ namespace UniVRM10 "vrm-specification/specification/VRMC_vrm-1.0_draft/schema/VRMC_vrm.schema.json", "Assets/VRM10/Runtime/Format/Vrm", // format "Assets/VRM10/Runtime/Format/Vrm", // serializer - // VRMC_node_constraint - "vrm-specification/specification/VRMC_node_constraint-1.0_draft/schema/VRMC_node_constraint.schema.json", - "Assets/VRM10/Runtime/Format/Constraints", // format - "Assets/VRM10/Runtime/Format/Constraints", // serializer + // VRMC_hdr_emissiveMultiplier + "vrm-specification/specification/VRMC_materials_hdr_emissiveMultiplier-1.0_draft/schema/VRMC_materials_hdr_emissiveMultiplier.json", + "Assets/VRMShaders/VRM10/Format/Runtime/EmissiveMultiplier", // format + "Assets/VRM10/Runtime/Format/EmissiveMultiplier", // serializer // VRMC_materials_mtoon "vrm-specification/specification/VRMC_materials_mtoon-1.0_draft/schema/VRMC_materials_mtoon.schema.json", "Assets/VRMShaders/VRM10/Format/Runtime/MaterialsMToon", // format @@ -53,6 +53,10 @@ namespace UniVRM10 "vrm-specification/specification/VRMC_springBone-1.0_draft/schema/VRMC_springBone.schema.json", "Assets/VRM10/Runtime/Format/SpringBone", // format "Assets/VRM10/Runtime/Format/SpringBone", // serializer + // VRMC_node_constraint + "vrm-specification/specification/VRMC_node_constraint-1.0_draft/schema/VRMC_node_constraint.schema.json", + "Assets/VRM10/Runtime/Format/Constraints", // format + "Assets/VRM10/Runtime/Format/Constraints", // serializer }; for (int i = 0; i < args.Length; i += 3) diff --git a/Assets/VRM10/Editor/VRM10ExportSettings.cs b/Assets/VRM10/Editor/VRM10ExportSettings.cs index 2232a726e..7d8fab47e 100644 --- a/Assets/VRM10/Editor/VRM10ExportSettings.cs +++ b/Assets/VRM10/Editor/VRM10ExportSettings.cs @@ -19,7 +19,7 @@ namespace UniVRM10 [Tooltip("Remove blendShapeClip that preset is Unknown")] public bool ReduceBlendshapeClip = false; - public MeshExportSettings MeshExportSettings => new MeshExportSettings + public GltfExportSettings MeshExportSettings => new GltfExportSettings { UseSparseAccessorForMorphTarget = true, ExportOnlyBlendShapePosition = true, diff --git a/Assets/VRM10/Editor/Vrm10ExportDialog.cs b/Assets/VRM10/Editor/Vrm10ExportDialog.cs index b0c551217..409390317 100644 --- a/Assets/VRM10/Editor/Vrm10ExportDialog.cs +++ b/Assets/VRM10/Editor/Vrm10ExportDialog.cs @@ -63,7 +63,7 @@ namespace UniVRM10 } } VRM10Object m_tmpObject; - (VRM10MetaEditor, SerializedObject) m_metaEditor; + VRM10MetaEditor m_metaEditor; protected override void Initialize() { @@ -235,7 +235,7 @@ namespace UniVRM10 switch (_tab) { case Tabs.Meta: - if (m_metaEditor.Item1 == null) + if (m_metaEditor == null) { SerializedObject so; if (m_meta != null) @@ -246,11 +246,9 @@ namespace UniVRM10 { so = new SerializedObject(m_tmpObject); } - m_metaEditor = (VRM10MetaEditor.Create(so), so); + m_metaEditor = VRM10MetaEditor.Create(so); } - m_metaEditor.Item2.Update(); - m_metaEditor.Item1.OnInspectorGUI(); - m_metaEditor.Item2.ApplyModifiedProperties(); + m_metaEditor.OnInspectorGUI(); break; case Tabs.Mesh: @@ -297,7 +295,7 @@ namespace UniVRM10 model.ConvertCoordinate(VrmLib.Coordinates.Vrm1, ignoreVrm: false); // export vrm-1.0 - var exporter = new UniVRM10.Vrm10Exporter(new EditorTextureSerializer()); + var exporter = new UniVRM10.Vrm10Exporter(new EditorTextureSerializer(), new GltfExportSettings()); var option = new VrmLib.ExportArgs(); exporter.Export(root, model, converter, option, Vrm ? Vrm.Meta : m_tmpObject.Meta); diff --git a/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs b/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs index 931e45c84..d2d962d9f 100644 --- a/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs +++ b/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs @@ -2487,8 +2487,8 @@ public static TextureTransformBind __expressions_ITEM_Deserialize_TextureTransfo continue; } - if(key=="scaling"){ - value.Scaling = __expressions_ITEM__textureTransformBinds_ITEM_Deserialize_Scaling(kv.Value); + if(key=="scale"){ + value.Scale = __expressions_ITEM__textureTransformBinds_ITEM_Deserialize_Scale(kv.Value); continue; } @@ -2501,7 +2501,7 @@ public static TextureTransformBind __expressions_ITEM_Deserialize_TextureTransfo return value; } -public static float[] __expressions_ITEM__textureTransformBinds_ITEM_Deserialize_Scaling(JsonNode parsed) +public static float[] __expressions_ITEM__textureTransformBinds_ITEM_Deserialize_Scale(JsonNode parsed) { var value = new float[parsed.GetArrayCount()]; int i=0; diff --git a/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs b/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs index 57db40157..0b67caa7b 100644 --- a/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs +++ b/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs @@ -457,7 +457,7 @@ namespace UniGLTF.Extensions.VRMC_vrm public int? Material; // uv scaling for TEXCOORD_0 - public float[] Scaling; + public float[] Scale; // uv offset for TEXCOORD_0 public float[] Offset; diff --git a/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs b/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs index a3a381091..6cce1049b 100644 --- a/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs +++ b/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs @@ -2223,9 +2223,9 @@ public static void __expressions_ITEM_Serialize_TextureTransformBinds_ITEM(JsonF f.Value(value.Material.GetValueOrDefault()); } - if(value.Scaling!=null&&value.Scaling.Count()>=2){ - f.Key("scaling"); - __expressions_ITEM__textureTransformBinds_ITEM_Serialize_Scaling(f, value.Scaling); + if(value.Scale!=null&&value.Scale.Count()>=2){ + f.Key("scale"); + __expressions_ITEM__textureTransformBinds_ITEM_Serialize_Scale(f, value.Scale); } if(value.Offset!=null&&value.Offset.Count()>=2){ @@ -2236,7 +2236,7 @@ public static void __expressions_ITEM_Serialize_TextureTransformBinds_ITEM(JsonF f.EndMap(); } -public static void __expressions_ITEM__textureTransformBinds_ITEM_Serialize_Scaling(JsonFormatter f, float[] value) +public static void __expressions_ITEM__textureTransformBinds_ITEM_Serialize_Scale(JsonFormatter f, float[] value) { f.BeginList(); diff --git a/Assets/VRM10/Runtime/IO/ExpressionExtensions.cs b/Assets/VRM10/Runtime/IO/ExpressionExtensions.cs index 525c51f36..e9cb156a2 100644 --- a/Assets/VRM10/Runtime/IO/ExpressionExtensions.cs +++ b/Assets/VRM10/Runtime/IO/ExpressionExtensions.cs @@ -55,7 +55,7 @@ namespace UniVRM10 binding = new UniVRM10.MaterialUVBinding { MaterialName = material.name, // 名前で持つべき - Scaling = new Vector2(bind.Scaling[0], bind.Scaling[1]), + Scaling = new Vector2(bind.Scale[0], bind.Scale[1]), Offset = new Vector2(bind.Offset[0], bind.Offset[1]), }; } diff --git a/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs b/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs index 5f6e67345..2279d850b 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs @@ -18,8 +18,12 @@ namespace UniVRM10 ITextureSerializer m_textureSerializer; TextureExporter m_textureExporter; - public Vrm10Exporter(ITextureSerializer textureSerializer) + GltfExportSettings m_settings; + + public Vrm10Exporter(ITextureSerializer textureSerializer, GltfExportSettings settings) { + m_settings = settings; + if (textureSerializer == null) { throw new ArgumentException(nameof(textureSerializer)); @@ -172,7 +176,7 @@ namespace UniVRM10 var materialExporter = new Vrm10MaterialExporter(); foreach (Material material in model.Materials) { - var glTFMaterial = materialExporter.ExportMaterial(material, m_textureExporter); + var glTFMaterial = materialExporter.ExportMaterial(material, m_textureExporter, m_settings); Storage.Gltf.materials.Add(glTFMaterial); } @@ -550,7 +554,7 @@ namespace UniVRM10 { Material = getIndex(binding.MaterialName), Offset = new float[] { binding.Offset.x, binding.Offset.y }, - Scaling = new float[] { binding.Scaling.x, binding.Scaling.y }, + Scale = new float[] { binding.Scaling.x, binding.Scaling.y }, }; } @@ -794,7 +798,7 @@ namespace UniVRM10 VrmLib.ModelExtensionsForCoordinates.ConvertCoordinate(model, VrmLib.Coordinates.Vrm1); // Model と go から VRM-1.0 にExport - var exporter10 = new Vrm10Exporter(textureSerializer ?? new RuntimeTextureSerializer()); + var exporter10 = new Vrm10Exporter(textureSerializer ?? new RuntimeTextureSerializer(), new GltfExportSettings()); var option = new VrmLib.ExportArgs { }; diff --git a/Assets/VRM10/Runtime/IO/Vrm10MaterialExporter.cs b/Assets/VRM10/Runtime/IO/Vrm10MaterialExporter.cs index 5dccd34e5..afbd6078b 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10MaterialExporter.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10MaterialExporter.cs @@ -6,7 +6,7 @@ namespace UniVRM10 { public class Vrm10MaterialExporter : MaterialExporter { - public override glTFMaterial ExportMaterial(Material m, ITextureExporter textureExporter) + public override glTFMaterial ExportMaterial(Material m, ITextureExporter textureExporter, GltfExportSettings settings) { if (Vrm10MToonMaterialExporter.TryExportMaterialAsMToon(m, textureExporter, out var dst)) { @@ -14,7 +14,7 @@ namespace UniVRM10 } else { - return base.ExportMaterial(m, textureExporter); + return base.ExportMaterial(m, textureExporter, settings); } } } diff --git a/Assets/VRM10/Runtime/Migration/MigrationVrmExpression.cs b/Assets/VRM10/Runtime/Migration/MigrationVrmExpression.cs index 62ffee153..c1368be70 100644 --- a/Assets/VRM10/Runtime/Migration/MigrationVrmExpression.cs +++ b/Assets/VRM10/Runtime/Migration/MigrationVrmExpression.cs @@ -117,7 +117,7 @@ namespace UniVRM10 expression.TextureTransformBinds.Add(new UniGLTF.Extensions.VRMC_vrm.TextureTransformBind { Material = materialIndex, - Scaling = new float[] { targetValue[0], targetValue[1] }, + Scale = new float[] { targetValue[0], targetValue[1] }, Offset = new float[] { targetValue[2], targetValue[3] } }); } @@ -126,7 +126,7 @@ namespace UniVRM10 expression.TextureTransformBinds.Add(new UniGLTF.Extensions.VRMC_vrm.TextureTransformBind { Material = materialIndex, - Scaling = new float[] { targetValue[0], 1 }, + Scale = new float[] { targetValue[0], 1 }, Offset = new float[] { targetValue[2], 0 } }); } @@ -135,7 +135,7 @@ namespace UniVRM10 expression.TextureTransformBinds.Add(new UniGLTF.Extensions.VRMC_vrm.TextureTransformBind { Material = materialIndex, - Scaling = new float[] { 1, targetValue[1] }, + Scale = new float[] { 1, targetValue[1] }, Offset = new float[] { 0, targetValue[3] } }); } diff --git a/Packages/manifest.json b/Packages/manifest.json index ddf67b40c..5cc8e44ae 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -4,6 +4,7 @@ "com.unity.analytics": "3.2.3", "com.unity.collab-proxy": "1.2.15", "com.unity.package-manager-ui": "2.0.13", + "com.unity.postprocessing": "3.0.3", "com.unity.purchasing": "2.0.3", "com.unity.textmeshpro": "1.4.1", "com.unity.modules.ai": "1.0.0", diff --git a/vrm-specification b/vrm-specification index a755e9ab6..ad2ff4ef1 160000 --- a/vrm-specification +++ b/vrm-specification @@ -1 +1 @@ -Subproject commit a755e9ab6ba9d0bda840e2d2d869c6ecd8e3a280 +Subproject commit ad2ff4ef129ec4c9c521adef787456826ae9d939