Python ใน Nuke
Monday, November 23, 2009
ที่
9:07 PM
| เขียนโดย
artslan
เรามาลอง Python บน Nuke กันบ้าง
มีหลายๆกรณีที่เราต้องใช้ Node เป็นคู่ๆ หรือมากกว่านั้น อย่าง IBK เราก็ต้องเรียก IBKColour กับ IBKGizmo หรือเวลาเราใช้งาน file Photoshop ที่เป็น Layered หลายๆ Layered ก็ต้องเรียก Shuffle กับ Premult ขึ้นมาใช้คู่กัน
ทีนี้เราจะไปเรียกที่ละ node อยู่บ่อยๆ มันก็เสียเวลา เราจะมาทำการเรียกคู่ node ที่ใช้บ่อยๆโดยใช้ Python เรียกมากัน
ผมจะยกตัวอย่าง Photoshop ที่เราทำมาเป็น Layers ที่มี Transparency ติดมาด้วย[ซึ่งเป็นเหตุที่ต้องใช้ premult]
Code ที่ใช้
ภายหลังเราเรียกทั้งหมดโดยใช้ def PS (): เพื่อต่อไปจะได้เรียกใช้ให้ไวขึ้น
จะเห็นว่า เรียกใช้ไวมากเมื่อมีหลายๆ layered แค่เรียก PS() ใน Script Editor แค่นั้น [จริงๆเรา assign เป็น ปุ่มกดเลยก็ได้ แต่เอาไว้วันหลังละกัน]
* อันนี้จะมีที่ผมเรียก Python บน Nuke ผิดอยู่ แต่ Python ก็จะบอกว่าบรรทัดไหนมีปัญหาเราก็ไปแก้ อย่างในตัวอย่างนี้ บรรทัดที่
mySelected = n.node.selectedNodes() มันจะต้องเป็น mySelected = n.selectedNode()
ซึ่ง Python ก็จะบอกเรา ทำให้แก้ปัญหาได้ง่ายได้ไว
จะเห็นว่าผมทำ Python ทุกครั้งทุก VDO ก็จะมีผิดทุกทีอ่ะ 555 ทั้ง Python บน Nuke หรือบน Maya ก็ตาม
แต่ใช้ Python ไม่ต้องกลัวว่าจะไม่รู้ว่าผิดตรงไหน เดี๋ยว Python มันบอกเรามาเองแหละ :D
| 0 ความคิดเห็น |
Roto in Nuke
Thursday, November 19, 2009
ที่
9:33 PM
| เขียนโดย
artslan
การ roto shape ทั้งหลายไม่ว่าจะเป็น Object หรือ Organic มันจะมีจุดๆนึงให้เราสามารถที่จะ track เพื่อเป็น Reference ของ Roto ที่เราจะทำใน Shape ต่างๆ ซึ่งมันจะทำให้ Roto ได้ไวขึ้นมากกว่าเดิมที่เคยทำ
พอมี tracking data แล้ว การ Roto shape ต่างๆ จะทำให้ขยับ Keyframe น้อยมาก [หรืออย่างน้อยก็ไม่ต้อง Roto มันทุกๆ Frames ซึ่งมันทำให้เสียเวลา]
มาดู VDO กัน
Part 01
Part 02
จะมีบางช่วงที่เรา roto แล้ว อาจจะเห็น Background หน่อยๆก็ใช้ Filter Erode alpha โดยบีบเข้ามานิดนึง ซึ่งคำสั่งนี้ก็จะเหมือนกับ Contact บน Photoshop เวลาที่เราทำ Mask น่ะครับ
หลังจากนั้นเวลาซ้อน Background ใหม่เข้าไปผลที่ได้ก็ดูเนียนเลยทีเดียว
ใน VDO ตัวอย่างที่ทำให้ดู ผมทำแบบให้ get idea นะ ไม่ได้ทำทั้งตัว แต่ก็ใช้หลักการเดียวกันนี่แหละ ทำ Roto เนียนๆได้ กับทุก Shot ทุกแบบเลยครับ
| 3 ความคิดเห็น |
Animate หนอนแบบง่ายๆด้วย Python
Monday, November 16, 2009
ที่
3:28 AM
| เขียนโดย
artslan
จริงๆหนอนมันไม่ได้เคลื่อนที่งี้หรอก คิดซะว่ามันเคลื่อนที่ในน้ำละกัน เพราะให้มันขยับง่ายๆขึ้นลงๆเอง
เรียกใช้ pi[ ไพ = 22/7 ที่เราเคยเรียนน่ะแหละ] แล้วก็ sin เรียกเข้ามาใช้
โดย from math import pi, sin
ดูเลยละกันเนอะ
Code ที่ใช้
อันนี้ค่อนข้างซับซ้อนเหมือนกันนะ ยิ่งไม่ชอบ math แต่ก็ เป็นสิ่งที่เราเคยเรียนมาแล้วอ่ะแหละ
หา IDE มาสักอันเวลาเขียน Python ก็สะดวกดีนะ ถ้าไปเขียนบน Script Editor บนมายา งงแน่ๆ
| 0 ความคิดเห็น |
แปลงจาก MEL ไปเป็น Python ใน Maya
Sunday, November 15, 2009
ที่
9:41 PM
| เขียนโดย
artslan
ผมจะสาธิตการแปลงโค๊ดจาก MEL ที่เราคุ้นเคยกันดี ไปเป็น Python ซึ่งตัวอย่างนี้ผมไม่ได้ใช้ PyMEL นะ
ก็จะเห็นว่า จาก MEL ที่ดู อ่านยากๆงงๆ พอมาเป็น Python ก็อ่านง่ายดูง่ายกว่า MEL [หรือเปล่า ? บางคนอาจจะบอกว่า มันอ่านง่ายกว่าตรงไหนฟระ 555]
คนที่ไม่ได้ลง PyMEL ก็จะได้เข้าใจด้วย แต่ถ้าใช้ PyMEL จะสั้นกว่านี้เยอะใครที่ลง PyMEL แล้วก็ไปลองทำกันเองได้ ไม่ยาก
ดู VDO กันเลย
code MEL ที่ใช้ทำ Spiral Sphere
//Create new scene in MEL
file -f -new;
//Create spiral function in MEL
for ($i=0;
$i<100;
$i+=1)
{
float $sine=sin($i)*($i*0.25);
float $cosine=cos($i)*($i*0.25);
sphere -p $cosine 1 $sine;
}
code Python ที่ใช้ทำ Spiral Sphere
import maya.cmds as mc
#Create new scene in Python
mc.f=newFile(f=1)
#Create spiral function in Python
i=0
for i in range(100):
mysin = sin(i)*(i*.25)
mycosine = cos(i)*(i*0.25)
mysphere = mc.polySphere()
move(mysin,mycosine,0)
แต่จริงๆแล้ว Python มันอ่านง่ายกว่า MEL จริงๆอ่ะแหละ ถ้าเราลองคุ้นเคยกะมัน มันก็ไม่ยากหรอกครับ
ตอนแรกมันจะเหมือนยาขมครับ แต่ต่อไปมันจะเหมือนน้ำหวานไปเอง ไม่ว่าจะ MEL หรือ Python
| 1 ความคิดเห็น |
PyMEL บน Maya
Thursday, November 12, 2009
ที่
11:23 PM
| เขียนโดย
artslan
คนที่สนใจ python ซึ่งมันมีบน Maya อยู่แล้ว ก็น่าจะรู้จัก PyMEL ด้วย ซึ่ง Luma Pictures เขาเป็นคนพัฒนามาคนแรก ซึ่งทำให้คำสั่ง Python บน Maya สั้นลง กระชับขึ้น อ่านง่าย[จริงๆมันก็อ่านง่ายอยู่แล้วแหละ]
จะได้ไม่ต้องมานั่ง import maya.cmds as cmds อะไรแบบนี้ มาถึงก็ใส่ตูมๆได้เลย
เวบของ PyMEL ตอนนี้เป็น version 0.9.2
จะเห็นว่า ไม่ยากเลย python ใช้ได้กับหลายๆโปรแกรมด้วยที่ Support Python เช่น Nuke, Maya, Houdini, Vue, Blender ฯลฯ ฝึก Python ไว้ ไม่เสียหลายนะ รู้ภาษาเดียวใช้ได้หลายโปรแกรมเลยทีนี้เมื่อลง PyMEL แล้ว ลองมาเขียน Python script ง่ายๆกัน
ในที่นี้ยกตัวอย่างง่ายๆ เอา Sphere กลมๆมาเลียนแบบแกน x y z กันดีกว่า
โค้ดที่ใช้ใน VDO นี้
#create new scenef=newFile(f=1)
#create NURBs spheres=sphere()
#create functions for x y z as spheres#begin Xx=1while x<10: select() duplicate() move(0,2*x,0) x+=1
#begin Yy=1while y<10: select() duplicate() move(0,0,2*y) y+=1
#begin Zz=1while z<10: select() duplicate() move(2*z,0,0) z+=1
#print when finishprint 'Finished'
| 3 ความคิดเห็น |
รีทัชภาพไปเป็นหิมะ
Tuesday, November 10, 2009
ที่
1:59 AM
| เขียนโดย
artslan
ทำบน Nuke ดูเลยละกันเนอะ
ผมเคยเห็นวิธีนี้ที่ cmiVFX แต่ตอนนั้นมัน Nuke 4 โน่นแนะ ตอนนี้มัน 5 จะไป 6 หกอยู่แล้ว [Shake ยังนำหน้า Nuke อยู่เยอะเลยตอนนั้น แต่ตอนนี้ก็กลับกันแล้ว]
UI มันจะต่างกันนิดหน่อยจากตอนนั้น แต่ก็ไม่มากนะ
ภาพ ภูเขาหินปูน เอามาจากเวบ www.werthai.com/iggp/index6.htm ครับผม
| 0 ความคิดเห็น |
IBKKeyer
Saturday, November 7, 2009
ที่
2:23 AM
| เขียนโดย
artslan
ใน Nuke ตัว Keyer ที่คล้ายๆ Keylight ที่สุดก็คือ IBKKeyer นี่แหละ ผมว่าผลลัพท์มันก็ออกมาดีเหมือนกัน
นอกจาก Primatte, Keylight หรือ Ultimatte แล้ว ผมว่า IBK นี่ก็เป็นอีกหนึ่งทางเลือกที่ไม่ควรมองข้ามเลย
Setup ก็ไม่ยากด้วย ใน VDO ก็เป็นวิธีที่ผมใช้อยู่บ่อยๆ แต่จากที่เคยดูคนอื่นๆก็มีวิธีการ Setup IBK ที่ต่างๆกันไป ขึ้นอยู่กับเน้นกันแค่ไหนใน Shot นั้นๆ
ที่ผม setup ใน vdo นี้ก็เป็นแบบง่ายๆอาจต้องแต่งกันอีกนิด แต่ต้องการให้เห็นว่า IBK ก็ไม่ธรรมดาเหมือนกันนะ หุหุ
[ภาพที่เอามาใช้ Key มาจาก www.hollywoodcamerawork.us ครับผม]
*พอดีกะลังมันเลยทำต่อจากแบบ IBK Keyer แล้วก็แบบ Primatte ด้วย* คลิ๊คดูภาพใหญ่ได้
| 2 ความคิดเห็น |
Subscribe to:
Posts (Atom)