diff --git a/Assets/VRM/UniGLTF/Editor/Serialization/DeserializerGenerator.cs b/Assets/VRM/UniGLTF/Editor/Serialization/DeserializerGenerator.cs
index c6bb8bbae..297300115 100644
--- a/Assets/VRM/UniGLTF/Editor/Serialization/DeserializerGenerator.cs
+++ b/Assets/VRM/UniGLTF/Editor/Serialization/DeserializerGenerator.cs
@@ -22,7 +22,7 @@ namespace UniGLTF
///
/// AOT向けにデシリアライザを生成する
///
- [MenuItem(VRM.VRMVersion.MENU + "/Generate Deserializer")]
+ [MenuItem(VRM.VRMVersion.MENU + "/GLTF: Generate Deserializer")]
static void GenerateSerializer()
{
var info = new ObjectSerialization(typeof(glTF), "gltf");
diff --git a/Assets/VRM/UniGLTF/Scripts/IO/GltfDeserializer.g.cs b/Assets/VRM/UniGLTF/Scripts/IO/GltfDeserializer.g.cs
index ca1a758f7..d74b3a69e 100644
--- a/Assets/VRM/UniGLTF/Scripts/IO/GltfDeserializer.g.cs
+++ b/Assets/VRM/UniGLTF/Scripts/IO/GltfDeserializer.g.cs
@@ -146,6 +146,16 @@ public static glTFAssets Deserialize_gltf_asset(ListTreeNode parsed)
continue;
}
+ if(key=="extensions"){
+ value.extensions = kv.Value;
+ continue;
+ }
+
+ if(key=="extras"){
+ value.extras = kv.Value;
+ continue;
+ }
+
}
return value;
}
@@ -177,6 +187,16 @@ public static glTFBuffer Deserialize_gltf_buffers_LIST(ListTreeNode p
continue;
}
+ if(key=="extensions"){
+ value.extensions = kv.Value;
+ continue;
+ }
+
+ if(key=="extras"){
+ value.extras = kv.Value;
+ continue;
+ }
+
if(key=="name"){
value.name = kv.Value.GetString();
continue;
@@ -228,6 +248,16 @@ public static glTFBufferView Deserialize_gltf_bufferViews_LIST(ListTreeNode
continue;
}
+ if(key=="extensions"){
+ value.extensions = kv.Value;
+ continue;
+ }
+
+ if(key=="extras"){
+ value.extras = kv.Value;
+ continue;
+ }
+
if(key=="name"){
value.name = kv.Value.GetString();
continue;
@@ -479,6 +559,16 @@ public static glTFTextureSampler Deserialize_gltf_samplers_LIST(ListTreeNode par
continue;
}
+ if(key=="extensions"){
+ value.extensions = kv.Value;
+ continue;
+ }
+
+ if(key=="extras"){
+ value.extras = kv.Value;
+ continue;
+ }
+
}
return value;
}
@@ -596,6 +696,11 @@ public static glTFMaterial Deserialize_gltf_materials_LIST(ListTreeNode parsed)
-// {
-// var value = new glTFTextureInfo_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="KHR_texture_transform"){
-// value.KHR_texture_transform = Deserialize_gltf_materials__pbrMetallicRoughness_baseColorTexture_extensions_KHR_texture_transform(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static glTF_KHR_texture_transform Deserialize_gltf_materials__pbrMetallicRoughness_baseColorTexture_extensions_KHR_texture_transform(ListTreeNode parsed)
-{
- var value = new glTF_KHR_texture_transform();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="offset"){
- value.offset = Deserialize_gltf_materials__pbrMetallicRoughness_baseColorTexture_extensions_KHR_texture_transform_offset(kv.Value);
- continue;
- }
-
- if(key=="rotation"){
- value.rotation = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="scale"){
- value.scale = Deserialize_gltf_materials__pbrMetallicRoughness_baseColorTexture_extensions_KHR_texture_transform_scale(kv.Value);
- continue;
- }
-
- if(key=="texCoord"){
- value.texCoord = kv.Value.GetInt32();
+ if(key=="extras"){
+ value.extras = kv.Value;
continue;
}
@@ -713,28 +784,6 @@ public static glTF_KHR_texture_transform Deserialize_gltf_materials__pbrMetallic
return value;
}
-public static Single[] Deserialize_gltf_materials__pbrMetallicRoughness_baseColorTexture_extensions_KHR_texture_transform_offset(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_materials__pbrMetallicRoughness_baseColorTexture_extensions_KHR_texture_transform_scale(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
public static Single[] Deserialize_gltf_materials__pbrMetallicRoughness_baseColorFactor(ListTreeNode parsed)
{
var value = new Single[parsed.GetArrayCount()];
@@ -769,52 +818,8 @@ public static glTFMaterialMetallicRoughnessTextureInfo Deserialize_gltf_material
continue;
}
- }
- return value;
-}
-
-// public static glTFTextureInfo_extensions Deserialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture_extensions(ListTreeNode parsed)
-// {
-// var value = new glTFTextureInfo_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="KHR_texture_transform"){
-// value.KHR_texture_transform = Deserialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture_extensions_KHR_texture_transform(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static glTF_KHR_texture_transform Deserialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture_extensions_KHR_texture_transform(ListTreeNode parsed)
-{
- var value = new glTF_KHR_texture_transform();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="offset"){
- value.offset = Deserialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture_extensions_KHR_texture_transform_offset(kv.Value);
- continue;
- }
-
- if(key=="rotation"){
- value.rotation = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="scale"){
- value.scale = Deserialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture_extensions_KHR_texture_transform_scale(kv.Value);
- continue;
- }
-
- if(key=="texCoord"){
- value.texCoord = kv.Value.GetInt32();
+ if(key=="extras"){
+ value.extras = kv.Value;
continue;
}
@@ -822,28 +827,6 @@ public static glTF_KHR_texture_transform Deserialize_gltf_materials__pbrMetallic
return value;
}
-public static Single[] Deserialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture_extensions_KHR_texture_transform_offset(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_materials__pbrMetallicRoughness_metallicRoughnessTexture_extensions_KHR_texture_transform_scale(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
public static glTFMaterialNormalTextureInfo Deserialize_gltf_materials__normalTexture(ListTreeNode parsed)
{
var value = new glTFMaterialNormalTextureInfo();
@@ -872,52 +855,8 @@ public static glTFMaterialNormalTextureInfo Deserialize_gltf_materials__normalTe
continue;
}
- }
- return value;
-}
-
-// public static glTFTextureInfo_extensions Deserialize_gltf_materials__normalTexture_extensions(ListTreeNode parsed)
-// {
-// var value = new glTFTextureInfo_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="KHR_texture_transform"){
-// value.KHR_texture_transform = Deserialize_gltf_materials__normalTexture_extensions_KHR_texture_transform(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static glTF_KHR_texture_transform Deserialize_gltf_materials__normalTexture_extensions_KHR_texture_transform(ListTreeNode parsed)
-{
- var value = new glTF_KHR_texture_transform();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="offset"){
- value.offset = Deserialize_gltf_materials__normalTexture_extensions_KHR_texture_transform_offset(kv.Value);
- continue;
- }
-
- if(key=="rotation"){
- value.rotation = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="scale"){
- value.scale = Deserialize_gltf_materials__normalTexture_extensions_KHR_texture_transform_scale(kv.Value);
- continue;
- }
-
- if(key=="texCoord"){
- value.texCoord = kv.Value.GetInt32();
+ if(key=="extras"){
+ value.extras = kv.Value;
continue;
}
@@ -925,28 +864,6 @@ public static glTF_KHR_texture_transform Deserialize_gltf_materials__normalTextu
return value;
}
-public static Single[] Deserialize_gltf_materials__normalTexture_extensions_KHR_texture_transform_offset(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_materials__normalTexture_extensions_KHR_texture_transform_scale(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
public static glTFMaterialOcclusionTextureInfo Deserialize_gltf_materials__occlusionTexture(ListTreeNode parsed)
{
var value = new glTFMaterialOcclusionTextureInfo();
@@ -975,52 +892,8 @@ public static glTFMaterialOcclusionTextureInfo Deserialize_gltf_materials__occlu
continue;
}
- }
- return value;
-}
-
-// public static glTFTextureInfo_extensions Deserialize_gltf_materials__occlusionTexture_extensions(ListTreeNode parsed)
-// {
-// var value = new glTFTextureInfo_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="KHR_texture_transform"){
-// value.KHR_texture_transform = Deserialize_gltf_materials__occlusionTexture_extensions_KHR_texture_transform(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static glTF_KHR_texture_transform Deserialize_gltf_materials__occlusionTexture_extensions_KHR_texture_transform(ListTreeNode parsed)
-{
- var value = new glTF_KHR_texture_transform();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="offset"){
- value.offset = Deserialize_gltf_materials__occlusionTexture_extensions_KHR_texture_transform_offset(kv.Value);
- continue;
- }
-
- if(key=="rotation"){
- value.rotation = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="scale"){
- value.scale = Deserialize_gltf_materials__occlusionTexture_extensions_KHR_texture_transform_scale(kv.Value);
- continue;
- }
-
- if(key=="texCoord"){
- value.texCoord = kv.Value.GetInt32();
+ if(key=="extras"){
+ value.extras = kv.Value;
continue;
}
@@ -1028,28 +901,6 @@ public static glTF_KHR_texture_transform Deserialize_gltf_materials__occlusionTe
return value;
}
-public static Single[] Deserialize_gltf_materials__occlusionTexture_extensions_KHR_texture_transform_offset(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_materials__occlusionTexture_extensions_KHR_texture_transform_scale(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
public static glTFMaterialEmissiveTextureInfo Deserialize_gltf_materials__emissiveTexture(ListTreeNode parsed)
{
var value = new glTFMaterialEmissiveTextureInfo();
@@ -1073,52 +924,8 @@ public static glTFMaterialEmissiveTextureInfo Deserialize_gltf_materials__emissi
continue;
}
- }
- return value;
-}
-
-// public static glTFTextureInfo_extensions Deserialize_gltf_materials__emissiveTexture_extensions(ListTreeNode parsed)
-// {
-// var value = new glTFTextureInfo_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="KHR_texture_transform"){
-// value.KHR_texture_transform = Deserialize_gltf_materials__emissiveTexture_extensions_KHR_texture_transform(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static glTF_KHR_texture_transform Deserialize_gltf_materials__emissiveTexture_extensions_KHR_texture_transform(ListTreeNode parsed)
-{
- var value = new glTF_KHR_texture_transform();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="offset"){
- value.offset = Deserialize_gltf_materials__emissiveTexture_extensions_KHR_texture_transform_offset(kv.Value);
- continue;
- }
-
- if(key=="rotation"){
- value.rotation = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="scale"){
- value.scale = Deserialize_gltf_materials__emissiveTexture_extensions_KHR_texture_transform_scale(kv.Value);
- continue;
- }
-
- if(key=="texCoord"){
- value.texCoord = kv.Value.GetInt32();
+ if(key=="extras"){
+ value.extras = kv.Value;
continue;
}
@@ -1126,28 +933,6 @@ public static glTF_KHR_texture_transform Deserialize_gltf_materials__emissiveTex
return value;
}
-public static Single[] Deserialize_gltf_materials__emissiveTexture_extensions_KHR_texture_transform_offset(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_materials__emissiveTexture_extensions_KHR_texture_transform_scale(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
public static Single[] Deserialize_gltf_materials__emissiveFactor(ListTreeNode parsed)
{
var value = new Single[parsed.GetArrayCount()];
@@ -1159,35 +944,6 @@ public static Single[] Deserialize_gltf_materials__emissiveFactor(ListTreeNode parsed)
-// {
-// var value = new glTFMaterial_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="KHR_materials_unlit"){
-// value.KHR_materials_unlit = Deserialize_gltf_materials__extensions_KHR_materials_unlit(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static glTF_KHR_materials_unlit Deserialize_gltf_materials__extensions_KHR_materials_unlit(ListTreeNode parsed)
-{
- var value = new glTF_KHR_materials_unlit();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- }
- return value;
-}
-
public static List Deserialize_gltf_meshes(ListTreeNode parsed)
{
var value = new List();
@@ -1225,6 +981,11 @@ public static glTFMesh Deserialize_gltf_meshes_LIST(ListTreeNode pars
continue;
}
+ if(key=="extensions"){
+ value.extensions = kv.Value;
+ continue;
+ }
+
}
return value;
}
@@ -1313,6 +1074,11 @@ public static glTFAttributes Deserialize_gltf_meshes__primitives__attributes(Lis
continue;
}
+ if(key=="TEXCOORD_1"){
+ value.TEXCOORD_1 = kv.Value.GetInt32();
+ continue;
+ }
+
if(key=="COLOR_0"){
value.COLOR_0 = kv.Value.GetInt32();
continue;
@@ -1368,44 +1134,6 @@ public static gltfMorphTarget Deserialize_gltf_meshes__primitives__targets_LIST(
return value;
}
-// public static glTFPrimitives_extras Deserialize_gltf_meshes__primitives__extras(ListTreeNode parsed)
-// {
-// var value = new glTFPrimitives_extras();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="targetNames"){
-// value.targetNames = Deserialize_gltf_meshes__primitives__extras_targetNames(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static List Deserialize_gltf_meshes__primitives__extras_targetNames(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(x.GetString());
- }
- return value;
-}
-// public static glTFPrimitives_extensions Deserialize_gltf_meshes__primitives__extensions(ListTreeNode parsed)
-// {
-// var value = new glTFPrimitives_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
public static Single[] Deserialize_gltf_meshes__weights(ListTreeNode parsed)
{
var value = new Single[parsed.GetArrayCount()];
@@ -1417,32 +1145,6 @@ public static Single[] Deserialize_gltf_meshes__weights(ListTreeNode
return value;
}
-// public static glTFMesh_extras Deserialize_gltf_meshes__extras(ListTreeNode parsed)
-// {
-// var value = new glTFMesh_extras();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="targetNames"){
-// value.targetNames = Deserialize_gltf_meshes__extras_targetNames(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static List Deserialize_gltf_meshes__extras_targetNames(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(x.GetString());
- }
- return value;
-}
public static List Deserialize_gltf_nodes(ListTreeNode parsed)
{
var value = new List();
@@ -1590,30 +1292,6 @@ public static Single[] Deserialize_gltf_nodes__weights(ListTreeNode p
return value;
}
-// public static glTFNode_extensions Deserialize_gltf_nodes__extensions(ListTreeNode parsed)
-// {
-// var value = new glTFNode_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
-// public static glTFNode_extra Deserialize_gltf_nodes__extras(ListTreeNode parsed)
-// {
-// var value = new glTFNode_extra();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
public static List Deserialize_gltf_skins(ListTreeNode parsed)
{
var value = new List();
@@ -1646,6 +1324,16 @@ public static glTFSkin Deserialize_gltf_skins_LIST(ListTreeNode parse
continue;
}
+ if(key=="extensions"){
+ value.extensions = kv.Value;
+ continue;
+ }
+
+ if(key=="extras"){
+ value.extras = kv.Value;
+ continue;
+ }
+
if(key=="name"){
value.name = kv.Value.GetString();
continue;
@@ -1688,6 +1376,16 @@ public static gltfScene Deserialize_gltf_scenes_LIST(ListTreeNode par
continue;
}
+ if(key=="extensions"){
+ value.extensions = kv.Value;
+ continue;
+ }
+
+ if(key=="extras"){
+ value.extras = kv.Value;
+ continue;
+ }
+
if(key=="name"){
value.name = kv.Value.GetString();
continue;
@@ -1740,6 +1438,16 @@ public static glTFAnimation Deserialize_gltf_animations_LIST(ListTreeNode parsed)
-// {
-// var value = new glTFOrthographic_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
-// public static glTFOrthographic_extras Deserialize_gltf_cameras__orthographic_extras(ListTreeNode parsed)
-// {
-// var value = new glTFOrthographic_extras();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
public static glTFPerspective Deserialize_gltf_cameras__perspective(ListTreeNode parsed)
{
var value = new glTFPerspective();
@@ -1992,54 +1706,6 @@ public static glTFPerspective Deserialize_gltf_cameras__perspective(ListTreeNode
return value;
}
-// public static glTFPerspective_extensions Deserialize_gltf_cameras__perspective_extensions(ListTreeNode parsed)
-// {
-// var value = new glTFPerspective_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
-// public static glTFPerspective_extras Deserialize_gltf_cameras__perspective_extras(ListTreeNode parsed)
-// {
-// var value = new glTFPerspective_extras();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
-// public static glTFCamera_extensions Deserialize_gltf_cameras__extensions(ListTreeNode parsed)
-// {
-// var value = new glTFCamera_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
-// public static glTFCamera_extras Deserialize_gltf_cameras__extras(ListTreeNode parsed)
-// {
-// var value = new glTFCamera_extras();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
public static List Deserialize_gltf_extensionsUsed(ListTreeNode parsed)
{
var value = new List();
@@ -2058,1118 +1724,5 @@ public static List Deserialize_gltf_extensionsRequired(ListTreeNo
}
return value;
}
-// public static glTF_extensions Deserialize_gltf_extensions(ListTreeNode parsed)
-// {
-// var value = new glTF_extensions();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// if(key=="VRM"){
-// value.VRM = Deserialize_gltf_extensions_VRM(kv.Value);
-// continue;
-// }
-
-// }
-// return value;
-// }
-
-public static glTF_VRM_extensions Deserialize_gltf_extensions_VRM(ListTreeNode 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_gltf_extensions_VRM_meta(kv.Value);
- continue;
- }
-
- if(key=="humanoid"){
- value.humanoid = Deserialize_gltf_extensions_VRM_humanoid(kv.Value);
- continue;
- }
-
- if(key=="firstPerson"){
- value.firstPerson = Deserialize_gltf_extensions_VRM_firstPerson(kv.Value);
- continue;
- }
-
- if(key=="blendShapeMaster"){
- value.blendShapeMaster = Deserialize_gltf_extensions_VRM_blendShapeMaster(kv.Value);
- continue;
- }
-
- if(key=="secondaryAnimation"){
- value.secondaryAnimation = Deserialize_gltf_extensions_VRM_secondaryAnimation(kv.Value);
- continue;
- }
-
- if(key=="materialProperties"){
- value.materialProperties = Deserialize_gltf_extensions_VRM_materialProperties(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-public static glTF_VRM_Meta Deserialize_gltf_extensions_VRM_meta(ListTreeNode parsed)
-{
- var value = new glTF_VRM_Meta();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="title"){
- value.title = kv.Value.GetString();
- continue;
- }
-
- if(key=="version"){
- value.version = kv.Value.GetString();
- continue;
- }
-
- if(key=="author"){
- value.author = kv.Value.GetString();
- continue;
- }
-
- if(key=="contactInformation"){
- value.contactInformation = kv.Value.GetString();
- continue;
- }
-
- if(key=="reference"){
- value.reference = kv.Value.GetString();
- continue;
- }
-
- if(key=="texture"){
- value.texture = kv.Value.GetInt32();
- continue;
- }
-
- if(key=="allowedUserName"){
- value.allowedUserName = kv.Value.GetString();
- continue;
- }
-
- if(key=="violentUssageName"){
- value.violentUssageName = kv.Value.GetString();
- continue;
- }
-
- if(key=="sexualUssageName"){
- value.sexualUssageName = kv.Value.GetString();
- continue;
- }
-
- if(key=="commercialUssageName"){
- value.commercialUssageName = kv.Value.GetString();
- continue;
- }
-
- if(key=="otherPermissionUrl"){
- value.otherPermissionUrl = kv.Value.GetString();
- continue;
- }
-
- if(key=="licenseName"){
- value.licenseName = kv.Value.GetString();
- continue;
- }
-
- if(key=="otherLicenseUrl"){
- value.otherLicenseUrl = kv.Value.GetString();
- continue;
- }
-
- }
- return value;
-}
-
-public static glTF_VRM_Humanoid Deserialize_gltf_extensions_VRM_humanoid(ListTreeNode parsed)
-{
- var value = new glTF_VRM_Humanoid();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="humanBones"){
- value.humanBones = Deserialize_gltf_extensions_VRM_humanoid_humanBones(kv.Value);
- continue;
- }
-
- if(key=="armStretch"){
- value.armStretch = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="legStretch"){
- value.legStretch = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="upperArmTwist"){
- value.upperArmTwist = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="lowerArmTwist"){
- value.lowerArmTwist = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="upperLegTwist"){
- value.upperLegTwist = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="lowerLegTwist"){
- value.lowerLegTwist = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="feetSpacing"){
- value.feetSpacing = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="hasTranslationDoF"){
- value.hasTranslationDoF = kv.Value.GetBoolean();
- continue;
- }
-
- }
- return value;
-}
-
-public static List Deserialize_gltf_extensions_VRM_humanoid_humanBones(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_humanoid_humanBones_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_HumanoidBone Deserialize_gltf_extensions_VRM_humanoid_humanBones_LIST(ListTreeNode 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_gltf_extensions_VRM_humanoid_humanBones__min(kv.Value);
- continue;
- }
-
- if(key=="max"){
- value.max = Deserialize_gltf_extensions_VRM_humanoid_humanBones__max(kv.Value);
- continue;
- }
-
- if(key=="center"){
- value.center = Deserialize_gltf_extensions_VRM_humanoid_humanBones__center(kv.Value);
- continue;
- }
-
- if(key=="axisLength"){
- value.axisLength = kv.Value.GetSingle();
- continue;
- }
-
- }
- return value;
-}
-
-public static Vector3 Deserialize_gltf_extensions_VRM_humanoid_humanBones__min(ListTreeNode 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;
-}
-
-public static Vector3 Deserialize_gltf_extensions_VRM_humanoid_humanBones__max(ListTreeNode 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;
-}
-
-public static Vector3 Deserialize_gltf_extensions_VRM_humanoid_humanBones__center(ListTreeNode 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;
-}
-
-public static glTF_VRM_Firstperson Deserialize_gltf_extensions_VRM_firstPerson(ListTreeNode 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_gltf_extensions_VRM_firstPerson_firstPersonBoneOffset(kv.Value);
- continue;
- }
-
- if(key=="meshAnnotations"){
- value.meshAnnotations = Deserialize_gltf_extensions_VRM_firstPerson_meshAnnotations(kv.Value);
- continue;
- }
-
- if(key=="lookAtTypeName"){
- value.lookAtTypeName = kv.Value.GetString();
- continue;
- }
-
- if(key=="lookAtHorizontalInner"){
- value.lookAtHorizontalInner = Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalInner(kv.Value);
- continue;
- }
-
- if(key=="lookAtHorizontalOuter"){
- value.lookAtHorizontalOuter = Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalOuter(kv.Value);
- continue;
- }
-
- if(key=="lookAtVerticalDown"){
- value.lookAtVerticalDown = Deserialize_gltf_extensions_VRM_firstPerson_lookAtVerticalDown(kv.Value);
- continue;
- }
-
- if(key=="lookAtVerticalUp"){
- value.lookAtVerticalUp = Deserialize_gltf_extensions_VRM_firstPerson_lookAtVerticalUp(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-public static Vector3 Deserialize_gltf_extensions_VRM_firstPerson_firstPersonBoneOffset(ListTreeNode 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;
-}
-
-public static List Deserialize_gltf_extensions_VRM_firstPerson_meshAnnotations(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_firstPerson_meshAnnotations_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_MeshAnnotation Deserialize_gltf_extensions_VRM_firstPerson_meshAnnotations_LIST(ListTreeNode 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;
-}
-
-public static glTF_VRM_DegreeMap Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalInner(ListTreeNode parsed)
-{
- var value = new glTF_VRM_DegreeMap();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="curve"){
- value.curve = Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalInner_curve(kv.Value);
- continue;
- }
-
- if(key=="xRange"){
- value.xRange = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="yRange"){
- value.yRange = kv.Value.GetSingle();
- continue;
- }
-
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalInner_curve(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static glTF_VRM_DegreeMap Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalOuter(ListTreeNode parsed)
-{
- var value = new glTF_VRM_DegreeMap();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="curve"){
- value.curve = Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalOuter_curve(kv.Value);
- continue;
- }
-
- if(key=="xRange"){
- value.xRange = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="yRange"){
- value.yRange = kv.Value.GetSingle();
- continue;
- }
-
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_extensions_VRM_firstPerson_lookAtHorizontalOuter_curve(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static glTF_VRM_DegreeMap Deserialize_gltf_extensions_VRM_firstPerson_lookAtVerticalDown(ListTreeNode parsed)
-{
- var value = new glTF_VRM_DegreeMap();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="curve"){
- value.curve = Deserialize_gltf_extensions_VRM_firstPerson_lookAtVerticalDown_curve(kv.Value);
- continue;
- }
-
- if(key=="xRange"){
- value.xRange = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="yRange"){
- value.yRange = kv.Value.GetSingle();
- continue;
- }
-
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_extensions_VRM_firstPerson_lookAtVerticalDown_curve(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static glTF_VRM_DegreeMap Deserialize_gltf_extensions_VRM_firstPerson_lookAtVerticalUp(ListTreeNode parsed)
-{
- var value = new glTF_VRM_DegreeMap();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="curve"){
- value.curve = Deserialize_gltf_extensions_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;
-}
-
-public static Single[] Deserialize_gltf_extensions_VRM_firstPerson_lookAtVerticalUp_curve(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static glTF_VRM_BlendShapeMaster Deserialize_gltf_extensions_VRM_blendShapeMaster(ListTreeNode parsed)
-{
- var value = new glTF_VRM_BlendShapeMaster();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="blendShapeGroups"){
- value.blendShapeGroups = Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-public static List Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_BlendShapeGroup Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups_LIST(ListTreeNode 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_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__binds(kv.Value);
- continue;
- }
-
- if(key=="materialValues"){
- value.materialValues = Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__materialValues(kv.Value);
- continue;
- }
-
- if(key=="isBinary"){
- value.isBinary = kv.Value.GetBoolean();
- continue;
- }
-
- }
- return value;
-}
-
-public static List Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__binds(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__binds_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_BlendShapeBind Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__binds_LIST(ListTreeNode 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;
-}
-
-public static List Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__materialValues(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__materialValues_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_MaterialValueBind Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__materialValues_LIST(ListTreeNode 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_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__materialValues__targetValue(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_extensions_VRM_blendShapeMaster_blendShapeGroups__materialValues__targetValue(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-public static glTF_VRM_SecondaryAnimation Deserialize_gltf_extensions_VRM_secondaryAnimation(ListTreeNode parsed)
-{
- var value = new glTF_VRM_SecondaryAnimation();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="boneGroups"){
- value.boneGroups = Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups(kv.Value);
- continue;
- }
-
- if(key=="colliderGroups"){
- value.colliderGroups = Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-public static List Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_SecondaryAnimationGroup Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups_LIST(ListTreeNode parsed)
-{
- var value = new glTF_VRM_SecondaryAnimationGroup();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="comment"){
- value.comment = kv.Value.GetString();
- continue;
- }
-
- if(key=="stiffiness"){
- value.stiffiness = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="gravityPower"){
- value.gravityPower = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="gravityDir"){
- value.gravityDir = Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups__gravityDir(kv.Value);
- continue;
- }
-
- if(key=="dragForce"){
- value.dragForce = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="center"){
- value.center = kv.Value.GetInt32();
- continue;
- }
-
- if(key=="hitRadius"){
- value.hitRadius = kv.Value.GetSingle();
- continue;
- }
-
- if(key=="bones"){
- value.bones = Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups__bones(kv.Value);
- continue;
- }
-
- if(key=="colliderGroups"){
- value.colliderGroups = Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups__colliderGroups(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-public static Vector3 Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups__gravityDir(ListTreeNode 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;
-}
-
-public static Int32[] Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups__bones(ListTreeNode parsed)
-{
- var value = new Int32[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetInt32();
- }
- return value;
-}
-
-public static Int32[] Deserialize_gltf_extensions_VRM_secondaryAnimation_boneGroups__colliderGroups(ListTreeNode parsed)
-{
- var value = new Int32[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetInt32();
- }
- return value;
-}
-
-public static List Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_SecondaryAnimationColliderGroup Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups_LIST(ListTreeNode 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_gltf_extensions_VRM_secondaryAnimation_colliderGroups__colliders(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-public static List Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups__colliders(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups__colliders_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_SecondaryAnimationCollider Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups__colliders_LIST(ListTreeNode parsed)
-{
- var value = new glTF_VRM_SecondaryAnimationCollider();
-
- foreach(var kv in parsed.ObjectItems())
- {
- var key = kv.Key.GetString();
-
- if(key=="offset"){
- value.offset = Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups__colliders__offset(kv.Value);
- continue;
- }
-
- if(key=="radius"){
- value.radius = kv.Value.GetSingle();
- continue;
- }
-
- }
- return value;
-}
-
-public static Vector3 Deserialize_gltf_extensions_VRM_secondaryAnimation_colliderGroups__colliders__offset(ListTreeNode 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;
-}
-
-public static List Deserialize_gltf_extensions_VRM_materialProperties(ListTreeNode parsed)
-{
- var value = new List();
- foreach(var x in parsed.ArrayItems())
- {
- value.Add(Deserialize_gltf_extensions_VRM_materialProperties_LIST(x));
- }
- return value;
-}
-public static glTF_VRM_Material Deserialize_gltf_extensions_VRM_materialProperties_LIST(ListTreeNode 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_gltf_extensions_VRM_materialProperties__floatProperties(kv.Value);
- continue;
- }
-
- if(key=="vectorProperties"){
- value.vectorProperties = Deserialize_gltf_extensions_VRM_materialProperties__vectorProperties(kv.Value);
- continue;
- }
-
- if(key=="textureProperties"){
- value.textureProperties = Deserialize_gltf_extensions_VRM_materialProperties__textureProperties(kv.Value);
- continue;
- }
-
- if(key=="keywordMap"){
- value.keywordMap = Deserialize_gltf_extensions_VRM_materialProperties__keywordMap(kv.Value);
- continue;
- }
-
- if(key=="tagMap"){
- value.tagMap = Deserialize_gltf_extensions_VRM_materialProperties__tagMap(kv.Value);
- continue;
- }
-
- }
- return value;
-}
-
-
-public static Dictionary Deserialize_gltf_extensions_VRM_materialProperties__floatProperties(ListTreeNode parsed)
-{
- var value = new Dictionary();
- foreach(var kv in parsed.ObjectItems())
- {
- value.Add(kv.Key.GetString(), kv.Value.GetSingle());
- }
- return value;
-}
-
-
-public static Dictionary Deserialize_gltf_extensions_VRM_materialProperties__vectorProperties(ListTreeNode parsed)
-{
- var value = new Dictionary();
- foreach(var kv in parsed.ObjectItems())
- {
- value.Add(kv.Key.GetString(), Deserialize_gltf_extensions_VRM_materialProperties__vectorProperties_DICT(kv.Value));
- }
- return value;
-}
-
-public static Single[] Deserialize_gltf_extensions_VRM_materialProperties__vectorProperties_DICT(ListTreeNode parsed)
-{
- var value = new Single[parsed.GetArrayCount()];
- int i=0;
- foreach(var x in parsed.ArrayItems())
- {
- value[i++] = x.GetSingle();
- }
- return value;
-}
-
-
-public static Dictionary Deserialize_gltf_extensions_VRM_materialProperties__textureProperties(ListTreeNode parsed)
-{
- var value = new Dictionary();
- foreach(var kv in parsed.ObjectItems())
- {
- value.Add(kv.Key.GetString(), kv.Value.GetInt32());
- }
- return value;
-}
-
-
-public static Dictionary Deserialize_gltf_extensions_VRM_materialProperties__keywordMap(ListTreeNode parsed)
-{
- var value = new Dictionary();
- foreach(var kv in parsed.ObjectItems())
- {
- value.Add(kv.Key.GetString(), kv.Value.GetBoolean());
- }
- return value;
-}
-
-
-public static Dictionary Deserialize_gltf_extensions_VRM_materialProperties__tagMap(ListTreeNode parsed)
-{
- var value = new Dictionary();
- foreach(var kv in parsed.ObjectItems())
- {
- value.Add(kv.Key.GetString(), kv.Value.GetString());
- }
- return value;
-}
-
-// public static gltf_extras Deserialize_gltf_extras(ListTreeNode parsed)
-// {
-// var value = new gltf_extras();
-
-// foreach(var kv in parsed.ObjectItems())
-// {
-// var key = kv.Key.GetString();
-
-// }
-// return value;
-// }
-
} // GltfDeserializer
} // UniGLTF
diff --git a/Assets/VRM/UniVRM/Editor/UniVRM.Editor.asmdef b/Assets/VRM/UniVRM/Editor/UniVRM.Editor.asmdef
index 41389d70d..b8315d3ba 100644
--- a/Assets/VRM/UniVRM/Editor/UniVRM.Editor.asmdef
+++ b/Assets/VRM/UniVRM/Editor/UniVRM.Editor.asmdef
@@ -6,7 +6,8 @@
"UniHumanoid",
"MeshUtility",
"MeshUtility.Editor",
- "UniUnlit"
+ "UniUnlit",
+ "UniGLTF.Editor"
],
"optionalUnityReferences": [],
"includePlatforms": [
diff --git a/Assets/VRM/UniVRM/Editor/VRMDeserializerGenerator.cs b/Assets/VRM/UniVRM/Editor/VRMDeserializerGenerator.cs
new file mode 100644
index 000000000..cf7e62dd7
--- /dev/null
+++ b/Assets/VRM/UniVRM/Editor/VRMDeserializerGenerator.cs
@@ -0,0 +1,61 @@
+using System.IO;
+using System.Reflection;
+using System.Text;
+using UnityEditor;
+using UnityEngine;
+
+namespace VRM
+{
+ public static class DeserializerGenerator
+ {
+ public const BindingFlags FIELD_FLAGS = BindingFlags.Instance | BindingFlags.Public;
+
+ static string OutPath
+ {
+ get
+ {
+ return Path.Combine(UnityEngine.Application.dataPath,
+ "VRM/UniVRM/Scripts/Format/VRMDeserializer.g.cs");
+ }
+ }
+
+ ///
+ /// AOT向けにデシリアライザを生成する
+ ///
+ [MenuItem(VRM.VRMVersion.MENU + "/VRM: Generate Deserializer")]
+ static void GenerateSerializer()
+ {
+ var info = new UniGLTF.ObjectSerialization(typeof(glTF_VRM_extensions), "vrm");
+ Debug.Log(info);
+
+ using (var s = File.Open(OutPath, FileMode.Create))
+ using (var w = new StreamWriter(s, Encoding.UTF8))
+ {
+ // header
+ w.Write(@"
+using UniJSON;
+using System;
+using System.Collections.Generic;
+using VRM;
+using UnityEngine;
+
+namespace VRM {
+
+public static class VrmDeserializer
+{
+
+");
+
+ info.GenerateDeserializer(w, "Deserialize");
+
+ // footer
+ w.Write(@"
+} // VrmfDeserializer
+} // VRM
+");
+
+ Debug.LogFormat("write: {0}", OutPath);
+ }
+ }
+ }
+}
diff --git a/Assets/VRM/UniVRM/Editor/VRMDeserializerGenerator.cs.meta b/Assets/VRM/UniVRM/Editor/VRMDeserializerGenerator.cs.meta
new file mode 100644
index 000000000..a04be1f2d
--- /dev/null
+++ b/Assets/VRM/UniVRM/Editor/VRMDeserializerGenerator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fccecb79adf40a948b2c218b4e7703b3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/VRM/UniVRM/Scripts/Format/VRMDeserializer.g.cs b/Assets/VRM/UniVRM/Scripts/Format/VRMDeserializer.g.cs
new file mode 100644
index 000000000..3566ff447
--- /dev/null
+++ b/Assets/VRM/UniVRM/Scripts/Format/VRMDeserializer.g.cs
@@ -0,0 +1,1099 @@
+
+using UniJSON;
+using System;
+using System.Collections.Generic;
+using VRM;
+using UnityEngine;
+
+namespace VRM {
+
+public static class VrmDeserializer
+{
+
+
+public static glTF_VRM_extensions Deserialize(ListTreeNode 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;
+}
+
+public static glTF_VRM_Meta Deserialize_vrm_meta(ListTreeNode parsed)
+{
+ var value = new glTF_VRM_Meta();
+
+ foreach(var kv in parsed.ObjectItems())
+ {
+ var key = kv.Key.GetString();
+
+ if(key=="title"){
+ value.title = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="version"){
+ value.version = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="author"){
+ value.author = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="contactInformation"){
+ value.contactInformation = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="reference"){
+ value.reference = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="texture"){
+ value.texture = kv.Value.GetInt32();
+ continue;
+ }
+
+ if(key=="allowedUserName"){
+ value.allowedUserName = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="violentUssageName"){
+ value.violentUssageName = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="sexualUssageName"){
+ value.sexualUssageName = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="commercialUssageName"){
+ value.commercialUssageName = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="otherPermissionUrl"){
+ value.otherPermissionUrl = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="licenseName"){
+ value.licenseName = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="otherLicenseUrl"){
+ value.otherLicenseUrl = kv.Value.GetString();
+ continue;
+ }
+
+ }
+ return value;
+}
+
+public static glTF_VRM_Humanoid Deserialize_vrm_humanoid(ListTreeNode parsed)
+{
+ var value = new glTF_VRM_Humanoid();
+
+ foreach(var kv in parsed.ObjectItems())
+ {
+ var key = kv.Key.GetString();
+
+ if(key=="humanBones"){
+ value.humanBones = Deserialize_vrm_humanoid_humanBones(kv.Value);
+ continue;
+ }
+
+ if(key=="armStretch"){
+ value.armStretch = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="legStretch"){
+ value.legStretch = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="upperArmTwist"){
+ value.upperArmTwist = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="lowerArmTwist"){
+ value.lowerArmTwist = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="upperLegTwist"){
+ value.upperLegTwist = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="lowerLegTwist"){
+ value.lowerLegTwist = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="feetSpacing"){
+ value.feetSpacing = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="hasTranslationDoF"){
+ value.hasTranslationDoF = kv.Value.GetBoolean();
+ continue;
+ }
+
+ }
+ return value;
+}
+
+public static List Deserialize_vrm_humanoid_humanBones(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_humanoid_humanBones_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_HumanoidBone Deserialize_vrm_humanoid_humanBones_LIST(ListTreeNode 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;
+}
+
+public static Vector3 Deserialize_vrm_humanoid_humanBones__min(ListTreeNode 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;
+}
+
+public static Vector3 Deserialize_vrm_humanoid_humanBones__max(ListTreeNode 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;
+}
+
+public static Vector3 Deserialize_vrm_humanoid_humanBones__center(ListTreeNode 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;
+}
+
+public static glTF_VRM_Firstperson Deserialize_vrm_firstPerson(ListTreeNode 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;
+}
+
+public static Vector3 Deserialize_vrm_firstPerson_firstPersonBoneOffset(ListTreeNode 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;
+}
+
+public static List Deserialize_vrm_firstPerson_meshAnnotations(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_firstPerson_meshAnnotations_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_MeshAnnotation Deserialize_vrm_firstPerson_meshAnnotations_LIST(ListTreeNode 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;
+}
+
+public static glTF_VRM_DegreeMap Deserialize_vrm_firstPerson_lookAtHorizontalInner(ListTreeNode 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_lookAtHorizontalInner_curve(kv.Value);
+ continue;
+ }
+
+ if(key=="xRange"){
+ value.xRange = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="yRange"){
+ value.yRange = kv.Value.GetSingle();
+ continue;
+ }
+
+ }
+ return value;
+}
+
+public static Single[] Deserialize_vrm_firstPerson_lookAtHorizontalInner_curve(ListTreeNode parsed)
+{
+ var value = new Single[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetSingle();
+ }
+ return value;
+}
+
+public static glTF_VRM_DegreeMap Deserialize_vrm_firstPerson_lookAtHorizontalOuter(ListTreeNode 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_lookAtHorizontalOuter_curve(kv.Value);
+ continue;
+ }
+
+ if(key=="xRange"){
+ value.xRange = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="yRange"){
+ value.yRange = kv.Value.GetSingle();
+ continue;
+ }
+
+ }
+ return value;
+}
+
+public static Single[] Deserialize_vrm_firstPerson_lookAtHorizontalOuter_curve(ListTreeNode parsed)
+{
+ var value = new Single[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetSingle();
+ }
+ return value;
+}
+
+public static glTF_VRM_DegreeMap Deserialize_vrm_firstPerson_lookAtVerticalDown(ListTreeNode 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_lookAtVerticalDown_curve(kv.Value);
+ continue;
+ }
+
+ if(key=="xRange"){
+ value.xRange = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="yRange"){
+ value.yRange = kv.Value.GetSingle();
+ continue;
+ }
+
+ }
+ return value;
+}
+
+public static Single[] Deserialize_vrm_firstPerson_lookAtVerticalDown_curve(ListTreeNode parsed)
+{
+ var value = new Single[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetSingle();
+ }
+ return value;
+}
+
+public static glTF_VRM_DegreeMap Deserialize_vrm_firstPerson_lookAtVerticalUp(ListTreeNode 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;
+}
+
+public static Single[] Deserialize_vrm_firstPerson_lookAtVerticalUp_curve(ListTreeNode parsed)
+{
+ var value = new Single[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetSingle();
+ }
+ return value;
+}
+
+public static glTF_VRM_BlendShapeMaster Deserialize_vrm_blendShapeMaster(ListTreeNode 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;
+}
+
+public static List Deserialize_vrm_blendShapeMaster_blendShapeGroups(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_blendShapeMaster_blendShapeGroups_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_BlendShapeGroup Deserialize_vrm_blendShapeMaster_blendShapeGroups_LIST(ListTreeNode 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;
+}
+
+public static List Deserialize_vrm_blendShapeMaster_blendShapeGroups__binds(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_blendShapeMaster_blendShapeGroups__binds_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_BlendShapeBind Deserialize_vrm_blendShapeMaster_blendShapeGroups__binds_LIST(ListTreeNode 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;
+}
+
+public static List Deserialize_vrm_blendShapeMaster_blendShapeGroups__materialValues(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_blendShapeMaster_blendShapeGroups__materialValues_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_MaterialValueBind Deserialize_vrm_blendShapeMaster_blendShapeGroups__materialValues_LIST(ListTreeNode 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;
+}
+
+public static Single[] Deserialize_vrm_blendShapeMaster_blendShapeGroups__materialValues__targetValue(ListTreeNode parsed)
+{
+ var value = new Single[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetSingle();
+ }
+ return value;
+}
+
+public static glTF_VRM_SecondaryAnimation Deserialize_vrm_secondaryAnimation(ListTreeNode 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;
+}
+
+public static List Deserialize_vrm_secondaryAnimation_boneGroups(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_secondaryAnimation_boneGroups_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_SecondaryAnimationGroup Deserialize_vrm_secondaryAnimation_boneGroups_LIST(ListTreeNode parsed)
+{
+ var value = new glTF_VRM_SecondaryAnimationGroup();
+
+ foreach(var kv in parsed.ObjectItems())
+ {
+ var key = kv.Key.GetString();
+
+ if(key=="comment"){
+ value.comment = kv.Value.GetString();
+ continue;
+ }
+
+ if(key=="stiffiness"){
+ value.stiffiness = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="gravityPower"){
+ value.gravityPower = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="gravityDir"){
+ value.gravityDir = Deserialize_vrm_secondaryAnimation_boneGroups__gravityDir(kv.Value);
+ continue;
+ }
+
+ if(key=="dragForce"){
+ value.dragForce = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="center"){
+ value.center = kv.Value.GetInt32();
+ continue;
+ }
+
+ if(key=="hitRadius"){
+ value.hitRadius = kv.Value.GetSingle();
+ continue;
+ }
+
+ if(key=="bones"){
+ value.bones = Deserialize_vrm_secondaryAnimation_boneGroups__bones(kv.Value);
+ continue;
+ }
+
+ if(key=="colliderGroups"){
+ value.colliderGroups = Deserialize_vrm_secondaryAnimation_boneGroups__colliderGroups(kv.Value);
+ continue;
+ }
+
+ }
+ return value;
+}
+
+public static Vector3 Deserialize_vrm_secondaryAnimation_boneGroups__gravityDir(ListTreeNode 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;
+}
+
+public static Int32[] Deserialize_vrm_secondaryAnimation_boneGroups__bones(ListTreeNode parsed)
+{
+ var value = new Int32[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetInt32();
+ }
+ return value;
+}
+
+public static Int32[] Deserialize_vrm_secondaryAnimation_boneGroups__colliderGroups(ListTreeNode parsed)
+{
+ var value = new Int32[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetInt32();
+ }
+ return value;
+}
+
+public static List Deserialize_vrm_secondaryAnimation_colliderGroups(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_secondaryAnimation_colliderGroups_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_SecondaryAnimationColliderGroup Deserialize_vrm_secondaryAnimation_colliderGroups_LIST(ListTreeNode 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;
+}
+
+public static List Deserialize_vrm_secondaryAnimation_colliderGroups__colliders(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_secondaryAnimation_colliderGroups__colliders_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_SecondaryAnimationCollider Deserialize_vrm_secondaryAnimation_colliderGroups__colliders_LIST(ListTreeNode parsed)
+{
+ var value = new glTF_VRM_SecondaryAnimationCollider();
+
+ foreach(var kv in parsed.ObjectItems())
+ {
+ var key = kv.Key.GetString();
+
+ if(key=="offset"){
+ value.offset = Deserialize_vrm_secondaryAnimation_colliderGroups__colliders__offset(kv.Value);
+ continue;
+ }
+
+ if(key=="radius"){
+ value.radius = kv.Value.GetSingle();
+ continue;
+ }
+
+ }
+ return value;
+}
+
+public static Vector3 Deserialize_vrm_secondaryAnimation_colliderGroups__colliders__offset(ListTreeNode 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;
+}
+
+public static List Deserialize_vrm_materialProperties(ListTreeNode parsed)
+{
+ var value = new List();
+ foreach(var x in parsed.ArrayItems())
+ {
+ value.Add(Deserialize_vrm_materialProperties_LIST(x));
+ }
+ return value;
+}
+public static glTF_VRM_Material Deserialize_vrm_materialProperties_LIST(ListTreeNode 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;
+}
+
+
+public static Dictionary Deserialize_vrm_materialProperties__floatProperties(ListTreeNode parsed)
+{
+ var value = new Dictionary();
+ foreach(var kv in parsed.ObjectItems())
+ {
+ value.Add(kv.Key.GetString(), kv.Value.GetSingle());
+ }
+ return value;
+}
+
+
+public static Dictionary Deserialize_vrm_materialProperties__vectorProperties(ListTreeNode parsed)
+{
+ var value = new Dictionary();
+ foreach(var kv in parsed.ObjectItems())
+ {
+ value.Add(kv.Key.GetString(), Deserialize_vrm_materialProperties__vectorProperties_DICT(kv.Value));
+ }
+ return value;
+}
+
+public static Single[] Deserialize_vrm_materialProperties__vectorProperties_DICT(ListTreeNode parsed)
+{
+ var value = new Single[parsed.GetArrayCount()];
+ int i=0;
+ foreach(var x in parsed.ArrayItems())
+ {
+ value[i++] = x.GetSingle();
+ }
+ return value;
+}
+
+
+public static Dictionary Deserialize_vrm_materialProperties__textureProperties(ListTreeNode parsed)
+{
+ var value = new Dictionary();
+ foreach(var kv in parsed.ObjectItems())
+ {
+ value.Add(kv.Key.GetString(), kv.Value.GetInt32());
+ }
+ return value;
+}
+
+
+public static Dictionary Deserialize_vrm_materialProperties__keywordMap(ListTreeNode parsed)
+{
+ var value = new Dictionary();
+ foreach(var kv in parsed.ObjectItems())
+ {
+ value.Add(kv.Key.GetString(), kv.Value.GetBoolean());
+ }
+ return value;
+}
+
+
+public static Dictionary Deserialize_vrm_materialProperties__tagMap(ListTreeNode parsed)
+{
+ var value = new Dictionary();
+ foreach(var kv in parsed.ObjectItems())
+ {
+ value.Add(kv.Key.GetString(), kv.Value.GetString());
+ }
+ return value;
+}
+
+} // VrmfDeserializer
+} // VRM
diff --git a/Assets/VRM/UniVRM/Scripts/Format/VRMDeserializer.g.cs.meta b/Assets/VRM/UniVRM/Scripts/Format/VRMDeserializer.g.cs.meta
new file mode 100644
index 000000000..13b3fa2ca
--- /dev/null
+++ b/Assets/VRM/UniVRM/Scripts/Format/VRMDeserializer.g.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7d3f5617d4d8fd74494cab1e56d6b001
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs b/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs
index 26cd589af..0a273e0f1 100644
--- a/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs
+++ b/Assets/VRM/UniVRM/Scripts/Format/VRMImporterContext.cs
@@ -5,6 +5,7 @@ using UniGLTF;
using UnityEngine;
using System.IO;
using System.Collections;
+using UniJSON;
namespace VRM
{
@@ -13,13 +14,7 @@ namespace VRM
const string HUMANOID_KEY = "humanoid";
const string MATERIAL_KEY = "materialProperties";
- public VRM.glTF_VRM_extensions VRM
- {
- get
- {
- throw new NotImplementedException();
- }
- }
+ public VRM.glTF_VRM_extensions VRM { get; private set; }
public VRMImporterContext()
{
@@ -42,7 +37,25 @@ namespace VRM
public override void ParseJson(string json, IStorage storage)
{
+ // parse GLTF part(core + unlit, textureTransform, targetNames)
base.ParseJson(json, storage);
+
+ // parse VRM part
+ if (GLTF.extensions != null && GLTF.extensions is ListTreeNode vrmJson)
+ {
+ if (vrmJson.Value.ValueType == ValueNodeType.Object)
+ {
+ foreach (var kv in vrmJson.ObjectItems())
+ {
+ if (kv.Key.GetString() == "VRM")
+ {
+ VRM = VrmDeserializer.Deserialize(kv.Value);
+ break;
+ }
+ }
+ }
+ }
+
SetMaterialImporter(new VRMMaterialImporter(this, glTF_VRM_Material.Parse(Json)));
}