rigging the vehicle
Roamer model is
based on the scorpion so load it into the unreal editor and use
middle mouse drag to get the size of the
45/10 = 4.5
Create a cylinder in trueSpace with the same diameter scaled by
1/10. The PSK exporter scales by 10. Scale the model till the
wheel size matches. The PSK exporter will mirror the mesh on
the Y axis, so use
the mirror tool on the mesh across the Y axis. Next freeze the transforms of the mesh to set the scale to 1 and the rotations to 0.
before and after mirror and transform freeze
Scorpion joint placement
Roamer skeleton - side view shows extra bones for the
steering wheel and the door
Build skelton with the default joint spread set to 180,180,180
Start skeleton in the front view drawn vertically top to bottom centered
more or less on origin. Exit the skeleton tool and reset the matrix on the
Skeleton node and on the Skeleton_root
node inside the
This process makes the first joint of the hierarchy relative to
the origin in position and orientation.
Name the bottom joint, "MyJoint" and rename the bone to "MyBone".
These names are required by the exporter.
build the rest of the skeleton from the top joint. The top
joint will act as the root joint for the
skeleton. The joints can be perfectly centered in the
wheels by using the object snapping script.
line to get the object vertex snap script
initial joints before the leaf joints are added
wheels where snapped to the center using the script
The wheel joint has an extra joint to form a bone for skinning. Use the
extra joint to align the wheel joint z axis. Place the
extra joint above the wheel joint then rotate the wheel joint
until it's rotations are close to 0,0,0. This will make
the z axis up and the x axis point toward the front of the
vehicle. The joint orientation script makes this process
click this line to download the joint orientation script
It's best to start using the script at the root joint, "Main_Root",
and work towards the ends of the chains. The scene view
makes it easy to select the joints.
Main_Root joint before orientation
Main_Root joint after orientation(rotations set to (0, 0, 0))
note that Z points up and X points towards the front of the
the tires will have the same orientation
The joint names for the wheels were set to match
the names used in the Scorpion. "F_L_Tire" for the front
left tire etc. However, the left and
right sides are reversed
because of the mesh being
mirrored earlier. So the front left will be on the right
side of the model. The child bones of the joints are given
the same name as their parent joint with a "Bone" postfix.
"F_L_Tire" joint would have the child bone named "F_L_TireBone".
This naming is required by the PSK exporter. The joint
names at the end of the chains don't matter.
joint renamed - notice front left is on the right side of the
corresponding child bone name
I later found that the gun_rotate joint was
needed for proper eye placement. In fact the whole process
would have gone smoother if I had recreated all the joints used
in the Scorpion. The carDoor was originally named door,
but the unreal import changed it's name.
Export the bone names for the Scorpion from ued to save some
typing and avoid errors.
Scorpion bone names
Unreal requires triangulated meshes, so triangulate the mesh.
Skin the mesh to the skeleton and then use weight paint to set
I named the resulting actor to SK_VH_Roamer.
1. Select the bone
2. Use the convert skin weight to soft selection tool
3. Choose a point edit selection mode(painting, rectangle,
lasso, soft selection etc)
4. Make a selection then choose select connected to get entire
piece(like a tire)
5. Choose convert soft selection to skin weight tool. Right
click for options and make sure replace mode is chosen. If
not select replace mode and run the tool again
6. Right click to exit point edit mode and return to weight
Repeat for each bone.
Remove all weights from the bones that have no influence
including "MyBone". All of the vehicle body is assigned to the
first bone in the skeleton after MyBone.
click this image to get the unreal import export script and
Export a PSK file to SK_VH_Roamer.psk
Make animations and export psa files - each animation
will have the same internal name and can be renamed after
importing into unreal editor.