PaceMaker Ver 1.2.3

August 24th 2005

 

 

PaceMaker Ver 1.2.3. 1

Animation. 2

ALL MODES. 2

CAMERA MODE. 2

ROTATE MODE. 2

MOVE MODE. 3

The Animation Viewer 3

The Sequence List Box. 3

EXTRACT. 3

CREATE. 3

EDIT. 4

DELETE. 4

LOOP. 4

COPY.. 4

Vertex. 5

SELECT ASSIGNED.. 5

SELECT UNASSIGNED.. 5

CLEAR SELECTED.. 6

ASSIGN SELECTED.. 6

AUTOBIND.. 6

Skeleton. 7

ALL MODES. 7

CAMERA MODE. 7

ROTATE MODE. 7

MOVE MODE. 7

Skeleton Tools. 7

ORIENTATION.. 8

BUILD.. 8

DESTROY.. 8

NORMALISE. 8

Joint Tools. 8

CREATE. 8

INSERT. 9

DELETE. 9

Physics. 9

HINGE. 9

BALL. 9

UNIVERSAL. 9

FIXED.. 10

Joint Limits. 10

Impact Motion Capture. 10

IK Session Recording. 11

Using the IK Tool 11

Collisions. 12

ADJUST MESH.. 12

SHORTCUT KEYS. 12

Views : 3D perspective and 2D Orthographic. 13

Differences between 3D view and 2D view.. 13

Credits. 13

 

 

.

 

PaceMaker is designed to be an easy-to-use skeletal animation tool for 3d models.

 

To run PaceMaker you will need a 3-button mouse and be able to run in Direct X 7 Windowed 3d graphics mode at 1024 x 768 and in 32 bit colour .

 

PaceMaker imports and exports skeletal animated models (Single Mesh/Multi-Surfaced) in the Blitz3d .b3d format. It imports .3ds and .x static meshes

 

 

 

Animation

 

The Animation Tab activates Animation mode. While in the Animation Tab you may view, edit, extract or create animation sequences.

 

A floating Mode Button Window allows you to change your Mouse Mode.

If this gets ‘hidden’ hit ENTER to bring it to the front.

ALL MODES

MB1 – Select Joint

MB3 – Toggle Joint Anchor

 

CAMERA MODE

 

MB1 - Hold down to Rotate Camera (Pan in 2d view)

MB2 – Hold down to Zoom View in/out

MB3 – Hold down to Pan View

 

ROTATE MODE

 

            MB1 – Rotate X Axis

            MB2 – Rotate Y Axis

            MB3 – Rotate Z Axis

           

 

MOVE MODE

 

            MB1 – Move X Axis

            MB2 – Move Y Axis

            MB3 – Move Z Axis

           

 

The Animation Viewer

 

You can play the animation clicking on the ‘Start’ button or use the slider to play manually. You can change the Animation Mode, Speed, Transition and Sequence values.

Joints will display as yellow rather than the normal blue on keyframes when scrolling through the animation.

 

The Sequence List Box

 

Initially there is only one sequence – All base frames – sequence 0.

 

EXTRACT

 

From here you can ‘Extract’ a sequence from existing frames. Click ‘Extract’ – enter a sequence Name, Start frame and End frame and then click ‘OK’. You can then play the sequence by selecting it in the list box.

 

PaceMaker can export a small function in Blitz3D source that you can include in your program to Load the model and extract the sequences. PaceMaker also saves this info in the .b3d file so when you reload this into PaceMaker all your sequences are reloaded as well.

 

CREATE

 

To create a NEW animation sequence click on ‘Create’.

Enter a Sequence Name and Number of frames to add. There is no need for a start frame.

Click ‘OK’

 

The Animation viewer will now be replaced with the Sequence Creator - a basic Keyframer.

Use the ‘Mode’ buttons to switch between Camera Rotation/Movement (CAMERA), Joint Rotation (ROTATE) or Joint Translation (MOVE).

You can also use the shortcut keys F1=Camera, F2=Rotate, F3=Move

 

The start frame will be initially set to the Reference frame but this can be modified at will in the Keyframer. Just rotate the joints to the desired position and click ‘Set Key’ or Paste in a previously Copied frame.

To create more key frames move the slider to the desired frame and then set your translations. When happy click ‘Set Key’ to set a key frame. You can scroll through the animation at any time using the slider.

Note : SET KEY sets a key frame for EVERY joint whereas  SET SEL sets a key for the currently selected joint only ..

 

Joints can be selected either in the tree view or by left clicking on the joint. A selected joint is shown in red.

 

To rotate joints click on ‘ROTATE’ and then use one of the 3 mouse buttons to rotate the joint. Mouse 1 rotates the X-axis, Mouse 2 the Y-axis and Mouse 3 the Z-axis.

To translate joints click on ‘MOVE’ and then use one of the 3 mouse buttons to move the joint. Mouse 1 moves along the X-axis, Mouse 2 the Y-axis and Mouse 3 the Z-axis.

Without IK enabled, there are no constraints on the joints and so translating a joint that is not a “Master” will cause that joint only to move deforming the mesh – (of course that may be the desired result).

 

Remember that in order to rotate or translate the entire body you must select a Master joint – usually the highest in the hierarchy as seen in the tree-view.

 

The 3d ‘Gizmo’ will light up to indicate which axis is being rotated/moved.

Sometimes moving the mouse while holding down a button can be difficult. You can use the cursor keys to emulate the mouse buttons for translation.

 Left Cursor = MB1, Down Cursor = MB3, Right Cursor = MB2

 

EDIT

 

This works the same way as CREATE but is used to edit the currently selected animation sequence. It is easier to work on a sequence but you can edit the base frames directly if you wish.

 

DELETE

 

Delete an animation sequence. You can delete just the sequence or the underlying animation keys as well. To delete unwanted keys extract them first , then delete the sequence and the keys.

 

LOOP

The Loop button does a copy and paste operation from the first key to the last key in the sequence creating a looped animation sequence. Delete the last key to undo this operation.

 

COPY

 

You can COPY a frame from one position to another using the ‘Copy’ and ‘Paste’ buttons. Although the source frame does not necessarily have to be a key frame, the target frame will become a key frame.

You can create your keys in any order – PaceMaker automatically works out the ‘tween’ values.

Once you have created all your keyframes then click on ‘End’.

The Animation viewer will replace the Keyframer.

 The new sequence will appear in the sequence list box and can be played by selecting it if the ‘Animate Selected’ option is checked.

 

 

Vertex

The Vertex Tab allows you to select vertex and assign them to joints.

You may assign a vertex to from 1 to 4 joints. The vertex weighting value is automatically calculated for each individual vertex based on distance and the joints position in the hierarchy.

 

 

The selection controls are slightly different in the Vertex Tab.

 

MB1 – Click – Select single vertex – toggle

MB1 + L Shift – Drag to select multiple Vertex – Exclusive – Green Box

MB1 + L Ctrl – Drag to select multiple Vertex – Additive – Blue Box

MB1 + L Alt  - Drag to remove multiple Vertex from selection – Red Box

 

Uncheck ‘Select Back Facing’ to select forward facing vertex only. This affects all selection types.

 

MB2 – Click – Select Primary Joint – Red when selected- Unselects all extra joints,

MB3 – Click – Select Extra joints. This acts as a toggle – you may select up to 3 extra joints up to a total of 4 for weighting purposes.

These joints appear in a random colour.

 

SELECT ASSIGNED

 

The Select Assigned button selects all vertices assigned to the currently selected joint.

Vertex selected in this way are shown as green. The brightness of the colour denotes how much influence or weighting the joint has over the vertex. Vertices selected normally using the mouse are coloured yellow.

 

SELECT UNASSIGNED

 

The Select Unassigned button selects all vertices that are not assigned to any joint.

 

CLEAR SELECTED

 

This unselects all selected vertices.

 

ASSIGN SELECTED

 

Assign Selected will assign all selected vertex to all selected joints. Weighting values will be calculated automatically. You may increase the amount of weighting to give the Primary joint using the Primary Joint Bias slider. The weighting values are calculated for each vertex individually. If you leave the Primary Joint Bias slider at 0 then the weighting will be based purely on distance. Increasing the Primary Joint Bias has the effect of increasing the influence of the Primary joint over the whole selection. This allows you more control over the assignment without having to assign manually

 

If you prefer you can assign the weight values manually by clicking the ‘MANUAL WEIGHTING’ button. This opens the Weights panel where you can adjust the values using the sliders.

You can use the checkboxes to ‘lock’ values so they are not affected by changes in the others. They themselves can still be changed. This panel will adapt itself to whatever joints you have currently selected and share the weight accordingly.

 

Use the ASSIGN button to apply the values to the selected vertex. You can use the ASSIGN SELECTED button first to apply the auto values and then open the Weights panel to see what values were assigned (to the last vertex in the selection).

You can repeat the Assign process as many times as you like. You can assign individual weightings by selecting one vertex only

 

For Rigid vertex assignment you only need to select a Primary Joint.

 

You can switch between the Vertex Tab and  the Anim Tab at any time to test the vertex assignment by rotating the joints.

 

AUTOBIND

 

This binds all selected vertex to its nearest joint. Only one Joint per vertex is assigned. Selecting all vertices and doing an Autobind can be a kick start when skinning your model . It gives you a default Rigid assignment from which to start. You can then fine tune the assignment and add weighting where required. After Autobind you can cycle through the joints in the tree view to see the vertex assignment.

 

 

 

 

Skeleton

ALL MODES

MB1 – Click - Select Joint

MB2 – Select Symmetrical Joint – toggle

 

 

CAMERA MODE

MB1 - Hold down to Rotate Camera

MB2 – Hold down to Zoom Camera in/out

MB3 – Hold down to Pan Camera

 

 

 

 

ROTATE MODE

 

            MB1 – Rotate X Axis

            MB2 – Rotate Y Axis

            MB3 – Rotate Z Axis

 

MOVE MODE

 

 

            MB1 – Move X Axis

            MB2 – Move Y Axis

            MB3 – Move Z Axis

           

 

Use Move & Rotate modes to position your joints within the mesh. When you create a new joint it will be in the position of its parent. Switch to Move mode to position the joint. While in Move mode you continue creating new joints and then immediately move then into position.

 

Selecting a Symmetrical Joint allows you to move/rotate 2 joints simultaneously – the ‘Sym’ joint will initially mirror along  YZ – this can be toggled to YX. Use MB2 to toggle a Sym joint. Only one Sym joint may be selected at any one time.

Changes in position made to joints with animation keys will affect the animation.

 

Skeleton Tools

 

This is where you can build,delete or normalise your entire skeleton. Skeleton operations in this section are destructive and should only be carried out on models with no animation.

 

ORIENTATION

 

When you first load a model the camera is pointing towards Z positive. If your model is correctly rotated for Blitz3d it will also be looking in the same direction as the camera. You will be looking at the back of the model.

If the model is facing you then it is looking towards Z negative.

If the model is facing to your right then it is orientated towards X positive and if facing to your left is orientated towards X negative.

If your model is facing up or down then it would be better to use the Adjust Mesh  tool to reorientate before binding to a skeleton.

 

BUILD

 

The Skeleton Tab allows you to build an entire skeleton with a few clicks.

Select the orientation of your model and Style. Click BUILD to create.

Pacemaker will attempt to scale the skeleton to your model using correct human proportions. This may not always be perfectly suitable but the joints can be easily tweaked. You can then create , insert , delete or position additional joints in the normal way.

 

DESTROY

 

This removes all joints and any animation from the model and leaves an empty shell.

Handy for replacing the entire skeleton. You can BUILD then DESTROY as often as you wish !

 

NORMALISE

 

This is quite a useful tool. It normalises a skeleton. It sets every joints initial rotation to 0,0,0 . This is good practise because it allows you to share animations between models much more easily. It also means that it will be easier to define realistic joint axis for the Ragdoll & IKtool physics engine.

WARNING : DESTRUCTIVE This will delete all animation keys.

 

Joint Tools

The Joint Tools allows you to create, insert and delete joints. New joints are created at the position of their parent and so may not be immediately visible. New joints are auto-selected at creation so you just need to switch to MOVE mode to place it. Once in Move mode you can continue creating new joints immediately moving them into position.

 

CREATE

Creates a new Joint. If it is the first joint this will be the Master Joint.

The Master Joint will always be created initially at 0,0,0.

 You can modify the position of the Master Joint if required.

Subsequent ‘creates’ will create a child joint at the selected joints position.

 The new joint is automatically selected ready for placing.

You can add/insert joints to existing skeletons with animation keys without disturbing the existing animation. Key positions are recalculated automatically

 

INSERT

            Inserts a joint halfway point between the currently selected joint and its parent.

You can insert joints into existing skeletons with animation keys without disturbing the existing animation. The animation keys are automatically adjusted.

 

DELETE

            Deletes the currently selected joint. This joints parent becomes the selected joint.

You can delete joints from existing skeletons with animation keys – of course the animation is deleted as well !!! Do not delete joints that have animation keys or vertex assigned unless you are sure.

 

 

 

It is always desirable, if you are going to use your model in Blitz3d, that it is facing Z positive, but if not, PaceMaker allows you to create a skeleton in any of the 4 orientations. Using this option makes sure that your skeleton is as ‘normalised’ as possible i.e. all joints will have an initial rotation of 0,0,0 except for the master joint that will have the same rotation as the mesh. You can also create your skeleton in any orientation and then just rotate it to the desired orientation.

 If you have rotated any of your joints while moving them into position, it is a good idea to run the ‘Normalise’ operation to reset all joints initial rotation to 0,0,0.

Having an initial rotation of 0,0,0 will allow you to  share your animation between models. It is also much easier to set your model up for  Physics if your joints local axis align more or less with global axis.

 

Physics

 

The Physics tab is where you can set joint types and limits. The settings that you make here will affect how your model moves when you enable the Physics based IK.

You can also create motion captured animation sequences using the Impact or IK Session recording tools.

The joint types available are :

HINGE – this is the most common of the joint types when creating a rag-doll type setup. You can create a rag-doll using just this joint type. The limits of movement are defined by HiStop and LoStop. The Axis of the hinge is defined by the Axis check boxes,

In hinge joints only AXIS 1 is used.

BALL – this joint allows complete freedom of movement. The Axis and Hi/Lo stop settings  do not have any effect on a Ball joint.

UNIVERSAL – a Universal joint can be useful for e.g shoulders and hips. A Univesal joint has 2 Axis but only the first Axis can be limited. Because of this it is better to use 2 Hinge joints in series. Future releases may include limits for the second axis.

FIXED – This joint type is as its name suggests id fixed. No movement is allowed.

This joint is handy for  e.g temporarily disabling movement on a hinge joint – or just any joint that you want to be fixed.  A fixed joint is the same as a hinge joint with limits set to 0.

 

You will probably only ever have to use the hinge joint when creating your physics “rag-doll” model but future releases will be including more joint types and settings.

Joint Limits

To see the Axis and limits of the selected joint check the “Joint Limits” checkbox.

The black line represents  Axis 1. The yellow line perpendicular to the axis represents the joints starting rotation i.e. Zero. The Dark red line represents the Hi Limit while the lighter red line represents the Lo Limit. If the Hi or Lo limit is zero then the line will not display. As you change the values of the Hi and Lo limits you will see the lines changing in accordance. To set a joint limit back to zero click on the “0” button next to the required value.

 

Note: Joint limits are only displayed for Hinge and Universal Joints Axis 1. Ball joints and Fixed joint have no axis or limit settings - yet.

 

You can test your setting at any time using the “IK” button. Anchor the parent of the joint you are testing for best results. To anchor a joint use Mouse button 3 (Middle). If you do not have a middle mouse button you can use Key “3  instead.

 

Impact Motion Capture

You can set an initial force and torque on any joint. Click “TEST” to see the results of the impact on the selected joint. You can pose the figure before to get a starting position. To pose the model use the freeform tools or the IK tool. Use the “COPY” button to copy a pose and the “Paste” button to paste a pose. This is particularly useful because after testing the model reverts back to the reference position.

You can record the results of the impact as keyframed animation. Set your pose and force and torque values and then click the “RECORD” button.

Set the “Max recording in seconds” to a desired value. It is better to set this value higher than the time you actually wish to record. You can stop the recording at any time by clicking the “STOP” button. You will then be transferred to the animation tab to review the recording as keyframed animation.

The “Keyframe Resolution” will set the frequency of captured keyframes. The default value of 1 means that every frame will be a keyframe , a setting of 2 will make every second frame a keyframe , a setting of 4 will make every fourth frame a keyframe etc.

If you are planning on editing the resulting animation then it is better to set the resolution to a higher value so that you have space between the keyframes. It is then much easier to edit as there are fewer keyframes to adjust.  You file size will also be smaller!

The overall “Frames per Second” setting determines the overall framerate of the animation.  If you record 2 seconds at 24 fps then you will record   48 frames of animation. How many of these frames are keyframes is decided by the Keyframe resolution setting.

Check “In Place” to record the animation In Place. In this mode only the Y Axis (Height) values will be recorded for the Master Joint. Movement in the X and Z axis can then be controlled by the programmer at run-time.

You can modify the global values for, Gravity, Bounce and Friction using the appropriate spinner. Click on the “D” button beside each value to reset to default.

 

IK Session Recording

You can also record an IK session. This act in the same way as the impact recorder but without the impact and the physics model is adjusted to IK.

When you click on “Rec IK” the recording goes into PAUSE mode. You can then choose your transform mode, select a joint, set up anchors or any other operation. Once you are ready to proceed hit the SPACE bar. The SPACE bar toggles pause/record.

Manipulate the model as required.

 Hit SPACE to pause at any time to change joint or mode or to anchor/un-anchor any joints.

Hit SPACE to continue recording or STOP to end recording.

Note – the recording will stop automatically when the “Max Recording in secs” value is reached.

You will then be transferred to the animation tab to review the recording as keyframed animation.

 

Using the IK Tool

 

You can enable the IK tool at any time in Animation or Physics mode.

To switch from free form to IK click the “IK” button.

While in IK mode you can manipulate the joints in the same way as in freeform.

Rotate mode applies Torque – Move mode applies force.

The amount of force or Torque is determined by the speed of the mouse movement.

The faster you move the mouse – the stronger the force or torque will be.

You can anchor/ un-anchor any joint at any time using the MB3 (or KEY 3 with mouseover).

It is quite common to anchor the feet or ankles when you don’t want your model to move its feet or to anchor a shoulder when you just want to move the lower arm etc.

 

You can switch between free-form animation and IK at any time, however, you must be aware that if, in free-form, you rotate or position a joint beyond its limits, when you scroll through the animation with IK enabled and it reaches that position, the joint in question will be snapped back to its limit. If this is the case then it is better to kill the IK and then scroll through to preview the animation. You can re-enable IK at any time.

This is also true if you enable IK when your model is in a pose that places one or more joints outside of its limits. The offending joint/s will snap back to its limits when enabling the IK tool.

Collisions

A collision plane is created automatically when enabling IK at Y=0 position. You can disable this feature by un-checking the “Collision Plane” checkbox.

Collisions with the plane are calculated on the joints themselves the radius of which is a grid square * 0.1

Owing to this you may see parts of your model penetrating the collision plane. You can create extra joints at strategic points to prevent this. In future versions there will be an option to adjust the radius of the collision spheres..

 

When the collision plane is enabled and you invoke the IK tool you may see your model rise slightly. This is due to the fact that the collision plane is “pushing” the joints up that are semi-penetrating it. The amount of push is proportional to the amount of penetration.

You can avoid this by moving the offending feet joints up slightly so that they do not penetrate the collision plane. If you don’t need the feet to move you can disable the collision plane and just anchor the feet.

 

NOTE: Joints can be anchored/un-anchored at any time – with or without IK enabled. They ,of course, only become anchored when IK is invoked.

Anchored joints are displayed in GREY.

 

The IK Tool is based on real-world physics and expects to work with real-world sized items. If you are using VERY large or VERY small models you may have problems with the stability of the Physics given the distance between joint and other factors I have done my best to scale and compensate as much as possible to allow different sized models to behave in a similar fashion, however with extremely large or small  models you may have problems.

For best results try to keep the size of model’s used between 1 and 50 Blitz units of height width or depth.

 

ADJUST MESH

 

PaceMaker has an ‘Adjust Mesh’ tool that is used to orientate a mesh – normally after importing a .3ds or .x static mesh. An imported static mesh can be correctly orientated before adding a skeleton using this tool. Use of this tool destroys all bone and animation data so it is only to be used on an ‘empty’ mesh.

 

SHORTCUT KEYS

 

Mouse Button 1 click – KEY 1

Mouse Button 2 click – KEY 2

Mouse Button 3 click – KEY 3

 

Mouse Button 1 Down – Left Cursor

Mouse Button 2 Down – Right Cursor

Mouse Button 3 Down – Down Cursor

 

Camera Mode – F1

Rotate Mode – F2

Move Mode – F3

 

Toggle Grid – F5

Toggle Plane – F6

 

Enter – Bring Mode buttons to front if hidden.

Views : 3D perspective and 2D Orthographic

 

Toggle 3D / 2D view – KEYPAD ‘0’

View Front -  KEYPAD ‘8’

View Back -  KEYPAD ‘2’

View Left – KEYPAD  ‘4’

View Right – KEYPAD ‘6’

View Top – KEYPAD  ‘5’

View Bottom KEYPAD ’3’

 

Toggle Camera AutoPan selected joint – KEYPAD ‘DEL

 

+ Zoom Camera in 2d mode – KEYPAD ’ +’

 - Zoom   Camera in 2d mode – KEYPAD ‘ –

 

 

Differences between 3D view and 2D view

In 3D perspective mode Mouse button 1 controls the camera rotation. In 2D orthographic mode there is no rotation and so the PAN function is promoted from MB3  to MB1.

You can auto-pan the view to the selected joint by selecting the “Auto Pan” checkbox.

 

Credits

 

BlitzUI GUI Library written by Chris Fuller.

‘Dwarf’, ‘Robot’, ‘Ninja’, ‘Zombie’, ‘Turtle’ and MiB  .b3d animated models are by Psionic.

Physics Engine – Open Dynamics Engine http://www.ode.org via JV-ODE physics wrapper for Blitz3d

PaceMaker conceived, designed and programmed by Ricky  Smith.

 

Please send feedback, comments or questions to rsmith@unilink.co.uk

 

http://www,gOddesey.com/pacemaker.htm

 

 

LICENSE

 

 

This software, including documentation, source code, object

code and/or additional materials (the "Software") is owned

by gOddysey Software.

By registering you obtain the non-exclusive,

non-transferable, royalty free right to use the software.

 

LIMITED WARRANTY

 

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO

ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR

CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS

SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF,

EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY

OF SUCH DAMAGE.

 

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY

WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR

PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS

PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND

DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE,

SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.