اکسپرشن افتر افکت

آشنایی با اکسپرشن افتر افکت

6,129

اکسپرشن افتر افکت

تا به حال با فضا های کاری مختلفی در افتر افکت آشنا شده اید. مانند ریگ بندی یک کاراکتر برای انیمیت آن و یا ساخت موشن گرافیک برای تبلیغات یک محصول. کار در تمامی این فضا ها نیازمند تجربه و تمرین است اما آنچه که یک پروژه را برتر و متمایز می سازد استفاده از ابزار های پیشرفته تر است. یکی از این ابزار ها اکسپرشن افتر افکت می باشد. دنیای اکسپرشن ها بسیارگسترده تر از آنچه که شما تصورش را می کنید است.

تعریف اکسپرشن افتر افکت

سوال اول که در اینجا مطرح می شود این است که اکسپرشن افتر افکت چیست؟ در پاسخ به این سوال باید بگویم که طبق تعریف سایت adobe.com اکسپرشن ها نرم افزار های کوچکی هستند که یک مقدار از یک ویژگی مختص به یک لایه را در زمان مشخصی محاسبه می کند؛ این محاسبه می تواند با توجه به مقادیر سایر ویژگی ها باشد. از تعریف اکسپرشن ها نترسید!! اکسپرشن افتر افکت ممکن است حتی یک خط کد با حداکثر پنج کاراکتر باشد و یا شاید هم بیش از ده ها خط باشد. تمام این ها وابسته به هدفی است که شما از برنامه خود می خواهید.

چه ویژگی اکسپرشن می پذیرد؟

قابلیت پذیرش اکسپرشن افتر افکت

اگر با افتر افکت انیمیت کرده باشید با مفهوم کی فریم آشنا هستید. کی فریم ها همان فریم های کلیدی هستند که در طول محور زمان (timeline) مقادیر مختلفی را به یک ویژگی (مانند position) می دهند و باعث تغییر مقدار آن ویژگی در طول زمان می شوند. هر آنچه که قابلیت پذیرش کی فریم را دارد می تواند اکسپرشن افتر افکت را نیز بپذیرد. کافی است هنگام کلیک بر روی استاپ واچ (stopwatch) کنار ویژگی کلید Alt را نیز نگه داشته باشد. به این صورت محیط اکسپرشن نویسی برای شما ظاهر می شود.

زبان اکسپرشن های افتر افکت

اکسپرشن افتر افکت به زبان جاوا اسکریپت نوشته می شود. این زبان قابلیت کد شدن و غیر قابل خواندن شدن دارد یعنی اگر یک برنامه نویس افتر افکت اکسپرشنی برا اعمال یک ویژگی نوشته باشد و بخواهد آن را در اختیار سایر کاربران قرار دهد در حالی که نمی خواهد کسی از ماهیت اکسپرشن او سر در بیاورد می تواند با استفاده از نرم افزار Adobe ExtendScript کد های خود را به صورت کد شده خروجی بگیرد تا دیگران در نرم افزار افتر افکت از آن استفاده کنند.

کاربرد های اکسپرشن

همانطور که می دانید اکثر حرکاتی که در موشن گرافیک ها استفاده می شوند را می توان به صورت یک مدل ریاضی در آورد. مانند سرعت آمدن و رفتن اجزا، حرکت یک پاندول، افتادن یک توپ، چرخیدن چرخ یک ماشین با توجه به مسافتی که طی کرده است و صد ها مورد دیگر. تمامی این موارد را می توان به صورت یک رابطه ریاضی و یا چندین رابطه مدل سازی کرد و هر حرکتی که قابل مدل سازی باشد را می توان به صورت اکسپرشن افتر افکت در آورد.

پیشنهاد مطالعه  موشن گرافیک ؛ زمینه‌ها و کاربردها

نکته: فراموش نکنید؛ هر آنچه که می توان به سادگی با اعمال دو یا سه کی فریم طراحی کرد ساخت اکسپرشن افتر افکت برای آن کاری بیهوده است.

چند دستور پر کاربرد

در ادامه این مقاله می خواهیم شما را با چند دستور پر کاربرد و در عین حال ساده آشنا کنیم.

time

کاربرد time در اکسپرشن افتر افکت

این کد شاید یکی از پر کاربرد ترین دستور ها در اکسپرشن افتر افکت باشد. در اصل این یک دستور نیست بلکه یک متغیر است. مقدار موجود در این متغیر نیز زمان فعلی برنامه می باشد. یکی از کاربرد های این دستور هنگام طراحی یک ساعت با عقربه های گردان می باشد. شما می توانید با تغییر و ساخت کی فریم برای ویژگی Rotation عقربه های ساعت را بچرخانید ولی همگام کردن سه عقربه ساعت شمار، دقیقه شمار و ثانیه شمار با یک دیگر نیازمند دقت است ولی این کار به سادگی با استفاده از دستور time در اکسپرشن افتر افکت قابل انجام است به این صورت که شما کافیست ضریبی از متغیر تایم را به ویژگی چرخش عقربه ثانیه شمار بدهیم و مقدار زاویه عقربه ساعت شمار برابر می شود با زاویه عقربه ثانیه شمار تقسیم بر 60 و عقربه دقیقه شمار نیز برابر است با زاویه عقربه ساعت شمار تقسیم بر 12. یافتن علت تقسیم بر این مقادیر را بر عهده شما می گذارم. ضریب متغیر تایم در اکسپرشن عقربه ثانیه شمار نیز سرعت چرخش ساعت را مشخص می کند.

inPoint

یکی از پر کاربردترین اکسپرشن افتر افکت ، ذستور inPoint می باشد. این دستور برای یافتن زمان ابتدایی لایه مورد نظر استفاده می شود. تصور کنید هدف برنامه شما این باشد که کاری دو ثانیه پس از زمان ابتدایی لایه اتفاق بیافتد. قاعدتا علاوه بر اکسپرشن time به دستور دیگری نیز نیاز دارید. شما به سادگی می توانید زمان شروع لایه را با استفاده از این دستور بیابید. برای یافتن زمان سپری شده از ابتدای لایه نیز می توانید از کد زیر استفاده کنید:

time-inPoint

outPoint

دستور دیگر مورد استفاده در افتر افکت، دستور outPoint می باشد. با استفاده از این دستور شما می توانید زمان پایانی لایه مورد نظر خود را بیابید. یکی از مثال های کاربردی این اکسپرشن در افتر افکت کوچک شدن و محو شدن لایه در پایان نمایش لایه می باشد. فرض کنید در ثانیه پایانی لایه این اتفاق بیافتد. کد آماده برای این کار به صورت زیر می باشد:

v=value;
t=outPoint-time;
if(t<1) linear(t,1,0,[0,0],v) else v

در خط اول این اکسپرشن مقدار فعلی ویژگی scale را درون یک متغیر قرار می دهیم. در خط بعدی بررسی می شود که چه مقدار زمان به زمان پایان لایه می رسد. در خط نهایی این اکسپرشن بلوک شرطی قرار دارد. در این بلوک بررسی می شود که اگر زمان باقی مانده به پایان لایه کمتر از یک ثانیه شود اندازه را به صورت خطی از مقدار فعلی به صفر می رساند. برای انجام این حرکت به صورت ease کافیست تا به جای دستور linear دستور ease را قرار بدهید.

v=value;
t=outPoint-time;
if(t<1) ease(t,1,0,[0,0],v) else v

 

پیشنهاد مطالعه  ریگ بندی کاراکتر چگونه است؟

wiggle

اکسپرشن افتر افکت wiggle

ساخت حرکات تصادفی در یک بازه حرکتی و با یک فرکانس معین اگر به وسیله کی فریم ها انجام شود کاری بسیار دشوار است. حال آنکه با اکسپرشن افتر افکت این کار به سادگی قابل اجرا است. دستور wiggle() دو متغیر می پذیرد و این دو متغیر بیانگر فرکانس تغییر و دامنه تغییر است. یکی از کاربرد های این دستور ساخت یک ستاره چشمک زن است به این صورت که روشن و خاموش شدن آن هیچ نظمی نداشته باشد. کافیست به ویژگی Opacity این لایه دستور wiggle را اعمال کنیم تا در محدوده مورد نظر و با سرعت دلخواه ستاره چشمک بزند.

یکی از ترفند هایی که شما می توانید با استفاده از اکسپرشن افتر افکت wiggle بزنید، فرکانس متغیر ایجاد اعداد تصادفی می باشد. برای مثال یک عقربه نشانگر دمای یک لوکوموتیو را در نظر بگیرید. داستان پیش روی تان که قرار است انیمیت کنید بدین شرح باشد که در ابتدا نوسان این عقربه کم باشد و سپس سرعت نوسان بالا برود. چاره کار استفاده از slider control می باشد.

Slider control ها یکی از پر کاربرد ترین ابزار ها برای نوشتن اکسپرشن افتر افکت می باشند. این ابزار را می توانید در زبانه Effects و سربرگ expression control بیابید.

نحوه استفاده از اسلایدر کنترل ها به این صورت می باشد که ابتدا آن ها را به یک لایه اضافه می کنیم و با توجه به کاربرد آن ها در برنامه نام گذاریشان کرده و سپس در کد آن را آدرس دهی می کنیم. حال شما می توانید این اسلایدر کنترل را انیمیت کنید و با ساخت کی فریم در زمان های متفاوت، یک فرکانس و دامنه متغیر برای این دستور تعبیه کنید. کد آماده این دستور به صورت زیر می باشد:

frq=effect("frq")("Slider");
amp=effect("amp")("Slider");
wiggle(frq,amp)

اما با اجرای این کد آماده و انیمیت اسلایدر کنترل ها پرشی را مشاهده می کنید. علت این پرش حافظه نداشتن اسلایدر کنترل ها می باشد. چاره کار استفاده از انتگرال گیر در اکسپرشن می باشد. نحوه استفاده از یک انتگرال گیر به تفصیل در مقاله کاربرد ریاضی در انیمیشن توضیح داده شده است.

پیشنهاد مطالعه  بهترین نرم‌افزارهای ساخت انیمیشن دو ‌بعدی

Loopout

اکسپرشن افتر افکت loopout

انجام یک عمل تکراری که برای آن کی فریم ساخته اید اتفاقی است که بسیار برای شما رخ داده است. اولین راه حل که به ذهن خطور می کند کپی کردن کی فریم ها است ولی اولین راه حل بهترین راه حل نیست. اگر مقدار فریم اول با فریم آخر آن ویژگی با هم یکی نباشند چه راه حلی دارید؟ مشکلات دیگری نیز هنگام کپی کی فریم ها رخ می دهد که اشاره به آن ها از حوصله این بحث خارج است. راه حل بهینه استفاده از دستور loopout در اکسپرشن افتر افکت است. این دستور برای ساخت یک حلقه نمایشی چهار حالت دارد. “cycle” , “continue” , “pingpong” , “offset”

شما برای استفاده از این دستور بایستی یک دور از حلقه مورد نظر خود را انیمیت کنید. هر یک از این حالت ها ویژگی خاص خودشان را دارند برای مثال در حالت “cycle” انیمیشن در کی فریم پایانی یک دور از حلقه به پایان می رسد و دو باره از اولین کی فریم شروع به نمایش می کند. ولی در حالت “pingpong” این کار برعکس است و با رسیدن به کی فریم پایانی انیمیشن از آخر به اول اجرا می شود و سپس از اول به آخر و همینطور تا پایان کامپوزیشن. این دستور متغیر های دیگری نیز می پذیرد که برای پرداختن به آن ها مجالی نیست.

کلام آخر

شما با مفهوم اکسپرشن افتر افکت آشنا شدید؛ کاربرد ها و طریقه استفاده از آن را آموختید و چند نمونه از آن ها را یاد گرفتید. برای آشنایی بیشتر با دستور های بیشتر با ما همراه باشید.

4 دیدگاه. ارسال دیدگاه جدید

  • رضا مهدیزاده

    29 اردیبهشت, 1399

    من در زندگی روز مره دبیر هستم این روش توضیح شما در سطح استادی است اگر قصد دارید مطالب شما مفید واقع گردد حتما توضیحات استادانه خود را با مثال همراه نمایید تا کسانی که از زبان برنامه نویسی اطلاع چندانی ندارند بتوانند مطالب شما را به درستی به کار گیرند.امید موفقیت و سلامتی برای حضرتعالی را از در گاه خداوند دارم

    • احمد گلچین

      29 اردیبهشت, 1399

      با سلام و عرض ادب
      ممنون از نظر مشفقانه شما.
      حتما در مقالات آتی این مسئله رو اعمال می کنیم.
      موفق باشید.

  • علی

    11 مهر, 1398

    سلام من اکسپرشن رو اعما میکنم اما یه مثل زرد رنگی میاد زیر ایکن پوزیشن واکسپرشن اعما نمیشه باید چیکار کنم؟ ممنون

    • احمد گلچین

      11 مهر, 1398

      سلام
      چند علت ممکن است عامل ارور برای اکسپرشن باشد.
      علت اول تفاوت نگارش در نرم افزار افتر افکت 2019 نسبت به افتر افکت 2018 است که همین تفاوت رسم الخط و علائمی که باید در اکسپرشن نسخه جدید بیاید، باعث ارور می شود.
      علت دوم اشتباه در نگارش متن اکسپرشن است. به بزرگ و کوچک بودن حروف دقت کنید. فواصل را رعایت کنید.
      علت اصلی ارور را می توانید با کلیک بر مثلث زرد رنگ مشاهده کنید. با این کلیک پنجره ای برای شما باز می شود و اشتباه شما در کد و خطی که در آن اشتباه رخ داده را مشاهده کنید. پس از یافتن مشکل می توانید آن را مظرح کنید تا راه حل را برای شما شرح دهم.
      همچنین می توانید متن کد وارد کرده در ویژگی پوزیشن را در پاسخ ارسال کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست

لطفا صبر کنید