1. A computer implemented method for use in animating parts of a virtual object in a virtual world, the method comprising: accessing joint data for each joint of a chain of joints associated with parts of a virtual object, joint data including length data defining a vector length for a vector from the joint to a next joint, the length data corresponding to a length of a part in the virtual world; accessing data for a target curve for use in defining possible target locations for the joints of the parts of the virtual object; and processing the joint data to: set a location of a first joint at a first end of the chain to location of a first end of the target curve; define an end target location on the target curve for an end joint at a second end of the chain; define intermediate locations on the target curve for joints intermediate the ends of the chain based on the lengths of the vectors along the chain; and for a number of iterations, repeatedly: identify a joint at a location having a largest location error relative to an intermediate location on the target curve for the joint; rotate a vector for a preceding joint in the chain to minimize a distance between the end joint and the intermediate location on the target curve; rotate a vector for the identified joint to minimize the distance between the end joint and the end target location on the target curve; identify a joint at a location having the largest location error relative to an intermediate location on the target curve for the joint; and determine a rotation to be applied to the vector for the first joint and the vector for the identified joint to fit the end joint to the end target location, and rotating the vector for the first joint and the vector for the identified joint to fit the end joint to the end target location.