Obligement - L'Amiga au maximum

Jeudi 25 avril 2024 - 05:38  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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 tous 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 éditeur musical par piste 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 trames ("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 trames, en commençant à la 1000e trame, et en reculant. On ira progressivment de la 1000e à la 500e trame.

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]


Soutenez le travail d'Obligement