Bulge definition shapes

The character builder feature (found in the Windows Deformation control, under Frame Type: CHARACTER BUILDER) allows you to create muscle bulges on the geometry around skeleton bones. The shape of these muscle bulges can be freely defined using the Section editor in the CHARACTER BUILDER frame type of the deformation control window.

You can define any number of bulge shapes. The bulge definition shapes are not stored in the wire file, but in an ASCII file called bulge_types which resides in your misc_data directory of your current project. The advantage of storing these bulge shapes in a separate file outside of your wire file is that you can build a catalogue of bulge shapes, and reuse them from wire file to wire file, and even from project to project (you can copy the bulge_types file from one project directory to another).

Caution!

Be careful when you modify or delete bulge definitions in the interactive package. When you "assign attributes" to a skeleton joint, one of the attributes is the bulge definition. The skeleton joint does not store the whole bulge definition, but rather the bulge definition code. Thus if you have several wire files that use the same bulge definition, and you modify the bulge definition in the interactive package, you are actually modifying the bulge definition for all wire files that reference the bulge code for that bulge definition. In particular, if you delete a bulge definition in Alias, you may be deleting a bulge definition not only used by a skeleton joint in your current Alias session, but also in any other wire file you may have previously saved that used that bulge code. In Alias, if you attempt to delete a bulge definition, a confirm box will appear warning you to this effect.

The bulge_types file format

Each bulge shown in the Bulge Definitions Lister in the Deformation Control window is defined in the bulge_types file in the misc_data directory.

If this file doesn't exist, Alias will copy a default version of the file to the misc_data directory.

A bulge definition consists of a sequence of keywords (followed by a colon) followed by values related to the keyword.

A bulge definition is complete when it contains one "Initialization" section, at least one "Section Definition" per Initialization, and at least two "Keypoint Definitions" per Section Definition.

Any incomplete or poorly defined bulge definition will be skipped and omitted from the Bulge Definition Lister entries. The errlog will contain a record of bulges not added to the Lister.

Bulge Initialization:

The beginning of a bulge definition is marked by a line containing two keywords: "bulge" and "code".

>> bulge: "bulge name" code: unique_id The "bulge name" string must be enclosed in double quotes. Bulge names may contain spaces as well as most other standard characters (ASCII range 32 to 126) except the double quote.

The unique_id value is an integer that uniquely identifies this bulge in the bulge_types file. If the bulge file contains a definition that uses a bulge code already used by another definition, a new and unique code will be assigned to that bulge definition and a message is appended to the errlog. The bulge code must be an integer larger than or equal to 0.

Section Definition:

The next part of the file defines how bulges should appear at various locations or "sections" around the bone.

>> angle: 0 The Section Definition contains the keyword "angle" followed a degree value, locating the profile curve (defined by the keypoint definitions that follow) around the bone at the given angle. The angle value must be an integer between 0 and 360.

Note: A bulge must contain at least one Section Definition.

Keypoint Definition:

The next lines of the section definition are floating point triplets that locate "keypoints" in the section's profile curve.

>> 0.000000 0.000000 0.000000 >> 0.291667 0.291667 0.012503 >> 0.629167 0.629167 0.120864 >> 1.000000 0.954167 0.012503 The first value is the location of the keypoint along the bone. In Alias, this is represented by the circle icon. It is this value that determines where the bulging clusters are positioned along the length of the bone. A value of "0.0" represents the upper endpoint of the bone while a "1.0" represents the lower endpoint.

The second and third values of a keypoint determine the overall shape of the bulge. The two values determine the direction and amount of bulge contributed at that keypoint. In Alias, these two values represent the (x, y) co-ordinate of the X icon.

Note that if the first and second value of a keypoint are not the same, you will get bulging occurring not only _away_ from the bone, but also _along_ the bone in a non-perpendicular direction to the bone.

RESTRICTIONS:

Example:

A sample bulge definition (from the default bulge_types file) is as follows:

>> bulge: "Generic" code: 5 >> angle: 0 >> 0.000000 0.000000 0.008335 >> 0.500000 0.500000 0.250000 >> 1.000000 1.000000 0.000000 >> >> angle: 180 >> 0.000000 0.000000 0.000000 >> 1.000000 1.000000 0.000000 Note: Sections in the same bulge definition do not have to have the same number of Keypoint Definitions.





[email protected]

Copyright © 1998, Alias|Wavefront, a Silicon Graphics Company. All rights reserved.