ต่อไปนี้เป็นวิธีที่เป็นไปได้ในการเคลื่อนไหว svg:
ภาพเคลื่อนไหว SVG SMIL
SVG สามารถเคลื่อนไหวได้ด้วยภาษามาร์กอัปอันทรงพลังที่เรียกว่า SMIL ซึ่งส่งออกโดยตรงจากเครื่องมือแอนิเมชันเช่นปลั๊กอิน Adobe Animate CC + flash2svg
หากต้องการสร้างภาพ SVG ด้วย SMIL แม้ในเบราว์เซอร์ที่ขาดการสนับสนุนคุณเพียงแค่ใช้ SMIL polyfill
โพลีฟิลเป็นโค้ดจาวาสคริปต์พิเศษที่ให้การสนับสนุนคุณสมบัติที่ขาดหายไปจากเบราว์เซอร์แปลการเข้ารหัสดั้งเดิมในเบราว์เซอร์ที่สามารถเข้าใจได้
โพลีฟิล SMIL ที่ทำโดย Eric Willigers ทำเช่นนั้น: มันแปล SMIL เป็น Web Animations API ที่แม้แต่เบราว์เซอร์ Microsoft ก็รองรับ มันมีประสิทธิภาพมากที่นักพัฒนา Google Chrome ตัดสินใจที่จะทิ้งการสนับสนุน SMIL ดั้งเดิมและมุ่งเน้นไปที่การสร้างภาพเคลื่อนไหวบนเว็บโดยปล่อยให้ Eric Willigers รวมตัวกันเพื่อเล่นไฟล์ SMIL ใน Chrome
มีคนตีความผิดพลาดว่านี่เป็นการคัดค้าน SMIL โดย Chrome และวิพากษ์วิจารณ์ devs สำหรับตัวเลือกนี้ แต่มันไม่ใช่การลดค่าที่แท้จริงเพียงแค่การย้ายตำแหน่งของการตีความ SMIL ในระดับโพลีฟิล
ในความเป็นจริง Chrome devs อ้างถึง Willigers polyfill ในประกาศอย่างเป็นทางการเกี่ยวกับความตั้งใจที่จะเลิกใช้ SMIL
ดังนั้นหากคุณอ่านเว็บเกี่ยวกับการตายของ SMIL ทางอินเทอร์เน็ตไม่ต้องกังวล “ ความตาย” ของ SMIL ถูกทำให้กระฉับกระเฉงอย่างมาก มันเหมือนการเกิดใหม่
ในการใช้ SMIL บนเบราว์เซอร์ทั้งหมดรวมถึง IE และ EDGE คุณเพียงแค่เพิ่ม javascript polyfill นี้ในหน้าเว็บของคุณ:
https://github.com/ericwilligers/svg-animation
นี่คือหน้าตัวอย่างโดยใช้ polyfill ที่ทำโดย Tom Byrne ผู้เขียนผู้ส่งออก flash2svg ยอดนิยม:
หน้าโดยไม่มี polyfill:
http://www.tbyrne.org/staging/smil-polyfill/tears.htm
และหน้าเดียวกันกับ polyfill:
http://www.tbyrne.org/staging/smil-polyfill/tears_polyfill.htm
ถ้าคุณดูที่แหล่งข้อมูลมันจะอธิบายตัวเองได้ค่อนข้างมาก
การแสดงด้วยโพลีฟิลมักจะดีกว่า SMIL ดั้งเดิมเพราะในเว็บเบราว์เซอร์จำนวนมากเว็บแอนิเมชั่นเป็นฮาร์ดแวร์ที่เร่งความเร็วในขณะที่ SMIL มักจะไม่
ภาพเคลื่อนไหวส่งออกใน SVG SMIL
วิธีที่ง่ายกว่าในการสร้างภาพเคลื่อนไหว SVG คือการใช้เครื่องมือเช่น Adobe Animate CC เพื่อวาดภาพและปลั๊กอินเช่น Flash2svg ( https://github.com/TomByrne/Flash2Svg ) เพื่อส่งออกภาพใน SVG ด้วยคุณสามารถส่งออกภาพเคลื่อนไหว + เสียงเกือบทั้งหมดเป็นไฟล์ SVG ไฟล์เดียวเช่นตอนการ์ตูน:
http://www.tbyrne.org/portfolio/smil/LoveDota.svg
SVG ANIMATION JS LIBRARIES
วิธีจาวาสคริปต์นั้นซับซ้อนมากขึ้น ก่อนอื่นคุณต้องเป็นโปรแกรมเมอร์จาวาสคริปต์ จากนั้นคุณต้องเลือกระหว่างห้องสมุดหลายแห่ง ความนิยมมากขึ้นคือ:
SnapSVG http://snapsvg.io
ห้องสมุดนี้เป็นตัวตายตัวแทนของไลบรารี่
แอนิเมชั่นราฟาเอลที่เก่าแก่และเป็นที่นิยมโดยผู้แต่งคนเดียวกัน มีเสถียรภาพมาก แต่แปลง SVG ในรูปแบบภายในที่รันไทม์เพื่อทำให้เคลื่อนไหว ตัวเลือกการ Morphing นั้นพื้นฐานมากการประมาณเชิงเส้นเท่านั้น (หมายเหตุ: นอกจากนี้ยังมีปลั๊กอิน snap.svg สำหรับ Adobe Animate CC แต่ไฟล์ที่ส่งออกนั้นมีการขยายตัวผู้ส่งออกสร้างคำสั่ง snap svg หนึ่งคำสั่งสำหรับทุกเฟรมของแอนิเมชั่นไม่ใช่ทุกเฟรมหลัก ของรหัสเพียงเพื่อหมุนรูปสี่เหลี่ยมผืนผ้าที่เรียบง่ายผ่าน 360 องศาปลั๊กอิน Flash2svg มีประสิทธิภาพมากขึ้นเพียงแค่คำสั่งเดียวและไม่กี่ไบต์ในการทำงานเดียวกัน)
Greensock MorphSVG
http://greensock.com/morphSVGไลบรารี่
morphing ที่มีคุณสมบัติครบถ้วนที่ช่วยให้ SVG เคลื่อนไหวได้อย่างง่ายดายและไม่จำเป็นต้องแปลงไฟล์เหล่านั้นในรูปแบบภายใน เพียงแค่สร้างคีย์เฟรม 3-4 svg ใน Inkscape และ Greenock SVGMorphing lib จะทำการสอดแทรกระหว่างเฟรมโดยอัตโนมัติและสร้างเฟรมที่อยู่ระหว่างเพื่อการเล่นที่ราบรื่น นี่คือตัวอย่าง:
http://codepen.io/Emasoft/pen/reOqYE
3D Seen.js
http://seenjs.io/demo-svg-canvas.html
หากคุณต้องการเคลื่อนไหวในรูปแบบ 3 มิติห้องสมุดนี้มีประสิทธิภาพมาก
Seen.js แสดงผลไฟล์. obj แบบ 3D ตาข่ายใน SVG และทำให้เคลื่อนไหวได้ง่ายมาก
SVG IMAGES บรรณาธิการ
ในส่วนของเครื่องมือคุณสามารถสร้างคีย์เฟรมอนิเมชั่นเป็นหลักด้วยซอฟต์แวร์สามตัว:
Inkscape: โอเพ่นซอร์สมีฟีเจอร์มากมายแพคเกจแก้ไขเวกเตอร์ขั้นสูงของผู้ทำหน้าที่แบ่งกลุ่ม SVG Working Group การอ้างอิงสำหรับรูปแบบ SVG ไม่ใช่เรื่องง่ายที่จะเรียนรู้
Adobe Illustrator: ซอฟต์แวร์วาดภาพเวกเตอร์เชิงพาณิชย์ที่ทรงพลังมากมันมีคุณสมบัติมากมายที่ SVG ยังไม่รองรับ แต่ก็มีความเข้ากันได้กับรูปแบบที่เลวร้ายที่สุด คุณมักจะต้องแก้ไขไฟล์ SVG ที่ส่งออกด้วยตนเองเพื่อแก้ไขความยุ่งเหยิงของนักวาดภาพประกอบ แต่มันเป็นที่นิยมมากในโรงเรียนสอนศิลปะและนักกราฟิกทุกคนรู้วิธีใช้งาน
Affinity Designer: นี่เป็นซอฟต์แวร์เชิงพาณิชย์เช่น Illustrator แต่ด้วยความเข้ากันได้กับ SVG ที่ยอดเยี่ยมเกือบจะอยู่ในระดับของ Inkscape UI นั้นเป็นมิตรมากขึ้นและตอนนี้ก็กำลังเป็นที่นิยมในหมู่ศิลปิน SVG
ตัวแก้ไขภาพเคลื่อนไหว SVG
ขณะนี้ตัวแก้ไขภาพเคลื่อนไหว SVG เดียวเท่านั้นคือ:
- Adobe Animate CC: Adobe Flash Pro เดิมได้รับการเขียนใหม่อย่างสมบูรณ์โดย Adobe เพื่อย้ายจากภาพเคลื่อนไหวแฟลชที่ล้าสมัยไปแล้วไปยังภาพเคลื่อนไหว SVG ที่ทันสมัย คุณสามารถส่งออกภาพเคลื่อนไหว SVG ที่เกิดขึ้นพร้อมกับไลบรารีจาวาสคริปต์ที่กำหนดเองหรือเลือกที่จะบันทึกใน SVG + SMIL โดยใช้ปลั๊กอินเช่น "flash2svg" ตัวเลือกสุดท้ายนี้มีประสิทธิภาพมากฉันมักจะใช้มันแทนการส่งออกพื้นเมืองป่อง
คุณสามารถดาวน์โหลดปลั๊กอินฟรีได้จากที่นี่:
https://github.com/TomByrne/Flash2Svg
หรือติดตั้งจากแผง Adobe Plugins:
https://creative.adobe.com/addons/products/7232
น่าเสียดาย Adobe Animate CC เป็นเชิงพาณิชย์ มีแอปพลิเคชั่นทางเลือกภาพเคลื่อนไหวโอเพนซอร์ซฟรี แต่ฉันลองพวกเขาทั้งหมดและพวกเขายังคงดูด IMHO อยู่ หวังว่าในอนาคต
การอ้างอิง:
โพสต์บล็อกที่ครบถ้วนสมบูรณ์ของฉันในเรื่อง: https://medium.com/@fmuaddib/the-following-are-the-possible-ways-to-create-professional-animations-in-svg-9d4caca5f4ec
กรณีอ้างอิงเกี่ยวกับ snap.svg:
/programming/35727635/adobe-animate-snap-svg-plugin-huge-files