mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-12 13:59:21 -05:00
Merge pull request #752 from Santarh/submoduleSpec
JSON schema の参照先を submodule で固定
This commit is contained in:
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
1
glTF
Submodule
Submodule glTF added at 838b607505
1
vrm-specification
Submodule
1
vrm-specification
Submodule
Submodule vrm-specification added at 068254bdf1
Reference in New Issue
Block a user