Python ใน Nuke

Monday, November 23, 2009 ที่ 9:07 PM
เรามาลอง Python บน Nuke กันบ้าง
มีหลายๆกรณีที่เราต้องใช้ Node เป็นคู่ๆ หรือมากกว่านั้น อย่าง IBK เราก็ต้องเรียก IBKColour กับ IBKGizmo หรือเวลาเราใช้งาน file Photoshop ที่เป็น Layered หลายๆ Layered ก็ต้องเรียก Shuffle กับ Premult ขึ้นมาใช้คู่กัน

ทีนี้เราจะไปเรียกที่ละ node อยู่บ่อยๆ มันก็เสียเวลา เราจะมาทำการเรียกคู่ node ที่ใช้บ่อยๆโดยใช้ Python เรียกมากัน
ผมจะยกตัวอย่าง Photoshop ที่เราทำมาเป็น Layers ที่มี Transparency ติดมาด้วย[ซึ่งเป็นเหตุที่ต้องใช้ premult]


Code ที่ใช้

Free Image Hosting At site

ภายหลังเราเรียกทั้งหมดโดยใช้ 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

Roto in Nuke

Thursday, November 19, 2009 ที่ 9:33 PM
การ 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 ทุกแบบเลยครับ

Animate หนอนแบบง่ายๆด้วย Python

Monday, November 16, 2009 ที่ 3:28 AM
จริงๆหนอนมันไม่ได้เคลื่อนที่งี้หรอก คิดซะว่ามันเคลื่อนที่ในน้ำละกัน เพราะให้มันขยับง่ายๆขึ้นลงๆเอง

เรียกใช้ pi[ ไพ = 22/7 ที่เราเคยเรียนน่ะแหละ] แล้วก็ sin เรียกเข้ามาใช้
โดย from math import pi, sin

ดูเลยละกันเนอะ


Code ที่ใช้
Free Image Hosting At site

อันนี้ค่อนข้างซับซ้อนเหมือนกันนะ ยิ่งไม่ชอบ math แต่ก็ เป็นสิ่งที่เราเคยเรียนมาแล้วอ่ะแหละ
หา IDE มาสักอันเวลาเขียน Python ก็สะดวกดีนะ ถ้าไปเขียนบน Script Editor บนมายา งงแน่ๆ

แปลงจาก MEL ไปเป็น Python ใน Maya

Sunday, November 15, 2009 ที่ 9:41 PM
ผมจะสาธิตการแปลงโค๊ดจาก MEL ที่เราคุ้นเคยกันดี ไปเป็น Python ซึ่งตัวอย่างนี้ผมไม่ได้ใช้ PyMEL นะ
คนที่ไม่ได้ลง 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)

ก็จะเห็นว่า จาก MEL ที่ดู อ่านยากๆงงๆ พอมาเป็น Python ก็อ่านง่ายดูง่ายกว่า MEL [หรือเปล่า ? บางคนอาจจะบอกว่า มันอ่านง่ายกว่าตรงไหนฟระ 555]
แต่จริงๆแล้ว Python มันอ่านง่ายกว่า MEL จริงๆอ่ะแหละ ถ้าเราลองคุ้นเคยกะมัน มันก็ไม่ยากหรอกครับ

ตอนแรกมันจะเหมือนยาขมครับ แต่ต่อไปมันจะเหมือนน้ำหวานไปเอง ไม่ว่าจะ MEL หรือ Python

PyMEL บน Maya

Thursday, November 12, 2009 ที่ 11:23 PM
คนที่สนใจ python ซึ่งมันมีบน Maya อยู่แล้ว ก็น่าจะรู้จัก PyMEL ด้วย ซึ่ง Luma Pictures เขาเป็นคนพัฒนามาคนแรก ซึ่งทำให้คำสั่ง Python บน Maya สั้นลง กระชับขึ้น อ่านง่าย[จริงๆมันก็อ่านง่ายอยู่แล้วแหละ]
จะได้ไม่ต้องมานั่ง import maya.cmds as cmds อะไรแบบนี้ มาถึงก็ใส่ตูมๆได้เลย

เวบของ PyMEL ตอนนี้เป็น version 0.9.2

ทีนี้เมื่อลง PyMEL แล้ว ลองมาเขียน Python script ง่ายๆกัน
ในที่นี้ยกตัวอย่างง่ายๆ เอา Sphere กลมๆมาเลียนแบบแกน x y z กันดีกว่า


โค้ดที่ใช้ใน VDO นี้

#create new scene
f=newFile(f=1)

#create NURBs sphere
s=sphere()

#create functions for x y z as spheres
#begin X
x=1
while x<10:
select()
duplicate()
move(0,2*x,0)
x+=1

#begin Y
y=1
while y<10:
select()
duplicate()
move(0,0,2*y)
y+=1

#begin Z
z=1
while z<10:
select()
duplicate()
move(2*z,0,0)
z+=1

#print when finish
print 'Finished'

จะเห็นว่า ไม่ยากเลย python ใช้ได้กับหลายๆโปรแกรมด้วยที่ Support Python เช่น Nuke, Maya, Houdini, Vue, Blender ฯลฯ ฝึก Python ไว้ ไม่เสียหลายนะ รู้ภาษาเดียวใช้ได้หลายโปรแกรมเลย

รีทัชภาพไปเป็นหิมะ

Tuesday, November 10, 2009 ที่ 1:59 AM
ทำบน Nuke ดูเลยละกันเนอะ


ผมเคยเห็นวิธีนี้ที่ cmiVFX แต่ตอนนั้นมัน Nuke 4 โน่นแนะ ตอนนี้มัน 5 จะไป 6 หกอยู่แล้ว [Shake ยังนำหน้า Nuke อยู่เยอะเลยตอนนั้น แต่ตอนนี้ก็กลับกันแล้ว]
UI มันจะต่างกันนิดหน่อยจากตอนนั้น แต่ก็ไม่มากนะ

ภาพ ภูเขาหินปูน เอามาจากเวบ www.werthai.com/iggp/index6.htm ครับผม

IBKKeyer

Saturday, November 7, 2009 ที่ 2:23 AM
ใน Nuke ตัว Keyer ที่คล้ายๆ Keylight ที่สุดก็คือ IBKKeyer นี่แหละ ผมว่าผลลัพท์มันก็ออกมาดีเหมือนกัน
นอกจาก Primatte, Keylight หรือ Ultimatte แล้ว ผมว่า IBK นี่ก็เป็นอีกหนึ่งทางเลือกที่ไม่ควรมองข้ามเลย
Setup ก็ไม่ยากด้วย ใน VDO ก็เป็นวิธีที่ผมใช้อยู่บ่อยๆ แต่จากที่เคยดูคนอื่นๆก็มีวิธีการ Setup IBK ที่ต่างๆกันไป ขึ้นอยู่กับเน้นกันแค่ไหนใน Shot นั้นๆ

ที่ผม setup ใน vdo นี้ก็เป็นแบบง่ายๆอาจต้องแต่งกันอีกนิด แต่ต้องการให้เห็นว่า IBK ก็ไม่ธรรมดาเหมือนกันนะ หุหุ


[ภาพที่เอามาใช้ Key มาจาก www.hollywoodcamerawork.us ครับผม]

*พอดีกะลังมันเลยทำต่อจากแบบ IBK Keyer แล้วก็แบบ Primatte ด้วย* คลิ๊คดูภาพใหญ่ได้

Free Image Hosting At site


    follow me on Twitter

    Thaiafterfx | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com | Distributed by Deluxe Templates | My Flickr Artslan Flickr