BAG_ACK Manual                

 
 

 Copyright © BrokeAss Games 2003 - 2008 All Rights Reserved.

 

 

Introduction. 2

Using the Example. 2

Files. 2

Source. 2

Tools. 2

Credits. 2

Known Issues. 2

Upcoming Features (Wishlist) 3

 

Modifications. 3

Model-Level Of Detail 3

Model-Removing parts. 3

Model-Adding parts. 4

Model-Exporting DTS. 5

Exporting DTS-Bounds and RigBox. 5

Exporting DTS-SetSKinName Compatibility. 5

Exporter 5

Saving. 5

.cfg  File. 5

Model-Converting a custom character 6

Model-Mesh List 6

Texturing- Skinning. 6

Texturing- Resolution. 6

Resolution-Differences. 6

UV Maps- Body, Head, Eyes, Mouth. 6

UV Maps-Clothing. 6

Animations-Blends(threads) vs non-blends. 7

Animations-Exporting DSQs. 7

Animations-Exporting DSQs-Bounds and RigBox. 7

Animations-Triggers. 7

Animations-Adding Triggers: 7

Animations-Exporter 8

.cfg  File. 8

Animations-Creating New Animations. 8

Animations-Sequence List 8

Animations-Node List 8

Animations-Viewing in ShowTools. 8

 

Advanced. 8

Using the full capabilities of the kit 8

Engine-Mesh hiding. 8

Engine-maxDSQs. 9

Engine-Server Side Melee System.. 9

Engine-MountEquipment 9

Script-SetArmThread per weapon. 9

Script-SetSkinName per group. 9

GUIs-ACK Examples. 9

 


 

Introduction

Welcome to the BrokeAss Games Advanced Character Kit Manual. This kit contains numerous source files, including texture and mesh art, animations in modifiable source and Torque-ready .dsqs. The system is built on an advanced skeleton that is BVH-based (mocap) but also Torque complaint, meaning it contains all the standard nodes Torque expects to see on a character skeleton plus some extra to enhance functionality in your Torque project.

 

The manual is divided into three sections to make it easy to follow. The Introduction section covers the basics and is a good place to start. In addition to this manual, you can find out more information on the kit, get specific questions answered, and get help in the BrokeAss Games Forums: http://www.brokeassgames.com/Community/index.php

 

Using the Example

 

Drag the Example directory from your Advanced Character Kit over the Example directory of Torque 1.5.2 and launch starter.fps.bat to access the ACK Demo GUIs. Once in a mission, use M, comma, period and forward slash (m, comma, period, /, and enter) to access the GUIs. The Engine directory copied over the Engine directory to include ACK engine source in your project.

 

Note: We recommend Winmerge to compare source code and Torsion for Scripts.

 

Files

The files included have been organized with ease of use in mind. For this reason, a few .DSQs and textures may be repeated within the theme_Example builds. Source File Types include:

.ms3d, .ugh, .cr2, .obj, .psd, .jpg.

 

Source

Here, you will find Source Art builds for each theme_Example character, and master builds of the character with and without LODs. Additionally, in the Source folder, you will find master builds of the entire clothing stack. The clothing stacks are sex-specific, as the female has additional clothing pieces such as bikini top and bottom, skirts, and a female blouse that were not appropriate for the male. Characters can be modified to use more/less or new pieces of clothing (See: Model-Adding parts p. 4). In the Textures folder you will find the required .jpg textures for that sex, as well as a PSD folder containing the texture art source files, and a Map folder containing a copy of each UV map.

 

Tools

Minimum required applications needed to modify, or export the ACK characters or their animations:

Milkshape3D (version 1.7.10 recommended).

Photoshop is required to open texture source files.

Recommended applications:

Fragmotion v 0.8.7, Poser 5.

 

Credits

Jondo, Ari, Moe, Rex

Thanks to:

PhilC, ChrisR, Fafhrd and Mr. Bones

 

Known Issues

·                     Some of the UV map co-ordinates are not optimum.

·                     Maximum group number in MS3D (255) is nearly reached by a master build.

·                     Texture pathing may need to be reassigned in some source files to display properly. This issue does not effect exporting, even if not re-pathed.

 

Upcoming Features (Wishlist)

TGEA Support (engine, shader source art)

High-poly Zbrush Source for Normal Maps

Optimized UV maps

Lighting issue on MountEquipment objects.

 

Modifications

This is a broad section, covering many ways an owner can modify the ACK. Its recommended new owners read the section in entirety before attempting to mod the characters. It’s a good practice to back up all your source files before modifying them, and as you go. It may save you from lost work, or having to re-download your kit.

 

Model-Level Of Detail

Each mesh group has 4 Levels of Detail. They have been set up to look as smooth as possible in Torque, but owners can modify the number scheme of the LODs to suit their taste. All groups must end with a number (bound and rigbox should be: Bounds0, RigBox0). The number represents the character size in pixels in game.

 

ACK LODs:

Highest48 (Any time a character is closer than 48 pixels tall, it will show the top LOD.)

High-middle16

Low-middle8

Low2

 

When you add or remove an element to the character (body parts, clothing, armor, wings, etc) you must add 4 LODs PER element for it to work with the rest of the system.

 

Note on LODs: Due to the maximum group limit in Milkshape (255) we chose to have only 4 levels of detail per group. This allows for more clothing pieces, but still offers functional LODs.

 

Model-Removing parts

One of the easiest mods, is to remove groups (body parts and/or clothing) that your character may not need. This is ideal for owners who have not implemented mesh hiding in the engine, but wish to get a specific look for their character.

 

Open a source file containing the character you want to start with. Its recommended you start with a master build, since it contains all the mesh elements and is not missing any geometry.

 

1. Make a list of each group name you want to delete. Be sure to scroll through the group list and delete each LOD mesh for the element you are removing.

 

Example: If you are removing robe1 from the character you must delete the following groups:

 

Base_robe1_one48

Base_robe1_one16

Base_robe1_one8

Base_robe1_one2

 

Be sure not to miss any of the LODs for the element you are removing.

 

2. Delete the material for each element you are removing. (This means you can also removing the texture file from your player directory for any removed elements.)

 

You’re done removing parts! Follow the DTS Export instructions to create your new character. (See: Model-Exporting DTS p. 5.)

 

Model-Adding parts

To add a new mesh to the character, such as clothing, follow these steps:

Setting up your new object:

 

1.       Make sure your object has a UV map and a material setting calling its texture.

 

2.       Using a reference shape (like the nude character, or a single piece of clothing from the kit), scale your new object and align it where you want it to be. Remove any skeleton data and save a file of just your new piece.

 

3.       Once aligned and textured its safe to create lower LOD copies, either by hand or a 3rd party application.

 

4.       Place all the LODs of your piece in the identical position, so they are perfectly on top of each other. Name each LOD to follow the ACK standard (48,16, 8, 2). Do not forget to use the mesh prefix and suffix that the other groups use, this is essential later for mesh hiding. Names must look like: 

 

base_newpeice_one48

base_newpeice_one16

base_newpeice_one8

base_newpeice_one2

 

5.       Use import or merge (if the object is set up properly to fit already) and bring in your new    piece.

 

6.       Rig the new objects and weight as desired.

 

Note: It is recommended that you keep your weight values to no greater than three points of precision and total value per vertex must equal 100! (1.0, full). We recommend Fragmotion for weighting, but the kit is designed around exporting via DTSPlus (v 2.92) in MS3D.

 

You’re done adding parts! Follow the Export instructions to create your new character. (See: Model-Exporting DTS p. 5.)

 


Model-Exporting DTS

 

 

 

Exporting DTS-Bounds and RigBox

In order for any exported character to work with the ACK system, they must share some geometry with the existing .dsqs.

This geometry must be rigged to at least one node and be identical in the DSQ and the DTS. Meet the Rigbox0.

A simple shape that must be rigged to the ‘hip’ of any ACK character you export. Additionally, geometry was added

for the Bounds, to specify its size. Bounds0 is also required for each character.

 

1.       Merge in the file boundsANDrigbox.ms3d if they are not already present in your build.

2.       Select the Hip node and select RigBox0

3.       Assign it to the Hip on the Joints tab.

 

Exporting DTS-SetSKinName Compatibility

Make sure each group of your character is assigned to a material that calls a texture named using the base.naming convention.

 

All textures called should follow this example:

 

base.meshname.jpg

 

You’re done prepping your character for export! Don’t forget to save!

 

Exporter

This kit relies heavily on the one of the best, easiest shape exporters for Torque known to man: TorqueDTSPlus By Chris Robinson. Version 2.92 or higher has been enhanced by Chris to work best with ACK by handling group edges and UV Seams, well… seamlessly.

 

Be sure you start with the following set up in the exporter:

 

·                     Options/Scale: 1.4

·                     “Use .cfg File” must be checked

·                     “Copy Textures” can be used to insure you have all of the art assets that the model calls in your export folder.

 

Nothing else is mandatory in the exporter settings, but you should see a list of your meshgroups and materials at top.

 

Saving

It is crucial to save your work just prior to opening the Export/Torque DTS Plus dialog as this will inevitably unweld your character. Fear not! Just save your work first. Once your export is completed, close MS3D without saving and your character will still be smooth and welded. When you export, and the unwelding occurs, it only happens in MS3D, not in the DTS you exported. If you see unintentionally unwelded meshes after export, go back to your save and individually weld any groups that have issues. You may also need to reassign a group to a ‘smoothing group’.

 

.cfg  File

Always export to a directory that contains a player.cfg as provided in the kit. To properly utilize the .cfg, you must save your export to that directory and simply type: “player” (or the name of the .cfg file - without the quotes) into the file name field.

 


Model-Converting a custom character

Its quite easy to use the provided source to create or convert an existing character mesh to work with the ACK system.

 

1.       Open the copy of the Skeleton provided and import or merge in your scaled, aligned and texture mapped character mesh. Meshes must be in a T-Pose, with hands flat with palms down to rig properly to the skeleton. (Its best if you choose a skeleton file WITH an animation sequence, this will help you test rigging/weighting).

 

2.       Rig and weight each vertex until you are pleased with the result.

 

3.       Merge in the boundsANDrigbox unless a Bounds0 and RigBox0 are already present.

 

4.       Rig the RigBox0 to the hip node.

 

You’re done converting your character! Follow the DTS export instructions.

 

 

Model-Mesh List (See: meshlist)

 

Texturing- Skinning

Use the provided UV MAP images for each mesh when creating new textures. It’s a good idea to give new textures a name derived from the original name.

 

Example:

You are reskinning the apron. Its texture is called base.apron.jpg. Once you have made a new skin, save it as a name such as: BBQ.apron.jpg. Place it in the ACK (or player directory) and use SetSkinName to call it. (See: Script-SetSkinName per group p. 9.)

 

Texturing- Resolution

Textures provided have 1024x1024 source and have been exported as either 512x512 or 1024x1024 .jpgs for the final game art. It is possible to change the resolution to any resolution so long as it is symmetrical and the dimensions are in multiples of two.

 

Resolution-Differences

The body textures are best at 1024x1024. Any lower and jpg artifacts can be seen on the UV seams. This is only a slight issue for some type of projects, but for those going for highest quality, keep this in mind. All other textures (including head, eyes, mouth and the clothing pieces) will work at lower resolutions with no issues other than quality loss.

 

UV Maps- Body, Head, Eyes, Mouth

The ACK characters have been set up to have swappable eyes and mouth textures. This is done by allowing a separate material for each. Using setSkinName per group(See: Script-SetSkinName per group p. 9.) you can call another head file for the eyes or mouth to create more variation. However, if wish cut down on render passes, you can re-assign all eyes and head groups to use the head material.

 

UV Maps-Clothing

The clothing stack contains 25-30 pieces depending on whether it is male or female (the female has a few extra pieces). Each of these pieces has a separate material in order to take advantage of setSkinName, which allows for swapping different textures on the fly.

 

Note: Included in this kit is script to make setSkinName work per group, instead of per player. This allows you to individually swap textures for all groups, or just specific ones. (See: Script-SetSkinName per group p. 9.)

 

Animations-Blends(threads) vs non-blends

Animations can be either partial, like arms only, called blends (or “armthreads” in Torque). Or they can be whole skeleton animations, called non-blends, non-threads, (or Actionthreads in Torque). Unless specified, animations are most often whole skeleton sequences. Exceptions to this rule are “Looks” which are often arm only (with minor body movement), made to blend over other animations, such as “Runs” or “Roots”. (See: Script-SetSkinName per group p.9.)

 

Animations-Exporting DSQs

 

Animations-Exporting DSQs-Bounds and RigBox

In order for an animation to work with the ACK system, it must share some geometry with the existing .dsqs and .dts’s. This geometry must be rigged to at least one node and be identical in the DSQ and the DTS. Meet the Rigbox0. A simple shape that must be rigged to the ‘hip’ of any ACK animation you export. Additionally, geometry was added for the Bounds, to specify its size. Bounds0 is also required for each animation.

 

1. Merge in the file boundsANDrigbox.ms3d if they are not already present in your build.

2. Select the Hip node and select RigBox0

3. Assign it to the Hip on the Joints tab.

 

Animations-Triggers

Trigger data is used to produce the 'footprint' decals, the 'footstep' sounds, and also the 'footpuff' particle systems you see while the player avatar, or an AI, runs on the terrain and/or DIFF formated interiors inside a Torque mission.  This trigger data is embedded within each specific DSQ sequence needing the effect inside the engine and is handled by each specific platform's exporter generating the DSQ files.

 

Each DSQ sequence can have up to 32 separate trigger 'states', while the stock SDK only allows for states 1:+/- and 2:+/-, currently which control the foot* effect behaviors.  State 1 is the Left Foot event and State 2 is the Right Foot event.  The engine wants to see the 'on' data within the sequence and will take care of applying the 'off' state.  So, we are only looking at applying the positive state values to any triggers we need to produce, for existing SDK vanilla code.  If any additional triggers are coded in for effects, these willl need their own specific values.  The following steps only apply to adding the footprintDECAL, footstepSOUND, and footpuffPARTICLE triggers to a sequence allowing them to appear once inside the engine.  Sequences without trigger data will not provide the effects.  The trigger data is embedded within a keyframe of a sequence.  One trigger state will control all 3 effects together, on a per foot basis.

 

It is important to know a little about the FOOT* event effects before deciding which keyframe to apply the trigger data.  Inside the Player.cs script, are some codeblocks for defining the decal, sounds, & particle systems.  For deciding the location of where on the terrain or DIFF surface to place the effect, the blank parameter is used to offset the distance from the player's

 

Animations-Adding Triggers:

 

1.       Open a Ms3D file needing trigger data.

 

2.       Call up the DTSPlus! exporter dialog and select the sequence, hit EDIT.

 

3.       Add, Edit and Delete each trigger in as desired.

 

4.   Follow the Animations-Export instructions.


Animations-Exporter

 

 

Be sure you start with the following set up in the exporter:

 

·                     Options/Scale: 1.4

·                     “Use .cfg File” must be checked

·                     “Copy Textures” can be used to insure you have all of the art assets that the model calls in your export folder. This is optional.

 

Nothing else is mandatory in the exporter settings, but you should see a list of your meshgroups and materials at top.

 

.cfg  File

Always export to a directory that contains a player.cfg as provided in the kit. To properly utilize the .cfg, you must save your export to that directory and simply type: “player” (or the name of the .cfg file - without the quotes) into the file name field.

 

Animations-Creating New Animations

Open a source copy of the skeleton or an existing animation and animate a new sequence. Add a rig box and bounds (See: Animations-Exporting DSQs-Bounds and RigBox p. 7) and follow the instructions for DSQ export.

 

Animations-Sequence List (See:animlist)

 

Animations-Node List (See: nodelist )

 

Animations-Viewing in ShowTools

Project directories need to be set up properly to take full advantage of Torque ShowTools. We have included a TorqueShowTools directory to make easier. Be sure to install your ACK source to a folder location that contains no spaces in the name. This is essential to load the dts and dsqs with one click in ShowTools. Create a project directory in Showtools pointing at BAG_ACK_Male/source/male/ TorqueShowTools. Use “Load DTS & DSQ” and choose nudemale.dts. The 80+ animations will automatically load. This is a huge timesaver when testing the animations in Show tools.

Advanced

This section covers the advanced character (full clothing stack) and the engine/script changes demonstrated in the Example…

 

Using the full capabilities of the kit

The advanced build of the character requires script and engine changes to take full advantage of its potential. Each of the demonstrated features are documented in this section, but the ACK characters are capable of even more.

 

Engine-Mesh hiding

The original code and resource can be found on the GarageGames website here:

http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=5421

Used to toggle clothing items on and off, as well as hide body parts under the clothing.

 

 

Engine-maxDSQs

The original code and resource can be found on the GarageGames website here: http://www.garagegames.com/mg/forums/result.thread.php?qt=25552

These changes are required to use a larger amount of .dsqs in Torque.

 

Engine-Server Side Melee System

The original code and resource can be found on the GarageGames website here: http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=5377

The mod is included to properly demonstrate the scope of melee animations that are included in the kit. This mod also adds setArmthreadPlayOnce and setArmThreadTransitionOnce functions that allow the engine to play blend animations (similar to look blends) over existing animations.

It is important to remember when using these animations that they are relative to the reference frame of the blend animation to the root animation.  If a blend is played via setArmthreadPlayOnce or setArmThreadTransitionOnce and the character is not using the animation that matches the reference frame of the blend (in this pack, root is always used as the reference frame), unexpected results may occur.

 

Engine-MountEquipment

The original code and resource can be found on the GarageGames website here: http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=10304

Used for hair and other such shapes that rig to only one node, such as helmets, beards, bandoleers.

 

Script-SetArmThread per weapon

The original code and resource can be found on the GarageGames website here: http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=5377

The Server Side Melee System includes the capability for a custom look animation for each weapon.

Due to the numerous attack blends, weapon looks and emotes, the character’s arms are fixed in a Root position (arms at side). This allows for smooth blending of arm threads over the action threads, such as run. SetArmThread per weapon is utilized to make sure the arms are in a “gun grip” position when holding a gun type weapon.

 

 

Script-SetSkinName per group

The original code and resource can be found on the GarageGames website here: http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=7154

This code will enhance how SetSkinName works to operate at a per group level, or per player level, instead of at a player level only. This allows for the swapping of textures for each clothing piece, or the body parts, separately.

 

GUIs-ACK Examples

The included GUI’s are for demo purposes only. They display the engine and script functionality for the features included in the kit, such as: Mesh hiding, Skin Swapping, Animation blending, and MountEquipment.

 

BAG_ACK Manual - Copyright © BrokeAss Games 2003 - 2008 All Rights Reserved.