mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-26 04:42:06 -05:00
export
This commit is contained in:
@@ -8,7 +8,7 @@ namespace UniVRM10
|
||||
Sphere,
|
||||
Capsule,
|
||||
Plane,
|
||||
SphereIside,
|
||||
SphereInside,
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
@@ -56,7 +56,7 @@ namespace UniVRM10
|
||||
DrawPlane(transform.localToWorldMatrix, Offset, Normal, Radius);
|
||||
break;
|
||||
|
||||
case VRM10SpringBoneColliderTypes.SphereIside:
|
||||
case VRM10SpringBoneColliderTypes.SphereInside:
|
||||
Gizmos.color = Color.cyan;
|
||||
Gizmos.DrawWireSphere(Offset, Radius);
|
||||
break;
|
||||
|
||||
@@ -324,6 +324,57 @@ namespace UniVRM10
|
||||
return shape;
|
||||
}
|
||||
|
||||
static UniGLTF.Extensions.VRMC_springBone_extended_collider.ExtendedColliderShape ExportShapeExtended(VRM10SpringBoneCollider z)
|
||||
{
|
||||
var shape = new UniGLTF.Extensions.VRMC_springBone_extended_collider.ExtendedColliderShape();
|
||||
switch (z.ColliderType)
|
||||
{
|
||||
case VRM10SpringBoneColliderTypes.Sphere:
|
||||
{
|
||||
shape.Sphere = new UniGLTF.Extensions.VRMC_springBone_extended_collider.ExtendedColliderShapeSphere
|
||||
{
|
||||
Radius = z.Radius,
|
||||
Offset = ReverseX(z.Offset),
|
||||
};
|
||||
break;
|
||||
}
|
||||
|
||||
case VRM10SpringBoneColliderTypes.Capsule:
|
||||
{
|
||||
shape.Capsule = new UniGLTF.Extensions.VRMC_springBone_extended_collider.ExtendedColliderShapeCapsule
|
||||
{
|
||||
Radius = z.Radius,
|
||||
Offset = ReverseX(z.Offset),
|
||||
Tail = ReverseX(z.Tail),
|
||||
};
|
||||
break;
|
||||
}
|
||||
|
||||
case VRM10SpringBoneColliderTypes.SphereInside:
|
||||
{
|
||||
shape.Sphere = new UniGLTF.Extensions.VRMC_springBone_extended_collider.ExtendedColliderShapeSphere
|
||||
{
|
||||
Radius = z.Radius,
|
||||
Offset = ReverseX(z.Offset),
|
||||
Inside = true,
|
||||
};
|
||||
break;
|
||||
}
|
||||
|
||||
case VRM10SpringBoneColliderTypes.Plane:
|
||||
{
|
||||
shape.Plane = new UniGLTF.Extensions.VRMC_springBone_extended_collider.ExtendedColliderShapePlane
|
||||
{
|
||||
Offset = ReverseX(z.Offset),
|
||||
Normal = ReverseX(z.Normal),
|
||||
};
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return shape;
|
||||
}
|
||||
|
||||
static UniGLTF.Extensions.VRMC_springBone.SpringBoneJoint ExportJoint(VRM10SpringBoneJoint y, Func<Transform, int> getIndexFromTransform)
|
||||
{
|
||||
var joint = new UniGLTF.Extensions.VRMC_springBone.SpringBoneJoint
|
||||
@@ -369,11 +420,19 @@ namespace UniVRM10
|
||||
|
||||
foreach (var c in colliders)
|
||||
{
|
||||
springBone.Colliders.Add(new UniGLTF.Extensions.VRMC_springBone.Collider
|
||||
var exportCollider = new UniGLTF.Extensions.VRMC_springBone.Collider
|
||||
{
|
||||
Node = getNodeIndexFromTransform(c.transform),
|
||||
Shape = ExportShape(c),
|
||||
});
|
||||
};
|
||||
if (c.ColliderType == VRM10SpringBoneColliderTypes.SphereInside || c.ColliderType == VRM10SpringBoneColliderTypes.Plane)
|
||||
{
|
||||
exportCollider.Extensions = new UniGLTF.Extensions.VRMC_springBone_extended_collider.VRMC_springBone_extended_collider
|
||||
{
|
||||
Shape = ExportShapeExtended(c),
|
||||
};
|
||||
}
|
||||
springBone.Colliders.Add(exportCollider);
|
||||
}
|
||||
|
||||
// colliderGroups
|
||||
|
||||
@@ -551,7 +551,7 @@ namespace UniVRM10
|
||||
collider.Radius = exSphere.Radius.Value;
|
||||
if (exSphere.Inside.HasValue && exSphere.Inside.Value)
|
||||
{
|
||||
collider.ColliderType = VRM10SpringBoneColliderTypes.SphereIside;
|
||||
collider.ColliderType = VRM10SpringBoneColliderTypes.SphereInside;
|
||||
}
|
||||
}
|
||||
else if (exCollider.Shape.Capsule is UniGLTF.Extensions.VRMC_springBone_extended_collider.ExtendedColliderShapeCapsule exCapsule)
|
||||
|
||||
Reference in New Issue
Block a user