Timeline with Widget Blueprint

Hi,

i try to realize a timeline (like in AfterEffects or similar) to let the “player” create a composition.

I have setup a outer border, my visible frame, with Clip to Bounds.Inside there is a CanvasPanel, with an inner border child and this one has a child, the Timeline inner canvas panel.

When scolling left and right, up and down, i do change the position of the inner boder widget.My timeline object widgets are added as child of the inner timeline canvas panel.

So far so good.

The problem, when scrolling to the right, after a certain amount, the timeline objects disappear.When scrolling down, it does not happen.

Any idea?
Here a video that shows the issue.

https://project-k87.de/einstein/unreal_timeline_clipping.mkv

thats slate culling you, not positions. with ClipToBounds on the outer border, children pushed far outside get culled and vanish. down still shows cause vertical bounds are bigger.

turn ClipToBounds OFF on the outer frame and the moving canvas panels, leave it ON only on the viewport border that acts as mask. so only the frame clips, the moving stuff inside doesnt clip itself.

also move the timeline canvas negative instead of pushing inner border big positive, keeps children near origin. if it still pops wrap the timeline in a Retainer or InvalidationBox to force redraw.

This is what i have, only the Timeline_outer_border (that is my mask) has clipping ON.
I need the Timeline_inner_border to do the movement, CanvasPanel has no position attributes.
Also i am changing Inner_border size, depending on childrens in the timeline, but i see already the effect when i add a child in editor.
Retainer and InvalidationBox didnt change anything.

got it, so mask setup is correct then.

if only outer clips and it still culls on the right, its the CanvasPanelSlot bounds. canvas children outside their computed DesiredSize get culled even with parent not clipping.

two things to check:

  1. dont move the Inner_Border by offset, use RenderTransform Translation instead of slot position. render transform moves visually without changing layout slot, so it never leaves its computed bounds and avoids that right-edge cull.
    1. your inner_border SizeToContent must be on and you need to Invalidate Layout after you add children / resize. canvas caches its layout, adding a child wont recompute until next tick. try ForceLayoutPrepass or widget->InvalidateLayoutAndVolatility after you update inner size.
    2. quick test: set Inner_Border RenderTransformTranslation to -500,0 and see if the right edge stops popping. if that fixes it, swap your scroll logic from slot offset to render transform.

Hi, thanks ShadowBr0kerz, RenderTransform did it.

grafik