Showing posts with label Tutorial. Show all posts
Showing posts with label Tutorial. Show all posts

Wednesday, August 19, 2015

اصول پایه‌ای Expression در افترافکت







Expression یک از ابزارهای بسیار قدرتمند افترافکتِ برای ایجاد حرکت در افتر بدون کی‌فریم! Expression زبانیِ که براساس زبان JavaScript شکل گرفته و برای اتوماتیک کردن برخی کارها در افتر طراحی شده  و همچنین مهم‌ترین کارش انجام دادن کارهایی در افتر است که به نحو دیگر نمی‌شود انجام داد، یعنی غیرممکن است!
کدنویسی تو افتر اونقدرها هم که فکر می‌کنید سخت نیست، درواقع بیشتر اوقات شما نیازی به دست به کیبرد شدن ندارید! ابزارهایی مثل کمند و یا کتابخانه کدهای آماده در افترافکت بیشتر کارها رو میتوانند انجام بدهند. اما درک منطق برنامه‌نویسی به طور کلی و همچنین کمی دانش ریاضی می‌تواند دریچه‌های جدیدی بروی‌تان در افتر باز کند!
خب پس خیالتون رو راحت کنم، قرار نیست اینجا من بهتون JavaScript آموزش بدم، قراره یه سری اصول اولیه کار با Expression رو تو افترافکت بررسی کنیم. اولین چیزی که باید در مورد Expression بدونیم اینه که اصلا از کجا بیاریمش؟! اگر بر روی آیکون Stopwatch [کرونومتر] که کنار هر Property [ویژگی] در افتر قرار داره، با نگه داشتن کلید Alt کلیک کنید، به جای کی‌فریم، قسمت Expression اون ویژگی رو باز میکنه، که میشه یه چیزی مثله این:


 Parent کردن ویژگی یک لایه به لایه دیگر:

یکی از اولین کارهایی میشه با این ابزار انجام داد، Parent کردن دو تا ویژگی یکسان از دوتا لایه‌ی مختلف به همدیگره. برای اینکار بایستی از ابزار کمندی که در قسمت Expression قرار داره استفاده کنید. با این کار میشه هرچند تا لایه رو که میخواین به یک لایه parent کنید تا با تغییر مقدار ویژگی اون لایه‌ی parent بقیه لایه‌ها هم ویژگی‌شون تغییر کنه.


خود افترافکت به صورت اتوماتیک این کد رو تولید میکنه:
thisComp.layer("Null 1").transform.scale
 پس می‌بینید که نیازی به نوشتن ندارید، خب بذارید ببینیم چی نوشته، این خط کد میگه که از همین کامپ، از لایه‌ی "Null 1" از قسمت Transform مقدار ویژگی Scale رو بده به Scale لایه‌ی Sample. اوکی؟ فقط توجه داشته باشید که ساختار  JavaScript به بزرگی و کوچیکی حروف حساس هستش و اصطلاحا case-sensitive هستش. یعنی JavaScript بین thisComp و thiscomp تفاوت قائله، پس حواستون حسابی جمع باشه.

Parent کردن دو ویژگی متفاوت از دو لایه متفاوت:

فرقی با حالت قبلی نداره، یعنی شما میتونید به جای scale، مثلا Point of interest دوربین افتر رو به Position یک لایه دیگه وصل کنید. اینجوری هرجایی که اون لایه بره، دوربین هم به همون سمت میچرخه. این کاریِ که بدون Expression نمیشه انجام داد.

 خب اگه بخواهیم مثلاً Scale یک لایه رو به Opacity یه لایه‌ی دیگه وصل کنیم چی؟ آدمیزاده دیگه، لازمش میشه! اینجا یه مقدار قصه فرق میکنه. مثله قبل با استفاده از کمند، scale رو وصل می‌کنیم به opacity:
temp = thisComp.layer("Null 1").transform.opacity;
[temp, temp]
می‌بینید که کد یه مقدار فرق کرد، چرا؟ برای اینکه شما می‌خواهید ویژگی که یک مقدار داره رو به ویژگی‌ای متصل کنید که دو مقدار داره. در مثال ما opacity دارای مقدار 0 تا 100 است اما ویژگی scale دارای دو مقدار x و y است. پس افتر برای انجام این دستور ابتدا مقدار opacity را در یک متغیر [Variable]  به نام temp ذخیره میکنه و بعد اون رو با استفاده از [temp, temp] به هر دو مقدار scale میده. تو این کد دو تا temp داخل کروشه، نمایانگر x و y هستند. یعنی اگه من بیام کد رو تغییر بدم و به این شکل دربیارم:
 temp = thisComp.layer("Null 1").transform.opacity;
[100, temp]
 تو این حالت مقدار opacity فقط تو محور y تأثیر میذاره و مقدارِ محور x همون 100 میمونه. حالا اگه بخواین مقدار x ویژگی scale، همونی باشه که خودش داره میتونید از این کد استفاده کنید:
temp = thisComp.layer("Null 1").transform.opacity;
[scale[0], temp]
 تو این حالت دارم از یک آرایه [َArray] استفاده میکنم. آرایه‌ها تو JavaScript میتونند چند تا مقدار رو تو خودشون نگه دارند و بعدش هرجا که خواستیم میتونیم با اشاره به عدد، یکی از مقدارهای ذخیره شده در آرایه رو فراخوانی کنیم. اینجا هم scale یه آرایه‌اس که افتر به صورت پیش‌فرض اونو میسازه و دو تا مقدار x و y (و اگه کارتون سه‌بعدی باشه، مقدار z) رو توش ذخیره میکنه. فقط باید حواستون باشه که این شمارش از صفر شروع میشه، یعنی scale[0]   میشه x و scale[1]   میشه y.
این حالت رو مثلاً وقتی که بخواین یک ویژگی رو فقط به یکی از محورهای position بدین متوجه میشین:
thisComp.layer("Null 1").transform.position[1]
 الان اینجا مقدار position[1] رو که همون y باشه به opacity یه لایه‌ی دیگه وصل کردم.

 خب فکر کنم تا همین‌جا فعلا کافیه، اگه عمری باقی بود، در پست‌های بعدی بیشتر در مورد Expression تو افتر صحبت خواهم کرد.

پ.ن1: برای اطلاعات بیشتر و همچنین یادگیری  JavaScript میتونید به سایت w3schools مراجعه کنید.
 پ.ن2: وبسایت aescripts یکی از غنی‌ترین پایگاه‌ها برای اسکریپت افترافکتِ. تقریبا واسه هرچیزی یه کدی توش پیدا میشه!

Tuesday, March 10, 2015

فیلم های خارجی در صداو سیما، چطور سانسور می‌شوند؟


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

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

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

اینم لینک خبر تو سایت ایران وایر

پ . ن :
ـ باید اینو بگم که تکنیک روتوسکوپی* فقط واسه سانسور نیست و تو خیلی از شبکه‌ها، مخصوصا خبری، واسه پوشوندن لوگویی که تو بک‌گراند مجری دیده میشه استفاده میشه. به  دلیل عدم تبلیغات اون لوگوی خاص؛ یا تغییر قسمتی از تصویر بدون اینکه محسوس باشه به هر دلیلی.
ـ اینم یه آموزش خوب واسه روتوسکوپی از اندرو کریمر از سایت بی‌نظیر ویدئو کوپایلوت:
http://www.videocopilot.net/tutorials/assisted_suicide/

*روتوسکوپی به مجموعه روش‌هایی که با استفاده از اون بر روی یک ویدئو به صورت فریم به فریم اصلاحاتی انجام میدن گفته میشه. برای اطلاعات بیشتر میتونید به این صفحه ویکی‌پدیا مراجعه کنید. و یا در گوگل واژه‌ی rotoscoping رو سرچ کنید.


Saturday, November 1, 2014

دانلود ویدئوهای محدود شده

در پست قبلی درباره نحوه دانلود ویدئو توضیحاتی رو داده بودم، حالا میخوام در مورد یکی دیگه از قابلیت‌های سایت‌های مبدل لینک براتون بگم.
طرح مسئله:
یک سایت خیلی خوب در مورد طراحی تیتراژ که با انتخاب تیتراژ یک فیلم، با سازنده‌ی اون تیتراژ مصاحبه‌ انجام میده و کلن خوبه! حالا مسئله‌اش کجاست؟! این وبلاگ اجازه دانلود ویدئوها رو نمیده، بزارین با یک مثال موردی بگم چه خبره کلن.
این آدرس یکی از پست هاش:
http://www.artofthetitle.com/title/manhattan/

حالا اگه با مرورگر فایرفاکس به‌روز، روی ویدئوی اون بالا کلیک راست کنین و Inspect Element  بزنین، میتونین به کد HTML اون قسمت دسترسی داشته باشین. پایین‌تر از کد تصویر یه کد دیو میبینین به این شکل:
<div style="padding-top: 56.2963%;" class="fluid-width-video-wrapper">
     <iframe id="video104536690" class="video" src="http://player.vimeo.com/video/104536690?api=1&amp;player_id=video104536690&amp;title=0&amp;byline=0&amp;portrait=0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" frameborder="0">
     </iframe>
</div>
خب، ویدئوی ما در یک تگ src گذاشته شده:
http://player.vimeo.com/video/104536690?api=1&player_id=video104536690&title=0&byline=0&portrait=0
که اگه کلیک کنین روش با یک پیغامی مبنی بر اینکه این یک ویدئوی محدود شده است، روبرو میشین:

Sorry

Because of its privacy settings, this video cannot be played here.

اگه اون لینک رو تو سایت های مبدل لینک هم بزارین، بازم نمیتونین دانلودش کنین.
[من از مولتی شیر استفاده میکنم و نمیشه، پس طبیعتاً فرض رو بر این قرار دادم که تکنولوژیه همشون عین همه]

پس تنها راه اینه که بشینین مثله بچه آدم تو همون سایت ویدئو رو ببینین یا:

مرحله 1:  لینک ویدئو رو تو سایت‌های Video Grab بزارین، یکی که من باهاش کار میکنم اینه:
 این سایت لینک رو تحویل میگیره و تمام فرمت هایی که از ویدئو موجوده، با کیفیت‌های مختلف، واستون لیست میکنه.
من بهترین کیفیت موجود که h264 هستش رو انتخاب میکنم، توجه کنین که این سایت تبدیل نمیکنه چیزی رو، فقط لینک سورس اصلی ویدئو رو واستون پیدا میکنه، پس بازم نمیتونین با IDM دانلودش کنین.
آدرس سورس ویدئو این هستش:
http://pdl.vimeocdn.com/03077/735/282489002.mp4?token2=1414847321_a6372a3d300708183382b4d2a52ddf41&aksessionid=588627c1e34d5d9f

مرحله 2: این لینک رو میگیرم میزارمش تو قسمت مدیریت فایل سایت مولتی شیر و پس از کسر حجم اون فایل، سایت اون رو خیلی سریع منتقل میکنه به سرور خودش و بعد یه لینک ازش میسازه که میتونم اون رو با IDM دانلود کنم.
تمام!

پ ن1: تموم اینا به خاطر اینه که سرعت اینترنت تو ایران پایینه، و احتمالا تو یه کشور متمدن و پیشرفته، به این مراحل نیازی نخواهید داشت!
 پ ن 2: پدر تجربه بسوزه! این راه منه، حتما راه‌های دیگه هم هست که ممکنه شما باهاش کار میکنین، خیلی خوشحال خواهم شد اگه با من به اشتراک بزارین تجربه‌ی خودتون رو.

Tuesday, October 28, 2014

روش دانلود ویدئوهای youtube و vimeo

خب اول از همه فکر کنم باید بگم کلا قصه چی هست!

مسئله اول: دیدن ویدئو واسه موشن گرافیست، مثله نون شب واجبه، با دیدن کارهای جدید، کلی چیز یاد میگیرین و کلی ایده میتونین پیدا کنین، به قول اساتید، حافظه‌ی بصری‌تون میره بالا.

مسئله دوم: سرعت اینترنت تو ایران اونقدر بالا نیست که بشه باهاش ویدئو رو آنلاین دید، یا حداقل وسعمون نمیرسه خدا تومن پول بدیم اینترنت 10 مگابایت بخریم. پس مجبوریم دانلود کنیم و بعد بشینیم ببینیم!

مسئله سوم: اکثر سایت‌های اشتراک ویدئو مثل Vimeo یا youtube لینک‌هایی که میدن به بروزر، لینک‌های موقت هستند، یعنی لینکی که دانلود منیجرتون گیر آورده واسه دانلود پس از مدتی، منقضی میشه و نیاز به یه لینک جدید داره. این واسه یه ویدئوی 300 مگابایتی یعنی، دردسر.
تازه نکته اصلی اینه که اکثر سایت‌های اشتراک ویدئو فیلتر هستند و بخاطر همین مجبورین که IDM رو به وی پی ان یا  پروکسی وصل کنین که یعنی سرعت بسیار بسیار پایین.

حالا چاره چیه؟!!!

استفاده از سایت‌های مبدل لینک: سایت هایی که لینک‌ها رو بهشون میدین و اونها لینک رو تبدیل میکنن به یه لینک قابل دانلود به صورت لینک مستقیم! همین.
این یعنی صرفه‌جویی بسیار زیاد در زمان و حتی هزینه (نمیدونین چند بار مجبور شدم یه ویدئوی یوتیوب رو از اول دانلود کنم!).
تو اینرنت اگه یه گوگل کنین یه عالمه سایت میان که این کار رو میکنن واستون با هزینه‌ای واقعا به صرفه، مثل:
www.mul.ir/
www.rapidpars.com/
www.filegir.com/
http://rapidbaz.ir/

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


Monday, October 20, 2014

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

حتما واسه شما هم پیش اومده که تو یه پروژه افترافکت بخواین مثلا فاصله نقطه A  تا نقطه B رو تو 10 ثانیه نشون بدین.
یه شمارنده هم میخواین که فاصله این دو نقطه رو که 30 تا هستش، واستون بشماره.




روش کار:

1ـ یه text layer بسازین و از توی منوی effect در قسمت Expression Controls افکت Slider Control رو بهش بدین.
2ـ تو قسمت Source Text اون لایه که ساختین، رو آیکون Stop Watch کلید Alt رو نگه دارین و کلیک کنین تا قسمت Expression لایه باز بشه و این کد رو Past کنین.
number = effect("Slider Control")("Slider");
Math.floor(number);
Math.floor رو واسه این استفاده میکنیم که عدد برگشتی یه عدد صحیح باشه.
3ـ حالا تو Slider Control از هر تایمی که میخواین کی فریم بدین، افتر افکت تو لایه Text اون عدد رو میزاره.

به همین راحتی، در ضمن باید بگم که این راهه منه، خوشحال میشم راه های دیگه رو هم بدونم.
برای توضیحات کاملتر و همچنین یادگیری اسکریپت نویسی در افتر افکت میتونین به سایت motion script مراجعه کنید.