module inscription newsletter haut de page forum mobile

Rejeter la notice

formations etalonnage sur davinci resolve

Nos Formations Etalonnage avec Forest reviennent en octobre !
Adoptez une réelle méthodologie d'étalonnage professionnelle et atteignez vos objectifs créatifs avec nos formations intensives sur 3 jours
Toutes les infos
Rejeter la notice

ateliers live resolve avec forest

Ateliers Live Resolve - Formez-vous en ligne tous les mois avec Forest !
Faites rapidement évoluer la qualité de vos étalonnage avec nos ateliers mensuels de 3h.
Toutes les infos
Rejeter la notice

Formation Lumière - Pratique Intensive du 14 au 16 octobre à Paris
Formez-vous avec cet atelier de pratique intensive dans des conditions exceptionnelles ! Formation finançable.
Toutes les infos

Ateliers et Formations

[Problème] Le mystère du seedRandom maudit !

Discussion dans 'Adobe After Effects' créé par Sylvanounet, 17 Août 2012.

Tags:
  1. Sylvanounet

    Points Repaire:
    1 200
    Recos reçues:
    1
    Messages:
    93
    Appréciations:
    +0 / 3 / -0
    Vous avez bien lu, c'est Le mystère du seedRandom maudit ! :rolleyes:
    Ce qui signifie en gros que j'ai besoin de votre aide :D

    D'après ce que j'avais compris avec la fonction seedRandom dans les expressions de after effects, et d'après tous les tests que j'avais fait jusqu'alors (ce qui est quand même le comble), quand on indiquait par exemple:
    Code:
    seedRandom (1234, true);
    random (0, 10);
    Sa produisait un certain nombre entre 0 et 10 inclus.

    Et ensuite quand on copiait l'objet (le calque) dans lequel on avait écrit cette expression, ca produisait le même nombre dans ce nouveau calque puisque le seed ne change pas (1234).

    Jusqu'au moment ou précisément ce matin, j'allume mon ordi, je fais ce petit test tout bête pour vérifier un truc (rien à voir), j'avais mis cette expression pour la rotation du calque, et la je copie ce calque, mince la rotation aléatoire n'est plus la même :perplexe: :perplexe: Pareil pour n'importe quel calque si je le copie autant de fois que je veux, c'est comme si il rajoutait index comme ceci:
    Code:
    seedRandom (index, true);
    random (0, 10);
    J'utilise after effects 7, et la boucle for est completement bugué pour ma part en tout cas (voir la fin de ce sujet: http://www.repaire.net/forums/adobe...cement-lineaire-aleatoire.html/post1970095409), alors la question c'est: est ce que c'est pas tout mon logiciel qui serait completement bugué? Suis-je fou? Pourquoi je passe des journées entières avec des bug à la con de boucle for ou de random alors que j'aimerais bien avancer dans mes vidéos? Pourquoi les mecs de adobe disent que c'est du javascript alors que ca ne se comporte pas comme du javascript?

    Merci d'avance pour votre aide! :cry2:
     
  2. Sylvanounet

    Points Repaire:
    1 200
    Recos reçues:
    1
    Messages:
    93
    Appréciations:
    +0 / 3 / -0
    Et pour vous montrer que je ne raconte pas des conneries, je peux vous assurer dans le script suivant que si hier je ne mettait pas + 2 dans le deuxième seedRandom mais que je mettait + 1 (comme le premier seedRandom), alors les mouvements de ma caméra (c'est la cible d'une caméra que j'anime) étaient des diagonales (puisque les images clés de x et y se trouvaient à être les même, ainsi que les valeur de x et y)...

    Code:
    var _n = 0;
    var _screenWidth = thisComp.width;
    var _screenHeight = thisComp.height;
    var _frameCurrentTimeline = time * (1 / thisComp.frameDuration);
    var _frameEndTimeline = (thisComp.duration * (1 / thisComp.frameDuration)) - 1;
    var _frameFirstMin = 1000;
    var _frameMinHorizontalCamera = 150;
    var _frameMaxHorizontalCamera = 350;
    var _valueMaxHorizontalCamera = 20;
    var _keyframeListHorizontalCamera = new Array (0);
    var _valueListHorizontalCamera = new Array (0);
    var _wayHorizontalCamera = new Boolean (false);
    var _keyframePreviousHorizontalCamera = 0;
    var _keyframeNextHorizontalCamera = 0;
    var _valuePreviousHorizontalCamera = 0;
    var _valueNextHorizontalCamera = 0;
    var _frameMinVerticalCamera = 75;
    var _frameMaxVerticalCamera = 175;
    var _valueMaxVerticalCamera = 20;
    var _keyframeListVerticalCamera = new Array (0);
    var _valueListVerticalCamera = new Array (0);
    var _wayVerticalCamera = new Boolean (false);
    var _keyframePreviousVerticalCamera = 0;
    var _keyframeNextVerticalCamera = 0;
    var _valuePreviousVerticalCamera = 0;
    var _valueNextVerticalCamera = 0;
    var _foundKeyframeNextHorizontalCamera = Boolean (false);
    var _foundKeyframeNextVerticalCamera = Boolean (false);
    var _zCamera = thisComp.activeCamera.position [2];
    
    while (_n == 0 || _keyframeListHorizontalCamera [_n - 1] < _frameEndTimeline)
    {
    	seedRandom ((index * (thisComp.duration + 1)) + _n, true);
    	
    	if (_n == 0)
    	{
    		_keyframeListHorizontalCamera [0] = Math.round (random (-_frameFirstMin, 0));
    		_valueListHorizontalCamera [_n] = random (-_valueMaxHorizontalCamera, _valueMaxHorizontalCamera);
    		
    		if (Math.round (random (0, 1)) == 1)
    		{
    			_wayHorizontalCamera = true;
    		}
    	}
    	else
    	{
    		_keyframeListHorizontalCamera [_n] = _keyframeListHorizontalCamera [_n - 1] + Math.round (random (_frameMinHorizontalCamera, _frameMaxHorizontalCamera));
    		
    		if (_wayHorizontalCamera == false)
    		{
    			_valueListHorizontalCamera [_n] = random (-_valueMaxHorizontalCamera, _valueListHorizontalCamera [_n - 1]);
    			_wayHorizontalCamera = true;
    		}
    		else
    		{
    			_valueListHorizontalCamera [_n] = random (_valueListHorizontalCamera [_n - 1], _valueMaxHorizontalCamera);
    			_wayHorizontalCamera = false;
    		}
    	}
    	
    	_n++;
    }
    
    _n = 0;
    
    while (_foundKeyframeNextHorizontalCamera == false)
    {
    	if (_keyframeListHorizontalCamera [_n + 1] >= _frameCurrentTimeline)
    	{
    		_keyframePreviousHorizontalCamera = _keyframeListHorizontalCamera [_n];
    		_keyframeNextHorizontalCamera = _keyframeListHorizontalCamera [_n + 1];
    		_valuePreviousHorizontalCamera = (-_zCamera * Math.tan (degreesToRadians (_valueListHorizontalCamera [_n]))) + (_screenWidth / 2);
    		_valueNextHorizontalCamera = (-_zCamera * Math.tan (degreesToRadians (_valueListHorizontalCamera [_n + 1]))) + (_screenWidth / 2);
    		
    		_foundKeyframeNextHorizontalCamera = true;
    	}
    	
    	if (_foundKeyframeNextHorizontalCamera == false)
    	{
    		_n++;
    	}
    }
    
    _n = 0;
    
    while (_n == 0 || _keyframeListVerticalCamera [_n - 1] < _frameEndTimeline)
    {
    	seedRandom ((index * (thisComp.duration + 2)) + _n, true);
    	
    	if (_n == 0)
    	{
    		_keyframeListVerticalCamera [0] = Math.round (random (-_frameFirstMin, 0));
    		_valueListVerticalCamera [_n] = random (-_valueMaxVerticalCamera, _valueMaxVerticalCamera);
    		
    		if (Math.round (random (0, 1)) == 1)
    		{
    			_wayVerticalCamera = true;
    		}
    	}
    	else
    	{
    		_keyframeListVerticalCamera [_n] = _keyframeListVerticalCamera [_n - 1] + Math.round (random (_frameMinVerticalCamera, _frameMaxVerticalCamera));
    		
    		if (_wayVerticalCamera == false)
    		{
    			_valueListVerticalCamera [_n] = random (-_valueMaxVerticalCamera, _valueListVerticalCamera [_n - 1]);
    			_wayVerticalCamera = true;
    		}
    		else
    		{
    			_valueListVerticalCamera [_n] = random (_valueListVerticalCamera [_n - 1], _valueMaxVerticalCamera);
    			_wayVerticalCamera = false;
    		}
    	}
    	
    	_n++;
    }
    
    _n = 0;
    
    while (_foundKeyframeNextVerticalCamera == false)
    {
    	if (_keyframeListVerticalCamera [_n + 1] >= _frameCurrentTimeline)
    	{
    		_keyframePreviousVerticalCamera = _keyframeListVerticalCamera [_n];
    		_keyframeNextVerticalCamera = _keyframeListVerticalCamera [_n + 1];
    		_valuePreviousVerticalCamera = (-_zCamera * Math.tan (degreesToRadians (_valueListVerticalCamera [_n]))) + (_screenHeight / 2);
    		_valueNextVerticalCamera = (-_zCamera * Math.tan (degreesToRadians (_valueListVerticalCamera [_n + 1]))) + (_screenHeight / 2);
    		
    		_foundKeyframeNextVerticalCamera = true;
    	}
    	
    	if (_foundKeyframeNextVerticalCamera == false)
    	{
    		_n++;
    	}
    }
    
    function animation (frameStartAnimation, frameEndAnimation, valueStartAnimation, valueEndAnimation, curveAnimation)
    {
    	if (time * (1 / thisComp.frameDuration) == frameStartAnimation)
    	{
    		return valueStartAnimation;
    	}
    	else if (time * (1 / thisComp.frameDuration) == frameEndAnimation)
    	{
    		return valueEndAnimation;
    	}
    	else if (time * (1 / thisComp.frameDuration) > frameStartAnimation && time * (1 / thisComp.frameDuration) < frameEndAnimation && valueStartAnimation != valueEndAnimation)
    	{
    		if (valueEndAnimation > valueStartAnimation)
    		{
    			if (curveAnimation == 0)
    			{
    				return valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    			}
    			else if (curveAnimation == 1)
    			{
    				return valueStartAnimation + (((valueEndAnimation - valueStartAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation))) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    			}
    			else if (curveAnimation == 2)
    			{
    				return (valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)))) + ((valueEndAnimation - (valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation))))) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    			}
    			else if (curveAnimation == 3)
    			{
    				if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) < (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return valueStartAnimation + (((valueEndAnimation - valueStartAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation))) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    				}
    				else if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) == (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / 2);
    				}
    				else
    				{
    					return (valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2))))) + ((valueEndAnimation - (valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2)))))) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    				}
    			}
    			else
    			{
    				if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) < (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return (valueStartAnimation + (((valueEndAnimation - ((valueEndAnimation - valueStartAnimation) / 2)) - valueStartAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)))) + (((valueEndAnimation - ((valueEndAnimation - valueStartAnimation) / 2)) - (valueStartAnimation + (((valueEndAnimation - ((valueEndAnimation - valueStartAnimation) / 2)) - valueStartAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation))))) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    				}
    				else if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) == (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / 2);
    				}
    				else
    				{
    					return (valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / 2)) + (((valueEndAnimation - (valueStartAnimation + ((valueEndAnimation - valueStartAnimation) / 2))) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2)))) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2))));
    				}
    			}
    		}
    		else
    		{
    			if (curveAnimation == 0)
    			{
    				return valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    			}
    			else if (curveAnimation == 1)
    			{
    				return valueStartAnimation - (((valueStartAnimation - valueEndAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation))) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    			}
    			else if (curveAnimation == 2)
    			{
    				return (valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)))) - (((valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)))) - valueEndAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    			}
    			else if (curveAnimation == 3)
    			{
    				if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) < (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return valueStartAnimation - (((valueStartAnimation - valueEndAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation))) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    				}
    				else if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) == (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / 2);
    				}
    				else
    				{
    					return (valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2))))) - (((valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2))))) - valueEndAnimation) / ((frameEndAnimation - frameStartAnimation) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    				}
    			}
    			else
    			{
    				if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) < (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return (valueStartAnimation - ((valueStartAnimation - (valueEndAnimation + ((valueStartAnimation - valueEndAnimation) / 2))) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)))) - (((valueStartAnimation - ((valueStartAnimation - (valueEndAnimation + ((valueStartAnimation - valueEndAnimation) / 2))) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)))) - (valueEndAnimation + ((valueStartAnimation - valueEndAnimation) / 2))) / (((frameEndAnimation - frameStartAnimation) / 2) / ((time * (1 / thisComp.frameDuration)) - frameStartAnimation)));
    				}
    				else if (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) == (frameEndAnimation - frameStartAnimation) / 2)
    				{
    					return valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / 2);
    				}
    				else
    				{
    					return (valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / 2)) - ((((valueStartAnimation - ((valueStartAnimation - valueEndAnimation) / 2)) - valueEndAnimation) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2)))) / (((frameEndAnimation - frameStartAnimation) / 2) / (((time * (1 / thisComp.frameDuration)) - frameStartAnimation) - ((frameEndAnimation - frameStartAnimation) / 2))));
    				}
    			}
    		}
    	}
    	else if (time * (1 / thisComp.frameDuration) < frameStartAnimation)
    	{
    		return valueStartAnimation;
    	}
    	else
    	{
    		return valueEndAnimation;
    	}
    }
    
    [animation (_keyframePreviousHorizontalCamera, _keyframeNextHorizontalCamera, _valuePreviousHorizontalCamera, _valueNextHorizontalCamera, 3), animation (_keyframePreviousVerticalCamera, _keyframeNextVerticalCamera, _valuePreviousVerticalCamera, _valueNextVerticalCamera, 3), 0];
    Bref c'est à devenir fou ce logiciel :cry2: C'est un machin aléatoire, d'un jour à l'autre il se passe des choses différentes avec exactement le même code, c'est hallucinant, ca fait presque 10 ans que je programme dans différents languages, je viens de terminer un programme de 12000 lignes de code pour un site web, et c'est vraiment la première fois que je vois des trucs pareil, c'est vraiment affligeant, j'en peux plus :sad: Je passe mes journées entières sur des merdes pareils alors qu'il fait beau je pourrais tourner des vidéos, ... :cry2:
     

Dernières occasions

 

Partager cette page