در این نوشته می خواهیم به کار کرد حلقه تکرار در افتر افکت یا لوپ ( loop ) بپردازیم. در نرم افزار ادوبی افتر افکت برای راحت تر کردن استفاده از این نرم افزار خیلی خاصیت ها و راهکار ها پیش بینی شده تا کاربران بتوانند با دردسر کمتری به پیشرفت در ساخت پروژه روبرو شوند. یکی از این روش های پر کاربرد استفاده از کد هایی است که به عنوان دستور مشخص بر روی لایه ها اعمال می شوند.
حلقه تکرار یا لوپ در افتر افکت
یکی از پرکاربرد ترین کدهایی که طراحان پروژه افتر افکت از آن بهره می برند کد دستور لوپ است که با یک کد کوتاه اجازه تکرار شدن به انیمیشن می دهند یعنی انیمیشن اجرا شده توسط کی فریم ها را در یک حلقه تکرار قرار می دهند و به آن دستور اجرای متوالی خواهد داد.
روش استفاده از لوپ (loop) در افتر افکت
استفاده از حلقه تکرار یا لوپ نیازمند این می باشد که ابتدا انیمیشنی که می خواهیم تکرار را برای آن در نظر بگیریم را ایجاد کرده باشیم . برای مثال ما می خواهیم یک جابجایی یا انتقال پوزیشن را در این حلقه قرار دهیم. خب بنابر این حداقل به 2 کی فریم نیاز خواهیم داشت. یعنی نقطه شروع و نقطه پایانی
[irp posts=”6215″ name=”آموزش ساخت کی فریم در افتر افکت”]
پس از ایجاد کی فریم بر روی پوزیشن (position) نوبت به افزودن خاصیت Loop به این انتقال می باشد. بنابراین در این مرحله با نگه داشتن کلید ALT بر روی صفحه کلید و کلیک بر روی نماد کیفریم یا همان کرنومتر مانند تصویر زیر کلیک میکنیم. پس از کلیک یه کادر برایمان قابل رویت خواهد بود که محل درج کد مورد نظر یعنی کد حلقه تکرار یا لوپ می باشد.
انواع کد لوپ (loop) در افتر افکت
برای اجرای کد لوپ کافیست عبارتی مانند عبارت زیر را در محل درج کد قرار دهید
- loopOut()
دستور بالا بدون کم و کاست حلقه ی شما را تکرار خواهد کرد بدون محدودیت. ولی کدهایی نیز وجود دارند که میتوانید بصورت متنوع تری این حلقه تکرار یا لوپ را اجرا کنید نظیر کد های زیر
loopOut(“pingpong”);
loopOut(“offset”);
loopOut(“continue”);
loopOut(); or loopOut(“cycle”);
هر کدام از این کدها روش خاصی برای تکرار و loop کردن را در پیش خواهند گرفت که به معرفی آنها خواهیم پرداخت.
حلقه لوپ CYCLE :
این حلقه را اگر در شکل بالا دقت کرده باشید متوجه خواهید شد که پس از اتمام انیمیشن شما از ابتدا و به صورت متوالی کیفریم ها را دنبال می کند. کد دستوری حلقه سیکل loopOut(); یا loopOut(“cycle”) می باشد.
حلقه پینگ پنک :
حلقه ping pong همانطور که از نامش پیداست خاصیت رفت و برگشت منظمی را در پیش می گیرد و حلقه پس از اتمام برعکس عمل می کند و این روال مانند یک توپ پینگ پنگ ادامه خواهد داشت. در تصویر بالا نیز می توانید این اتفاق را مشاهده کنید.
حلقه Offset :
با مشاهده تصویر پایین می توانید به خاصیت حلقه لوپ آفست پی ببرید. این حلقه تکرار انیمیشن را از نقطه ی پایانی خود آغاز می کند. بدین معنی که زمانی که می خواهد تکرار را انجام دهد از همان نقطه ای که به پایان رسانده تکرار را آغاز می کند و این عمل را در تمام طول مدت زمان لایه انجام خواهد داد.
حلقه Continue :
حلقه Continue یا ادامه نیز در عین سادگی جزء محبوب ترین کد های حلقه تکرار یا حلقه لوپ دانست. continue هنگامی که با لایه های زیادی کار می کنید ، این کد واقعا مفید است. اگر شما یک شی دارید که فقط مسافت کمی را طی می کند ، اما می خواهید آن را به جلو ادامه دهید ، به جای اینکه با ایجاد کی فریم این اتفاق را رقم بزنید ، می توانید عبارت continue را به سادگی اضافه کنید ، و این باعث می شود شیء به طور نامحدود در مسیر خود ادامه یابد.
[irp]
احتمالا اگر برای اولین بار کد های حلقه تکرار یا لوپ در افتر افکت را مشاهده کرده باشید برایتان مقداری دلهره آور باشد. ولی پس از اینکه این موارد را بر روی لایه های خود در افترافکت امتحان کنید و نتیجه آن را ببینید حتما شگفت زده خواهید شد. سعی خواهید کرد از این به بعد مثل سابق از ساخت کی فریم های پر تعداد و گیج کننده دست بکشید و با قرار دادن یک کد کوتاه نتیجه ی بهتری نسبت به قبل بگیرید.
امیدوارم این مقاله پاسخگوی سوالات شما در خصوص عملکرد حلقه لوپ در افتر افکت بوده باشد. اگر سوالی در این خصوص دارید می توانید در بخش نظرات ما را آگاه سازید تا در رسیدن به جواب سوالاتان یاری تان کنیم.
با تشکر : بیگ موشن
سلام
من هر چی میگردم کسی سوال من رو نمیتونه جواب بده
من میخوام تو زمان مشخصی حلقه تکرار شه نه پشت هم
مثلا یه زیر نویس دارم میخوام هر یک دقیقه تکرار بشه اما لوپ همون لحظه تا آخر فیلم تکرار میکنه
من میخوام تا آخر فیلم هر 1 دقیقه انمیشن من تکرار بشه
سلام وقتتون بخیر برای این موردی که نام بردید باید در ادامه کد لوپ مدت زمان را کد نویسی کنید
کی فریم مد نظرت که خواست تکرار بشه بعدش یه کی فریم ثابت از همون مدل اگه position یا rotation یا هرچی هست با فاصله زمانی که مد نظرته بزار بعد از حلقه لوپ استفاده کن
سلام
من میخوام یک حرکت به یه ماشین بدم تا اینجاش رو لوپ اوت میدم ولی از یه لحظه به بعد نمیخوام اون حرکت انجام بشه چکار کنم؟
loopInDuration(1,4)
من اینو میدم ولی ارور میده
سلام اینو تست کن و عدد Duration رو تغییر بده
loopInDuration(type = “cycle”, duration = 0)
خیلییییی عالی اید کارم راه افتاد ممنون
سلام وقتت بخیر. من وقتی دستور loopOut(pingpong) رو میدم ارور میده علتش چیه؟
احتمالا درست انجام ندید ( انتهای کد ; باید قرار بدید )
سلام من میخوام برای یک path از loopout استفاده کنم اما ارور میده یک خط منحنی ساده که با جلو و عقب رفتن اندازه اش یک مقدار تغییر میکنه میخوام این حرکت تکرار بشه راهنمایی کنید؟