Forum Replies Created

Page 5 of 6
  • Nicolas Guionnet

    March 29, 2019 at 5:12 pm in reply to: Motion Blur … present but not blured

    Thanks Steve,

    … I replaced this expression by a simple :
    time*time*100
    … which gives a very funny accelerating effect … and the blur is back.

    So I guess we can conclude that it is the expression’s fault …

  • Nicolas Guionnet

    March 29, 2019 at 4:52 pm in reply to: Motion Blur … present but not blured

    Hi Oleg,
    Thanks for your answer.

    Cross-referencing ? i am not sure that I understand what you mean. (circular definition ?)

    I move the blue gear with the code below that controls its rotation … (but before you read it) … I just changed it to a basic time*1000 … and motion blur is back.

    So it seems that here lies my problem :

    t= time ;
    t0 = 0 ;
    t1 = 14 ;
    pasT = thisComp.frameDuration/1 ;
    SpeedCoef = 5 ;

    // rotation speed or derivative
    function speed(tt) { v = -SpeedCoef*(tt-t0)*(tt-t1) ; return v ; }

    // speed integration to get rotation
    alpha = 0 ;
    for (var i = t0; i <= t ; i = i + pasT) {
    alpha = alpha + speed(i)*pasT;
    }
    alpha

    In fact it is just an innocent way to control the speed of the rotation.
    It is strange that it kills motion blur. … and another details, it is not smooth … there is a step from time to time …

  • Nicolas Guionnet

    March 29, 2019 at 9:42 am in reply to: Motion Blur … present but not blured

    This might help :

  • Nicolas Guionnet

    March 16, 2019 at 6:12 pm in reply to: Smoothing camera movements following a null

    Hi Kalleheikki ! … and thanks !

    Yes that’s a good solution, I think. In fact I posted on another forum the question about the legitimacy of my former recursive approach. The answer was “no way” …
    I took a great deal of time to think of a workaround … and I came to the same idea as you ! Local Average smooths out a function.
    As I read your lines I understand that we could even circumvent a flaw of the recursive method : It’s late ! The first order filter never reaches the position of its target … it’s late.

    (If I am not wrong — again …) With the average method, we could select the values of the target position in a neighborhood ot t … not necessarily the values before. We could apply a set of Gaussian curve coefficient around t … (And yes, with the recursive method you can’t access the future.)
    The video is a loop so the algorithm could also see time as a loop so tMax + 1 = 0

    I am so excited to try this ! I used to do math for the sake of math … but doing math for visual results is really fun … ☺

    Thanks !

  • Nicolas Guionnet

    March 15, 2019 at 4:36 pm in reply to: Smoothing camera movements following a null

    It seems that it is not possible to use the previous position of an Object to calculate its new position.
    The following expression does not work … The NULL should move. (it is in the NULL.position)

    I guess this sort of recursive code is not allowed …
    Any idea ?

    newPosition = [] ;
    if (time>0) {
    lastPosition = thisComp.layer("NULL").position.valueAtTime(time-thisComp.frameDuration);
    // filter core :
    newPosition[0] = lastPosition[0] + 10 ;
    newPosition[1] = lastPosition[1] ;
    newPosition[2] = lastPosition[2] ;
    }
    else {newPosition = [960,540,0] ;}

    [newPosition[0],newPosition[1],newPosition[2] ]

  • Nicolas Guionnet

    March 15, 2019 at 1:55 pm in reply to: Smoothing camera movements following a null

    A DEBUG INSANITY …
    … well, I have been trying to solve this for a few hours. What I see is beyond my (poor) understanding of AE.
    I wrote my expression using this simple filtering algorithm :
    newPositionB = previousPositionB + 0.2*(positionA – previousPositionB)
    This way B follows A (more) smoothly.

    The result I get is almost satisfying, visually. But I checked the value : there is a little error.
    So I pasted my expression in a text layer to debug … and this is crazy :
    The values calculated in the debug text are right … but they are not applied to B’s position.

    Debug text gives me for instance newPosition[0] = 977 but B is at 968 …

    Moreover, in B’s expression, I tested all the intermediary variables (lastPosition, targetPosition ) by affecting them to the first coordinate … and it is consistent with the debug text. ONLY, newPosition … which is calculated from the others remains erroneous …

    So I really don’t understand …

    Does any body have an idea ? … to save my soul before it blows out.
    Thanks !

    // expression for B's position
    targetPosition = thisComp.layer("NULL--All-In-A-Frame").transform.position.value;
    smoothCoeff = thisComp.layer("Curseurs---->").effect("smoothCoeff")("Slider").value/100 ;
    newPosition = [0,0,0] ;
    if (time>0) {
    lastPosition = thisComp.layer("NULL-filtered").position.valueAtTime(time-thisComp.frameDuration);
    // filter core :
    newPosition[0] = lastPosition[0] + smoothCoeff*(targetPosition[0] - lastPosition[0]) ;
    newPosition[1] = lastPosition[1] + smoothCoeff*(targetPosition[1] - lastPosition[1]) ;
    newPosition[2] = lastPosition[2] + smoothCoeff*(targetPosition[2] - lastPosition[2]) ;
    }
    else {newPosition = targetPosition.slice() ;}
    [newPosition[0],newPosition[1] ,newPosition[2] ]

    --------------------------------------------------------------------------------------
    // Expression for debug text
    targetPosition = thisComp.layer("NULL--All-In-A-Frame").transform.position.value;
    smoothCoeff = thisComp.layer("Curseurs---->").effect("smoothCoeff")("Slider").value/100 ;
    newPosition = [0,0,0] ;

    if (time>0) {
    lastPosition = thisComp.layer("NULL-filtered").position.valueAtTime(time-thisComp.frameDuration);
    // filter core :
    newPosition[0] = lastPosition[0] + smoothCoeff*(targetPosition[0] - lastPosition[0]) ;
    newPosition[1] = lastPosition[1] + smoothCoeff*(targetPosition[1] - lastPosition[1]) ;
    newPosition[2] = lastPosition[2] + smoothCoeff*(targetPosition[2] - lastPosition[2]) ;
    }
    else {newPosition = targetPosition.slice() ;}

    "last Position = " + lastPosition + "\n targetPosition = " + targetPosition + "\n newPosition = " + newPosition

  • Nicolas Guionnet

    March 15, 2019 at 1:00 am in reply to: Smoothing camera movements following a null

    Thanks for your help Oleg !

    Converting animation to keyframes, copying it and smoothing the movement through spatial interpolation … is a possible solution but I have to do it every time the animation of NULL1 is changed … and it depends on the behavior of a lot of objects that may change often according to my needs.
    So I need it to be automatic.

    I think I will go for the second option. I will write the filtering expression soon and publish it here (I might not be the only beginner who needs this …)

    Thanks !

  • Nicolas Guionnet

    March 12, 2019 at 11:41 pm in reply to: Shadow + Depth of field

    Hi Michael !
    Thanks ! Good idea. It will look like the radiator of my CPU if I enable shadow on the copies ( but I won’t ! )
    Without shadow and with a sufficient number of copies, this trick should work well !

  • Nicolas Guionnet

    March 12, 2019 at 11:10 am in reply to: Shadow + Depth of field

    Tanks Dave, Thanks Max, (order of appearance ☺ )
    … mmm … it seems tough for a two weeks old baby like me (in AE) … and tuning it would probably be very time consuming. For the more subtle is the idea, the more efforts needed to find the good parameters to make it work … ☺

    I wonder if the time needed for me to learn all this is not longer than the time needed for Adobe to provide us with a new version of AE with extrude and DOF in the same 3D renderer.

    I am not the only one hoping for this I guess … DOF gives so much realism and even charm to a scene …

    Well I made my choice for the moment and will use Classic 3D for the sake of DOF (in a couple of clicks). There may be a way to approach the effect of extruded shapes …

  • Nicolas Guionnet

    March 11, 2019 at 8:59 am in reply to: Shadow + Depth of field

    Thanks Dave,
    I meant that I needed to extrude simple 2d shapes and then give them some shadow and add depth of field.
    And there is no way to extrude shapes in Classic 3d (that I know of).
    And there is no DOF in C4D.
    … I must admit that this is not what I asked. I appreciate your tact. ????

Page 5 of 6

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy