
امروز میخواهیم در مورد کد نویسی در افتر افکت صحبت کنیم، کد نویسی در افتر افکت بر پایه زمان جاوا اسکریپت می باشد و در افتر افکت به این کد ها اسکپرشن گفته می شود. در این مقاله در مورد کدهایی صحبت می کنیم که کمتر مورد استفاده قرار گرفتهاند، اما در حوزه موشنگرافیک و ساخت پروژه های آماده افتر افکت فوقالعاده به کار میآیند! شاید با بعضی از این اکسپرشنها آشنا باشید، اما مطمئنا بازهم چیزهای جدیدی یاد خواهید گرفت!
برای یادگیری بهتر، میتوانید پروژه این مقاله را از قسمت دانلود، دریافت کنید.
و اما اکسپرشنهای مورد بحث:
1- Loop Offset
کد دستوری:
loopOut("offset"); یا loopIn("Offset");
شاید با اکسپرشنهای Loop در افترافکت آشنا باشید، اما احتمالا از Offset Loop چیزی نمیدانید! بطور خلاصه این اکسپرشن، مقدار آخرین کی فریم را تا انتها ادامه میدهد.
یکی از راههای جالب برای استفاده از اکسپرشن لوپ، ساخت یک shape در حال حرکت است. برای مثال، اگر بخواهید آن shape از پایین کامپوزیشن به سمت بالا با یک سرعت ثابت حرکت کند، باید برای دو کی فریم آن اکسپرشن را اِعمال کرده و با تغییر فاصله بین این دو کی فریم، به سرعت مدنظر دست پیدا کنید.
این یک روش فوقالعاده برای تنظیم سرعت حرکتهای تکرار شونده است.
2- Index
کد دستوری:
index;
اکسپرشن ایندکس یک ابزار فوقالعاده قدرتمند در افترافکت است. این اکسپرشن مقدار را براساس موقعیت لایه در تایملاین برمیگرداند. در واقع به هر لایه در تایملاین یک عدد ایندکس اختصاص داده شده است. به عنوان مثال، لایه چهارم تایم لاین، عدد 4 را برمیگرداند.
قدرت حقیقی ایندکس وقتی مشخص میشود که از آن برای offset کردن سایر مقادیر استفاده کنیم. مثلا وقتیکه آن را به یک مقدار تصادفی لینک کنیم، یا استفاده از آن بعنوان راهی برای تغییر position یک لایه shape. در کل کارهای زیادی با ایندکس میتوان انجام داد.
3- Linear
کد دستوری:
linear(inputvalue,InputValueLow,InputValueHigh,OutputLow,OutputHigh);
مثال:
linear(thisComp.layer("AudioLayer").effect("Both Channels")("Slider"),0,20,700,200);
اکسپرشن linear جادویی است! این اکسپرشن به شما اجازه میدهد تا رشتهای از مقادیر (اعداد) را به یک رشته دیگری از مقادیر براساس نسبتهای جدید تبدیل کنید. گیج شدید؟!
پس مثالی میزنیم. فرض کنیم شما یک تمپلیت برای افترافکت ساختهاید و میخواهید به کاربران این امکان را بدهید که با استفاده از یک اسلایدر، سایز یک لایه shape را از مقدار 0 تا 100 تغییر دهند، اما در واقع میخواهید سایز آن بین مقدار 5 تا 20 تغییر کند.
واضح است که شما نمیتوانید تنها با پرنت کردن scale به یک اسلایدر این کار را انجام دهید. چرا که با این کار، سایز لایه تنها از مقدار 0 تا 100 تغییر میکند. در عوض با استفاده از این اکسپرشن، شما میتوانید خروجی را به تناسب ورودی تغییر دهید، که باعث میشود مقدار 0 به 5 و مقدار 100 به 20 نگاشت شود.
4- Clamp
کد دستوری:
clamp(input,minimum,maximum)
مثال:
clamp(thisComp.layer("Layer 1").effect("Slider Control")("Slider"),852,1700);
اکسپرشن clamp راهی است برای ایجاد یک سقف در مقادیر لایهها. در اصل با استفاده از این اکسپرشن، شما به هر مقداری از هر لایهای میگویید که نمیتواند از یک مقدار مینیمم کمتر و از یک مقدار ماکزیمم بیشتر شود.
این اکسپرشن برای افرادیکه پروژه های آماده افتر افکت تولید میکنند بسیار مفید است.
5- ValueAtTime
کد دستوری:
valueAtTime(value);
مثال:
thisComp.layer(index-1).content("Polystar 1").content("Polystar Path 1").outerRadius.valueAtTime(time-.5);
اکسپرشن ValueAtTime یک مقدار از لایهای دیگر را در یک زمان خاص برمیگرداند. فرض کنید میخواهید حرکت یک لایه را دوباره اما با اندکی تاخیر تکرار کنید. خب این کار را میتوان با duplicate کردن لایه و جابجا کردن لایه در طول تایملاین برای offset کردن زمان انجام داد. اما اگر تعداد لایهها زیاد باشند، باز هم میتوان همینکار را انجام داد؟! به این عمل مثل این فکر کنید که یک مقداری را به یک لایهی دیگر در یک زمان خاص در تایملاین پرنت کردید. البته که این میتواند برای انجام برخی پروژهها مفید باشد، اما بهترین جاییکه نتیجهی فوقالعاده میدهد، استفاده از آن بعنوان راهی برای offset کردن انیمیشنها است.
برای استفاده از این اکسپرشن، فقط کافیست که آن مقداری از لایه را که میخواهید رفرنس باشد انتخاب کرده و (valueAtTime(x. را اضافه کنید. در اینجا x همان زمان مشخص است که میخواهید offset شود. حال اگر بجای دادن یک زمان خاص، از عبارت ‘time’ استفاده کنید، باعث آشکار شدن مقادیری میشود که از مقادیر لایه گرفته شده بودند.
در پایان امیدواریم در خصوص کد نویسی در افتر افکت اکسپرشن های کاربری را آموخته باشید! قطعا با کمی تمرین بیشتر، میتوانید به این اکسپرشنها و نحوه استفاده و کاربرد آنها مسلط شوید.