bobby.in.th
๓ มีนาคม ๒๕๕๖
3 March 2013
Update :  24 January 2014
Video/Re-Codec : 7 December 2017
หน้าแรก

SingleFrame
Amimation Maker Studio
(www.bobby.in.th)

1. การทำภาพนิ่งต่อเนื่องให้เป็นวิดีโอ (.avi) โดยใช้โปรแกรม VirtualDub

เกร็ดควรรู้เบื้องต้น :

การ Render งานแอนิเมชั่นจากโปรแกรม 3D เพื่อจะนำไปใช้เป็นงานนำเสนอ หรือนำไปทำงานต่อในขั้นตอน Post Production สามารถสั่ง Render งานนั้น ให้ออกมาได้ทั้งแบบเป็นภาพนิ่งต่อเนื่อง (Image Sequence) ได้แก่ Targa Sequence, PNG Sequence, Jpeg Sequence, Open EXR Sequence, BMP Sequence หรือแบบที่เป็นไฟล์วิดีโอหรือ Movie โดยตรงเลย ได้แก่ AVI Movie, QuickTime Movie (โปรแกรม 3D ที่ผมใช้ ไม่สามารถ Render เป็น Flash Movie ได้)

ข้อดี-ข้อเสียและเหตุผลต่างๆ ที่จะเป็นตัวกำหนดว่า ควรจะ Render ออกมาเป็นภาพนิ่ง หรือออกมาเป็นไฟล์วิดีโอนั้นมีมากมายหลายปัจจัย แต่ข้อที่เห็นได้ชัดเจนที่สุดคือ

ถ้า Render ออกเป็นภาพต่อเนื่อง เราสามารถหยุดการ Render หรือปิดเครื่อง เมื่อไรก็ได้ เพราะภาพจะถูก Save ไว้ที่ละภาพๆ เป็นลำดับ ต่อเนื่องกันไป เมื่อต้องการหยุด หรือเกิดเหตุโปรแกรมขัดข้อง หรือเกิดไฟฟ้าดับ ที่ภาพลำดับที่เท่าไรก็ตาม เราก็สามารถสั่ง Render ภาพที่ลำดับต่อไปได้เลย

แต่จะมีปัญหาเกิดการสะดุดหรือไม่ต่อเนื่องของเฟรมลำดับถัดไป เมื่อในฉากที่ Render นั้น มีการใช้ Dynamic หรือ Partical หรือมีการ จำลองแรงทางฟิสิกส์ต่างๆ แล้วไม่ได้สั่ง Bake Dynamic Systems, Bake Partical Systems, Bake Simulation Data ไว้ก่อนที่จะสั่ง Rendering

ถ้า Render เป็นไฟล์วิดีโอ หรือ Movie หากมีการหยุด ไม่ว่าด้วยสาเหตุอะไร ก่อนที่ไฟล์ Movie จะเสร็จสมบูรณ์ ไฟล์นั้นจะเสียและเปิดไม่ได้ ดังนั้นจึงต้องเริ่มต้น Render ใหม่ทั้งหมดตั้งแต่ต้น

ส่วนข้อดี-ข้อเสีย และข้อกำหนดต่างๆ สำหรับการนำไปเพื่อ ใช้ทำงานต่อในขั้นตอน Post Production จะเรียบเรียงมาแนะนำในโอกาสหลัง
Animation:Master, แอนิเมชั่นมาสเตอร์

ขั้นตอนการทำ :


ตัวอย่างนี้ Render ออกมาเป็น Jpeg Sequence ที่ขนาดภาพ 640 x 480 พิกเซล (ขนาดจริงที่จะใช้คือ 320 x 240 พิกเซล) โดยแอนิเมชั่นนี้มีความยาว 00:04:10 (๔ วินาทีกับ ๑๐ เฟรม) ที่ 50 fps ดังนั้นจึงได้ภาพทั้งหมดรวม ๒๑๑ ภาพ

บางโปรแกรมเรียกคำสั่งการ Render ที่ขนาดภาพใหญ่กว่าขนาดที่จะใช้งานจริงว่า Oversample หรือ Superscaling
วิดีโอแสดงการทำภาพนิ่งต่อเนื่องให้เป็นวิดีโอ (.avi) ด้วยโปรแกรม VirtualDub [10.0 MB/00:02:10]

๑. เปิดโปรแกรม VirtualDub
๒. ไปที่เมนู File > Open video file...  (เพื่อจะเปิดเฟรมภาพนิ่งต่อเนื่องที่เรา Render ไว้เข้ามา)
๓. พาไปโฟเดอร์ที่เก็บเฟรมภาพนิ่งที่ Render ออกมาจากโปรแกรม 3D
๔. คลิ้กเลือกเฉพาะที่ภาพแรกเพียงภาพเดียว แล้วคลิ้ก Open
(ดูที่มุมล่างซ้ายของหน้าต่างด้วยว่าที่คำสั่ง  Automatically load linked segments  ให้มีเครื่องหมายถูกเลือกอยู่ด้วย)
๕. ไฟล์รูปภาพต่อเนื่องทั้งหมดจะเข้ามาปรากฎในหน้าต่างของ VirtualDub ซ้ายมือคือ Input pane ขวามือคือ Output pane

การจัดมุมมองในการทำงานใน VirtualDub ให้ไปที่เมนู View แล้วคลิ้กเลือก (ติ๊กให้เครื่องหมายถูกขึ้น) ส่วนต่างๆที่เราต้องการ
เช่นตัวอย่างตามภาพข้างล่างนี้
เมนู View เพื่อจัดรูปแบบของหน้าต่างของ VirtualDub
๕. คลิ้ก Output playback เพื่อลองเล่นวิดีโอดู
(สังเกตว่าวิดีโอจะเล่นช้าเพราะผมทำงานในโปรแกรมแอนิเมชั่น และสั่ง Render ภาพต่อเนื่องออกมาที่ 50 fps แต่ค่า Default สำหรับการเรียงภาพนิ่งต่อเนื่องของ VirtualDub จะกำหนดไว้ที่ 15.000 fps)
๖. ไปที่เมนู Video > Frame Rate... หน้าต่าง Video frame rate control จะปรากฎขึ้น ที่กรอบ Source rate adjustment  แล้วพิมพ์ค่า Change frame rate to (fps):  50.000 (เพื่อให้วิดีโอเล่นความเร็วตรงกับที่เราทำงานในโปรแกรมแอนิเมชั่น) และที่กรอบ Frame rate conversion พิมพ์ค่า Convert to fps:  15.000

(ค่า Frame rate conversion นี้ไม่ต้องเปลี่ยนก็ได้ โดยใช้ค่า Default ของโปรแกรม คือ Process all frames เลย แต่ผมเปลี่ยนเป็น 15.000 เพื่อให้วิดีโอมีขนาดเล็กกว่า และสามารถโหลดข้อมูลได้เร็ว และเล่นได้ราบรื่นมากกว่า บนอินเตอร์เน็ทที่ช้า หรือเล่นกับเครื่องคอมพิวเตอร์รุ่นเก่า ที่ช้าได้อย่างไม่สะดุด  แต่คุณภาพและรายละเอียดของการเคลื่อนไหว จะลดลงไปบ้าง)


๗. ลองคลิ้กเล่นดูวิดีโอดูอีกครั้ง คราวนี้ความเร็วจะเป็นปกติตามที่เราทำงานในโปรแกรม 3D
๘. ไปที่เมนู Video > Filters...  หน้าต่าง Filters จะปรากฎขึ้น
๙. คลิ้ก Add... เปิดหน้าต่าง Add Filter ขึ้นมา ในหน้าต่างนี้
คลิ้กเลือก 2:1 reduction (high quality) แล้วคลิ้ก OK ปิดหน้าต่าง Add Filter
๑๐. ฟิลเตอร์ตัวที่เลือกจะมาปรากฎอยู่ในรายการในหน้าต่าง Filters
คลิ้ก OK ปิดหน้าต่าง Filters
๑๑. วิดีโอใน Output pane จะถูกย่อขนาดลงไปครึ่งหนึ่ง ลองเล่นวิดีโอดู
๑๒. ไปที่เมนู File > Save as AVI...
หมายเหตุ :

[เดิมคลิ้ปวิดิโอนี้ นำ Movie AVI Raw (.avi) ที่สั่ง Render ออกมาจากโปรแกรม VirtualDub ไปแปลงให้เป็น .flv ใน QuickMediaConverter เพื่อให้เล่นได้บนหน้าเว็บ]


ปัจจุบันคลิ้ป .mp4 ใช้งานได้ ครอบคลุม และสะดวกมากกว่า .flv

คลิ้ปนี้แก้ไขโดย
    นำ Movie AVI Raw (.avi) ที่สั่ง Render ออกมาจากโปรแกรม VirtualDub ไปแปลงให้เป็น คลิ้ป .mp4/Codec H.264 โดยใช้โปรแกรม Blender เพื่อให้สามารถเล่นบนหน้าเว็บได้โดยตรง ได้ทั้งบนคอมฯ และบน มือถือฯ
[646 KB/00:00:04]

2. การทำภาพนิ่งต่อเนื่องให้เป็นวิดีโอ (.avi) โดยใช้โปรแกรม Blender

Update :  14 June 2014

โปรแกรม Blender ในส่วนของ Video Sequence Editor (VSE) สามารถตัดต่อภาพนิ่ง, วิดีโอ, ใส่เสียง, ซ้อนภาพกราฟิก ฯลฯ คือ ทำได้เช่นเดียวกับโปรแกรมตัดต่อ ที่ใช้งานในระดับอาชีพเลยทีเดียว มีข้อจำกัดที่แจ้งไว้ชัดเจนประการเดียวคือ จะสามารถ Import ภาพนิ่งเข้าไปได้สูงสุดเพียง 9999 ภาพเท่านั้น
update: 25 May 2016
๒๕ พฤษภาคม ๒๕๕๙ :
ล่าสุดผมใช้ VSE ใน Blender 2.77a ตัด-ต่อวิดีโอ ปรากฎว่า สามารถ Import คลิ้ปวิดีโอ เข้าไป ได้มากกว่า 300,000 frames (น่าจะไม่จำกัดจำนวนเฟรมเลย)  แต่ Play back head จะเล่นได้สูงสุดที่ 300,000 frames เท่านั้น (๓ ชั่วโมง ๒๐ นาที/25 fps) คือ Play back head จะลาก มาสุดได้แค่ เฟรมที่ 3000,000 เท่านั้น ไม่สามารถ เล่น หรือ ลาก ไปให้เกินกว่าเฟรมที่ 3000,000 ได้ นั่นคือ VSE ของ Blender สามารถ ต่อ-ต่อ คลิ้ปวิดีโอได้ยาวที่สุด 300,000 เฟรม หรือ ๓ ชั่วโมง ๒๐ นาที/25 fps
วิดีโอแสดงการทำภาพนิ่งต่อเนื่องให้เป็นวิดีโอ (.avi) ด้วยโปรแกรม Blender [17.3 MB/00:04:36]

ตัวอย่างนี้ Render ภาพนิ่งต่อเนื่องออกมาจากโปรแกรม 3D เป็น Shade Wireframe นามกกุล .png ที่ขนาดภาพ 320 x 240 พิกเซล 30 fps และมีการ
  • ใส่ลายเซ็นหรือโลโก้ ลงไปในคลิ้ปวิดีโอ
  • สั่ง (Stamp) กำกับ Timecode และ Frame No. เพื่อระบุภาพนิ่งต่อเนื่องเหล่านั้นในคลิ้ปวิดีโอ
แล้ว Render ออกจากโปรแกรม Blender เป็น Movie AVI Raw

ขั้นตอนการทำ : โดยสังเขป

๑.  เปิดโปรแกรม Blender ขึ้นมา แล้วเปลี่ยนหน้าต่าง เพื่อไปทำงานใน Video Sequence Editor (VSE)
๒.  กำหนดขนาด (320 x 240 Pixels) และความเร็ว (fps/30) ตามที่เราสั่งโปรแกรม 3D ให้ Render ออกมา
๓.  ตั้งหัวอ่าน ให้ไปอยู่ที่เฟรม 00 และกำหนดเล่นเฟรมแรกที่เฟรม 0 เพื่อให้ Timecode 00 ตรงกับ เฟรม 00 (ปกติเฟรมแรกจะเริ่มที่เฟรม 01)
๔.  Add ภาพนิ่งต่อเนื่องที่โปรแกรม 3D Render ออกมา
๕.  ลากหัวอ่านไปที่เฟรมสุดท้าย เพื่อจะกำหนดความยาวของวิดีโอ
๖.  ลากหัวอ่านกลับไปที่เฟรม 00
๗.  Add โลโก้หรือลายเซ็นที่ต้องการใส่ด้วยเข้ามา, ยืดให้มีความยาวเท่าหรือมากกว่า ความยาวของวิด๊โอที่กำหนดไว้ แล้วกำหนดให้ Blend: เป็น Alpha Over และ Change Data/Files เป็น Image Offset

หมายเหตุ โลโก้ เตรียมไว้ก่อน โดยใช้โปรแกรม GIMP ทำเป็น "โลโก้"  พื้น "โปร่งใส/Transparency"  ขนาดเท่าที่ต้องการใช้ในคลิ้ปวิดีโอ หรือใหญ่กว่าเล็กน้อย แต่ไม่ควรเล็กกว่า (GIMP จะ Save ได้เฉพาะนามสกุล .xcf เท่านั้น ถ้าต้องการใช้รูปภาพนามสกุลอื่นๆต้องใช้คำสั่ง Export) แล้ว Export ออกมาเป็น .png โดยให้ "คลิ้กเครื่องหมายถูกเลือก" Save color values from transprent pixels ด้วยตอน Export
๘.  Add > Effect Strip > Transform เพื่อกำหนดขนาด และตำแหน่ง ของโลโก้ ในวิดีโอ, กำหนดให้ Blend: เป็น Alpha Over ด้วยเช่นกัน
๙.  กำหนดค่าที่ต้องการ Stamp ในวิดีโอ
๑๐. กำหนดไฟล์งานที่ต้องการ (Movie AVI Raw)
๑๑. กำหนดที่เก็บงานที่จะ Render ออกไป / ตั้งชื่อไฟล์ (ถ้าไม่ตั้งโปรแกรม Blender จะใช้ ตัวเลขเฟรมแรก-เฟรมสุดท้ายเป็นชื่อไฟล์ ถ้าตั้งชื่อ ก็จะเป็น ชื่อไฟล์ที่ตั้งต่อด้วยตัวเลขเฟรมแรก-เฟรมสุดท้าย
๑๒. สั่ง Render (ใช้คำสั่ง Render ที่หน้าต่าง VSE โปรแกรมฯ จะใช้รูปภาพเดิมที่ Add เข้ามาเลยโดยไม่มีการคำณวนค่าใหม่)
๑๓. ลองเล่น แอนิเมชั่นดู
๑๔. Save ไฟล์ของ Blender ถ้าต้องการเก็บไฟล์ .blend นี้ไว้ใช้อีก คือถ้ามีงานภาพนิ่งต่อเนื่องที่ขนาด 320 x 240 อีก ก็สามารถทิ้งของเก่า แล้ว Add ของใหม่เข้ามา โดยไม่ต้องจัดการ "โลโก้" และ "Stamp" ใหม่อีก

หมายเหตุ :

[เดิมคลิ้ปวิดิโอนี้ นำ Movie AVI Raw (.avi) ที่สั่ง Render ออกมาจากโปรแกรม Blender ไปแปลงให้เป็น .flv ใน QuickMediaConverter เพื่อให้เล่นได้บนหน้าเว็บ]

ปัจจุบันคลิ้ป .mp4 ใช้งานได้ ครอบคลุม และสะดวกมากกว่า .flv

คลิ้ปนี้แก้ไขโดย ใช้ Blender Render ออกมาเป็นคลิ้ป .mp4/Codec H.264 ซึ่งใช้งานบนหน้าเว็บ ได้เลย ทั้งดูผ่านคอมฯ และดูผ่านสมาร์ทโฟน


Blender สามารถ Render ออกเป็น .flv และวิดีโอนามสกุลอื่นๆได้ แต่ในขั้นต้น ผมทดลองเปรียบเทียบ คุณภาพวิดีโอ และขนาดของไฟล์ .flv จาก Blende และจาก QuickMediaConverter (ใช้ค่าตั้งที่โปรแกรมกำหนดมาทั้ง ๒ โปรแกรม) แล้วเห็นว่า ที่คุณภาพเท่ากัน ไฟล์จาก QuickMediaConverter มีขนาดเล็กกว่า ค่อนข้างมาก ผมยังไม่มีข้อมูลทางเทคนิค ในการปรับค่าการบีบอัด จึงขอใช้เทคนิคของ QuickMediaConverter ไปก่อน
[524 KB/00:00:03]

< วิธีการใช้ VSE ใน Blender โดยละเอียด สามารถดูได้ ที่นี่ >


3. ใช้ VSE ใน Blender แปลงไฟล์ วิดีโอ ให้เป็นไฟล์ ภาพนิ่งต่อเนื่อง

โดยสั่ง (Stamp) กำกับ Timecode และ Frame No. เพื่อจะใช้ภาพนิ่งต่อเนื่องเหล่านั้น มาเป็นแนวทางสร้าง Pose และตำแหน่ง Keyframe ในการทำ Animation
วิดีโอแสดงการทำวิดีโอ (.avi) ให้เป็นภาพนิ่งต่อเนื่อง ด้วยโปรแกรม Blender [19.1 MB/00:04:31]

ใช้คำสั่ง Add เรียกคลิ้ปวิดีโอที่บันทึกไว้, ตัดเฉพาะช่วงที่ต้องการ และควรเริ่มเฟรมแรกที่เฟรม 0 เพื่อให้ Timecode 00:00:00:00 เป็นเฟรม 00  (ปกติโปรแกรมฯจะเริ่มที่เฟรม 1), สามารถ Output ออกมาได้ ทั้งภาพนิ่งต่อเนื่อง (เช่น .png .jpg) และวิดีโอ (.avi) เพื่อความสะดวกในการทำ แอนิเมชั่น, สำหรับรายละเอียดวิธีใช้  Video Sequence Editor (VSE) เบื้องต้น " ดูจากที่นี่ "
Keyframes from Video
หาตำแหน่ง Keyframe หลัก ได้โดยการลากหัวอ่าน ใน VSE หรือใน Timeline (ในโปรแกรม Blender) แล้วดูลำดับเฟรม เพื่อนำไปใช้วางตำแหน่ง Keyframe ในโปรแกรม 3D (ดูที่แถบสีเขียวข้างหัวอ่าน), สังเกต เฟรมที่เริ่มมีการเปลี่ยนตำแหน่ง หรือเริ่มการเปลี่ยนอาการของนิ้วมือ คือตำแหน่ง คีย์เฟรมหลัก ซึ่งสามารถใช้ภาพนิ่งของเฟรมนั้น เป็นแบบหรือเป็นแนวทางสำหรับสร้าง Pose ในโปรแกรม 3D เมื่อสร้าง Pose ที่ตำแหน่ง Keyframe หลักครบแล้ว ลอง Play แอนิเมชั่น เพื่อให้โปรแกรมฯ จัดการ in-between ระหว่างคีย์เฟรมให้ แล้วจึงปรับแก้ให้เหมาะสมอีกครั้ง


[880 KB/00:00:05]
คลิ้ปวิดีโอต้นฉบับที่นำมาใส่ Timecode และกำกับ frame No. เพื่อแสดงข้อมูลเวลาและลำดับที่ของเฟรมอย่างชัดเจน


[687 KB/00:00:05]
คลิ้ปแอนิเมชั่น ที่ศึกษาแนวทางการจัดท่าทาง Pose และการวางตำแหน่ง Key frame จากคลิ้ปวิดีโอ

" งานประณีตในงบประหยัด "

okbabb@bobby.in.th
LINE ID : by_tawan
Tel : 02 583 7637
[ อยู่ระหว่างทำการปรับปรุง ยังไม่รับทำงานช่วงนี้ ครับผม ]
ขอบคุณครับ
thanks for your visiting

Rate : TV G2

(เตรียมความพร้อม : โครงงานการ์ตูน 3D แอนิเมชั่น สำหรับเด็ก " งานประณีตในงบประหยัด ")

Created with : Kompozer
EVO Hosting