|
|
Am 2017-02-13 12:42, also sprach Bald Eagle:
> "Klewlis" <nomail@nomail> wrote:
>> using windows Movie Maker, because I can't afford to buy anything at this time.
>
> I use VideoMach - seems to work well enough for what I want to do most of the
> time.
ffmpeg. It's great. It's the best encoder. Other encoders are losers! Sad!
> One thing I've done for some step-wise animations is to set up my scene file in
> a Switch-Range-Break block - the main animation clock drives the whole scene and
> determines which range block gets rendered, and then each range section has a
> sub-clock that does its own 0-1.
Yes! To me, this is the secret of animation. Everything gets broken down
to a movement of 0-1. Opening a door is 0-1 (0 degrees - 110 degrees)
and then scaled to fit the scene. So,
#declare FirstMoveStart = 0.0;
#declare FirstMoveEnd = 0.1;
#switch (clock)
#range (FirstMoveStart, FirstMoveEnd)
#declare I = AniSegment(FirstMoveStart, FirstMoveEnd);
...
#break
#end
#macro AniSegment(_start, _end)
((clock-_start)/(_end-_start))
#end
so I becomes 0-1 in that range block
Another helper is
///////////////////////////////////////////////////////
// Move a Vector from, to, increment
#macro MoveV(_from, _to, __i)
<_from.x+((_to.x-_from.x)*__i),
_from.y+((_to.y-_from.y)*__i),
_from.z+((_to.z-_from.z)*__i)>
#end
And then, given a starting and end vector, I move between them.
#local V = MoveV(<0,0,0>, <1,1,1>, I)
And one more thing. :)
I always apply acceleration/deceleration to a move. So,
#declare I = AniSegment(FirstMoveStart, FirstMoveEnd);
#declare F = 0.5-(cos(I/2*pi2)/2);
(which is the top left curve here
http://www.buckosoft.com/~dick/pov/curves/ )
This gives a more natural feel to movement.
>
> So 0 to 0.1 will be Clock1, which goes from Clock*10 = 0 to Clock*10 = 1
> Then the next range block gets rendered from 0.11 to 0.2
> (Clock-0.1)*10 = 0 to (Clock-0.1)*10 = 1
>
> Just an idea - I honestly haven't played with Chris Colefax's ClockMod macros,
> so I can't say if that's any easier / better.
I played with them years ago and rejected them. Once you start with them
you're kind of tied in to that system and I needed more flexibility.
One other thing, I don't actually use clock directly. I use
#declare myclock = clock * SceneDurationInSeconds;
which gives me more natural timestamps for cues, and I can vary the
frame rate (number of frames in the scene) independently of the action.
--
dik
Post a reply to this message
|
|