« Script » : différence entre les versions

De Celestia wiki
(Hi ho)
Ligne 1 : Ligne 1 :
== Qu'est-ce qu'un "script" Celestia ? ==
I just want say Hi :)
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".
<br/><br/>
 
== 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>).
<br/>
 
== 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. <br />
 
*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/>
 
== 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_Texte|fichiers en format "texte"]].
<br/><br/>
''Note: A l'origine, Celestia est un logiciel anglophone, et ignore donc les spécificités des langues latines comme les accents.''<br/>
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]].<br/><br/>
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.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].) <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]] ? ==
===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 />
 
===La liste des commandes===
*'''''[[cancel]]'''''<br />
Annuler les commandes [[goto]] et [[track]], et réinitialiser le [[Système de Coordonnées]] sur ''universal''.<br />
 
*'''''[[center]]'''''<br />
Centrer l'objet sélectionné sur l'écran.<br />
 
*'''''[[changedistance]]'''''<br />
Changer la distance entre la caméra et l'objet sélectionné.<br />
 
*'''''[[chase]]'''''<br />
Régler le [[Système de Coordonnées]] sur ''chase''.<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 />
 
*'''''[[follow]]'''''<br />
Suivre l'objet sélectionné - Régler le [[Système de Coordonnées]] sur ''ecliptical''.<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 />
 
*'''''[[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 />
 
*'''''[[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 />
 
*'''''[[labels]]'''''<br />
Activer ou désactiver l'affichage des noms pour les différentes classes d'objets.<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 />
 
*'''''[[lookback]]'''''<br />
Changer instantanément (sans mouvement de caméra) le champ de la caméra de 180°.<br />
 
*'''''[[mark]]'''''<br />
Activer le marquage d'un objet avec le symbole spécifié.<br />
 
*'''''[[move]]'''''<br />
Déplacer la caméra à la vitesse spécifiée.<br />
 
*'''''[[orbit]]'''''<br />
Se déplacer en orbite autour de l'objet sélectionné sans changer le [[Système de Coordonnées]].<br />
 
*'''''[[orbitflags]]'''''<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 />
Jouer un fichier son.<br />
 
*'''''[[preloadtex]]'''''<br />
Pré-charger en mémoire une [[Texture|texture]] avant son affichage à l'écran.<br />
 
*'''''[[print]]'''''<br />
Afficher un message à l'écran sous forme de texte.<br />
 
*'''''[[renderflags]]'''''<br />
Activer / désactiver l'affichage des différentes classes d'objets.<br />
 
*'''''[[renderpath]]'''''<br />
Changer/choisir le chemin de rendu (basic, multitexture, vp, vp-nv, glsl).<br />
 
*'''''[[rotate]]'''''<br />
Effectuer une rotation du champ de la caméra.<br />
 
*'''''[[select]]'''''<br />
Selectionner un objet (planète, satellite, galaxie, etc...).<br />
 
*'''''[[set]]'''''<br />
Régler les valeurs de ''Min Orbit Size'', ''Ambient Light Level'', ''Field Of View'', ''Star Distance Limit'', ''Star Style''.<br />
 
*'''''[[setambientlight]]'''''<br />
Régler le niveau de lumière ambiante.<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 />
 
*'''''[[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 />
 
*'''''[[setposition]]'''''<br />
Régler la position de la caméra dans l'espace.<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 />
 
*'''''[[setvisibilitylimit]]'''''<br />
Régler la magnitude minimale des étoiles à afficher lorsque l'option ''Auto-Magnitude'' est désactivée.<br />
 
*'''''[[seturl]]'''''<br />
Placer la caméra à la position définie par une fonction ''Cell://URL''.<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 />
 
*'''''[[time]]'''''<br />
Régler la date et l'heure en utilisant les formats ''JulianDay'' ou ''UTC''.<br />
 
*'''''[[timerate]]'''''<br />
Régler la vitesse d'écoulement du temps.<br />
 
*'''''[[track]]'''''<br />
Fixer la caméra sur l'objet sélectionné pour le garder centré sur l'écran.<br />
 
*'''''[[unmark]]'''''<br />
Désactiver le marquage d'un objet.<br />
 
*'''''[[unmarkall]]'''''<br />
Désactiver le marquage de tous les objets.<br />
 
*'''''[[wait]]'''''<br />
Insérer une pause dans l'exécution du script (du nombre de secondes spécifiées).<br />
<br/>
 
==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.
<br/><br/>
*[[Script : Spoutnik1|Spoutnik 1]]. Commandes utilisées : '''''time''''', '''''select''''', '''''goto'''''.
*[[Script : Start|Start]]. Commandes utilisées : '''''preloadtext''''', '''''select''''', '''''follow''''', '''''goto''''', '''''wait''''', '''''print'''''.
<br/>
 
==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/>
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/viewtopic.php?t=45 http://www.ikiru.ch/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
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.)

Version du 14 septembre 2011 à 17:07

I just want say Hi :)