# Portrait expression blend: visual review

Shared portrait_view.gd and portrait_blend.gdshader now blend aligned expression images over 0.20 seconds. This is an in-place image blend with no geometric face warping. Nearest sampling and alpha-aware colour blending preserve framing and transparent edges.

Integrated into dialogue_view.gd and the F2 gallery. Portrait history is per character; returning speakers blend from their own previous expression, never another character's face. Repeated refreshes do not restart transitions. Rapid expression requests queue the latest target. Node-bound tweens inherit their view's pause behavior.

Rendered the actual components with --review-emotions --capture-review: all four gallery sets, then dialogue expression changes, speaker changes and a returning speaker. Preview captions are independent of the book. Inspected the midpoint gallery capture and dialogue endpoint capture. Dedicated captures use portrait_blend_* names so story captures are not overwritten.

Movie: 665 frames at 60fps (11.08 seconds), nearest-neighbour 1080p, saved as art/previews/portrait_transitions_v1.mp4. The long prologue v5 film remains labelled as predating this feature. No new artwork generation or automated tests were run.
