Area animations · The process

Animations are upscaled
without distorting their motion.

An animation is more than one good-looking image. Its rhythm, transparency and exact place in the scenery must survive, while the flaws exposed by the upscale are corrected.

  • 246area-animation BAMs inventoried
  • ×4frame upscale
  • 30 fpswhen the cycle allows it

A cycle’s journey

The processed cycle keeps
its original duration.

The game’s geometry and timing remain the reference. The pipeline improves the image around that structure without moving the animation.

  1. 01

    Extract

    Separate cycles, frames, RGB and alpha.

  2. 02

    Upscale

    Process every image at ×4.

  3. 03

    Interpolate

    Add the useful in-between images.

  4. 04

    Correct

    Repair edges, joins and masks.

  5. 05

    Rebuild

    Preserve centres, order and duration.

  6. 06

    Review

    Check every animation in its area.

First pass · Local ComfyUI workflow

Every frame is upscaled
four times.

SeedVR 7B rebuilds detail from the game image. The workflow runs locally in ComfyUI on an RTX 5090. Frames are processed separately, then returned to their original order.

Local ComfyUI workflow · SeedVR 7B
ComfyUI workflow showing a vanilla POD frame, its x4 SeedVR 7B upscale and saved output
120 × 175 px480 × 700 pxThe silhouette and position stay unchanged.

Second pass · Topaz Apollo

The cycle goes from seven to fourteen images
without changing its duration.

Topaz creates one image between two existing frames. This fountain moves from 15 to 30 fps while its cycle still lasts about 0.47 seconds.

15 fps7 source frames
Fountain source frame 1Fountain source frame 2Fountain source frame 3Fountain source frame 4Fountain source frame 5Fountain source frame 6Fountain source frame 7
30 fps14 final frames
Fountain final frame 1Fountain interpolated frame 2Fountain final frame 3Fountain interpolated frame 4Fountain final frame 5Fountain interpolated frame 6Fountain final frame 7Fountain interpolated frame 8Fountain final frame 9Fountain interpolated frame 10Fountain final frame 11Fountain interpolated frame 12Fountain final frame 13Fountain interpolated frame 14

The image and its cutout

Every animation uses
both an image and a mask.

The alpha channel tells the engine what is visible. White is opaque, black transparent, while grey preserves soft edges, spray and thin water.

01 · RGBUpscaled RGB colours of the fountain
The colours
×
02 · AlphaAlpha mask of the fountain
What remains visible
03 · RGBAFountain recomposed from its colours and alpha mask
The recomposed animation

Why a simple upscale is not enough

A basic upscale can also
bring the background back.

SeedVR improves the colours, but cannot decide by itself which pixels must remain invisible. Without rebuilding alpha, the frame background returns as blocks and bands.

RGB and alpha are therefore separated. The mask is then rebuilt case by case for water, smoke, fire or hard edges.

Upscaled sphere with the rectangular background of its frame still visible
Upscale alone: colours improve, but transparency breaks.

The POD · Edge fade

A soft edge blends the animation
into the map.

After upscaling, rectangular canvas limits can become visible. A progressive 32-pixel fade at ×4 is applied around the canvas without touching the POD’s centre.

POD before and after a 32 pixel alpha fade around its canvas
BeforeAfter · 32 px fade

Edge study · AR0700 fountain

The mask edge must be
rebuilt cleanly.

A direct upscale preserves the steps from the small original mask. Spline Fit 1 rebuilds a regular curve, then the mask is checked across every phase.

Technical study comparing the normal fountain alpha mask with its Spline Fit 1 reconstruction
Left, the stepped edge. Right, the silhouette rebuilt with Spline Fit 1.
Normal alpha maskNormal fountain alpha mask with a stepped edge
The small original mask, directly enlarged.
Spline Fit 1Fountain alpha mask smoothed with Spline Fit 1
A continuous curve without changing the overall shape.
Final fountain comparison without and with rebuilt edge
Same frame, same water: only the mask edge changes.

Suldanessellar · Joining two waterfalls

Both pieces are joined
into one continuous animation.

In this sub-area, the waterfall is stored in two separate resources. After they are upscaled independently with SeedVR, the pixels along their edges no longer continue in exactly the same way. The join then becomes very visible in game.

01 · Two separate resources
AM2805B · Upper partIsolated upper part of the waterfall animation
AM2805C · Lower partIsolated lower part of the waterfall animation
The images are slightly separated here to show the exact boundary between both resources.
04 · AM28ADD · Assembled frame
One complete frame after assembling both waterfall parts
After correction, both resources form one continuous image.
02 · Raw join after SeedVR
Both waterfall pieces aligned edge to edge with a simulated black seam
Both images are aligned edge to edge. The black line simulates the seam that appeared in game.
Upper part64 pxLower part

01Both images are extended into a shared 64 px area.

02The upper part fades out while the lower part fades in.

03Both edges are merged without doubling the brightness of the water.

03 · Corrected join
Close-up of the final merged waterfall join
The pixels from both edges blend progressively until they form one waterfall.

Occlusion · Temple District

The first occlusion fix
remains too pixelated.

The scenery no longer hid the sphere correctly. Occlusion was first restored from the original outline, but its ×1 edge became far too jagged. I therefore redrew a clean mask by hand.

Large sphere occlusion restored but still heavily pixelated
First correction: architecture appears in front again, but the mask remains too coarse.
Alpha ≠ occlusion

Alpha cuts out the animation itself. Occlusion decides which scenery parts appear in front of it.

02 · Hand-drawn outlineBlack and white occlusion mask hand-painted in Photoshop for the large sphere
The mask follows the architecture’s posts and ring precisely.
03 · Final in-game correctionFinal corrected occlusion of the large sphere in the Temple District
The sphere now passes cleanly behind the structure, without a stepped edge.

No universal recipe

Every animation needs
its own correction.

The tools run in batches, but the decisions remain visual. Water, smoke, fire or machinery: their flaws and corrections are never quite the same.

WATERJoins and loops

Remove seams and keep a steady flow.

STEAMFine transparency

Preserve mask greys without creating halos.

FIRELight and edges

Keep the energy without thickening the flame.

SCENERYLocal occlusion

Adapt the mask to each position on the map.

Batch pipelines

Claude and Codex helped me build the extraction, upscale, interpolation and control tools. I still review every result myself, animation by animation and in game.

The intended result

The final motion stays smooth,
detailed and correctly placed.

The original motion stays recognisable. Most of the work removes what high resolution exposes: steps, halos, seams and incorrect masks.