Exemple #1
0
 void Traverse(ListTreeNode <JsonValue> node, JsonFormatter f, Utf8String parentKey)
 {
     if (node.IsMap())
     {
         f.BeginMap();
         foreach (var kv in node.ObjectItems())
         {
             if (parentKey == s_extensions)
             {
                 if (!UsedExtension(kv.Key.GetString()))
                 {
                     continue;
                 }
             }
             f.Key(kv.Key.GetUtf8String());
             Traverse(kv.Value, f, kv.Key.GetUtf8String());
         }
         f.EndMap();
     }
     else if (node.IsArray())
     {
         f.BeginList();
         foreach (var x in node.ArrayItems())
         {
             Traverse(x, f, default(Utf8String));
         }
         f.EndList();
     }
     else
     {
         f.Value(node);
     }
 }
Exemple #2
0
        public static ColliderShape Deserialize_Shapes_ITEM(ListTreeNode <JsonValue> parsed)
        {
            var value = new ColliderShape();

            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 == "sphere")
                {
                    value.Sphere = Deserialize_Sphere(kv.Value);
                    continue;
                }

                if (key == "capsule")
                {
                    value.Capsule = Deserialize_Capsule(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #3
0
        public static SpringSetting Deserialize_Settings_ITEM(ListTreeNode <JsonValue> parsed)
        {
            var value = new SpringSetting();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "stiffness")
                {
                    value.Stiffness = kv.Value.GetSingle();
                    continue;
                }

                if (key == "gravityPower")
                {
                    value.GravityPower = kv.Value.GetSingle();
                    continue;
                }

                if (key == "gravityDir")
                {
                    value.GravityDir = Deserialize_GravityDir(kv.Value);
                    continue;
                }

                if (key == "dragForce")
                {
                    value.DragForce = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
Exemple #4
0
        static void TraverseItem(ListTreeNode <JsonValue> node, JsonFormatter f, UnityPath dir)
        {
            var title = GetTitle(node);

            if (string.IsNullOrEmpty(title))
            {
                Traverse(node, f, dir);
            }
            else
            {
                // ref
                f.BeginMap();
                f.Key("$ref");
                var fileName = string.Format("{0}.schema.json", title);
                f.Value(fileName);
                f.EndMap();

                // new formatter
                {
                    var subFormatter = new JsonFormatter(4);

                    subFormatter.BeginMap();
                    foreach (var _kv in node.ObjectItems())
                    {
                        subFormatter.Key(_kv.Key.GetUtf8String());
                        Traverse(_kv.Value, subFormatter, dir);
                    }
                    subFormatter.EndMap();

                    var subJson = subFormatter.ToString();
                    var path    = dir.Child(fileName);
                    File.WriteAllText(path.FullPath, subJson);
                }
            }
        }
Exemple #5
0
        public static glTF_VRM_MaterialValueBind Deserialize_vrm_blendShapeMaster_blendShapeGroups__materialValues_LIST(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_MaterialValueBind();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "materialName")
                {
                    value.materialName = kv.Value.GetString();
                    continue;
                }

                if (key == "propertyName")
                {
                    value.propertyName = kv.Value.GetString();
                    continue;
                }

                if (key == "targetValue")
                {
                    value.targetValue = Deserialize_vrm_blendShapeMaster_blendShapeGroups__materialValues__targetValue(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #6
0
        public static Vector3 Deserialize_vrm_secondaryAnimation_boneGroups__gravityDir(ListTreeNode <JsonValue> parsed)
        {
            var value = new Vector3();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "x")
                {
                    value.x = kv.Value.GetSingle();
                    continue;
                }

                if (key == "y")
                {
                    value.y = kv.Value.GetSingle();
                    continue;
                }

                if (key == "z")
                {
                    value.z = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
Exemple #7
0
        public static glTF_VRM_DegreeMap Deserialize_vrm_firstPerson_lookAtVerticalUp(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_DegreeMap();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "curve")
                {
                    value.curve = Deserialize_vrm_firstPerson_lookAtVerticalUp_curve(kv.Value);
                    continue;
                }

                if (key == "xRange")
                {
                    value.xRange = kv.Value.GetSingle();
                    continue;
                }

                if (key == "yRange")
                {
                    value.yRange = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
Exemple #8
0
        public static Vector3 Deserialize_vrm_firstPerson_firstPersonBoneOffset(ListTreeNode <JsonValue> parsed)
        {
            var value = new Vector3();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "x")
                {
                    value.x = kv.Value.GetSingle();
                    continue;
                }

                if (key == "y")
                {
                    value.y = kv.Value.GetSingle();
                    continue;
                }

                if (key == "z")
                {
                    value.z = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
        static glTF_KHR_texture_transform Deserialize(ListTreeNode <JsonValue> json)
        {
            var t = new glTF_KHR_texture_transform();

            if (json.Value.ValueType == ValueNodeType.Object)
            {
                foreach (var kv in json.ObjectItems())
                {
                    var key = kv.Key.GetString();
                    switch (key)
                    {
                    case nameof(offset):
                        t.offset = DeserializeFloat2(kv.Value).ToArray();
                        break;

                    case nameof(rotation):
                        t.rotation = kv.Value.GetSingle();
                        break;

                    case nameof(scale):
                        t.scale = DeserializeFloat2(kv.Value).ToArray();
                        break;

                    case nameof(texCoord):
                        t.texCoord = kv.Value.GetInt32();
                        break;

                    default:
                        throw new NotImplementedException();
                    }
                }
            }

            return(t);
        }
Exemple #10
0
        public static ColliderShapeCapsule Deserialize_Capsule(ListTreeNode <JsonValue> parsed)
        {
            var value = new ColliderShapeCapsule();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "offset")
                {
                    value.Offset = Deserialize_Offset(kv.Value);
                    continue;
                }

                if (key == "radius")
                {
                    value.Radius = kv.Value.GetSingle();
                    continue;
                }

                if (key == "tail")
                {
                    value.Tail = Deserialize_Tail(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #11
0
 static void Traverse(ListTreeNode <JsonValue> node, JsonFormatter f, UnityPath dir)
 {
     if (node.IsArray())
     {
         f.BeginList();
         foreach (var x in node.ArrayItems())
         {
             TraverseItem(x, f, dir);
         }
         f.EndList();
     }
     else if (node.IsMap())
     {
         f.BeginMap();
         foreach (var kv in node.ObjectItems())
         {
             f.Key(kv.Key.GetUtf8String());
             TraverseItem(kv.Value, f, dir);
         }
         f.EndMap();
     }
     else
     {
         f.Value(node);
     }
 }
Exemple #12
0
        public static glTF_VRM_BlendShapeBind Deserialize_vrm_blendShapeMaster_blendShapeGroups__binds_LIST(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_BlendShapeBind();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "mesh")
                {
                    value.mesh = kv.Value.GetInt32();
                    continue;
                }

                if (key == "index")
                {
                    value.index = kv.Value.GetInt32();
                    continue;
                }

                if (key == "weight")
                {
                    value.weight = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
Exemple #13
0
        static string GetLicenseUrl(ListTreeNode <JsonValue> vrm0)
        {
            string l0 = default;
            string l1 = default;

            foreach (var kv in vrm0.ObjectItems())
            {
                switch (kv.Key.GetString())
                {
                case "otherLicenseUrl":
                    l0 = kv.Value.GetString();
                    break;

                case "otherPermissionUrl":
                    l1 = kv.Value.GetString();
                    break;
                }
            }
            if (!string.IsNullOrWhiteSpace(l0))
            {
                return(l0);
            }
            if (!string.IsNullOrWhiteSpace(l1))
            {
                return(l1);
            }
            return("");
        }
Exemple #14
0
        public static Spring Deserialize_Springs_ITEM(ListTreeNode <JsonValue> parsed)
        {
            var value = new Spring();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "name")
                {
                    value.Name = kv.Value.GetString();
                    continue;
                }

                if (key == "joints")
                {
                    value.Joints = Deserialize_Joints(kv.Value);
                    continue;
                }

                if (key == "colliders")
                {
                    value.Colliders = Deserialize_Colliders(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #15
0
        public static VRMC_springBone Deserialize(ListTreeNode <JsonValue> parsed)
        {
            var value = new VRMC_springBone();

            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 == "springs")
                {
                    value.Springs = Deserialize_Springs(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #16
0
        public static glTF_VRM_Firstperson Deserialize_vrm_firstPerson(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_Firstperson();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "firstPersonBone")
                {
                    value.firstPersonBone = kv.Value.GetInt32();
                    continue;
                }

                if (key == "firstPersonBoneOffset")
                {
                    value.firstPersonBoneOffset = Deserialize_vrm_firstPerson_firstPersonBoneOffset(kv.Value);
                    continue;
                }

                if (key == "meshAnnotations")
                {
                    value.meshAnnotations = Deserialize_vrm_firstPerson_meshAnnotations(kv.Value);
                    continue;
                }

                if (key == "lookAtTypeName")
                {
                    value.lookAtTypeName = kv.Value.GetString();
                    continue;
                }

                if (key == "lookAtHorizontalInner")
                {
                    value.lookAtHorizontalInner = Deserialize_vrm_firstPerson_lookAtHorizontalInner(kv.Value);
                    continue;
                }

                if (key == "lookAtHorizontalOuter")
                {
                    value.lookAtHorizontalOuter = Deserialize_vrm_firstPerson_lookAtHorizontalOuter(kv.Value);
                    continue;
                }

                if (key == "lookAtVerticalDown")
                {
                    value.lookAtVerticalDown = Deserialize_vrm_firstPerson_lookAtVerticalDown(kv.Value);
                    continue;
                }

                if (key == "lookAtVerticalUp")
                {
                    value.lookAtVerticalUp = Deserialize_vrm_firstPerson_lookAtVerticalUp(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #17
0
        public static glTF_VRM_extensions Deserialize(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_extensions();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "exporterVersion")
                {
                    value.exporterVersion = kv.Value.GetString();
                    continue;
                }

                if (key == "specVersion")
                {
                    value.specVersion = kv.Value.GetString();
                    continue;
                }

                if (key == "meta")
                {
                    value.meta = Deserialize_vrm_meta(kv.Value);
                    continue;
                }

                if (key == "humanoid")
                {
                    value.humanoid = Deserialize_vrm_humanoid(kv.Value);
                    continue;
                }

                if (key == "firstPerson")
                {
                    value.firstPerson = Deserialize_vrm_firstPerson(kv.Value);
                    continue;
                }

                if (key == "blendShapeMaster")
                {
                    value.blendShapeMaster = Deserialize_vrm_blendShapeMaster(kv.Value);
                    continue;
                }

                if (key == "secondaryAnimation")
                {
                    value.secondaryAnimation = Deserialize_vrm_secondaryAnimation(kv.Value);
                    continue;
                }

                if (key == "materialProperties")
                {
                    value.materialProperties = Deserialize_vrm_materialProperties(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #18
0
        public static glTF_VRM_Material Deserialize_vrm_materialProperties_LIST(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_Material();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "name")
                {
                    value.name = kv.Value.GetString();
                    continue;
                }

                if (key == "shader")
                {
                    value.shader = kv.Value.GetString();
                    continue;
                }

                if (key == "renderQueue")
                {
                    value.renderQueue = kv.Value.GetInt32();
                    continue;
                }

                if (key == "floatProperties")
                {
                    value.floatProperties = Deserialize_vrm_materialProperties__floatProperties(kv.Value);
                    continue;
                }

                if (key == "vectorProperties")
                {
                    value.vectorProperties = Deserialize_vrm_materialProperties__vectorProperties(kv.Value);
                    continue;
                }

                if (key == "textureProperties")
                {
                    value.textureProperties = Deserialize_vrm_materialProperties__textureProperties(kv.Value);
                    continue;
                }

                if (key == "keywordMap")
                {
                    value.keywordMap = Deserialize_vrm_materialProperties__keywordMap(kv.Value);
                    continue;
                }

                if (key == "tagMap")
                {
                    value.tagMap = Deserialize_vrm_materialProperties__tagMap(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #19
0
        public static PositionConstraint Deserialize_Position(ListTreeNode <JsonValue> parsed)
        {
            var value = new PositionConstraint();

            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 == "name")
                {
                    value.Name = kv.Value.GetString();
                    continue;
                }

                if (key == "source")
                {
                    value.Source = kv.Value.GetInt32();
                    continue;
                }

                if (key == "sourceSpace")
                {
                    value.SourceSpace = (ObjectSpace)Enum.Parse(typeof(ObjectSpace), kv.Value.GetString(), true);
                    continue;
                }

                if (key == "destinationSpace")
                {
                    value.DestinationSpace = (ObjectSpace)Enum.Parse(typeof(ObjectSpace), kv.Value.GetString(), true);
                    continue;
                }

                if (key == "freezeAxes")
                {
                    value.FreezeAxes = Deserialize_FreezeAxes(kv.Value);
                    continue;
                }

                if (key == "weight")
                {
                    value.Weight = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
Exemple #20
0
        public static Dictionary <String, String> Deserialize_vrm_materialProperties__tagMap(ListTreeNode <JsonValue> parsed)
        {
            var value = new Dictionary <string, String>();

            foreach (var kv in parsed.ObjectItems())
            {
                value.Add(kv.Key.GetString(), kv.Value.GetString());
            }
            return(value);
        }
Exemple #21
0
 public IEnumerable <KeyValuePair <ListTreeNode <JsonValue>, ListTreeNode <JsonValue> > > ObjectItems()
 {
     if (m_json.Value.ValueType == ValueNodeType.Object)
     {
         foreach (var kv in m_json.ObjectItems())
         {
             yield return(kv);
         }
     }
 }
Exemple #22
0
        public static glTF_VRM_HumanoidBone Deserialize_vrm_humanoid_humanBones_LIST(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_HumanoidBone();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "bone")
                {
                    value.bone = kv.Value.GetString();
                    continue;
                }

                if (key == "node")
                {
                    value.node = kv.Value.GetInt32();
                    continue;
                }

                if (key == "useDefaultValues")
                {
                    value.useDefaultValues = kv.Value.GetBoolean();
                    continue;
                }

                if (key == "min")
                {
                    value.min = Deserialize_vrm_humanoid_humanBones__min(kv.Value);
                    continue;
                }

                if (key == "max")
                {
                    value.max = Deserialize_vrm_humanoid_humanBones__max(kv.Value);
                    continue;
                }

                if (key == "center")
                {
                    value.center = Deserialize_vrm_humanoid_humanBones__center(kv.Value);
                    continue;
                }

                if (key == "axisLength")
                {
                    value.axisLength = kv.Value.GetSingle();
                    continue;
                }
            }
            return(value);
        }
Exemple #23
0
        public static VRMC_node_collider Deserialize(ListTreeNode <JsonValue> parsed)
        {
            var value = new VRMC_node_collider();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "shapes")
                {
                    value.Shapes = Deserialize_Shapes(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #24
0
        public static glTF_VRM_BlendShapeMaster Deserialize_vrm_blendShapeMaster(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_BlendShapeMaster();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "blendShapeGroups")
                {
                    value.blendShapeGroups = Deserialize_vrm_blendShapeMaster_blendShapeGroups(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #25
0
        public static VRMC_constraints Deserialize(ListTreeNode <JsonValue> parsed)
        {
            var value = new VRMC_constraints();

            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 == "position")
                {
                    value.Position = Deserialize_Position(kv.Value);
                    continue;
                }

                if (key == "rotation")
                {
                    value.Rotation = Deserialize_Rotation(kv.Value);
                    continue;
                }

                if (key == "aim")
                {
                    value.Aim = Deserialize_Aim(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #26
0
        public static Spring Deserialize_Springs_ITEM(ListTreeNode <JsonValue> parsed)
        {
            var value = new Spring();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "name")
                {
                    value.Name = kv.Value.GetString();
                    continue;
                }

                if (key == "setting")
                {
                    value.Setting = kv.Value.GetInt32();
                    continue;
                }

                if (key == "springRoot")
                {
                    value.SpringRoot = kv.Value.GetInt32();
                    continue;
                }

                if (key == "hitRadius")
                {
                    value.HitRadius = kv.Value.GetSingle();
                    continue;
                }

                if (key == "colliders")
                {
                    value.Colliders = Deserialize_Colliders(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #27
0
        public static glTF_VRM_BlendShapeGroup Deserialize_vrm_blendShapeMaster_blendShapeGroups_LIST(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_BlendShapeGroup();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "name")
                {
                    value.name = kv.Value.GetString();
                    continue;
                }

                if (key == "presetName")
                {
                    value.presetName = kv.Value.GetString();
                    continue;
                }

                if (key == "binds")
                {
                    value.binds = Deserialize_vrm_blendShapeMaster_blendShapeGroups__binds(kv.Value);
                    continue;
                }

                if (key == "materialValues")
                {
                    value.materialValues = Deserialize_vrm_blendShapeMaster_blendShapeGroups__materialValues(kv.Value);
                    continue;
                }

                if (key == "isBinary")
                {
                    value.isBinary = kv.Value.GetBoolean();
                    continue;
                }
            }
            return(value);
        }
Exemple #28
0
        public static glTF_VRM_SecondaryAnimationColliderGroup Deserialize_vrm_secondaryAnimation_colliderGroups_LIST(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_SecondaryAnimationColliderGroup();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "node")
                {
                    value.node = kv.Value.GetInt32();
                    continue;
                }

                if (key == "colliders")
                {
                    value.colliders = Deserialize_vrm_secondaryAnimation_colliderGroups__colliders(kv.Value);
                    continue;
                }
            }
            return(value);
        }
Exemple #29
0
        public static glTF_VRM_MeshAnnotation Deserialize_vrm_firstPerson_meshAnnotations_LIST(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_MeshAnnotation();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "mesh")
                {
                    value.mesh = kv.Value.GetInt32();
                    continue;
                }

                if (key == "firstPersonFlag")
                {
                    value.firstPersonFlag = kv.Value.GetString();
                    continue;
                }
            }
            return(value);
        }
Exemple #30
0
        public static glTF_VRM_SecondaryAnimation Deserialize_vrm_secondaryAnimation(ListTreeNode <JsonValue> parsed)
        {
            var value = new glTF_VRM_SecondaryAnimation();

            foreach (var kv in parsed.ObjectItems())
            {
                var key = kv.Key.GetString();

                if (key == "boneGroups")
                {
                    value.boneGroups = Deserialize_vrm_secondaryAnimation_boneGroups(kv.Value);
                    continue;
                }

                if (key == "colliderGroups")
                {
                    value.colliderGroups = Deserialize_vrm_secondaryAnimation_colliderGroups(kv.Value);
                    continue;
                }
            }
            return(value);
        }