[Batch]T-Gen - Des textures à l'infinies...

Voir le sujet précédent Voir le sujet suivant Aller en bas

Normal [Batch]T-Gen - Des textures à l'infinies...

Message par M.Pong le Lun 13 Jan 2014 - 18:32

Bonjour à tous,
Tout d'abord, je tenais à remercier LSO, pouvoir avoir ouvert cette section sous ma demande.

Le programme avec lequel je l'inaugure n'es pas un jeu, mais un programme qui je pense peut être utilise pour Game Maker.
Ce programme, T-Gen, pour Texture Generator, permet de générer des textures simplement en lisant la valeur hexadécimales d'une couleurs.

Le programme est réalisé en Batch, puis la création de l'image se fait grâce à une commande externe, qui elle a été codé en AutoIt par un ami programmeur, également administrateur d'un forum de programmation dont le lien est dans ma signature. Cette fantastique commande permet de créer une image PNG à partir des couleurs hexadécimale.

Comment utiliser le programme ?:

Tout d'abord, enregistrer le code ci-dessous avec l'extension .bat:
Code:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
COLOR 0F
TITLE T-Gen - Par Dylan Gadacha
:: // Si l'extension du fichier n'est pas .txt, on ferme le programme.
IF /I "%~X1" NEQ ".TXT" EXIT
:: // Si TEXTURE.TXT existe déjà, on le supprime.
IF EXIST TEXTURE.TXT DEL TEXTURE.TXT
:: // On récupère la largeur et la hauteur de l'image dans le fichier.
FOR /F "TOKENS=1 DELIMS=;" %%A IN ('TYPE %1 ^| FIND ";"') DO (SET "WIDTH=%%A")
FOR /F "TOKENS=2 DELIMS=;" %%B IN ('TYPE %1 ^| FIND ";"') DO (SET "HEIGHT=%%B")
SET /A "TOTAL=%WIDTH%*%HEIGHT%"
:: // On récupère les couleurs.
FOR /F "TOKENS=*" %%C IN ('TYPE %1 ^| FIND "#"') DO (SET /A "C+=1")
FOR /L %%D IN (0,1,!C!) DO (
  FOR /F "TOKENS=2 DELIMS= " %%E IN ('TYPE %1 ^| FIND "#%%D"') DO (SET "#%%D=%%EFF")
)
SET /A "TOTAL=!WIDTH!*!HEIGHT!"
ECHO %WIDTH%;%HEIGHT%;BLOCK.PNG;%TOTAL%>TEXTURE.TXT
FOR /L %%F IN (0,1,!TOTAL!) DO (
  CALL:COLOR
  ECHO !LINE!>>TEXTURE.TXT
  TITLE T-Gen - [%%F/!TOTAL!]
  )
)
:: // On traite les données avec HEX2PNG pour créer l'image.
HEX2PNG.EXE TEXTURE.TXT
EXIT
:COLOR
SET /A "PIXEL=%RANDOM%%%!C!
SET "LINE=!#%PIXEL%!"
GOTO:EOF

Ensuite, téléchargez la commande externe HEX2PNG, sans quoi le programme ne fonctionnera pas:
http://www.sendspace.com/file/v9sxkk

Placez bien les 2 fichiers au même emplacement.

Ensuite, c'est là que vous allez paramétrer votre texture en écrivant dans un fichier texte.

Le fichier texte contiendra la taille de l'image et les couleurs qu'il y aura dans la texture (valeur hexadécimales, je vous conseille donc d'utiliser ce site pour la converssion: http://www.proftnj.com/RGB3.htm)

ATTENTION: LE PROGRAMME HEX2PNG CONTIENT UNE PETITE ERREUR DE PROGRAMMATION, LES VALEUR R G B SONT INVERSÉES ET DOIVENT ETRE ÉCRITE COMME TEL: B G R. EXEMPLE: 6699FF DEVIENT FF9966.

Vous devez mettre le numéro devant la couleur en partant de 0 comme tel: #[Numéro] [Couleurs]

Voici donc un exemple de ce que vous devriez obtenir dans votre .txt:

Code:
16;16
#0 0000FF
#1 008000
#2 FF0000

Quand la texture sera générée, elle aura une taille de 16x16 ([LARGEUR];[HAUTEUR]) avec 3 couleurs différentes: ROUGE, VERT, BLEU.

Pour générer la texture, vous n'avez plus qu'a l'enregistrer puis la glisser sur le .bat.
Chaque pixel de l'images aura l'une de ces 3 couleurs, ce qui nous permet d'avoir un grand nombre de possibilité pour une texture 16x16 avec 3 couleurs. RAPPEL: Une image 16x16 = 256 pixels donc 256 couleurs maximum.

Je précise que HEX2PNG ne créer pas de nouvelle image si BLOCK.png existe déjà, mais la remplace. Faite donc une copie de vos textures préalablement.

Un exemple de ce que j'ai obtenu avec la configuration ci dessus:


J'espère que vous avez tout compris même si je trouve que mes explications sont un peu maladroites et confuses, et que vous apprécieriez.

Je réaliserai peut être une version avec un interface graphique, pour éviter d'écrire soit même dans le .txt, avec convertisseur hexadécimal intégré, mais je ne vous promet rien.

Enjoy !
Dylan.
avatar
M.Pong
Petit créateur
Petit créateur

Messages : 44
Pourcentage d'avancement : 5%

Voir le profil de l'utilisateur http://www.bbat.forumeiro.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum