본문 바로가기
vfxai 잡학지식 vfxai 잡학지식

크로마키 합성 후 머리카락에 초록 테두리가 남을 때: 매트와 디스필 나눠 고치기

vfx 잡학지식 읽는 시간 약 11분 조회 3

크로마키 합성에서 머리카락 가장자리의 초록은 알파가 아니라 색에 남은 스필입니다. Nuke와 After Effects에서 매트와 디스필을 나눠 고치는 순서.

크로마키 합성에서 머리카락 가장자리에 초록빛이 남는다면, 대부분 알파가 아니라 색에 남은 스필입니다. 그래서 Clip Black을 올리거나 Screen Shrink로 매트를 깎아도 초록은 잘 안 빠지고 잔머리만 먼저 사라집니다. 매트는 모양만, 초록은 디스필로 따로 다루면 둘 다 지킬 수 있습니다.

키를 뽑고 배경을 깔았는데 인물 윤곽을 따라 연두색 테두리가 빛나는 장면, 그린스크린 소스를 처음 합성하면 거의 다 겪습니다. 테두리를 없애려고 키 값을 세게 만질수록 머리카락은 뭉툭한 헬멧처럼 변하죠. 이 글은 Nuke와 After Effects에서 이 두 문제를 떼어 놓고 고치는 순서를 다룹니다.

크로마키 합성 3D 렌더 비교: 디스필 전에는 잔머리를 따라 초록 테두리가 남고, 디스필 후에는 잔머리가 갈색으로 남는다
같은 알파로 합성해도 디스필 전에는 잔머리를 따라 초록 테두리가 남고, 디스필 후에는 잔머리가 머리색으로 돌아옵니다. (3D 렌더로 계산한 예시)

크로마키 가장자리의 초록은 알파가 아니라 색에 남아 있습니다

잔머리 한 가닥이 지나가는 픽셀을 생각해 보세요. 카메라 센서에는 머리카락 색과 뒤의 초록 스크린이 섞여 한 색으로 찍힙니다. 이 픽셀을 제대로 처리하려면 두 가지 값이 필요합니다. 하나는 얼마나 비칠지를 정하는 알파, 다른 하나는 초록을 뺀 뒤 어떤 색으로 보일지를 정하는 RGB입니다.

Foundry의 Keylight 문서도 키어가 하는 일을 이렇게 둘로 나눠 설명합니다. 스크린 색과 비교해 투명도를 계산해 알파에 넣는 일, 그리고 픽셀에서 스크린 색을 빼는 디스필입니다. 테두리의 초록은 두 번째 일이 부족해서 남은 것이고, 첫 번째 값인 알파를 아무리 만져도 RGB에 섞인 초록은 그대로입니다.

머리카락 가장자리 픽셀 확대: 키만 뽑은 상태 알파 0.47 G 0.59, 매트만 조인 상태 알파 0, 알파 유지와 디스필 상태 알파 0.47 G 0.30
가장자리 한 픽셀을 확대했습니다. 매트를 조이면 픽셀이 통째로 사라지고, 알파는 두고 G만 (R+B)/2로 누르면 초록만 빠집니다. (계산 예시)

그림의 ③에서 쓴 계산이 가장 기본적인 디스필입니다. 그린스크린이면 G 채널이 R과 B의 평균보다 클 때만 평균값으로 눌러 줍니다. 피부나 갈색 머리처럼 원래 G가 크지 않은 색은 거의 건드리지 않고, 초록이 섞인 픽셀만 골라 내리는 방식입니다.

30초 진단: 알파부터 따로 봅니다

고치기 전에 문제가 모양인지 색인지부터 가릅니다. Nuke에서는 키어 노드 뒤에 뷰어를 연결하고 A 키를 눌러 알파만 봅니다. After Effects에서는 Keylight의 View를 Screen Matte로 바꾸면 알파만 흑백으로 보입니다.

알파 화면에서 보이는 것합성 화면에서 보이는 것어느 쪽 문제인가
머리 안쪽이 회색이거나 구멍이 뚫림인물이 반투명하게 배경이 비침매트(키) 문제
배경 쪽에 회색 얼룩이 남음배경 위에 옅은 초록 막이 깔림매트(키) 문제
속은 흰색, 잔머리는 회색으로 잘 남음잔머리와 윤곽을 따라 초록 테두리색(스필) 문제
속은 흰색인데 윤곽이 딱딱하게 잘림잔머리가 없고 초록 테두리도 남음매트를 과하게 조였고, 스필은 그대로
알파는 멀쩡함테두리가 초록이 아니라 검게 뜸프리멀티플라이 순서 문제

마지막 줄처럼 테두리가 검다면 스필이 아니라 알파와 색을 곱하는 순서의 문제입니다. 이 경우는 검은 테두리와 프리멀티플라이 점검법을 먼저 보세요.

그린스크린 키잉에서 매트는 모양만 책임지게 합니다

알파 화면에서 목표는 단순합니다. 배경은 완전한 검정, 머리와 몸 안쪽은 완전한 흰색, 잔머리와 모션 블러가 걸린 윤곽은 회색으로 남기는 것입니다. Keylight에서는 Screen Matte 항목의 Clip Black을 올려 배경의 회색을 없애고, Clip White를 내려 안쪽의 회색을 채웁니다. Status 뷰는 이런 애매한 값을 과장해서 보여 주니 확인용으로 번갈아 보면 편합니다.

여기서 흔한 실수가 초록 테두리를 없애려고 이 단계에서 계속 조이는 것입니다. Clip 값을 과하게 밀거나 Screen Shrink/Grow(Nuke에서는 Screen Dilate)를 음수로 크게 주면 회색이어야 할 잔머리가 검정으로 떨어지거나 흰색으로 딱딱해집니다. 초록은 여전히 RGB에 남아 있으니 문제는 풀리지 않고 머리카락만 잃습니다.

알파 화면 비교: 과하게 조인 매트는 잔머리가 끊기고, 모양만 맞춘 매트는 잔머리가 회색으로 남는다
매트 단계의 목표는 초록 제거가 아니라 모양입니다. 잔머리의 회색은 남겨야 합니다. (알파 화면, 계산 예시)

머리 안쪽 구멍이 Clip White만으로 안 메워진다면 전체를 더 조이지 말고 안쪽만 채우는 매트를 따로 만드는 편이 낫습니다. 더 세게 뽑은 두 번째 키나 간단한 로토를 안쪽용으로 쓰고, 가장자리는 부드러운 첫 번째 키를 유지하는 방식입니다. Keylight에는 이런 매트를 받는 Inside Mask 입력이 있습니다.

Nuke: 키와 디스필을 두 갈래로 나누기

Nuke에서는 같은 플레이트를 두 갈래로 보내 한쪽에서는 알파만, 다른 쪽에서는 디스필된 색만 만든 다음 합칩니다.

Read (그린스크린 플레이트)
 ├─ A: Keylight           → 알파만 사용
 └─ B: Expression         → 초록만 누른 색
        │
     Copy  (A의 rgba.alpha → B)
        │
     Premult
        │
     Merge (over) ← 배경

B 갈래의 Expression 노드에는 G 채널 칸에 아래 식을 넣고 R과 B 칸은 비워 둡니다. Foundry가 Nuke 문서의 스필 제거 팁(Primatte 항목)에서 소개하는 그린스크린 디스필 식입니다. 블루스크린이라면 B 채널 칸에 두 번째 식을 씁니다.

그린스크린 (green 채널):  g>(r+b)/2?(r+b)/2:g
블루스크린 (blue 채널):   b>(r+g)/2?(r+g)/2:b

식 대신 HueCorrect 노드를 써도 됩니다. 커브 목록에서 g_sup을 고르고 초록 색상 구간의 점을 아래로 내리면 그 색상대의 G만 눌립니다. 식은 전체에 같은 규칙을 적용하고, HueCorrect는 어느 색상대를 얼마나 누를지 눈으로 조절할 수 있다는 차이가 있습니다.

Nuke의 Keylight와 Expression을 두 갈래로 나눠 Copy와 Premult로 합치는 구조, After Effects의 Keylight Intermediate Result와 Advanced Spill Suppressor 순서 개념도
알파는 키어에서, 색은 디스필 갈래에서 가져와 Copy와 Premult로 합칩니다. (구조 개념도)

순서에서 두 가지를 확인하세요. 디스필은 아직 프리멀티플라이하지 않은 원본 플레이트에 걸고, Premult는 Copy로 알파를 붙인 뒤 한 번만 합니다. 키어의 View는 Final Result로 두되, 이 갈래에서는 알파만 가져오므로 Keylight가 만든 색은 쓰이지 않습니다.

Keylight 하나로 끝내고 싶다면 방법이 하나 더 있습니다. 기본값에서는 Use Alpha Bias for Despill이 켜져 있어 알파 계산용 색과 디스필용 색이 묶여 있습니다. 이것을 끄고 Despill Bias 스포이트로 인물의 머리카락이나 피부색을 찍으면 알파는 그대로 두고 디스필만 따로 조절할 수 있습니다. 좋은 알파를 주는 값과 좋은 디스필을 주는 값이 다를 수 있다는 것이 Foundry 문서의 설명입니다.

After Effects: Intermediate Result로 Keylight의 디스필을 끄기

After Effects에서는 한 레이어 안에서 이펙트 순서로 나눕니다. Effects & Presets 패널에서 Keylight + Key Cleaner + Advanced Spill Suppressor 프리셋(Animation Presets의 Image – Utilities 폴더)을 적용하면 세 이펙트가 이 순서로 들어옵니다.

  1. Keylight: Screen Colour 스포이트로 스크린을 찍고, View를 Screen Matte로 바꿔 앞 절처럼 매트만 맞춥니다.
  2. View를 Intermediate Result로: 원본 색에 알파만 붙여 내보내는 모드라 Keylight 자체의 디스필이 들어가지 않습니다.
  3. Advanced Spill Suppressor 켜기: 프리셋에서는 꺼진 상태로 들어오니 이펙트 스위치를 켭니다. 초록 테두리가 여기서 빠집니다.

Advanced Spill Suppressor의 Key Color는 Keylight의 Screen Colour에 익스프레션으로 연결돼 있어 따로 찍지 않아도 됩니다. Method는 Standard가 키 색을 자동으로 감지해 조절할 것이 적고, Ultra는 Premiere Pro의 Ultra Key에서 쓰는 스필 억제를 바탕으로 합니다. Standard로 먼저 보고 피부나 노란 옷까지 색이 틀어지면 Ultra로 바꿔 비교해 보세요.

Keylight의 View가 Final Result인 채로 Advanced Spill Suppressor를 켜면 차이가 거의 안 보일 수 있습니다. Keylight가 이미 디스필을 해 버린 색에 같은 일을 한 번 더 하기 때문입니다. 두 이펙트를 함께 쓸 때는 Intermediate Result인지 먼저 확인합니다.

Key Cleaner는 압축 소스에서 뭉개진 가장자리 알파의 디테일을 되살리는 용도입니다. 날카로워야 할 윤곽까지 반투명해진다면 Adobe 문서가 권하듯 마스크에 약간의 페더를 주고 Key Cleaner를 필요한 부분에만 적용합니다.

디스필 뒤 가장자리가 회색이나 갈색으로 죽을 때

초록을 눌렀더니 테두리가 이번엔 탁한 회색이나 칙칙한 갈색으로 보이는 경우가 있습니다. G 값을 내리면 그만큼 픽셀이 어두워지기 때문입니다. 밝은 배경 위에 합성할수록 어두운 테두리처럼 눈에 띕니다.

Nuke의 HueCorrect에는 mix luminance 항목이 있습니다. 1에 가깝게 올리면 보정 전 밝기에 가깝게 유지해 줍니다. Expression 방식을 썼다면 디스필 전후의 밝기 차이를 다시 더해 주는 식으로 보완할 수 있지만, 입문 단계에서는 HueCorrect로 바꿔 mix luminance부터 비교해 보는 편이 간단합니다.

디스필만 한 잔머리는 밝은 배경 위에서 어둡고 탁하게 보이고, 밝기를 유지하면 자연스럽게 보인다
G를 누른 만큼 잔머리가 어두워집니다. 줄어든 밝기를 되돌리면 밝은 배경 위에서도 테두리가 뜨지 않습니다. (계산 예시)

테두리가 새 배경과 어울리지 않고 따로 노는 느낌이라면 원래 초록이 있던 자리에 새 배경 색을 조금 섞어 주는 방법도 씁니다. Keylight의 색을 그대로 쓰는 경우(앞의 Despill Bias 방법)라면, Nuke의 Keylight는 Clip White 등으로 알파가 올라간 픽셀에 Screen Replace Color를 채워 넣는데, 이 색의 기본값은 중간 회색(0.5)입니다. 두 갈래 구성에서는 Keylight의 색을 쓰지 않으니 이 값은 결과에 영향을 주지 않습니다. 가장자리가 회색으로 뜬다면 이 색을 새 배경의 주된 톤 쪽으로 바꿔 전후를 비교해 보세요.

테두리는 해결됐는데 인물이 여전히 배경에서 떠 보인다면 원인이 가장자리 밖에 있을 가능성이 큽니다. 배경과 인물의 입자감이 다르면 경계가 깨끗해도 합성 티가 납니다. 이때는 플레이트와 그레인을 맞추는 순서로 넘어가면 됩니다.

한 줄 정리

크로마키 테두리의 초록은 알파를 조여서 없애는 것이 아닙니다. 알파 화면에서 잔머리의 회색을 지키도록 매트를 맞추고, 초록은 Nuke의 Expression·HueCorrect나 After Effects의 Advanced Spill Suppressor로 색에서 따로 빼세요.

vfx 잡학지식

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.