Blog / 5 min read · 2026-05-24
트리거 패턴 — Gemini Omni VFX 프롬프트를 위한 "When [action], [transformation]"
Gemini Omni의 화제성 높은 데모에 담긴 문법을 살펴봅니다. 거울 물결, 버블 조각, 나비에서 벌로의 변신을 정교하게 제어하는 트리거 기반 VFX 프롬프트 작성법과 결과 고정 방법을 안내합니다.
I/O 2026에서 가장 화제가 된 Gemini Omni 데모들, 즉 거울 팔 변신, 버블에서 유리 조각으로의 변화, 나비가 벌로 변하는 장면에는 공통된 프롬프트 구조가 있습니다. DeepMind의 공식 가이드에서는 이를 “트리거 패턴”이라 부르며, Omni에서 클립 중간의 변신을 통제된 방식으로 구현하는 가장 깔끔한 방법입니다.
구조
[Base scene]. When [specific trigger action], [specific transformation]. Keep [list] identical.
세 가지 구성 요소로 이루어집니다.
- 기본 장면 — 클립의 시작 상태
- 트리거 — 변신 시점을 표시하는 구체적인 행동
- 변신 + 고정 — 바뀌는 요소와 그대로 유지되는 요소
트리거는 문법적 기준점입니다. 이것이 없으면 Omni는 10초 클립의 언제 변화를 일으켜야 할지 알 수 없고, 변신이 전체 길이에 걸쳐 느리게 진행되거나 첫 1초 안에 몰려 버립니다.
예시 살펴보기
예시 1 — 거울 물결 (DeepMind 공식 데모)
A woman reaches toward a mirror in a Victorian parlor.
When her fingertips touch the glass, make the mirror ripple like liquid
and her arm turn to reflective mirror material.
Keep the parlor, her face, and the warm lighting identical.
이 예시가 효과적인 이유는 다음과 같습니다.
- 기본 장면이 구체적입니다(Victorian 응접실, 여성, 거울).
- 트리거가 모호한 “잠시 후”가 아니라 명확한 물리적 접촉 사건입니다.
- 변신에는 두 가지 변화가 함께 들어갑니다(물결 + 팔의 재질).
- 고정이 이름을 지정한 세 가지 요소를 유지합니다.
예시 2 — 버블 조각 변신
A glass bubble floats slowly above a wooden table.
When the bubble reaches the top of the frame, transform it into a small
porcelain sculpture of a bird mid-flight.
Keep the wooden table, the soft window light, and the slow upward motion identical.
이 예시가 효과적인 이유는 다음과 같습니다.
- 트리거가 물리적 접촉 대신 공간적 위치(프레임 상단)를 사용합니다.
- 변신이 모호한 형태 변화가 아니라 구체적으로 명명된 물체(도자기 새)입니다.
- 고정이 움직임을 명시적으로 보존합니다. 새도 계속 위로 천천히 떠올라야 합니다.
예시 3 — 나비 → 벌 (Google 출시 데모 변형)
A monarch butterfly hovers near a sunflower in a sunny meadow.
When the butterfly lands on the sunflower's center, transform it into a worker bee
collecting pollen.
Keep the sunflower, the meadow background, and the warm golden lighting identical.
이 예시가 효과적인 이유는 다음과 같습니다.
- 트리거가 나비가 착지하는 순간으로, 명확한 단일 프레임 이벤트입니다.
- 변신이 같은 크기와 의도를 유지합니다(“collecting pollen”이 행동을 이어 갑니다).
- 고정이 환경을 유지하므로 시선이 변신에 집중됩니다.
Omni가 잘 처리하는 트리거 유형
| 트리거 유형 | 예시 표현 | 신뢰도 |
|---|---|---|
| 물리적 접촉 | ”When her fingertips touch the glass” | 🟢 높음 |
| 공간적 위치 | ”When the bubble reaches the top of frame” | 🟢 높음 |
| 특정 행동의 완료 | ”When she finishes pouring the water” | 🟢 높음 |
| 카메라가 피사체에 도달 | ”When the camera reaches her face” | 🟡 양호 |
| 숫자로 지정한 시간 | ”At the 5-second mark” | 🟡 양호(다만 덜 자연스러움) |
| 모호한 타이밍 | ”After a moment” / “Then” | 🔴 피하기 |
이 패턴이 작동하는 이유는 Omni가 계획할 수 있는 명확한 전후 구조를 제공하기 때문입니다. 모호한 트리거는 모델이 타이밍을 추측하게 하며, 그 결과 변신이 번져 보이거나 갑작스럽게 튀는 장면이 만들어집니다.
트리거 + 고정 + 기본 장면 — 흔한 실수
실수 1: 고정을 빼먹는 경우. Omni는 변신을 수행하지만 응접실의 스타일도 바꾸고, 조명을 바꾸고, 피사체까지 교체합니다. 해결책: “Keep [list] identical.” 뒤에 구체적인 요소 3~5개를 나열하세요.
실수 2: 모호한 트리거. “When she touches the mirror”는 “When her index finger touches the glass”보다 약합니다. 물리적으로, 구체적으로 쓰세요.
실수 3: 트리거와 변신이 같은 행동을 설명하는 경우. “When the leaves fall, the leaves turn red”라고 하면 Omni는 어느 순간을 기준으로 고정해야 할지 알 수 없습니다. 트리거와 변신을 분리하세요. “When the wind picks up, the leaves turn red and start to fall.”
실수 4: 생성 전 트리거를 쓰는 경우. 트리거는 설정 단계가 아니라 클립 도중에 작동합니다. “Trigger: butterfly lands. Show:…”처럼 쓰지 말고, 세 요소를 모두 포함한 하나의 연속된 프롬프트로 작성하세요.
실수 5: 변신이 둘 이상인 경우. 서로 연동되는 두 가지 변화(거울 물결 + 팔)는 잘 작동합니다. 하지만 세 가지 이상은 대체로 무너집니다. 대신 대화형 편집으로 두 번에 나누세요.
트리거 패턴을 사용할 곳
일반적인 제작 활용 사례:
- 표면 변형 — 물 → 얼음, 천 → 돌, 불 → 재
- 프레임 중간 물체 교체 — 꽃 → 과일, 유리 → 금속
- 캐릭터 상태 변화 — 평온 → 놀람, 낮 → 밤
- 리빌 애니메이션 — 닫힌 봉투 → 접힌 학, 닫힌 꽃 → 개화
- 브랜드 변신 — “When the logo lights up, the product behind it appears”
아바타 기능용 프롬프트에도 이 패턴을 적용할 수 있으며, 이때 피사체로 @username을 사용합니다.
@your_username sits at a desk reading.
When you look up at the camera, smile and wave.
Keep the desk, the warm lamp light, and your sweater identical.
이 방식은 @username 호출과 제한된 트리거를 결합합니다. 토킹 헤드 인트로에 유용합니다.
트리거 패턴을 사용하지 말아야 할 때
- 정적인 장면 — 풍경이나 분위기 중심 영상입니다. 대신 움직임 동사(orbit, pan)를 추가하세요.
- 연속적인 변신 — 클립 전체에 걸쳐 천천히 진행되는 변신은 일반 프롬프트가 더 적합합니다(“watercolor painting slowly forming from blank canvas”).
- 멀티샷 제작물 — 서로 다른 샷 사이를 전환해야 한다면 트리거가 아니라 Google Flow의 체이닝을 사용하세요.
빠른 체크리스트
트리거 패턴 프롬프트를 보내기 전에 확인하세요.
- 기본 장면이 구체적인가요(피사체 + 행동 + 장소)?
- 트리거가 구체적이고 단일 프레임으로 포착되는 사건인가요?
- 변신이 조율된 한두 가지 변화인가요(세 가지 이상이 아닌가요)?
- 고정 목록에 유지할 요소가 이름과 함께 3~5개 들어 있나요?
- 전체 프롬프트가 50단어 이내인가요?
다섯 가지를 모두 충족하면 변신이 깔끔하게 구현됩니다. 하나라도 놓치면 재생성 결과에서 대개 이상한 장면이 나옵니다.
관련 글
- 전체 필드 가이드 — 맥락 속에서 트리거 패턴을 다룹니다.
- “Keep X identical” 고정 — 트리거 패턴의 고정 부분을 자세히 설명합니다.
- 라이브러리의 VFX 프롬프트 — 이 구조를 활용한 제작 사례입니다.
- 용어집 항목 — 공식 정의입니다.
Sources