Unlimited AE and Premiere Pro templates, videos & more! Unlimited asset downloads! From $16.50/m
Advertisement
  1. 3D & Motion Graphics
  2. Workflow

مقدمه‌ای بر مفاهیم پایه اسکریپت‌نویسی در افترافکت

by
Read Time:8 minsLanguages:

Persian (پارسی) translation by Ahmad Mostofi (you can also view the original English article)

برای اینکه همراه با آخرین آموزش‌مان درباره جریان کاری توسعه اسکریپت پیش برویم، ابتدا به مفاهیم پایه و تمرین‌های خوب لازم برای شروع نوشتن اسکریپت افترافکت میپردازیم. ما به انجام کارهای معمول در افترافکت مثل ایجاد پروژه، ایجاد کامپوزیشن، ایجاد لایه، ایجاد اشکال، اضافه کردن افکت، تغییر مقادیر و عبارات expression، استفاده از نوشته و فونت، اضافه کردن کی فریم، استفاده از کارکردها و بسیاری موارد دیگر میپردازیم.

اسکریپت‌های افترافکت در Videohive

اگر دنبال راه حل سریعی با یک اسکریپت افترافکت هستید، مجموعه ی وسیعی از آنها در وبسایت Videohive قرار دارند. یا اینکه، میتوانید اسکریپت خودتان را بعنوان مولف (author) در این سایت ارائه دهید.


نوشتن اولین اسکریپت

همانطور که در بسته نصب After Effects Sublime Text و آموزش استفاده از آن اشاره شده، اسکریپت‌ها از زبان Adobe ExtendScript استفاده میکنند، ExtendScript فرم توسعه‌داده شده‌ای از جاوا اسکریپت (JavaScript) است و در تعدادی از برنامه‌های Adobe مثل فتوشاپ، ایلوستریتور، و ایندیزاین از آن استفاده میشود. ExtendScript روش خوب و پربازدهی برای این است که به هر آنچه که میخواهید در افترافکت دست پیدا کنید.

اسکریپت‌ها از زبان Adobe ExtendScript استفاده میکنند، که فرم توسعه‌داده شده‌ای از جاوا اسکریپت (JavaScript) است و در تعدادی از برنامه‌های Adobe مثل فتوشاپ، ایلوستریتور، و ایندیزاین از آن استفاده میشود.

در این آموزش به مفاهیم اولیه و تمرین‌های خوب ضروری برای شروع نوشتن اسکریپت افترافکت میپردازیم.


ایجاد اولین کامپوزیشن

ما با استفاده از متد

از آبجکت

و قرار دادن آنها بین دو براکت شروع میکنیم.

آبجکت

ریشه ی (root) همه چیز است، همانطور که در شکل زیر دیده میشود:

این شکل را میتوان مثل بقیه مواردی که در اینجا در موردش توضیح میدهم، در راهنمای اسکریپت نویسی Adobe After Effects CS6 یافت.

حالا کامپوزیشن خودمان را با استفاده از آبجکت‌های زیردسته‌ی آبجکت

ایجاد میکنیم، که یکی آبجکت زیردسته‌ی

است و شامل پروژه ای است که در خط اول ایجاد کردیم و همینطور آبجکت زیردسته‌ی

که به شما دسترسی به پوشه‌ها و کامپوزیشن هایی میدهد که در پنجره ی Project در افترافکت میبینید.


مرتب کردن کد

کدنویسی تمیز و قابل نگهداری خیلی مهم است. ما نمیخواهیم عبارات expression کثیف و عجله ای بنویسیم. از آنجاییکه میخواهیم اسکریپت‌هایمان بسادگی قابل توسعه باشند، لازم است قراردادهای اهالی جاوااسکریپت را بپذیریم.

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

کلمه کلیدی

بدین معنی است که متغیر مقابل یک متغیر جدید است. به همین علت در خط 9 ، از کلمه کلیدی

دیگر استفاده نمیکنیم، چون میخواهیم از مقدار

استفاده کنیم (که کامپوزیشنی است که اخیرا ایجاد کردیم)

این هم از توضیحات خط به خط کاری که انجام دادیم:

  • خط 3: متغیر جدیدی ایجاد کن

    که برابر خواهد بود با

    اگر

    تعریف نشده باشد و در غیراینصورت برابر خواهد بود با

    .

  • خط 6: متغیرهای جدید ایجاد کن

    و

    که هر دو برابر با آرایه ای جدید از مقادیر خواهند بود.

  • خط 7: متغیر جدید ایجاد کن

    که مربوط به نامی است که به کامپوزیشن اختصاص میدهیم.

  • خط 8: متغیر جدید ایجاد کن

    که برابر خواهد بود با

    که خصوصیتی از آبجکت

    در صورتی که تعریف نشده باشد، برابر خواهد بود با متد

    از زیردسته‌ی 

    از

    که آرایه ای از آرگومان‌ها را ارسال خواهد کرد.

    • نام کامپوزیشن
    • پهنای کامپوزیشن
    • ارتفاع کامپوزیشن
    • نسبت پیکسلی کامپوزیشن
    • زمان کامپوزیشن (بر حسب ثانیه)
    • فریم در ثانیه کامپوزیشن
  • خط 9: استفاده کن از متد

    و با متد

    تایم‌لاین برای این کامپوزیشن باز خواهد شد.

بله. در اینجا متد و ویژگی‌های زیادی داریم. دوباره اشاره میکنم، لازم هست که در یک زمان مناسبی به راهنمای اسکریپت‌نویسی در ادوبی افترافکت CS6 نگاهی بیندازید تا بیشتر در مورد آبجکت‌ها و همینطور متدها و ویژگی‌های در دسترس بدانید. این راهنما واقعا خوب نوشته شده و یک جستجوی سریع برای عبارت Project Object فورا شما را به اطلاعات صحیح میرساند.


مروری سریع بر مفاهیم جاوا اسکریپت

  • متغیر (Variable): میتواند یک مقدار، یا آرایه‌ای از مقادیر یک آبجکت را ذخیره کند. 
  • آرایه (Array): شامل چندین مقدار است. آرایه‌ها میتوانند به دو روش اظهار شوند.
  • تابع (Function): بخشی از کد که برای انجام عمل مشخصی طراحی شده است.
  • آبجکت (Object): آبجکت پیچیده تر است، اما برای الان لازم است که بدانید آبجکت، متدها و ویژگی‌ها دارد.
    • ویژگی (Property): مشابه یک متغیر است.
    • متد: مشابه فراخوانی یک تابع است.

افزودن Undo Groups

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

یا

را بروی صفحه کلید میزنید. انجام این کار خیلی ساده است، فقط لازم است کد خود را بین متدهای

و

از آبجکت

قرار دهیم. این متد ، آرگومان نامی که در منوی

افترافکت نمایش داده میشود را برمیدارد.


ایجاد لایه پس‌زمینه (background)

برای ایجاد لایه پس‌زمینه، ما از زیردسته ‌ی

از فراخوانی

متد

استفاده میکنیم و این آرگومان‌ها را برای آن ارسال میکنیم:

  • رنگ لایه
  • آرایه‌ای از اعداد شناور (بین صفر و یک). برای بدست آوردن این مقدار، لازم است هر یک از مقادیر RGB را بر 255 تقسیم کنیم یا از این لینک در وبسایت jsFiddle که من ساختم استفاده کنید تا مقدار آنرا بدست بیاورید.http://jsfiddle.net/seblavoie/mezGe/43/embedded/result/
  • نام لایه
  • پهنای لایه
  • ارتفاع لایه
  • نسبت پیکسلی لایه

افزودن افکت شبکه (Grid Effect)

بهترین راه برای ایجاد تقاطع متمرکز، استفاده از افکت Grid Effect بروی لایه پس‌زمینه است. برای انجام این کار، ما از متغیر

استفاده میکنیم که ارجاع میدهد به

و از ویژگی

استفاده میکنیم.

در اینجا باید به چند مورد توجه داشته باشید. اول اینکه متد

بصورت زنجیروار است که بدین معنی است که میتوانید آن را چندین بار فراخوانی کنید تا به ویژگی‌های زیر دسته‌ای که میخواهید برسید.

  • شفافیت (opacity) لایه:

  • شفافیت (opacity) افکت Grid:

دوم اینکه، ما از متد

وقتی استفاده میکنیم که میخواهیم یک مقدار را تنظیم کنیم، نه وقتی که میخواهیم عبارت expression را تنظیم کنیم.


ایجاد لایه افکت Wipe

برای افزودن افکت wipe ، یک لایه جدید میسازیم و از افکت Radial Wipe استفاده میکنیم.

ما از متد

استفاده کردیم تا کی فریم‌ها را تنظیم کنیم و یک

تا لوپ loop انیمیشن را ایجاد کنیم. (متوجه کاری که انجام دادم هستید که...درسته؟)


اضافه کردن لایه نوشته (Text)

کار کردن با text، از آنجاییکه باید ویژگی‌های مقدار source text را مستقیما تغییر بدهید، کمی متفاوت است.

ما ویژگی‌های مقداری text را تغییر دادیم و از

استفاده کردیم تا آنرا مجددا به لایه text خود ارسال کنیم. همینطور از یک عبارت expression ساده استفاده کردیم تا شمارش معکوس countdown ایجاد کنیم.

یک تابع جاوا اسکریپت است که میتواند بخش اعشاری عدد را حذف کند.بعد از آن، نقطه anchor point را با استفاده از متد

در مرکز قرار میدهیم.


افزودن بیضی‌ها

برای اضافه کردن بیضی‌ها، ما از متد

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

خط 5 خیلی مهم است، از آنجاییکه نمیتوانید ویژگی

را چه در مستندات documentation یا در محیط کاربری افترافکت پیدا کنید. سپاس از Dan Ebbert برای این راهنما:http://forums.creativecow.net/thread/227/22280

ما از یک تابع سفارشی کوچک بجای تکثیر تابع ایجاد بیضی استفاده کردیم. شما میتوانید از نوشتن چندین تابع استفاده کنید.

یک قانون سرانگشتی ساده: در صورتی که خطوط کد را کپی پیست میکنید، استفاده از یک تابع را در نظر بگیرید.

در ادامه ما فقط ویژگی‌های شکل را تغییر دادیم. لازم است که برای بررسی این ویژگی‌ها به راهنمای اسکریپت نویسی ادوبی افترافکت CS6 مراجعه کنید.

ممکن است با این خط

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


نتیجه گیری

ممکن‌ها برای اسکریپت نویسی بی‌پایان هستند و وقتی خوب آنرا یاد بگیرید ابزار واقعا قدرتمندی را برایتان ایجاد میکنند. در زیر میتوانید مستندات بیشتری را در مورد اسکریپت نویسی و بطور کل جاوا اسکریپت ببینید:

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.