3
$\begingroup$

I've made a "timer" with animation nodes:convert frame rate + current frame to seconds, trim number and display it in a text object. The goal is to have flexible timer for high-speed video footage and scientific simulation.

This works nicely, but for smaller digits 1/100 or 1/1000 I miss some motion blur. The result looks too crisp. The faster "moving" digits should carry a certain amount of blur to give a more realistic effect. Can this be achieved with animation nodes? Is there a different way to do a timer like this?

last couple of animation nodes in the chain to display the result the resulting time code

Just to clarify: the text object is not moving it just sits there and displays a new number every frame. I can provide a test render video (~85kB) and a test blend file (~600kB) if that helps.

$\endgroup$
  • $\begingroup$ how should the motion blur look like? Like so?: pasteall.org/pic/99215 I don't think that there is a way to control the motion blur for constantly changing text. This effect is only possible if you use the Blender Internal renderer with "Sampled Motion Blur". It does not work with Cycles because there is no movement. Which renderer do you use? $\endgroup$ – Jacques Lucke Feb 14 '16 at 13:05
  • $\begingroup$ Yes, that's the effect I want - like the one in your pasteall link. I'm using cycles. But good to know that I could use it with blender internal. Ok, thanks for the answer! $\endgroup$ – squarespiral Feb 14 '16 at 20:27
5
$\begingroup$

What you are asking for seams more like ghosts of previous frames/numbers or slower fading of those, rather than motion blur.

It can be done several ways, depending on the outcome and render, without resorting to actual motion blur and sampling. Considering that the motion blur would slow renders and the rest of the scene may not need it.

Steps for the Animation Nodes part are pretty much the same:

  • search for time generator (a node that formats as 00:00:00..)
  • have several instances of the text object (that "display" numbers) It has to have deep copy to have different data/texts
  • have a delay for the frame for each instance. In a loop, using instance
  • assign a convenient property to respective instances to further use for transparency, variation in color or other means of "fading them"

after this you can set and use respective property depending on the convenient render or situation:

  • use pass_index (object index) to read in cycles or compositor (it's only integers, so may wanna use 100 or 100/instances or so to get a 0-1 factor in the end)
  • use object color, directly, if you use blender internal. That is just color
  • set a different layer and use compositor render layers

If it's just a screen timer, I would choose a compositor version with all the text and ghosts in separate render layers, that you can further tweak and glow etc. For that I would use alpha and not a serious shading and just adjust in compositor as color etc, see below.


Let's see the animation nodes setup for this:

The basis, create instances and assigns delayed times to them.

enter image description here

Setting the convenient parameter to vary:

  • Set object index (pass index) as 20, 40 etc instead of 0.2, 0.4 .. (needed if cycles, or compositor)
  • Setting the layer, just use object/layers node (The compositor can use layers or object index)
  • Maybe a transform object out to mave the ghosts under the main text a bit
  • Setting the object color for blender internal if the case

enter image description here

Example of using the index in cycles

Cycles only allows vertex color (mesh only :( ) or object index

enter image description here


For compositor the way I would use it:

(same works very well without compositor, you just don't get blur)

I would use layers/render layers and a flat emission for all, then compositor mixing, like this:

enter image description here

note that:

  • If you use this compositor/cycles/An many windows all along, may wanna uncheck AN panel left auto exec and check only the 3 under. Otherwise it may update the compositor continuously. +
  • I add 1 to the index
  • I use Z transform qith a small 002 (works great for simple cycles too)
  • I use 2 layers / 2 renderlayers and render is set to transparent
  • I use the alpha in compositor, + bit of blur for ghosts (may do extra styling for compositor..)
$\endgroup$
  • $\begingroup$ ur welcome. I think the last is best, try first just with cycles, no compositor and layers and blur. maybe it's enough.. $\endgroup$ – o.g. Feb 15 '16 at 10:03
2
$\begingroup$

Within animation-nodes there is no mechanism to add blur to text output (Feb. 2016), also since there is no actual movement of the text object (merely the text itself changes from one frame to the next), sampled motion blur within blender does not have any effect.

The desired blur effect could be achieved upstream, by implementing a much more complicated counter that actually moves the individual letters or could be simulated downstream by adding some blur in the post processing.

$\endgroup$
  • $\begingroup$ It's okay to answer your own questions. $\endgroup$ – someonewithpc Feb 15 '16 at 9:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.