اکسپرشنهای کاربردی افترافکت
اکسپرشنهای کاربردی افترافکت
یکی از موارد مهم، اکسپرشنهای کاربردی در افترافکت است که در این بخش از تک ادیتور به آن خواهیم پرداخت. این ویژگی در واقع همان کدهای کوتاهی هستند که رفتار یک لایه یا پارامتر را، اتوماتیک و وابسته به قوانین منطقی میکنند. با وجود اکسپرشن لازم نیست برای هر حرکت keyframe بزنید. در این حالت کافی است تا یک فرمول کوچک را وارد کنید، سپس افترافکت خودش حرکت، لرزش، تأخیر، فیزیک، ریتم و… را به صورت هوشمند بسازد. در ادامه مهمترین و کاربردیترین اکسپرشنها در افترافکت را معرفی میکنیم.
لیست کدهای اکسپرشن افترافکت
هر اکسپرشن شامل کدهای افترافکت است که بهترین افکت های افترافکت را به شما ارائه میدهد.
اکسپرشن Wiggle
این اکسپرشن برای لرزش طبیعی بسیار پرکاربرد است. فرمول کلی آن wiggle(frequency, amplitude) میباشد و میتواند موقعیت (Position)، چرخش (Rotation)، اسکیل یا هر پارامتر دیگری را به شکل رندوم و کنترل شده بلرزاند. مثلا برای لرزش ملایم دوربین wiggle(1, 20) و برای لرزش شدید صحنههای اکشن wiggle(6, 60) و لرزش روی محور X باید از [wiggle(3,50)[0], value[1]] استفاده نمود. اگر بخواهیم به نکات مهم Wiggle اشاره کنیم، باید بگوییم که به هنگام ایجاد لرزش زیاد بهتر است، amplitude را کم کنید. همچنین برای کنترل دستی، میتوانید wiggle را در Slider Control قرار دهید. برای قطع لرزش در لحظههای خاص نیز میتوانید از Linear کمک بگیرید.
اکسپرشن Loop
برای تکرار، برگشت، یا لوپ بینهایت از اکسپرشن Loop استفاده میکنند. انواع loop شامل موارد زیر است.
- loopOut(“cycle”) تکرار کیفریمها
- loopOut(“pingpong”) رفت و برگشت
- loopOut(“offset”) تکرار با افزایش مقدار
- loopOutDuration(…) تکرار با مدت زمان مشخص
مثلا loopOut(“pingpong”) باعث میشود که انیمیشن شما به جلو و عقب حرکت کند. کاربرد این اکسپرشن شامل افکتهای نور چشمکزن، بالا و پایین شدن یک شی، حرکت چرخشی بینهایت و انیمیشن لوگو میباشد.
اکسپرشن Time
اگر برای حرکات ریتمدار و بر اساس زمان به دنبال یک اکسپرشن هستید، Time بهترین گزینه است. فرمول ساده این اکسپرشن time * 100 میباشد. از کاربردهای آن میتوان به چرخش بیوقفه با time * 50، تغییر تدریجی Opacity با time*10 و حرکت ثابت و یکنواخت در Position با [value[0] + time*100, value[1]] اشاره کرد.
اکسپرشن ValueAtTime
برای ایجاد تأخیر یا پیش افتادن لایهها اکسپرشن ValueAtTime پیشنهاد میشود. فرمول کلی آن valueAtTime(time – delay) میباشد. مثلا اگر میخواهید دنبالهدار بسازید (Tail effect) باید از این روش کدنویسی در افترافکت کمک بگیرید.
delay = 0.2;
thisComp.layer(“Main”).transform.position.valueAtTime(time – delay)
در حقیقت هر لایهای کمی عقبتر از لایهی اصلی حرکت میکند و برای موشن گرافیکهای حرفهای فوقالعاده کاربردی است. در آموزش استوری موشن صفر تا صد بیشتر با این اکسپرشن آشنا میشوید.
اکسپرشن PickWhip
گاهی اوقات میخواهید پارامتری دقیقا از یک لایهی دیگر تبعیت کند. در چنین مواقعی اکسپرشن PickWhip برای شما کاربردی است. مثل thisComp.layer(“Null 1”).transform.rotation که کاربرد آن لینک دادن اسکیل چند آبجکت، اتصال حرکت چشمها به سر و اتصال جزییات به یک شی اصلی است. مزیت این اکسپرشن این است که میتوانید روی آن حساب اضافه کنید. مثل thisComp.layer(“Null 1”).transform.position + [0, 50]
اکسپرشن Clamp
برای محدود کردن مقدار به سراغ اکسپرشن Clamp میرویم. اگر مقدار position یا rotation زیاد بالا و پایین شود، Clamp میتواند شما را نجات دهد. مثل clamp(value, 0, 100) که اجازه نمیدهد مقدار از بازه ۰ تا ۱۰۰ خارج شود. کاربرد این اکسپرشن شامل محدود کردن حرکت اسکرول، جلوگیری از لرزش زیاد دوربین و ثابت نگه داشتن حد بالا یا پایین یک افکت است.
اکسپرشن Random
برای استفاده از مقدار تصادفی به اکسپرشن Random نیاز داریم. انتخاب random(50) از ۰ تا ۵۰ مقدار تصادفی به شما میدهد. اما پیشرفتهتر آن شامل random([0,0], [1920,1080]) میباشد که یک نقطه رندوم در صفحه است. یکی از اکسپرشنهای کاربردی افترافکت Random میباشد.
اکسپرشن Linear
برای ساخت انیمیشنهای هوشمند و کنترل شده میتوان از Linear کمک گرفت. این اکسپرشن یکی از حرفهایترین اکسپرشنها میباشد. فرمول آن linear(value, oldMin, oldMax, newMin, newMax) است و مثال کاربردی آن، تغییر Opacity همراه با حرکت از طریق linear(position[1], 0, 1080, 0, 100) میباشد. یعنی هر چه لایه به بالا نزدیک میشود، شفاف خواهد شد و هر چه پایینتر میرود، مبهمتر خواهد بود.
اکسپرشن Ease و EaseIn/EaseOut
برای ساخت انیمیشن نرمتر اکسپرشن Ease و EaseIn/EaseOut کاربرد دارد. در اصل این اکسپرشن مثل Linear است، اما حرکت نرمتر و طبیعیتری میدهد. مثلا ease(time, 0, 2, 0, 100) دارای کاربرد ولوم، Opacity، Rotation و انتقالهای نرم و سینمایی میباشد.
اکسپرشن LookAt
برای چرخش و نگاه کردن به یک نقطه از اکسپرشن LookAt استفاده میکنند. اکسپرشن lookAt(position, target) با کاربرد چرخش چشمها و چرخش دوربین به سمت یک شی و انیمیشن چرخش آبجکت سه بعدی میباشد.
اکسپرشن Bounce
برای جهش و تکان خوردن طبیعی میتوان از اکسپرشن Bounce کمک گرفت. زیرا Bounce یکی از پرطرفدارترین اکسپرشنها است و در نسخهی ساده آن، انرژی بعد از کیفریم آخر کاهش پیدا میکند و مثل توپ واکنش نشون میدهد.
amp = .08;
freq = 4.0;
decay = 2.0;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time) n–;
}
if (n > 0){
t = time – key(n).time;
v = velocityAtTime(key(n).time – thisComp.frameDuration/10);
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else
value
کاربرد این اکسپرشن جهش لوگو، المنتهایی مثل توپ، دکمه، باکس و UI Motion است.
اکسپرشن Split Position
برای جدا کردن X و Y بهترین گزینه اکسپرشن Split Position است. وقتی میخواهید فقط یک محور تغییر کند، مثلا فقط محور X از [value[0] + 50, value[1]] استفاده کنید. اما زمانی که میخواهید فقط محور Y حرکت کند [value[0], value[1] – 100] را انتخاب نمایید. کاربرد آن برای انیمیشنهای دقیق و تمیز هنگام کنترل یک محور است.
اکسپرشن توقف و ادامه (Freeze Time)
اگر به دنبال یک اکسپرشن برای توقف و ادامه هستید بهتر است به سراغ Freeze Time بروید. برای فریز کردن یک لایه در زمان valueAtTime(1) // در ثانیه 1 فریز میماند. این اکسپرشن نیز جز اکسپرشنهای کاربردی افترافکت است.
اکسپرشن برای ضربان قلب یا پالس
برای آنکه ضربان قلب یا پالس را نشان دهید از این اکسپرشن کمک بگیرید.
s = 10; // سرعت
a = 5; // شدت
value + Math.sin(time*s)*a
کاربرد آن افکت پالس نور، هایلایت کردن آبجکت و UI Motion میباشد.
اکسپرشن شرطی if Statements
برای کنترلهای هوشمند از اکسپرشن شرطی if Statements استفاده میکنند. مثالا
if (time < 2){
0
}else{
100
}
در این مواقع کاربردی است. اما کاربرد اصلی آن نمایش یا عدم نمایش، فعال یا غیرفعال کردن افکت و کنترل انیمیشن بعد از زمان خاص میباشد.
نکات مهم و حرفهای اکسپرشنها
به هنگام استفاده از اکسپرشن، باید به این نکات توجه داشته باشید.
- همیشه از Slider Control برای کنترل پارامتر استفاده کنید. مثلاً wiggle را مستقیم روی Position نگذارید. بهتر است روی کنترلکننده قرار دهید تا مدیریت پروژه راحتتر شود.
- برای پیدا کردن خطا، Alt را نگه دارید و روی Expression کلیک کنید. در این صورت افترافکت دقیقا به شما میگوید که کدام خط مشکل دارد.
- از PickWhip برای جلوگیری از تایپ اشتباه استفاده کنید. به خصوص وقتی نام لایه آن طولانی است.
- برای کاهش مصرف CPU اکسپرشنها را Pre-compose کنید. اگر زیاد هستند، رندرگیری برای شما کند میشود.
- اگر اکسپرشن لگ میدهد Motion Blur را خاموش کنید و Resolution را کاهش دهید. بهتر است اکسپرشنهای پیچیده را Bake کنید. (Keyframe Assistant → Convert Expression to Keyframes)
- همیشه اسم لایهها را مرتبط و تمیز بگذارید. زیرا در پروژههای حرفهای، پیدا کردن لایهها با نام صحیح آسانتر میشود.
مزیت بزرگ استفاده از اکسپرشنها
استفاده از اکسپرشن بانس در افترافکت و دیگر اکسپرشنها میتواند چنین مزایایی داشته باشپ.
- سرعت فوقالعاده در تولید انیمیشنها
- حرفهایتر شدن روند موشن گرافیک
- کاهش تعداد keyframeها برای پروژه
- ایجاد رفتارهای تکرار شونده و طبیعی مثل لرزش دوربین، حرکت تصادفی، Bounce، Delay
- امکان لینک دادن لایهها به یکدیگر




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