diff --git a/Assets/UniGLTF/Editor/Generator/DeserializerWriter.cs b/Assets/UniGLTF/Editor/Generator/DeserializerWriter.cs
index d5ce549cb..eaae7f986 100644
--- a/Assets/UniGLTF/Editor/Generator/DeserializerWriter.cs
+++ b/Assets/UniGLTF/Editor/Generator/DeserializerWriter.cs
@@ -16,6 +16,7 @@ namespace UniGLTF.Extensions.$0 {
public static class GltfDeserializer
{
+ public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From($0.ExtensionName);
public static bool TryGet(UniGLTF.glTFExtension src, out $0 extension)
{
@@ -23,7 +24,7 @@ public static bool TryGet(UniGLTF.glTFExtension src, out $0 extension)
{
foreach(var kv in extensions.ObjectItems())
{
- if(kv.Key.GetUtf8String() == $0.ExtensionNameUtf8)
+ if(kv.Key.GetUtf8String() == ExtensionNameUtf8)
{
extension = Deserialize(kv.Value);
return true;
diff --git a/Assets/UniGLTF/Editor/Generator/FormatWriter.cs b/Assets/UniGLTF/Editor/Generator/FormatWriter.cs
index d102bd91f..9fb9be3e9 100644
--- a/Assets/UniGLTF/Editor/Generator/FormatWriter.cs
+++ b/Assets/UniGLTF/Editor/Generator/FormatWriter.cs
@@ -19,29 +19,6 @@ namespace GenerateUniGLTFSerialization
m_prefix = prefix;
}
- // static string UpperCamelCase(string src)
- // {
- // if(string.IsNullOrEmpty(src))
- // {
- // return "";
- // }
- // return src.Substring(0, 1).ToUpper() + src.Substring(1);
- // }
-
- // string ClassName(string src)
- // {
- // if(string.IsNullOrEmpty(src))
- // {
- // // root
- // return m_prefix;
- // }
- // else{
- // return String.Join("", src.Split("__").Select(x => UpperCamelCase(x)));
- // }
- // }
-
- const string EnumStringAttr = "[JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]";
-
static (string, string) PropType(JsonSchemaBase schema)
{
switch (schema.JsonSchemaType)
@@ -55,7 +32,7 @@ namespace GenerateUniGLTFSerialization
return (null, schema.ValueType);
case JsonSchemaType.EnumString:
- return (EnumStringAttr, schema.ValueType);
+ return (null, schema.ValueType);
}
throw new NotImplementedException();
@@ -81,7 +58,6 @@ namespace GenerateUniGLTFSerialization
{
var indent = " ";
m_w.WriteLine($"{indent}public const string ExtensionName = \"{rootName}\";");
- m_w.WriteLine($"{indent}public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(ExtensionName);");
m_w.WriteLine();
}
@@ -178,8 +154,7 @@ namespace GenerateUniGLTFSerialization
w.Write($@"// This file is generated from JsonSchema. Don't modify this source code.
using System;
using System.Collections.Generic;
-using UniGLTF;
-using UniJSON;
+
namespace UniGLTF.Extensions.{rootName}
{{
diff --git a/Assets/UniGLTF/Editor/JsonSchema/Schemas/ExtensionJsonSchema.cs b/Assets/UniGLTF/Editor/JsonSchema/Schemas/ExtensionJsonSchema.cs
index 11cd401e1..7a83dfdf9 100644
--- a/Assets/UniGLTF/Editor/JsonSchema/Schemas/ExtensionJsonSchema.cs
+++ b/Assets/UniGLTF/Editor/JsonSchema/Schemas/ExtensionJsonSchema.cs
@@ -9,7 +9,7 @@ namespace UniGLTF.JsonSchema.Schemas
{
}
- public override string ValueType => "glTFExtension";
+ public override string ValueType => "object";
public override bool IsInline => true;
@@ -25,7 +25,7 @@ namespace UniGLTF.JsonSchema.Schemas
public override string GenerateSerializerCall(string callName, string argName)
{
- return $"{argName}.Serialize(f)";
+ return $"({argName} as glTFExtension).Serialize(f)";
}
}
}
diff --git a/Assets/VRM10/Editor/GeneratorMenu.cs b/Assets/VRM10/Editor/GeneratorMenu.cs
index ba76317d3..c2e084fb0 100644
--- a/Assets/VRM10/Editor/GeneratorMenu.cs
+++ b/Assets/VRM10/Editor/GeneratorMenu.cs
@@ -7,18 +7,15 @@ namespace UniVRM10
///
/// JsonSchema から vrm10 のシリアライザーを生成する。
///
- /// * https://github.com/KhronosGroup/glTF
- /// * https://github.com/vrm-c/vrm-specification
- ///
- /// を UniVRM の隣に clone しておくこと。
- ///
- /// * UniVRM
/// * glTF
/// * vrm-specification
///
+ /// は SubModuleになった。 `$ git submodule update --init` しておくこと。
+ ///
///
public static class Menu
{
+#if VRM_DEVELOP
[MenuItem(UniVRM10.VRMVersion.MENU + "/Generate from JsonSchema")]
public static void Generate()
{
@@ -30,6 +27,7 @@ namespace UniVRM10
{
Run(true);
}
+#endif
static void Run(bool debug)
{
diff --git a/Assets/VRM10/Runtime/Format/Constraints/Deserializer.g.cs b/Assets/VRM10/Runtime/Format/Constraints/Deserializer.g.cs
index ce4d738a7..04fa4b622 100644
--- a/Assets/VRM10/Runtime/Format/Constraints/Deserializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/Constraints/Deserializer.g.cs
@@ -8,6 +8,7 @@ namespace UniGLTF.Extensions.VRMC_node_constraint {
public static class GltfDeserializer
{
+ public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(VRMC_node_constraint.ExtensionName);
public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_node_constraint extension)
{
@@ -15,7 +16,7 @@ public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_node_constraint ex
{
foreach(var kv in extensions.ObjectItems())
{
- if(kv.Key.GetUtf8String() == VRMC_node_constraint.ExtensionNameUtf8)
+ if(kv.Key.GetUtf8String() == ExtensionNameUtf8)
{
extension = Deserialize(kv.Value);
return true;
diff --git a/Assets/VRM10/Runtime/Format/Constraints/Format.g.cs b/Assets/VRM10/Runtime/Format/Constraints/Format.g.cs
index 13a812f1c..0d3af20a9 100644
--- a/Assets/VRM10/Runtime/Format/Constraints/Format.g.cs
+++ b/Assets/VRM10/Runtime/Format/Constraints/Format.g.cs
@@ -1,8 +1,7 @@
// This file is generated from JsonSchema. Don't modify this source code.
using System;
using System.Collections.Generic;
-using UniGLTF;
-using UniJSON;
+
namespace UniGLTF.Extensions.VRMC_node_constraint
{
@@ -17,10 +16,10 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public class PositionConstraint
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The user-defined name of this object.
public string Name;
@@ -29,11 +28,9 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public int? Source;
// The source node will be evaluated in this space.
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ObjectSpace SourceSpace;
// The destination node will be evaluated in this space.
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ObjectSpace DestinationSpace;
// Axes be constrained by this constraint, in X-Y-Z order.
@@ -46,10 +43,10 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public class RotationConstraint
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The user-defined name of this object.
public string Name;
@@ -58,11 +55,9 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public int? Source;
// The source node will be evaluated in this space.
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ObjectSpace SourceSpace;
// The destination node will be evaluated in this space.
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ObjectSpace DestinationSpace;
// Axes be constrained by this constraint, in X-Y-Z order.
@@ -75,10 +70,10 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public class AimConstraint
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The user-defined name of this object.
public string Name;
@@ -87,11 +82,9 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public int? Source;
// The source node will be evaluated in this space.
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ObjectSpace SourceSpace;
// The destination node will be evaluated in this space.
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ObjectSpace DestinationSpace;
// An axis which faces the direction of its source.
@@ -110,10 +103,10 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public class Constraint
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// A constraint that links the position with a source.
public PositionConstraint Position;
@@ -128,13 +121,12 @@ namespace UniGLTF.Extensions.VRMC_node_constraint
public class VRMC_node_constraint
{
public const string ExtensionName = "VRMC_node_constraint";
- public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(ExtensionName);
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// Contains position, rotation, or aim
public Constraint Constraint;
diff --git a/Assets/VRM10/Runtime/Format/Constraints/Serializer.g.cs b/Assets/VRM10/Runtime/Format/Constraints/Serializer.g.cs
index 35356e461..02b319f02 100644
--- a/Assets/VRM10/Runtime/Format/Constraints/Serializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/Constraints/Serializer.g.cs
@@ -35,12 +35,12 @@ public static void Serialize(JsonFormatter f, VRMC_node_constraint value)
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Constraint!=null){
@@ -58,12 +58,12 @@ public static void Serialize_Constraint(JsonFormatter f, Constraint value)
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Position!=null){
@@ -91,12 +91,12 @@ public static void __constraint_Serialize_Position(JsonFormatter f, PositionCons
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(!string.IsNullOrEmpty(value.Name)){
@@ -151,12 +151,12 @@ public static void __constraint_Serialize_Rotation(JsonFormatter f, RotationCons
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(!string.IsNullOrEmpty(value.Name)){
@@ -211,12 +211,12 @@ public static void __constraint_Serialize_Aim(JsonFormatter f, AimConstraint val
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(!string.IsNullOrEmpty(value.Name)){
diff --git a/Assets/VRM10/Runtime/Format/MaterialsMToon/Deserializer.g.cs b/Assets/VRM10/Runtime/Format/MaterialsMToon/Deserializer.g.cs
index 3d6714e44..12cedff0c 100644
--- a/Assets/VRM10/Runtime/Format/MaterialsMToon/Deserializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/MaterialsMToon/Deserializer.g.cs
@@ -8,6 +8,7 @@ namespace UniGLTF.Extensions.VRMC_materials_mtoon {
public static class GltfDeserializer
{
+ public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(VRMC_materials_mtoon.ExtensionName);
public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_materials_mtoon extension)
{
@@ -15,7 +16,7 @@ public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_materials_mtoon ex
{
foreach(var kv in extensions.ObjectItems())
{
- if(kv.Key.GetUtf8String() == VRMC_materials_mtoon.ExtensionNameUtf8)
+ if(kv.Key.GetUtf8String() == ExtensionNameUtf8)
{
extension = Deserialize(kv.Value);
return true;
diff --git a/Assets/VRM10/Runtime/Format/MaterialsMToon/Format.g.cs b/Assets/VRM10/Runtime/Format/MaterialsMToon/Format.g.cs
index 1812ab9cb..91a660a4d 100644
--- a/Assets/VRM10/Runtime/Format/MaterialsMToon/Format.g.cs
+++ b/Assets/VRM10/Runtime/Format/MaterialsMToon/Format.g.cs
@@ -1,8 +1,7 @@
// This file is generated from JsonSchema. Don't modify this source code.
using System;
using System.Collections.Generic;
-using UniGLTF;
-using UniJSON;
+
namespace UniGLTF.Extensions.VRMC_materials_mtoon
{
@@ -10,10 +9,10 @@ namespace UniGLTF.Extensions.VRMC_materials_mtoon
public class TextureInfo
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The index of the texture.
public int? Index;
@@ -25,10 +24,10 @@ namespace UniGLTF.Extensions.VRMC_materials_mtoon
public class ShadingShiftTextureInfo
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The index of the texture.
public int? Index;
@@ -51,13 +50,12 @@ namespace UniGLTF.Extensions.VRMC_materials_mtoon
public class VRMC_materials_mtoon
{
public const string ExtensionName = "VRMC_materials_mtoon";
- public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(ExtensionName);
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// Meta
public string Version;
@@ -96,7 +94,6 @@ namespace UniGLTF.Extensions.VRMC_materials_mtoon
public float? ParametricRimLiftFactor;
// Outline
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public OutlineWidthMode OutlineWidthMode;
public float? OutlineWidthFactor;
diff --git a/Assets/VRM10/Runtime/Format/MaterialsMToon/Serializer.g.cs b/Assets/VRM10/Runtime/Format/MaterialsMToon/Serializer.g.cs
index b6e3369a2..397041fca 100644
--- a/Assets/VRM10/Runtime/Format/MaterialsMToon/Serializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/MaterialsMToon/Serializer.g.cs
@@ -35,12 +35,12 @@ public static void Serialize(JsonFormatter f, VRMC_materials_mtoon value)
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(!string.IsNullOrEmpty(value.Version)){
@@ -185,12 +185,12 @@ public static void Serialize_ShadeMultiplyTexture(JsonFormatter f, TextureInfo v
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Index.HasValue){
@@ -213,12 +213,12 @@ public static void Serialize_ShadingShiftTexture(JsonFormatter f, ShadingShiftTe
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Index.HasValue){
@@ -246,12 +246,12 @@ public static void Serialize_MatcapTexture(JsonFormatter f, TextureInfo value)
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Index.HasValue){
@@ -286,12 +286,12 @@ public static void Serialize_RimMultiplyTexture(JsonFormatter f, TextureInfo val
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Index.HasValue){
@@ -314,12 +314,12 @@ public static void Serialize_OutlineWidthMultiplyTexture(JsonFormatter f, Textur
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Index.HasValue){
@@ -354,12 +354,12 @@ public static void Serialize_UvAnimationMaskTexture(JsonFormatter f, TextureInfo
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Index.HasValue){
diff --git a/Assets/VRM10/Runtime/Format/SpringBone/Deserializer.g.cs b/Assets/VRM10/Runtime/Format/SpringBone/Deserializer.g.cs
index 1d6b3a46c..28fe96538 100644
--- a/Assets/VRM10/Runtime/Format/SpringBone/Deserializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/SpringBone/Deserializer.g.cs
@@ -8,6 +8,7 @@ namespace UniGLTF.Extensions.VRMC_springBone {
public static class GltfDeserializer
{
+ public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(VRMC_springBone.ExtensionName);
public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_springBone extension)
{
@@ -15,7 +16,7 @@ public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_springBone extensi
{
foreach(var kv in extensions.ObjectItems())
{
- if(kv.Key.GetUtf8String() == VRMC_springBone.ExtensionNameUtf8)
+ if(kv.Key.GetUtf8String() == ExtensionNameUtf8)
{
extension = Deserialize(kv.Value);
return true;
diff --git a/Assets/VRM10/Runtime/Format/SpringBone/Format.g.cs b/Assets/VRM10/Runtime/Format/SpringBone/Format.g.cs
index b4124a382..122860d74 100644
--- a/Assets/VRM10/Runtime/Format/SpringBone/Format.g.cs
+++ b/Assets/VRM10/Runtime/Format/SpringBone/Format.g.cs
@@ -1,8 +1,7 @@
// This file is generated from JsonSchema. Don't modify this source code.
using System;
using System.Collections.Generic;
-using UniGLTF;
-using UniJSON;
+
namespace UniGLTF.Extensions.VRMC_springBone
{
@@ -31,10 +30,10 @@ namespace UniGLTF.Extensions.VRMC_springBone
public class ColliderShape
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
public ColliderShapeSphere Sphere;
@@ -44,10 +43,10 @@ namespace UniGLTF.Extensions.VRMC_springBone
public class Collider
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The node index.
public int? Node;
@@ -58,10 +57,10 @@ namespace UniGLTF.Extensions.VRMC_springBone
public class ColliderGroup
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
public List Colliders;
}
@@ -69,10 +68,10 @@ namespace UniGLTF.Extensions.VRMC_springBone
public class SpringBoneJoint
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The node index.
public int? Node;
@@ -96,10 +95,10 @@ namespace UniGLTF.Extensions.VRMC_springBone
public class Spring
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// Name of the Spring
public string Name;
@@ -114,13 +113,12 @@ namespace UniGLTF.Extensions.VRMC_springBone
public class VRMC_springBone
{
public const string ExtensionName = "VRMC_springBone";
- public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(ExtensionName);
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// An array of colliderGroups.
public List ColliderGroups;
diff --git a/Assets/VRM10/Runtime/Format/SpringBone/Serializer.g.cs b/Assets/VRM10/Runtime/Format/SpringBone/Serializer.g.cs
index 38e423999..ef63c1cd2 100644
--- a/Assets/VRM10/Runtime/Format/SpringBone/Serializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/SpringBone/Serializer.g.cs
@@ -35,12 +35,12 @@ public static void Serialize(JsonFormatter f, VRMC_springBone value)
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.ColliderGroups!=null&&value.ColliderGroups.Count()>=0){
@@ -75,12 +75,12 @@ public static void Serialize_ColliderGroups_ITEM(JsonFormatter f, ColliderGroup
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Colliders!=null&&value.Colliders.Count()>=0){
@@ -110,12 +110,12 @@ public static void __colliderGroups_ITEM_Serialize_Colliders_ITEM(JsonFormatter
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Node.HasValue){
@@ -138,12 +138,12 @@ public static void __colliderGroups_ITEM__colliders_ITEM_Serialize_Shape(JsonFor
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Sphere!=null){
@@ -255,12 +255,12 @@ public static void Serialize_Springs_ITEM(JsonFormatter f, Spring value)
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(!string.IsNullOrEmpty(value.Name)){
@@ -300,12 +300,12 @@ public static void __springs_ITEM_Serialize_Joints_ITEM(JsonFormatter f, SpringB
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Node.HasValue){
diff --git a/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs b/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs
index fef0de1f1..20a866f87 100644
--- a/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/Vrm/Deserializer.g.cs
@@ -8,6 +8,7 @@ namespace UniGLTF.Extensions.VRMC_vrm {
public static class GltfDeserializer
{
+ public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(VRMC_vrm.ExtensionName);
public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_vrm extension)
{
@@ -15,7 +16,7 @@ public static bool TryGet(UniGLTF.glTFExtension src, out VRMC_vrm extension)
{
foreach(var kv in extensions.ObjectItems())
{
- if(kv.Key.GetUtf8String() == VRMC_vrm.ExtensionNameUtf8)
+ if(kv.Key.GetUtf8String() == ExtensionNameUtf8)
{
extension = Deserialize(kv.Value);
return true;
diff --git a/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs b/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs
index 60319c844..22167bc20 100644
--- a/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs
+++ b/Assets/VRM10/Runtime/Format/Vrm/Format.g.cs
@@ -1,8 +1,7 @@
// This file is generated from JsonSchema. Don't modify this source code.
using System;
using System.Collections.Generic;
-using UniGLTF;
-using UniJSON;
+
namespace UniGLTF.Extensions.VRMC_vrm
{
@@ -66,7 +65,6 @@ namespace UniGLTF.Extensions.VRMC_vrm
public int? ThumbnailImage;
// A person who can perform with this avatars
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public AvatarPermissionType AvatarPermission;
// A flag that permits to use this avatar in excessively violent contents
@@ -76,21 +74,18 @@ namespace UniGLTF.Extensions.VRMC_vrm
public bool? AllowExcessivelySexualUsage;
// An option that permits to use this avatar in commercial products
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public CommercialUsageType CommercialUsage;
// A flag that permits to use this avatar in political or religious contents
public bool? AllowPoliticalOrReligiousUsage;
// An option that forces or abandons to display the credit of this avatar
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public CreditNotationType CreditNotation;
// A flag that permits to redistribute this avatar
public bool? AllowRedistribution;
// An option that controls the condition to modify this avatar
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ModificationType Modification;
// Describe the URL links of other license
@@ -292,7 +287,6 @@ namespace UniGLTF.Extensions.VRMC_vrm
public int? Node;
// How the camera interprets the mesh.
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public FirstPersonType Type;
}
@@ -323,7 +317,6 @@ namespace UniGLTF.Extensions.VRMC_vrm
// The origin of LookAt. Position offset from the head bone
public float[] OffsetFromHeadBone;
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public LookAtType Type;
// Horizontal inward movement. The left eye moves right. The right eye moves left.
@@ -366,10 +359,10 @@ namespace UniGLTF.Extensions.VRMC_vrm
public class MorphTargetBind
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// The index of the node that attached to target mesh.
public int? Node;
@@ -394,15 +387,14 @@ namespace UniGLTF.Extensions.VRMC_vrm
public class MaterialColorBind
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// target material
public int? Material;
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public MaterialColorType Type;
// target color
@@ -412,10 +404,10 @@ namespace UniGLTF.Extensions.VRMC_vrm
public class TextureTransformBind
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// target material
public int? Material;
@@ -438,16 +430,15 @@ namespace UniGLTF.Extensions.VRMC_vrm
public class Expression
{
// Dictionary object with extension-specific objects.
- public glTFExtension Extensions;
+ public object Extensions;
// Application-specific data.
- public glTFExtension Extras;
+ public object Extras;
// Use only if the preset is custom. Unique within the model
public string Name;
// Functions of Expression
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ExpressionPreset Preset;
// Specify a morph target
@@ -463,22 +454,18 @@ namespace UniGLTF.Extensions.VRMC_vrm
public bool? IsBinary;
// Override values of Blink expressions when this Expression is enabled
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ExpressionOverrideType OverrideBlink;
// Override values of LookAt expressions when this Expression is enabled
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ExpressionOverrideType OverrideLookAt;
// Override values of Mouth expressions when this Expression is enabled
- [JsonSchema(EnumSerializationType = EnumSerializationType.AsString)]
public ExpressionOverrideType OverrideMouth;
}
public class VRMC_vrm
{
public const string ExtensionName = "VRMC_vrm";
- public static readonly Utf8String ExtensionNameUtf8 = Utf8String.From(ExtensionName);
// Specification version of the VRM
public string SpecVersion;
diff --git a/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs b/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs
index c5dc200a8..610fec3c9 100644
--- a/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs
+++ b/Assets/VRM10/Runtime/Format/Vrm/Serializer.g.cs
@@ -1378,12 +1378,12 @@ public static void Serialize_Expressions_ITEM(JsonFormatter f, Expression value)
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(!string.IsNullOrEmpty(value.Name)){
@@ -1453,12 +1453,12 @@ public static void __expressions_ITEM_Serialize_MorphTargetBinds_ITEM(JsonFormat
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Node.HasValue){
@@ -1498,12 +1498,12 @@ public static void __expressions_ITEM_Serialize_MaterialColorBinds_ITEM(JsonForm
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Material.HasValue){
@@ -1555,12 +1555,12 @@ public static void __expressions_ITEM_Serialize_TextureTransformBinds_ITEM(JsonF
if(value.Extensions!=null){
f.Key("extensions");
- value.Extensions.Serialize(f);
+ (value.Extensions as glTFExtension).Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
- value.Extras.Serialize(f);
+ (value.Extras as glTFExtension).Serialize(f);
}
if(value.Material.HasValue){
diff --git a/Assets/VRM10/Tests/MigrationTests.cs b/Assets/VRM10/Tests/MigrationTests.cs
index e60a69d51..5329888b6 100644
--- a/Assets/VRM10/Tests/MigrationTests.cs
+++ b/Assets/VRM10/Tests/MigrationTests.cs
@@ -54,9 +54,9 @@ namespace UniVRM10
var json = glb.Json.Bytes.ParseAsJson();
var gltf = UniGLTF.GltfDeserializer.Deserialize(json);
- MigrationVrm.Check(vrm0Json, GetExtension(gltf.extensions, UniGLTF.Extensions.VRMC_vrm.VRMC_vrm.ExtensionNameUtf8,
+ MigrationVrm.Check(vrm0Json, GetExtension(gltf.extensions, UniGLTF.Extensions.VRMC_vrm.GltfDeserializer.ExtensionNameUtf8,
UniGLTF.Extensions.VRMC_vrm.GltfDeserializer.Deserialize));
- MigrationVrm.Check(vrm0Json, GetExtension(gltf.extensions, UniGLTF.Extensions.VRMC_springBone.VRMC_springBone.ExtensionNameUtf8,
+ MigrationVrm.Check(vrm0Json, GetExtension(gltf.extensions, UniGLTF.Extensions.VRMC_springBone.GltfDeserializer.ExtensionNameUtf8,
UniGLTF.Extensions.VRMC_springBone.GltfDeserializer.Deserialize), gltf.nodes);
}