/// <private/> protected void _BuildBones(BuildArmaturePackage dataPackage, Armature armature) { var bones = dataPackage.armature.sortedBones; for (int i = 0, l = bones.Count; i < l; ++i) { var boneData = bones[i]; var bone = BaseObject.BorrowObject <Bone>(); bone.Init(boneData); if (boneData.parent != null) { armature.AddBone(bone, boneData.parent.name); } else { armature.AddBone(bone, string.Empty); } } var constraints = dataPackage.armature.constraints; foreach (var constraintData in constraints.Values) { // TODO more constraint type. var constraint = BaseObject.BorrowObject <IKConstraint>(); constraint.Init(constraintData, armature); armature.AddConstraint(constraint); } }