Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
ff7:technique:field:bg [Le 16/07/2009 à 13:39] myst6reff7:technique:field:bg [Le 15/08/2022 à 15:43] (Version actuelle) – modification externe 127.0.0.1
Ligne 15: Ligne 15:
 ^0|2 octets^0^| ^0|2 octets^0^|
 ^2|2 octets|1 (utilise des palettes) ou 2 (n'utilise pas de palettes)^| ^2|2 octets|1 (utilise des palettes) ou 2 (n'utilise pas de palettes)^|
-^4|1 octet^1^|+^4|1 octet^1 (activé, si 0 le jeu ne lit pas la suite)^|
 ^5|7 octets^PALETTE|| ^5|7 octets^PALETTE||
-^12|24 octets|Activité des premiers pixels des palettes -**<color green>actPixPal</color>**-^|+^12|20 octets|Activité des premiers pixels des palettes -**<color green>actPixPal</color>**-^
 +^32|4 octets^0||
 ^36|4 octets^BACK|| ^36|4 octets^BACK||
  
Ligne 59: Ligne 60:
 ^119 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|2 octets^0|| ^119 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|2 octets^0||
  
-^Données^^^^+^[[#les_donnees_de_l_image|Données]]^^^^
 ^121 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|7 octets^TEXTURE|| ^121 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|7 octets^TEXTURE||
 ^128 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|nb de pages * 65 540 + 84|**<color blue>[[#les_donnees_de_l_image|Données de l'image]]</color>**^| ^128 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|nb de pages * 65 540 + 84|**<color blue>[[#les_donnees_de_l_image|Données de l'image]]</color>**^|
Ligne 92: Ligne 93:
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
 ^34|2 octets|//Inutilisé//|| ^34|2 octets|//Inutilisé//||
-^36|2 octets|Octets par couleur^1 (palettes) ou 2 (sans palettes)|+^36|2 octets|Octets par couleur^0 (peu de couleurs), 1 (palettes) ou 2 (sans palettes)|
 ^38|4 octets|//Inutilisé//|| ^38|4 octets|//Inutilisé//||
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
Ligne 115: Ligne 116:
 ^26|1 octet|**Paramètre**^| ^26|1 octet|**Paramètre**^|
 ^27|1 octet|**État**^| ^27|1 octet|**État**^|
-^28|1 octet|Transparence par addition ?^0 ou 1+^28|1 octet|Transparence par addition^Booléen
-^29|1 octet|Transparence par addition ?^0 ou 1+^29|1 octet|Transparence par addition ?^Booléen
-^30|2 octets|Transparence par addition^0 (inactive) ou (active)|+^30|2 octets|Transparence par addition ?^01, 2 ou 3|
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
 ^34|2 octets|**<color red>EffectPage</color>**^| ^34|2 octets|**<color red>EffectPage</color>**^|
-^36|2 octets|Octets par couleur^1 (palettes) ou 2 (sans palettes)|+^36|2 octets|Octets par couleur^0 (peu de couleurs), 1 (palettes) ou 2 (sans palettes)|
 ^38|4 octets|Coordonnée Z^| ^38|4 octets|Coordonnée Z^|
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
Ligne 133: Ligne 134:
 ^6|2 octets^0|| ^6|2 octets^0||
 ^8|2 octets^0|| ^8|2 octets^0||
-^10|2 octets^0|| +^10|2 octets|**Position source X**^
-^12|2 octets^0|+^12|2 octets|**Position source Y**^| 
-^14|2 octets|**Position source X**^| +^14|2 octets|**Position source X (2)** (pour les effectPages)^| 
-^16|2 octets|**Position source Y**^|+^16|2 octets|**Position source Y (2)** (pour les effectPages)^|
 ^18|2 octets|Largeur bloc^32| ^18|2 octets|Largeur bloc^32|
 ^20|2 octets|Hauteur bloc^32| ^20|2 octets|Hauteur bloc^32|
Ligne 143: Ligne 144:
 ^26|1 octet|**Paramètre**^| ^26|1 octet|**Paramètre**^|
 ^27|1 octet|**État**^| ^27|1 octet|**État**^|
-^28|1 octet|Transparence par addition ?^0 ou 1+^28|1 octet|Transparence par addition^Booléen
-^29|1 octet|Transparence par addition ?^0 ou 1+^29|1 octet|Transparence par addition ?^Booléen
-^30|2 octets|Transparence par addition^0 (inactive) ou 1 (active)|+^30|2 octets|Transparence par addition ?^0 ou 1|
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
 ^34|2 octets|**<color red>effectPage</color>**^| ^34|2 octets|**<color red>effectPage</color>**^|
-^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale)|+^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale) ou 2 (sans palettes)|
 ^38|4 octets^0|| ^38|4 octets^0||
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
Ligne 168: Ligne 169:
 ^20|2 octets|Hauteur bloc^32| ^20|2 octets|Hauteur bloc^32|
 ^22|2 octets|**Numéro palette**^Commence à la palette n°0| ^22|2 octets|**Numéro palette**^Commence à la palette n°0|
-^24|2 octets|**Id** ?^0|+^24|2 octets|**Id**^0|
 ^26|1 octet|**Paramètre**^| ^26|1 octet|**Paramètre**^|
 ^27|1 octet|**État**^| ^27|1 octet|**État**^|
-^28|1 octet|Transparence par addition ?^0 ou 1+^28|1 octet|Transparence par addition^Booléen
-^29|1 octet^0|+^29|1 octet|Transparence par addition ?^Booléen
-^30|2 octets|Transparence par addition^0 (inactive) ou (active)|+^30|2 octets|Transparence par addition ?^0ou 3|
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
 ^34|2 octets|**<color red>effectPage</color>**^| ^34|2 octets|**<color red>effectPage</color>**^|
 ^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale)| ^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale)|
-^38|4 octets^0||+^38|4 octets|Coordonnée Z^0 ou 999|
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
 ^46|4 octets|Coordonnée Y texture^| ^46|4 octets|Coordonnée Y texture^|
Ligne 195: Ligne 196:
  
 ===== Les données de l'image ===== ===== Les données de l'image =====
-[{{ http://www.wikisquare.com/test/wiki/_media/anfrst_1-page1.jpg|Voila la première page du fichier anfrst_1 affichée en brut, et je me suis servi de la première palette.}}]+ 
 +[{{ :ff7:technique:field:page1.jpg|Voila la première page du fichier anfrst_1 affichée en brut, et je me suis servi de la première palette.}}]
  
 Elles sont toujours précédées par le mot-clé "TEXTURE". Elles sont toujours précédées par le mot-clé "TEXTURE".
Ligne 259: Ligne 261:
  if($Y > 32768) $Y-=65536;  if($Y > 32768) $Y-=65536;
  
- if($X>1000 || $X<-1000) $X=0;//fix X A AFFINER ! + if($X==10000 || $X==-3184) continue;//fix
- if($Y>1000 || $Y<-1000) $Y=0;//fix Y A AFFINER !+
   
  if($X > $largeurMax && $X > 0) $largeurMax = $X;  if($X > $largeurMax && $X > 0) $largeurMax = $X;
Ligne 281: Ligne 282:
 ==== Sprites zone 1 ==== ==== Sprites zone 1 ====
  
-[{{ http://www.wikisquare.com/test/wiki/_media/ancnt3-couche1.png?200|Juste la première zone du fichier ancnt3}}]+ 
 +[{{ :ff7:technique:field:ancnt3-couche1.png?200|Juste la première zone du fichier ancnt3}}]
  
 Pour construire une image, on utilise les Infos sprites. Dans la zone 1, un sprite est une image de 16*16 pixels. On construit cette image grâce aux Infos sprites (positions et autres infos), aux données de l'image (pour créer les pixels) et aux palettes (pour les couleurs). Pour construire une image, on utilise les Infos sprites. Dans la zone 1, un sprite est une image de 16*16 pixels. On construit cette image grâce aux Infos sprites (positions et autres infos), aux données de l'image (pour créer les pixels) et aux palettes (pour les couleurs).
Ligne 324: Ligne 326:
 Pour chaque octets du sprite de 16*16 pixels, il faut aller chercher la couleur dans la palette (le numéro de palette est donné dans les données du sprites). Un exemple : vous avez l'octet 0x5d, alors il faut aller chercher la **0x5d-ième couleur de la palette**. Comme il y a deux octets par couleur dans une palette, la position dans la palette est **0x5d*2**. Et pour savoir quelle palette utiliser, prenez l'info dans les sprites data (ça va de 0 à nbPalette - 1). J'ai développé dans l'article [[pal|palette]] la manière de traduire les deux octets de la couleur en une couleur RVB. Pour chaque octets du sprite de 16*16 pixels, il faut aller chercher la couleur dans la palette (le numéro de palette est donné dans les données du sprites). Un exemple : vous avez l'octet 0x5d, alors il faut aller chercher la **0x5d-ième couleur de la palette**. Comme il y a deux octets par couleur dans une palette, la position dans la palette est **0x5d*2**. Et pour savoir quelle palette utiliser, prenez l'info dans les sprites data (ça va de 0 à nbPalette - 1). J'ai développé dans l'article [[pal|palette]] la manière de traduire les deux octets de la couleur en une couleur RVB.
  
-<note>Si il n'y a pas de palettes, les couleurs sont données directement dans les données de l'image, un pixel = 2 octets. Couleurs sur deux octets : **<color red>rrrrr</color><color green>vvv vvv</color><color blue>bbbbb</color>** (avec r=rouge, v=vert, b=bleu).\\ Par contre ne tracez pas les pixels noirs (r=0,v=0,b=0) !</note>+<note>Si il n'y a pas de palettes, les couleurs sont données directement dans les données de l'image, un pixel = 2 octets. Couleurs sur deux octets : **<color red>rrrrr</color><color green>vvv vv</color>m<color blue>bbbbb</color>** (avec r=rouge, v=vert, b=bleu, m=inconnu).\\ Par contre ne tracez pas les pixels noirs (r=0,v=0,b=0) !</note>
  
 == Complications sur les palettes == == Complications sur les palettes ==
  
-  * Dans l'en-tête (celle au tout début de l'article :-p ), vous avez extrait l'activité des premiers pixels des palettes (que j'ai nommé **<color green>actPixPal</color>**). Celui-ci est une suite de vingt-quatre 0 et 1. En fait, si par exemple le premier octet est 1, cela signifie que toutes les couleurs de la palette n°0 doivent être utilisées, si le premier octet est 0, cela signifie que la première couleur de la palette n°0 ne doit pas être utilisée.\\ Autre exemple : si le quatrième octet est sur 1, cela signifie qu'on peut utiliser toutes les couleurs de la palette n°3, si il est sur 0, cela signifie qu'on ne peut pas utiliser la première couleur de la palette n°3.+  * Dans l'en-tête (celle au tout début de l'article :-p ), vous avez extrait l'activité des premiers pixels des palettes (que j'ai nommé **<color green>actPixPal</color>**). Celui-ci est une suite de vingt-quatre 0 et 1. En fait, si par exemple le premier octet est 0, cela signifie que toutes les couleurs de la palette n°0 doivent être utilisées, si le premier octet est 1, cela signifie que la première couleur de la palette n°0 ne doit pas être utilisée.\\ Autre exemple : si le quatrième octet est sur 1, cela signifie qu'on peut utiliser toutes les couleurs de la palette n°3, si il est sur 0, cela signifie qu'on ne peut pas utiliser la première couleur de la palette n°3.
  
-  * Si vous rencontrez un pixel noir (r=0,v=0,b=0), remplacez-le par la première couleur de la palette (peut importe la valeur de **<color green>actPixPal</color>**).+  * Si vous rencontrez un pixel noir (r=0,v=0,b=0,m=0), remplacez-le par la première couleur de la palette (peu importe la valeur de **<color green>actPixPal</color>**).
  
 == Mini récapitulatif == == Mini récapitulatif ==
Ligne 350: Ligne 352:
 ==== Sprites zone 2 ==== ==== Sprites zone 2 ====
  
-[{{ http://www.wikisquare.com/test/wiki/_media/ancnt3-couche2a.png?200|Première et deuxième zone (sans les effectPages) du fichier ancnt3}}]+[{{ :ff7:technique:field:ancnt3-couche2a.png?200|Première et deuxième zone (sans les effectPages) du fichier ancnt3}}]
  
 Dans la zone 2, on utilise le même procédé que dans la zone 1, sauf pour les infos sprites qui ont un **<color red>effectPage</color>** supérieur à 0. En tout cas en traçant la zone 1 et la zone 2 sauf les effectPage, vous aurez déjà un beau background. Allez faire un tour [[#l_ordre_des_couches|en bas de l'article]] pour prendre conscience de la séparation page/effectPage de la zone 2. Dans la zone 2, on utilise le même procédé que dans la zone 1, sauf pour les infos sprites qui ont un **<color red>effectPage</color>** supérieur à 0. En tout cas en traçant la zone 1 et la zone 2 sauf les effectPage, vous aurez déjà un beau background. Allez faire un tour [[#l_ordre_des_couches|en bas de l'article]] pour prendre conscience de la séparation page/effectPage de la zone 2.
Ligne 356: Ligne 358:
 === Les effectPage === === Les effectPage ===
  
-[{{http://www.wikisquare.com/test/wiki/_media/ancnt3-couche2b.png?200 |Première et deuxième zone (avec les effectPages) du fichier ancnt3}}]+[{{:ff7:technique:field:ancnt3-couche2b.png?200 |Première et deuxième zone (avec les effectPages) du fichier ancnt3}}]
  
 Vous devez utiliser les positions source X (2) et Y (2) : Vous devez utiliser les positions source X (2) et Y (2) :
Ligne 387: Ligne 389:
 ==== Sprites zone 3 ==== ==== Sprites zone 3 ====
  
-Changement majeur : on trace des sprites de 32*32 pixels.+Changement majeur : on trace des sprites de 32*32 pixels. Cette zone est une sorte de background répété au centre de l'écran (comme la propriété ''background: repeat;'' en css).
  
 ==== Sprites zone 4 ==== ==== Sprites zone 4 ====
  
-Rien à ajouter.+Sprites de 32*32. Cette zone est une sorte de background fixé là où se trouve la caméra (comme la propriété ''background: fixed;'' en css).
  
 <clear/> <clear/>
Ligne 397: Ligne 399:
 ===== L'ordre des couches ===== ===== L'ordre des couches =====
  
-C'est un sujet un peu délicat, je vais quand même vous donner les trucs qui marchent souvent. +L'ordre des couches est donné par l'Id des infos SpritesCet id est compris entre 0 et 4096 (inclus), avec 0 le plus près et 4096 le plus éloignéDans les scriptson peut changer cette valeur entre -32768 et +32767 (signed short). Il est donc judicieux de trier les tiles par leur Id.
- +
-  - Premièrement, sachez que Sprites zone 2 doit être tracé en deux fois, une fois juste les sprites sans effectPageune deuxième fois avec effectPage. +
-  - Deuxièmement, Si il y a Sprites zone 3 ET Sprites zone 4 (les deux)l'ordre en est bouleversé : +
-    - zone 4 +
-    - zone 3 +
-    - zone 1 +
-    zone 2 (sans effectPage) +
-    - zone 2 (avec effectPage) +
- +
  
 +Par défaut, les couches ont des id prédéfinis :
 +  * Zone 1 : 4095
 +  * Zone 2 : variable
 +  * Zone 3 : 4096
 +  * Zone 4 : 0  
 + 
 + La zone 4 est toujours devant, la zone 3 derrière, la zone 1 juste devant la 3 et la 2 ça dépend. Ces valeurs peuvent changer par les scripts, si vous voulez optimiser l'affichage, il faut savoir lire les scripts :-) .
 + 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Powered by DokuWiki GNU FDL

Qui sommes-nous ?
Aidez WikiSquare en le faisant connaître !
Sauf mention contraire, tous les textes sont disponibles sous les termes de la GNU Free Documentation License.
Les images sont sous le copyright de leurs auteurs.

Page générée en 0.025457143783569 seconde.