Obligement - L'Amiga au maximum

Lundi 27 mars 2017 - 14:36  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


En pratique : Karate - les bases
(Article écrit par Laurent Stephanoni - août 2004)


1. Introduction

1.1 Karate, c'est quoi ?

C'est un système de création multimédia basé sur des scripts ressemblant à du XML. A tout ceux à qui le XML fait peur, on va dire que c'est basé sur un langage de balise, comme le HTML, mais en plus simple. Si on fait encore peur à des gens, on va dire qu'on a pas besoin de connaître quoi que ce soit pour faire du Karate. Rassurés ?

Ça consiste en un exécutable (appelé Karate) qui va comprendre les scripts (on dit "interpréter" quand on veut briller devant ses amis) et des modules d'effets (les <Fx>), qui se trouvent dans le répertoire "Fx" situé dans le même répertoire que l'exécutable.

1.2 La panoplie du Karatéka

Déjà, il vous faut un bon éditeur de texte. Eh oui, pour l'instant Karate n'a pas d'interface d'aide à la création (à quand un StormKarate ou un KarateBuilder ?). Donc, CygnusEd ou GoldED feront très bien l'affaire, mais si vous n'avez qu'EditPad sous la main, ça suffira.

Ensuite, il vous faudra des outils de manipulations graphiques. Là, chacun ses préférences, mais comme Karate ne manipule que des images 8 bits (256 couleurs), Personal Paint et Deluxe Paint conviendront parfaitement.

Enfin, si vous souhaitez mettre des bruitages/musiques dans votre présentation multimédia, il vous faudra DigiBooster ou un tracker qui puissent sauver au format The Player 6.1 (p61). Dans le premier cas, il vous faudra la bibliothèque dbplayer.library, en version 2.0 pour que Karate puisse relire vos créations sonores. Dans le deuxième cas, cherchez bien, il n'y en a pas, mais il existe sur Aminet un outil de conversion Protracker vers p61.

Dernière étape, la plus importante, récupérez la dernière version de Karate disponible sur son site dédié : k-fighter.net/.

1.3 It's showtime !

Comment exécuter une présentation Karate ? Tout d'abord, il faut que Karate soit correctement installé, c'est-à-dire que son répertoire "Fx" soit à côté de lui. Ensuite, il faut passer en ligne de commande, se placer dans le répertoire de Karate, et taper : "Karate s=chemin/vers/votre/script".

Avec cette ligne de commande, Karate va vous demander le mode d'écran à utiliser. Si vous voulez le fixer, vous pouvez lui donner la taille à utiliser, avec les paramètres "h" (pour height, hauteur) et "w" (pour width, largeur), comme ceci : "Karate s=chemin/vers/votre/script w=320 h=256". (pour avoir, dans ce cas un écran de 320 par 256).

Astuce : pour tester rapidement vos scripts, il existe un mode écran en 320x128 qui permet d'afficher rapidement le résultat de vos expérimentations.

Et pour quitter, vous pouvez pressez la touche "Esc" à tout moment.

Astuce : pour connaître les secrets de Karate, vous pouvez essayer la commande suivante, toujours dans un Shell : "Karate c".
Cette commande lance le mode diagnostic de Karate. Il va ainsi vous faire passer sur la sortie standard tous les objets, commandes, effets qu'il connaît, avec leurs paramètres. Pour sauvegarder ce mini-manuel (même les effets non documentés :)) vous pouvez faire : "Karate c >commands.txt".

Cela va vous créer un fichier commands.txt qui contient toutes les commandes de Karate.

2. La structure d'une présentation Karate

2.1 Mainkscriptkpartfxpa

Karate met en scène des objets, sur lesquels il effectue des effets (Fx). Un effet est modulé par toute une série de paramètres (Pa). Tous les effets joués en même temps sont dans une partie (KPart). Un script (KScript) donne l'enchaînement des parties pour montrer une présentation complète. Enfin, chaque présentation présente un script principal (Main).

Chaque bloc KPart ou KScript peut se trouver n'importe où dans le script, il n'y a aucun ordre imposé.

2.2 La KPart

Concrètement, on crée une partie en posant les lignes suivantes :

<KPART>
 <ID> nom_partie </ID>
 <FX>
  <PA> nom_effet </PA>
  <PA> ... </PA>
  ...
 </FX>

 <FX>...
 </FX>
</KPART>

On peut créer autant de KPart que l'on veut tant que leur ID sont uniques.

2.3 Et le KScript, tu sais ce qu'il te dit le KScript ?

Puis, on crée un script en posant les lignes suivantes :

</KSCRIPT>
 <ID> nom_script </ID>

 <PLAY> nom_partie_1 | nb_frames | frame_de_début | vitesse </PLAY>
 <PLAY> nom_partie_2 | nb_frames | frame_de_début | vitesse </PLAY>
 <PLAY> nom_partie_3 | nb_frames | frame_de_début | vitesse </PLAY>
 ...
 <PLAY> nom_partie_x | nb_frames | frame_de_début | vitesse </PLAY>
</KSCRIPT>

Le paramètre "nb_frames" de <PLAY> indique à Karate pendant combien de temps il doit jouer la scène nom_partie_x. Pour savoir pendant combien de frames faire jouer votre partie, multipliez le nombre de secondes à jouer par 50 (sauf si vous jouez avec la vitesse, auquel cas il faut multiplier par 50 la vitesse).

Le deuxième paramètre, "frame_de_début", permet d'indiquer à Karate qu'il doit sauter un certain nombre de frame et commencer directement à la frame indiquée. Cela permet de reprendre une scène là où on l'avait laissée. On laissera à 0 la plupart du temps.

Le dernier paramètre, "vitesse", indique à quelle vitesse Karate doit aller. On met souvent 1, mais si on veut que Karate ne joue qu'une frame sur deux, on donnera 2, et ainsi de suite. Cela permet d'accélérer les effets sans avoir à tout modifier les paramètres.

Astuce : cela permet aussi de faire jouer un effet à l'envers. Par exemple, la ligne...

 <PLAY> partie | 500 | 1000 | -1 </PLAY>

...fera jouer la partie "partie" pendant 500 frames, en commençant à la 1000e frame, et en reculant. On ira progressivment de la 1000e à la 500e frame.

On peut aussi créer autant de KScript que l'on veut.

2.4 Main

Et enfin, chaque présentation contiendra la ligne :

<MAIN> mon_script_principal | frame_debut | vitesse </MAIN>

La plupart du temps, on laissera "frame_debut" à 0 et vitesse à 1.

3. Les KObjets

3.1 C'est un formidable objet, au prix imbattable de 595 francs !

Pour que votre présentation ait des trucs à montrer, il lui faut des objets. Un objet Karate se reconnaît car il est entre deux balises <Ktruc>...</Ktruc> avec un truc qui peut prendre la valeur image, table, DBM (module DigiBooster), etc. Un objet Karate peut être défini n'importe où à l'intérieur du script, et être utilisé n'importe où à l'intérieur de ce même script (même avant sa définition). Chaque objet, lors de sa création, se voit baptiser d'un nom qui devra être unique. C'est ce nom qui servira durant tout le script à appeler l'objet ainsi créé.

On va maintenant détailler quelques KObjets.

3.2 Les images <KIMG>

Karate peut charger n'importe quel format d'image géré par les datatypes. Quand il charge une image, il charge aussi sa palette.
  • Les images Karate ont quatre utilisations principales.
  • Les images "plain" : l'image telle qu'elle apparaît sous Deluxe Paint ou Personal Paint.
  • Les sprites : la même chose, mais avec la couleur 0 transparente.
  • Les textures : une texture est une image de 256x256. Suivant le type de placage choisi, la couleur 0 pourra ou non être transparente.
  • Les images "light" : il s'agit d'images en dégradé de gris de 64 couleurs.
Grâce à la magie Karate, ces images pourront être utilisées pour créer des effets de lumière (d'où le "light"), en devenant plus ou moins claire ou sombre.

Pour charger une image, une seule méthode, quel que soit le type d'image :

<KIMG> nom_image | disk:chemin/image.truc </KIMG>

Attention, le chemin doit être donné en absolu (disk:...) ou en relatif depuis le répertoire de Karate, mais pas depuis le répertoire de votre script.

Astuce : quand vous distribuerez vos démos, distribuez toujours une démo sous la forme "un répertoire (avec toutes vos données et votre fichier Karate) + un script Shell de lancement", avec comme instruction de tout copier, sous cette forme, dans le répertoire de Karate. Ainsi, vous serez donc sûrs que vos données seront au bon endroit en indiquant comme chemin MonRépertoire/MonImage.iff ou MonRépertoire/MonModule.dbm.

Le script Shell prendra la forme suivante :

; Start Ma Demo
karate s=MonRépertoire/MonScript.k

N'oubliez pas de protéger le script pour qu'il soit lançable directement en faisant, dans un Shell, un "protect MonScriptShell s add".

3.3 Les modules DBM <KDBM>

Karate peut charger n'importe quel module DBM, grâce à l'instruction suivante :

<KDBM> nom_dbm | disk:chemin/module.dbm </KDBM>

Idem pour les modules p61, mais avec :

<KP61> nom_p61 | disk:chemin/module.p61 </KP61>

3.4 Les tables <KTABLE>

Ensuite, bien que Karate vienne avec plein de fonctions mathématiques qui font mal à la tête des étudiants (cos, sin, cost, sint...), on pourra avoir envie de créer sa propre fonction mathématique. Comment ? Tout simplement grâce à une ktable.

Une ktable, est une table qui associe à un temps donné, une valeur réelle (ou un float). On crée ça tout simplement avec :

<KTABLE> nom_table | t0, val0 | t1, val1 | t2, val2 | ....
  .... | tn, valn</KTABLE>

Entre ti et ti+1, la valeur va varier de vali à vali+1, soit proportionnellement, soit avec un effet d'extrapolation polynomiale (ce sera plus "naturel"), selon la méthode utilisée.

Voilà donc en gros les principales bases à connaître avant de se lancer dans Karate. Pour les plus courageux/créatifs d'entre vous, vous pouvez passer à l'article suivant avec un premier exemple concret.


[Retour en haut] / [Retour aux articles]