mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-25 12:22:29 -05:00
check childCount
This commit is contained in:
@@ -452,64 +452,68 @@ namespace UniVRM10
|
||||
GravityPower = y.m_gravityPower,
|
||||
};
|
||||
|
||||
switch (y.m_anglelimitType)
|
||||
if (y.transform.childCount > 0)
|
||||
{
|
||||
case UniGLTF.SpringBoneJobs.AnglelimitTypes.Cone:
|
||||
{
|
||||
var limit = new UniGLTF.Extensions.VRMC_springBone_limit.VRMC_springBone_limit
|
||||
// childが存在する => 末端でない
|
||||
switch (y.m_anglelimitType)
|
||||
{
|
||||
case UniGLTF.SpringBoneJobs.AnglelimitTypes.Cone:
|
||||
{
|
||||
SpecVersion = VRMC_springBone_limit_SPEC_VERSION,
|
||||
Limit = new UniGLTF.Extensions.VRMC_springBone_limit.Limit
|
||||
var limit = new UniGLTF.Extensions.VRMC_springBone_limit.VRMC_springBone_limit
|
||||
{
|
||||
Cone = new UniGLTF.Extensions.VRMC_springBone_limit.ConeLimit
|
||||
SpecVersion = VRMC_springBone_limit_SPEC_VERSION,
|
||||
Limit = new UniGLTF.Extensions.VRMC_springBone_limit.Limit
|
||||
{
|
||||
Rotation = ReverseXToFloat4(y.m_limitSpaceOffset),
|
||||
Angle = y.m_pitch,
|
||||
Cone = new UniGLTF.Extensions.VRMC_springBone_limit.ConeLimit
|
||||
{
|
||||
Rotation = ReverseXToFloat4(y.m_limitSpaceOffset),
|
||||
Angle = y.m_pitch,
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
glTFExtension extensions = default;
|
||||
UniGLTF.Extensions.VRMC_springBone_limit.GltfSerializer.SerializeTo(ref extensions, limit);
|
||||
joint.Extensions = extensions;
|
||||
break;
|
||||
}
|
||||
case UniGLTF.SpringBoneJobs.AnglelimitTypes.Hinge:
|
||||
{
|
||||
var limit = new UniGLTF.Extensions.VRMC_springBone_limit.VRMC_springBone_limit
|
||||
};
|
||||
glTFExtension extensions = default;
|
||||
UniGLTF.Extensions.VRMC_springBone_limit.GltfSerializer.SerializeTo(ref extensions, limit);
|
||||
joint.Extensions = extensions;
|
||||
break;
|
||||
}
|
||||
case UniGLTF.SpringBoneJobs.AnglelimitTypes.Hinge:
|
||||
{
|
||||
Limit = new UniGLTF.Extensions.VRMC_springBone_limit.Limit
|
||||
var limit = new UniGLTF.Extensions.VRMC_springBone_limit.VRMC_springBone_limit
|
||||
{
|
||||
Hinge = new UniGLTF.Extensions.VRMC_springBone_limit.HingeLimit
|
||||
Limit = new UniGLTF.Extensions.VRMC_springBone_limit.Limit
|
||||
{
|
||||
Rotation = ReverseXToFloat4(y.m_limitSpaceOffset),
|
||||
Angle = y.m_pitch,
|
||||
Hinge = new UniGLTF.Extensions.VRMC_springBone_limit.HingeLimit
|
||||
{
|
||||
Rotation = ReverseXToFloat4(y.m_limitSpaceOffset),
|
||||
Angle = y.m_pitch,
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
glTFExtension extensions = default;
|
||||
UniGLTF.Extensions.VRMC_springBone_limit.GltfSerializer.SerializeTo(ref extensions, limit);
|
||||
joint.Extensions = extensions;
|
||||
break;
|
||||
}
|
||||
case UniGLTF.SpringBoneJobs.AnglelimitTypes.Spherical:
|
||||
{
|
||||
var limit = new UniGLTF.Extensions.VRMC_springBone_limit.VRMC_springBone_limit
|
||||
};
|
||||
glTFExtension extensions = default;
|
||||
UniGLTF.Extensions.VRMC_springBone_limit.GltfSerializer.SerializeTo(ref extensions, limit);
|
||||
joint.Extensions = extensions;
|
||||
break;
|
||||
}
|
||||
case UniGLTF.SpringBoneJobs.AnglelimitTypes.Spherical:
|
||||
{
|
||||
Limit = new UniGLTF.Extensions.VRMC_springBone_limit.Limit
|
||||
var limit = new UniGLTF.Extensions.VRMC_springBone_limit.VRMC_springBone_limit
|
||||
{
|
||||
Spherical = new UniGLTF.Extensions.VRMC_springBone_limit.SphericalLimit
|
||||
Limit = new UniGLTF.Extensions.VRMC_springBone_limit.Limit
|
||||
{
|
||||
Rotation = ReverseXToFloat4(y.m_limitSpaceOffset),
|
||||
Pitch = y.m_pitch,
|
||||
Yaw = y.m_yaw,
|
||||
Spherical = new UniGLTF.Extensions.VRMC_springBone_limit.SphericalLimit
|
||||
{
|
||||
Rotation = ReverseXToFloat4(y.m_limitSpaceOffset),
|
||||
Pitch = y.m_pitch,
|
||||
Yaw = y.m_yaw,
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
glTFExtension extensions = default;
|
||||
UniGLTF.Extensions.VRMC_springBone_limit.GltfSerializer.SerializeTo(ref extensions, limit);
|
||||
joint.Extensions = extensions;
|
||||
break;
|
||||
}
|
||||
};
|
||||
glTFExtension extensions = default;
|
||||
UniGLTF.Extensions.VRMC_springBone_limit.GltfSerializer.SerializeTo(ref extensions, limit);
|
||||
joint.Extensions = extensions;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return joint;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user