آموزش اتصال کی فریم ها به مارکر با اکسپرشن نویسی در افترافکت

آموزش اتصال کی فریم ها به مارکر با اکسپرشن نویسی در افترافکت

دسته : افترافکت

نویسنده : مجتبی بهروزی

تاریخ : 1401/2/18

آموزش اتصال کی فریم ها به مارکر با اکسپرشن نویسی در افترافکت

آموزش اتصال کی فریم ها به مارکر با اکسپرشن نویسی در افترافکت و آشنایی با مبانی و اصول اولیه در اکسپرشن نویسی شامل مباحث Var, Array, If Else, marker.key, linear and easeout



سلام

این آموزش با عشق تقدیم به شما

 

پیش نیاز ها

برای دیدن این آموزش پیشنهاد می کنم دوره اولیه آموزش افترافکت رو گذرونده باشید و در حد ابتدایی با اکسپرشن ها آشنا باشید.

این آموزش برای افرادی که تازه با افترافکت کار میکنند توصبه نمی شود. قبل از دیدن این آموزش سری به پست valueAtTime  بزنید.

موضوع:

کی فریم ها در افترافکت در ذیل لایه ها قرار می گیرند و همواره علاوه بر شتاب ( Video Graph ) ، مقدار تغییرات ( value ) و زمان  ( time )را هم در خود جای میدهند. کی ها  ( KEY ) انواعی دارند و یکی از زیر شاخه های آن مارکرها  ( Marker )هستند.  مارکر ها نیز مانند کی فریم ها مقادیری را در خود ذخیره می کنند که یکی از آنها زمان  ( time )می باشد.

حالا اگه ما بتونیم زمان ها رو از کی فریم ها بگیریم و به مارکر ها بدیم ....

به نظر میرسه که کنترل بیشتری رو روی زمانبندی موشن هامون خواهیم داشت. میشه زمان شروع و یا اتمام  یک انیمیشن رو به راحتی تغییر داد. این کنترل زمان در ساخت تمپلیت های افترافکت  کمک شایانی به ما خواهد کرد.

 

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

آشنایی با متغییر Variable - 

آرایه   Array - 

کی فریم Key () - 

تایم Time - 

مقدار value - 

مارکر  marker.key() - 

نقطه شروع و نقطه پایان لایه  inPoint – outPoint - 

بررسی فرمان حرکت بین دو کی فریم  Linear (t, value1 , value2) - 

و در نهایت آشنایی با فرمان شرط  If condition { else { - 

 

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

جهت اینکه بتونید این اکسپرشن ها رو برای خودتون ذخیره کنین و در حین کار ازشون استفاده کنید دستوراتش رو براتون اینجا می نویسم.

 

درopacity   نوشته شود:

linear (time, 0, 100)

یعنی در طول یک ثانیه شفافیت از عدد 0 به عدد 100 برسد.

 

linear (time/2, 0, 100)

یعنی در طول دو ثانیه شفافیت از عدد 0 به عدد 100 برسد.

 

linear (time*2, 0, 100)

یعنی در طول نیم ثانیه شفافیت از عدد 0 به عدد 100 برسد.

 

linear ( time, 0, 3, 0,100 )

یعنی از ثانیه 0 تا ثانیه 3 مقدار شفافیت از 0 به عدد 100 برسد.

 

ویا در position  نوشته شود:

linear ( time, 0, 2, [1080,540], [1920,540] )

یعنی از ثانیه 0 تا ثانیه 2 آیتم از موقعیت یک به موقعیت دو نقل مکان کند

 

دستور جهت گرفتن زمانی که مارکر در آن زمان قرار دارد:

marker.key(1).time

یعنی اولین مارکر از سمت چپ را پیدا کن و زمان آن را دریافت کن.

با اجرای این دستور در  opacityمی توانیم بجای استفاده از زمان بگوییم:

linear ( time, marker.key(1).time, marker.key(1).time, 0,100 )

یعنی از زمانی که مارکر شماره 1 تا زمانی که مارکر شماره 2 قرار گرفته میزان شفافیت رو از 0 به 100 برسان

 

دستور شرط if :

با این دستورشرطی را ایجاد می کنیم به نحوی که اگر شرایط آن شرط محیا شد، دستور اجرا شود در غیر اینصورت دستور دیگری اجرا شود.

مثلا در opacity

If ( time < 3){

Opacity =100}

else{

opacity = 0 }

بدین معنی که اگر شاخص زمان یا همان Indicator قبل از ثانیه 3 باشد، شفافیت برابر با صد باشد در غیر اینصورت ( یعنی شاخص از ثانیه 3 رد شده باشد) میزان شفافیت را 0 کن

 

و در پایان با استفاده از همه آنچه که در این آموزش اکسپرشن ها آموختیم:

x = key(2).time - key(1).time

y = key(4).time - key(3).time

m1 = marker.key(1).time

m2 = marker.key(2).time 

if (time < m2){

    linear(time, m1+a , m1, key(1).value , key(2).value)

}else

{

    linear(time, m2 , m2+b , key(3).value, key(4).value)

}

 

با این دستورات تمامی انیمیشن ها به دو مارکر یکی برای شروع و یکی برای پایان متصل می شود.

 در دو سطر اول تقاضل کی فریم های شروع و پایان را محاسبه میکند.

در دو سطر بعد بجای نوشتن دستور مارکر از یک متغییر استفاده می کنیم و مقدار زمان مارکرها رو در اون ذخیره می کند و با دستور شرط  شروع واتمام حرکت رو از زمان مارکر ها دریافت می کند.

امیدوارم که از این آموزش لذت برده باشید. دیدن کامنتهاتون به من انرژی میده. در ضمن اگه موضوعی دارید یا پیشنهاد یا انتقاد ، میتونیم از بخش پیشنهادات با هم در ارتباط باشیم.