mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-07-18 16:21:50 -05:00
export
This commit is contained in:
parent
a71aa9fd8f
commit
a3564ec859
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user