ต่อจาก 
บทที่ ๑
  
  ใน
บทที่แล้วได้แนะนำการติดตั้ง manim และการใช้คำสั่ง manimgl ในเบื้องต้นไปแล้ว สำหรับบทนี้จะลงลึกรายละเอียดการใช้คำสั่ง manimgl
  
  
  
  
  
เริ่มต้นรันคำสั่ง manimgl กรณีที่มี Scene เดียว
  
  ขอเริ่มจากยกตัวอย่าง เช่นมีไฟล์ kumo.py ดังนี้ (โค้ดสั้นๆง่ายๆคล้ายตัวอย่างในบทที่แล้ว) ซึ่งได้สร้างคลาสที่รับทอดคลาส Scene ไว้อันเดียว
  
import manimlib as mnm
class Kumodesuga(mnm.Scene):
    def construct(self):
        text = mnm.Text('แมงมุมแล้วไง\n\nข้องใจเหรอคะ?',size=3.2,color='#55ff77')
        self.play(mnm.Write(text),run_time=1.6)
  
  จากนั้นเปิดคอมมานด์ไลน์ ไปที่โฟลเดอร์ที่ไฟล์อยู่แล้วรันคำสั่ง manimgl ตามด้วยชื่อไฟล์
  
  
manimgl kumo.py
  
  แล้วก็จะปรากฏหน้าต่างแสดงภาพเคลื่อนไหวซึ่งตัวหนังสือค่อยๆถูกเขียนขึ้นแบบนี้
  
  
 กรณีมี class Scene หลายอัน
  
  
  
  
  กรณีมี class Scene หลายอัน
  
  ตัวอย่างที่แล้วเป็นกรณีที่มีการสร้างสร้างคลาสที่รับทอดคลาส Scene ไว้แค่อันเดียว แต่หากมีมากกว่า ๑ อันเมื่อรันแล้วจะมีให้เลือกว่าจะเปิดอันไหน
  
  ตัวอย่าง ลองสร้างไฟล์ใหม่ amu.py ซึ่งมีสร้างคลาสของ Scene ไว้ ๒ อัน ดังนี้
  
import manimlib as mnm
class Arifureta(mnm.Scene):
    def construct(self):
        text = mnm.Text('อาชีพกระจอก\n\nแล้วทําไม\n\nยังไงข้าก็เทพ',size=1.6,color='#db266e')
        self.play(mnm.Write(text),run_time=2.5)
class Mushoku(mnm.Scene):
    def construct(self):
        text = mnm.Text('เกิดชาตินี้พี่ต้องเทพ',size=2.2,color='#317b8d')
        self.play(mnm.Write(text),run_time=1.8)
  
  จากนั้นลองรันไฟล์
  
manimgl amu.py
  
  ก็จะขึ้นมาแบบนี้
  
1: Arifureta
2: Mushoku
  
  จากนั้นให้พิมพ์เลข 1 หรือ 2 หรือชื่อเต็มของคลาสลงไปก็จะเป็นการเลือกเปิดอันนั้น
  
  แต่หากไม่ต้องการที่จะต้องพิมพ์ภายหลัง ก็ใส่ชื่อ Scene ตามหลังชื่อไฟล์ไปได้เลย ก็จะเป็นการเลือกเปิดฉากนั้นทันที
  
manimgl amu.py Arifureta
  
  
  
  
  การแสดงภาพเต็มจอ (-f)
  
  หากต้องการหน้าต่างใหญ่ขนาดเต็มจอก็เติม -f ลงไป
  
  
manimgl kumo.py -f
  
  ก็จะแสดงผลออกมาเต็มหน้าจอ
  
  
  
  
  
การแสดงเฉพาะภาพสุดท้าย (-s)
  
  หากไม่ได้ต้องการเห็นภาพเคลื่อนไหวแต่อยากดูแค่ภาพสุดท้ายที่ปรากฏแค่ภาพเดียวเลยก็ใส่ -s ลงไป
  
  
manimgl kumo.py -s
  
  
  
  
  การเปลี่ยนสีฉากหลัง (-c)
  
  ฉากหลังของภาพนั้นโดยค่าตั้งต้นแล้วจะเป็นสีดำสนิท แต่หากต้องการเปลี่ยนฉากหลังให้เป็นสีอื่นก็ทำได้โดยใส่ -c ตามด้วยรหัสสี
  
  เช่น
  
manimgl amu.py Mushoku -c #FFAAAA
  
  ก็จะออกมาเป็นแบบนี้
  
  
 
  
  หรือจะใส่เป็นชื่อสีก็ได้
  
manimgl amu.py Arifureta -c cyan
  
   การเขียนภาพลงไฟล์ (-w -o)
  
  
  
  
  การเขียนภาพลงไฟล์ (-w -o)
  
  หากรันแบบปกติจะแค่ขึ้นหน้าต่างมาแสดงภาพ แต่ไม่ได้มีการบันทึกภาพลงไฟล์ แต่หากต้องการบันทึกเป็นไฟล์ .mp4 ก็ให้ใส่ตัวเลือกเสริม -w ลงไป
  
  เช่น
  
manimgl kumo.py -w
  
  แล้วภาพจะถูกบันทึกลงในโฟลเดอร์ชื่อ videos โดยจะเป็นชื่อไฟล์จะตรงกับชื่อคลาส ในที่นี้คือ Kumodesuga.mp4
  
  
 
  
  หากต้องการให้ทั้งเขียนไฟล์แล้วเมื่อสร้างไฟล์ขึ้นมาเสร็จก็เปิดไฟล์นั้นขึ้นมาด้วยก็เติม -o แทน -w
  
manimgl kumo.py -o
  
  
  
  
  การให้บันทึกทั้งหมด ในกรณีที่มีหลาย class Scene (-a)
  
  กรณีที่ในไฟล์ .py นั้นมีใส่คลาสของ Scene ไว้มากกว่า ๑ อัน เมื่อรัน manimgl ก็จะมีให้เลือกว่าจะเอา Scene ไหน รวมถึงกรณีเมื่อใส่ -w หรือ -o เพื่อเขียนไฟล์ด้วย ก็จะมีให้เลือกว่าจะเขียน Scene ไหน
  
  แต่หากใส่ -a ลงไปด้วยก็จะเป็นการสร้างไฟล์ของทุก Scene ที่มีทั้งหมด
  
manimgl amu.py -wa
  
  ถ้าใช้ -o ก็จะเปิดแต่ละไฟล์ขึ้นมาทันทีที่สร้างเสร็จ
  
manimgl amu.py -oa
  
  
  
  
  การระบุชื่อไฟล์ที่จะบันทึก (--file_name)
  
  ปกติชื่อไฟล์ที่ได้จะเป็นไปตามชื่อคลาส แต่หากต้องการกำหนดชื่อไฟล์ขึ้นเองก็ทำได้โดยใส่ --file_name ตามด้วยชื่อไฟล์ที่ต้องการ เช่น
  
manimgl kumo.py -w --file_name kumo.mp4
  
  แบบนี้ก็จะได้ไฟล์ชื่อ kumo.mp4
  
  
  
  
  
ปรับคุณภาพของภาพ (-m -l --uhd)
  
  ปกติโดยค่าตั้งต้นแล้วถ้าไม่ได้ใส่ตัวเลือกเสริมใดๆเพิ่มเติมเราจะได้ภาพที่มีคุณภาพค่อนข้างสูง ซึ่งโดยค่าตั้งต้นแล้วจะเป็นวีดีโอขนาด 1920×1080 เฟรมเรต 30
  
  แต่บางครั้งอาจต้องการประหยัดเวลาหรือพื้นที่เก็บไฟล์ กรณีแบบนั้นก็อาจทำการปรับลดคุณภาพของภาพลงได้
  
  หากต้องการได้ภาพคุณภาพต่ำก็ทำได้โดยใส่ -l จะได้ภาพขนาด 854×480 เฟรมเรต 15
  
manimgl kumo.py -wl
  
  ลองเทียบไฟล์ที่ได้ออกมา จะเห็นว่าขนาดไฟล์เล็กลง
  
  ภาพคุณภาพปานกลางให้ใส่ -m จะได้ภาพขนาด 1280×720 เฟรมเรต 30
  
manimgl kumo.py -wm
  
  ในทางกลับกันถ้าหากต้องการภาพคุณภาพสูงเป็นพิเศษก็ใส่ --uhd
  
manimgl kumo.py -w --uhd
  
  ก็จะได้ภาพคุณภาพสูงมาก ขนาด 3840×2160 เฟรมเรต 60 แต่ขนาดไฟล์ก็ใหญ่มากเป็นพิเศษ
  
  นอกจากนี้ยังกำหนดความละเอียดภาพและเฟรมเรตให้เป็นไปตามที่ต้องการได้โดยเติม -r และ --frame_rate
  
  
  
  
  
ปรับแต่งความละเอียดภาพ (-r)
  
  สามารถระบุเลือกขนาดความละเอียดของภาพที่จะเขียนออกมาได้โดยใส่ -r แล้วตามด้วยความกว้างและสูงโดยใส่ค่าเป็น กว้างxยาว
  
  ตัวอย่างเช่น
  
manimgl kumo.py -wr 400x500
  
  แบบนี้ก็จะได้วีดีโอขนาด 400×500
  
  
  
  
  
การปรับเฟรมเรต (--frame_rate)
  
  สามารถกำหนดเฟรมเรต (จำนวนภาพต่อวินาที) ของวีดีโอที่ได้ โดยใส่ --frame_rate ตามด้วยเลขจำนวนเต็มที่แสดงจำนวนภาพต่อวินาที
  
  ตัวอย่างเช่น
  
manimgl kumo.py -w --frame_rate 5
  
  แบบนี้ก็จะได้วีดีโอที่แสดง ๕ ภาพต่อวินาที
  
  
  
  
  
การบันทึกเป็น gif (-i)
  
  หากใส่ -w ก็จะเป็นการทำไฟล์วีดีโอ .mp4 แต่นอกจากนั้นแล้วหากต้องการทำเป็นไฟล์ภาพ .gif ก็ทำได้ โดยเติม -i แทน เพียงแต่ขนาดภาพที่ได้จะค่อนข้างใหญ่เมื่อเทียบกับ .mp4 และคุณภาพของภาพอาจดูไม่ค่อยดีนัก
  
  ตัวอย่างเช่นทำภาพ gif ขนาด 300×100 เฟรมเรต 5
  
manimgl kumo.py -i --frame_rate 5 -r 300x100
  
  ผลที่ได้ก็จะเป็นภาพ gif แบบนี้
  
  
 ข้อมูลเพิ่มเติม (-h --help)
  
  
  
  
  ข้อมูลเพิ่มเติม (-h --help)
  
  นอกเหนือจากที่กล่าวมาแล้วนั้น manim ยังมีรายละเอียดที่ไม่ได้เขียนถึงอีกมาก รวมทั้งอาจมีการเปลี่ยนแปลงในอนาคต
  
  หากต้องการอ่านดูรายละเอียดเพิ่มเติมทำได้โดยพิมพ์ -h
  
manimgl -h
  
  หรือ --help
  
manimgl --help
  
  
  
  อ่านบทถัดไป >> 
บทที่ ๓