« Script » : différence entre les versions

De Celestia wiki
Péji (discussion | contributions)
 
(30 versions intermédiaires par 8 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Qu'est-ce qu'un script Celestia ? ==
== 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.<br>
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.<br>
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".
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".
<br/><br/>
<br/><br/>
Ligne 13 : Ligne 13 :
Ces 2 types de scripts n'utilisent pas le même langage de programmation.
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.<br />
*Les fichiers .[[cel]] utilisent un langage propre à ''[[Celestia]]''. Ils enchaînent de manière linéaire une série de commandes et ne permettent pas à l'utilisateur d'influer sur leur déroulement, si ce n'est de l'interrompre en cours d'exécution. <br />


*Les fichiers .[[celx]] utilisent une partie des fonctions du [http://www.lua.org 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/celx-summary-latest.html http://celestia.h-schmidt.net/].
*Les fichiers .[[celx]] utilisent une partie des fonctions du [http://www.lua.org langage Lua]. Plus complexes, ils autorisent - en plus des commandes propres à ''[[Celestia]]'' - des variables, un traitement mathématique et logique des valeurs, des tests, des boucles 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/celx-summary-latest.html http://celestia.h-schmidt.net/].
<br/>
<br/>


Ligne 24 : Ligne 24 :
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.
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.<br/><br/>
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 ont généré des [[bugs]].<br/><br/>
Les deux éditeurs de texte à privilégier pour l'écriture de scripts sont :
Les deux éditeurs de texte à privilégier pour l'écriture de scripts sont :
*[http://www.framasoft.net/article2917.html Notepad2], un petit utilitaire qui reproduit le Notepad de Windows, mais amélioré (coloration syntaxique, indentation, encodages).<br/>
*[http://www.framasoft.net/article2917.html Notepad2], un petit utilitaire qui reproduit le Notepad de Windows, mais amélioré (coloration syntaxique, indentation, encodages).<br/>
*[http://www.cielespace.org/site/index.php?option=com_docman&task=doc_details&gid=11&Itemid=51 PSPad]. Il s'agit également d'un éditeur de texte amélioré mais 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 dossier "macro" dans votre dossier personnel : "utilisateur\Application Data\Pspad". Enfin, lancez l'application et faites CTRL+MAJ+F5 pour faire apparaître la liste des fonctions. (Pour toute question concernant l'utilisation de PSPad pour [[Celestia]], voir [http://www.ikiru.ch/celestia/forum/viewtopic.php?t=304 ici].
*[http://www.cielespace.org/site/index.php?option=com_docman&task=doc_details&gid=11&Itemid=51 PSPad]. Il s'agit également d'un éditeur de texte amélioré mais 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 dossier "macro" dans votre dossier personnel : "utilisateur\Application Data\Pspad". Enfin, lancez l'application et faites CTRL+MAJ+F5 pour faire apparaître la liste des fonctions. (Pour toute question concernant l'utilisation de ''PSPad'' pour [[Celestia]], voir [https://www.jcvignoli.com/celestia/forum/viewtopic.php?t=304 ici].) <font color="#008000">'''(Le lien indiqué n'est pas disponible pour le moment ; pour télécharger ''PSPad'', rendez-vous, par exemple, sur le site de [http://www.clubic.com/telecharger-fiche14083-pspad.html Clubic].)'''</font>
<br/>


== Quelles sont les principales commandes .[[cel]] ? ==
== Quelles sont les principales commandes .[[cel]] ? ==
===Deux précisions au préalable===
'''1.''' Certaines commandes figurant ci-dessous ne sont disponibles qu'à partir d'une version précise de [[Celestia]]. Dans ce cas, le numéro de la version est indiqué entre crochets. Par exemple, si vous lisez : '''''constelations'''''  ''[v1.5.1]'', sachez que vous devez avoir installé la version 1.5.1 de [[Celestia]] pour utiliser la fonction '''''constelations''''' dans vos scripts.<br/><br />
'''2.''' Les commandes listées ci-dessous sont suivies d'un court descriptif, mais en cliquant sur leur nom, il est possible d'obtenir des informations plus détaillées (notamment en ce qui concerne leur syntaxe) et/ou des exemples d'utilisation. Néanmoins, cette liste étant en cours d'élaboration, toutes les commandes ne sont pas présentes. Par ailleurs, les commandes listées ne disposent pas toutes d'une fiche détaillée (elles apparaissent en rouge). Au passage, si vous souhaitez apporter votre contribution, n'hésitez pas !<br /><br />


'''''[[Cancel]]'''''<br />
===La liste des commandes===
Annuler les commandes [[goto]] et [[track]], et réinitialiser le [[Système de Coordonnées]] sur ''universal''.<br />
*'''''[[cancel]]'''''<br />
Annuler les commandes [[goto]] et track, et réinitialiser le [[Système de Coordonnées]] sur ''universal''.<br />


'''''[[Center]]'''''<br />
*'''''[[center]]'''''<br />
Centrer l'objet sélectionné sur l'écran.<br />
Centrer l'objet sélectionné sur l'écran.<br />


'''''[[Changedistance]]'''''<br />
*'''''[[changedistance]]'''''<br />
Changer la distance entre la caméra et l'objet sélectionné.<br />
Changer la distance entre la caméra et l'objet sélectionné.<br />


'''''[[Chase]]'''''<br />
*'''''[[chase]]'''''<br />
Régler le [[Système de Coordonnées]] sur ''chase''.<br />
Régler le [[Système de Coordonnées]] sur ''chase''.<br />


'''''[[Exit]]'''''<br />
*'''''constelations'''''  ''[v1.5.1]''<br />
Activer ou désactiver l'affichage d'une ou plusieurs constellations.<br />
 
*'''''constellationcolor'''''  ''[v1.5.1]''<br />
Modifier la couleur d'une ou plusieurs constellations.<br />
 
*'''''[[deleteview]]'''''  ''[v1.6]''<br />
Supprimer une vue en mode multi-vues.<br />
 
*'''''[[exit]]'''''<br />
Quitter Celestia.<br />
Quitter Celestia.<br />


'''''[[Follow]]'''''<br />
*'''''[[follow]]'''''<br />
Suivre l'objet sélectionné - Régler le [[Système de Coordonnées]] sur ''ecliptical''.<br />
Suivre l'objet sélectionné - Régler le [[Système de Coordonnées]] sur ''ecliptical''.<br />


'''''[[Goto]]'''''<br />
*'''''[[goto]]'''''<br />
Déplacer la caméra et la positionner face à l'objet sélectionné sans changer le [[Système de Coordonnées]].<br />
Déplacer la caméra et la positionner face à l'objet sélectionné sans changer le [[Système de Coordonnées]].<br />


'''''[[Gotoloc]]'''''<br />
*'''''[[gotoloc]]'''''<br />
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]].<br />
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]].<br />


'''''[[Gotolonglat]]'''''<br />
*'''''[[gotolonglat]]'''''<br />
Déplacer la caméra et la positionner aux valeurs spécifiées de longitude et de latitude de l'objet sélectionné.<br />
Déplacer la caméra et la positionner aux valeurs spécifiées de longitude et de latitude de l'objet sélectionné.<br />


'''''[[Labels]]'''''<br />
*'''''[[labels]]'''''<br />
Activer ou désactiver l'affichage des noms pour les différentes classes d'objets.<br />
Activer ou désactiver l'affichage des noms pour les différentes classes d'objets.<br />


'''''[[Lock]]'''''<br />
*'''''[[lock]]'''''<br />
Verrouiller 2 objets par rapport à la position de la caméra - Régler le [[Système de Coordonnées]] sur ''lock''.<br />
Verrouiller 2 objets par rapport à la position de la caméra - Régler le [[Système de Coordonnées]] sur ''lock''.<br />


'''''[[Lookback]]'''''<br />
*'''''[[lookback]]'''''<br />
Changer instantanément (sans mouvement de caméra) le champ de la caméra de 180°.<br />
Changer instantanément (sans mouvement de caméra) le champ de la caméra de 180°.<br />


'''''[[Mark]]'''''<br />
*'''''[[mark]]'''''<br />
Activer le marquage d'un objet avec le symbole spécifié.<br />
Activer le marquage d'un objet avec le symbole spécifié.<br />


'''''[[Move]]'''''<br />
*'''''[[move]]'''''<br />
Déplacer la caméra à la vitesse spécifiée.<br />
Déplacer la caméra à la vitesse spécifiée.<br />


'''''[[Orbit]]'''''<br />
*'''''[[orbit]]'''''<br />
Se déplacer en orbite autour de l'objet sélectionné sans changer le [[Système de Coordonnées]].<br />
Se déplacer en orbite autour de l'objet sélectionné sans changer le [[Système de Coordonnées]].<br />


'''''[[Orbitflags]]'''''<br />
*'''''[[orbitflags]]'''''<br />
Activer / désactiver l'affichage des orbites pour les différentes classes d'objets.<br />
Activer / désactiver l'affichage des orbites pour les différentes classes d'objets.<br />


'''''[[Play]]''' (commande disponible uniquement avec la version [http://www.ikiru.ch/celestia/forum/index.php?showtopic=195 celestia_1.4.1_patch])''<br />
*'''''[[play]]''' (commande disponible uniquement avec la version [http://www.ikiru.ch/celestia/forum/index.php?showtopic=195 celestia_1.4.1_patch])''<br />
Jouer un fichier son.<br />
Jouer un fichier son.<br />


'''''[[Preloadtex]]'''''<br />
*'''''[[preloadtex]]'''''<br />
Pré-charger en mémoire une [[Texture|texture]] avant son affichage à l'écran.<br />
Pré-charger en mémoire une [[Texture|texture]] avant son affichage à l'écran.<br />


'''''[[Print]]'''''<br />
*'''''[[print]]'''''<br />
Afficher un message à l'écran sous forme de texte.<br />
Afficher un message à l'écran sous forme de texte.<br />


'''''[[Renderflags]]'''''<br />
*'''''[[renderflags]]'''''<br />
Activer / désactiver l'affichage des différentes classes d'objets.<br />
Activer / désactiver l'affichage des différentes classes d'objets.<br />


'''''[[Renderpath]]'''''<br />
*'''''[[renderpath]]'''''<br />
Changer/choisir le chemin de rendu (basic, multitexture, vp, vp-nv, glsl).<br />
Changer/choisir le chemin de rendu (basic, multitexture, vp, vp-nv, glsl).<br />


'''''[[Rotate]]'''''<br />
*'''''[[rotate]]'''''<br />
Effectuer une rotation du champ de la caméra.<br />
Effectuer une rotation du champ de la caméra.<br />


'''''[[Select]]'''''<br />
*'''''[[select]]'''''<br />
Selectionner un objet (planète, satellite, galaxie, etc...).<br />
Selectionner un objet (planète, satellite, galaxie, etc...).<br />


'''''[[Set]]'''''<br />
*'''''[[set]]'''''<br />
Régler les valeurs de ''Min Orbit Size'', ''Ambient Light Level'', ''Field Of View'', ''Star Distance Limit'', ''Star Style''.<br />
Régler les valeurs de ''Min Orbit Size'', ''Ambient Light Level'', ''Field Of View'', ''Star Distance Limit'', ''Star Style''.<br />


'''''[[Setfaintestautomag45deg]]'''''<br />
*'''''[[setambientlight]]'''''<br />
Régler la magnitude minimale des étoiles à afficher lorsque l'option ''Auto-Magnitude'' est activée.<br />
Régler le niveau de lumière ambiante.<br />


'''''[[Setframe]]'''''<br />
*'''''[[setactiveview]]'''''  ''[v1.6]''<br />
Activer une vue en mode multi-vues.<br />
 
*'''''[[setfaintestautomag45deg]]'''''<br />
Régler la magnitude automatique à 45°.<br />
 
*'''''[[setframe]]'''''<br />
Choisir le [[Système de Coordonnées]] à utiliser.<br />
Choisir le [[Système de Coordonnées]] à utiliser.<br />


'''''[[Setorientation]]'''''<br />
*'''''[[setgalaxylightgain]]'''''  ''[v1.6]''<br />
Régler le gain de luminosité des galaxies.<br />
 
*'''''[[setlabelcolor]]'''''  ''[v1.6]''<br />
Régler les couleurs de la palette des noms d'objets.<br />
 
*'''''[[setlinecolor]]'''''  ''[v1.6]''<br />
Régler les couleurs de la palette des lignes.<br />
 
*'''''[[setorientation]]'''''<br />
Régler l'orientation de la caméra.<br />
Régler l'orientation de la caméra.<br />


'''''[[Setposition]]'''''<br />
*'''''[[setposition]]'''''<br />
Régler la position de la caméra dans l'espace.<br />
Régler la position de la caméra dans l'espace.<br />


'''''[[Setsurface]]'''''<br />
*'''''[[setradius]]'''''  ''[v1.6]''<br />
Régler le rayon d'un objet ssc.<br />
 
*'''''[[setsurface]]'''''<br />
Choisir une texture alternative pour l'objet sélectionné.<br />
Choisir une texture alternative pour l'objet sélectionné.<br />


'''''[[Setvisibilitylimit]]'''''<br />
*'''''[[setvisibilitylimit]]'''''<br />
Régler la magnitude minimale des étoiles à afficher lorsque l'option ''Auto-Magnitude'' est désactivée.<br />
Régler la magnitude minimale des étoiles à afficher lorsque l'option ''Auto-Magnitude'' est désactivée.<br />


'''''[[Seturl]]'''''<br />
*'''''[[seturl]]'''''<br />
Placer la caméra à la position définie par une fonction ''Cell://URL''.<br />
Placer la caméra à la position définie par une fonction ''Cell://URL''.<br />


'''''[[Synchronus]]'''''<br />
*'''''[[singleview]]'''''  ''[v1.6]''<br />
Revenir en mode vue unique.<br />
 
*'''''[[splitview]]'''''  ''[v1.6]''<br />
Scinder une vue (-> mode multi-vues).<br />
 
*'''''[[synchronous]]'''''<br />
Se placer en orbite autour de l'objet sélectionné en mode ''Synch Orbit'' - Régler le [[Système de Coordonnées]] sur ''geographic''.<br />
Se placer en orbite autour de l'objet sélectionné en mode ''Synch Orbit'' - Régler le [[Système de Coordonnées]] sur ''geographic''.<br />


'''''[[Time]]'''''<br />
*'''''[[time]]'''''<br />
Régler la date et l'heure en utilisant les formats ''JulianDay'' ou ''UTC''.<br />
Régler la date et l'heure en utilisant les formats ''JulianDay'' ou ''UTC''.<br />


'''''[[Timerate]]'''''<br />
*'''''[[timerate]]'''''<br />
Régler la vitesse d'écoulement du temps.<br />
Régler la vitesse d'écoulement du temps.<br />


'''''[[Track]]'''''<br />
*'''''[[track]]'''''<br />
Fixer la caméra sur l'objet sélectionné pour le garder centré sur l'écran.<br />
Fixer la caméra sur l'objet sélectionné pour le garder centré sur l'écran.<br />


'''''[[Unmark]]'''''<br />
*'''''[[unmark]]'''''<br />
Désactiver le marquage d'un objet.<br />
Désactiver le marquage d'un objet.<br />


'''''[[Unmarkall]]'''''<br />
*'''''[[unmarkall]]'''''<br />
Désactiver le marquage de tous les objets.<br />
Désactiver le marquage de tous les objets.<br />


'''''[[Wait]]'''''<br />
*'''''[[wait]]'''''<br />
Insérer une pause dans l'exécution du script (du nombre de secondes spécifiées).<br />
Insérer une pause dans l'exécution du script (du nombre de secondes spécifiées).<br />
<br/>
<br/>
Ligne 149 : Ligne 187 :
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.
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.
<br/><br/>
<br/><br/>
*[[Script : Spoutnik1|Spoutnik 1]]. Commandes utilisées : ''time'', ''select'', ''goto''.
*[[Script : Spoutnik1|Spoutnik 1]]. Commandes utilisées : '''''time''''', '''''select''''', '''''goto'''''.
*[[Script : Start|Start]]. Commandes utilisées : ''preloadtext'', ''select'', ''follow'', ''goto'', ''wait'', ''print''.
*[[Script : Start|Start]]. Commandes utilisées : '''''preloadtext''''', '''''select''''', '''''follow''''', '''''goto''''', '''''wait''''', '''''print'''''.
<br/>
<br/>
==Aide à la création de scripts==
==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.<br/><br/>
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.<br/><br/>
A télécharger sur son site : [http://perso.orange.fr/surok/promenade/html/promenade.htm http://perso.orange.fr/surok/promenade/html/promenade.htm]<br/>
A télécharger sur son site : [http://perso.orange.fr/surok/promenade/html/promenade.htm http://perso.orange.fr/surok/promenade/html/promenade.htm]<br/>
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 http://www.ikiru.ch/celestia/forum/index.php?showtopic=45].
Si vous avez des remarques, des commentaires au sujet de ce soft, postez-les ici : [http://www.jcvignoli.com/celestia/forum/viewtopic.php?t=45 http://www.jcvignoli.com/celestia/forum/viewtopic.php?t=45].
<br/>A noter qu'un bug empêchait certains d'utiliser ''Promenade''. Bug résolu, qui était dû à deux .dll manquantes : msvbvm60.dll
<br/>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.)
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.)

Dernière version du 22 avril 2024 à 21:55

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 propre à Celestia. Ils enchaînent de manière linéaire une série de commandes et ne permettent pas à l'utilisateur d'influer sur leur déroulement, si ce n'est de l'interrompre en cours d'exécution.
  • Les fichiers .celx utilisent une partie des fonctions du langage Lua. Plus complexes, ils autorisent - en plus des commandes propres à Celestia - des variables, un traitement mathématique et logique des valeurs, des tests, des boucles 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 ont 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 également d'un éditeur de texte amélioré mais 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 dossier "macro" dans votre dossier personnel : "utilisateur\Application Data\Pspad". Enfin, lancez l'application et faites CTRL+MAJ+F5 pour faire apparaître la liste des fonctions. (Pour toute question concernant l'utilisation de PSPad pour Celestia, voir ici.) (Le lien indiqué n'est pas disponible pour le moment ; pour télécharger PSPad, rendez-vous, par exemple, sur le site de Clubic.)


Quelles sont les principales commandes .cel ?

Deux précisions au préalable

1. Certaines commandes figurant ci-dessous ne sont disponibles qu'à partir d'une version précise de Celestia. Dans ce cas, le numéro de la version est indiqué entre crochets. Par exemple, si vous lisez : constelations [v1.5.1], sachez que vous devez avoir installé la version 1.5.1 de Celestia pour utiliser la fonction constelations dans vos scripts.

2. Les commandes listées ci-dessous sont suivies d'un court descriptif, mais en cliquant sur leur nom, il est possible d'obtenir des informations plus détaillées (notamment en ce qui concerne leur syntaxe) et/ou des exemples d'utilisation. Néanmoins, cette liste étant en cours d'élaboration, toutes les commandes ne sont pas présentes. Par ailleurs, les commandes listées ne disposent pas toutes d'une fiche détaillée (elles apparaissent en rouge). Au passage, si vous souhaitez apporter votre contribution, n'hésitez pas !

La liste des commandes

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

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

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

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

  • constelations [v1.5.1]

Activer ou désactiver l'affichage d'une ou plusieurs constellations.

  • constellationcolor [v1.5.1]

Modifier la couleur d'une ou plusieurs constellations.

Supprimer une vue en mode multi-vues.

Quitter Celestia.

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

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

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.

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

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

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

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

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

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

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

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

Jouer un fichier son.

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

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

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

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

Effectuer une rotation du champ de la caméra.

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

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

Régler le niveau de lumière ambiante.

Activer une vue en mode multi-vues.

Régler la magnitude automatique à 45°.

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

Régler le gain de luminosité des galaxies.

Régler les couleurs de la palette des noms d'objets.

Régler les couleurs de la palette des lignes.

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

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

Régler le rayon d'un objet ssc.

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

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

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

Revenir en mode vue unique.

Scinder une vue (-> mode multi-vues).

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

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

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

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

Désactiver le marquage d'un objet.

Désactiver le marquage de tous les objets.

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.jcvignoli.com/celestia/forum/viewtopic.php?t=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.)