Script

De Celestia wiki

Qu'est-ce qu'un script Celestia ?

Un script Celestia est un fichier texte (enregistré au format .cel ou .celx) comportant une série de commandes qui permettent d'exécuter et surtout d'enchaîner automatiquement la plupart des fonctions habituellement accessibles à travers les différents menus. Les scripts offrent donc la possibilité d'enchaîner, sans intervention de l'utilisateur, des déplacements, des mouvements de caméra, des changements de textures de planètes, bref de réaliser l'équivalent d'une véritable séquence vidéo dans Celestia. Ils permettent aussi d'afficher des commentaires textuels au cours de ces séquences.
En d'autres termes, il est donc possible de "programmer" Celestia pour visualiser de nombreux objets célestes (sous toutes les coutures), tout en affichant simultanément des commentaires, ce qui fait de Celestia un outil pédagogique de premier ordre. A ce titre, un "script" Celestia peut être considéré comme un véritable "scénario".

Comment lancer ou interrompre un script dans Celestia ?

  • Les scripts sont accessibles à partir du Menu "File" ("Fichier") > "Open script" ("Ouvrir script")
  • Lors de l'installation de Celestia, les fichiers .cel et .celx ont été associés à ce logiciel (sauf consigne contraire de l'utilisateur). Ainsi, il est possible de lancer un script à partir d'un gestionnaire de fichiers par un simple double-clic. Dans ce cas, Celestia se lancera automatiquement, puis chargera et lancera ledit script tout aussi automatiquement.
  • Pour interrompre un script, il suffit d'une simple pression sur la touche <Echap> (ou <Esc>).


Quelle est la différence entre les fichiers .cel et .celx ?

Ces 2 types de scripts n'utilisent pas le même langage de programmation.

  • Les fichiers .cel utilisent un langage basique (rien à voir avec le langage "Basic" !) propre à Celestia. Ils ne permettent aucune interaction avec l'utilisateur qui ne peut que l'interrompre en cours d'exécution.
  • Les fichiers .celx utilisent une partie des fonctions du langage Lua. Plus complexes, ils autorisent un traitement mathématique et logique des valeurs, et offrent une forme d'interactivité avec l'utilisateur : par exemple, il est possible de demander le nom d'une planète pour pouvoir s'y rendre, de proposer des menus pour pouvoir passer directement à la 2ème partie d'un script, ou de demander la distance à laquelle on veut s'approcher d'un objet, etc. Une description (en anglais) des fonctions Lua disponibles sous Celestia a été rédigée par Harald Schmidt et est consultable ici : http://celestia.h-schmidt.net/.


Comment modifier un script ?

Un script peut être écrit ou modifié comme tout autre fichier texte, en utilisant votre éditeur de texte préféré (Notepad, ...). Il vous suffit ensuite de l'enregistrer au format .cel ou celx (exemple : MonScript.cel). Voir aussi l'article traitant des fichiers en format "texte".

Note: A l'origine, Celestia est un logiciel anglophone, et ignore donc les spécificités des langues latines comme les accents.
Si vous souhaitez donc pouvoir afficher les caractères accentués dans Celestia, assurez-vous d'utiliser un Editeur de texte qui supporte les caractères Unicode et le codage en UTF-8, sans quoi Celestia fera disparaître le caractère accentué ainsi que le caractère qui suit.

Le logiciel Wordpad, fourni avec Microsoft Windows, est capable de changer d'encodage et permet théoriquement d'enregistrer les scripts en format texte "unicode". Néanmoins ce logiciel est à éviter puisque les scripts enregistrés ainsi on généré des bugs.
Les deux éditeurs de texte ) privilégier pour l'écriture de scripts sont :

  • Notepad2, un petit utilitaire qui reproduit le Notepad de Windows, mais amélioré (coloration syntaxique, indentation, encodages).
  • PSPad. Il s'agit d'un éditeur de texte qui supporte en plus les macros-commandes et qui, grâce à l'optimisation de Bluz, vous permettra de mettre sous forme de Macro les commandes de Celestia, de sorte à ne pas avoir à les retaper constamment. Installation : décompresser l'archive puis lancer le fichier setup. Ensuite, placer le repertoire "macro" dans votre répertoire personnel : "utilisateur\Application Data\Pspad". Enfin, lancez l'application et faites CTRL+MAJ+F5 pour faire apparaitre le dico des fonctions.

Quelles sont les principales commandes .cel ?

Cancel
Annuler les commandes goto et track, et réinitialiser le Système de Coordonnées sur universal.

Center
Centrer l'objet sélectionné sur l'écran.

Changedistance
Changer la distance entre la caméra et l'objet sélectionné.

Chase
Régler le Système de Coordonnées sur chase.

Exit
Quitter Celestia.

Follow
Suivre l'objet sélectionné - Régler le Système de Coordonnées sur ecliptical.

Goto
Déplacer la caméra et la positionner face à l'objet sélectionné sans changer le Système de Coordonnées.

Gotoloc
Déplacer la caméra et la positionner aux valeurs spécifiées de position et d'orientation de l'objet sélectionné sans changer le Système de Coordonnées.

Gotolonglat
Déplacer la caméra et la positionner aux valeurs spécifiées de longitude et de latitude de l'objet sélectionné.

Labels
Activer ou désactiver l'affichage des noms pour les différentes classes d'objets.

Lock
Verrouiller 2 objets par rapport à la position de la caméra - Régler le Système de Coordonnées sur lock.

Lookback
Changer instantanément (sans mouvement de caméra) le champ de la caméra de 180°.

Mark
Activer le marquage d'un objet avec le symbole spécifié.

Move
Déplacer la caméra à la vitesse spécifiée.

Orbit
Se déplacer en orbite autour de l'objet sélectionné sans changer le Système de Coordonnées.

Orbitflags
Activer / désactiver l'affichage des orbites pour les différentes classes d'objets.

Play (commande disponible uniquement avec la version celestia_1.4.1_patch)
Jouer un fichier son.

Preloadtex
Pré-charger en mémoire une texture avant son affichage à l'écran.

Print
Afficher un message à l'écran sous forme de texte.

Renderflags
Activer / désactiver l'affichage des différentes classes d'objets.

Renderpath
Changer/choisir le chemin de rendu (basic, multitexture, vp, vp-nv, glsl).

Rotate
Effectuer une rotation du champ de la caméra.

Select
Selectionner un objet (planète, satellite, galaxie, etc...).

Set
Régler les valeurs de Min Orbit Size, Ambient Light Level, Field Of View, Star Distance Limit, Star Style.

Setfaintestautomag45deg
Régler la magnitude minimale des étoiles à afficher lorsque l'option Auto-Magnitude est activée.

Setframe
Choisir le Système de Coordonnées à utiliser.

Setorientation
Régler l'orientation de la caméra.

Setposition
Régler la position de la caméra dans l'espace.

Setsurface
Choisir une texture alternative pour l'objet sélectionné.

Setvisibilitylimit
Régler la magnitude minimale des étoiles à afficher lorsque l'option Auto-Magnitude est désactivée.

Seturl
Placer la caméra à la position définie par une fonction Cell://URL.

Synchronus
Se placer en orbite autour de l'objet sélectionné en mode Synch Orbit - Régler le Système de Coordonnées sur geographic.

Time
Régler la date et l'heure en utilisant les formats JulianDay ou UTC.

Timerate
Régler la vitesse d'écoulement du temps.

Track
Fixer la caméra sur l'objet sélectionné pour le garder centré sur l'écran.

Unmark
Désactiver le marquage d'un objet.

Unmarkall
Désactiver le marquage de tous les objets.

Wait
Insérer une pause dans l'exécution du script (du nombre de secondes spécifiées).

Quelques exemples de scripts décortiqués

Après la théorie, la pratique... Les quelques scripts qui suivent exposent des exemples concrets qui permettront de se faire une idée plus précise du sujet. Si vous êtes vous-même auteur d'un script pour Celestia, n'hésitez pas à en faire profiter les lecteurs de ce wiki.

  • Spoutnik 1. Commandes utilisées : time, select, goto.
  • Start. Commandes utilisées : preloadtext, select, follow, goto, wait, print.


Aide à la création de scripts

La création d'un script peut parfois se révéler fastidieuse. Heureusement, K.holo nous a concocté Promenade, un petit logiciel destiné à rendre le scripting plus accessible.

A télécharger sur son site : http://perso.orange.fr/surok/promenade/html/promenade.htm
Si vous avez des remarques, des commentaires au sujet de ce soft, postez-les ici : http://www.ikiru.ch/celestia/forum/index.php?showtopic=45.
A noter qu'un bug empêchait certains d'utiliser Promenade. Bug résolu, qui était dû à deux .dll manquantes : msvbvm60.dll et VB6FR.DLL (à copier dans le dossier d'installation de Promenade et non dans "c:\Windows\System" !). Voir le forum cité ci-dessus. (Un grand merci à K.holo qui n'a pas lâché le morceau, sans oublier Bluz qui a mis la main à la pâte.)