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 20, on Please turn to Page 21

Advanced Animating:

Restraints With Multiple Child Bones

It's possible to create restraints that are beyond the basic restraint animations just demonstrated and in view of achieving this we'll show you how to create animations with more than one Child bone. Getting such animations to work in your game requires work similar to that we've taken on board in the previous session in addition to a final step being added to the XML which we'll get to shortly.

We've created, tested, and textured a Power Boat car along with temporarily static restraints for our White Water Rapids CTR. Although we hadn't as yet selected some of the texture styles for our car we've used this car for the demonstration.

Image 193, HowTo's: The Ultimate CTR Creator, Page20

With this track's EI&N rating of 27, 5, & 3, it's easy to see why this boat needs restraints.

Image 194, HowTo's: The Ultimate CTR Creator, Page20

If you've reviewed these sessions in order, when looking over these next XML's you'll know the reasoning behind each line of entry and what their values represent. In view of that we'll just fill in the required data, display the XML's, and only touch upon the additional steps required.

The previous header showed how to animate a simple restraint with a single rotation in a car with four seats. Our car in this session has twelve seats and our aim this time around is to achieve a restraint that opens in three stages as outlined in the diagram below with the Peep01 position.

Image 195, HowTo's: The Ultimate CTR Creator, Page20

In SketchUp we've already precisely placed the child bone crosshairs, have tested the movements & rotations, and have decided upon the values for each transition.

Image 196, HowTo's: The Ultimate CTR Creator, Page20


Because our seat leans back at a 10° angle and the pivot support rods lean back at a matching angle, our XML will need to reflect a slight movement of the support rods along the X axis in addition to the main movement of the rods being lifted along the Z axis. Of course, we've also added the two rotations.

Image 197, HowTo's: The Ultimate CTR Creator, Page20


As expected, the OpenIdle XML is the one holding all the meshes in their opened positions. The 0 timings entered here aren't considered by the game engine as it will hold the restraints in the OpenedIdle position as long as guests are boarding the train.

Image 198, HowTo's: The Ultimate CTR Creator, Page20


When it comes to Closing restraint animations that involve multiple child bones sometimes the start of the Closing animation will snap or jerk into place instead of smoothly doing what we've set it up to do in our XML. The way to minimize this is to start out your Closing animation as if it's the OpenIdle animation. To do that, copy and paste in the data from OpenIdle into Closing and alter all the 0 timings to 1 second. Doing this will help ease your OpenIdle animation into your Closing.

Image 199, HowTo's: The Ultimate CTR Creator, Page20

After this, add the required Closing animation data. As we did before, note the reversal of the timings in this set of data compared to the Opening data set.

Image 200, HowTo's: The Ultimate CTR Creator, Page20

Extending OpenIdle into Closing by 1 second isn't a 100% reliable cure but it will increase the reliability of your Closing animation by decreasing the number of times the Closing animation jerks, and it will more often than not reduce the time span of this snappy movement. If you've done this and your Closing animation is still not as smooth as you'd like, if you won't mind adding an extra step then view our later article Importing Your Peep Effects As Child Bones. Even in projects with single child bone restraints, setting up your Peep effects as bones in this way will eliminate any snapping, jerky movements.


As always, with all the values at 0 the ClosedIdle XML is the simplest.

Beneath our header, Troubleshooting Transition Errors, because all the 0 values indicate this is a static animation we've matched up all the 'transitions' and have altered line 12 from a translate transition to a rotate transition. If you'd prefer you could change all the transitions from rotate to translate.

Image 201, HowTo's: The Ultimate CTR Creator, Page20

Ride Train With No Seats Error

Whether we ultimately use these animations to test only the Peep01 seat or if we completed these XML's for all twelve seats, if we choose to Import these multiple child bone animations as they stand, when attempting to build our track in the game we'd get the Ride Train With No Seats error which would be followed by a game crash. After we've done everything right to include the Peep seating effects with our car this can be an unsettling situation to come across.

With the Peep effects in this car having now fallen below the radar what we need to do now is to specifically bring them to the attention of the game engine and the way to do that is to include them in our animations as if they are Child bones. In this example we've used the floor in our Power Boat car as the Parent bone mesh which means our model will now have two Parent Bones, one Parent bone for the restraints, and the other that we're about to set up now for the Peep effects.

In this next image we've switched SketchUp's Faces view to Monochrome so we can easily see the Peep effects against the boat's floor. The floor of course is properly textured, is grouped with a name that identifies it throughout the Importing process as a Parent mesh, and will serve as the parent mesh to all twelve Peep effects when we set them up as Child bones. In this car model, just like all the other bones except the Child bones, the Parent bone to be linked to the floor mesh is placed with its crosshair cage at X+Y+Z=0 which as it happens in this image is at the track water's surface, below the boat's floor. The boat's floor, positioned exactly where it needs to be in relation to the remainder of the boat model, is around 20cm from Z=0.

Image 202, HowTo's: The Ultimate CTR Creator, Page20

Separate set points are not required when setting up Peep effects as Child bones. When linked to their Parent bone each Peep effect will become both Child bone and set point and will all be assigned to the floor mesh, their Parent. Peep bones are named in exactly the same way (Peep01, Peep02, Peep03, etc.) whether they are Imported as standard effects or are set up as Child bones.

Let's review what our Opening XML looked like a few steps back.

Image 203, HowTo's: The Ultimate CTR Creator, Page20

Taking into account that our Peep effects need a Parent bone, this is what our Opening XML will look like with that Parent bone added (see lines 12, 13, 14, and 15).

Image 204, HowTo's: The Ultimate CTR Creator, Page20

Now we'll copy lines 19-37, paste these lines into our Opening XML so there are a total of twelve copies of the line sets (one copy for each seat in our car), and then alter the Peep effect number in each set of the copies we just pasted in so that we have one copy for each Peep effect. Let's review our results.

Image 205, HowTo's: The Ultimate CTR Creator, Page20

Note the content of lines 12, 13, 14, and 15 only need to be included once in this XML. This same data will also only need to be included once in OpenIdle, Closing, and ClosedIdle.

Again, we've copied & pasted twelve sets of bone data in Opening because we have twelve seats in our car. You may need fewer or additional line sets depending on the number of seats you have in your own car. We're ready now to move on to the Importer.

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: Advanced Animating - Restraints With Multiple Child Bones