| name | directing-visual-motion |
| description | Directs visual prompts, GIF motion scripts, cinematography, style consistency, and fallbacks, and is used when the Visual Motion Director prepares render-ready panel imagery and motion for a scene. |
Maintains visual consistency, provides style guidance to the Scene Director, and manages motion enhancement (CSS Ken Burns baseline, Veo stretch goal).
Note on interleaved output: Panel illustrations are now generated by the Scene Director via Gemini's interleaved output (text + images in one call). The Visual Motion Director's role has shifted from generating images directly to: (1) defining and maintaining the style bible and character sheets that the Scene Director uses as input context, (2) planning motion enhancements for the generated panels, and (3) managing Veo video generation as a stretch goal.
Use this skill when
- The story needs a consistent visual style bible and character reference descriptions.
- Generated panel images need motion enhancement plans (CSS Ken Burns or Veo video).
- Character and style continuity must be preserved across panels and scenes.
- Veo 3.1 image-to-video generation is being attempted as a stretch goal.
Capabilities
- Defines and reuses a visual style bible across the entire story.
- Maintains character sheets for visual consistency.
- Writes per-panel image prompts with composition, mood, and subject clarity.
- Creates GIF motion scripts — short descriptions of what moves within the 2-3 second GIF:
- character actions (turning, reaching, walking, dancing)
- environmental motion (rain, wind, flickering light, flowing water)
- camera movement (slow zoom, pan, tracking shot) when it enhances the scene
- Plans each GIF as a mini-scene with a clear beginning and end state.
- Thinks like a cinematographer — every GIF should feel intentional, not random motion.
- Specifies fallback behavior: GIF fails → static image with CSS Ken Burns → text-only.
- Outputs typed JSON with all asset metadata.
GIF cinematography principles
- Every GIF tells a micro-story. Even 2 seconds should have purpose — a reaction, a reveal, a shift.
- Match motion to emotion. Slow, gentle motion for reflective moments. Quick, decisive motion for tension.
- Camera movement serves the story. Don't move the camera just because you can. A slow zoom into a character's face during a revelation is meaningful. Random panning is not.
- Start and end cleanly. The first frame should work as a static image (fallback). The last frame should feel like a natural resting point.
- Keep it simple. 2-3 seconds of clear, focused motion beats 5 seconds of chaotic action.
- Consistency across panels. If Panel 1 has a wide shot, Panel 2 shouldn't randomly jump to an extreme close-up unless it's a deliberate storytelling choice.
Workflow
- Read the scene JSON first. Never invent visuals disconnected from the written beat.
- Apply the style bible. Reuse the same art direction, palette, lighting, and character descriptors.
- No photorealistic imagery. AI selects from graphic novel, illustrated storybook, anime/manga-inspired, or stylized — based on story mood. Style must stay consistent within a story.
- Check continuity. Age, costume, setting motifs, and emotional tone must stay consistent.
- Write one image prompt per panel. Include:
- subject and their action/pose
- setting and environmental details
- mood and lighting
- composition and camera framing
- key symbolic detail
- style tags
- Write one GIF motion script per panel. Include:
- what moves (character action, environment, camera)
- direction and speed of motion
- emotional quality of the motion
- duration (2-3 seconds)
- start frame description
- end frame description
- Define fallback metadata. The start frame of the GIF should work as a standalone static image.
- Return typed JSON.
Recommended output fields
- style_bible_id
- character_refs
- panel_prompt (for static image / first frame)
- negative_prompt
- gif_motion_script (describes the actual motion)
- gif_duration_sec
- camera_movement (optional — only when it enhances)
- start_frame_description
- end_frame_description
- fallback_alt_text
Example
{
"panel_id": "p2",
"panel_prompt": "Graphic-novel style, moonlit archive hall, tall shelves of sealed letters, gothic storybook mood, muted indigo and amber palette, medium shot, protagonist reaching toward a glowing letter, cinematic contrast, textured ink lines",
"negative_prompt": "cartoonish comedy, bright daylight, extra limbs, futuristic UI overlays",
"gif_motion_script": {
"action": "The protagonist's hand slowly reaches forward and touches the glowing letter. The letter unfolds itself, casting warm light across their face. Dust motes drift upward in the light.",
"character_motion": "slow deliberate reach, slight trembling in fingers",
"environment_motion": "letter unfolding, dust motes rising, light intensifying",
"camera_movement": "very slow push-in toward the letter",
"emotion": "anticipation building to quiet shock",
"duration_sec": 2.5
},
"start_frame_description": "Protagonist standing before a sealed glowing letter, hand at their side",
"end_frame_description": "Protagonist holding an open letter, warm light on their face, dust motes suspended",
"fallback_alt_text": "A courier opens a glowing letter in a dark hall of archives."
}
Visual guardrails
- Keep style consistency more important than motion complexity.
- Every GIF should have a clear emotional purpose — not motion for motion's sake.
- The start frame must work as a standalone static image (it IS the fallback).
- Do not script motion that would require complex multi-character choreography — keep it achievable.
- If an image prompt is weak, fix clarity before adding motion.
- Camera movement should be subtle and intentional, not showy.
- No photorealistic art style. Keep imagery stylized, illustrated, or graphic-novel inspired.
- Visual style should feel cosmopolitan and globally resonant, not tied to one specific cultural aesthetic.
Fallback chain
- Best case: AI-generated GIF with real motion plays
- Fallback 1: Static image (start frame) with CSS Ken Burns effect
- Fallback 2: Text-only panel with narration
Project references
- AGENTS.md — GIF generation, cinematography within GIFs, fallback chain.
- docs/PRD.md — 2-3 second GIF panels with real motion, fallback behavior, cinematic transitions.
- docs/roadmap.md — MVP includes GIF generation; full video generation is out of scope.