แล็บ: แอนิเมชันฝาและลำดับการเคลื่อนไหวสั้น
Course 3 · Module 3
Type: Hands-on (pivot · keyframes · named clips · collision check)
Suggested time: ~2.5–3 ชั่วโมง
Read first: Lesson · Clip list · ← TOC · ← M02 · M04 →
Keep these tabs open
หัวข้อที่มีชื่อว่า “Keep these tabs open”| Document | Why |
|---|---|
| Editing Keyframes | I to insert keys |
| Timeline | playhead / Auto Key |
| Actions | name clips |
| Set Origin | hinge pivot |
| glTF Animations | naming for M04 |
Lab Goals
หัวข้อที่มีชื่อว่า “Lab Goals”- ตั้ง Origin ของฝาที่บานพับ
- สร้างแอนิเมชันเปิด/ปิดอย่างน้อย 1 ชุด
- ตรวจว่าชิ้นส่วนไม่ทะลุกันอย่างรุนแรงขณะเล่น
- ตั้งชื่อ Action/clip เป็นภาษาอังกฤษสั้น เช่น
lid_open - กรอก animation-clip-list.md
Prerequisites
หัวข้อที่มีชื่อว่า “Prerequisites”- มีไฟล์จาก M02 ที่แยก
Enclosure_lid/Enclosure_baseแล้ว - คัดลอกเป็น
m03_enclosure_motion.blendก่อนแก้
ถ้ายังไม่แยกฝา–ฐาน ให้กลับไปทำ Lab C ใน M02 lab ก่อน
Lab A — Hinge origin (required)
หัวข้อที่มีชื่อว่า “Lab A — Hinge origin (required)”- เลือก
Enclosure_lid - วาง 3D Cursor ที่ขอบบานพับ (Edit Mode →
Shift+S→ Cursor to Selected) - Object Mode → Origin to 3D Cursor
Ctrl+A→ Rotation & Scale- ทดสอบหมุนด้วย
Rบนแกนที่ถูกต้อง — ต้องเปิดแบบบานพับ
Pass when: เพื่อนในทีมหมุนฝาแล้วเข้าใจว่าบานพับอยู่ตรงไหนโดยไม่ต้องอธิบายยาว
Lab B — Keyframe lid_open (required)
หัวข้อที่มีชื่อว่า “Lab B — Keyframe lid_open (required)”- ตั้ง fps ของทีม (แนะนำ 24) และช่วงเฟรมประมาณ 1–3 วินาที
- เฟรมต้น: ฝาปิด →
I→ Rotation - เฟรมปลาย: หมุนเปิด →
I→ Rotation - Play ใน Timeline ตรวจการเคลื่อนไหว
- ตั้งชื่อ Action เป็น
lid_open(หรือชื่อสื่อความหมายเทียบเท่า)
Pass when: กด Play แล้วฝาเปิดจากปิดไปเปิดได้อย่างชัดเจน
Lab C — Close clip or return motion (required)
หัวข้อที่มีชื่อว่า “Lab C — Close clip or return motion (required)”เลือกอย่างใดอย่างหนึ่ง:
- C1: Action แยกชื่อ
lid_close - C2: ช่วงเฟรมต่อจากเปิด แล้วกลับไปท่าปิด ในคลิปเดียวกัน (จดใน clip list ให้ชัด)
Pass when: มีทั้งสถานะเปิดและปิดที่เล่นซ้ำได้
Lab D — Interference check (required)
หัวข้อที่มีชื่อว่า “Lab D — Interference check (required)”- เล่นแอนิเมชันช้า ๆ (เลื่อน playhead หรือลดความเร็วเล่น)
- สลับ Wireframe ตรวจจุดบานพับและชิ้นส่วนสูง
- จดใน clip list: ผ่าน / มีชนเล็กน้อย / ต้องแก้รูปทรง
- ถ้าชนรุนแรง: แก้ Origin มุมเปิด หรือกลับ M02
Pass when: ไม่มีทะลุรุนแรง หรือมีบันทึกปัญหาพร้อมแผนแก้
Lab E — Evidence + clip list (required)
หัวข้อที่มีชื่อว่า “Lab E — Evidence + clip list (required)”- กรอก animation-clip-list.md ครบทุกคลิป
- บันทึกหลักฐาน: สกรีนช็อตเฟรมปิด+เปิด หรือ viewport playblast สั้น ๆ
- Save
.blend
Lab F — Optional extras
หัวข้อที่มีชื่อว่า “Lab F — Optional extras”- คลิป
battery_reveal(เลื่อนชิ้นแทนแบตเตอรี่) - Graph Editor ปรับ easing ให้นุ่มขึ้น
- Parent ชิ้นส่วนเล็กติดกับฝา (Parenting)
Deliverables checklist
หัวข้อที่มีชื่อว่า “Deliverables checklist”-
m03_enclosure_motion.blend - Named open/close motion
- Interference check บันทึกแล้ว
- animation-clip-list.md กรอกครบ
- หลักฐานภาพหรือคลิปสั้น
Troubleshooting
หัวข้อที่มีชื่อว่า “Troubleshooting”| Symptom | What to try |
|---|---|
| ฝาหมุนแล้วลอยทั้งก้อน | Origin ยังไม่อยู่ที่บานพับ — ทำ Lab A ใหม่ |
| หมุนผิดแกน | ใช้ R แล้ว X / Y / Z · หรือหมุนใน Transform panel ทีละแกน |
กด I แล้วไม่เห็นคีย์ |
ดู Timeline · ปิด Only Show Selected ถ้าจำเป็น · ตรวจว่าเลือกวัตถุถูกชิ้น |
| Auto Key สร้างคีย์รก | ปิดปุ่มบันทึกใน Timeline แล้วลบคีย์เกินใน Dope Sheet |
| ชื่อ Action หายตอนเซฟ | ตรวจแผง Action · อย่าลบ Action โดยไม่ตั้งใจ |
| ชนที่บานพับ | เลื่อน Origin ออกนิด · หรือเว้นระยะฝา–ฐานในโมเดล |
Lesson · Clip list · TOC · M04 →
อ้างอิงบทเรียนนี้
ถ้านำบทเรียนนี้ไปสอน ทำสไลด์ หรือทำเอกสารต่อ ให้อ้างอิงด้วยข้อความนี้ ถ้าดัดแปลงเนื้อหา ให้เติม (ดัดแปลง)ต่อท้ายชื่อบทเรียน
"แล็บ: แอนิเมชันฝาและลำดับการเคลื่อนไหวสั้น" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0
ข้อความอ้างอิงภาษาอังกฤษ: "Lab: Lid Animation and Short Sequences" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0
ลิงก์บทเรียน: https://tesaiot.github.io/tesa-qualification-program/courses/product-design/m03-motion/l02-lab/
บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C3/M03/lab.md · Original content by Asst. Prof. Dr. Santi Nuratch (ผศ.ดร.สันติ นุราช), KMUTT. Course 3 (C3/) of drsanti/TESAIoT-Courses. TESA funded the work and holds the rights; published here under CC BY-NC 4.0. The upstream repository carries no licence file. Text kept faithful; structure, front matter, quizzes and notes added by TESA Open Knowledge.
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA