Quand la trigo va, tout va ! (~150k d'images)

Répondre
Partager Rechercher
Dans mon obstination insatiable de créer des effets visuels élaborés à partir d'objets plaçables, je me suis cette fois essayé à des formes plus ... sinusoïdales

Ici le but était de créer des "langues de feu" (je sais le terme est assez ridicule mais j'ai pas trouvé mieux ) qui s'approchent en zigzagant de celui qui lance l'effet, créant une sorte d'étoile autour de lui.

Concrètement, le script est tout ce qu'il y a de plus court :

Code PHP:

void CreerFlamme(location lLocint iTaille)
{
    
CreateObject(OBJECT_TYPE_PLACEABLE"feu_"+IntToString(iTaille), lLoc);
    
PlaySound("fs_floatfire");
}


void main()
{
    
location lLoc GetLocation(OBJECT_SELF);
    
vector vPos GetPosition(OBJECT_SELF);
    
vector vRel;
    
location lRel;
    
object oZone GetArea(OBJECT_SELF);

    
int nNombre 8;                            // PARAMETRE : nombre de branches

    
int i;                                      // Compteurs
    
int j;
    
int k;

    
float fPeriode;                             // Periode de la sinusoide
    
float fAmplitude;                           // Amplitude de la sinusoide

    
float fAngle;                               // Angle de rotation de la sinusoide par rapport a l'est (en degres)
    
for(k=0;k<360;k+=360/nNombre)
    {
        
fAngle IntToFloat(k);
        for(
i=0;i<=40;i++)
        {
            
fPeriode 500.0/IntToFloat(abs(i)+5);          // Calcul de la periode en fonction de i
            
fAmplitude 15.0/(abs(i)+5);                   // Calcul de l'amplitude en fonction de i
            
vRel.vPos.cos(fAngle)*IntToFloat(i)/sin(fAngle)*fAmplitude*sin(IntToFloat(i*360)/fPeriode);     // Calcul du decalage par rapport a l'origine
            
vRel.vPos.cos(fAngle)*fAmplitude*sin(IntToFloat(i*360)/fPeriode) + sin(fAngle)*IntToFloat(i)/4;
            
lRel Location(oZonevRel0.0);              // Definition de l'endroit d'apparition de la flamme
            
if(abs(i)>=12)                                  // Choix de la taille de la flamme en fonction de i
                
j=1;
            else if(
abs(i)>=3)
                
j=2;
            else
                
j=3;
            
DelayCommand(IntToFloat(40-i)/10CreerFlamme(lRelj));        // Creation de la flamme
        
}
    }

Et le résultat (avec 8 branches):

http://membres.lycos.fr/theolivierguyot/final.jpg

Et pour vous prouver que ce résultat a demandé pas mal de petits réglages et essais, voici en exclusivité un bêtisier que je trouve assez marrant

http://membres.lycos.fr/theolivierguyot/betisier1.jpg
http://membres.lycos.fr/theolivierguyot/betisier2.jpg
http://membres.lycos.fr/theolivierguyot/betisier3.jpg
http://membres.lycos.fr/theolivierguyot/betisier4.jpg

Pour ceux que ça intéresse, le mod de test est là (avec dedans un ancien effet visuel que j'avais fait, l'escalier céleste) :

http://membres.lycos.fr/theolivierguyot/test FX.mod
Ca me rappel un vieux sujet
L'effet est toujours génial mais la consommation de ressource est toujours aussi monstrueuse. Cela étant surtout du au fait que l'affichage de toutes les animations de flammes.

Jaha Effect
Ah exact, j'ai omis de préciser ce détail :

Mon 1.4 GHz a un peu du mal à digérer l'apparition de 40*8 plaçables en 10 secondes, et de plus le moteur de jeu se vautre littéralement (ça tourne à la séance diapo plus qu'au jeu vidéo) lorsqu'on zoome sur son personnage après apparition de l'effet

Enfin ça peut toujours être intéressant, et puis qui sait, peut être qu'on pourra importer nos scripts dans NWN2 ... dans ce cas là j'aurais pas totalement perdu mon temps (à condition qu'ils reprennent pas le même moteur )

Vala
J'ai fait un petit essai avec l'effet visuel Entangle, et le jeu ramait beaucoup plus en zoom arrière.

A moins de trouver un effet visuel très digeste (et surtout parce que j'ai l'impression que les effets visuels sont moins adaptes pour ce genre de chose), je suis pas sûr que ça arrange les choses.

Dommage
Mais c'est statique ça !
Il faudrait que ce soit animé, que l'étoile tourne sur elle-même dans les 3 dimensions et tout et tout...

...

C'est bon, je connais la sortie
Citation :
Il faudrait que ce soit animé, que l'étoile tourne sur elle-même dans les 3 dimensions et tout et tout...
bah, avec un visual effect qui contient toutes les flammes, sa ce fait, et je pense que ca boufferais moins de ressources... par contre, c'est moins modulable....
En fait l'idéal ça serait des plaçables persos, qui sont à la fois légers en ressource (pas animés par exemple) et qui rendent exactement l'effet voulu.

Enfin bon, c'était juste pour le plaisir des yeux, je pense pas que ça intéresse vraiment quelqu'un pour son module
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés