ใช้ภาพเคลื่อนไหวของรูปร่างในงานนำเสนอด้วย Python
บทนำ
ภาพเคลื่อนไหวเป็นเอฟเฟกต์ภาพที่สามารถนำไปใช้กับข้อความ, รูปภาพ, รูปร่าง, หรือ แผนภูมิ. พวกมันทำให้การนำเสนอหรือส่วนประกอบของมันมีชีวิตชีวา.
ทำไมต้องใช้ภาพเคลื่อนไหวในงานนำเสนอ?
การใช้ภาพเคลื่อนไหวคุณสามารถ
- ควบคุมการไหลของข้อมูล
- เน้นจุดสำคัญ
- เพิ่มความสนใจหรือการมีส่วนร่วมของผู้ฟัง
- ทำให้เนื้อหาง่ายต่อการอ่านหรือทำความเข้าใจหรือประมวลผล
- ดึงความสนใจของผู้อ่านหรือผู้ชมไปยังส่วนสำคัญในงานนำเสนอ
PowerPoint มีตัวเลือกและเครื่องมือหลายอย่างสำหรับภาพเคลื่อนไหวและเอฟเฟกต์ภาพเคลื่อนไหวในหมวด entrance, exit, emphasis, และ motion paths.
ภาพเคลื่อนไหวใน Aspose.Slides
- Aspose.Slides มีคลาสและประเภทที่จำเป็นสำหรับทำงานกับภาพเคลื่อนไหวภายใต้เนมสเปซ Aspose.Slides.Animation
- Aspose.Slides มีเอฟเฟกต์ภาพเคลื่อนไหวกว่า 150 ภายใต้ enumeration EffectType. เอฟเฟกต์เหล่านี้โดยพื้นฐานแล้วเหมือนกับ (หรือเทียบเท่า) กับเอฟเฟกต์ที่ใช้ใน PowerPoint.
ใช้ภาพเคลื่อนไหวกับ TextBox
Aspose.Slides for Python via .NET ให้คุณใช้ภาพเคลื่อนไหวกับข้อความในรูปร่าง.
- สร้างอินสแตนซ์ของคลาส Presentation.
- รับอ้างอิงของสไลด์ผ่านดัชนีของมัน.
- เพิ่ม
rectangleIAutoShape. - เพิ่มข้อความไปยัง
IAutoShape.TextFrame. - รับลำดับหลักของเอฟเฟกต์.
- เพิ่มเอฟเฟกต์ภาพเคลื่อนไหวให้กับ IAutoShape.
- ตั้งค่าคุณสมบัติ
TextAnimation.BuildTypeให้เป็นค่าจาก enumerationBuildType. - บันทึกการนำเสนอไปยังดิสก์เป็นไฟล์ PPTX.
โค้ด Python นี้แสดงวิธีการใช้เอฟเฟกต์ Fade กับ AutoShape และตั้งค่าการเคลื่อนไหวของข้อความเป็นค่า By 1st Level Paragraphs :
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาสการนำเสนอที่แสดงไฟล์การนำเสนอ.
with slides.Presentation() as pres:
sld = pres.slides[0]
# เพิ่ม AutoShape ใหม่พร้อมข้อความ
autoShape = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 20, 20, 150, 100)
textFrame = autoShape.text_frame
textFrame.text = "First paragraph \nSecond paragraph \n Third paragraph"
# รับลำดับหลักของสไลด์.
sequence = sld.timeline.main_sequence
# เพิ่มเอฟเฟกต์ภาพเคลื่อนไหว Fade ให้กับรูปร่าง
effect = sequence.add_effect(autoShape, slides.animation.EffectType.FADE, slides.animation.EffectSubtype.NONE, slides.animation.EffectTriggerType.ON_CLICK)
# ทำให้ข้อความของรูปร่างเคลื่อนไหวตามย่อหน้าอันดับแรก
effect.text_animation.build_type = slides.animation.BuildType.BY_LEVEL_PARAGRAPHS1
# บันทึกไฟล์ PPTX ไปยังดิสก์
pres.save("AnimText_out.pptx", slides.export.SaveFormat.PPTX)
ใช้ภาพเคลื่อนไหวกับ PictureFrame
- สร้างอินสแตนซ์ของคลาส Presentation.
- รับอ้างอิงของสไลด์ผ่านดัชนีของมัน.
- เพิ่มหรือรับ PictureFrame บนสไลด์.
- รับลำดับหลักของเอฟเฟกต์.
- เพิ่มเอฟเฟกต์ภาพเคลื่อนไหวให้กับ PictureFrame.
- บันทึกการนำเสนอเป็นไฟล์ PPTX.
โค้ด Python นี้แสดงวิธีการใช้เอฟเฟกต์ Fly กับ picture frame:
import aspose.slides as slides
import aspose.pydrawing as draw
# สร้างอินสแตนซ์ของคลาสการนำเสนอที่แสดงไฟล์การนำเสนอ.
with slides.Presentation() as pres:
# โหลดรูปภาพเพื่อเพิ่มในคอลเลกชันรูปภาพของการนำเสนอ
img = draw.Bitmap("aspose-logo.jpg")
image = pres.images.add_image(img)
# เพิ่ม picture frame ไปยังสไลด์
picFrame = pres.slides[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 100, 100, image)
# รับลำดับหลักของสไลด์.
sequence = pres.slides[0].timeline.main_sequence
# เพิ่มเอฟเฟกต์ภาพเคลื่อนไหว Fly จากด้านซ้ายให้กับ picture frame
effect = sequence.add_effect(picFrame, slides.animation.EffectType.FLY,
slides.animation.EffectSubtype.LEFT,
slides.animation.EffectTriggerType.ON_CLICK)
# บันทึกไฟล์ PPTX ไปยังดิสก์
pres.save("AnimImage_out.pptx", slides.export.SaveFormat.PPTX)
ใช้ภาพเคลื่อนไหวกับ Shape
- สร้างอินสแตนซ์ของคลาส Presentation.
- รับอ้างอิงของสไลด์ผ่านดัชนีของมัน.
- เพิ่ม
rectangleIAutoShape. - เพิ่ม
BevelIAutoShape (เมื่อคลิกอ็อบเจกต์นี้ ภาพเคลื่อนไหวก็จะเล่น). - สร้างลำดับของเอฟเฟกต์บนรูปร่าง bevel.
- สร้าง
UserPathแบบกำหนดเอง. - เพิ่มคำสั่งเพื่อเคลื่อนที่ไปยัง
UserPath. - บันทึกการนำเสนอเป็นไฟล์ PPTX.
โค้ด Python นี้แสดงวิธีการใช้เอฟเฟกต์ PathFootball (path football) กับ shape:
import aspose.slides.animation as anim
import aspose.slides as slides
import aspose.pydrawing as draw
# สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์ PPTX
with slides.Presentation() as pres:
sld = pres.slides[0]
# สร้างเอฟเฟกต์ PathFootball สำหรับรูปร่างที่มีอยู่จากศูนย์.
ashp = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 150, 250, 25)
ashp.add_text_frame("Animated TextBox")
# เพิ่มเอฟเฟกต์ภาพเคลื่อนไหว PathFootBall.
pres.slides[0].timeline.main_sequence.add_effect(ashp,
anim.EffectType.PATH_FOOTBALL,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.AFTER_PREVIOUS)
# สร้างบางประเภทของ "button".
shapeTrigger = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.BEVEL, 10, 10, 20, 20)
# สร้างลำดับของเอฟเฟกต์สำหรับปุ่ม.
seqInter = pres.slides[0].timeline.interactive_sequences.add(shapeTrigger)
# สร้าง user path แบบกำหนดเอง วัตถุของเราจะเคลื่อนที่หลังจากคลิกปุ่มเท่านั้น.
fxUserPath = seqInter.add_effect(ashp,
anim.EffectType.PATH_USER,
anim.EffectSubtype.NONE,
anim.EffectTriggerType.ON_CLICK)
# เพิ่มคำสั่งการเคลื่อนที่เนื่องจาก path ที่สร้างว่างเปล่า.
motionBhv = fxUserPath.behaviors[0]
pts = [draw.PointF(0.076, 0.59)]
motionBhv.path.add(anim.MotionCommandPathType.LINE_TO, pts, anim.MotionPathPointsType.AUTO, True)
pts = [draw.PointF(-0.076, -0.59)]
motionBhv.path.add(anim.MotionCommandPathType.LINE_TO, pts, anim.MotionPathPointsType.AUTO, False)
motionBhv.path.add(anim.MotionCommandPathType.END, None, anim.MotionPathPointsType.AUTO, False)
# เขียนไฟล์ PPTX ไปยังดิสก์
pres.save("AnimExample_out.pptx", slides.export.SaveFormat.PPTX)
รับเอฟเฟ็กต์ภาพเคลื่อนไหวที่ใช้กับ Shape
ตัวอย่างต่อไปนี้แสดงวิธีการใช้เมธอด get_effects_by_shape จากคลาส Sequence เพื่อรับเอฟเฟ็กต์ภาพเคลื่อนไหวทั้งหมดที่ใช้กับรูปร่าง.
ตัวอย่างที่ 1: รับเอฟเฟ็กต์ภาพเคลื่อนไหวที่ใช้กับรูปร่างบนสไลด์ปกติ
ก่อนหน้านี้คุณได้เรียนรู้วิธีการเพิ่มเอฟเฟ็กต์ภาพเคลื่อนไหวให้กับรูปร่างในงานนำเสนอ PowerPoint ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการรับเอฟเฟ็กต์ที่ใช้กับรูปร่างแรกบนสไลด์ปกติแรกในงานนำเสนอ AnimExample_out.pptx.
import aspose.slides as slides
with slides.Presentation("AnimExample_out.pptx") as presentation:
first_slide = presentation.slides[0]
# รับลำดับภาพเคลื่อนไหวหลักของสไลด์.
sequence = first_slide.timeline.main_sequence
# รับรูปร่างแรกบนสไลด์แรก.
shape = first_slide.shapes[0]
# รับเอฟเฟกต์ภาพเคลื่อนไหวที่ใช้กับรูปร่าง.
shape_effects = sequence.get_effects_by_shape(shape)
if len(shape_effects) > 0:
print("The shape", shape.name, "has", len(shape_effects), "animation effects.")
ตัวอย่างที่ 2: รับเอฟเฟ็กต์ภาพเคลื่อนไหวทั้งหมด รวมถึงที่สืบทอดจาก placeholder
หากรูปร่างบนสไลด์ปกติมี placeholder ที่อยู่บน layout slide หรือ master slide และมีการเพิ่มเอฟเฟ็กต์ภาพเคลื่อนไหวให้กับ placeholder เหล่านั้น เมื่อทำการแสดงสไลด์ เอฟเฟ็กต์ทั้งหมดของรูปร่างจะเล่นรวมถึงที่สืบทอดจาก placeholder
สมมติว่าเรามีไฟล์การนำเสนอ PowerPoint sample.pptx ที่มีสไลด์หนึ่งที่มีเพียงรูปร่างส่วนท้ายที่มีข้อความ “Made with Aspose.Slides” และมีเอฟเฟ็กต์ Random Bars ถูกใช้กับรูปร่างนั้น.

ให้ถือว่ามีเอฟเฟ็กต์ Split ถูกใช้กับ placeholder ของส่วนท้ายบน layout slide.

และสุดท้ายมีเอฟเฟ็กต์ Fly In ถูกใช้กับ placeholder ของส่วนท้ายบน master slide.

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้เมธอด get_base_placeholder จากคลาส Shape เพื่อเข้าถึง placeholder ของรูปร่างและรับเอฟเฟ็กต์ภาพเคลื่อนไหวที่ใช้กับรูปร่างส่วนท้าย รวมถึงที่สืบทอดจาก placeholder ที่อยู่บน layout และ master slide.
import aspose.slides as slides
def print_effects(effects):
for effect in effects:
print(effect.type.name, effect.subtype.name)
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
# รับเอฟเฟกต์ภาพเคลื่อนไหวของรูปร่างบนสไลด์ปกติ.
shape = slide.shapes[0]
shape_effects = slide.timeline.main_sequence.get_effects_by_shape(shape)
# รับเอฟเฟกต์ภาพเคลื่อนไหวของ placeholder บนสไลด์ layout.
layout_shape = shape.get_base_placeholder()
layout_shape_effects = slide.layout_slide.timeline.main_sequence.get_effects_by_shape(layout_shape)
# รับเอฟเฟกต์ภาพเคลื่อนไหวของ placeholder บนสไลด์ master.
master_shape = layout_shape.get_base_placeholder()
master_shape_effects = slide.layout_slide.master_slide.timeline.main_sequence.get_effects_by_shape(master_shape)
print("Main sequence of shape effects:")
print_effects(master_shape_effects)
print_effects(layout_shape_effects)
print_effects(shape_effects)
Output:
Main sequence of shape effects:
FLY BOTTOM
SPLIT VERTICAL_IN
RANDOM_BARS HORIZONTAL
เปลี่ยนคุณสมบัติ Timing ของเอฟเฟ็กต์ภาพเคลื่อนไหว
Aspose.Slides for Python via .NET ให้คุณเปลี่ยนคุณสมบัติ Timing ของเอฟเฟ็กต์ภาพเคลื่อนไหว.
นี่คือแผง Animation Timing ใน Microsoft PowerPoint:

นี่คือความสัมพันธ์ระหว่าง PowerPoint Timing และคุณสมบัติ Effect.Timing:
- ตัวเลือกดรอปดาวน์ Start ของ PowerPoint ตรงกับคุณสมบัติ Effect.Timing.TriggerType.
- ตัวเลือกดรอปดาวน์ Duration ของ PowerPoint ตรงกับคุณสมบัติ
Effect.Timing.Duration. ระยะเวลาของภาพเคลื่อนไหว (เป็นวินาที) คือเวลารวมที่ภาพเคลื่อนไหวใช้ในการทำรอบหนึ่ง. - ตัวเลือกดรอปดาวน์ Delay ของ PowerPoint ตรงกับคุณสมบัติ
Effect.Timing.TriggerDelayTime.
นี่คือวิธีการเปลี่ยนคุณสมบัติ Effect Timing:
- Apply หรือรับเอฟเฟ็กต์ภาพเคลื่อนไหว.
- ตั้งค่าค่าใหม่สำหรับคุณสมบัติ
Effect.Timingที่ต้องการ. - บันทึกไฟล์ PPTX ที่แก้ไขแล้ว.
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาสการนำเสนอที่แสดงไฟล์การนำเสนอ.
with slides.Presentation("AnimExample_out.pptx") as pres:
# รับลำดับหลักของสไลด์.
sequence = pres.slides[0].timeline.main_sequence
# รับเอฟเฟกต์แรกของลำดับหลัก.
effect = sequence[0]
# เปลี่ยน TriggerType ของเอฟเฟกต์ให้เริ่มเมื่อคลิก
effect.timing.trigger_type = slides.animation.EffectTriggerType.ON_CLICK
# เปลี่ยน Duration ของเอฟเฟกต์
effect.timing.duration = 3
# เปลี่ยน TriggerDelayTime ของเอฟเฟกต์
effect.timing.trigger_delay_time = 0.5
# บันทึกไฟล์ PPTX ไปยังดิสก์
pres.save("AnimExample_changed.pptx", slides.export.SaveFormat.PPTX)
เสียงของเอฟเฟ็กต์ภาพเคลื่อนไหว
Aspose.Slides ให้คุณสมบัติเหล่านี้เพื่อทำงานกับเสียงในเอฟเฟ็กต์ภาพเคลื่อนไหว:
soundstop_previous_sound
เพิ่มเสียงให้กับเอฟเฟ็กต์ภาพเคลื่อนไหว
โค้ด Python นี้แสดงวิธีการเพิ่มเสียงให้กับเอฟเฟ็กต์ภาพเคลื่อนไหวและหยุดเสียงเมื่อเอฟเฟ็กต์ถัดไปเริ่มทำงาน:
import aspose.slides as slides
with Presentation("AnimExample_out.pptx") as pres:
# เพิ่มเสียงไปยังคอลเลกชันเสียงของการนำเสนอ
effect_sound = pres.audios.add_audio(open("sampleaudio.wav", "rb").read())
first_slide = pres.slides[0]
# รับลำดับหลักของสไลด์.
sequence = first_slide.timeline.main_sequence
# รับเอฟเฟกต์แรกของลำดับหลัก
first_effect = sequence[0]
# ตรวจสอบว่าเอฟเฟกต์ไม่มีเสียง
if not first_effect.stop_previous_sound and first_effect.sound is None:
# เพิ่มเสียงให้กับเอฟเฟกต์แรก
first_effect.sound = effect_sound
# รับลำดับเชิงโต้ตอบแรกของสไลด์.
interactive_sequence = first_slide.timeline.interactive_sequences[0]
# ตั้งค่าสถานะ "Stop previous sound" ของเอฟเฟกต์
interactive_sequence[0].stop_previous_sound = True
# เขียนไฟล์ PPTX ไปยังดิสก์
pres.save("AnimExample_Sound_out.pptx", slides.export.SaveFormat.PPTX)
ดึงเสียงของเอฟเฟ็กต์ภาพเคลื่อนไหว
- สร้างอินสแตนซ์ของคลาส Presentation.
- รับอ้างอิงของสไลด์ผ่านดัชนี.
- รับลำดับหลักของเอฟเฟ็กต์.
- ดึง
soundที่ฝังอยู่ในแต่ละเอฟเฟ็กต์ภาพเคลื่อนไหว.
โค้ด Python นี้แสดงวิธีการดึงเสียงที่ฝังอยู่ในเอฟเฟ็กต์ภาพเคลื่อนไหว:
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาสการนำเสนอที่แสดงไฟล์การนำเสนอ.
with slides.Presentation("EffectSound.pptx") as presentation:
slide = presentation.slides[0]
# รับลำดับหลักของสไลด์.
sequence = slide.timeline.main_sequence
for effect in sequence:
if effect.sound is None:
continue
# ดึงเสียงของเอฟเฟกต์เป็นอาร์เรย์ไบต์
audio = effect.sound.binary_data
หลังการเคลื่อนไหว
Aspose.Slides for .NET ให้คุณเปลี่ยนคุณสมบัติ After animation ของเอฟเฟ็กต์ภาพเคลื่อนไหว.
นี่คือแผง Animation Effect และเมนูขยายใน Microsoft PowerPoint:

ตัวเลือกดรอปดาวน์ After animation ของ PowerPoint ตรงกับคุณสมบัติดังนี้:
- คุณสมบัติ
after_animation_typeที่อธิบายประเภทของ After animation :- More Colors ของ PowerPoint ตรงกับประเภท COLOR;
- Don’t Dim ของ PowerPoint ตรงกับประเภท DO_NOT_DIM (ประเภท After animation เริ่มต้น);
- Hide After Animation ของ PowerPoint ตรงกับประเภท HIDE_AFTER_ANIMATION;
- Hide on Next Mouse Click ของ PowerPoint ตรงกับประเภท HIDE_ON_NEXT_MOUSE_CLICK;
- คุณสมบัติ
after_animation_colorที่กำหนดรูปแบบสีของ After animation. คุณสมบัตินี้ทำงานร่วมกับประเภท COLOR. หากเปลี่ยนประเภทเป็นค่าอื่น สีของ After animation จะถูกล้าง.
โค้ด Python นี้แสดงวิธีการเปลี่ยนเอฟเฟ็กต์ After animation:
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาสการนำเสนอที่แสดงไฟล์การนำเสนอ
with slides.Presentation("AnimImage_out.pptx") as pres:
first_slide = pres.slides[0]
# รับเอฟเฟกต์แรกของลำดับหลัก
first_effect = first_slide.timeline.main_sequence[0]
# เปลี่ยนประเภท After animation เป็น Color
first_effect.after_animation_type = AfterAnimationType.COLOR
# ตั้งค่าสีของ After animation dim
first_effect.after_animation_color.color = Color.alice_blue
# เขียนไฟล์ PPTX ไปยังดิสก์
pres.save("AnimImage_AfterAnimation.pptx", slides.export.SaveFormat.PPTX)
เคลื่อนไหวข้อความ
Aspose.Slides ให้คุณสมบัติเหล่านี้เพื่อทำงานกับบล็อก Animate text ของเอฟเฟ็กต์ภาพเคลื่อนไหว:
animate_text_typeที่อธิบายประเภทการเคลื่อนไหวข้อความของเอฟเฟ็กต์. ข้อความในรูปร่างสามารถเคลื่อนไหวได้:- ทั้งหมดพร้อมกัน (ALL_AT_ONCE type)
- ตามคำ (BY_WORD type)
- ตามตัวอักษร (BY_LETTER type)
delay_between_text_partsตั้งค่าการหน่วงเวลาระหว่างส่วนของข้อความที่เคลื่อนไหว (คำหรืออักษร). ค่าเป็นบวกระบุเปอร์เซ็นต์ของระยะเวลาเอฟเฟ็กต์, ค่าเป็นลบระบุหน่วงเวลาเป็นวินาที.
นี่คือวิธีการเปลี่ยนคุณสมบัติ Effect Animate text:
- Apply หรือรับเอฟเฟ็กต์ภาพเคลื่อนไหว.
- ตั้งค่าคุณสมบัติ
build_typeเป็นค่า AS_ONE_OBJECT เพื่อปิดโหมดการเคลื่อนไหว By Paragraphs. - ตั้งค่าที่ใหม่สำหรับคุณสมบัติ
animate_text_typeและdelay_between_text_parts. - บันทึกไฟล์ PPTX ที่แก้ไขแล้ว.
import aspose.slides as slides
with slides.Presentation("AnimTextBox_out.pptx") as pres:
first_slide = pres.slides[0]
# รับเอฟเฟกต์แรกของลำดับหลัก
first_effect = first_slide.timeline.main_sequence[0]
# เปลี่ยนประเภทการเคลื่อนไหวของข้อความของเอฟเฟกต์เป็น "As One Object"
first_effect.text_animation.build_type = slides.animation.BuildType.AS_ONE_OBJECT
# เปลี่ยนประเภทการเคลื่อนไหวข้อความของเอฟเฟกต์เป็น "By word"
first_effect.animate_text_type = slides.animation.AnimateTextType.BY_WORD
# ตั้งค่าการหน่วงระหว่างคำเป็น 20% ของระยะเวลาเอฟเฟกต์
first_effect.delay_between_text_parts = 20
# เขียนไฟล์ PPTX ไปยังดิสก์
pres.save("AnimTextBox_AnimateText.pptx", slides.export.SaveFormat.PPTX)
คำถามที่พบบ่อย
ทำอย่างไรจึงจะทำให้ภาพเคลื่อนไหวคงอยู่เมื่อนำเสนอไปยังเว็บ?
Export to HTML5 และเปิดใช้งาน options ที่รับผิดชอบการเคลื่อนไหวของ shape และ transition. HTML ธรรมดาไม่เล่นภาพเคลื่อนไหวของสไลด์, แต่ HTML5 ทำได้.
การเปลี่ยนลำดับชั้น (z-order) ของรูปร่างส่งผลต่อการเคลื่อนไหวอย่างไร?
ลำดับการเคลื่อนไหวและลำดับการวาดเป็นเรื่องอิสระ: เอฟเฟกต์จะควบคุมเวลาและประเภทของการปรากฏ/หายไป, ส่วน z-order จะกำหนดว่าอะไรบังอะไร ผลลัพธ์ที่มองเห็นได้ถูกกำหนดโดยการผสมผสานของทั้งสอง (นี่คือพฤติกรรมทั่วไปของ PowerPoint; โมเดลเอฟเฟ็กต์และรูปร่างของ Aspose.Slides ทำตามตรรกะเดียวกัน).
มีข้อจำกัดใดบ้างเมื่อแปลงภาพเคลื่อนไหวเป็นวิดีโอสำหรับเอฟเฟ็กต์บางอย่าง?
โดยทั่วไป animations are supported, แต่ในบางกรณีหรือเอฟเฟ็กต์ที่เฉพาะเจาะจงอาจถูกเรนเดอร์ต่างกัน แนะนำให้ทดสอบกับเอฟเฟ็กต์ที่คุณใช้และกับเวอร์ชันของไลบรารี.