1 อธิบาย
Transform ย้ายทุกช่องพร้อมกัน รวม alpha ด้วย หุ่นในห้องนี้มีเงาอยู่ใน alpha เงาจึงย้ายตามไปด้วย ซึ่งถูกเมื่อพื้นราบ แต่ถ้าย่อหุ่นมาก ๆ เงาก็ย่อตาม จุดที่แตะพื้นจะเลื่อน และขนาดหุ่นจะไม่เข้ากับตำแหน่งที่มันยืนตาม perspective ของ plate
การหมุนและย่อทำรอบจุดกลางภาพ (pivot) ใน Nuke ตั้ง center ได้เอง
2 ลงมือใน mini compositor
3 เจาะลึก
Transform ย้ายทุกช่องพร้อมกัน
r, g, b และ alpha ถูกย้ายด้วยค่าเดียวกัน หุ่นในห้องนี้มีเงาอยู่ใน alpha เงาจึงย้าย ย่อ และหมุนตามตัวหุ่นไปด้วยเสมอ
การเลื่อนบนพื้นราบไม่มีปัญหา แต่การหมุนจะหมุนเงาไปด้วย ทิศของเงาจะไม่ตรงกับแดดใน plate อีกต่อไป ส่วนการย่อมาก ๆ เงายังได้สัดส่วนกับหุ่น แต่จุดที่แตะพื้นจะเลื่อน (ดูหัวข้อถัดไป) และขนาดหุ่นจะไม่เข้ากับตำแหน่งที่มันยืนตาม perspective ของ plate
| knob | ทำอะไร | ระวัง |
|---|---|---|
| translate | เลื่อน x, y | ค่าไม่เต็มพิกเซลทำให้เกิด resample (ดู T2) |
| rotate | หมุนรอบ center | เงาหมุนตามจนผิดทิศแดด |
| scale | ย่อขยายรอบ center | ตำแหน่งเลื่อนเข้าหรือออกจาก center |
| center | จุด pivot | ห้องทดลองนี้ล็อกไว้กลางเฟรม |
คณิตของ pivot
ย่อด้วย scale s รอบ center c จุด p จะไปอยู่ที่ c + s·(p − c) ห้องทดลองนี้กว้าง 640 px center อยู่ที่ x = 320
ถ้าเท้าหุ่นอยู่ที่ x = 200 (ห่าง center 120 px) แล้วย่อ 0.8 เท้าจะไปอยู่ที่ 320 − 96 = 224 เลื่อนเข้าหากลางภาพ 24 px ทั้งที่คุณไม่ได้แตะ translate เลย แนวตั้งก็เป็นแบบเดียวกัน เท้าจึงลอยขึ้นจากพื้นได้
- 1ตั้ง center ที่เท้า
- 2ย่อ
- 3เท้ายังอยู่ที่เดิม (กรณีเปลี่ยนแค่ขนาด ถ้าจะให้ดูไกลขึ้น ดู T3)
center อยู่ตรงไหน จุดนั้นไม่ขยับเวลาย่อและหมุน
จุดสัมผัสพื้นคือสิ่งที่ตาดูก่อน
คนดูตัดสินว่าวัตถุ “อยู่ในฉาก” จากตรงที่มันแตะพื้น ถ้าเท้าลอยหรือจมแม้ไม่กี่พิกเซล ภาพจะดูผิดทันที แม้สีและแสงจะตรงหมดแล้วก็ตาม
ใน plate ทะเลทราย ให้ดูก้อนหินที่อยู่ระยะใกล้เคียงกับหุ่นเป็นตัวเทียบ ทั้งขนาด ความคม และแนวที่มันแตะพื้น
ในช็อตที่กล้องขยับ
ใช้ Tracker เก็บการเคลื่อนของ plate เลือก reference frame ซึ่งเป็นเฟรมที่การเคลื่อนเป็นศูนย์ แล้วจัดตำแหน่งหุ่นด้วย Transform แยกบนเฟรมนั้น ก่อนจะต่อ Transform ที่เป็น match-move จาก Tracker
ให้ Transform สองตัวนี้ต่อกันติด ๆ Nuke จะรวมเป็นการ resample ครั้งเดียว (ดูบทถัดไป)
4 ในงานจริง
ทำใน Nuke
- Transform: ตั้ง center ไว้ที่จุดที่ต้องการให้นิ่ง เช่นเท้า ก่อนแตะ scale หรือ rotate
- ทำบน CG ที่ premultiplied แล้ว ขอบจะถูกกรองได้สะอาด ถ้าเป็นสี straight ขอบ alpha จะเกิด fringe
- Tracker: ตั้ง reference frame แล้ว export เป็น Transform แบบ match-move
- ลำดับ: Read หุ่น → Transform จัดตำแหน่ง → Transform match-move → Merge (over) บน plate
พลาดบ่อย → แก้ยังไง
- ✗ ย่อหุ่นโดยปล่อย center ไว้กลางเฟรม แล้วแก้เท้าลอยด้วย translate ทุกครั้ง✓ ย้าย center ไปที่เท้าก่อน เท้าจะอยู่กับที่ตอนย่อ
- ✗ หมุนหุ่นเพื่อปรับเอียงหรือตั้งตรง โดยที่เงาอยู่ใน alpha✓ เงาจะหมุนผิดทิศแดด ถ้าต้องหมุนมาก ต้องขอ render ใหม่หรือแยกเงาเป็นชั้นของตัวเอง (rotate ใน 2D หมุนภาพในระนาบเฟรมเท่านั้น ทำให้หุ่นหันไปทางอื่นไม่ได้)
- ✗ ขยาย CG ใหญ่กว่าขนาดที่ render มามาก ๆ✓ ภาพจะนุ่มเพราะพิกเซลถูกยืด ขอ render ที่ขนาดใช้งานจริง
เช็กก่อนส่งช็อต
- เท้าแตะพื้นพอดีทั้งช็อต
- ขนาดหุ่นเข้ากับก้อนหินที่ระยะใกล้เคียงกัน
- ทิศเงายังตรงกับแสงใน plate
- Transform ที่จัดตำแหน่งกับ match-move ต่อกันติดโดยไม่มี node อื่นคั่น
5 เช็กตัวเอง
ย่อ CG ด้วย Transform แล้วเท้าลอยจากพื้น เพราะอะไร
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. center อยู่ที่ x = 320 จุดที่ x = 200 หลังย่อ 0.8 จะไปอยู่ที่ไหน
2. หมุนหุ่น 30° แล้วเงาดูผิด เพราะอะไร
ตัวเลขมาจากไหน: ภาพคำนวณในเบราว์เซอร์ 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 ใช้ในเรนเดอร์เท่านั้น)