1 อธิบาย
roto คือการวาด alpha เอง ขอบที่นุ่ม (feather) แทนขอบเบลอของวัตถุจริง ดูที่ช่อง a เพื่อเห็นว่า feather คือช่วงที่ alpha ไล่จาก 1 ไป 0
feather ควรเท่ากับความนุ่มของขอบจริงใน plate ถ้าแข็งไปจะดูเป็นกระดาษตัด ถ้านุ่มไปจะเห็นพื้นหลังเดิมลอดออกมา
2 ลงมือใน mini compositor
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ซูมที่ขอบจริง
- 2นับพิกเซลช่วงไล่
- 3ตั้ง feather เท่ากัน
- 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
- Roto: วาด Bezier ใช้จุดน้อย ๆ หนึ่ง shape ต่อหนึ่งชิ้นที่ขยับแข็ง ๆ ด้วยกัน
- feather: ใช้ค่า feather ของ shape ถ้าขอบนุ่มเท่ากันรอบตัว หรือดึง feather point ทีละจุดถ้านุ่มไม่เท่ากัน
- Tracker: track จุดบนวัตถุ แล้วใช้ค่าที่ได้ขับ transform ของ shape หรือ layer ใน Roto
- เปิด motion blur ใน Roto ตั้ง shutter ให้ตรงกับ plate
- ตรวจ: ดูช่อง 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 เช็กตัวเอง
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 ใช้ในเรนเดอร์เท่านั้น)