Click or drag to resize
3.0.0b4

Version 3.0.0b4 was released on 2015-08-08.

Upgrading from 3.0.0b3

3.0.0b4 introduces a number of changes that may require manual repairs of existing projects using 3.0.0b3.

The easiest way to upgrade is to delete all Ragdoll Workshop 3.0.0b3 files in Plugins/Candlelight and in Plugins/Editor/Candlelight before installing 3.0.0b4, and to rebuild your existing ragdoll prefabs. If you cannot do this, it is recommended you take the following steps:

  1. Delete all files from b3 that have been removed or renamed. If you do not do this, then the script files' GUIDs may not properly match those in the package, which will cause problems with future upgrades.
  2. For each humanoid or tetrapod ragdoll prefab in your project, complete the following steps:
    1. Select your pelvis GameObject.
    2. Write down the values on the pelvis's PhysicalBody component and then remove it.
    3. Remove the pelvis's Collider component.
    4. Add a RagdollPart component to the pelvis, and apply the values you copied down.
    5. Select your Ragdoll object (e.g., HumanoidRagdoll or TetrapodRagdoll) and open the Body Parts tab in the inspector.
    6. Assign your pelvis to the Ragdoll's definition.
    7. In the Hierarchy group of the Ragdoll's inspector, set Angular Drive Forces to Position and Velocity.
Changes in This Release
  • The following files were renamed or removed and should be deleted:
    • TetrapodCharacterizationTemplateBodyPartDrawer.cs
    • MayaNode.cs
    • MayaConstraint.cs
    • BaseJointEditor.cs
    • HingeJointEditor.cs
    • CharacterJointEditor.cs
    • ConfigurableJointEditor.cs
    • SpringJointEditor.cs
  • Moved all Maya node stuff into Candlelight.Maya namespace.
  • Moved the following types into Candlelight.Physics namespace:
    • ColliderShapeType
    • FlexibleCollider
    • JointAngularLimits
    • JointX
    • HumanoidRagdoll
    • HumanoidRagdollAnimator
    • PhysicalBody
    • Ragdoll
    • RagdollAnimator
    • RagdollAnimatorFinalIKSync
    • RagdollPart
    • RagdollPartChain
    • ShapeType
    • TetrapodCharacterizationTemplate
    • TetrapodRagdoll
    • TetrapodRagdollAnimator
    • JointHandles
    • [Assorted editor-only types]
  • Removed separate root type from generic parameters on IVertebrate, ITetrapod, IHumanoid, IBodyChain, and ITetrapodX.
  • TetrapodRagdoll and HumanoidRagdoll now require a RagdollPart instead of PhysicalBody component for Pelvis (automated setup process updated to reflect this change).
  • Changed behavior of center of mass settings:
    • Characterization template now has toggle to specify whether automatic center of mass calculation should be used; make sure any templates you have defined enable this as needed.
    • Removed CharacterizationTemplate.BodyPartSettings.CenterOfMassParameter; use CharacterizationTemplate.BodyPartSettings.GetCenterOfMassParameter() and note bool return value specifying whether value is explicit.
    • By default, PhysicalBody.Rigidbody will use automatically computed center of mass; re-characterize your ragdolls or enable the center of mass via the check box in the inspector for any parts requiring explicit center of mass specification.
    • Like Rigidbody.centerOfMass, setting PhysicalBody.CenterOfMass will mark it as explicit and Unity will cease automatically computing it.
    • PhysicalBody or RagdollPart components using automatic center of mass will display ghosted handles in the editor; manipulating these handles will set the center of mass to an explicit value.
  • Added TetrapodCharacterizationTemplate.PerformChangeOnAllSettings(); removed TetrapodCharacterizationTemplate.ClearAngularZLimits().
  • Added BlendTime to TetrapodCharacterizationTemplate.BodyPartSettings.
  • Added a variety of new copy/paste controls to inspector for TetrapodCharacterizationTemplate.
  • Added following methods to Ragdoll:
    • SetHierarchyAngularDriveMode() (set to position and velocity when setting up a new character); try setting this value to get better default stiffness with non-animated ragdolls (also available in inspector).
    • SetHierarchyLinearDriveMode()
    • SetHierarchyAngularDamperScalar()
    • SetHierarchyAngularPositionForceScalar()
    • SetHierarchyAngularVelocityForceScalar()
    • SetHierarchyLinearDamperScalar()
    • SetHierarchyLinearPositionForceScalar()
    • SetHierarchyLinearVelocityForceScalar()
    • SetHierarchyPhysicsMaterial(); removed PhysicsMaterial property.
  • Added controls to Ragdoll inspector to adjust a variety of settings on the entire hierarchy.
  • Completely redid shape editing handles!
    • All handles now simultaneously edit the center and size, making it easier to keep one end of the shape pinned in place.
    • Hold Alt to get old behavior (shape center stays pinned in place).
    • Hold Shift to scale a shape handle proportionally.
    • Handles slightly overshoot shape so they do not conflict with Unity's built-in collider gizmos, making them more reliably selectable.
  • Added FlexibleCollider.RunTimeSync to specify whether or not symmetrical property editing should happen at run-time; defaults to DoNoSynchronize.
  • Added following properties to RagdollPart:
    • AngularDamperRange
    • BackupJoint (used for handling breakable joints)
    • LinearDamperRange
    • LinearPositionForceRange
    • LinearVelocityForceRange
  • RagdollPart.Joint is now always ConfigurableJoint; it requires a ConfigurableJoint component instead of any joint.
  • RagdollPart.TrySetJointAngularForceProperties() is now RagdollPart.SetJointAngularForceProperties(). It has a different method signature and no longer automatically sets the joint drive mode. You will need to set this on existing characters e.g., via the Ragdoll inspector controls (Position and Velocity recommended) for your old characters to apply matching force.
  • Joint angular limits on each ragdoll part are now smoothly blended in based on the amount of ragdoll weight, which makes transitions to and from ragdoll less abrupt.
  • Added RagdollEditor to make it easier to make custom Ragdoll classes.
  • RagdollPart components now synchronize all joint modifications made with scene handles.
  • Slightly increased default neck joint limits for stability.
  • TetrapodRagdoll.HierarchyMass now enforces a minimum value of 1f.
  • TetrapodRagdollAnimator.AutomaticallyFindParts() is no longer public.
  • TetrapodHierarchy is now mutable.
  • Removed ArbitraryChainCount property from some ITetrapod objects; it was never part of any interface.
  • Removed obsolete members.
  • SymmetricalTransform component must be on the same GameObject as FlexibleCollider to assign to FlexibleCollider.SymmetryMapper.
  • Moved HierarchyMass property to Ragdoll.
  • Improved default CharacterController size with fully automated setup.
  • TetrapodNamingConvention now does a much better job of guessing names for hierarchies with non-standard naming conventions.
  • Fully automated setup now retains and disables renderers instead of deleting them. This enables Animator controller debug mode from the RagdollAnimator inspector.
  • TetrapodNamingConvention.Root is now TetrapodNamingConvention.Pelvis.
  • Default characterization now properly sets shoulder axes the same for characters in a T-pose and characters in an A-pose.
  • Removed additional characterization prompt when realigning the pose of a character; now assumes you always want to re-characterize.
  • Replaced RagdollAnimator.GetRagdollWeight() with RagdollAnimator.GetStrength() and gave the value the opposite meaning.
  • Fixed RagdollAnimator continuously updating Animator position when full hierarchy is partially ragdoll.
  • Fixed occasional garbage spikes from Animator.Update().
  • Fixed garbage spikes from OrientConstraint.
  • Fixed bug causing entire character to rotate if pelvis was blending out of ragdoll but its children were not.
  • Fixed bug preventing TetrapodRagdoll.HierarchyMass from being set above 200f when inspector was open; inspector type-in field can now exceed slider upper bound.
  • Fixed bug that could cause a compiler error if you had imported the Custom Handles package and then removed it.
  • Fixed possible compiler error in StatusPropertyAttribute.
  • Fixed FlexibleCollider.CorrespondingObject sometimes returning wrong value; also fixes symmetrical handles sometimes not working.
  • Fixed bug causing transformation handles to not work when a part with a symmetry mapper was selected.
  • Updated MAML comments and header text to generate documentation.
See Also