C3D3 2.0

Category / Domain : | 3D
Scol Engine Compatibility : | V3.1 and higher
Documentation dated : | 09/2000

#

# Function

The C3D3 module is the main SCS module. It is necessary for the a Scol/Scs site to run.

It’s from its editor that are managed objects, textures, effects (with the help of instances) and parameters that will be explained in the following pages.

When the module is called, two windows appear (see figure 1) :

A module editor, traditional interface to setup the cell : the c3d3 editor ;

From this, it’s possible to access to 8 topics with the help of the menu :

§ Object : management of objects and textures of the 3d cell

§ Links : to create links on objects or textures

§ Positions : to save positions on objects and avatars

§ Anchors : allows to bulk links or positions

§ Observator : to fix general parameters of the cell

§ Instances : to choose effects or animations on, or from objects ; many instances are available :

· 3Dsound

· AV3d

· ChatFilter

· ChatLimiter

· DigiClock

· Distance

· Hide

· QuickTime

· PlayAnim

· RealVideo

· Rotate

· Shift

· SlideT2

· SnapAV

· SnapShot

· SoundDialog

· Target

· Trajectory

§ Plugins : They used to be independant modules or new plug-ins that have been integrated in the c3d3 module. They appear as Instances.

§ Advanced : advanced parameters

- A visualisation window of the 3d scene in which it is possible to move about by using the mouse and the shift key ( topple over back and forth ) and ctrl (up and down) of the keyboard : the 3D Editor. It allows to visualise the scene and the objects but not the effects. When we move the cursor, this one transforms itself as a hand when we go over a texture or an object where a link has been defined.

Figure 1 : Main interface of the C3D3 module : 3D editor and C3D3 editor

# 3D editor configuration

A right click on a scene’s texture or object shows the following menus :

Modify | Texture | Launches the textures’ editor
| Flat Color | Allows to affect a color in flat
| Texture Filter | Launches the filters’ parameters windows
| Transparency | Sets up the degree of transparancy of the selected texture
| Enlightened | Allows to choose if the selected texture has to be enlighted or not
| Gouraud | Applies effect on an object representated in flat : executes a gradation between three submits of each triangle composing the object
| Environmental Mapping | Allows to create a reflection effect on a texture in flat
| Collision Box | Sets up the collision box
Open Object Editor |  | The object editor is composed of two windows : The 3D Editor with four visualisation windows : - Top View : view of the objects from the top - Left View : side left view - Back View : rear view

- Avatar View : view from an avatar

This editor allows to move objects, make them revolve and enlarge them or reduce them.

###### Displacement of objects

- Right click on the object and click on :

- Select one of the three axis (becomes yellow) then click on the left button and move the object

###### Objects’ rotation

- Do a right click on an object then click on

###### Redimensionnement des objets

- Do a right click on the object then click on

- Select the vertical axis (becomes yellow) then click on the left button and blow up the object (toward the top) or reduce it (towards the bottom)

The views Top View, Left View and Back View offers two extra options :

- Pan : Allows to move the whole scene ; click on

- Deep : Allows to change the view’s depth (zoom effect) ; click on

Moreover, parameters can be directly manually entered by changing the Position’s values, Size, angle and Scale.

Copy Material |  | Copies the selected texture
Paste Material |  | Pastes a texture on a selected texture
Take Object |  | Takes the selected object
Link Object |  | Links the selected object
Add Object |  | Adds a new object into the 3D scene
Add Object Position |  | Adds a new object’s position (AddObjPos)

#

# Configuration of the c3d3 editor

A 3D scene has to be inserted before all

Click on the Apply button to save and directly apply the changes dynamically done.

## Study of each rubric in detail

## Objects

1- Add | Adds an M3D object
2- Del | Suppresses the selected object
3- Rename | Changes the object’s name
4- Light | Allows the creation of an object « AMBIENT_x » aimed at light effects within the cell. Direct the arrow with the help of the « move » button (see below) to define the orientation of the light source. To regulate the light density, use the « Rename » button and change the light scale going from 0 to 31 ( by default, the AMBIANT object’s light scale is fixed to 8, thus « AMBIENT_8 »). We can also define an object PARA, OMNI or SPOT by renaming the object and giving it a value from 0 to 31.

5- Collision Box | To create a collision box by excluding the selected object : at each insertion of a new object in a 3D cell, you must insert its collision box as well. (Box then appears on the right of the object’s name in the Objects rubric. Without any collision box, avatars will be able to go through those objects.

6- Scale | Allows to modify the selected object size ; however, be careful to not blow the objects too much so that avatars can move around. By default, the scale is fixed to 100% ; enter a value and press OK.

7- Dummy | Non textured invisible object with action on the light and orientation of this one.
8- Texture | Allows to modify the texture affected to the selected object, with the help of a window « Edit Texture »

###### 9- Edit Texture

- « Sizes » : Allows to not apply filter
- « OK » : Confirms the texture’s selection

- « Cancel » : Cancels the texture’s selection

- « Change » : Allows the change of a texture ; a window which allows to visualize textures opens then..
- « à JPEG » : Allows to change a .BMP file to a .JPG

10- Flat | Allows to affect a color and not a texture to an object
11- Filt | Offers the possibility to set up the filters on a color, the rotation, the saturation and the attraction color.
12- Transparency | Activates or disactivates the transparence property of the selected texture.
13- Light | Activates or disactivates the principal light effect on the selected texture.
14- Gouraud | Applies a gradation on the selected texture
15- Env (environmental mapping) | Applies an environment mapping on the selected texture.
16- Start 3D Modeler | Launches the 3D modeler (see below for further details)
17- Disable collision box | Disables the collision box

## Links

### 1- Add

Select an object with or without its texture. This function allows to create a link on the object or the texture into the c3d3 module ; when this link will be clicked, it will launch an action for example.

Modules and/or instances such as Target, Trajectory, Slide T2, Shift, Rotate, Distance…use this link in order to function.

2- Remove | Suppresses the selected link
3- Rename | Allows to change the link’s name
4- Visibility | Activates or disactivates the link’s visibility : if the link is visible, the mouse’s arrow becomes a hand when it passes on the link. If it is non active, the cursor doesn’t change appearence. This function allows, for example, to hide a secret passage, or to force avatars to search for a link.

##

## Positions

##

##

1- AddCamPos | Allows to save the space’s coordinates (x,y,z) of the chosen position in the 3D Editor window. This position will, for example, define the entry point in a room, not facing the door. Move around into the 3D scene and define a position, then click « AddCamPos » and enter a name such as pos_int-start, for example, which corresponds to the start position of the interior cell.

2- UpdateCamPos | Allows to update the selected position coordinates : move an object and press on « UpdateCamPos » to re-update its coordinates ; this avoids to add a new position for example.
3- SetCamPos | Allows to visualize an object’s position : select the position in the list, then press on « SetCamPos » and the camera will move to the selected position.
4- AddObjPos | Allows to save the position of a selected object : move the object then press on « AddObjPos » and give it a name, chair_1( if the object is a chair for example), then press OK.

### 5- UpdateObjPos

Moves the object and click on this button to save the new coordinates.

6- SetObjPos | Select an object and an existing position, then click on « SetObjPos » to visualise the object’s place in the 3D scene.
7- Remove | Supresses the selected position
8- Rename | Allows to change the name and the position

## Anchors

##

1- Add | Allows to create an anchor within the C3D cell, a window « Define new anchor » then appears. An anchor is composed of one or many links and/or of one or many positions define in the cell : double click on one of the links’ elements, then double click each of the positions that must be associated to this link.

In Anchors, we thus see>>start, the link and the positions. For example here, we have the link buffet and 3 positions of the buffet object.

Validate with OK. Now this anchor can be used in association with a Rotate or Trajectory Instance of the c3d3 module.

To edit an anchor already defined, just double click.

2- Remove | Allows to suppress an anchor.
3- Rename | Allows to rename an anchor.

## Observator

1- Back Clipping | Distance (expressed in cm) from which objects disappear. By default, its value is 1000 meters.
2- Focal | Define the user’s angle of view of the camera. The minimim angle is 6, the maximum angle is 85. The angle by default is 29.7
3- Gravity | Affected gravity of a cell wich minimum is 0 ; the maximum isn’t defined.
4- Buffer size | Buffer size memory ; its value by default is 512.
5- Background | Allows to define the color used as back color by default when there isn’t any appearing texture ; the color that is used appears in a little frame on the right.
6- Collision (.box) | Calls the selected 3D scene collision box, by inclusion of the cell.
7- Fog Starting (cm) | Distance from which the fog starts to materialize itself. The default value is 80 000.
8- Kbd Speed (cm/s) | Allows to set up the avatar’s movement speed within the cell. The default value is 1000.

## Instances

1- Add | Allows to create a new instance : opens the window Define New Instance
2- Remove | Allows to suppress the selected instance
| To edit and modify an instance already established, you must double click

###

### Define New Instance window :

This window is composed of 3 zones : Name, Class et Anchor.

Name : Allows to rename the instance

Class : menu to choose the instance

Anchor : Available anchors’ rolling list created by you.

The inferior part of the window varies depending on the chosen instance

To have the complete description of each instance, check out their own files.

## Plugins

#### 1- Add

Allows to add a new plug-in : open the Add New Plugin window

Select the desired plug-in in the list then click Ok.

2- Remove | Allows to suppress an existing plug-in
3- Param | Allows to enter specific setups for a given plug-in.

##

## Advanced

1- Avatar Ressource | Avatar
2- Default Avatar | Allows to define the avatar class : -av3d -snapshot -default
3- Force Default | Forces the avatar’s appearance defined by default.
4- Rights ressource | The c3d3 module determines the avatars’ rights with this following way : - We define under the C3d3 editor (advanced menu) the resource’s variable managing the rights. - When the avatar is created, we read this resource’s variable, that should have the following format :

Format strbuild : ((itoa commut) : :rights : :nil) : :nil

Where the parameter rights is a path a.b.c type (the dot is the separator). The empty channel corresponds to the tree’s summit ( a.b.c is the son of a.b).

For the tests, there is a particular case : if we define in the c3d3 editor the resources’ variable managing the rights such as ‘altern’, the avatars will successively be placed in path « 0 » and path « 1 ».

5- Table Size | Allows to setup a maximum number of avatars (default is 64)
6- C3d Ressources | Allows to enter extra parameters such as the view management of 3D avatars for instance, or programmed resources.
7- Compute Download size | Allows to compute the size (in bytes) the scene to download for the clients. This one doesn’t take in account the eventual plug-ins used in the scene.
8- LightBase | Determines the light atmosphere value. By default, the value is 31. The minimum is 0 and the maximum is 63. These parameters can be seen only once the site is launched.

#

#

# Implementation

# Actions

Module.event à C3D3. !chgCursor | Takes the changes of the cursor into account
Module.event à C3D3. !addPlugin | Forces the C3D3 to add a plugin on the client
Module.event à C3D3. !addPluginS | Forces the C3D3 to add a plugin on the server
Module.event à C3D3. !C3D positionSize | Resizes the client 3D window
Module.event à C3D3. !centerOnPlayer |
Module.event à C3D3. !ChgAV | Takes the change of avatar into account
Module.event à C3D3. !ChgLogin | Takes the change of login into account
Module.event à C3D3. !control | N/A
Module.event à C3D3. !speak | Forces the C3D3 to display a command
Module.event à C3D3.broad | Allows a bot module to send a message to all the users, present in a given C3D3 module (example)
Module.event à C3D3.out | Gets the user out of the cell

# Events

C3D3.entering à module.action | The starting of the client triggers an action
C3D3.hear à module.action | The C3D3 hears and it triggers an action whenever a message is received
C3D3.getFocus à module.action | same (to be used with Term or colorterm)
C3D3.in à module.action | Coming in the cell triggers an action
C3D3.out à module.action | Getting out of the cell triggers an action
C3D3.log à module.action | With a Log module, it allows to record the events pertaining to the C3D3 module
C3D3.spy à module.action | With a bot module, it filters the dialogs between users
C3D3.select0 à module.action | N/A
C3D3.select1 à module.action | A left click on an avatar triggers an action
C3D3.select2 à module.action | A right click on an avatar triggers an action
C3D3.select3 à module.action | N/A
C3D3.avatarList à module.action | Selecting an avatar in the 3D view triggers an action
C3D3.contextHelp à module.action | Selecting (mouse’s cursor over a link) an object triggers an action
C3D3.setPositions à module.action | Modifying the position of an avatar triggers an action

##### Zone

Function

Interface

Affectation

C3D3.view | Posts the 3D scene | Client | No
C3D3.info | Posts the links’ name | Client | No
C3D3.list | Posts the number and the name of people who are connected | Client | No

# 3D MODELER

It makes it possible to easily create customizable rooms (.m3d files)

The modeler is made of two parts :

- a visualization/creation window

- a floating toolbar

Directions :

1- Click on to create a new room, then a window opens :

Give the room a name, set a height (cm) , the number of cases vertically and horizontally, then type the name of the m3d file to create , click on OK . At anytime, it is possible to edit this Proprieties window : click on .

It is also possible to save the room (.srf format) so as to open it later and modify it.

2- with the red hollow square cursor, draw the room : left click to create a room (white square), right click to create a wall (black square). Notice : the wall or the room will expand from te floor to the ceiling.

3- Apply a texture on the floor or make a « hole » in the floor ( button), on the walls or add/delete walls ( button ) and on the ceiling or make a « hole » in the ceiling ( button ) . Click on to go back to the « digging mode ».

4-Leave the modeler : click on the cross in the upper-right corner of the toolbar.

5-Call the created m3d file, from the Objects menu in the C3D3 editor.