0

I'm trying to create a timeline that graphically shifts across the screen and a text box which displays the currently selected year as the timeline shifts. To accomplish this, I've created a Python script - my first in Blender. It uses the timeline's X-location to calculate what year should be displayed and then updates the text content.

Everything works great in the design space. When I scrub the timeline and play the animation, the year updates as expected. However, when I go to render the animation, the text content is set to whatever value is currently displayed in the timeline of the design space. It doesn't update; it's like it doesn't take the script into account in the final rendered image - but only in the animation. If I render the current frame to an image, it displays accordingly since the timeline accurately reflects the Python update.

Is there a Render setting or a change required in the Python to get this to update in the output FFMPEG animation? Thanks.

import bpy

text = bpy.data.objects['YearAD'] lbl = bpy.data.objects['ADBC'] timeline = bpy.data.objects['timeline']

def update(self): loc = timeline.location.x

yr = round((-970 - 2020) / (122.71 + 169.293) * (loc + 169.293) + 2020)
text.data.body = str(abs(yr))
if yr <= 0:
    lbl.data.body = 'BC'
else:
    lbl.data.body = 'AD'

def register(): bpy.app.handlers.frame_change_pre.append(update)

def unregister(): bpy.app.handlers.frame_change_pre.remove(update)

register()

Jesse
  • 1
  • 1
  • Does this help? https://blender.stackexchange.com/questions/167551/sun-object-not-moving-when-rendering-animation – Ray Mairlot Jul 02 '20 at 23:11
  • Thanks! Evidently the script was running, but the location.x call needed to be called on the depsgraph evaluated instance of my timeline. Took a little debug to find the proper scope and attach to the correct event handler, but it's working now. Thanks for pointing me in the right direction. – Jesse Jul 03 '20 at 15:57

0 Answers0