1 อธิบาย
กล้องภาพยนตร์บอกเวลาเปิดชัตเตอร์เป็นองศา 180° คือเปิดครึ่งหนึ่งของเวลาต่อเฟรม (1/48 วินาทีที่ 24 fps) ของที่วิ่ง 48 พิกเซลต่อเฟรมจะเบลอยาว 24 พิกเซล
CG ต้องใช้ shutter เดียวกับ plate ไม่งั้นของจะดูกระตุกหรือเบลอเกิน ส่วนประกายไฟที่เบลอมาแล้ว อย่าใส่ motion blur ซ้ำ
blur (px) = speed (px/frame) · angle / 360 · exposure = angle / (360 · fps)2 ลงมือลอง
ปรับ shutter angle ให้ความยาวเบลอเท่า plate
3 เจาะลึก
องศา ↔ วินาที
เวลาเปิดชัตเตอร์ = angle ÷ (360 × fps) ใน Nuke ค่า shutter เป็นสัดส่วนของเฟรม 180° = 0.5 ความยาวเบลอ = ความเร็ว × angle/360 แขนหุ่นที่เคลื่อน 40 px ต่อเฟรม ที่ 180° เบลอ 20 px ที่ 45° เหลือ 5 px ดูกระตุกแบบหนังแอ็กชัน
| fps | Angle | เปิด (วินาที) | Nuke shutter |
|---|---|---|---|
| 24 | 180° | 1/48 | 0.5 |
| 25 | 180° | 1/50 | 0.5 |
| 24 | 90° | 1/96 | 0.25 |
| 24 | 45° | 1/192 | 0.125 |
อ่าน shutter จาก plate เอง
ไม่มี report ก็วัดเองได้ หาของที่เคลื่อนตรงด้วยความเร็วคงที่ วัดว่าเฟรมต่อเฟรมขยับกี่ px และรอยเบลอยาวกี่ px (หักขนาดของตัววัตถุออก) แล้ว angle = 360 × ความยาวเบลอ ÷ ระยะที่ขยับต่อเฟรม
หน้ากอง: จด fps และ shutter ทุก setup และถามว่าผู้กำกับภาพเปลี่ยน shutter เพื่อลุคหรือไม่ เช็ก shutter offset ของเรนเดอร์ด้วย (centred, start หรือ end) ถ้าไม่ตรง รอยเบลอจะนำหน้าหรือตามหลังวัตถุ
- 1รู้ shutter plate
- 2ตั้ง CG เท่ากัน
- 3เลือกวิธีเบลอ
- 4เทียบความยาวรอยเบลอ
เลือกวิธีใส่ motion blur
ดีที่สุดคือเบลอจากตัว node ที่ขยับของเอง (Transform, CornerPin, Tracker, Roto, ScanlineRender) เพราะรู้การเคลื่อนจริง ถ้าเห็นเป็นภาพซ้อนหลายชั้นให้เพิ่ม samples ไม่ใช่เพิ่ม shutter CG ที่เรนเดอร์ motion vector มาใช้ VectorBlur ได้ ส่วน MotionBlur เดาการเคลื่อนจากภาพเมื่อไม่มีข้อมูลอื่น (อาจต้องใช้ NukeX / Nuke Studio แล้วแต่ license)
VectorBlur เบลอเป็นเส้นตรงต่อพิกเซล ของที่หมุนหรือวิ่งเป็นโค้ง (ล้อ ใบพัด) จะเบลอผิดทรง ต้องใช้วิธีที่ตามเส้นโค้งได้ หรือเรนเดอร์ motion blur มาจาก 3D
เมื่อไหร่ "ไม่" ควรเติม
ประกายไฟคือจุดสว่างที่เบลอมาแล้ว รอยเส้นคือ motion blur ของมัน เติมซ้ำจะได้เส้นอ้วน ๆ ตรง ๆ CG ที่เรนเดอร์มีเบลอแล้วก็อย่าผ่าน VectorBlur อีก แสงวาบที่สั้นกว่าชัตเตอร์ (muzzle flash) ติดคมทั้งที่ทั้งเฟรมเบลอ นั่นถูกต้องตามจริง
สงสัยเมื่อไหร่ ปิด motion blur แล้วดูว่า element มีเบลออยู่แล้วหรือยัง
4 ในงานจริง
ทำใน Nuke
- Transform / CornerPin / Tracker: motionblur (samples) เปิด, shutter 0.5 สำหรับ 180°
- วาง Transform ติดกันให้ concatenate จะ filter และเบลอครั้งเดียว อย่าแทรก Grade ระหว่างกลาง
- ScanlineRender: samples และ shutter เท่ากับ plate
- CG มี motion vector → VectorBlur ปรับให้เบลอเท่ากับ shutter ของ plate
- ไม่มีข้อมูลการเคลื่อน → MotionBlur (ประมาณจากภาพ อาจต้องใช้ NukeX / Nuke Studio แล้วแต่ license)
พลาดบ่อย → แก้ยังไง
- ✗ ใช้ 360° ให้ดูนุ่ม✓ ใช้ shutter ของ plate
- ✗ เติมเบลอให้ประกายไฟหรือ CG ที่มีเบลอแล้ว✓ เช็กก่อน เบลอครั้งเดียวพอ
- ✗ VectorBlur กับล้อที่หมุน✓ ใช้วิธีที่ตามเส้นโค้งหรือเรนเดอร์เบลอจาก 3D
- ✗ เห็นภาพซ้อนเป็นขั้นแล้วเพิ่ม shutter✓ เพิ่ม samples และคง shutter ไว้
เช็กก่อนส่งช็อต
- รู้ fps และ shutter ของ plate (จาก report หรือวัดเอง)
- CG และ transform ใช้ shutter และ offset เดียวกับ plate
- ความยาวรอยเบลอของ CG เทียบได้กับของจริงใน plate
- ไม่มีเบลอซ้อนบน element ที่มีเบลอแล้ว
- ไม่มีภาพซ้อนเป็นขั้นในเฟรมที่เร็วที่สุด
5 เช็กตัวเอง
plate 24 fps shutter 180° ใน CG ควรตั้ง shutter ยังไง
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. plate 24 fps วัตถุขยับ 30 px ต่อเฟรม รอยเบลอยาว 10 px (หักขนาดวัตถุแล้ว) shutter angle เท่าไหร่
2. 25 fps ที่ 180° ชัตเตอร์เปิดนานเท่าไหร่
ตัวเลขมาจากไหน: สูตรเลนส์เป็นแบบ thin lens มาตรฐาน (FOV, CoC, hyperfocal) ใช้ CoC = เส้นทแยงเซนเซอร์ ÷ 1500 ซึ่งเป็นธรรมเนียมทั่วไป ไม่ใช่ค่าตายตัว distortion ใช้โมเดล Brown–Conrady (k1, k2) ภาพ DOF จริงเรนเดอร์จาก Blender Cycles