fix extract VRM10Object

This commit is contained in:
ousttrue 2021-06-15 20:13:25 +09:00
parent 55db3fa8c3
commit cac6d2d295
2 changed files with 17 additions and 7 deletions

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.IO;
using UnityEditor;
using VRMShaders;
using System.Collections.Generic;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
#else
@ -73,13 +74,22 @@ namespace UniVRM10
var path = GetAndCreateFolder(importer.assetPath, ".Vrm1Object");
{
foreach (var (key, asset) in importer.GetSubAssets<VRM10Object>(importer.assetPath))
{
asset.ExtractSubAsset($"{path}/{asset.name}.asset", false);
}
var map = new Dictionary<VRM10Expression, VRM10Expression>();
foreach (var (key, asset) in importer.GetSubAssets<VRM10Expression>(importer.assetPath))
{
asset.ExtractSubAsset($"{path}/{asset.name}.asset", false);
var clone = asset.ExtractSubAsset($"{path}/{asset.name}.asset", false);
map.Add(asset, clone as VRM10Expression);
}
var (_, vrmObject) = importer.GetSubAssets<VRM10Object>(importer.assetPath).First();
// replace clone
for (int i = 0; i < vrmObject.Expression.Clips.Count; ++i)
{
vrmObject.Expression.Clips[i] = map[vrmObject.Expression.Clips[i]];
}
{
vrmObject.ExtractSubAsset($"{path}/{vrmObject.name}.asset", false);
}
}

View File

@ -233,7 +233,7 @@ namespace UniVRM10
var controller = Root.AddComponent<VRM10Controller>();
// vrm
m_vrmObject = controller.Vrm = await LoadVrmAsync(awaitCaller, m_vrm);
controller.Vrm = await LoadVrmAsync(awaitCaller, m_vrm);
// springBone
if (UniGLTF.Extensions.VRMC_springBone.GltfDeserializer.TryGet(Parser.GLTF.extensions, out UniGLTF.Extensions.VRMC_springBone.VRMC_springBone springBone))
@ -265,7 +265,7 @@ namespace UniVRM10
}
// create new object
vrm = ScriptableObject.CreateInstance<VRM10Object>();
m_vrmObject = vrm = ScriptableObject.CreateInstance<VRM10Object>();
vrm.name = VRM10Object.SubAssetKey.Name;
// meta