This website views at its very best in Firefox web browser, and is not available in a mobile version.

      Copyright © All Rights Reserved | Built by Serif Templates

Parchment Background Image for How To's: The Ultimate CTR Creator, Page 17, on Please turn to Page 18

Intermediate Animating: Standard Restraints

Animating restraints is a step beyond animating doors because restraint animations require two bones arranged in a set. This bones set will require a Parent Bone and a minimum of one Child Bone. The Parent Bone serves as the point around which the Child Bone(s) rotate(s). Animating restraints with rotations is not possible without the use of a Parent Bone.

We'll show you how to set up restraints in this temporarily painted car model we've created with seats there that are just perfect for demonstrating standard restraints.

Image 161, HowTo's: The Ultimate CTR Creator, Page17

The first thing to do is to settle upon your restraint shape, place it in a suitable location on your seat, and then add a pivot. All the seats in this car face forward so all the pivots will be along the Y axis.

This next slideshow illustrates exactly where we've placed our pivot in relation to the seat and to the restraint.

Slider: Adding A Pivot To Restraints

Adding Rotations To Your Restraints

Rotations are added to transitions in radians instead of degrees. As mentioned several sessions back, a Google search will bring up links to several unit converters available for download. With a unit converter one would simply enter the degree value of the required rotation into one side of the converter which will tell you in the other side how much that is in radians. For example, if we wanted to enter a transition of 90° we'd enter 90 in the degrees side of the converter. Having already set up the converter to give results in radians the other side will show us that 90° is 1.5707963267949 radians which goes some way towards explaining why the XML templates and some of the information entered into the Importer require so many decimal places. The Importer can take transitions with up to ten decimal places. Some community members are happy with six while others use eight. The templates come with eight decimal places so if you were to follow the templates you'd enter 90° as


instead of


Rounding the decimal values up or down is unnecessary work because, with eight decimal places, ten-millionths of a radian wouldn't make much difference to RCT3's game engine and would certainly make no difference that we could see in the game. If you choose to work with six decimal places you'd be considering differences of hundred-thousandths of a radian so with such minor differences to consider the number of decimal places you choose to use is a matter of personal preference.

So that we may set our rotations accurately we now need to know rotation plus and rotation minus transition directions. This next slideshow makes these directions clear.

Please note that positive X and Y values are clockwise while positive Z values are counter-clockwise.

Troubleshooting Transition Errors

When we create animations with both translations and rotations we have a choice of setting our animations up with the use of a <translate/> or a <rotate/> command. Because of this, care needs to be taken when selecting either of these commands for adding X+Y+Z=0 transitions with a zero time span. A good rule of thumb is if the transition for the bone is made up entirely of rotations then we should also make our zero timed X+Y+Z=0 transition a rotation. This doesn't make any difference to humans because to us an X+Y+Z=0 transition at zero seconds is completely static. To the game engine incorrectly specifying an incorrect <translate/> or a <rotate/> command will cause problems with our restraints in the game remaining at X+Y+Z=0.

When this occurs some or all of your restraints will be at X+Y+Z=0. Some or all of them may or may not be animated. If you experience the problem of your restraints positioning themselves at X+Y+Z=0 and you're certain you've set up your XML properly, nine times our of ten transposing your <rotate/> command with a <translate/> command (or vice versa) will solve this problem.

Although this is a test car our restraints and pivots are already painted with finishing textures because we've pulled them from a completed project and have modified them for this one.

Ensuring An Accurate Pivot

Whether or not it is accompanied by a pivot mesh, the pivot bone is the Parent bone for your restraint. Its location is the base upon which your entire restraints arrangement rests. This next slideshow is the best way to illustrate how to gain accuracy in placing your pivot bone. An accurately placed pivot bone will give every indication that your restraint is actually joined to your car seat while it's rotating.

Slider: Ensuring An Accurate Pivot

Testing Your Restraint's Rotation

To test the movement of your restraint, draw a small cube (Rectangle tool & Push/Pull tool) with one edge of the cube centred on the axle marker we created in the previous slideshow, and then test the restraint around this point with the Rotate tool in your modeler.

HowTo's: The Ultimate CTR Creator - Testing Your Restraint's Rotation, Page 17 - Thumbnail Screenshot

This would be the time to experiment with your restraint and determine the exact angle at which you want them to rotate into their opened positions. During your test when your restraint is in its opened position you may determine the angle by using SketchUp's Protractor tool or by taking a reading from the SketchUp's Measurements Toolbar. Our seats lean back by 10° and we want the opened restraint to resemble the angle of the seat backs so we've settled upon 106.5°.

After you've settled on your restraints arrangement, in your modeler you'll need to focus on which mesh is the Parent mesh and which is the Child mesh. For our car the Parent mesh will be the pivot with the Child mesh being the restraint part that rotates off the pivot. If your restraints arrangement doesn't require a pivot the Parent mesh could be some part of the seat that isn't the restraint. The axle marker makes an excellent place to determine exactly where in the seat the restraint's lead bone (parent bone) should be so you should always work with a pivot and delete it later if not needed. If you choose to delete the pivot be sure not to delete the pivot's axle marker, the marker cage, or the crosshair box.

For our demonstration each animation XML will require two bones with their own corresponding set points. In our modeler, the groups making up the Parent mesh and the Child mesh will each need to be given a unique name. One set of meshes, bones, and their corresponding set points will be required for each. Let's hide everything in the model except the restraints and their pivots. It would be helpful at this time to display the order in which we've chosen for the guests to be seated in the car.

Image 166, HowTo's: The Ultimate CTR Creator, Page17

Creating Bones And Set Points

The next screenshot shows the bones and set points that are required for Peep01. Because SketchUp doesn't infer snap to Text labels we've created a box with crosshairs in it, similar to the way we did when we animated our Sports Car wheels in a previous article and then have placed our Text Label/Effect Bone at the crosshairs in the box.

Image 167, HowTo's: The Ultimate CTR Creator, Page17

After you've done that select the crosshair box & the Effect Bone and make them a group, Later if it turns out we need to make adjustments to the position of our Effect Bone, by moving the crosshair box, even if we have to zoom in so close we can no longer see the Text Label we can precisely move and adjust the Text Label that makes up the bone. If while originally placing the Text Label we've snapped it to the crosshair box, we'll be able to move the Text Label even if we can't see it if we move its corresponding crosshair box.

Following are diagrams outlining the reasoning we've given the bones and set points the names that we've chosen. The first image gives a review of what's needed for the Peep01 pivot.

Image 168, HowTo's: The Ultimate CTR Creator, Page17

The names may seem unnecessarily long and complex but this system works for us because different parts of each the name help us

to easily tell them apart in the modeler,

conveniently check that we've included every bone required for each mesh,

link the correct texture to the correct bone mesh in the Groups list in the Importer,

pinpoint the bone's ID in the Edit Animated Model Settings>Bones dialog,

keep the bones in hierarchical order in the Edit Animated Model Settings>Bones dialog,

tell at a glance which bone is the parent and how many steps down in that Peep's hierarchy each child bone is,

link the correct Child bones to the correct Parent bones, and

assign the correct mesh to each corresponding bone,

So as you see each part of each name increases the likelihood we'll get it right the first time around by enabling us to be accurate and efficient with the work we need to do with our car at any stage from the time the car is exported to ASE to the time it is Imported to OVL.

After you've done your pivot prep select all five pivot Text labels and make a group (we'll call it Group A). This second image shows what's needed for the Peep01Restraint.

Image 169, HowTo's: The Ultimate CTR Creator, Page17

When your restraint prep is done select all five restraint Text labels and make another group (let's call that Group B). Next select Group A (the pivot group) along with Group B (the restraint group) and make them into another group (Group W). When you're done, Group W should contain two groups, Group A along with Group B. Group W is now the Peep01 Group.

Image 170, HowTo's: The Ultimate CTR Creator, Page17

Because our car has four seats and we want an animated restraint on each seat we'll need four sets of separately grouped and individually identified matching meshes, bones, and set points. To do this you may either copy and paste or use the Move tool with CTRL.

Image 171, HowTo's: The Ultimate CTR Creator, Page17

Each of these sets will need to be entered individually in the animation XML. For this demonstration we'll make three copies of Group W (the Peep01 group that includes the Pivot bone and set points, and the Restraint bone and set points) so that we'll have four groups. We'll call our four groups Group W, Group X, Group Y, and Group Z. We now have one group for each of the seats in our car.

Leave Group W as is.

In Group X we'll change all the Peep01 Text Label entries to Peep02 entries.

In Group Y we'll change all the Peep01 Text Label entries to Peep03 entries.

In Group Z we'll change all the Peep01 Text Label entries to Peep04 entries.

About five images back we showed our numbered Peep seating effects along with the restraints. Note the order we've chosen for our guests to be seated in the car. You'd want the Peep effect order for your particular seating arrangement to match the order of your own car's Peep effects. It isn't anywhere carved into stone that RCT3 guests need to file into ride cars from front to back and from left to right.

Image 172, HowTo's: The Ultimate CTR Creator, Page17

We now have four groups of bones along with their required set points. In addition to the reasons we've given above for our particular naming formula, if you follow this system of naming your bones, set points, and meshes it:

aids in making it convenient to animate restraints for any car regardless of the number of seats in it,

will ensure you've created and correctly specified all the bones and set points required, and

shall, of course, enable you to easily link what's required later on while we're viewing this information in the Importer's Edit Animated Model Settings Window.

Next, explode each of your sets once, i.e., explode the Peep01 set once, the Peep02 set once, the Peep03 set, and the Peep04 set.

Then line up each of the four Child bone crosshairs with the pivot crosshair situated in its corresponding seat, i.e., line up the Peep01 Child bone crosshair with the Peep01 pivot crosshair, the Peep02 Child bone crosshair with the Peep02 pivot crosshair, then do Peep03, etc. In this screenshot we've hidden the pivot, hidden the pivot crosshair box, and have left only the pivot crosshair in view.

Image 173, HowTo's: The Ultimate CTR Creator, Page17

Again, note the order of the Child bones matches the order of our Peep seating effects.

Now you need to move everything else, all 32 of the set points and all four of the Parent Bones, to X+Y+Z=0. The crosshair boxes are an enormous help in doing this accurately. Because these will all be centred in the same spot you don't need to worry about moving or arranging anything in a specific order.

Image 174, HowTo's: The Ultimate CTR Creator, Page17

To recap, All the Parent bone crosshairs need to be at X+Y+Z=0 along with all the Parent bone set points and with all the Child bone set points. The Child bone crosshairs will be matched with each of the corresponding restraint pivot crosshairs.

You'll observe by now that from this point on it's going to be challenging to make any changes in SketchUp to the Parent bones and any of the set points so you'd want to be sure you've got everything properly sorted before centring what's required to X+Y+Z=0. If it turns out that you do need to make any edits you can get started confident that they're already grouped and can easily be moved about in organized units.

Finally we need to name our pivot meshes and our restraint meshes so that they match their corresponding groupings of bones and set points. The most convenient way to do that is to hide everything in the model except for the Peep effects (which will serve as a guideline), the Child bones, the pivots, and the restraints. These will all be placed where desired in SketchUp.

Image 175, HowTo's: The Ultimate CTR Creator, Page17

Essentially, what we're doing now is assigning a group to each of the pivot meshes and to each of the restraint meshes. You'd certainly know how to assign groups in SketchUp so all we'll do now is to show you an illustration of how we grouped everything. kSo you may easily see how we've done this we've moved the corresponding Parent bones from X+Y+Z=0, and into this next image, to aid in cross-referencing all the bone names with each of the group names.

Image 176, HowTo's: The Ultimate CTR Creator, Page17

In this car with only four seats some of these names may seem like overkill but if your car has thirty seats this system of naming bones, set points, and meshes will be extremely helpful by the time you get around to sorting Peep10 in the Edit Animated Model Settings window. If while setting this up for yourself it turns out that you move your own Parent bones from X+Y+Z=0 in order to check your work, be sure and return them to X+Y+Z=0 when you're done.

Now that we're through with our bones, set points, pivot meshes, and restraint meshes, unhide everything in your model, delete Andrew and his clones if you haven't already done so, ensure the remaining meshes are grouped accordingly with their individual textures, and export to ASE.

Image 177, HowTo's: The Ultimate CTR Creator, Page17

When the ASE export is completed SketchUp will display exactly what's been exported to ASE. This next table will show what needs to be included in this particular export.

  Table: Bone And Mesh Groupings

We've also collated for you the textures prepared for this project. Note the names of the textures in relation to the meshes to which they'll be applied.

  Table: Project Textures Assignment

With our bones, set points, and meshes prepared and our model formatted in ASE we're now ready to create our animation XML's.

Further along we'll show you how the Pivot meshes and the Restraint meshes are linked in the Importer's Meshes dialog.

Decking, Stairs, and Balustrades - Thumbnail Image 01 Decking, Stairs, and Balustrades - Thumbnail Image 02 Decking, Stairs, and Balustrades - Thumbnail Image 03

Drag the above toggle to a

convenient place on your screen.

The Ultimate CTR Creator

Table Of Contents:

Sub-Header Text Image for How To's: The Ultimate CTR Creator: Intermediate Animating - Standard Restraints

To view the slider, click on a thumbnail.

To view the slider, click on a thumbnail.