اعمال انیمیشن‌های شکل در ارائه‌ها با استفاده از C++

مقدمه

انیمیشن‌ها افکت‌های بصری هستند که می‌توانند بر روی متن‌ها، تصاویر، شکل‌ها یا نمودارها اعمال شوند. آن‌ها به ارائه‌ها یا اجزای آن جان می‌بخشند.

چرا در ارائه‌ها از انیمیشن‌ها استفاده کنیم؟

با استفاده از انیمیشن‌ها می‌توانید

  • جریان اطلاعات را کنترل کنید
  • نکات مهم را برجسته کنید
  • علاقه یا مشارکت مخاطبان خود را افزایش دهید
  • محتوا را برای خواندن، جذب یا پردازش آسان‌تر کنید
  • توجه خوانندگان یا بینندگان خود را به بخش‌های مهم در یک ارائه جلب کنید

PowerPoint گزینه‌ها و ابزارهای بسیاری برای انیمیشن‌ها و اثرات انیمیشن در دسته‌های entrance, exit, emphasis, و motion paths ارائه می‌دهد.

انیمیشن‌ها در Aspose.Slides

  • Aspose.Slides کلاس‌ها و نوع‌هایی را که برای کار با انیمیشن‌ها نیاز دارید، تحت فضای نام Aspose.Slides.Animation فراهم می‌کند،
  • Aspose.Slides بیش از 150 اثر انیمیشن تحت enumeration EffectType ارائه می‌دهد. این اثرها عملاً همان اثرهای (یا معادل) استفاده شده در PowerPoint هستند.

اعمال انیمیشن به TextBox

Aspose.Slides برای C++ به شما امکان می‌دهد انیمیشن را بر متن داخل یک شکل اعمال کنید.

  1. یک نمونه از کلاس Presentation ایجاد کنید.
  2. یک ارجاع به اسلاید را از طریق ایندکس آن دریافت کنید.
  3. یک rectangle IAutoShape اضافه کنید.
  4. متن را به IAutoShape.TextFrame اضافه کنید.
  5. دنباله اصلی اثرها را دریافت کنید.
  6. یک اثر انیمیشن به IAutoShape اضافه کنید.
  7. ویژگی TextAnimation.BuildType را به مقداری از BuildType Enumeration تنظیم کنید.
  8. ارائه را به‌صورت فایل PPTX روی دیسک ذخیره کنید.

این کد C++ نشان می‌دهد چگونه اثر Fade را به AutoShape اعمال کنید و انیمیشن متن را به مقدار By 1st Level Paragraphs تنظیم کنید:

// یک شیء از کلاس ارائه ایجاد می‌کند که نمایانگر یک فایل ارائه است.
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();

System::SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);

// یک AutoShape جدید با متن اضافه می‌کند
System::SharedPtr<IAutoShape> autoShape =
    sld->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Rectangle, 20.0f, 20.0f, 150.0f, 100.0f);

System::SharedPtr<ITextFrame> textFrame = autoShape->get_TextFrame();
textFrame->set_Text(u"First paragraph \nSecond paragraph \n Third paragraph");

// دنباله اصلی اسلاید را دریافت می‌کند.
System::SharedPtr<ISequence> sequence = sld->get_Timeline()->get_MainSequence();

// اثر انیمیشن Fade را به شکل اضافه می‌کند
System::SharedPtr<IEffect> effect = sequence->AddEffect(autoShape, Aspose::Slides::Animation::EffectType::Fade,
    Aspose::Slides::Animation::EffectSubtype::None, Aspose::Slides::Animation::EffectTriggerType::OnClick);

// متن شکل را بر اساس پاراگراف‌های سطح اول انیمیت می‌کند
effect->get_TextAnimation()->set_BuildType(Aspose::Slides::Animation::BuildType::ByLevelParagraphs1);

// فایل PPTX را روی دیسک ذخیره می‌کند
pres->Save(path + u"AnimText_out.pptx", Aspose::Slides::Export::SaveFormat::Pptx);

اعمال انیمیشن بر PictureFrame

  1. یک نمونه از کلاس Presentation ایجاد کنید.
  2. یک ارجاع به اسلاید را از طریق ایندکس آن دریافت کنید.
  3. یک PictureFrame روی اسلاید اضافه یا دریافت کنید.
  4. دنباله اصلی اثرها را دریافت کنید.
  5. یک اثر انیمیشن به PictureFrame اضافه کنید.
  6. ارائه را به‌صورت فایل PPTX روی دیسک ذخیره کنید.

این کد C++ نشان می‌دهد چگونه اثر Fly را به یک picture frame اعمال کنید:

// یک شیء از کلاس ارائه ایجاد می‌کند که نمایانگر یک فایل ارائه است.
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();

// تصویری را که قرار است در مجموعه تصاویر ارائه اضافه شود بارگذاری می‌کند
System::SharedPtr<IImage> img = Images::FromFile(u"aspose-logo.jpg");
System::SharedPtr<IPPImage> image = pres->get_Images()->AddImage(img);

// قاب تصویر را به اسلاید اضافه می‌کند
System::SharedPtr<IPictureFrame> picFrame =
    pres->get_Slides()->idx_get(0)->get_Shapes()->AddPictureFrame(Aspose::Slides::ShapeType::Rectangle, 50.0f, 50.0f, 100.0f, 100.0f, image);

// دنباله اصلی اسلاید را دریافت می‌کند.
System::SharedPtr<ISequence> sequence = pres->get_Slides()->idx_get(0)->get_Timeline()->get_MainSequence();

// اثر انیمیشن Fly از سمت چپ را به قاب تصویر اضافه می‌کند
System::SharedPtr<IEffect> effect = sequence->AddEffect(picFrame, Aspose::Slides::Animation::EffectType::Fly,
    Aspose::Slides::Animation::EffectSubtype::Left, Aspose::Slides::Animation::EffectTriggerType::OnClick);

// فایل PPTX را روی دیسک ذخیره می‌کند
pres->Save(path + u"AnimImage_out.pptx", Aspose::Slides::Export::SaveFormat::Pptx);

اعمال انیمیشن بر Shape

  1. یک نمونه از کلاس Presentation ایجاد کنید.
  2. یک ارجاع به اسلاید را از طریق ایندکس آن دریافت کنید.
  3. یک rectangle IAutoShape اضافه کنید.
  4. یک Bevel IAutoShape اضافه کنید (زمانی که این شیء کلیک شود، انیمیشن اجرا می‌شود).
  5. یک دنباله از اثرها بر روی شکل bevel ایجاد کنید.
  6. یک UserPath سفارشی ایجاد کنید.
  7. دستورات برای حرکت به UserPath اضافه کنید.
  8. ارائه را به‌صورت فایل PPTX روی دیسک ذخیره کنید.

این کد C++ نشان می‌دهد چگونه اثر PathFootball (path football) را به یک shape اعمال کنید:

	// مسیر دایرکتوری سند.
	const String outPath = u"../out/AnimationsOnShapes_out.pptx";
	const String templatePath = u"../templates/ConnectorLineAngle.pptx";

	// ارائه را بارگذاری می‌کند
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	// به اولین اسلاید دسترسی پیدا می‌کند
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// مجموعه اشکال اسلاید انتخاب‌شده را دسترسی می‌یابد
	SharedPtr<IShapeCollection> shapes = slide->get_Shapes();

	// اثر PathFootball را برای شکل موجود از ابتدا ایجاد می‌کند.
	SharedPtr<IAutoShape> ashp = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 150, 250, 25);

	ashp->AddTextFrame(u"Animated TextBox");

	// اثر انیمیشن PathFootBall را اضافه می‌کند
	slide->get_Timeline()->get_MainSequence()->AddEffect(ashp, EffectType::PathFootball,
		EffectSubtype::None, EffectTriggerType::AfterPrevious);

	// نوعی دکمه ایجاد می‌کند.
	SharedPtr<IAutoShape> shapeTrigger = slide->get_Shapes()->AddAutoShape(ShapeType::Bevel, 10, 10, 20, 20);

	// دنباله‌ای از اثرها برای این دکمه ایجاد می‌کند.
	SharedPtr<ISequence> seqInter = slide->get_Timeline()->get_InteractiveSequences()->Add(shapeTrigger);
	
	 // مسیر کاربری سفارشی ایجاد می‌کند. شیء ما فقط پس از کلیک دکمه جابه‌جا می‌شود.
	SharedPtr<IEffect> fxUserPath = seqInter->AddEffect(ashp, EffectType::PathUser, EffectSubtype::None, EffectTriggerType::OnClick);

	// دستورات حرکت را اضافه می‌کند چون مسیر ایجاد شده خالی است.
	 SharedPtr<MotionEffect> motionBhv = ExplicitCast<MotionEffect>(fxUserPath->get_Behaviors()->idx_get(0));

	// SharedPtr<PointF> point = MakeObject<PointF >(0.076, 0.59);
	 const PointF point = PointF (0.076, 0.59);
	 System::ArrayPtr<PointF> pts = System::MakeObject<System::Array<PointF>>(1, point);
	 motionBhv->get_Path()->Add(MotionCommandPathType::LineTo, pts, MotionPathPointsType::Auto, true);
	 
	 //PointF point2[1] = { -0.076, -0.59 };
	const  PointF point2 = PointF(-0.076, -0.59 );

	 System::ArrayPtr<PointF> pts2 = System::MakeObject<System::Array<PointF>>(1, point2);
	 motionBhv->get_Path()->Add(MotionCommandPathType::LineTo, pts2, MotionPathPointsType::Auto, false);
	 
	 motionBhv->get_Path()->Add(MotionCommandPathType::End, nullptr, MotionPathPointsType::Auto, false);
	 
	 // فایل PPTX را روی دیسک ذخیره می‌کند
	 pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

دریافت اثرهای انیمیشن اعمال شده بر یک Shape

مثال‌های زیر نحوه استفاده از متد GetEffectsByShape از اینترفیس ISequence را برای دریافت تمام اثرهای انیمیشن اعمال شده بر یک shape نشان می‌دهند.

مثال 1: دریافت اثرهای انیمیشن اعمال شده بر یک shape در یک اسلاید معمولی

پیش از این، نحوه افزودن اثرهای انیمیشن به شکل‌ها در ارائه‌های PowerPoint را یاد گرفته بودید. کد نمونه زیر نشان می‌دهد چگونه اثرهای اعمال شده به اولین shape روی اولین اسلاید معمولی در ارائه AnimExample_out.pptx را دریافت کنید.

SharedPtr<Presentation> presentation = MakeObject<Presentation>(u"AnimExample_out.pptx");

SharedPtr<ISlide> firstSlide = presentation->get_Slide(0);

// Gets the main animation sequence of the slide.
SharedPtr<ISequence> sequence = firstSlide->get_Timeline()->get_MainSequence();

// Gets the first shape on the first slide.
SharedPtr<IShape> shape = firstSlide->get_Shape(0);

// Gets animation effects applied to the shape.
ArrayPtr<SharedPtr<IEffect>> shapeEffects = sequence->GetEffectsByShape(shape);

if (shapeEffects->get_Length() > 0)
{
    Console::WriteLine(u"The shape " + shape->get_Name() + u" has " + shapeEffects->get_Length() + u" animation effects.");
}

presentation->Dispose();

مثال 2: دریافت تمام اثرهای انیمیشن، شامل آن‌هایی که از placeholders به ارث می‌رسند

اگر یک shape در یک اسلاید معمولی placeholders داشته باشد که در اسلاید layout و/یا master هستند و اثرهای انیمیشن به این placeholders اضافه شده باشد، تمام اثرهای shape در طول نمایش اسلاید پخش می‌شوند، شامل آن‌هایی که از placeholders به ارث می‌رسند.

فرض کنید فایلی PowerPoint به نام sample.pptx داریم که دارای یک اسلاید با تنها یک shape فوتر متنی «Made with Aspose.Slides» است و اثر Random Bars روی آن اعمال شده است.

اثر انیمیشن شکل اسلاید

همچنین فرض کنید اثر Split روی placeholder فوتر در اسلاید layout اعمال شده است.

اثر انیمیشن شکل Layout

و در نهایت، اثر Fly In روی placeholder فوتر در اسلاید master اعمال شده است.

اثر انیمیشن شکل Master

کد نمونه زیر نشان می‌دهد چگونه از متد GetBasePlaceholder از اینترفیس IShape برای دسترسی به placeholderهای shape و دریافت اثرهای انیمیشن اعمال شده به shape فوتر، شامل اثرهای ارث‌برده از placeholders در اسلایدهای layout و master استفاده کنید.

void PrintEffects(ArrayPtr<SharedPtr<IEffect>> effects)
{
    for (SharedPtr<IEffect> effect : effects)
    {
        Console::WriteLine(String::Format(u"Type: {0}, subtype: {1}", effect->get_Type(), effect->get_Subtype()));
    }
}
SharedPtr<Presentation> presentation = MakeObject<Presentation>(u"sample.pptx");

SharedPtr<ISlide> slide = presentation->get_Slide(0);

// دریافت اثرهای انیمیشن شکل در اسلاید عادی.
SharedPtr<IShape> shape = slide->get_Shape(0);
ArrayPtr<SharedPtr<IEffect>> shapeEffects = slide->get_Timeline()->get_MainSequence()->GetEffectsByShape(shape);

// دریافت اثرهای انیمیشن جای‌گیر در اسلاید طرح‌بندی.
SharedPtr<IShape> layoutShape = shape->GetBasePlaceholder();
ArrayPtr<SharedPtr<IEffect>> layoutShapeEffects = slide->get_LayoutSlide()->get_Timeline()->get_MainSequence()->GetEffectsByShape(layoutShape);

// دریافت اثرهای انیمیشن جای‌گیر در اسلاید اصلی.
SharedPtr<IShape> masterShape = layoutShape->GetBasePlaceholder();
ArrayPtr<SharedPtr<IEffect>> masterShapeEffects = slide->get_LayoutSlide()->get_MasterSlide()->get_Timeline()->get_MainSequence()->GetEffectsByShape(masterShape);

presentation->Dispose();

Console::WriteLine(u"Main sequence of shape effects:");
PrintEffects(masterShapeEffects);
PrintEffects(layoutShapeEffects);
PrintEffects(shapeEffects);

Output:

Main sequence of shape effects:
Type: 47, subtype: 2              // پرواز، پایین
Type: 134, subtype: 45            // تقسیم، عمودی داخل
Type: 126, subtype: 22            // نوارهای تصادفی، افقی

تغییر ویژگی‌های زمان‌بندی اثر انیمیشن

Aspose.Slides برای C++ به شما امکان می‌دهد ویژگی‌های Timing یک اثر انیمیشن را تغییر دهید.

این پنل زمان‌بندی انیمیشن در Microsoft PowerPoint است:

پنل زمان‌بندی انیمیشن در Microsoft PowerPoint

این‌ها تطابق‌های بین زمان‌بندی PowerPoint و ویژگی‌های Effect.Timing هستند:

  • فهرست کشویی Start در PowerPoint Timing با ویژگی Effect.Timing.TriggerType مطابقت دارد.
  • فهرست کشویی Duration در PowerPoint Timing با ویژگی Effect.Timing.Duration مطابقت دارد. مدت زمان یک انیمیشن (بر حسب ثانیه) کل زمانی است که برای تکمیل یک چرخه نیاز است.
  • فهرست کشویی Delay در PowerPoint Timing با ویژگی Effect.Timing.TriggerDelayTime مطابقت دارد.

این روش تغییر ویژگی‌های زمان‌بندی اثر است:

  1. Apply یا دریافت اثر انیمیشن.
  2. مقادیر جدیدی برای ویژگی‌های Effect.Timing که نیاز دارید تنظیم کنید.
  3. فایل PPTX اصلاح‌شده را ذخیره کنید.

این کد C++ عملیات را نشان می‌دهد:

// یک شیء از کلاس ارائه ایجاد می‌کند که نمایانگر یک فایل ارائه است.
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"AnimExample_out.pptx");

// دنباله اصلی اسلاید را دریافت می‌کند.
System::SharedPtr<ISequence> sequence = pres->get_Slides()->idx_get(0)->get_Timeline()->get_MainSequence();

// اولین اثر دنباله اصلی را دریافت می‌کند.
System::SharedPtr<IEffect> effect = sequence->idx_get(0);

// نوع TriggerType اثر را به شروع با کلیک تغییر می‌دهد
effect->get_Timing()->set_TriggerType(Aspose::Slides::Animation::EffectTriggerType::OnClick);

// مدت زمان اثر را تغییر می‌دهد
effect->get_Timing()->set_Duration(3.f);

// زمان تأخیر TriggerDelayTime اثر را تغییر می‌دهد
effect->get_Timing()->set_TriggerDelayTime(0.5f);

// فایل PPTX را روی دیسک ذخیره می‌کند
pres->Save(u"AnimExample_changed.pptx", Aspose::Slides::Export::SaveFormat::Pptx);

صدای اثر انیمیشن

Aspose.Slides این ویژگی‌ها را برای کار با صداها در اثرهای انیمیشن ارائه می‌دهد:

افزودن صدای اثر انیمیشن

این کد C++ نشان می‌دهد چگونه صدای یک اثر انیمیشن اضافه کنید و هنگام شروع اثر بعدی آن را متوقف کنید:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"AnimExample_out.pptx");

// صدا را به مجموعه صداهای ارائه اضافه می‌کند
System::SharedPtr<IAudio> effectSound = pres->get_Audios()->AddAudio(System::IO::File::ReadAllBytes(u"sampleaudio.wav"));
System::SharedPtr<ISlide> firstSlide = pres->get_Slide(0);

// دنباله اصلی اسلاید را دریافت می‌کند.
System::SharedPtr<ISequence> sequence = firstSlide->get_Timeline()->get_MainSequence();

// اولین اثر دنباله اصلی را دریافت می‌کند
System::SharedPtr<IEffect> firstEffect = sequence->idx_get(0);

// اثر را برای "بدون صدا" بررسی می‌کند
if (!firstEffect->get_StopPreviousSound() && firstEffect->get_Sound() == nullptr)
{
    // صدا را برای اولین اثر اضافه می‌کند
    firstEffect->set_Sound(effectSound);
}

// اولین دنباله تعاملی اسلاید را دریافت می‌کند.
System::SharedPtr<ISequence> interactiveSequence = firstSlide->get_Timeline()->get_InteractiveSequence(0);

// پرچم "متوقف کردن صدای قبلی" اثر را تنظیم می‌کند
interactiveSequence->idx_get(0)->set_StopPreviousSound(true);

// فایل PPTX را روی دیسک ذخیره می‌کند
pres->Save(u"AnimExample_Sound_out.pptx", SaveFormat::Pptx);

استخراج صدای اثر انیمیشن

  1. یک نمونه از کلاس Presentation ایجاد کنید.
  2. ارجاع به اسلاید را از طریق ایندکس آن دریافت کنید.
  3. دنباله اصلی اثرها را دریافت کنید.
  4. [set_Sound()] را که در هر اثر انیمیشن جاسازی شده است استخراج کنید.

این کد C++ نشان می‌دهد چگونه صدای جاسازی‌شده در یک اثر انیمیشن را استخراج کنید:

// یک شیء از کلاس ارائه ایجاد می‌کند که نمایانگر یک فایل ارائه است.
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"EffectSound.pptx");
System::SharedPtr<ISlide> slide = pres->get_Slide(0);

// Gets the main sequence of the slide.
System::SharedPtr<ISequence> sequence = slide->get_Timeline()->get_MainSequence();

for (auto&& effect : sequence)
{
    System::SharedPtr<IAudio> sound = effect->get_Sound();

    if (sound == nullptr)
        continue;

    auto audio = sound->get_BinaryData();
}

پس از انیمیشن

Aspose.Slides برای C++ به شما امکان می‌دهد ویژگی After animation یک اثر انیمیشن را تغییر دهید.

این پنل اثر انیمیشن و منوی گسترش‌یافته در Microsoft PowerPoint است:

پنل اثر انیمیشن و منوی گسترش‌یافته در Microsoft PowerPoint

فهرست کشویی After animation در PowerPoint با این ویژگی‌ها مطابقت دارد:

این کد C++ نشان می‌دهد چگونه یک اثر پس از انیمیشن را تغییر دهید:

// یک شیء از کلاس Presentation ایجاد می‌کند که نمایانگر یک فایل ارائه است
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"AnimImage_out.pptx");
System::SharedPtr<ISlide> firstSlide = pres->get_Slide(0);

// اولین اثر دنباله اصلی را دریافت می‌کند
System::SharedPtr<IEffect> firstEffect = firstSlide->get_Timeline()->get_MainSequence()->idx_get(0);

// نوع پس از انیمیشن را به Color تغییر می‌دهد
firstEffect->set_AfterAnimationType(AfterAnimationType::Color);

// رنگ کم‌رنگ‌شدن پس از انیمیشن را تنظیم می‌کند
firstEffect->get_AfterAnimationColor()->set_Color(System::Drawing::Color::get_AliceBlue());

// فایل PPTX را روی دیسک ذخیره می‌کند
pres->Save(u"AnimImage_AfterAnimation.pptx", SaveFormat::Pptx);

انیمیشن متن

Aspose.Slides این ویژگی‌ها را برای کار با بلوک Animate text یک اثر انیمیشن فراهم می‌کند:

  • ویژگی set_AnimateTextType() که نوع انیمیشن متن اثر را توصیف می‌کند. متن shape می‌تواند به‌صورت:
  • ویژگی set_DelayBetweenTextParts() که تاخیر بین بخش‌های متن انیمیشن‌شده (کلمات یا حروف) را تنظیم می‌کند. مقدار مثبت درصدی از مدت اثر را مشخص می‌کند؛ مقدار منفی تاخیر را بر حسب ثانیه تعیین می‌کند.

این روش تغییر ویژگی‌های Animate text برای اثر است:

  1. Apply یا دریافت اثر انیمیشن.
  2. ویژگی set_BuildType() را به مقدار BuildType.AsOneObject تنظیم کنید تا حالت انیمیشن By Paragraphs غیرفعال شود.
  3. مقادیر جدیدی برای ویژگی‌های set_AnimateTextType() و set_DelayBetweenTextParts() تنظیم کنید.
  4. فایل PPTX اصلاح‌شده را ذخیره کنید.

این کد C++ عملیات را نشان می‌دهد:

// یک شیء از کلاس Presentation ایجاد می‌کند که نمایانگر یک فایل ارائه است.
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"AnimTextBox_out.pptx");
System::SharedPtr<ISlide> firstSlide = pres->get_Slide(0);

// Gets the first effect of the main sequence
System::SharedPtr<IEffect> firstEffect = firstSlide->get_Timeline()->get_MainSequence()->idx_get(0);

// Changes the effect Text animation type to "As One Object"
firstEffect->get_TextAnimation()->set_BuildType(BuildType::AsOneObject);

// Changes the effect Animate text type to "By word"
firstEffect->set_AnimateTextType(AnimateTextType::ByWord);

// Sets the delay between words to 20% of effect duration
firstEffect->set_DelayBetweenTextParts(20.0f);

// Writes the PPTX file to disk
pres->Save(u"AnimTextBox_AnimateText.pptx", SaveFormat::Pptx);

سوالات متداول

چگونه می‌توانم اطمینان حاصل کنم که انیمیشن‌ها هنگام انتشار ارائه در وب حفظ می‌شوند؟

Export to HTML5 را انجام دهید و گزینه‌های مربوط به shape و transition را فعال کنید. HTML ساده انیمیشن‌های اسلاید را پخش نمی‌کند، در حالی که HTML5 این کار را می‌کند.

تغییر ترتیب z-order (ترتیب لایه) اشکال چه تأثیری بر انیمیشن دارد؟

انیمیشن و ترتیب رسم مستقل هستند: یک اثر زمان‌بندی و نوع ظاهر شدن/ناینسیدن را کنترل می‌کند، در حالی که z-order تعیین می‌کند چه چیزی چه چیزی را می‌پوشاند. نتیجه قابل مشاهده ترکیب این دو است. (این رفتار کلی PowerPoint است؛ مدل اثرها و اشکال Aspose.Slides نیز همان منطق را دنبال می‌کند.)

آیا در تبدیل انیمیشن‌ها به ویدئو برای برخی اثرها محدودیتی وجود دارد؟

به‌طور کلی، انیمیشن‌ها پشتیبانی می‌شوند، اما موارد نادر یا اثرهای خاص ممکن است به‌صورت متفاوتی رندر شوند. توصیه می‌شود با اثرهای مورد استفاده و نسخه کتابخانه تست کنید.