public static SerializableDynamicBoneCollider FromDynamicBoneCollider(DynamicBoneCollider collider) { Debug.Log($"Convert DynamicBoneCollider to serializable: {collider.name}"); var serializableCollider = new SerializableDynamicBoneCollider(); serializableCollider.TransformScale = collider.transform.lossyScale; serializableCollider.AttachedTo = HierarchyPath.FromTransform(collider.transform); // Copy values serializableCollider.m_Direction = collider.m_Direction; serializableCollider.m_Center = collider.m_Center; serializableCollider.m_Bound = collider.m_Bound; serializableCollider.m_Radius = collider.m_Radius; serializableCollider.m_Height = collider.m_Height; return(serializableCollider); }
// Convert from VRMSpringBoneCollider public static SerializableSpringBoneColliderGroup FromSpringBoneColliderGroup(VRMSpringBoneColliderGroup colliderGroup) { Debug.Log($"Convert SpringBoneColliderGroup to serializable: Root={colliderGroup.transform.name}"); var serializableCollider = new SerializableSpringBoneColliderGroup(); serializableCollider.AttachedTo = HierarchyPath.FromTransform(colliderGroup.transform); // Copy values if (colliderGroup.Colliders != null) { foreach (var collider in colliderGroup.Colliders) { serializableCollider.Colliders.Add(new SerializableSpringBoneCollider(collider.Offset, collider.Radius)); } } return(serializableCollider); }
public static SerializableDynamicBone FromDynamicBone(DynamicBone bone) { Debug.Log($"Convert DynamicBone to serializable: Root={bone.m_Root?.name}"); var serializableBone = new SerializableDynamicBone(); serializableBone.AttachedTo = HierarchyPath.FromTransform(bone.gameObject.transform); serializableBone.TransformScale = bone.gameObject.transform.lossyScale; // Copy values serializableBone.m_Root = HierarchyPath.FromTransform(bone.m_Root); serializableBone.m_UpdateRate = bone.m_UpdateRate; serializableBone.m_UpdateMode = bone.m_UpdateMode; serializableBone.m_Damping = bone.m_Damping; serializableBone.m_DampingDistrib = bone.m_DampingDistrib; serializableBone.m_Elasticity = bone.m_Elasticity; serializableBone.m_ElasticityDistrib = bone.m_ElasticityDistrib; serializableBone.m_Stiffness = bone.m_Stiffness; serializableBone.m_StiffnessDistrib = bone.m_StiffnessDistrib; serializableBone.m_Inert = bone.m_Inert; serializableBone.m_InertDistrib = bone.m_InertDistrib; serializableBone.m_Radius = bone.m_Radius; serializableBone.m_RadiusDistrib = bone.m_RadiusDistrib; serializableBone.m_EndLength = bone.m_EndLength; serializableBone.m_EndOffset = bone.m_EndOffset; serializableBone.m_Gravity = bone.m_Gravity; serializableBone.m_Force = bone.m_Force; if (bone.m_Colliders != null) { serializableBone.m_Colliders = bone.m_Colliders.Select(c => HierarchyPath.FromTransform(c.gameObject.transform)).ToList(); } if (bone.m_Exclusions != null) { serializableBone.m_Exclusions = bone.m_Exclusions.Select(e => HierarchyPath.FromTransform(e)).ToList(); } serializableBone.m_FreezeAxis = bone.m_FreezeAxis; serializableBone.m_DistantDisable = bone.m_DistantDisable; serializableBone.m_ReferenceObject = HierarchyPath.FromTransform(bone.m_ReferenceObject); serializableBone.m_DistanceToObject = bone.m_DistanceToObject; return(serializableBone); }
public static SerializableSpringBone FromSpringBone(VRMSpringBone bone) { Debug.Log($"Convert SpringBone to serializable: Root={bone.RootBones[0].name}"); var serializableBone = new SerializableSpringBone(); serializableBone.AttachedTo = HierarchyPath.FromTransform(bone.gameObject.transform); // Copy values serializableBone.m_comment = bone.m_comment; serializableBone.m_stiffnessForce = bone.m_stiffnessForce; serializableBone.m_gravityPower = bone.m_gravityPower; serializableBone.m_gravityDir = bone.m_gravityDir; serializableBone.m_dragForce = bone.m_dragForce; if (bone.m_center != null) { serializableBone.m_center = HierarchyPath.FromTransform(bone.m_center); } if (bone.RootBones != null) { foreach (var rootBone in bone.RootBones) { serializableBone.RootBones.Add(HierarchyPath.FromTransform(rootBone)); } } serializableBone.m_hitRadius = bone.m_hitRadius; if (bone.ColliderGroups != null) { foreach (var colliderGroup in bone.ColliderGroups) { serializableBone.ColliderGroups.Add(HierarchyPath.FromTransform(colliderGroup.transform)); } } return(serializableBone); }