Merge pull request #752 from Santarh/submoduleSpec

JSON schema の参照先を submodule で固定
This commit is contained in:
ousttrue
2021-02-18 20:09:18 +09:00
committed by GitHub
10 changed files with 54 additions and 34 deletions

6
.gitmodules vendored
View File

@@ -1,3 +1,9 @@
[submodule "MToon"]
path = Assets/VRMShaders/MToon
url = https://github.com/Santarh/MToon.git
[submodule "vrm-specification"]
path = vrm-specification
url = https://github.com/vrm-c/vrm-specification.git
[submodule "glTF"]
path = glTF
url = https://github.com/KhronosGroup/glTF.git

View File

@@ -22,37 +22,37 @@ namespace UniVRM10
[MenuItem(UniVRM10.VRMVersion.MENU + "/Generate from JsonSchema")]
public static void Main()
{
var root = new DirectoryInfo(Path.GetFullPath(Path.Combine(Application.dataPath, "../../")));
var projectRoot = new DirectoryInfo(Path.GetFullPath(Path.Combine(Application.dataPath, "../")));
var gltf = new FileInfo(Path.Combine(root.FullName, "glTF/specification/2.0/schema/glTF.schema.json"));
var gltf = new FileInfo(Path.Combine(projectRoot.FullName, "glTF/specification/2.0/schema/glTF.schema.json"));
var args = new string[]
{
// VRMC_vrm
"vrm-specification/specification/VRMC_vrm-1.0_draft/schema/VRMC_vrm.schema.json",
"UniVRM/Assets/VRM10/Runtime/Format/Vrm", // dst
"Assets/VRM10/Runtime/Format/Vrm", // dst
// VRMC_constraints
"vrm-specification/specification/VRMC_constraints-1.0_draft/schema/VRMC_constraints.schema.json",
"UniVRM/Assets/VRM10/Runtime/Format/Constraints", // dst
"Assets/VRM10/Runtime/Format/Constraints", // dst
//
"vrm-specification/specification/VRMC_materials_mtoon-1.0_draft/schema/VRMC_materials_mtoon.schema.json",
"UniVRM/Assets/VRM10/Runtime/Format/MaterialsMToon", // dst
"Assets/VRM10/Runtime/Format/MaterialsMToon", // dst
//
"vrm-specification/specification/VRMC_node_collider_1.0_draft/schema/VRMC_node_collider.json",
"UniVRM/Assets/VRM10/Runtime/Format/NodeCollider", // dst
"Assets/VRM10/Runtime/Format/NodeCollider", // dst
//
"vrm-specification/specification/VRMC_springBone-1.0_draft/schema/VRMC_springBone.schema.json",
"UniVRM/Assets/VRM10/Runtime/Format/SpringBone", // dst
"Assets/VRM10/Runtime/Format/SpringBone", // dst
};
for (int i = 0; i < args.Length; i += 2)
{
var extensionSchemaPath = new FileInfo(Path.Combine(root.FullName, args[i]));
var extensionSchemaPath = new FileInfo(Path.Combine(projectRoot.FullName, args[i]));
var parser = new UniGLTF.JsonSchema.JsonSchemaParser(gltf.Directory, extensionSchemaPath.Directory);
var extensionSchema = parser.Load(extensionSchemaPath, "");
// extensionSchema.Dump();
var dst = new DirectoryInfo(Path.Combine(root.FullName, args[i + 1]));
var dst = new DirectoryInfo(Path.Combine(projectRoot.FullName, args[i + 1]));
Debug.Log(dst);
GenerateUniGLTFSerialization.Generator.GenerateTo(extensionSchema, dst, clearFolder: true);
}

View File

@@ -73,6 +73,16 @@ public static Spring Deserialize_Springs_ITEM(JsonNode parsed)
{
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;
@@ -150,11 +160,6 @@ public static SpringBoneJoint Deserialize_Joints_ITEM(JsonNode parsed)
continue;
}
if(key=="exclude"){
value.Exclude = kv.Value.GetBoolean();
continue;
}
}
return value;
}

View File

@@ -32,20 +32,23 @@ namespace UniGLTF.Extensions.VRMC_springBone
// Air resistance. Deceleration force.
public float? DragForce;
// When enabled, this joint will skip Spring processing.
public bool? Exclude;
}
public class Spring
{
// Dictionary object with extension-specific objects.
public glTFExtension Extensions;
// Application-specific data.
public glTFExtension Extras;
// Name of the Spring
public string Name;
// Joints in this spring. Except for the first element, the parent of the element must be the previous element of the array
// Joints of the spring. Except for the first element, a previous joint of the array must be an ancestor of the joint.
public List<SpringBoneJoint> Joints;
// Colliders that detect collision with nodes start from springRoot
// Colliders that detect collision with this spring.
public int[] Colliders;
}

View File

@@ -68,6 +68,16 @@ public static void Serialize_Springs_ITEM(JsonFormatter f, Spring value)
f.BeginMap();
if(value.Extensions!=null){
f.Key("extensions");
value.Extensions.Serialize(f);
}
if(value.Extras!=null){
f.Key("extras");
value.Extras.Serialize(f);
}
if(!string.IsNullOrEmpty(value.Name)){
f.Key("name");
f.Value(value.Name);
@@ -143,11 +153,6 @@ public static void Serialize_Joints_ITEM(JsonFormatter f, SpringBoneJoint value)
f.Value(value.DragForce.GetValueOrDefault());
}
if(value.Exclude.HasValue){
f.Key("exclude");
f.Value(value.Exclude.GetValueOrDefault());
}
f.EndMap();
}

View File

@@ -305,7 +305,7 @@ namespace UniGLTF.Extensions.VRMC_vrm
public enum LookAtType
{
bone,
blendShape,
expression,
}
@@ -342,23 +342,23 @@ namespace UniGLTF.Extensions.VRMC_vrm
public enum ExpressionPreset
{
custom,
happy,
angry,
sad,
relaxed,
surprised,
aa,
ih,
ou,
ee,
oh,
blink,
happy,
angry,
sad,
relaxed,
blinkLeft,
blinkRight,
lookUp,
surprised,
lookDown,
lookLeft,
lookRight,
blinkLeft,
blinkRight,
neutral,
}

View File

@@ -737,7 +737,6 @@ namespace UniVRM10
joint.GravityDir = gltfJoint.GravityDir.ToVector3();
joint.GravityPower = gltfJoint.GravityPower.Value;
joint.Stiffness = gltfJoint.Stiffness.Value;
joint.Exclude = gltfJoint.Exclude.GetValueOrDefault();
springBone.Joints.Add(joint);
}

View File

@@ -19,7 +19,7 @@ namespace UniVRM10
switch (src)
{
case UniGLTF.Extensions.VRMC_vrm.LookAtType.bone: return LookAtType.Bone;
case UniGLTF.Extensions.VRMC_vrm.LookAtType.blendShape: return LookAtType.Expression;
case UniGLTF.Extensions.VRMC_vrm.LookAtType.expression: return LookAtType.Expression;
}
throw new NotImplementedException();

1
glTF Submodule

Submodule glTF added at 838b607505

1
vrm-specification Submodule

Submodule vrm-specification added at 068254bdf1