Project

General

Profile

Actions

Boxomatic

Alors.

Mais qu'est-ce que c'est que ce programme? D'abord éclaircissons certains points:

SCOL : Le programme est destiné aux programmeurs Scol qui développent donc des sites 3D avec la technologie de Cryo-interactive SCOL.

BOX : Les box sont des cubes ou parallélépipèdes définissant une zone accessible par l'avatar à travers la vue 3D. Une boite(box) est alors simplement définie par un centre et 6 faces. Si on ne définit pas de box pour une pièce en m3d (3D de Scol), vos murs ne seront que factices et vos joyeux avatars les traverseront comme des fantômes. C'est dur d'être un petit scolien de nos jours :-)

NB : Les fichiers .box gère la collision par inclusion. C'est à dire qu'ils définissent les surfaces accessibles par les avatars au sein de la cellules. Lorsque vous cliquez sur 'Collision Box' pour un objet de la cellule dans le SCS, la collision est exclusive. C'est à dire que l'objet lui-même est une zone inacessible par l'avatar.

Revenons à notre petit programme. A quoi sert-il? Il sert tout simplement à gérer ces petits fichiers .box pour nos créations sans devoir passer par un éditeru type 3D studio max ou autre. Il permet entre autre de créer de nouvelles boiboites pour la cellule3D, de supprimer des boiboites ou encore de fusionner 2 fichiers .box entre eux pour donner une gigabox....enfin un nouveau fichier box.

Voyons chaque fonctionnalité, une par une, illustrée par un exemple.

Démarrons notre Boxomatic :

Oh la belle bleue ! ....bon, pour commencer vous devez choisir un fichier box ( le bouton "Choisir ...") ou en créer un tout neuf ( le bouton "Nouveau"). Par exemple "Room0001". L'extension .box est rajouté automatiquement.

Ceci fait, la définition des plans s'active et vous pouvez donc définir une nouvelle boiboite. Comment ?

Définir une nouvelle boiboite

Simple! Choisissez un id pour la nouvelle boiboite. Heu....2000 et un radian maximal à 65.

Ensuite il nous faut un centre à cette boiboite. Écrivez dans les boites de saisie de gauche. A droite c'est pour le mettre en hexadécimal si le cœur vous en dit. Il faut le coder en hexadécimal 8 chiffres avec 14 bits après la virgule. Bon on va pas se faire chier. X=-448, Y=65 et Z=-0.5

Ah ça fait ff8fc000, 104000 et ffffa000 bon c'est bien. S'il le dit :-)

on remplit ensuite chaque équation de plan des 6 faces (ax by cz = d avec a² b² c² = 1 pour les normer) prendre des 0 0 1 ou 0 1 0 semble souvent judicieux :)

Pour d , c'est toujours en hexa8 mais pour a,b et c c'est de l'hexadécimal à 4 chiffres, toujours 14 bits après la virgule.

Une fois tout remplit, on clique sur le bouton "Ajouter" en bas de la liste des box (la première liste à gauche).

On obtient alors cette belle fenêtre:

Et là, on est content, on peut "Enregistrer" le travail avec le bouton du même nom.

Dans la même folie, on clique sur "Nouveau" est on crée un nouveau fichier(Room003.box) contenant une box nommé 2001. On enregistre.

Grouper les box

On veut maintenant faire des 2 fichiers un seul fichier .box. Oui on a pas réfléchit et on se dit que de se retaper toutes la définition de la box, ça va être lourd. Y a le film qui commence et on a pas envie de rater le début.

Soit! On ouvre le fichier Room001.box et on a notre box célibataire 2000. On clique sur le bouton "Grouper à" et on choisit le deuxième fichier Room003.box et là oh miracle, on obtient les 2 box ensembles! Vite vite, on "Enregistre sous" Room004.box et voilà le travail.

Maintenant le programme vérifie si les fichiers contiennent des box identiques (le même nom) et refusera de grouper si tel est le cas. Ceci pour la question des intersections que nous verrons plus tard.

Supprimer une box

Oui mais voilà, une box vous tracasse et vous décidez de la liquider. Sélectionnez la dans la liste et cliquez sur "Supprimer" et elle disparaîtra à jamais!. Oui je sais c'est injuste mais vous n'aviez qu'à pas cliquer!

Les intersections faisant intervenir cette box seront elles-aussi supprimées.

Modifier une box

Si vous décidez de modifier un paramètre, il vous suffira de cliquer sur "Valider" pour enregistrer en local (pas dans le fichier) les changements avant de passer à une autre box. Si vous cliquez sur "Valider" après avoir changer d'ID, il refusera d'ajouter une nouvelle box. Il faudra passer par le bouton "Ajouter". "Valider" ne sert que pour les box déjà créer!

Ajouter une intersection

Les fichiers box aiment qu'on leur disent si deux boiboites se croisent. Il faut alors cliquer sur "Ajouter" de la deuxième liste. et choisir les 2 boiboites en interaction puis "Créer" ou "Annuler" pour revenir sans ajouter.

Le numéro ne sont pas les ID des boites mais les numéros d'index des boiboites. Les numéros commencent à 0 pour la première boiboite et suivent 1,2, ...

Si dans notre exemple, on veut ajouter une intersection, ça sera forcément 0 1 ou 1 0. D'ailleurs le programme ne donne pas le choix ;-) Et si par souci de faire planter le programme, on décidait de faire une intersection de deux mêmes box ou d'ajouter une intersection existante, le programme refuse!

Supprimer une intersection

Il suffit de la choisir et de cliquer sur "Supprimer". Là rien de bien compliqué.

Avoir de l'aide!

Enfin, le bouton d'aide qui devrait répondre à vos questions mais qui reprend en résumer cette page. Voilà!

Bon codage.

Pour les questions :

Petit Spirou

Annexe

Allez une dernière chose, la syntaxe du fichier si le programme ne marche pas comme voulu de manière à pas se retrouver coincé.
Un fichier box contient en première ligne le nombre de boiboite(nb).
Puis pour chaque boiboite, l'ID (id) et le radian maximal sur une ligne (radian)
Les coordonnées du centre sur la suivante en hexa8(cx,cy,cz)
Les 6 équations de plans sur 6 lignes contenant les 4 paramètres a,b,c en hexa4et d en hexa8
Puis une série de couple représentant les intersections.
Le fichier finit par -1 -1.

Donc :

nb
id1 radian1
cx1 cy1 cz1
a11 b11 c11 d11
a12 b12 c12 d12
a13 b13 c13 d13
a14 b14 c14 d14
a15 b15 c15 d15
a16 b16 c16 d16
id2 radian2
cx2 cy2 cz2
a21 b21 c21 d21
a22 b22 c22 d22
a23 b23 c23 d23
a24 b24 c24 d24
a25 b25 c25 d25
a26 b26 c26 d26

1 0
-1 -1

Updated by iri about 12 years ago · 1 revisions