• Un couloir animé et un (tout petit) peu hanté

    Bonjour à tous.

    Aujourd'hui, nous commençons à animer le couloir.

    L'animation est relativement simple pour l'instant, et elle compte 250 images.

    Tout d'abord, parlons de la lumière. Une torche ne donne pas une lumière constante dans le temps. Il faut donc pouvoir faire varier la luminosité en fonction du temps. Ou pour être exact, ici, faire varier le falloff_distance. Mais comment la faire varier ? 

    La première solution est d'utiliser une valeur aléatoire. Parfait pour des images fixes, cela génère des changements trop brusques pour une animation.

    Une autre idée est de faire varier périodiquement la luminosité. Un cosinus fonction du temps fonctionne bien, mais l'effet est trop régulier.

    Dernière variante, et c'est celle qui est retenue : une somme de plusieurs cosinus, de fréquences différentes. J'utilise ici cette petite fonction :

    #macro Vacille (ValeurMoyenne,Variation,Frame)
    (ValeurMoyenne + 0.33*Variation*cos(5*Frame*pi/17) + 0.33*Variation*cos(5*Frame*pi/21) + 0.33*Variation*cos(5*Frame*pi/23) )
    #end

    Autre point : la caméra. C'est facile de faire bouger la caméra, en translation ou en rotation. C'est un tout petit peu plus difficile de générer des mouvements souples, sans à-coup.

    J'utilise par exemple pour les rotations cette macro, qui prend une valeur entre 0 et 1, et qui retourne une valeur entre 0 et 1, mais avec une tangente plate en zéro et en 1. Au lieu de donner un mouvement régulier, on a une accélération au départ et une décélération à l'arrivée.

    #macro Souple(Valeur) // bijection [0..1]=>[0..1], assouplit les déplacements
    0.5*(1-cos(pi*Valeur))
    #end

    Pour les déplacements longs, je n'utilise pas cette méthode, car les temps d'accélération et de décélération sont proportionnels à la durée. Je découpe en trois : une phase d'accélération, une phase à vitesse constante et une phase de décélération. Et au lieu d'approximer l'accélération par un arc de sinusoïde, j'utilise un arc de parabole. Le résultat est satisfaisant.

    Ci-dessous un extrait du code de la caméra :

    #switch (IMAGE) 
    #range(0, 20) // une seconde au point de départ
    #declare PositionCam=<200,150,-600>;
    #declare AngleCam=0;
    LaCamera(PositionCam,100,AngleCam,0)
    #break
    #range(20, 30) //tourne à gauche 1/2 seconde
    #declare PositionCam=<200,150,-600>;
    #declare AngleCam=-30*Souple((IMAGE-20)/10);
    LaCamera(PositionCam,100,AngleCam,0)
    #break
    #range(30,50) // une seconde observation
    #declare PositionCam=<200,150,-600>;
    #declare AngleCam=-30;
    LaCamera(PositionCam,100,AngleCam,0)

    (le fichier complet sera bien sûr posté en entier quand tout sera terminé).

     

    Dernier point : le cube du fond sera remplacé par un buste. Qui suit automatiquement la caméra du regard.

    Je range mes maths et je sors la vidéo. 

     

     

    A suivre : vacances !!! Donc quelques jours sans projet.

    A bientôt !

    « Le couloir : croquisQuelques objets et un fantôme carré »

    Tags Tags : , , , , , , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :