Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature1/update jsonschema #1134

Merged
merged 2 commits into from
Aug 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions Assets/VRM10/Editor/GeneratorMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ public GenerateInfo(string jsonSchema, string formatDir) : this(jsonSchema, form
}
}

const string SPEC_DIR = "vrm-specification/specification";

static void Run(bool debug)
{
var projectRoot = new DirectoryInfo(Path.GetFullPath(Path.Combine(Application.dataPath, "../")));
Expand All @@ -57,32 +59,32 @@ static void Run(bool debug)
{
// VRMC_hdr_emissiveMultiplier
new GenerateInfo(
"vrm-specification/specification/VRMC_materials_hdr_emissiveMultiplier-1.0_draft/schema/VRMC_materials_hdr_emissiveMultiplier.json",
$"{SPEC_DIR}/VRMC_materials_hdr_emissiveMultiplier-1.0/schema/VRMC_materials_hdr_emissiveMultiplier.json",
"Assets/UniGLTF/Runtime/UniGLTF/Format/ExtensionsAndExtras/EmissiveMultiplier"
),

// VRMC_vrm
new GenerateInfo(
"vrm-specification/specification/VRMC_vrm-1.0_draft/schema/VRMC_vrm.schema.json",
$"{SPEC_DIR}/VRMC_vrm-1.0-beta/schema/VRMC_vrm.schema.json",
"Assets/VRM10/Runtime/Format/Vrm"
),

// VRMC_materials_mtoon
new GenerateInfo(
"vrm-specification/specification/VRMC_materials_mtoon-1.0_draft/schema/VRMC_materials_mtoon.schema.json",
$"{SPEC_DIR}/VRMC_materials_mtoon-1.0-beta/schema/VRMC_materials_mtoon.schema.json",
"Assets/VRMShaders/VRM10/Format/Runtime/MaterialsMToon",
"Assets/VRM10/Runtime/Format/MaterialsMToon"
),

// VRMC_springBone
new GenerateInfo(
"vrm-specification/specification/VRMC_springBone-1.0_draft/schema/VRMC_springBone.schema.json",
$"{SPEC_DIR}/VRMC_springBone-1.0-beta/schema/VRMC_springBone.schema.json",
"Assets/VRM10/Runtime/Format/SpringBone"
),

// VRMC_node_constraint
new GenerateInfo(
"vrm-specification/specification/VRMC_node_constraint-1.0_draft/schema/VRMC_node_constraint.schema.json",
$"{SPEC_DIR}/VRMC_node_constraint-1.0_draft/schema/VRMC_node_constraint.schema.json",
"Assets/VRM10/Runtime/Format/Constraints"
),
};
Expand Down
20 changes: 18 additions & 2 deletions Assets/VRM10/Runtime/Format/MaterialsMToon/Deserializer.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,13 @@ public static VRMC_materials_mtoon Deserialize(JsonNode parsed)
continue;
}

if(key=="giIntensityFactor"){
value.GiIntensityFactor = kv.Value.GetSingle();
if(key=="giEqualizationFactor"){
value.GiEqualizationFactor = kv.Value.GetSingle();
continue;
}

if(key=="matcapFactor"){
value.MatcapFactor = Deserialize_MatcapFactor(kv.Value);
continue;
}

Expand Down Expand Up @@ -251,6 +256,17 @@ public static ShadingShiftTextureInfo Deserialize_ShadingShiftTexture(JsonNode p
return value;
}

public static float[] Deserialize_MatcapFactor(JsonNode parsed)
{
var value = new float[parsed.GetArrayCount()];
int i=0;
foreach(var x in parsed.ArrayItems())
{
value[i++] = x.GetSingle();
}
return value;
}

public static TextureInfo Deserialize_MatcapTexture(JsonNode parsed)
{
var value = new TextureInfo();
Expand Down
23 changes: 20 additions & 3 deletions Assets/VRM10/Runtime/Format/MaterialsMToon/Serializer.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,14 @@ public static void Serialize(JsonFormatter f, VRMC_materials_mtoon value)
f.Value(value.ShadingToonyFactor.GetValueOrDefault());
}

if(value.GiIntensityFactor.HasValue){
f.Key("giIntensityFactor");
f.Value(value.GiIntensityFactor.GetValueOrDefault());
if(value.GiEqualizationFactor.HasValue){
f.Key("giEqualizationFactor");
f.Value(value.GiEqualizationFactor.GetValueOrDefault());
}

if(value.MatcapFactor!=null&&value.MatcapFactor.Count()>=3){
f.Key("matcapFactor");
Serialize_MatcapFactor(f, value.MatcapFactor);
}

if(value.MatcapTexture!=null){
Expand Down Expand Up @@ -239,6 +244,18 @@ public static void Serialize_ShadingShiftTexture(JsonFormatter f, ShadingShiftTe
f.EndMap();
}

public static void Serialize_MatcapFactor(JsonFormatter f, float[] value)
{
f.BeginList();

foreach(var item in value)
{
f.Value(item);

}
f.EndList();
}

public static void Serialize_MatcapTexture(JsonFormatter f, TextureInfo value)
{
f.BeginMap();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,7 @@ public static bool TryExportMaterialAsMToon(Material src, ITextureExporter textu
mtoon.ShadingToonyFactor = context.ShadingToonyFactor;

// GI
// TODO: update schema
mtoon.GiIntensityFactor = context.GiEqualizationFactor;
mtoon.GiEqualizationFactor = context.GiEqualizationFactor;

// Emission
dst.emissiveFactor = context.EmissiveFactorLinear.ToFloat3(ColorSpace.Linear, ColorSpace.Linear);
Expand Down
13 changes: 6 additions & 7 deletions Assets/VRM10/Runtime/IO/Material/Vrm10MToonMaterialImporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,12 @@ public static bool TryCreateParam(GltfData data, int i, out MaterialDescriptor m
// Rendering
var alphaMode = GetMToon10AlphaMode(material);
{
yield return (MToon10Prop.AlphaMode.ToUnityShaderLabName(), (float) alphaMode);
yield return (MToon10Prop.AlphaMode.ToUnityShaderLabName(), (float)alphaMode);
}

var transparentWithZWrite = GetMToon10TransparentWithZWriteMode(material, mToon);
{
yield return (MToon10Prop.TransparentWithZWrite.ToUnityShaderLabName(), (float) transparentWithZWrite);
yield return (MToon10Prop.TransparentWithZWrite.ToUnityShaderLabName(), (float)transparentWithZWrite);
}

var cutoff = material?.alphaCutoff;
Expand All @@ -127,12 +127,12 @@ public static bool TryCreateParam(GltfData data, int i, out MaterialDescriptor m
var renderQueueOffset = mToon?.RenderQueueOffsetNumber;
if (renderQueueOffset.HasValue)
{
yield return (MToon10Prop.RenderQueueOffsetNumber.ToUnityShaderLabName(), (float) renderQueueOffset);
yield return (MToon10Prop.RenderQueueOffsetNumber.ToUnityShaderLabName(), (float)renderQueueOffset);
}

var doubleSidedMode = GetMToon10DoubleSidedMode(material, mToon);
{
yield return (MToon10Prop.DoubleSided.ToUnityShaderLabName(), (float) doubleSidedMode);
yield return (MToon10Prop.DoubleSided.ToUnityShaderLabName(), (float)doubleSidedMode);
}

// Lighting
Expand Down Expand Up @@ -161,10 +161,9 @@ public static bool TryCreateParam(GltfData data, int i, out MaterialDescriptor m
}

// GI
var giEqualization = mToon?.GiIntensityFactor;
var giEqualization = mToon?.GiEqualizationFactor;
if (giEqualization.HasValue)
{
// TODO: Update schema
yield return (MToon10Prop.GiEqualizationFactor.ToUnityShaderLabName(), giEqualization.Value);
}

Expand Down Expand Up @@ -192,7 +191,7 @@ public static bool TryCreateParam(GltfData data, int i, out MaterialDescriptor m
// Outline
var outlineMode = GetMToon10OutlineWidthMode(material, mToon);
{
yield return (MToon10Prop.OutlineWidthMode.ToUnityShaderLabName(), (float) outlineMode);
yield return (MToon10Prop.OutlineWidthMode.ToUnityShaderLabName(), (float)outlineMode);
}

var outlineWidth = mToon?.OutlineWidthFactor;
Expand Down
2 changes: 1 addition & 1 deletion Assets/VRM10/Runtime/Migration/MigrationMToon.cs
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ public static void Migrate(glTF gltf, JsonNode json)
);

// GI
dst.GiIntensityFactor = MToon10Migrator.MigrateToGiEqualization(mtoon.Definition.Lighting.LightingInfluence.GiIntensityValue);
dst.GiEqualizationFactor = MToon10Migrator.MigrateToGiEqualization(mtoon.Definition.Lighting.LightingInfluence.GiIntensityValue);

// Emission
gltfMaterial.emissiveFactor = mtoon.Definition.Emission.EmissionColor.ToFloat3(ColorSpace.Linear, ColorSpace.Linear);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ public class VRMC_materials_mtoon

public float? ShadingToonyFactor;

public float? GiIntensityFactor;
public float? GiEqualizationFactor;

public float[] MatcapFactor;

// MatCap
public TextureInfo MatcapTexture;
Expand Down
2 changes: 1 addition & 1 deletion vrm-specification
Submodule vrm-specification updated 48 files
+0 −0 specification/VRMC_materials_hdr_emissiveMultiplier-1.0/README.ja.md
+2 −0 specification/VRMC_materials_hdr_emissiveMultiplier-1.0/README.md
+3 −2 specification/VRMC_materials_hdr_emissiveMultiplier-1.0/schema/VRMC_materials_hdr_emissiveMultiplier.json
+1 −0 specification/VRMC_materials_mtoon-1.0-beta/MToon_comparision.md
+164 −87 specification/VRMC_materials_mtoon-1.0-beta/README.ja.md
+3 −0 specification/VRMC_materials_mtoon-1.0-beta/README.md
+ specification/VRMC_materials_mtoon-1.0-beta/figures/mtoon-lit-shade.png
+ specification/VRMC_materials_mtoon-1.0-beta/figures/mtoon-shading-ramp.png
+12 −2 specification/VRMC_materials_mtoon-1.0-beta/schema/VRMC_materials_mtoon.schema.json
+0 −0 specification/VRMC_materials_mtoon-1.0-beta/schema/mtoon.shadingShiftTexture.schema.json
+0 −33 specification/VRMC_materials_mtoon-1.0_draft/README.md
+ specification/VRMC_materials_mtoon-1.0_draft/figures/mtoon-shading-ramp.png
+22 −22 specification/VRMC_springBone-1.0-beta/README.ja.md
+22 −22 specification/VRMC_springBone-1.0-beta/README.md
+1 −1 specification/VRMC_springBone-1.0-beta/schema/VRMC_springBone.collider.schema.json
+0 −0 specification/VRMC_springBone-1.0-beta/schema/VRMC_springBone.colliderGroup.schema.json
+6 −3 specification/VRMC_springBone-1.0-beta/schema/VRMC_springBone.joint.schema.json
+0 −0 specification/VRMC_springBone-1.0-beta/schema/VRMC_springBone.schema.json
+0 −0 specification/VRMC_springBone-1.0-beta/schema/VRMC_springBone.shape.schema.json
+0 −0 specification/VRMC_springBone-1.0-beta/schema/VRMC_springBone.spring.schema.json
+43 −39 specification/VRMC_vrm-1.0-beta/README.ja.md
+13 −9 specification/VRMC_vrm-1.0-beta/README.md
+12 −3 specification/VRMC_vrm-1.0-beta/expressions.ja.md
+12 −3 specification/VRMC_vrm-1.0-beta/expressions.md
+0 −0 specification/VRMC_vrm-1.0-beta/firstPerson.ja.md
+0 −0 specification/VRMC_vrm-1.0-beta/firstPerson.md
+0 −0 specification/VRMC_vrm-1.0-beta/humanoid.ja.md
+0 −0 specification/VRMC_vrm-1.0-beta/humanoid.md
+0 −0 specification/VRMC_vrm-1.0-beta/lookAt.ja.md
+0 −0 specification/VRMC_vrm-1.0-beta/lookAt.md
+0 −0 specification/VRMC_vrm-1.0-beta/meta.ja.md
+0 −0 specification/VRMC_vrm-1.0-beta/meta.md
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.expressions.expression.materialColorBind.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.expressions.expression.morphTargetBind.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.expressions.expression.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.expressions.expression.textureTransformBind.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.expressions.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.firstPerson.meshAnnotation.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.firstPerson.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.humanoid.humanBones.humanBone.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.humanoid.humanBones.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.humanoid.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.lookAt.rangeMap.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.lookAt.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.meta.schema.json
+0 −0 specification/VRMC_vrm-1.0-beta/schema/VRMC_vrm.schema.json
+0 −89 specification/VRMC_vrm-1.0_draft/spec_changed.md
+ specification/VRMC_vrm-1.0_draft/vrm-1.0_update.xlsx