`QUICK JUMP:`
## BUILDING RAGDOLLS for the Newton SDK DBPro wrapper ## INTRO
## HOW RAGDOLLS WORK IN NEWTON
To make ragdolls for the Newton SDK, you need to first understand the skeleton system Newton requires. If you have any experience with making animated characters in the past, you already have a head start; Newton ragdolls are based on the same system as most bone-animated model formats. However, Newton has a few extra requirements, that once understood, will alow you to make ragdolls with little difficulty. But first, let's go over how a skeleton is set up. The first thing you need to remember about skeleton systems, is that they work on a local coordinate system. Basically this means that when describing a bone, you are describing it in relation to its parent bone. This is actually a lot simpler than it sounds, and if you have a program like Character FX (which we will use in this tutorial), you don't even need to do any math. The next thing you must remember (and possibly the most important), is that the X-AXIS is the main axis for a bone in Newton. In other words, all bones are aligned along their local x-axis (they "point" down the x-axis). This is extremely important when setting up your skeleton (in the next step).
## BONE EXAMPLE
First, let's look at the simplest possible bone: This bone can be defined like this:
`Rotation` | `0, 0, 0`
`Position` | `0, 0, 0`
`Size` | `5, 2, 2`
Now imagine we have a bone starting at the origin, pointing directly up: This bone would be defined follows:
`Rotation` | `0, 0, -90`
`Position` | `0, 0, 0`
`Size` | `5, 2, 2`
You can see that the rotation is the only thing that has changed. The size stays the same, because the first value refers to the size along the local x-axis, followed by the y and z-axis. Now let's imagine we want to add another bone as a child to this bone, connected to the end of the parent bone, and still pointing straight up. It would look something like this: and the bone would be defined as follows:
`Rotation` | `0, 0, 0`
`Position` | `5, 0, 0`
`Size` | `5, 2, 2`
Note that this bone has no rotation. this is because it's defined in terms of it's parent bone. since it's pointing in the same direction as it's parent, there is no rotation needed. however, it has a position value. in this case, it's offset exactly 5 units down the x-axis of it's parent bone, which puts it right at the end of the parent bone. Finally, let's instead imagine that this bone is to be pointing off to the right at a 90 degree angle from the parent bone. It would look like this: And be defined as follows:
`Rotation` | `0, 0, 90`
`Position` | `5, 0, 0`
`Size` | `5, 2, 2`
That explains the basic concept behind setting up bones for use with Newton. Also one last bit of information. As a default, direct parent/child bones do not collide with each other. In other words, a child will not colide with its parent, but will collide with all other bones in the system. This makes sense because often you want bones to overlap slightly to avoid having "holes" in your skeleton. We can sum up the major points about skeletons for Newton Rag Dolls as follows: Bones are defined in local coordinates. All bones are aligned along their local x-axis. All bones are defined in terms of their parent bone. Direct parent/child bones by default do not collide with each other. That's pretty much all the general knowledge you need to get started. Let's move on to actually building the skeleton for a model in Character FX. STEP 2: Setting Up The Model
`QUICK JUMP:`