Added ST_S, ST_T importer

This commit is contained in:
ousttrue
2018-08-15 20:57:27 +09:00
parent 9603f56caf
commit ae81ee796d
2 changed files with 40 additions and 7 deletions

View File

@@ -258,7 +258,15 @@ namespace VRM
foreach (var y in x.MaterialValues)
{
// restore values
m_materialMap[y.MaterialName].SetColor(y.ValueName, y.BaseValue);
Material material;
if(m_materialMap.TryGetValue(y.MaterialName, out material))
{
material.SetColor(y.ValueName, y.BaseValue);
}
else
{
Debug.LogWarningFormat("{0} not found", y.MaterialName);
}
}
}
}

View File

@@ -183,14 +183,39 @@ namespace VRM
case 3: value.w = x.targetValue[3]; break;
}
}
return new MaterialValueBinding
var material = context.GetMaterials().FirstOrDefault(y => y.name == x.materialName);
var propertyName = x.propertyName;
if (x.propertyName.EndsWith("_ST_S")
|| x.propertyName.EndsWith("_ST_T"))
{
MaterialName = x.materialName,
ValueName = x.propertyName,
TargetValue = value,
BaseValue = context.GetMaterials().First(y => y.name == x.materialName).GetColor(x.propertyName),
};
propertyName = x.propertyName.Substring(0, x.propertyName.Length - 2);
}
var binding = default(MaterialValueBinding?);
if (material != null)
{
try
{
binding = new MaterialValueBinding
{
MaterialName = x.materialName,
ValueName = x.propertyName,
TargetValue = value,
BaseValue = material.GetColor(propertyName),
};
}
catch(Exception)
{
// do nothing
}
}
return binding;
})
.Where(x => x.HasValue)
.Select(x => x.Value)
.ToArray();
}