From 7d15c0bb04267c64dda5490c3f962ee18842ca56 Mon Sep 17 00:00:00 2001 From: ousttrue Date: Thu, 8 Apr 2021 17:27:09 +0900 Subject: [PATCH] ExportLookAt --- Assets/VRM10/Runtime/IO/Vrm10Exporter.cs | 33 +++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs b/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs index 4447de46a..40d784734 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10Exporter.cs @@ -221,13 +221,44 @@ namespace UniVRM10 if (vrmController != null) { ExportExpression(vrm, vrmController, model, converter); - // lookAt + ExportLookAt(vrm, vrmController); // firstPerson } return (vrm, thumbnailTextureIndex); } + UniGLTF.Extensions.VRMC_vrm.LookAtRangeMap ExportLookAtRangeMap(CurveMapper mapper) + { + return new UniGLTF.Extensions.VRMC_vrm.LookAtRangeMap + { + InputMaxValue = mapper.CurveXRangeDegree, + OutputScale = mapper.CurveYRangeDegree, + }; + } + + void ExportLookAt(UniGLTF.Extensions.VRMC_vrm.VRMC_vrm vrm, VRM10Controller vrmController) + { + if (vrmController?.LookAt != null) + { + return; + } + + vrm.LookAt = new UniGLTF.Extensions.VRMC_vrm.LookAt + { + LookAtType = vrmController.LookAt.LookAtType, + OffsetFromHeadBone = new float[]{ + vrmController.LookAt.OffsetFromHead.x , + vrmController.LookAt.OffsetFromHead.y , + vrmController.LookAt.OffsetFromHead.z , + }, + LookAtHorizontalInner = ExportLookAtRangeMap(vrmController.LookAt.HorizontalInner), + LookAtHorizontalOuter = ExportLookAtRangeMap(vrmController.LookAt.HorizontalOuter), + LookAtVerticalDown = ExportLookAtRangeMap(vrmController.LookAt.VerticalDown), + LookAtVerticalUp = ExportLookAtRangeMap(vrmController.LookAt.VerticalUp), + }; + } + UniGLTF.Extensions.VRMC_vrm.MorphTargetBind ExportMorphTargetBinding(MorphTargetBinding binding, Func getIndex) { return new UniGLTF.Extensions.VRMC_vrm.MorphTargetBind