Joint Bias
As discussed by Bouckley (2018) the seeking action of CCD through a kinematic chain does not effectively mimic the natural motion of a human. A human will choose to move there limbs as little as possible to reach their goal, only moving their spine if it becomes necessary, whereas my solution will update every link in the chain each iteration.To simulate more organic movement of the chain, Kenwright (2013, pp. 59-64) and Bouckley (2018) suggest giving joints closer to the end effector a higher bias, which will cause the joint order to “bounce back towards the start end and updates earlier joints” (Kenwright, 2013, p. 60) each time a joint is corrected, before progressing to the subsequent joint in the chain.
Figure 1: Joint bias |
Rotation Damping
Because CCD is a heuristic iterative search each joint correction does not guarantee a smooth approach to the target location. As my solution will be used to generate animations, this is a significant problem. Kenwright (2013, p. 64) suggests damping the CCD to give a smoothed approach.Figure 2: Rotation damping |
Result
The result (shown in 2D so the difference may be highlighted across a chain of more degrees of freedom) is contrasted with the previous behaviour in figure 3.Figure 3: Comparison of biased and dampened CCD (bottom) versus unrestricted CCD (top) |
Next Objective
Constraining the range and axis of joint rotations at each joint would prevent impossible joint configurations and ensure that the biped limbs never exceed a regular configuration.References
Bouckley, J. (2018). An Introduction to CCD IK and How to use it - Unite Berlin 2018. Available at: https://www.youtube.com/watch?v=MA1nT9RAF3k [Accessed 23 Mar. 2019]
Kenwright, B. (2013). Game Inverse Kinematics. [Place of publication not identified]: CreatSpace, pp.59-65.
Bibliography
Bereznyak, A. (2016). IK Rig: Procedural Pose Animation - GDC 2016. Available at: https://www.youtube.com/watch?v=KLjTU0yKS00 [Accessed 21 Mar. 2019]
Bergen, G. (2014). Math for Game Programmers: Inverse Kinematics. Available at: https://www.gdcvault.com/play/1020056/Math-for-Game-Programmers-Inverse [Accessed 1 Mar. 2019]
Kenwright, B. (2012). Game Physics. pp.8, 90-91.
Kenwright, B. (2012). Inverse Kinematics – Cyclic Coordinate Descent (CCD). Journal of Graphics Tools, 16(4), pp.177-217. Available at: https://www.researchgate.net/publication/263226178_Inverse_Kinematics_-_Cyclic_Coordinate_Descent_CCD [Accessed 24 Mar. 2019]