I noticed that on_tick waits for texture streaming causing hiccups and skips a few screenshots, but pre_tick does the work here is updated version
import unreal
class capture(object):
def __init__(self):
unreal.EditorLevelLibrary.editor_set_game_view(True)
self.actors = (actor for actor in unreal.EditorLevelLibrary.get_selected_level_actors())
self.on_pre_tick = unreal.register_slate_pre_tick_callback(self.__pretick__)
def __pretick__(self, deltatime):
try:
actor = next(self.preactors)
shot_name = actor.get_name()
unreal.EditorLevelLibrary.pilot_level_actor(actor)
unreal.AutomationLibrary.take_high_res_screenshot(1920,1080, shot_name + ".png")
unreal.EditorLevelLibrary.eject_pilot_level_actor()
except Exception as error:
print(error)
unreal.unregister_slate_pre_tick_callback(self.on_pre_tick)