Gallery
Techniques / Scripts
 
 
 
BACK TO MAIN MENU
 
 
PowerGons / LuxiGons


- Présentation du Layout (systeme de commandes)

- Aperçu des LuxiGons et PowerGons

- Astuce de lighting avec les LuxiGons et Driven-Key

- Les PowerGons en détails

 
 
 

Excepté les réglages concernant les lights, ce qui différencie les Powergons des Luxigons réside dans l'éxécution de la commande AddSpotlight LGON\rPosition \c\rRotation\n\rParentItem \i\rCreateKey 0 qui est par défaut lorsqu'on fait un AddPowergon dasn le modeler.

Commencons par déchiffrer cette commande:
AddSpotlight LGON correspond à la commande "AddSpotlight <name>" du layout
Position, Rotation correspondent à la commande "Position <X> <Y> <Z>" et "Rotation <H> <P> <B>"
ParentItem correspond à "ParentItem <ID>" (le numéro qui correspond à un objet)
CreateKey 0 correspond à "CreateKey <time>" (exprimé en frame)

Il nous reste à éclaircir la syntaxe propre aux powergons:
\r = précise la fin d'une commande et le début d'une autre. ce n'est pas nécessaire à la fin de la ligne.
\c = renvoie la position du centre du polygone sous la forme "x y z"
\n = renvoie l'orientation de normales du polygone sous la forme "h p b" (b, bank, est toujours égal à 0)
\i = renvoie l'ID de l'objet contenant le polygone

Pour avoir un appercu complet il nous faut rajouter 2 syntaxes qui sont absentes de la commande par défaut:
\a = renvoie l'aire du polygone
\d = renvoie le vecteur de la normale du polygone sous la forme "nx ny nz"

En combinant ces syntaxes avec les commandes du layout les possiblités sont énormes !
quelques exemples simples:


Objet powergoné:   Objet dans le Layout:
 
 

1er:
Recherchons une commande directe dans le LScript Commander, c'est à dire une commande qui se suffit à elle même.
Par exemple "AddBone <name>"
Dans le Modeler prenons notre objet sur lequel nous voulons appliquer des powergons.
AddPowergons et entrons la commande: AddBone BONE\rPosition \c\rParentItem \i\rCreateKey 0

par cette comande on demande au layout:
- de créer un bone nommé BONE (AddBone BONE)
- de le positionner en utilisant la commande Position <x> <y> <z> ("x y z" est ici remplacé par \c qui renvoie la position de chaque polygone affecté)
- de parenter les bones créés à l'objet powergoné (commande ParentItem <name> ("name" est ici remplacé par \i qui renvoie l'ID de l'objet powergoné. Car, l'objet n'étant pas encore dasn le layout il nous est impossible de connaitre son ID)
- et finalement de créer une KeyFrame à la frame 0, pour figer les bones à leur place.

résultat dans le layout:

 

 

2em:
Un bone créé dans le layout est toujours orienté par défaut vers +Z
Si nous voulons changer cela, testons la commande suivante:
AddBone BONE\rPosition \c\rRotation 0 90 0\rParentItem \i\rCreateKey 0
Nous avons rajouté une commande de type Rotation <h> <p> <b>
Chaque bone est alors orient en pitch 90

Si nous voulons orienter selon les normales des polygones remplacons "Rotation 0 90 0" par "Rotation \n"

3em:
Jusqu'a maintenant les powergone nous servent a executer des commandes "directes" de création de bones, de light etc...
Comment prendre en compte des objets deja existant dans le layout et les intégrer dans la commande powergone?
L'exemple qui suit a pour seul but de montrer différentes combinaisons de commandes:
 

Envoyez votre objet "Box" dans le layout. Avec le Command History toujours ouvert sélectionnez le (si c'est deja le cas désélectionnez et sélectionnez à nouveau)
Le Command History affiche "SelectItem 10000000". Cliquez sur la ligne du Command History. Elle apparait en dessous.
Selectionnez la et copiez la.
Retournez dans le Modeler. Prenez soin de supprimer tout Powergon deja existant sur l'objet (ClearPowergons > General Powergons).
Sélectionnez quelques polygones puis faites un AddPowergons.
Laissez la ligne par défaut ou entrez la à nouveau : "AddSpotlight LGON\rPosition \c\rRotation \n\rParentItem \i\rCreateKey 0" puis validez.
Inversez votre sélection et ajoutez une nouvelle commande Powergons:
Nous voulons que la commande utilise l'objet "box" se trouvant dans le layout.
Commencons la commande en colant la commande copiée dans le layout "SelectItem 10000000"
Nous voulons ensuite le dupliquer afin d'en avoir un exemplaire sur chaque polygone (Clone <clones>)
"SelectItem 10000000\rClone 1\r"
Au lieu d'aligner les objets sur les normales des polygones nous allons définir un objet Target (TargetItem <ID>).
Ajoutez un Null dans le layout et repérez son ID comme précédemment.
La commande est alors la suivante:
"SelectItem 10000000\rClone 1\rTargetItem 10000001\r"
Toutefois cela ne suffit pas. La commande "TargetItem <ID>" informe le layout de l'objet qui doit être pris pour cible, mais cela n'active pas le Controller de rotation.
Il nous faut donc préciser que le Controller de Heading et de Pitch est activé:
rajoutons "HController 1\rPController 1" (le "1"est équivalent à "On" tandis que le "0" est équivalent à "Off") à la suite de la commande puis finalisons la de maniere classique :

"SelectItem 10000000\rClone 1\rTargetItem 10000001\rHController 1\rPController 1\rPosition \c\rParentItem \i\rCreateKey 0"

j'ai attribué une surface rouge aux polygones affectés par la derniere commande. Les autres utilisent la commande par défaut




 
CONCLUSION:

Il y a biensur d'autres moyens d'obtenir les memes résultats que dans ce tutorial.
J'ai jugé préférable d'orienter ce dernier sur les possibilités et les problemes techniques que présentent les Luxigons et Powergons.
Les possibilités sont contrastés:
D'un coté les Luxigons sont un moyen tres simple pour placer rapidement un tres grand nombre de lights dans une scene. Par exemple pour faire un skydome, pour placer les projecteurs dans un stade de foot....
D'un autre coté les Powergones seront utilisés plus rarement et pour répondre à des besoins très précis. Nous avons vu dans le petit tutorial sur le lighting que nous pouvions controler un ensemble de lights avec des réglages diffrents (2 DrivenKey différents).
Sur le meme principe il est possible de cloner un objet ayant un Setup de bones avec de MorphMap et de controler l'ensemble.
Avantage & Limitations:
DoPowergons et ConvertLuxigons sont des actions ponctuelles au meme titre que ConvertSkelegons.
Nous pouvons donc appliquer plusieurs fois les memes Luxigons avec des parametres diffrents dans le layout. C'est ce que nous avons fait dans le tutorial de Lighting
En revanche les informations récupérées dans le modeler (orientations des normales etc...) ne sont pas valables pour les EndoMorph.