Making high quality skin animated creations using a Minimalist Approach
Opening and Saving Files
There are 2 different types of files you can open in Seamless3d,
standard x3d vrml clasic/vrml97 files (.x3dv;.x3dvz;.wrl) and smls files (.smls). Seamless files are text files and are coded the same as vrml files
using vrml protocol but smls files are made with a different extension
so that there is a way to define seamless specific files (files for editing)
differently to the end product. If you move the mouse to the top left corner
of the 3d window or press press f10 to open the main menu and then select
file you can then select:
open to open a smls file for editing.
save to save the current smls file that is open
saveAs to save the current smls file with a different name.
new to create a brand new smls file.
importSkinAnim can be used for importing skin animated models that use Bitmanagement/Blaxxun contact's setByVertexTransform function. Seamless files generated with genContactSBVT and Blaxxun Avatar Studio wrl files should both be able to be imported with this feature if the files have not been modified (though many will import if they have been modified). Some key fields and the IndexedfaceSet will be converted to a Seamless node and Part nodes for all the parts in the model.
importFrom and exportTo applies only to when a Part node is currently selected. These two commands can be used for saving and loading triangles (in the form of Shape/IndexedFaceSet nodes) to and from (x3dv;.x3dvz;.wrl) files.
Nodes and Fields
For X3D/VRML, nodes can be thought of as building blocks. They are
used for constructing X3D/VRML scenes.
There are 55 VRML 97 standard nodes (x3d has many more) but not all
of these are needed to make 3d worlds and models. Not all of the VRML 97
nodes will function in Seamless3d but all VRML 97 nodes except for the
PixelTexture node can at least be edited in Seamless3d. Seamless however
supports more than 55 nodes because it also supports 42 of it's own special
"seamless nodes" specifically designed for editing and generating x3d shapes
and for animation as well as a few new X3D nodes. In Seamless3d II the
nodes are represented in the scene tree window by icons ( images). In Seamless3d
there is always one and only one node selected at any one time. A node
is selected by clicking on the node's icon in the scene tree window. When
a node's icon is clicked on, a window that contains the fields for the
node will open. This window is called the node's control panel. A node
can contain none or any amount of fields. Fields are settings that control
how a node will function. Fields can also be said to be the properties
of a node.
The Scene Tree Window
How Different Field Types are Displayed in the Control Panel.
All fields have a name and a value. Fields in the control panel show the names for the fields to the left and the values to the right.
for example:
translation ![]()
![]()
0 -.05 .02
we see the name of the field "translation" and its value 0 -.05 .02
A value does not have to mean one number a field like the one shown
above has 3 components (3 numbers) for it's value
Values can usually be directly written in by clicking on the value
and then using the keyboard.
Fields depending on the type can be accompanied by up-down
buttons which can also be used to control the value of the fields.
The Different Field Types
SFBool
The values for a SFBool field types are shown in check
boxes. They can be either checked
TRUE or unchecked
FALSE.
Push buttons
may be used
for this type of field when only a push button is wanted to control this
field.
Example of a SFBool field displayed in the control panel:
clearCycle
SFColor
SFColor values are made up of 3 floating point numbers which represent
the 3 respective red green and blue components. Each number is legal when
its within the inclusive range of 0 to 1. Fractions of 1 make it possible
to represent any color the eye can see.
Example of a SFColor field displayed in the control panel:
color ![]()
![]()
.85 .37 0
SFInt32
SFInt32 values are made up of one integer number. This means they are
always a whole number (do not contain fractions of a number)
Example of a SFInt32 field displayed in the control panel:
staves
8
SFFloat
SFFloat values are made up of one floating point number. SFFloats are different to SFInt32 fields in that fractions can be expressed using a decimal point.
Example of a SFFloat field displayed in the control panel:
xDistance
4.5
SFVec3f
SFVec3f values are made up of 3 components (3 floating point numbers)
which represent the 3 respective dimensions x, y and z.
Example of a SFVec3f field displayed in the control panel:
position ![]()
![]()
45.576 .3778 -70.745
SFVec2f
SFVec2f values are made up of 2 components (2 floating point numbers)
which represent the 2 respective dimensions x and y.
Example of a SFVec3f field displayed in the control panel:
slide![]()
0 .5
SFRotation
SFRotation values are made up of 4 components (4 floating point
numbers) which represent the orientation x, y and z and the angle.
One single SFRotation value can rotate a shape to any angle on any axis.
Example of a SFRotation field displayed in the control panel:
orientation ![]()
![]()
1 0 0 -1.570796
SFString
SFString values can be any number of letters or characters "strung"
together to make a "string" of characters.
Example of a SFString field displayed in the control panel:
image halo.png
SFTime
SFTime values are much the same as SFFloat values except
they can contain more accurate values for the purpose of representing accurate
time over a long range.
The difference between SF and MF fields
The SF you see in field types that begin with SF stands for Single Field
The MF you see in field types that begin with MF stands for Multiple
Field
In the control panel Multiple Fields are controlled by two extra
up-down buttons. One is the index the other the count control. The count
button is used to control how many values a multiple field shall contain
and the index field is used to select one of the values in the multiple
field.
Seamless allows several MF fields to share one index button and one
count button. This allows MF fields that are related to be synchronized.
This makes related fields easier to use and reduce the chance of human
made mistakes.
So that a group of fields can be more easily distinguished as a group the background color for a group of related multiple fields is colored differently to the color of neighbouring fields that are out side the group.
Example of two multiple fields sharing index and count up-down buttons
and grouped by a common background color:
| index |
count |
| curve | |
| distance |
SFNode and MFNode Fields
SFNode and MFNode fields are not nodes but fields that can contain nodes. Just like in concept a string of characters can be said to be a value for a SFString field the same way a single floating point number can be said to be a value for a SFFloat so to can a node be said to be a value for a SFNode or one of the values for a MFNode field. SFNode and MFNode fields are not shown in the control panels like other field types are.
Adding a New Instance of a Node
The names for the SFNode and MFNode fields can be seen in the node's pop-up menu if it contains any of these types of nodes. The node's pop-up menu is activated by right clicking on the node's icon in the scene tree window and selecting paste. In the following example we see the pop-up menu open for a Seamless node. In the pop-up menu we can see the SFNode and MFNode fields appearance, geometry, skeleton, switchpart, and build which belong to the Seamless node.
In the above example we see that the build field is selected and it's
corresponding sub menu open which contains all the possible legal node
types for the build field. Selecting any of these nodes from the sub menu
will cause a new node (or value) to belong to the selected field in the
pop menu.
When a SFNode or MFNode field contains a value it is shown as one of
the nodes that makes up the the scene tree.
The following picture shows the new stem node in the scene tree as
a result of selecting Stem for the build field.
It can be said that we have added the value of a Stem node to the Seamless
node's build field but to simplify we can say we added a Stem node to the
Seamless node. Adding the first node to a MFNode field is simple enough
and appending another node can be done exacly the same way as adding the
first but some times we may want to insert a field rather than append it
also we may not want to go all the way up to the parent node to append
a node to it's MFNode field if the MFNode contians many nodes. This is
where we can take advanage of selecting sibling above or sibling
below in the paste sub-menu as shown:

DEFining a Node
Some nodes need to be DEFined so that they can be referenced. This
is done by giving a node a name. This name is not to be confused with the
name we give the type of node and is not to be confused with the name of
the field the node may belong to. A field name is the name of the field
where as a DEF name is the name of the node. The node remember is the value
of a field not the field itself. To DEFine a node the node must first be
selected then if we click it again to the right of the node's icon we can
then type in the name.
The following example shows a Part node DEFined as torso:

USEing an already existing Node
Often we don't want a new instance of a node in a SFNode or MFNode
field instead we may want to reference to an already existing node. In
vrml when nodes are referenced the word USE is used. To USE a node in seamless
first the node that we want to reference should be copied (just to make
it remembered by seamless for later).
Then we should right click on the appropriate node and select the field
that is going to USE the node.
As shown in the following example the DEF name of the node will be
shown in the field's sub menu
After selecting the node to be USEed by the stem node we should see:
Notice that the node is shown in 2 places in the scene tree one shown
as a reference to the other by the little arrow
icon to the the lower left of it's node icon. This
is the same image seen in windows for shortcuts to folders and files. This
is because the concept of USE in vrml is much the same as a shortcut concept.
Which icon we click on to select the node DEFined as torso will not matter
(unless we wish to delete a reference) because one is not a copy of the
other they are the same node (same instance).
Why SFNode and MFNode Field Names are Not Shown in
the Scene Tree
For most SFNode and MFNode field types it is not necessary to see the
names of the fields in the scene tree because the type of node is enough
of a clue to let us know which field the node belongs to. I took advantage
of this reality by not showing them in the scene tree. Hiding non essential
information to reduce clutter which can lead to confusion has been one
of my objectives in the design of Seamless II. However some Seamless nodes
have more than one field that can both contain the same types of nodes.
Seamless nodes that have this predicament are nodes that have source and
destination fields for Part nodes. To avoid ambiguities in this case without
resorting to adding field names I have made it so that all fields that
begin with the name source are shown with a blue dot.
In the following picture we see a node that has to Part nodes branching
from it. One of the Part nodes is marked with a blue dot to show that it
is a node belonging to the source field
Sending Field Values to Another Field by Adding a
ROUTE
X3D/VRML allows the values of fields to be sent to other fields, usually
to fields that belong to other nodes.
This is done by adding a ROUTE. A ROUTE has a source and destination
field. To add a ROUTE first copy the node that has the destination field
then right click on the node that owns the source field, select paste,
the source field then select TO DestiationNode/destination field as shown
in the folowing example.
After doing this the ROUTE will be displayed in the control panel of
the node that owns the source field for the ROUTE.

To remove a ROUTE right click on the ROUTE in the control panel and
select delete this ROUTE.
the source and destination fields must be of the same type. for example
if the source node is a SFVec3f then the destination field must also be
SFVec3f field type. Seamless3d will only allow matching fields to be selected
in the menu when adding a ROUTE.
The Scene
Node
The Scene node in the scene tree is represented by the icon
.
This node always exists at the top of the scene tree window though it may
be hidden from view if the window is scrolled. The Scene node is the base
or root node in the scene tree. This means all nodes in the scene tree
will be descendants of this node. When the Scene node is selected we will
see the Scene node's control panel open.
| Scene |
|
|
output
|
The control panel has just one field called output. This button generates a (x3d;.x3dz.;x3dv;.x3dvz;.wrl) file that will have the same file name as the current smls file that is open in seamless except it will have one of the folowing extensions
.x3d X3D XML coded
.x3dz X3D XML coded gzipped
.x3dv X3D VRML classic coded
.x3dvz X3D VRML classic coded gzipped
.wrl VRML97 for both gzipped or not gzipped
instead of a .smls extension. Any node that is not a standard X3D/VRML gets converted to nodes that can be opened by a X3D/VRML viewer.
What type of file gets created depends how some of the fields are set
in Seamless3d's Settings control panel.
The Seamless
and Part
Nodes
The Seamless node houses all seamless nodes used for displaying and
generating a seamless skin animated model.
The type of effect node used for the effect field detirmins whether
the parts will use color per vertex of textures to color the triangles
in the part nodes.
The skeleton field is the base for all
the Part nodes that make up the node's skeleton structure.
Part nodes contain the vertices and triangles.
Build Nodes
The Seamless build field is used for containing the Build nodes. This field can be left empty if the geometry field already contains geometry. However the build nodes can be used for creating mathematically perfect smooth geometry. Using build nodes can also have the added advantage of making geometry on the fly resulting in a Seamless node being tiny in comparison to a Seamless or Shape node that contains pre built geometry.
Home | Tutorials | Next
Copyright © 2000-2005 Graham Perrett thyme@seamless3d.com