By Frame | v.s. | Realtime


https://forum.reallusion.com/Topic263824.aspx
Print Topic | Close Window

By Alon Dan - 10 Years Ago
Hello All,
Before I'll try to explain my confusion, I must mention that I'm new to iClone and still learning.

OK, so... originally I came from 2D Animation (I'm a professional 2D Animator for many years), why I'm telling you this?
Simple, because in most cases I animate in 24 FPS (frame by frame... ) for the correct timing, sometimes in 25 or 30 if the client ask for it.

In my first attempt of animating a character in iClone 6 (using Character Creator), while the default settings are on realtime, everything works nice and smooth the FPS is always on 60 even when I attached so many props to the character while it's on the move.

I've noticed when I change:  "Realtime" to  "By Frame" everything still shows 60FPS but it moves much slower.
To my understanding "By Frame" is much more precise and recommended to physics calculations such as Hair, Cloth, and Dynamics in general...  and I'm planing to use all these.

Why am I confused?
I want my final render on 24fps, consider lipsync effects on specific parts on the timeline and more stuff I can't think about... but just think about a complete scene to render. so I'm not sure if the final render will look exactly like the Realtime mode (inside preview) or the By Frame...  since in preview they both show FPS: 60  which is realtime and not a final indication, I understand it just let me know that what I see as preview is not skipping frames, but it's confusing me which one to use to look EXACTLY like the final render?

My question is:
Should I work ONLY on "By Frame" mode in order to get the exact timing I see in iClone's preview?
or should I work with the "Realtime" mode? 

Can somebody explain me how should I "look" on the situation to get my 24fps run inside iClone exactly as it will be in the final render?

Thanks ahead for your patience and sorry about my bad English.

By Rampa - 10 Years Ago
Go by the time indicators in the timeline. That's the only way you'll be accurate. Game engines run as fast as they can. Many game engines will run much higher than iClone does. The time markers and the output frame rate determine your final frame rate. The "by frame" runs the engine a bit slower for the physics, but has no effect on the timing of your clips.
By Alon Dan - 10 Years Ago
rampa (12/14/2015)
Go by the time indicators in the timeline. That's the only way you'll be accurate. Game engines run as fast as they can. Many game engines will run much higher than iClone does. The time markers and the output frame rate determine your final frame rate. The "by frame" runs the engine a bit slower for the physics, but has no effect on the timing of your clips.


Thanks for the fast reply rampa! :)
So... the "real" final timing I will get will be based on the "Realtime" mode?  
and the "By Frame" will be just to test physics?

because while I'm animating in iClone I need to know which of these modes I should based on consider timing, since I add lots of keyframes on the timeline manually.

By wires - 10 Years Ago
Alon Dan (12/14/2015)
.........So... the "real" final timing I will get will be based on the "Realtime" mode?  
and the "By Frame" will be just to test physics?

because while I'm animating in iClone I need to know which of these modes I should based on consider timing, since I add lots of keyframes on the timeline manually.



The fps settings in iClone have been confusing users for a long time. My simple advice is to forget about it during production, and to concentrate on just the time. In the Project settings - Ctrl+Shift+P - you can set the timeline to display either Frames or Time.

Exporting a final video render from iClone is the only time that a user can select the desired number of fps - and then only when exporting an AVI file or an image sequence as mpg and wmv are restricted to 30 fps.

The Default Project is set at 1800 Frames, or 30 seconds. At 24 fps you would end up rendering 720 frames, either in an AVI or as an image sequence, and this is where things can get tricky in iClone when setting keyframes.

In this screen shot the timeline shows the Current Frame as 60 Frames:

https://forum.reallusion.com/uploads/images/892b5e64-6e4e-4617-b314-3662.png

But the Time setting shows 00:00:59.

Here the Time setting shows 00:01:00

https://forum.reallusion.com/uploads/images/15d3bee0-c20f-4746-9217-dcab.png

But the Current frame is 61.

Rendering an image sequence at 24 fps using either of the above Timeline cursor positions results in exactly 24 images.

Trying to get accurate frame settings for use in a final render at 24/25 fps is impossible in iClone due to the fact that the fractions of a second are locked to 60 frames, and not to any internationally recognised timecode setting using hh:mm:ss:ff:.

The only chance to obtain any sort of timing accuracy is to view the scene in "Realtime" mode, and setting keyframes while keeping a careful eye on the "Time" setting under the scene window.



By Alon Dan - 10 Years Ago
Hey Gerry, thank you very much for your time and affort explaining this in details, I appreciate it a lot! :)

I think the only reason for the confusion is that the actual speed of the animation is changing (slower in "By Frame") and when rendering... it's much faster.   
So it's not about how many frames pass on the timeline but more like the final result timing (faster / or 1:1 of what you see is what you get).
Usually when we work for clients at the studio we render image sequences so we won't lose quality and than we get into the edit and post. so render uncompressed AVI or image sequence is something I'm familiar with but... yeah, the all "Realtime" and game-engine way is very weird and different to work with compare to 2D Animation or even 3D animation rendering because it is what you see is what you get, I mean the preview timing not the final quality of the render.

Anyways, that's why I needed to know what to based my timing while animating inside iClone.
I guess the Realtime is more likely what I need to work with and not "By Frame" but I may be wrong because I didn't work with a massive heavy scene that may drop frames.
By wires - 10 Years Ago
@sw00000p

The OP needs to know how to get accurate timing of keyframes when producing/rendering a scene that will be finished at 24 fps, nothing to do with games. His main question - if you take the time to read his post - concerns getting the correct timing during production by viewing the scene "By Frame" or in "Realtime" to determine keyframe placement.
By Rampa - 10 Years Ago
The preview runs in real-time. The output runs the same as "By Frame". It is not real-time. The real-time will skip frames to keep up with the timing, so you may experience "jumps". This akin to any 3d game bogging down with really complex scenes. Real-time frame rates are variable. The timing is what is considered "real" in this case.

Using "By Frame" is useful if you have a lot of physics in your scene, and you need to have it run smoothly in the preview as your working. You would need it to run smoothly if your baking the physics, for instance. The output render is always "By Frame", so if you never bake physics, you actually don't need to worry about it.

Running in "By Frame" does not change the timing of your project. It just makes the preview slower.
By Alon Dan - 10 Years Ago
Thanks everybody! :)
I've read everything you've said (sorry for the late reply).
Please remember: my questions may sound stupid, but I'm NEW to iclone and I'm still learning... so please be patience if possible, I appreciate any reply. you guys are more than awesome! :D

In conclusion (I hope), my understanding is that "Realtime" Mode is more accurate to the exact TIMING I will get on the final rendered version.
Even if it will drop frames, the timing will be accurate from X point to other X point on the timeline, right?

The "By Frame" is slowing down because it will not drop any frames (great for physics and heavy calculations). BUT it is not accurate consider the exact accurate timing I will see when I will play the final render.

Did I get it right?  
My question related to the FINAL render ACCURATE TIMING while animating inside iClone compare to what I will see on the final rendered version.


By Rampa - 10 Years Ago
Running in "By Frame" or real-time makes absolutely zero difference to the final output.  The output is always "By Frame" and at the frame rate specified in the output panel. This does not mean your movie will be output at 30 FPS. The timeline markings reflect the default settings of 30 FPS. The preview is often able to update much faster than that. My Preview frame rate is almost always slightly above 60 FPS. That is twice what my designated output is. The actual generating of output happens at about 15 frames per second, and can be much lower depending on scene complexity.

The preview can be real-time or "By Frame" The timing of your movie does not change based on that setting. The more accurate part we are talking about is for the physics calculations of the preview. The preview being when you hit the play button, or the space bar.

Being an experienced 2D animator already, you have an advantage in that you already are good at timing your movements. :) Your getting head wrapped around it.
By Alon Dan - 10 Years Ago
rampa (12/15/2015)
Running in "By Frame" or real-time makes absolutely zero difference to the final output.  The output is always "By Frame" and at the frame rate specified in the output panel. This does not mean your movie will be output at 30 FPS. The timeline markings reflect the default settings of 30 FPS. The preview is often able to update much faster than that. My Preview frame rate is almost always slightly above 60 FPS. That is twice what my designated output is. The actual generating of output happens at about 15 frames per second, and can be much lower depending on scene complexity.

The preview can be real-time or "By Frame" The timing of your movie does not change based on that setting. The more accurate part we are talking about is for the physics calculations of the preview. The preview being when you hit the play button, or the space bar.

Being an experienced 2D animator already, you have an advantage in that you already are good at timing your movements. :) Your getting head wrapped around it.


I understand that the output framerate is what I select on the Render tab (which 30 by default) and nothing to do with the preview while animating.
But the reason the accurate is important for me is... if I will animate a complicated scene (lots of keys on the timeline) and it will take X seconds while I preview inside Iclone.
Will this animated scene will be the exact time when I will render it out?  or it will be slower? faster?  (play the final .AVI file or image sequence in edit / post software)

That's where the confusion comes, I'm asking this from your experience with Heavy scenes with physics or not... just "killing iClone" to it's limits since I'm not there yet...   will the output (final render) be the exact same accurate time as in the preview (skip frames or not it doesn't matter in my case because it's a preview) But, timing "should" be the same for me when I animate an action and know it should take X seconds at the final result.

Thanks again for helping! :)

By Rampa - 10 Years Ago
Alon. The output will be always be at the proper speed. Only the preview and the time it takes iClone to actually export each frame changes speed depending on the scene. If your output FPS (in the panel, as you noted) is set to 24 FPS, then each frame exported will be 1/24th/sec., as you would expect.

Your preview could very well be only updating at 3 FPS for a very complicated scene. If your previewing in Real-time, that would appear as big jumps in the movement. If your previewing in "By Frame", it will render the frames at 3 FPS. 

Basically, the timing of your movie will be what you expect it to be.

There are a couple demo scenes. I would look at there length in the timeline, export them, and have a look at how long they are. The abandoned house scene is a good one for that. :)

@sw00000p
Please bee quite if your not choosing to explain it accurately. :) Someone wants to learn here!
By justaviking - 10 Years Ago

Hi Alon Dan,

In our eagerness to help, I hope you don't suffer from "too much" help.  :pinch:

If an animated event happens at 37 1/2 SECONDS on the TIMELINE, it will occur at precisely 37 1/2 seconds in your rendered output.
That is what you should focus on.

I'll add some babbling in a second post in a few minutes...  But what I said in this post has been stated in various ways already, and that should be your primary concern.


P.S
Why does this post have a strangely-colored background?

By Alon Dan - 10 Years Ago
Thanks again you guys for explain everything in details, that's very informative.
I'm learning a lot from you! :)

rampa:  when I try other scenes everything works smooth and nice (so far) but it is not what I meant.
I'll try to be more specific: 
Let's say I have a heavy scene (lots of things going on on the background and maybe some physX etc..)
and a Character jump and punch the wall, in iClone it will take exactly 3.5 seconds (for example) dropping or not dropping on the preview frames it doesn't matter, what matters is.
Will the final render will take the same time for this specific action or iClone will "LIE" to me?
From what you guys explained, it doesn't matter the final render will be EXACTLY 3.5 seconds no matter how heavy it is, what matter is what I did on the timeline, right?

Because I'm guessing if I'll play (spacebar preview) in iClone, this same action I've describe may take longer than 3.5 seconds (not true accurate to what the timeline should shows)... that's why I asked what should I work with in order to get the BEST accurate time of each action or a full animated scene instead of just RENDER every single action to test if it's ok or not.

Sorry if I repeat myself in so many ways, it's just that I would love to know from YOUR experience and advice as I'm learning what to do right, and how to work correct by using experienced iClone users.

The thing is that every scene may play different consider "heavy" and Hardware acceleration. (I'm talking about preview = spacebar, not final render).
So far I didn't run into a problem with my current machine, and it's not the best machine it's ok:
CPU: Intel i7-4770K 3.5GHz,
GPU: Nvidia GeForce GTX-980
RAM: 32GB DDR4

That's because I didn't work on my own heavy scene yet which probably will contain different amount of props / cloth / characters etc... compare to demo scenes from iClone's library. 

Thanks again, and again for your mighty patience with me! :)


EDIT:
I just read what justaviking typed after I posted this... That's answered my question THANK YOU! 

By justaviking - 10 Years Ago
INSERTED...
Responding to your question... iClone will not lie to you.  If an action (running, lifting a prop, falling down, etc.) takes 2 seconds on the timeline, it will take you 2 seconds to watch it if you are in "realtime" mode.




Ah... I got distracted while writing my previous little post, which gave Rampa time to cross-posted a very similar message.  "Hi, Rampa."  <waves>
Oh well... on with the real message...





REALTIME...

It's sort of weird, because you're monitor also refreshes at a certain rate (typically 60 Hz, or 60 fps).  A game or iClone might "compute" an image faster or slower than that.  So the "realtime fps" reported by iClone is simply telling you how quickly your system is able to process your scene.  In a way, it's sort of meaningless.

If you have a really slow scene, it will look choppy.  I had a very complex scene that crushed my computer, and it ran as slow as 3 fps.  Ugh.  It was hard to even edit.  But if something was supposed to happen a 37-seconds, that's when it happened.

In an effort to display events at the right TIME, iClone may skip some frames.  So it will only take you one minute to watch a one-minute animation, but iClone might have to "compute" only 60% of the frames in order to show that one-minute animation in one minute.  Otherwise it might take a minute-and-a-half to watch your one-minute video.  In that case, it would be really hard to animate motions that don't turn out to be too slow or too fast.  So once again, focus on the "time," not the fps.


WHAT'S WRONG WITH REALTIME?

People have mentioned "physics."    Suppose a ball is supposed to bounce on the floor.  If iClone skips (avoids computing) several frames in a valiant effort to play your animation at the proper speed, the ball might "fall through the floor" during the skipped frames.  At frame 110 it's above the floor, and at frame 115 it's below the floor.  It doesn't bounce, and you scratch your head wondering what went wrong.


BY-FRAME TO THE RESCUE...

If you switch to "By Frame" rendering, it will take as much time as needed to fully compute each-and-every frame.  So in the case of the bouncing ball, the ball will properly bounce because the collision between the ball and the floor will not be skipped.

As has been pointed out already, when you render your output (either to video or to a sequence of images), it will use a "by frame" method anyway.  So again, it doesn't really matter.

(In that system-crushing project I mentioned, it took me about 25 seconds to render each frame.  Don't worry, that is abnormal, and I was purposely doing a stress-test.  But the point is the resulting animation played at the proper speed.)


HOW TO USE "BY-FRAME"...

The term is "baking" physics.

I'll skip a couple of details, but if you have physics turned on (such as between the ball and the floor), you can play the scene "by frame" to ensure the bounce happens.  Then you turn physics off (on the ball), and iClone "remembers" the path that was computed when physics was active.  Now you can switch back to realtime display, and the ball will bounce even if a lot of frames get skipped.

Whether you "bake" physics or not, you'll still get the correct result when you produce your final animation.


CLOSING...

I hope this addition helped more than it hurt.  Be persistent, continue to ask questions, good luck, and have fun.

By Alon Dan - 10 Years Ago
justaviking your last post is VERY INFORMATIVE and VERY HELPFUL not only for me but to anybody else who may have a confusion while start animating in iClone!
I know that everybody else already answer this in different ways and I appreciate it.

But after reading this specific post by you it was very clear because of the great examples you gave that answered every single question that confused me all over.

I will be happy if this post of yours will be notice to other new iClone users, it will remove all FPS and timing confusion right away. THANK YOU and everybody else who helped in this thread.

This community is AMAZING! you guys are very cool and I appreciate every single one of you for your kind help and patience. :)
By Kelleytoons - 10 Years Ago
Viking,

Your posts have a blue background because someone (most likely the OP) marked them as "Helpful" or some such -- that's what happens around here (far too seldom, IMHO).
By justaviking - 10 Years Ago
I'm blushing.   :blush:

The iClone community is a wonderful bunch of people, and I'm happy to be a part of the community.  I'm glad I could help.
By animagic - 10 Years Ago
Kelleytoons (12/15/2015)
Viking,

Your posts have a blue background because someone (most likely the OP) marked them as "Helpful" or some such -- that's what happens around here (far too seldom, IMHO).


So that's what it is. I had it happen to me as well. The problem is that after being marked as helpful, the post becomes virtually unreadable...:unsure:
By Kelleytoons - 10 Years Ago
Viking, Magic -- yeah, I agree.  The blue color isn't the best choice, but I guess the idea is to make it "stand out" as a good answer (web site design around here in general needs a bit of work).
By justaviking - 10 Years Ago
animagic (12/15/2015)
The problem is that after being marked as helpful, the post becomes virtually unreadable...:unsure:


Ironic.


Kelleytoons (12/15/2015)
Viking, Magic -- yeah, I agree.  The blue color isn't the best choice, but I guess the idea is to make it "stand out" as a good answer (web site design around here in general needs a bit of work).


It would be better if only the left-hand column (where your avatar is) turned blue.  It would still jump out, and the post would still be legible.