หน้าแรก · Lab · Roto & Masks

R1 Shape และ feather

roto คือ alpha ที่วาดเอง

Roto & Masks · ~4 นาที · ฟรี

1 อธิบาย

roto คือการวาด alpha เอง ขอบที่นุ่ม (feather) แทนขอบเบลอของวัตถุจริง ดูที่ช่อง a เพื่อเห็นว่า feather คือช่วงที่ alpha ไล่จาก 1 ไป 0

feather ควรเท่ากับความนุ่มของขอบจริงใน plate ถ้าแข็งไปจะดูเป็นกระดาษตัด ถ้านุ่มไปจะเห็นพื้นหลังเดิมลอดออกมา

2 ลงมือใน mini compositor

SkyVFX mini compositor · R1640×360 · float · 1001

3 เจาะลึก

feather คือช่วงไล่ของ alpha

สลับ Viewer ไปดูช่อง a จะเห็น shape เป็นสามโซน ข้างในขาว (1) ข้างนอกดำ (0) และแถบไล่ระดับระหว่างกลาง แถบนั้นคือ feather

ในห้องทดลองนี้แถบ feather คร่อมเส้นขอบ shape ครึ่งหนึ่งอยู่ข้างใน ครึ่งหนึ่งอยู่ข้างนอก feather 30 จึงได้แถบกว้างราว 30 px เส้นขอบที่วาดไว้อยู่ที่ alpha 0.5 พอดี

featherสิ่งที่เห็นแปลว่า
แข็งเกินขอบคมเป็นเส้น เหมือนกระดาษตัดคมกว่าขอบจริงใน plate
พอดีมองไม่ออกว่ามี rotoเท่ากับความนุ่มของขอบจริง
นุ่มเกินภาพเดิมลอดออกมาเป็นวงรอบขอบกินเข้าไปในพื้นหลังเกินขอบจริง

อ่านความนุ่มจาก plate ไม่ใช่เดา

ใน plate ทะเลทราย ก้อนหินที่อยู่ในโฟกัสมีขอบคมแค่ 1–2 px แต่ภูเขาไกล ๆ ที่หลุดโฟกัสมีขอบไล่หลายพิกเซล ภาพเดียวกันจึงต้องใช้ feather ต่างกันตามระยะและโฟกัส

วิธีวัด: ซูมเข้าไปที่ขอบจริง นับจากพิกเซลที่เป็นวัตถุเต็ม ๆ ไปถึงพิกเซลที่เป็นพื้นหลังเต็ม ๆ ได้กี่พิกเซล นั่นคือความกว้าง feather ที่ต้องการ

  1. 1ซูมที่ขอบจริง
  2. 2นับพิกเซลช่วงไล่
  3. 3ตั้ง feather เท่ากัน
  4. 4wipe เทียบกับ plate

ของที่ขยับเร็วต้องมี motion blur

วัตถุที่ขยับเร็วจะเบลอไปตามทิศที่เคลื่อน ขอบด้านข้างอาจคม แต่ขอบที่หันไปตามทิศทางการเคลื่อนจะเบลอยาว feather เท่ากันทุกด้านเลียนแบบแบบนี้ไม่ได้

ทางที่ถูกคือ animate shape ให้ตามวัตถุ แล้วเปิด motion blur ของ roto ตั้ง shutter ให้ตรงกับกล้องที่ถ่าย plate (shutter 180° คือ 0.5 ใน Nuke) แล้วเทียบความยาวรอยเบลอกับ plate

feather = ขอบนิ่ง, motion blur = ขอบที่ขยับ ใช้ให้ถูกงาน

roto ที่ดีคือ roto ที่มองไม่ออกว่ามี

ใช้จุดให้น้อยที่สุดที่ยังได้รูปทรง จุดน้อยทำให้ shape ขยับลื่นระหว่าง keyframe และขอบไม่สั่น (chatter หรือ boiling) เวลาเล่นจริง

แยกเป็นหลายชิ้นตามส่วนที่ขยับแยกกัน เช่นแขนท่อนบน ท่อนล่าง มือ วาง key ที่ท่าสุดขั้วก่อน แล้วค่อยแก้เฟรมกลาง ถ้ามีจุดให้ track ได้ ให้ track แล้วให้ shape ตาม จะลดงานมือได้มาก

4 ในงานจริง

ทำใน Nuke

  1. Roto: วาด Bezier ใช้จุดน้อย ๆ หนึ่ง shape ต่อหนึ่งชิ้นที่ขยับแข็ง ๆ ด้วยกัน
  2. feather: ใช้ค่า feather ของ shape ถ้าขอบนุ่มเท่ากันรอบตัว หรือดึง feather point ทีละจุดถ้านุ่มไม่เท่ากัน
  3. Tracker: track จุดบนวัตถุ แล้วใช้ค่าที่ได้ขับ transform ของ shape หรือ layer ใน Roto
  4. เปิด motion blur ใน Roto ตั้ง shutter ให้ตรงกับ plate
  5. ตรวจ: ดูช่อง alpha ใน Viewer แล้ว wipe เทียบกับ plate ก่อนเอาไปใช้เป็น mask ของ Merge, Keymix หรือ Copy เข้า alpha

พลาดบ่อย → แก้ยังไง

  • ✗ ใส่ feather เยอะ ๆ ทุก shape เพื่อ “ให้เนียน”✓ feather มากเกินขอบจริงทำให้ภาพเดิมลอดเป็นวง ถ้าเป็นขอบวัตถุ ให้วัดจาก plate ทุกครั้ง
  • ✗ ใช้ feather ใหญ่แทน motion blur กับของที่วิ่งเร็ว✓ feather นุ่มทุกด้านเท่ากัน แต่ motion blur เบลอตามทิศทาง เปิด motion blur ของ roto
  • ✗ วาด shape เดียวจุดเยอะ ๆ ครอบทั้งตัวแล้วแก้ทุกเฟรม✓ แยกเป็นชิ้นตามข้อต่อ ใช้จุดน้อย key ท่าสุดขั้วก่อน ขอบจะไม่สั่น
  • ✗ ดู roto แค่เฟรมเดียวแล้วส่ง✓ เล่นดูทั้งช็อตทั้งช่อง alpha และผลที่ comp แล้ว ขอบสั่นเห็นได้ตอนเล่นเท่านั้น

เช็กก่อนส่งช็อต

  • feather เท่ากับความนุ่มของขอบจริงในแต่ละส่วนของ plate
  • ส่วนที่ขยับเร็วมี motion blur และความยาวรอยเบลอตรงกับ plate
  • เล่นทั้งช็อตแล้วขอบไม่สั่น ไม่หลุด
  • ไม่มีวงภาพเดิมลอดรอบขอบเมื่อ comp แล้ว

5 เช็กตัวเอง

เช็กตัวเอง 1 ข้อ

feather ที่ถูกควรเท่าไหร่

สิ่งที่ได้เรียน

🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด

คำถามเพิ่ม

1. ก้อนหินในโฟกัสมีขอบจริงกว้าง 2 px คุณควรตั้ง feather ราวเท่าไหร่

2. มือที่เหวี่ยงเร็วเบลอยาวแค่ด้านเดียว ควรทำ roto ยังไง

ตัวเลขมาจากไหน: ภาพคำนวณในเบราว์เซอร์ Saturation, Multiply, Clamp, Invert, Keymix, Copy และ Grade ตรงกับ Nuke 17.0v2 (ตรวจแล้ว) ส่วน Blur, Defocus, Glow, Sharpen, ChromaticAberration, Vignette, LensDistort, Grain, Erode, Toe, Keyer และ Despill เป็นแบบสอนหลักการ ไม่เท่า node ใน Nuke เป๊ะ Transform ในห้องนี้ก็เป็นแบบสอนหลักการเช่นกัน ใช้ bilinear ไม่ concatenate และตัดขอบที่เฟรม ภาพเป็นเรนเดอร์ Blender ของเราเอง (green screen สร้างด้วยโค้ดล้วน ฉากทะเลทรายใช้ภูเขาจาก Gaea 2.3 ท้องฟ้าเป็น HDRI CC0 จาก Poly Haven หินและหญ้าจาก Poly Haven CC0 ทรายและหินผาจาก Quixel และ rig หุ่นจาก Mixamo โดย Quixel และ Mixamo ใช้ในเรนเดอร์เท่านั้น)