Menu

 

COMMUNAUTE
 Forums
 Votre Compte
 Messagerie Privée

VAMPIRE: BLOODLINES 2
 FAQ
 Images
 Scénario
 Gameplay (soon)
 Perso (soon)
 Disciplines (soon)
 Téléchargements

VAMPIRE: BLOODLINES
 FAQ
 Images
 Scénario
 Gameplay
 Création du perso
 Disciplines
 Equipements
 Villes et Lieux
 Cartes
 Easter Eggs
 Codes
 Tutoriaux
 Téléchargements
 Revue de Presse
 Crédits

VAMPIRE: REDEMPTION
 FAQ
 Images
 Scénario
 Personnages
 Disciplines
 Equipements
 Villes et Lieux
 Codes
 Tutoriaux
 Téléchargements
 Revue de Presse
 Making of
 Crédits

LE MONDE DES TENEBRES
 FAQ
 Les Origines
 Les Clans
 Les Sectes
 Lexique
 Fanarts

A PROPOS
 Contact
 Archive des news
 Liens

PARTENAIRES
 Vampirisme.com
 
none
none
Fichiers .NAM





Ou comment controler des effets spéciaux sur vos textures....
Voici donc pour commencer une traduction de la page HTML qui est presenté en doc avec nodsdk. Je pense que ceci est bien connu des mappers, pour les effets de lumière etc... mais vous pouvez aussi les utiliser pour n'importe quel objet pour rendre des FX surprenants.


INTRO :
Les fichiers NAM (pour Nihilistic animated material, en gros textures animées koa) sont utilisés pour stocker des informations additionelles sur une texture utilisée dans le moteur de jeu. Les nams sont utilisés pour presque toutes les textures montrées dans le jeu, cependant, une texture peut heureusement exister sans .nam. Dans le moteur de jeu de vampire, quand référence est faite a une texture, c ' est le plus souvent sans extension, ainsi chrishead.tga sera appellé chrishead tout court. (remarquez cela en important un nod dans milkshape...). Si un appel est fait a Wall1 par exemple, le moteur va chercher dans le repertoire /materials si il existe un fichier Wall1.nam, s' il n en trouve pas, il affichera Wall1.tga, en utilisant la methode de base de decalco, implicitement donc, il existe un nam pour chaque texture, sauf que parfois, n existant pas en tant que fichier, c est le moteur de jeu qui le genere.

Si les nams permettent de nombreux effets, ils permettent aussi de rappeller un texture de façons différentes, sans trop d augmentation de poids. Ben oui, les nams sont des pauvres fichiers textes super legers, en rappellant un tga (lourd comme bitmap car non compressé) plusieurs fois grâce a divers nams, on evite ainsi la surcharge.

Bon, evidement, pas de softs pour juste cliquer j' veux que ce soit beau et zou lol...faut tout taper par soi meme, mais la syntaxe du code des nams est relativement simple.

FORMAT :
le format de fichier de base contient des mots-clés (keywords) suivis par des paramètres dont la significtion depend de mot-clé initial.
Tous les param sont séparés par des espaces, ou des TABs, et ne sont pas sensibles a la casse (pour les gougnols, peu importe majuscule ou minuscule...). S' en suit donc un tableau explicatif des mots clés (c' est la que je pleure de m etre lancé la dedans moi...), entre <> vous trouverez les paramètres, sinon ça veut tout simplement dire qu il n y en a pas ^^

- Texture : Definit la texture de base a utiliser. Ce keyword peut apparaitre plusieurs fois, par exemple pour une texture animée, on definira donc successivement chaque material, et mieux, si on utilise le meme material en plusieurs PASS (on expliquera ça plus tard) on peut repeter le meme material plusieurs fois avec des effets differents.

- Numframes <#detextures> : Specifie combien d' images seront comptabilisées, pour une texture à animation image par image. A METTRE ABSOLUMENT AVANT LA PREMIERE TEXTURE, pour permettre au moteur de reserver un espace memoire pour l array d image.

- Specular : J' ai pas trop capté celui la...si quelqu'un peut expliquer...

- Masked : Traite la couche alpha du tga comme un alpha1bit, rend donc la texture comme si elle avait des trous transparents (utilisé par exemple pour les sappes de Lucrecia).
Different des blending (melanges) cette technique ne permet pas de garder une couleur pour qu elle agisse sur les textures se trouvant derriere, ça fait...un trou...tout simplement... pour savoir comment faire une couche alpha 1bit dans un tga sous photoshop... ben on verra plus tard.

- Fullylit : Traite la texture comme pleinement eclairée, quelqu' en soit l' eclairage ambiant, utilisé pour les surfaces emetants de la lumière. Cependant, si la texture ainsi traitée est toujours eclairée meme dans le noir, elle n agira pas sur son environement (dommage d ailleurs) et donc ceci ne peut pas servir a faire par exemple une lampe de poche.

- Addblend : Utilise un mode de melange qui ajoute cette texture à la couleur derriere elle, ça donne un effet de luminance, souvent utilisé pour les particule. Pour etre plus français, cette technique vous permet de rendre legerement transparente la texture ciblé, et d ajouter cette derniere aux autres textures (decors) se trouvant derrière elle. Nickel pour rendre, par exemple un nuage de fumée. Pour simplifier le noir complet (RVB 0,0,0) sera 100% transparent, le blanc 100% opaque.

- Subblend : Itou que addblend, sauf qu' au lieu d ajouter , ça soustrait. Super pour rendre une ombre par exemple. La aussi le noir sera 100% opaque, le blanc 100% transparent.

Attention j ai remarqué que les techniques de blending , pour tout autant qu elles permettent des fxs geniaux, semblent deconner quand le modele se trouve devant un prop, meme a plusieurs metres de distance de celui ci, le prop semble passer en avant plan....

- Envmap : Pas capté celle la...a tester...

- Glow : Charge une texture additionelle pour etre utilisée comme "glow map". la glow map est rendu comme une pass additionelle en utilisant un blend additif (addblend=). cette technique sert a rendre certaine partie d'une texture lumineuse, pendant que celle du dessous ne l est pas (pas trop compris celle la...a tester plus profondement).

- Twosided : Très important. L' objet texturé avec ce material sera considéré comme "double-facé" au moment du rendu. ( par exemple, pourquoi les pans de mon manteau apparaissent quand je regarde ma skin de l arriere, mais pas quand je la regarde du devant?? tout simplement parceque les modeles 3D sont normalement simple face, il ne sont pas rendus de l autre coté, si vous pouviez placer votre camera a l interieur d une skin, vous ne la verriez plus, le decors apparaitrait comme si la skin n existait pas. le keyword twosided sert donc a ça, hyper utile pour tout un tas de trucs =))

- Glowramp <#> : Demande a la "glowmap" d avoir ses eclairages controllé par l un des style d eclairage interne au moteur de jeu (peut etre les mappeurs peuvent aider la...je n ai rien capté à celle la).

- Pageflip <#demilisecondes) : Demande a une texture animée image par image de changer d image tout les # milisecondes. Permet en fait de regler le nombre d imgae par seconde de votre animation... les applications vont du simple changement de couleur, a des effets marrants comme pour de l eau, du sang qui coulent, un oeil qui cligne etc..etc... A utiliser avec numframes bien sur...

- Sound : Donne un son a la texture quand les persos marche dessus, utile pour les mappeurs, inutile pour les skinneurs, vu que le son est geré par NOT. vous trouverez la liste des sons valables dans le doc, ou si j ai pas trop la flemme a la fin du post.

- Flicker <#> : Si le material a plusieurs images, flickers demande au systeme de rendu d' alterner entre l image 0 et l image 1 differents systemes d eclairage propres au moteur de rendu (c est la que le # intervient). Utilisé par exemple pour rendre un effet de néon pourri, etc. Par contre j ' ai pas trouvé de liste pour les différents eclairages "internes au moteur", surement que les mappeurs doivent en savoir plus.. merci de contribuer ^^

- Detail : Rien capté...a voir..

- Detailscale : Apparement c est lié a Detail tout court, ça doit permettre d aggrandir ou de reduire la texture sur le modele...

- Pass (nomip) : On rentre dans le balèze. Le mot-clé Pass permet un controle de bas niveau pour definir le blend mode. CE MOT CLE N'EST PAS COMPATIBLE AVEC LA PLUPART DES AUTRES CITES CI-DESSUS. Cette methode permet au skinner de controller separement chaque "pass" d' un shader multipass. PassNum (le parametre) commence a 0 et s' incremente pour chaque passage additionel. c est donc le nom de la texture pour ce passage. Des noms de textures spéciaux sont possibles : $lightmap specifie la lightmap de la surface (si il doit y en avoir une), $lightadd appelle une application de lumiere decalquée sur une source dynamique. Ils sont sensés etre decrit dans un tableau séparé, mais le redacteur a du couiller , et n a fait que reprendre le tableau des sons. j' en ai trouvé quelques uns : full_add produit exactement le meme effet que Addblend, full_sub, le meme que Subblend. Le fichier d exemple a la fin de la doc en presente d' autre, que je vous laisse tester. Quant aux $lightmap etc, je n' y ai rien compris....

- Slide (incrementhorizontal , incrementvertical) : Ne s' utilise qu' avec Pass, permet de faire glisser une texture sur le modele. Les increment sont des nombres, référant à des texels en virgule flottante, et peuvent etre negatif ou posifitf. (bon pas de panique, ça semble compliqué mais ça ne l est pas). Un Slide 0 (1,1) fera glisser la texture référée a la Pass 0 de 1 vers la droite et de 1 vers le haut. Evidemment, de grosses valeurs font glisser les textures super vite, mais alors, qu est ce que ça bouffe comme ressources lol.

Voilà pour les Keywords presentés dans la doc, il en existe peut etre d' autres non cités, comme déjà les param full_add, et tout ça. Je vous invite donc à tester separement chaque effet, pour eviter de s y paumer.

Enfin voici quelques fichiers-exemple, dont celui de Nihilistic, commentés :

pass 0 waterTest.tga modplusdest
pass 1 watertest2.tga modplusdest
pass 2 waterTest.tga modplusdest
pass 3 $lightmap modulatepost
sound wet
slide 0 (0.2,0.1)
slide 1 (0.1,-0.2)
slide 2 (-0.3, -0.05)

Ce fichier ordonne donc 4 passages de textures sur le meme objet, et semble bien sur etre destiné a une surface aqueuse, les pass definissent chaque texture, ainsi que leur mode de blend, au milieu on trouve le son, donc WET (oui c est mouillé) suivi des slide, pour donner une effet de glissé. Remarquez que les valeurs de slide sont relativement petite, l' eau etant quelque chose d assez lent a la normale, pour du feu, ou de l'eclair on peut aller bien plus vite (en gardant toujours a l esprit que ça bouffe des ressources).

2eme exemple les 2 names que j ai utilisé pour la discipline Danse de la Foudre (tomate Foudre 5)
le modele de cette tomate est une gothgirl simplifiée (sans nez sans bouche, cheveux rabotés) puis dupliquée et aggrandit. C' est a dire que le modele comprend 2 couches, une à la taille de la gothgirl normale, puis une plus grande autour de la premiere, ceci permettant de gerer un effet de profondeur.

La couche d origine a reçu cette texture :
__________________________________

fullylit specular addblend
numframes 2
texture boubatest.tga
texture boubatest1.tga
pageflip 30
__________________________________


Donc, ou qu' elle soit elle sera toujours illuminée, specular pour tester mais j ai pas trouvé d effet particulier, et addblend pour qu elle s ajoute aux couleurs derrieres, et aussi bien sur pour donner une effet de transparence. Numframe 2 previent qu' il y aura 2 textures boubatest et boubatest1, qui n est en fait que l inverse colorimetrique de la premiere, pour finir pageflip 30 donne 30ms entre chaque flip. le tout donnant un effet de clignotement.

La couche externe elle a reçu une texture glissante. Voici le nam :
_____________________________________

twosided
pass 0 BoubaTest.tga full_add
slide 0 (-1,-1)
_____________________________________


Twosided, je l' ai mis mais je ne pense pas que ce soit compatible avec l pass. le Pass definit donc la texture, et lui donne un melange additif (full_add), slide fera glisser cette texture a -1, vitesse donc assez excessive.

Voila pour ce tuto NAM... je serais ravi que vous le completiez de vos remarques, et de divers ajouts (help au mappeurs !!! ).









Publié par Bouba l'Ourson

Copyright © by Vampire-Network.net All Right Reserved.

Publié le: 2006-03-28 (3870 lectures)

[ Retour ]
none
none





Vampire-Network.net