|
Softimage|XSI LightsRing Script
ou comment animer séquentiellement des lumières disposées en cercle ( ou autres formes cycliques )
LightsRing.vbs - 7ko
Scénario
Lorsque l'on veut animer plusieurs lumières qui doivent avoir une certaine cohérence entre elles, cela peut vite devenir fastidieux.
Grâce au scripting, on peut rendre la tâche plus aisée.
Ici, nous voulons placer un certain nombre de lumières suivant une disposition circulaire, puis pouvoir animer l'intensité de chaque lumière
séquentiellement, suivant cette trajectoire circulaire, et pouvoir agir sur d'autres facteurs comme pouvoir donner un effet plutôt 'stroboscopique' ou bien plutôt 'trainée de lumière'.
Ce script dispose d'une part d'une aide à la création de ce genre de setup, d'autre part d'une aide à l'animation grâce à un panneau de contrôles customisés spécifiquement conçus pour ce genre d'animation.
Note:
Ce script reste assez générique dans son état actuel.
Il ne prend pas en compte les paramètres des lumières autres que celui de l'intensité.
Il est toutefois facile de l'adapter pour tout besoin particulier, pour les couleurs par exemple, ou même des paramètres de shaders.
La disposition circulaire peut également être modifiée, en éditant la courbe.
Une des améliorations possible serait par exemple d'avoir le choix de la courbe ( en la 'piquant' ) au moment de la création du setup.
Installation du Script

Tout d'abord, ouvrez le 'Browser' et selectionnez le dossier où se trouve le script.

Passez du 'Toolbar Panel' à la 'Palette' et au 'Custom Script Panel'.

'Drag & Droppez' le fichier script directement sur le 'Custom Script Panel'. Le panneau 'Add Script Command' va apparaître.

Entrez le nom que vous voulez voir apparaître sur le bouton dans 'Command Name' et le nom qui sera utilisé comme commande de script dans 'Command Name For Scripting'.

Le Script et son Bouton associé sont maintenant installés et prêts à être utilisés.
Création du Setup
Cliquez sur le bouton que nous venons d'ajouter, le panneau suivant va s'afficher:

RingName: Le nom du 'Model' qui est créé par le script.
NbrOfLights: Le nombre de lumière que vous voulez créer sur le cercle.
VisuGrid: Une option qui va créer une grille disposée derrière le cercle permetant de visualiser dans les vues OpenGL les effets de lumières.
light_LightBox, light_Neon, light_Point, light_Spot: Choix du type de lumière créé.
Note:
Vous ne devez sélectionner qu'un seul type de lumière à la fois. Dans le cas contraire, la première case cochée sera prise en compte.
Une fois vos choix effectués, cliquez sur 'OK'.

Voici ce que vous obtiendrez dans l'explorer.
Un nouveau 'Model' ( 'LightsRing' avec le nom par défaut ) a été créé,
un panneau de contrôles également, 'LightsRingControls',
les lumières, la courbe circulaire,
la grille de visualisation ( si vous avez coché l'option )
ainsi qu'un skelette à 1 bone qui va nous permettre de visualiser quelle lumière est 'pointée' ( intensité maximale ).

A moins que vous n'ayez besoin de modifier l'emplacement et/ou la forme de la courbe, vous n'aurez pas besoin d'agir directement sur les éléments créés.
Il ne reste plus qu'à s'attaquer à l'animation et nous allons faire appel au panneau de contrôle spécialement créé pour cela.
Animation du Setup

Pour faire apparaitre le panneau de contrôle, cliquez sur l'icone du 'LightsRingControls'.

Ring Radius: Un simple proxy modifiant le rayon du cercle.
LightsRotation: Fait tourner toutes les lumières ensemble sur le cercle. Il s'agit ici d'un déplacement physique des lumières, totalement indépendant de l'intensitée lumineuse.
LightsIntensity: Règle l'intensité générale de toutes les lumières.
IntensityRotation: C'est avec ce paramètre que vous allez pouvoir animer l'intensité lumineuse des lumières, suivant le cercle. Ce paramètre est relié au bones qui sert d'aide visuelle et vous permettra de savoir où est 'pointée' l'intensité maximale.
IntensityBias_High: Règle la distance de part et d'autre du 'pointeur' à partir de laquelle les lumières vont s'allumer. Il s'agit d'une distance relative au 'Path' ( de 0% à 100% ).
IntensityBias_Low: Agit sur l'intensité minimum des lumières tout en prenant en compte le 'pointeur'.
Note:
Pour un effet 'full lights', mettez les deux curseurs 'IntensityBias_High' et 'IntensityBias_Low' au maximum, la rotation du pointeur n'agira plus sur l'intensité.
Note:
Pour voir l'effet des 8 lumières créées par defaut sur la 'VisuGrid', effacer la lumière par défaut existante dans la scène.
Il ne vous reste plus qu'à animer ces curseurs, créer des 'Actions', puis utiliser le 'Mixer' pour enchaîner les effets.
N'hésitez pas à me faire part de tout commentaire, critique et suggestion.
[rev. 02/11/01 - d/m/y]
|