Skip Frames

Tuesday, February 15, 2011 ที่ 6:03 AM

การทำอะไรที่คล้ายๆการทำ Stop Motion ในหลายๆวิธี ไม่ว่าจะลด frame rate ฯลฯ

ถ้าจะไม่ไปยุ่งกับ Frame rate ของ Comp ที่ทำงานอยู่ มีวิธีหนึ่งคือการ Skip frame

ให้ skipFrame คือ เฟรมที่เราจะยกทิ้ง หรือไม่ rander ออกไป หน่วยเป็น frame
เรารู้ว่า

fps * thisComp.frameDuration = 1.0 frame ----------

fps มีหน่วยเป็น frame/sec
thisComp.frameDuration มีหน่วยเป็น sec

ดังนั้น cD = skipFrame * thisComp.frameDuration ก็จะได้เวลาทั้งหมดเป็น frame.sec หรือเฟรม.วินาที

หรือก็คือ cD คือ จำนวน เฟรมคูณกับเวลา ทั้งหมด

Math.round() คือเอาค่าที่ใกล้ที่สุดที่เป็นจำนวนเต็มได้มาใช้เช่น
คำนวนออกมาได้ วิที่ 1.7 วินาที เราก็จะเอา วิที่ 2 มาใช้ หรือ ได้วิที่ 5.2 เราก็จะเอาวิที่ 5 มาใช้ เป็นต้น นี่คือหน้าที่ของ Math.round ภาษาคนก็คือเอาค่าที่ใกล้จำนวนเต็มน่ะแหละ

ให้ Result คือผลลัพท์ทั้งหมดก่อนที่เราจะไปทำ timeRemap
time มีหน่วยเป็น sec. หรือ วินาที
cD มีหน่วยเป็น frame.sec
ก็จะได้

Result = Math.round(time/cD)*cD หน่วยเป็นวินาที

ต่อมาก็เอาใส่ timeRemap = Result;

เบ็ดเสร็จก็จะได้ Expression ดังนี้

skipFrame = 3;

cD = skipFrame* thisComp.frameDuration;

Result = Math.round(time/cD)*cD;

timeRemap = Result;

Download ตัวอย่างไปดูคู่กันด้วยนะ อันนี้เป็น CS5 นะ

    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