บทที่ 9
หลักการใส่คีย์เฟรม และการสร้างภาพเคลื่อนไหว1
(Keyframes and Timing in Animation1 )

เนื้อหา: 

เราจะสร้างแอนนิเมชันได้อย่างไร เราจะทำให้องค์ประกอบต่างๆที่สร้างขึ้นเกิดการเคลื่อนไหวได้อย่างไร เหล่านี้ คือเนื้อหาที่เราจะเรียนในบทเรียนนี้ เพื่อความเข้าใจคงต้องเท้าความไปถึงการสร้างแอนนิเมชันของคุณ Walt Disney ผู้ก่อตั้งบริษัท The Walt Disney Company ซึ่งเป็นที่รู้จักอย่างกว้างขวางทั่วโลก หลายท่านอาจคิดว่า คุณ Disney เป็นนักเขียนการ์ตูน (Animator) ที่จริงแล้วงานที่เค้าทำเป็นในลักษณะผู้วางเค้าโครงเรื่องมากกว่าที่ จะเป็นนักเขียนเสียเอง ส่วนผู้อยู่เบื้องหลังความสำเร็จทั้งหมดตั้งแต่เริ่มก่อตั้งบริษัทคือคุณ Ub Iwerks ซึ่งคือผู้ วาดการ์ตูนของ Disney ทั้งหมด โดยทำงานในฐานะของลูกจ้างของ Disney อีกทีหนึ่ง 

Iwerks เป็น Animator ที่มีพรสวรรค์และความละเอียดมาก อย่างที่ทราบกันว่า Frame Rate ที่ใช้ในวงการ โทรทัศน์ปัจจุบันคือ 24 Frame Per Second (24 FPS) หมายความว่าในการสร้างภาพเคลื่อนไหวที่มีความยาว หนึ่งวินาที Iwerks ต้องวาดภาพทั้งหมดถึง 24 ภาพ ดังนั้นการสร้างการ์ตูนสั้นๆขนาดความยาวไม่เกิด 10 นาที จะต้องวาดภาพทั้งหมดถึง 14,400 ภาพ การสร้างภาพยนต์ขนาดยาวจึงต้องใช้ภาพทั้งหมดหนึ่งแสนถึงสองแสน ภาพเลยทีเดียว 

ในช่วงแรกของการก่อตั้งบริษัท Iwerks ยังสามารถจัดการกับงานทั้งหมดได้ดี และได้สร้างผลงาน Classic ไว้ ประดับวงการมากมายอาทิ Steamboat Willie (ที่มีตัวเอกคือ Mickey Mouse ที่เรารู้จักกันเป็นอย่างดี) และ Skeleton Dance ทำให้บริษัทเป็นที่รู้จักอย่างกว้างขวางทั้งอเมริกา แต่เนื่องจากการเจริญเติบโตของความ ต้องการที่เพิ่มขึ้นตามชื่อเสียงของบริษัทที่เพิ่มขึ้น ทำให้ Iwerks ไม่สามารถสร้างงานทั้งหมดด้วยตนเองอีกต่อไป Disney จึงได้เสนอแนวความคิดใหม่ ซึ่งถือเป็นแนวทางในการสร้างแอนนิเมชันทั้งหมดในปัจจุบัน นั่นคือเรื่อง ของ Keyframes 

อะไรคือ Keyframes ในงานแอนนิเมชันยุคแรกเริ่มกล่าวคือ Disney ขอให้ Iwerks วาดเฉพาะแต่จุดสำคัญใน การเคลื่อนไหวของตัวละคร ยกตัวอย่างเช่น ถ้าต้องการฉากที่ตัวละครกระโดดข้ามขอนไม้ Iwerks จะต้องวาด เพียงแค่ภาพขณะที่ตัวละครยืนอยู่หน้าขอนไม้, ตัวละครย่อตัวลงเตรียมกระโดด, ตัวละครกำลังจะลอยขึ้นจาก 

ในการทำงานเราเรียกตำแหน่งของ Iwerks ว่า Lead Animator มีหน้าที่วาดในส่วนของการเคลื่อนไหวเฉพาะที่ สำคัญๆ โดยมี Junior Animators ทำหน้าที่รับช่วงต่อ เชื่อมความสัมพันธ์ระหว่างภาพเหล่านั้น ออกมาเป็นการ เคลื่อนไหวที่สมบูรณ์ เราเรียกภาพในส่วนที่ Iwerks วาดว่า Keyframes ในขณะที่ภาพจาก Junior Animators เรียกว่า In-Between (บางครั้งเราเรียก Junior Animator ว่า Tweener มาจากคำเต็มว่า In-Betweener นั่นเอง) ซึ่งสุดท้ายแล้ว Iwerks ไม่ได้มีความสุขกับการทำงานแบบนี้ เนื่องจากเจ้าตัวเชื่อว่าเป็นการทำลายศิลปะในงาน ของตัวเอง แต่นี่ไม่ใช่ประเด็นที่เราจะกล่าวถึง ประเด็นอยู่ที่แนวความคิดเรื่อง Keyframes กับ In-Betweens นี้ ถูกนำมาประยุกต์ใช้ในการสร้างภาพเคลื่อนไหวด้วยคอมพิวเตอร์ต่างๆทั้งหลายในปัจจุบัน 

จากโปรแกรมสร้างแอนนิเมชันต่างๆในปัจจุบัน รวมทั้ง Maya ได้ใช้แนวความคิดนี้ในการสร้างภาพเคลื่อนไหว โดยผู้ใช้มีหน้าที่เช่นเดียวกับ Iwerks นั่นคือ Lead Animator ทำหน้าที่กำหนดการเคลื่อนไหวที่สำคัญๆ (Keyframes) ในขณะที่โปรแกรมจะทำการคำนวณส่วนที่เหลือให้ (In-Between) ทำหน้าที่เสมือน Tweeners หรือ Junior Animators ให้กับเรา 

เมื่อเราเข้าใจที่มาที่ไปและการทำงานของ Keyframes กับ In-Between แล้ว ก็จะสามารถตอบคำถามข้อแรก ของเราว่าเราจะสร้างแอนนิเมชันได้อย่างไร แล้วแอนนิเมชันที่ดีล่ะจะสร้างได้อย่างไร ในงานสามมิติเราสามารถ แบ่งองค์ประกอบของแอนนิเมชันได้เป็นสององค์ประกอบ นั่นคือวัตถุ (Objects) กับ การเคลื่อนไหว (Motions and Movements) แล้วอะไรสำคัญกว่ากันล่ะ ในที่นี้ขอยกตัวอย่างคำพูดของอาจารย์ Adam Watkins ที่ว่า “How things move is usually more important than what moves.”* ความหมายคือ เคลื่อนอย่างไรสำคัญ กว่าอะไรเคลื่อน แน่นอนจากคำพูดนี้แสดงว่าการเคลื่อนไหวมีบทบาทสำคัญกว่ารูปร่างหน้าตาของสิ่งที่ เคลื่อนไหวอยู่ ถ้าอย่างนั้นแปลว่า Movements สำคัญกว่า Objects เสมอไปหรือไม่ คำตอบคือไม่แน่ เพราะทั้ง สององค์ประกอบจะส่งผลซึ่งกันและกัน 

* Adam Watkins อาจารย์จากมหาวิทยาลัย The University of The Incarnate Word, San Antonio, Texas, USA 

ในงานบางงานที่มีโมเดลคุณภาพต่ำ การเคลื่อนไหวที่สวยงามจะช่วยกลบเกลื่อนข้อด้อยของโมเดลได้ แต่ในทาง กลับกัน มีงานอีกมากมายที่มีโมเดลคุณภาพสูงแต่กลับมีการเคลื่อนไหวที่ไม่ดี ยกตัวอย่างเช่น ตัวละครที่มีความ สมจริงมากแต่กลับเคลื่อนไหวแข็งเหมือนกับหุ่นยนต์ ซึ่งจะกลบข้อเด่นของตัวโมเดลลงไปอย่างมาก หรือเรียกว่า เป็นการเคลื่อนไหวที่ทำลายงานแอนนิเมชัน 

จุดที่ทำให้แอนนิเมชันต่างจากภาพนิ่งคือการเคลื่อนไหว ดังนั้นการเคลื่อนไหวจึงเป็นปัจจัยที่มีความสำคัญอย่าง มากต่อภาพรวมของงานแอนนิเมชัน การสร้างการเคลื่อนไหวที่ดีช่วยให้งานแอนนิเมชันนั้นดูดีขึ้นได้ แต่การสร้าง แอนนิเมชันที่ ”ดี” จะต้องมีภาพที่ดีด้วย ดังนั้นทั้งสองปัจจัยจึงมีความเกื้อหนุนสอดคล้องกัน จะขาดสิ่งใดสิ่งหนึ่ง ไปไม่ได้ 

การสร้างแอนนิเมชันด้วยมายา 
Creating Animation with Maya 

เครื่องมือในการควบคุมและสร้างแอนนิเมชันอยู่ที่บริเวณด้านล่างของหน้าต่าง Interface ประกอบด้วยส่วนที่ เป็นแถบเครื่องมือที่ใช้ในการควบคุมเวลาเรียกว่า Timeline แต่ในมายาเรียกว่า Time Slider, ส่วนที่ใช้ควบคุม การเล่นภาพเรียกว่า Playback, ส่วนควบคุมช่วงเวลาในการทำงานเรียกว่า Range Slider ดูภาพที่ 7.3 ประกอบ

ทีนี้ลองมาดูรายละเอียดในแต่ละตัวว่ามีหน้าที่อย่างไร และจะสามารถควบคุมการทำงานของ Tools เหล่านี้ได้ อย่างไร

Time Slider (แถบเวลา)

มีหน้าที่ในการควบคุมเวลา และการแสดงผลของฉากว่าจะเป็นในช่วงเฟรมใด ในส่วนนี้จะประกอบด้วยส่วนที่ เป็นหมายเลขเฟรม จากภาพตัวอย่างคือแถบที่มีเลข 1 – 24 หมายเลขเหล่านี้คือหมายเลขของเฟรมนั่นเอง, ส่วน ต่อมาคือส่วนที่เป็นหัวอ่าน (Current Time Indicator) ที่เป็นสี่เหลี่ยมสีดำ เป็นตัวบอกว่าภาพที่แสดงอยู่ขณะนั้น อยู่ในเฟรมใด เราสามารถลากตัวหัวอ่านนี้ไปตามแถบเฟรมเพื่อให้หน้าจอแสดงผลเฟรมที่ต้องการไล่กันไปให้ เกิดเป็น Mini-Motion ในการ Preview การเคลื่อนที่ของวัตถุคร่าวๆได้ หรือจะใช้เม้าส์คลิกที่หมายเลขเฟรมใดๆ เพื่อให้หัวอ่านกระโดดไปแสดงผลที่เฟรมนั้นเลยก็ได้, และส่วนสุดท้ายคือช่องสี่เหลี่ยมบริเวณขวามือ (Current Time Field) ช่องนี้จะบอกว่าเฟรมที่แสดงผลอยู่คือเฟรมอะไร เราสามารถไปที่เฟรมที่ต้องการได้โดยการใส่ หมายเลขลงในช่องนี้ ตัวหัวอ่านจะกระโดดไปยังเฟรมนั้นทันที 

Playback Buttons (ปุ่มควบคุมการเล่น)

ชุดของปุ่มควบคุมการเล่นนี้จะอยู่บริเวณด้านขวาสุดต่อจาก Time Slider ส่วนนี้จะทำหน้าที่เสมือนเป็นเครื่อง เล่นภาพยนต์ที่มีปุ่ม เล่นไปข้างหน้า, เล่นย้อนกลับ, เล่นที่คีย์เฟรมถัดไป, เล่นที่คีย์เฟรมก่อนหน้า, เล่นไป ข้างหน้าทีละเฟรม, เล่นย้อนกลับทีละเฟรม, เล่นไปข้างหน้าแบบเร็ว และ เล่นถอยหลังแบบเร็ว 

Start/End Time Field (จำนวนเฟรมทั้งหมดของแอนนิเมชัน)

Start Time Field คือช่องแรกซ้ายมือที่อยู่บรรทัดเดียวกับ Range Slider ส่วน End Time Field คือช่องสุดท้าย ขวามือ (อย่าสับสนกับ Playback Time Filed ที่อยู่ด้านใน) ทำหน้าที่ในการกำหนดจำนวนเฟรมทั้งหมดของแอน นิเมชันที่เราต้องการสร้าง โดยเราสามารถใส่ค่าของเฟรมแรกที่ต้องการเริ่มแอนนิเมชันได้ที่ช่อง Start Time Field และใส่ค่าของเฟรมสุดท้ายที่ End Time Field เพื่อบอกหมายเลขเฟรมสุดท้ายของงาน นักศึกษาอาจเกิดคำถาม ว่าแล้วทำไมต้องใส่ค่าที่ Start Time Field ให้วุ่นวายด้วย ในเมื่อแอนนิเมชันก็ควรจะเริ่มจากเฟรมที่ 1 ไม่ใช้หรือ คำตอบคือ “อาจจะใช่หรือไม่ใช่ก็ได้” ถ้าเราทำแอนนิเมชันแค่ไฟล์เดียว แต่ในความเป็นจริง การสร้างแอนนิเมชัน ขึ้นมาสักเรื่องหนึ่ง ต้องใช้ไฟล์มากมาย โดยแต่ละไฟล์ก็จะมีหมายเลขเฟรมต่อกันไปเรื่อยๆ เช่นไฟล์แรกเริ่มที่ เฟรมที่ 1 – 100 ดังนั้นในไฟล์ที่สองเราสามารถใส่หมายเลขตรง Start Time Field ให้เริ่มที่เฟรมที่ 101 – 200 ต่อไปได้เพื่อป้องกันความสับสนว่าไฟล์ไหนมาก่อนมาหลังกัน 

Playback Start/ End Time Field (จำนวนเฟรมที่ให้แสดงผล) 

ทั้ง Playback Start และ Playback End Time Field จะอยู่ระหว่าง Start กับ End Time Field ส่วนนี้คืออะไร ใน การทำงานที่มีจำนวนเฟรมมากๆ เป็นเรื่องยากที่จะเลื่อนหัวอ่านไปยังเฟรมที่ต้องการ และการมอง Keyframes บน Timeline ก็ไม่สามารถทำได้อย่างสะดวก Playback Start/ End Time Field จะช่วยให้เราสามารถขยาย Timeline ออกเป็นช่วงๆ ปิดการแสดงผลของเฟรมที่ไม่ต้องการ ทำให้เกิดที่ว่างบน Timeline เพิ่มขึ้น ทำให้การ ทำงานเกิดความสะดวกสบายขึ้น โดยจะไม่มีผลกับจำนวนเฟรมแท้จริงในการประมวลผลแต่อย่างใด เรา สามารถใส่ค่าช่วงของเฟรมที่ต้องการขยายได้โดยใส่หมายเลขเฟรมแรกที่ช่อง Playback Start Time Field และ เฟรมสุดท้ายที่ Playback End Time Field โดยช่วงของเฟรมที่ใส่ไม่สามารถทะลุออกจากช่วงของเฟรมที่ใส่วน Start/ End Time Field ได้ (ถ้าเกินโปรแกรมจะเปลี่ยนเวลาใน Start กับ End Time Field ให้ตรงกัน) 

Range Slider (แถบเลื่อนระยะของเฟรมที่แสดงผล)

แถบเลื่อนระยะนี้ถ้าสังเกตให้ดีจะมีหมายเลขของเฟรมอยู่ที่บริเวณหัวกับท้ายของแถบ แสดงหมายเลขของเฟรม แรกและเฟรมสุดท้ายของช่วงเวลา ซึ่งจะตรงกับหมายเลขที่อยู่ภายในช่อง Playback Start/ End Time Field เรา 

Auto Keyframe Toggle (ปุ่มบันทึกคีย์เฟรมแบบอัตโนมัติ)

ปุ่มนี้จะอยู่บริเวณด้านขวาของ Range Slider สามารถเปิดการทำงานได้โดยการคลิกที่ปุ่มโดยตรง ปุ่มจะ เปลี่ยนเป็นสีแดงดังภาพตัวอย่าง แสดงว่าการทำงานของ Auto Keyframe Toggle ได้ถูกเปิดขึ้นแล้ว Auto Keyframe Toggle มีประโยชน์อย่างไร เมื่อเราเคลื่อนไหววัตถุใดๆภายในฉาก โปรแกรมจะทำการเก็บค่า เหล่านั้นไว้ตั้งเป็น Keyframes ให้โดยอัตโนมัติ โดยที่เราไม่ต้องทำการ Set Keys แต่อย่างใด ประโยชน์คือเรื่อง ของความสะดวกสบายในการทำงาน แต่ข้อเสียคือเราไม่สามารถกำหนดค่าการเคลื่อนไหวเฉพาะบางอย่างได้ และการทำงานอาจเกิดข้อผิดพลาดโดยไม่ตั้งใจ สำหรับผู้ใช้ที่ยังขาดความชำนาญในเรื่องของการตั้งค่า Keyframe ได้ 

หมายเหตุ: การทำงานของ Auto Keyframe Toggle จะสามารถเริ่มได้ จะต้องมีอย่างน้อย 1 คีย์เฟรมที่เรา Set เข้าไปด้วยวิธีแบบปกติก่อน 

Animation Preferences Button 

ปุ่มนี้จะอยู่ถัดไปจากปุ่ม Auto Keyframe Toggle มีหน้าที่ควบคุม Preferences ของ Timeline เมื่อเรากดที่ปุ่มนี้ หน้าต่าง Preferences ในหัวข้อของ Timeline จะถูกเปิดขึ้นมา (หรือสามารถเปิดได้โดยไปที่ Window/ Setting/Preferences/ Preferences แล้วไปที่หัวข้อ Timeline ได้เช่นกัน) ในหน้าต่างๆนี้แบ่งเป็นสองหมวด ใหญ่ๆคือ Timeline กับ Playback ในหมวด Timeline เราสามารถแก้ไขค่าต่างๆที่เราตั้งใน Timeline ได้จากส่วนนี้ ซึ่งจะได้ผลลัพธ์เช่นเดียวกัน ส่วนที่สองคือ Playback จะเป็นตัวควบคุมการเล่นของ Playback Buttons ซึ่งมี หัวข้อต่างๆเช่น 

หัวข้อ Looping จะเป็นตัวกำหนดว่าเราจะ Preview ในแบบเล่นครั้งเดียวแล้วหยุด (Once), เล่นแบบไปแล้ว ย้อนกลับ (Oscillate), หรือแบบวนเป็น Loop (Continuous) 

หัวข้อ Playback Speed เป็นการกำหนดความเร็วในการเล่น ประกอบด้วย Play Every Frame เครื่องจะเล่น โดยใช้ความเร็วของ CPU กล่าวคือยิ่งเครื่องมีการประมวลผลที่เร็วเท่าไหร่ ภาพจะถูกเล่นเร็วขึ้นเท่านั้น โดยไม่ใช่ ความเร็วที่แท้จริงของภาพยนต์ตัวนั้น (ไม่ใช่ 24 FPS), Real-Time (24 FPS) เครื่องจะเล่นโดยใช้ความเร็วจริง ของภาพยนต์ คือ 24 เฟรมต่อวินาที การเลือกหัวข้อนี้จะทำให้เราสามารถทราบ Timing ที่แท้จริงของงานได้, Half (12 FPS) เครื่องจะเล่นโดยหน่วงความเร็วลงครึ่งหนึ่ง หรือคือการเล่นแบบ Slow Motion ลงที่ครึ่งหนึ่งของ ความเร็วปกติ, Twice (48 FPS) จะเล่นที่ความเร็วเป็นสองเท่าจากความเร็วปกติ 

หัวข้อ Playback By ค่าตั้งต้นจะอยู่ที่ 1.00 นั่นคือเครื่องจะเล่นทุกๆเฟรม ถ้าใส่ค่าอื่นลงไปเช่น 5 เครื่องจะเล่น ทุกๆห้าเฟรมเป็นต้น 

การตั้งค่าคีย์เฟรม (Keyframe Settings) 

การตั้งค่าคีย์เฟรมสามารถทำได้หลายวิธีไม่ว่าจะเป็นการใช้คีย์ลัด (Short Keys), การคลิกขวาที่หน้าต่าง Attributes ของวัตถุ, หรือแม้กระทั่งการเปิด Auto Keyframe Toggle ให้โปรแกรมใส่คีย์เฟรมให้แบบอัตโนมัติ ดังนั้นก่อนที่เราจะมาเรียนรู้การสร้างแอนนิเมชัน เราควรทำความเข้าใจกับวิธีการใส่คีย์เฟรมด้วยวิธีต่างๆก่อน 

การใส่คีย์เฟรม (Insert Keyframes) 
การใส่คีย์เฟรมโดยใช้คีย์ลัด 

การใช้คีย์ลัดทำให้การทำงานเกิดความสะดวกสบายขึ้นมาก ก่อนอื่นเรามาทำความรู้จักกับคีย์ลัดเหล่านี้ก่อนว่า คีย์ไหนทำหน้าที่อะไรบ้าง 
•	Shift+W คือการใส่ค่าคีย์เฟรมให้กับวัตถุในตำแหน่งที่อยู่ขณะนั้น (Position) โดยคำนวณจากตำแหน่ง ในแนวแกน X, Y และ Z โปรแกรมจะใส่ค่าความเปลี่ยนแปลงให้กับค่า Translate X, Y และ Z 
•	Shift+E คือการใส่คีย์เฟรมให้กับตำแหน่งการหมุนของวัตถุ (Rotation) เช่นหมุนไปจากเดิมกี่รอบ ใน ทิศทางไหนเป็นต้น โปรแกรมจะใส่ค่าความเปลี่ยนแปลงให้กับค่า Rotate X, Y และ Z 
•	Shift+R คือการใส่คีย์เฟรมให้กับการเปลี่ยนขนาดของวัตถุ (Scale) เช่นวัตถุมีการขยาย การหดตัวจาก เดิมอย่างไร โปรแกรมจะใส่ค่าความเปลี่ยนแปลงให้กับ Scale X, Y และ Z 

จะสังเกตได้ว่าในคีย์ลัดแต่ละตัวจะจดจำเฉพาะค่าเฉพาะตัวแต่ละอย่าง เช่น Shift + W จะจำแค่ตำแหน่งของ วัตถุ โดยที่ไม่จำค่าของ Rotation หรือ Scale แต่อย่างใด หมายความว่าถ้าเราเลื่อนตำแหน่งของวัตถุ ใน ขณะเดียวกันเราก็หมุนวัตถุรอบตัวเองสามรอบด้วย Rotate Tool และทำการ Scale วัตถุให้มีขนาดใหญ่ขึ้น แล้ว 
ในการทำงานที่ไม่ต้องการแยกการบันทึกค่าคีย์เฟรมทั้งสามออกจากกัน เราสามารถทำการรวมค่าการ เปลี่ยนแปลงเหล่านั้นไว้ที่การกดคีย์ลัดเพียงปุ่มเดียวนั่นคือ “S” 
•	กดปุ่ม S คือการสั่งให้โปรแกรมใส่ค่าคีย์เฟรมทั้งสามคือ Move, Rotate และ Scale ลงไปที่เฟรมนั้น ไม่ว่าวัตถุจะมีการเปลี่ยนแปลงในหัวข้อนั้นหรือไม่ คีย์เฟรมก็จะถูกติดตั้งลงไป ข้อเสียคืออาจก่อให้เกิด คีย์เฟรมที่ถูกสร้างขึ้นมาโดยไม่ได้ใช้ได้ ทำให้กินการประมวลผลของเครื่อง ดังนั้นควรเลือกใช้ให้ดีว่าคีย์ ไหนเหมาะกับสถานการณ์อย่างไร 

ภายหลังจากที่เรากดคีย์ลัดแล้ว เราสามรถตรวจสอบดูว่าคีย์เฟรมถูกบันทึกลงไปแล้วหรือไม่ โดยให้สังเกตจาก เส้นสีแดงที่จะถูกสร้างขึ้นบน Timeline เป็นตัวแสดงว่าค่าคีย์เฟรมได้ถูกทำการบันทึกไว้แล้ว

การใส่คีย์เฟรมโดยใช้วิธี Attributes Editor 

การใส่คีย์เฟรมโดยการคลิกขวาที่ Attributes Editor นี้จะสามารถให้ค่าที่ละเอียดกว่า คือนอกจากจะแยกการใส่ คีย์เฟรมออกเป็นสามส่วนคือ Translate, Rotate และ Scale แล้ว ยังสามารถแยกย่อยลงไปกว่านั้นได้เช่นใส่ค่า Translate X, Y และ Z แยกจากกันเป็นต้น ดังนั้นจึงเหมาะกับการทำงานที่ต้องการความละเอียดสูง แต่ข้อเสีย คือขั้นตอนการใส่คีย์เฟรมที่มีความยุ่งยากกว่านั่นเอง คือแทนที่จะสามารถกดคีย์ลัดเพื่อทำการบันทึกได้เลย เรา ต้องไปตั้งค่าที่หน้าต่าง Attribute Editor ของวัตถุนั้นก่อน ซึ่งมีขั้นตอนดังน

•	เมื่อ Select เลือกวัตถุอยู่ ที่แถบ Attributes Editor ของวัตถุนั้น บริเวณด้านบนที่แสดงค่า Translate, Rotate และ Scale ให้คลิกเลือกใน หัวข้อที่ต้องการใส่คีย์เฟรม (คลิกในบริเวณที่เป็น สีเทา จะเกิดเป็นแถบสีดำขึ้นมา) ถ้าต้องการ เลือกมากกว่าหนึ่งหัวข้อ สามารถทำได้โดยการ กด Shift ค้างไว้ แล้วเลือกหัวข้อที่เหลือ จากภาพ ตัวอย่างนี้เลือกสามหัวข้อ 

2.เมื่อทำแถบสีดำ Highlight หัวข้อที่ต้องการแล้ว ให้คลิกขวาที่บริเวณแถบสีดำนั้น แล้วเลือกไปที่ Key Selected เพื่อบอกกับโปรแกรมให้ใส่คีย์เฟรมลงในหัวข้อที่เลือก ผลลัพธ์ที่ได้คือบริเวณช่องสีขาวด้านหลัง หัวข้อ (บริเวณที่ใส่เลข) จะเปลี่ยนเป็นสีส้ม แสดงว่าคีย์เฟรมถูกบันทึกลงในหัวข้อนั้นๆเรียบร้อยแล้ว แถบที่ เป็นสีส้มนี้จะไม่สามารถเปลี่ยนแปลงค่าด้วยการพิมพ์ตัวเลขได้ จนกว่าจะมีการ Set Key เข้าไปใหม่ 

หลังจากขั้นตอนนี้แล้ว เราสามารถเลื่อนหัวอ่านไปยังเฟรมถัดๆไป จัดการกับวัตถุให้อยู่ในตำแหน่ง ทิศทาง และ ขนาดที่ต้องการ แล้วทำตามขั้นตอนที่ 1 และ 2 ต่อไป เพื่อใส่คีย์เฟรมให้กับเฟรมอื่นๆที่ต้องการ 
หมายเหตุ: ถ้าต้องการใส่คีย์เฟรมให้กับหัวข้อทั้งหมด (Translate, Rotate และ Scale) สามารถทำได้โดยการ คลิกขวาที่หัวข้อใดๆใน Attributes Editor แล้วเลือก Key All จะเกิดแถบสีส้มที่ทุกหัวข้อ ซึ่งมีค่าเท่ากับการกด คีย์ลัด “S” นั่นเอง 

การใส่คีย์เฟรมด้วยวิธี Auto Keyframe Toggle 

วิธีนี้สามารถทำได้ง่าย และมีความสะดวกอย่างมากสำหรับงานที่ไม่ต้องการความละเอียดหรือซับซ้อนเท่าไร มี ขั้นตอนคือเราต้องใส่คีย์เฟรมให้กับวัตถุด้วยวิธีปกติก่อนอย่างน้อยหนึ่งคีย์เฟรม (จะเป็นการใช้คีย์ลัดหรือการใส่ จาก Attributes Editor ก็ได้) หลังจากนั้นทำการเปิดการทำงานของ Auto Keyframe Toggle โดยคลิกที่ไอคอน รูปกุญแจให้เกิดเป็นสีแดง แล้วเลื่อนหัวอ่านไปยังเฟรมที่ต้องการ แล้วจัดการความเปลี่ยนแปลงให้กับวัตถุได้เลย เช่น ย้ายที่ หมุน หรือย่อ/ขยายขนาด ที่ Timeline จะเกิดขีดสีแดงของคีย์เฟรมให้โดยอัตโนมัติในทุกๆครั้งที่เรา สร้างความเปลี่ยนแปลงให้กับวัตถุ 

ทดลองทำลูกบอลกระเด้งกระดอน 
(Bouncing Ball) 

เนื่องจากการสร้างแอนนิเมชันเป็นเรื่องที่ซับซ้อนและต้องอาศัยความเข้าใจในการทำ จึงเป็นสิ่งจำเป็นที่เรา จะต้องทดลองทำด้วยตนเองให้เกิดความเข้าใจ ในหัวข้อนี้จึงจะเสนอแนะขั้นตอนการสร้างแอนนิเมชันสุด Classic คือการสร้างลูกบอลกระเด้งกระดอนพื้น โดยที่จะมีการยุบและยืดของลูกบอลในขณะที่กระทบพื้นด้วย มีขั้นตอนดังนี้ 

•	ให้สร้างฉากขึ้นมาประกอบด้วยลูก Sphere หนึ่ง ลูกจาก NURBS และพื้นสำหรับให้ลูกบอลเด้ง อีกหนึ่งอันโดยใช้ Polygons Cube จัดวางให้อยู่ ตำแหน่งตามภาพตัวอย่าง โดยที่ให้ลูกบอลลอย สูงจากพื้นพอสมควร เนื่องจากเรากำลังจะสร้าง ฉากที่ลูกบอลตกกระเด้งลงมาที่พื้นก่อนที่จะ กระเด้งลอยออกจากฉากไป 

2.ดูให้แน่ใจว่าหัวอ่านอยู่ที่เฟรมแรก จากนั้น Select ที่ลูกบอล แล้วกดปุ่ม “S” เพื่อใส่คีย์เฟรม ให้กับลูกบอลที่ลอยอยู่กลางอากาศ สังเกตที่ Timeline ตรงเฟรมที่ 1 จะมีขีดสีแดงปรากฏขึ้น แสดงว่าคีย์เฟรมถูกใส่ลงไปเรียบร้อยแล้ว 

3.เลื่อนหัวอ่านไปยังเฟรมที่ 24 แล้วใช้ Move Tool เคลื่อนย้ายลูกบอลไปทางซ้ายของหน้าจอ เสร็จ แล้วกดปุ่ม “S” อีกครั้งเพื่อทำการบันทึกค่าความ เปลี่ยนแปลงที่เฟรมที่ 24 นี้ จากนั้นตรวจสอบบน Timeline อีกครั้งว่ามีขีดสีแดงขึ้นที่เฟรมนี้หรือไม่ 

4.เลื่อนหัวอ่านกลับมายังเฟรมที่ 12 ลูกบอลจะวิ่ง กลับมาครึ่งระยะทาง ไม่ต้องสนใจ ให้ใช้ Move Tool ดึงลูกบอลลงมาที่พื้นในแนวดิ่ง คือให้ดึงลง มาตรงๆ อย่าให้เฉไปทางด้านหน้าหรือด้านข้าง โดยให้ลูกบอลจมลงไปใต้พื้นครึ่งใบ แล้วกด “S” เพื่อใส่คีย์เฟรมที่สามลงไป 

จากตรงนี้ถ้าเราทดลองกด Play จาก Playback จะพบว่าลูกบอลลอยอยู่แล้วตกกระทบพื้น จมลงไปครึ่งลูก แล้ว จึงเด้งขึ้นมา มีลักษณะการวิ่งเป็นรูปตัว V ดูแล้วให้ความรู้สึกที่แข็งๆหลอกตามาก และลูกบอกก็ยังดูไม่เหมือนว่า เด้งขึ้นมาเมื่อกระทบพื้น แต่เหมือนลอยอยู่แบบไร้น้ำหนักมากกว่า ทั้งนี้เนื่องจากเรายังไม่ได้ใส่หลักการเรื่องของ Squash and Stretch (การยุบและยืดตัวของวัตถุ) ให้กับลูกบอล หลักการนี้เป็นปัจจัยที่สามารถ Apply ลงไปได้ ในแอนนิเมชันเกือบทุกประเภท ไม่ว่าจะเป็นลูกบอลที่ตกกระทบพื้น ลูกเบสบอลที่ถูกไม้ตี ต้นไม้ที่ถูกลมพัด ก้อน เยลลี่ (น่าทาน) ที่สั่นเนื่องจากอยู่ในจานที่มีการเคลื่อนไหว หรือแม้กระทั่งการกระโดดข้ามสิ่งกีดขวางของคน ก็ ต้องใช้หลักการนี้เช่นกัน ดูภาพประกอบที่ 7.2 ก่อนที่คนจะกระโดดขึ้นต้องมีการย่อขาก่อน เป็นการยุบตัวลงไป จากจุดที่ยืนอยู่ปกติเพื่อเป็นการเพิ่มแรงส่ง ก่อนที่จะทำการกระโดด ในจังหวะนี้เรียกว่า Squash และในจังหวะที่ กลับมาที่เรื่องของลูกบอล เมื่อลูกบอลสัมผัสจะเกิดการยุบตัวจากแรงกระแทก (Squash) ก่อนที่จะมีการยืดตัว ออกในจังหวะที่เด้งออกจากพื้น เมื่อเราเข้าใจสภาพความเป็นจริงของลูกบอลแล้ว ก็จะสามารถสร้างการ เคลื่อนไหวที่สมจริงขึ้นให้กับงานได้ รายละเอียดเล็กๆน้อยๆเหล่านี้ที่ หลายๆคนมองข้ามไป เป็นตัวสร้างความ แตกต่างระหว่างแอนนิเมชันธรรมดาๆ กับงานที่มีความเป็นเอกลักษณ์ได้ ดังนั้นเราลองมาดูว่าเราจะสร้างสิ่งเหล่านี้ได้อย่างไร

กลับมาที่มุมมอง Side View จะพบว่าในเฟรมที่ ลูกบอลเริ่มที่จะสัมผัสพื้นคือเฟรมที่ 9 และเฟรม ที่ลูกบอลกำลังจะลอยพ้นพื้นคือเฟรมที่ 15 เหตุการณ์ที่ลูกบอลจะเกิดการเปลี่ยนแปลง เริ่ม จากยุบตัวลงจากแรงกระแทก ก่อนที่ละกลับมาสู่ สภาพเดิมและลอยพ้นพื้นไป ล้วนเกิดขึ้นใน ระหว่างสองเฟรมนี้ (เฟรมที่ 9 - 15) 

5.เลื่อนหัวอ่านไปยังเฟรมที่ 9 แล้วทำการใส่คีย์ เฟรมลงไปโดยการกด “S” จากนั้นเลื่อนไปยัง เฟรมที่ 14 แล้วทำการใส่คีย์เฟรมโดยการกด “S” อีกทีหนึ่ง (ที่ไม่ใส่ในเฟรมที่ 15 เนื่องจากต้องมี จังหวะที่ลูกบอลเหยียดตัวออก ที่เราจะทำต่อไป) ในขณะนี้เราจะมีคีย์เฟรมทั้งหมดอยู่ 5 อัน คือใน เฟรมที่ 1, 9, 12, 14 และ 24 ตามลำดับ 

6.เลื่อนหัวอ่านกลับไปที่เฟรมที่ 12 แล้วใช้ Scale Tool ทำการบี้ลูกบอลให้แบนลง แล้วขยายขนาด ของวงกลมให้ใหญ่ขึ้น มีลักษณะเหมือนลูกบอล ลมที่ถูกอัดลงพื้นอย่างแรง เมื่อได้รูปทรงที่ ต้องการแล้ว ให้ใช้ Move Tool ทำการยกลูกบอล ให้วางอยู่บนพื้นพอดิบพอดี อย่าให้จมไปใต้พื้น จัดให้อยู่ตามภาพตัวอย่าง 

7.เลื่อนหัวอ่านกลับไปที่เฟรมที่ 12 แล้วใช้ Scale Tool ทำการบี้ลูกบอลให้แบนลง แล้วขยายขนาด ของวงกลมให้ใหญ่ขึ้น มีลักษณะเหมือนลูกบอล ลมที่ถูกอัดลงพื้นอย่างแรง เมื่อได้รูปทรงที่ ต้องการแล้ว ให้ใช้ Move Tool ทำการยกลูกบอล ให้วางอยู่บนพื้นพอดิบพอดี อย่าให้จมไปใต้พื้น จัดให้อยู่ตามภาพตัวอย่าง 
ลอง Play Movie ดูจะพบว่าลูกบอลมีการยุบตัวลงเมื่อตกกระทบพื้น ทำให้เห็นถึงแรงกระแทกได้ดีขึ้น มีลักษณะ เหมือนลูกบอลยางซึ่งถือเป็นการสิ้นสุดของขั้นตอน Squash ในขั้นตอนต่อไปเราจะสร้างการยืดตัวในจังหวะที่ลูก บอลกระดอนขึ้นจากพื้น

8.เลื่อนหัวอ่านกลับไปที่เฟรมที่ 9 ใช้ Scale Tool ยืดความยาวลูกบอลออก แล้วลดขนาดเส้นรอบ วงของลูกบอลลง จากนั้นใช้ Rotate Tool หมุน ลูกบอลให้หันไปในทิศทางเสมือนว่ามันกำลังพุ่ง อยู่ตามภาพตัวอย่าง เมื่อได้ตามต้องการแล้วให้ กด “S” เพื่อใส่ค่าคีย์เฟรมลงไป 

9.ไปยังเฟรมที่ 15 ทำเช่นเดียวกับข้อ 8 เพียงแต่ให้ หันทิศทางการเด้งของลูกบอลตรงข้ามกัน แล้วใส่ ค่าคีย์เฟรมลงไปด้วยปุ่ม “S” อีกทีหนึ่ง เมื่อเสร็จ ขั้นตอนนี้แล้วเราจะมีคีย์เฟรมทั้งหมด 6 อัน คือที่ เฟรมที่ 1, 9, 12, 14, 15 และ 24 ตามลำดับ 
ลอง Play Movie ดูอีกครั้ง จะพบว่าลูกบอลที่มีการใส่ค่า Squash และ Stretch ลงไปจะดูมีความสมจริงเพิ่มขึ้น ดูภาพประกอบที่ 7.5 สังเกตการเคลื่อนที่ของวัตถุ อย่าลืมปรับอัตราการเล่นให้เป็นแบบ Real-Time (24 FPS) ก่อน เพื่อให้เห็นความเร็วที่แท้จริงขิงการเล่น (สามารถทำได้โดยการกดปุ่ม Animation Preferences บริเวณด้าน ขวามือของ Range Slider)

จากการ Preview ดูจะพบว่าลูกบอลมีการเคลื่อนที่ๆออกจะเร็วๆไปอยู่สักนิด ซึ่งการปรับแอนนิเมชันที่มีการ Set Keyframes ไปแล้ว ให้เร็วหรือช้าลงนั้น สามารถทำได้จากการปรับแต่งส่วนของ Timeline ซึ่งรานละเอียดจะอยู่ ภายในหัวข้อถัดไป 

การปรับแต่งช่วงเวลา 
Timeline Editing 
เราสามารถทำการแก้ไขคีย์เฟรมที่ทำการตั้งค่าไปแล้วได้โดยการคลิกขวาที่ Timeline จะปรากฏเมนูมาให้เรา เลือก ไม่ว่าจะเป็นคำสั่ง Copy, Cut, Delete, Paste ก็สามารถทำกับคีย์เฟรมได้ไม่ต่างกับการใช้คำสั่งเหล่านี้กับ โปรแกรมอื่นๆ ยกตัวอย่างเช่นถ้าเราสร้างคีย์เฟรมใดๆที่ไม่ต้องการขึ้นมา เราสามารถลบทิ้งได้โดยการเลื่อน หัวอ่านไปยังเฟรมนั้น คลิกขวาแล้วเลือก Delete คีย์เฟรมนั้นจะถูกลบทิ้งไป หรือในกรณีที่เราต้องการสร้างคีย์ เฟรมสองอันที่มีค่าเท่ากันทุกอย่าง เช่น ในเฟรมที่ 1 ลูกบอลอยู่บนพื้น จากนั้นลูกบอลลอยขึ้นแล้วตกลงมาใน จุดเริ่มต้นอีกครั้งในเฟรมที่ 12 เราสามารถเลื่อนหัวอ่านมาที่เฟรมที่ 1 แล้วทำการ Copy คีย์เฟรม จากนั้นไปยัง เฟรมที่ 12 แล้วเลือก Paste เพื่อให้สองคีย์เฟรมนี้มีค่าเท่ากันทุกอย่างเป็นต้น 
ที่กล่าวมาถึงนี้เป็นการจัดการกับคีย์เฟรมทีละคีย์เฟรม ในกรณีที่เราต้องการย้ายคีย์เฟรมพร้อมๆกันทีละหลายๆ คีย์เฟรมล่ะ จะสามารถทำได้อย่างไร จากเรื่อง Bouncing Ball ในหัวข้อที่ผ่านมา แอนนิเมชันเริ่มในเฟรมที่ 1 และจบลงในเฟรมที่ 24 ถ้าเราต้องการให้แอนนิ้มชันเริ่มช้าไปห้าเฟรม (เริ่มในเฟรมที่ 5 จบในเฟรมที่ 29) จะทำการย้ายคีย์เฟรมทั้งชุดเลื่อนถอยไปพร้อมกันได้อย่างไร 

การย้ายคีย์เฟรมหลายๆคีย์เฟรมพร้อมๆกัน 
Moving Keys

•	บน Timeline นำ Cursor ไปวางไว้บนเฟรมแรกที่เราต้องการย้ายที่

•	กด Shift ค้างไว้ แล้วใช้เม้าส์ปุ่มซ้ายลากเป็นแถบ Highlight สีแดงขึ้นมาไปยังเฟรมสุดท้ายที่ต้องการ เคลื่อนย้าย

•	สังเกตที่บริเวณกึ่งกลางของแถบ Highlight นี้จะมีหัวสามเหลี่ยมสีดำสองอันอยู่ชี้สวนทางกัน ให้เอาเม้าส์คลิก ค้างตรงนี้ แล้วลากไปทางขวา สังเกตตัวเลขสีขาวที่อยู่ซ้ายสุดของแถบ Highlight ให้เปลี่ยนเป็นเลข 5 หมายถึง เฟรมที่ 5 จะเป็นเฟรมแรกของชุดคีย์เฟรมนี้ จากนั้นปล่อยเม้าส์ได้

•	จากตรงนี้จะพบว่า Timeline ของเราแสดงแค่ 24 เฟรม ทำให้มีเฟรมที่ตกขอบขวาไป 5 เฟรม เราจึงต้อง ขยายตัว Range Slider เพื่อให้แสดงผลครบทั้ง 28 เฟรม ทำได้โดยคลิกที่บริเวณสี่เหลี่ยมด้านขวาของ Range Slider แล้วลากไปทางขวาจนกว่าจะแดงตัวเลข 28 เป็นอันเสร็จสิ้นขั้นตอน 

หมายเหตุ: ในการเคลื่อนย้ายคีย์เฟรมนั้น สามารถทำพร้อมๆกันทีละหลายๆคีย์เฟรม หรือจะย้ายทีจะคีย์เฟรมก็ ได้ วิธีย้ายทีละเฟรมคือ ให้กด Shift ค้างไว้ จากนั้น Select คีย์เฟรมที่ต้องการ จะปรากฏแถบ Highlight สีแดง ครอบเฉพาะคีย์เฟรมที่เลือก จากนั้นสามารถทำตามขั้นตอนที่ 3 เพื่อย้ายไปยังตำแหน่งที่ต้องการ 

การยืดหรือหดคีย์เฟรมหลายๆคีย์เฟรมพร้อมๆกัน 
Rescaling Keys 

การย้ายคีย์เฟรมหลายๆอันพร้อมกัน สามารถทำได้เพื่อเปลี่ยนจุดเริ่มของเหตุการณ์ชุดนั้นๆ โดยที่ไม่มีผลต่อ ระยะเวลาของเหตุการณ์นั้นแต่อย่างใด (เหตุการณ์นั้นยังมีจำนวนคีย์เฟรมในชุดเท่าเดิม) ในการที่จะทำให้ เหตุการณ์ในชุดนั้นสั้นหรือยาวขึ้นต้องใช้วิธี Scaling Keys 
การ Scaling Keys คือการยืดหรือหดชุดของคีย์เฟรมใดๆในอัตราส่วนที่เท่ากัน มีผลคือทำให้ Motion ของแอนนิ เมชันชุดนั้นเร็วขึ้นหรือช้าลงนั่นเอง เพื่อความเข้าใจเราจะลองทำดูจากแอนนิเมชัน Bouncing Ball ในหัวข้อที่ ผ่านมา 
*ถ้าใครเลื่อนคีย์เฟรมไป 5 เฟรม ให้เลื่อนกลับมายังจุดเริ่มต้นก่อน

•	บน Timeline นำ Cursor ไปวางไว้บนเฟรมแรกของชุดแอนนิเมชันที่เราต้องหาร Rescale

•	กด Shift ค้างไว้ แล้วใช้เม้าส์ปุ่มซ้ายลากเป็นแถบ Highlight สีแดงขึ้นมาไปยังเฟรมสุดท้ายของชุด 

•	ทำการเพิ่มความยาวของ Timeline เพื่อให้มีพื้นที่เพียงพอสำหรับการขยายคีย์เฟรม โดยคลิกที่บริเวณ สี่เหลี่ยมด้านขวาของ Range Slider แล้วลากไปทางขวาจนกว่าตัวเลขเฟรมสุดท้ายจะเปลี่ยนเป็น 48

•	ที่บริเวณด้านขวาสุดของแถบ Highlight สีแดง จะมีหัวลูกศรสามเหลี่ยมชี้ไปทางขวา คลิกเม้าส์ที่สามเหลี่ยมนี้ แล้วลากไปทางขวามือให้คลุมไปถึงเฟรมสุดท้ายคือเฟรมที่ 48

•	เมื่อเสร็จแล้วให้คลิกที่บริเวณใดๆบน Timeline แถบ Highlight จะหายไป สังเกตคีย์เฟรมทั้ง 6 คีย์ จะถูกยืด ออกในอัตราส่วนที่เท่ากัน เมื่อเราลอง Preview ดูจะพบว่าลูกบอลลอยช้าลงเป็นสองเท่าจากเดิม (เนื่องจากตอน แรกใช้ 24 เฟรม แต่ตอนนี้แอนนิเมชันเรามี 48 เฟรม) 

แบบฝึกหัด
จงแอนิเมทลูกบอลกะเด้ง ( Bouseing Ball) ในโปรแกรม Maya ให้มีการกระเด้ง 3 ครั้ง