Google+
3DVF Network :
ico_magazine
Magazine
ico_boutique
Boutique
ico_cgjobs
Portail Emploi
ico_upload
Hébergement d'image
ico_progiss
Progiss
Login
space
space

Accueil / Magazine / Actualité Quotidienne / Inspirations / Tranquilles, la nouvelle sculpture animée de Rémi Brun

 

Tranquilles, la nouvelle sculpture animée de Rémi Brun

Publiée le 11 décembre 2015 par shadows44 (2690 lectures)
space

Rémi Brun

Rémi Brun, fondateur et directeur général de la société de motion capture Mocaplab, présente une nouvelle sculpture cinétique : Tranquilles.
L'installation est exposée jusque mi janvier à l'Amsterdam Light Festival, aux Pays-Bas, et met en scène une scène cyclique : deux personnes se trouvent dans une barque, et l'une des deux rame.

Fidèle à son amour du mouvement, Rému Brun ne s'appuie pas sur une sculpture traditionnelle et se contente de 40 LEDs illuminées. L'animation et le cerveau du spectateur font le reste.
La sculpture a été commandée spécifiquement pour l'Amsterdam Light Festival, avec comme thème imposé "Amitié".

Tranquilles - Amsterdam Light Festival 2015 from Motion in Blue on Vimeo.

Voici d'autres sculptures de Rémi Brun ; un site dédié est également en place.

Rémi Brun's Loopy Lou Light Sculpture at the STARO RIGA 2014 from Motion in Blue on Vimeo.

2013 Showreel for Rémi Brun's Animated Light Sculptures from Motion in Blue on Vimeo.

space
space

Les derniers commentaires (7)

#1
hello j'ai pas compris ton probleme concernant tes particules deja emises... pour l'augmentation au fur et a mesure il te suffit de rajouter un coefficient ----------------------------------------------------------------- //Déclaration de Variables vector $pospp = particleShape1.position ; float $posxpp = $pospp.x ; float $posypp = $pospp.y ; float $poszpp = $pospp.z ; // int $curTime = `currentTime -q`; float $coeff = 1 * $curTime ; if ( $curTime > 500 ) { $posypp = $posypp + sin(time)/150; $posypp = $posypp * $coeff; } // $pospp = ; particleShape1.position = $pospp ; -------------------------------------------------------------------
 
#2
Merci déjà pour le coefficien je n'y avais pas pensé. ensuite pour le problème concernant le particule déjà émise c'est pas facile a d'écrire haha alors je vais essayer d’être plus précis : prenons comme référence la grille, de la frame 0 a 50 mes particules reste sur l'axe central de la grille donc droit on va l'appeler l'axe 0 (ce qui est bien ) ensuite a partir de la frame 50 je commence a faire des oscillation qui va varier entre l'axe +1 et -1 disons jusqu’à la frame 100. (jusque la j'espère que tu comprend :) ) mon problème c'est que a partir de la frame 50 quand mes nouvelle particule commence a emmètre et osciller bein j'ai mes 50 première frame qui reste droite mais qui elle monte en +1 et -1 tout en restant droit moi j'aimerais qu'elle reste sur l'axe 0. pas évident d’expliquer ce problème j’espère que tu as saisie ce que je voulais dire sinon je te ferais une capture d’écran avec des explication dessus. en tout cas merci pour ton aide, c'est appréciable
 
#3
utilise l'attribute particleShape.id ------------------------------------------- int $curTime = `currentTime -q`; if(particleShape1.id > 100) { if ( $curTime > 500 ) { ... ------------------------------------------- dans ce cas tu n'auras des oscillations qu'à partir de la 101e particule. Dans le cas où tu veux driver cette valeur en fonction d'une frame bien precise (appelons la customFrame) plutôt que d'un nombre de particules à proprement dit je ferais un truc du genre : ------------------------------------------- int $curTime = `currentTime -q`; if(particleShape1.id > customFrame * emitter1.rate / fps) { if ( $curTime > 500 ) { ... ---------------------------------------- emitter1.rate est le nombre de particules emise en une seconde. Si tu le divise par le FPS çà te donnes le nombre de particules emise par frame. en multipliant cette valeur par la customFrame çà te donne le nombre de particules emise a la customFrame et tu peux donc en deduire l'id de la derniere particule créée. La formule etant dynamique tu peux animer le rate de l'emitter et la formule fonctionne toujours. Et voilà :d
 
#4
super merci ça avance ça avance je post quand même un screen shot de mon résulta car c'est pas encor ça: Image ----------------------------------------------- vector $pospp = particleShape1.position ; float $posxpp = $pospp.x ; float $posypp = $pospp.y ; float $poszpp = $pospp.z ; // int $curTime = `currentTime -q`; if(particleShape1.particleId > 250 * emitter1.rate / 24) if ( $curTime > 250 ) { $posypp = 0.1 *sin ((time + particleShape1.particleId)/450); } // $pospp = ; particleShape1.position = $pospp ; ----------------------------------------------- j'aimerais ne pas avoir ce decalage qui ce forme a la frame 250 encor merci !!!!
 
#5
hello le probleme c'est que tu assignes soudainement une nouvelle valeur a la posY de tes particules a partir d'un instant T donne, et tu n'indiques pas de prendre en compte la posY de ta particule a l'instant T - 1
 
#6
il faut driver un offset dans le sinus. tu le sais sans doute mais je m'explique quand meme. je considere une fonction sinus du type: amplitude * sin (time * frequence + offset) si je joue sur le parametre d'amplitude je joue sur la 'hauteur' de la courbe. Si je joue sur la frequence, je joue sur la frequence de répetition du patern de la sinusoide. et si je joue sur l'offset je joue sur le placement de ma sinusoide sur l'horizontale. Dans ton cas il serait probablement intéressant de jouer sur l'offset. on sais que sinus est egal a 0 si l'angle est egal à 0° (ou 180°) et c'est ce qui nous interesse pour que le debut de la oscillation soit confondu avec la courbe de droite de ton schema. du coup j'obtiens un truc du genre : -------------------------------------------- sin(time / (startOscillationFrame / fps) -1 + offset) -------------------------------------------- avec startOscillationFrame / fps qui equivaut a la valeur du time au moment ou tu declenche l'oscillation. j'ai donc bien au declenchement time / startOscillationTime = 1 d'ou le besoin de rajouter -1 derriere pour avoir zero. reste a gérer l'offset qui lui aussi doit faire zero au declenchement. tu n'as qu'a le raisonner de la meme maniere et tu obtiens : -------------------------------------------- offset = particlesShape1.id / 250 - 1 -------------------------------------------- dans ce cas l'offset va evoluer de facon tres lente. a toi d'adapter la formule pour qu'il evolue a ta convenance. Pour finir, il faut voir cette formule comme un offest d'une position initiale qui est dans notre cas la position de la derniere particle emise avant le declenchement et qui nous sert de reference pour la suite. cette position on l'appelera initPosition. tu obtiens du coup une formule generale pour la position d'une particule pour l'axe x comme ceci : position.x = initPosition.x + sin(time / (startOscillationFrame / fps) -1 + particlesShape1.id / declenchementFrame - 1) soit par simplification : position.x = initPosition.x + sin(time / startOscillationFrame * fps + particlesShape1.id / declenchementFrame - 2) j'ai pas testé dans une scene mais on doit pas etre loin d'un truc comme çà :d
 
#7
super Merci beaucoup tout fonctionne très bien encore merci pour tout j'ai appris quelque chose d'utile aujourd'hui encore merci pour votre aide !!!!
 
space
space
space
space
space
space
space
space
A Propos | Contact | Publicité
Copyright © 2000-2019 3DVF. Tous droits réservés. | Infogérance serveur | tracker
space