mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-08-27 21:34:38 -05:00
Model から VRM 情報が除去されたので、ToGlb に追加の引数が必用になった
This commit is contained in:
@@ -6,7 +6,7 @@ namespace UniVRM10
|
||||
{
|
||||
public static class ModelExtensions
|
||||
{
|
||||
public static byte[] ToGlb(this VrmLib.Model model, Func<Texture2D, (byte[], string)> getTextureBytes)
|
||||
public static byte[] ToGlb(this VrmLib.Model model, GameObject root, RuntimeVrmConverter converter, Func<Texture2D, (byte[], string)> getTextureBytes)
|
||||
{
|
||||
// export vrm-1.0
|
||||
var exporter10 = new Vrm10Exporter(_ => false);
|
||||
@@ -14,7 +14,8 @@ namespace UniVRM10
|
||||
{
|
||||
// vrm = false
|
||||
};
|
||||
exporter10.Export(null, model, null, option, getTextureBytes);
|
||||
|
||||
exporter10.Export(root, model, converter, option, getTextureBytes);
|
||||
var glb10 = UniGLTF.Glb.Parse(exporter10.Storage.ToBytes());
|
||||
return glb10.ToBytes();
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ namespace UniVRM10
|
||||
|
||||
(UniGLTF.Extensions.VRMC_vrm.VRMC_vrm vrm, UniGLTF.Extensions.VRMC_springBone.VRMC_springBone springBone, int? thumbnailIndex) ExportVrm(GameObject root, Model model, RuntimeVrmConverter converter, VRM10MetaObject meta)
|
||||
{
|
||||
var vrmController = root.GetComponent<VRM10Controller>();
|
||||
var vrmController = root?.GetComponent<VRM10Controller>();
|
||||
|
||||
if (meta == null)
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Sample : MonoBehaviour
|
||||
var model = exporter.ToModelFrom10(vrm0x);
|
||||
// 右手系に変換
|
||||
model.ConvertCoordinate(VrmLib.Coordinates.Vrm1);
|
||||
var exportedBytes = model.ToGlb(TextureExporter.GetTextureBytesWithMime);
|
||||
var exportedBytes = model.ToGlb(vrm0x, exporter, TextureExporter.GetTextureBytesWithMime);
|
||||
|
||||
// Import 1.0
|
||||
var vrm10 = Import(exportedBytes, src);
|
||||
|
||||
@@ -35,18 +35,11 @@ namespace UniVRM10.Test
|
||||
}
|
||||
}
|
||||
|
||||
VrmLib.Model ToModel(UnityEngine.GameObject target)
|
||||
{
|
||||
var exporter = new UniVRM10.RuntimeVrmConverter();
|
||||
var model = exporter.ToModelFrom10(target);
|
||||
return model;
|
||||
}
|
||||
|
||||
byte[] ToVrm10(VrmLib.Model model)
|
||||
byte[] ToVrm10(GameObject root, RuntimeVrmConverter converter, VrmLib.Model model)
|
||||
{
|
||||
// 右手系に変換
|
||||
VrmLib.ModelExtensionsForCoordinates.ConvertCoordinate(model, VrmLib.Coordinates.Vrm1);
|
||||
var bytes = UniVRM10.ModelExtensions.ToGlb(model, AssetTextureUtil.GetTextureBytesWithMime);
|
||||
var bytes = UniVRM10.ModelExtensions.ToGlb(model, root, converter, AssetTextureUtil.GetTextureBytesWithMime);
|
||||
return bytes;
|
||||
}
|
||||
|
||||
@@ -61,14 +54,18 @@ namespace UniVRM10.Test
|
||||
var parser = new GltfParser();
|
||||
parser.Parse(path, migrated);
|
||||
|
||||
var asset = BuildGameObject(parser, true);
|
||||
Debug.Log(asset);
|
||||
var go = BuildGameObject(parser, true);
|
||||
Debug.Log(go);
|
||||
|
||||
// export
|
||||
var dstModel = ToModel(asset);
|
||||
// var dstModel = ToModel(go);
|
||||
var exporter = new UniVRM10.RuntimeVrmConverter();
|
||||
var dstModel = exporter.ToModelFrom10(go);
|
||||
// return model;
|
||||
|
||||
Debug.Log(dstModel);
|
||||
|
||||
var vrmBytes = ToVrm10(dstModel);
|
||||
var vrmBytes = ToVrm10(go, exporter, dstModel);
|
||||
Debug.Log($"export {vrmBytes.Length} bytes");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user