1 อธิบาย
กรีนสกรีนคือพิกเซลที่เขียวกว่าแดงและน้ำเงิน keyer พื้นฐานวัดว่า "เขียวเกินแค่ไหน" (g − max(r, b)) แล้วกลับด้านเป็น alpha ตรงไหนเขียวมาก alpha ต่ำ ตรงไหนไม่เขียว alpha สูง
gain ขยายความต่าง clip black ดันฉากหลังที่ยังเทา ๆ ให้เป็น 0 clip white ดันตัวที่ยังโปร่งให้เป็น 1 กดปุ่ม a ที่ Viewer เพื่อดู matte และเลือกดู node Keyer หรือ Premult
alpha = 1 − clamp((g − max(r, b)) · gain), then clip black / clip white2 ลงมือใน mini compositor
โจทย์: ปรับ Keyer ให้ matte ใกล้ matte จริง (error ≤ 1.1‰)
ดู alpha ที่ node Premult: ลด gain แล้วใช้ clip white ให้ตัวหุ่นทึบ และ clip black ให้ฉากหลังดำสนิท
3 เจาะลึก
ไล่ตัวเลขทีละพิกเซล
screen = g − max(r, b) แล้ว alpha = 1 − clamp(screen × gain) ตารางใช้ gain 2 พิกเซลจอเขียวยังเหลือ alpha 0.1 ไม่ใช่ 0 ต้องใช้ clip black ช่วย ส่วนสีเหลืองที่เขียวน้อยกว่าแดง ได้ screen ติดลบ ถูก clamp เป็น 0 จึงทึบเต็ม
ต่อด้วย clip: alpha = (alpha − clip black) ÷ (clip white − clip black) ตั้ง clip black 0.15 และ clip white 0.9 จอเขียวกลายเป็น 0 และตัวหุ่น 0.96 ถูกดันเป็น 1
| พิกเซล | r, g, b | g − max(r, b) | alpha (gain 2) |
|---|---|---|---|
| จอเขียว | 0.10, 0.60, 0.15 | 0.45 | 0.10 |
| ตัวหุ่นสีเทา | 0.40, 0.42, 0.40 | 0.02 | 0.96 |
| สีเหลืองบนหุ่น | 0.80, 0.70, 0.10 | −0.10 → 0 | 1.00 |
คีย์ได้เพราะ contrast ระหว่างช่องสี
ถ้าตาเห็นความต่างระหว่างตัวกับจอในช่องใดช่องหนึ่ง ก็คีย์ได้ เริ่มทุกช็อตด้วยการดูช่อง R, G, B ทีละช่องที่ Viewer ว่าช่องไหนแยกตัวกับจอได้ชัด
เลือกสีจอที่ตัวแสดงไม่มี หุ่นที่มีชิ้นส่วนสีเขียวควรถ่ายบนบลูสกรีน
คีย์ง่ายเริ่มที่หน้ากอง
จอสว่างสม่ำเสมอ ไม่มี hotspot หรือเงา แยกไฟจอกับไฟตัวแสดง ให้ตัวแสดงห่างจอพอลด spill และเงาตกบนจอ เปิดรับแสงจอพอดี ถ่าย clean plate (จอเปล่า) ไว้ และวาง tracking marker ที่ลบง่าย
จอที่สว่างไม่สม่ำเสมอ แก้ใน comp แพงกว่าแก้ที่หน้ากองมาก
ตัดสิน matte ให้ถูกวิธี
ดูที่ช่อง alpha เสมอ ลด gamma ของ Viewer ลงสุดเพื่อหารูในตัวที่ควรทึบ เพิ่ม gain เพื่อหาหมอกเทาบนจอ แล้วลอง over พื้นเทา ตาราง checker และฉากหลังจริง เล่นที่ความเร็วจริงด้วย
สำเนา plate ที่ใช้คีย์ทำอะไรก็ได้ (denoise, grade) เพราะเราเก็บแค่ alpha จากมัน ภาพสีที่ใช้จริงยังมาจาก plate ต้นฉบับ
- 1ดู alpha
- 2Gamma ลง: หารู
- 3Gain ขึ้น: หาหมอก
- 4Over เทา/ฉากจริง
- 5เล่นความเร็วจริง
4 ในงานจริง
ทำใน Nuke
- Denoise สำเนา plate ก่อนคีย์ ใช้เฉพาะสาย alpha
- Keylight: เลือก Screen Colour (Ctrl+Shift ลากเพื่อเฉลี่ย) ใช้ Screen Gain ใกล้ 1 แล้วปรับ Clip Black / Clip White ดูผลแบบ Screen Matte
- จอไม่สม่ำเสมอ: IBKColour สร้าง clean plate ต่อเฟรม แล้วใช้ IBKGizmo
- Copy alpha เข้าสายหลัก → Premult → Merge over ฉากหลัง
- ที่ Viewer: กด a ดู alpha ใช้ gain/gamma ของ Viewer ตรวจรูและหมอก
พลาดบ่อย → แก้ยังไง
- ✗ ตัดสินคีย์จากภาพสีอย่างเดียว✓ ดู alpha พร้อม gamma ลงและ gain ขึ้น
- ✗ ดัน gain/clip แรงเพื่อกำจัดหมอกไกลตัว✓ ใช้ garbage matte สำหรับพื้นที่ไกลตัว เก็บคีย์ไว้ดูแลขอบ
- ✗ คีย์บน plate ที่ grain แรง matte จึงสั่น✓ denoise สำเนาสำหรับคีย์
- ✗ รวม alpha ด้วย plus จน alpha เกิน 1✓ ใช้ max และ alpha ต้องอยู่ใน 0–1
เช็กก่อนส่งช็อต
- ฉากหลังใน alpha เป็น 0 จริง (gain ขึ้นแล้วไม่มีหมอก)
- ตัวหุ่นทึบ 1 (gamma ลงแล้วไม่มีรู)
- alpha อยู่ในช่วง 0–1
- ลอง over เทา และฉากหลังจริงแล้ว
- เล่นที่ความเร็วจริง matte ไม่สั่น
5 เช็กตัวเอง
ด้วย key ตั้งต้น ตัวหุ่นดูโปร่ง: บางส่วนของตัวเห็นฉากหลังทะลุ และขอบติดสีเขียวจาก spill ควรปรับอะไรก่อน
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. พิกเซล (0.2, 0.5, 0.3) ค่า screen = g − max(r, b) เท่าไหร่
2. ทำไม denoise สำเนา plate ก่อนคีย์ได้โดยไม่ทำให้ภาพสุดท้ายนุ่ม
ตัวเลขมาจากไหน: Keyer ในห้องนี้เป็นแบบ green-difference ง่าย ๆ (ไม่ใช่ Keylight หรือ IBK) สูตร despill มาจากหลักการ despill มาตรฐาน คะแนนเทียบกับ matte จริงที่เรนเดอร์จาก Blender พร้อมกับ plate กรีน (หุ่นตัวเดียวกันและกล้องตัวเดียวกับ plate) เป้าหมายวัดจากภาพชุดนี้ เทียบกับคีย์ที่ดีที่สุดที่ Keyer นี้ทำได้