در این مقاله قصد داریم پرکاربردترین پکیجهای موجود در پنجره پکیج منیجر (Package Manager) را معرفی کنیم. تمام پکیجهای معرفی شده از طریق پکیج منیجر از مسیر زیر قابل نصب هستند:
Window > Package Manager
Timeline
این قابلیت یونیتی که نسبتا جدید به حساب میآید مخصوص کسانی است که دوست دارند کاتسینهای (Cutscene) زیبایی در بازی خود خلق کنند. با استفاده از تایملاین دیگر نیاز نیست برای ایجاد کاتسین از نرمافزارهای دیگر استفاده کنید. به راحتی در داخل یونیتی میتوانید کاتسین بسازید.
با تایملاین به راحتی صحنههای کوجیمایی خلق کنید!
تایملاین یک دارایی است که توسط پنجره مخصوص خود ساخته میشود. برای باز کردن پنجره تایملاین از منوی بالای یونیتی گزینه Window > Sequencing > Timeline را انتخاب کنید. سپس با انتخاب هر گیمآبجکتی که میخواهید با آن کار کنید و زدن دکمه Create، یک دارایی تایملاین برای آن گیمآبجکت میسازید و همزمان آن گیمآبجکت به یک نمونه تایملاین (Timeline Instance) تبدیل میشود. حالا پنجره تایملاین آماده است تا شما کاتسین خود را بسازید.
Cinemachine
سینهماشین مجموعهای از ماژولها برای هرچه بهتر کار کردن با دوربین در یونیتی است. این پکیج بسیاری از محاسبات پیچیده ریاضی و منطقی ردیابی و تلفیق هدفها و همچنین برش از یک نما به نمای دیگر توسط دوربین را حل کرده است. این پکیج طراحی شده تا به طور قابل توجهی میزان کدنویسی برای رفتارهای دوربین در بازیهای ما را کاهش دهد. شما وقتی تغییری در صحنه بازی خود ایجاد کنید، برای مثال انیمیشنی را تغییر دهید، سرعت یک وسیله نقلیه را بالا و پایین کنید، زمین (Terrain) را تغییر دهید و… سینهماشین به صورت پویا رفتار دوربین را به گونهای به روز میکند که بهترین نما را داشته باشید.
با سینهماشین هر نمایی که بخواهید بدست میآورید
سینهماشین تمام نماهای دوربین در ژانرهای مختلف نظیر اول شخص، سوم شخص، دوبعدی، ساید (Side)، بالا به پایین (Top Down) و ایزومتریک (Isometric) را پشتیبانی میکند. همینطور شما میتوانید ترکیبی از رفتارها را برای دوربین خود تنظیم کنید. سینهماشین به خوبی با دیگر ابزارهای یونیتی نظیر تایملاین، انیمیشن و پستپراسس (Post Processing) کار میکند.
برای استفاده از سینهماشین بعد از نصب آن، از طریق منوی بالای یونیتی و گزینه Cinemachine به تمامی امکانات آن دسترسی خواهید داشت.
Post Processing
پستپراسس یک پردازشگر فیلتر و افکت تمام صفحه است که بر روی تصویر گرفته شده از دوربین قبل از آنکه نمایش داده شود، اعمال میشود. با استفاده از این پکیج و با صرف زمان کمی به طرز فوقالعادهای بازی شما از لحاظ بصری بهتر میشود و به راحتی صحنههای سینمایی ایجاد میکنید.
تفاوت تصویرها گویای همه چیز است (نمای پایین: وقتی از پستپراسس استفاده کنیم)
افکتهای موجود در این پکیج عبارتاند از:
Ambient Occlusion
Anti-aliasing
Auto Exposure
Bloom
Chromatic Aberration
Color Grading
Motion Blur
Deferred Fog
Depth of Field
Grain
Lens Distortion
Screen Space Reflection
Vignette
پس از نصب این پکیج، کامپوننتهای آن جهت استفاده به یونیتی اضافه میشوند.
TextMesh Pro
یونیتی سیستم رابطکاربری (UI) کاملی دارد. این سیستم از متن، تصویر و دکمه تا منوی کشویی (Dropdown Menu)، نوار اسکرول (Scrollbar) و اسلایدر را پشتیبانی میکند. اما پکیج تکستمش پرو امکانات بیشتری برای کار با برخی عناصر رابطکاربری در اختیار ما قرار میدهد. این پکیج عناصر متن، دکمه، منوی کشویی و فیلد ورودی (Input Field) را با ویژگیهای بهتری ارائه میدهد.
برای استفاده از این پکیج پس از نصب آن، کامپوننتهایی برای هر عنصر به یونیتی اضافه میشود که میتوان آنها را به گیمآبجکتها متصل کرد.
ProBuilder
برای نمونهسازی (Prototyping) سریع بازی خود بهترین راه استفاده از پروبیلدر است. این ابزار مخصوص طراحان مرحله است تا ریتم مرحلههای خود را سریع و بدون درگیر شدن با جزییات هنری آن بچینند و تست کنند. با پروبیلدر شما به سرعت مرحله خودتان را با استفاده از اشکال هندسی سهبعدی آماده نظیر مکعب،کره، هرم، استوانه، چارچوب در، پله و… میسازید و با قراردادن کاراکتر بازی خود، مرحله را تست میکنید.
سریع پروتوتایپ کنید، بدون درگیر شدن با هیچ جزئیات اضافهای
همینطور APIهای مخصوصی برای آن طراحی شده که میتوانید با نوشتن اسکریپهایی، ابزارهای شخصی خودتان را برای پروبیلدر بسازید. بعد از نصب پروبیلدر، از طریق منوی بالای یونیتی گزینه Tools > ProBuilder به تمام امکانات آن دسترسی پیدا میکنید.
Polybrush
پروبیلدر و پلیبراش ابزارهای مکمل یکدیگرند. اگر به زبان ساده بخواهم پلیبراش را توضیح دهم، ابزاری است برای رنگآمیزی زمین یا هر مدل سهبعدی دیگری در داخل یونیتی. پلیبراش برای رنگآمیزی زمین با استفاده از انواع تکسچرها (Texture) بسیار مناسب است. همچنین تمام اشکال ساخته شده توسط پروبیلدر به وسیله پلیبراش قابل تکسچر شدن هستند. با استفاده از قلمی که این ابزار در اختیار شما قرار میدهد میتوانید مدلها را تکسچر کنید، با دادن پریفبهایی نظیر چمن و سنگ به آن جزییات به زمین خود اضافه کنید و حتی زمین خود را به صورت جزیی ویرایش کنید. مثلا پستی و بلندی به آن اضافه کنید.
نمونه ساخته شده پروبیلدر را با پلیبراش تکسچر کنید
پلیبراش بعد از نصب آن، از منوی بالای یونیتی گزینه Tools > Polybrush در دسترس است.
Shader Graph
یکی از سختترین قسمتهای برنامهنویسی بازیها نوشتن شیدر (Shader) است. به قدری که در تیمهای بازیسازی بزرگ حداقل یکی دو برنامهنویس به صورت خاص برای نوشتن شیدرهای بازی استخدام میشوند. یکی از مشکلات تیمهای مستقل نیز نداشتن برنامهنویس شیدر است. اما حالا این مشکل با استفاده از ابزار شیدر گراف کاملا حل شده است. با استفاده از شیدر گراف میتوان بدون کدنویسی و مبتنی بر نود (Node-base)، با ایجاد یک گراف، شیدر دلخواه خود را ساخت. همینطور این ابزار به اندازه کافی ساده طراحی شده است تا کاربران تازهکار نیز بتوانند با آن شیدر بسازند.
ساختن شیدر بدون کدنویسی و کاملا گرافیکی. به نظر جذاب میاد
برای کار با شیدر گراف پس از نصب پکیج آن، با راست کلیک کردن در پنجره مرورگر پروژه از گزینه Create > Shader میتوان یک شیدر گراف جدید ایجاد کرد.
این ها رو می شه از فروش گاه دارایی گرفت ولی نمی دونم چرا برای من تو ویرایش گر نمی ره اونی که بارگیری می کنم.
سلام دوست عزیز
بهترین روش دانلود و ایمپورت این پکیج ها از طریق پنجره Package manager هست. پیشنهاد می کنم از این طریق امتحان کنید.
خب همین منش رو در پیش گرفته تا الان که کسی نگاه جدی و حرفه ای بهش نداره! حالا بماند که آپدیت هایی هم که بیرون میده پر از باگ های عجیب غریبه! این کاریکاتور کاملا دست روی همین موضوع گذاشته : https://twitter.com/Nothke/status/1209507867163803650?s=20
من خودم به عنوان کسی که فیلد 3D Level Design رو پیگیری میکنه و علاقه داره، خیلی از توییت هایی که میبینه آدم مربوط میشه به اینترفیس Unreal! خیلی هاشون توی استودیو هستن خیلی هاشونم هم دارن رزومه میسازن ولی در هر صورت میدونن که برای بازی های AA به بالا یونیتی کسر شان حساب میشه و ترجیحا نمیخوان لوگوش روی کارشون بیاد! خیلی دردناکه این موضوع برای منی که دارم روی یونیتی کار میکنم و وقت سوییچ ندارم!
سلام
امیدوارم حالت عالی باشه دوست عزیز.
و همین ابتدا بگم از این که دوست فرهیخته و حرفهای مثل شما همراه ماست بسیار خوشحالم و لطفاََ همین طور همراهی کنید.
بعد از چندین سال کار کردن و ارتباط نزدیک با سازندهها میتونم بگم در کمال احترام این حرف شما درست نیست و باهاش مخالفم.
چون خودتون حرفهای هستید وارد جزییات نمیشم اما تعصب داشتن به یک موضوع چه از نوع منفی چه از نوع مثبت باعث میشه نگاهمون اینطوری باشه. باید از همه ابزارها در جای درستش با تشخیص و تصمیمگیری درست کمک گرفت.
همه اینها ابزار هستند و با توجه به شرایط و استراتژیهامون انتخابشون میکنیم. هیچ کدوم به خودی خود خوب یا بد نیستند و این انتخاب ما هست که همچنین معنایی رو به بار میاره.
به عنوان مثال من میتونم با توجه به نیاز و شرایطم به درستی از انجینی مثل Construct استفاده کنم و از نتیجه راضی باشم و نتیجه بگیرم Construct انجین خوبی هست و در مقابل میتونم با توجه به نیاز و شرایطم به اشتباه از انجینی مثل Unreal Engine استفاده کنم و راضی نباشم و نتیجه بگیرم که Unreal Engine انجین خوبی نیست.
چون خودتون حرفهای هستید بیشتر از این فنی صحبت نمیکنم. اضافه بر این که مثالهای زیاد از کار با کیفیت که با یونیتی ساخته شدند و استقبال رو به رشد از یونیتی، نشوندهنده این هستند که یا یونیتی هم مثل انجینهای دیگه میشه بازی خوب ساخت. پس ترجیح میدم متن رو بر اساس مسائل شناختی و رفتاری ادامه بدم.
معمولا در برخورد با اتفاقهای روزمره خطاهای شناختی زیادی داریم و به درستی و با دقت به حل مسئله نمیپردازیم چرا که بیشتر و به اشتباه از مغز قدیم خودمون بهره میبریم.
دنیایی که در اون زندگی میکنیم بر اساس عدم قطعیت بنا شده و در حال سپری شدن هست و چون نمیخوایم همیشه فکر کنیم و زحمت و دردسر داره میایم در ذهنمون برای موارد مختلف قانونگذاری میکنیم که فلان چیز بده، خوبه یا نباید سمتش رفت که بیشتر اوقات هم اشتباه هست.
به همین دلیل به دنبال این هستیم که بدون دردسر اثبات کنیم حرفمون درسته و از جامعه یا افراد برای اثبات درستی حرفهامون کمک میگیریم. در صورتی که لزوماََ ممکنه حرف اونها درست نباشه.
امیدوارم متوجه شده باشید که از چه زاویهای به موضوع نگاه کردم.
منتظر پاسخ احتمالی شما هستم.
موفق و سلامت باشی.
سلام آقای داداش نژاد، خیلی ممنون از پاسخ تون
من این صفحه رو باز نگه داشته بودم روی مرورگرم که بعدا لودش کنم ببینم کسی جواب داده یا نه 🙂
بنده عرض نکردم که آنریل خوبه یا یونیتی بده، گفتم بیشتر نمونه کارهایی که توی توییتر میبینم اینترفیس آنریل دارن، قطعا یه دلایلی توی پشت صحنه این انتخاب هست که یکیش بازار کاره.
توی ایران متاسفانه یا خوشبختانه یه تعداد کمی از تیم های بازی سازی سمت آنریل میرن (چون اکثرا در دنیای موبایل به سر میبرن!) ولی خب اون طرف به این شکل نیست، یعنی تقریبا میشه تعادل رو مشاهده کرد اما برای بازارکار بعضی از حوزه ها مثل Level design و Environment design انگار کفه ترازو سنگینی میکنه سمت جناب Unreal! آقای احسان ابراهیم زاده یکی از اساتید حرفه ای هستن که توی بخش Environment کار میکنن دقیقا توی پادکست Fancast گفتن که من برای رزومه م از Unreal استفاده کردم چون هم راحت تر بود برام و هم سریع تر از یونیتی به کیفیت مطلوب خروجی میرسیدم. آقای آرنو آذر هم که Level Designer هستن توی مصاحبه شون به استفاده از آنریل اشاره کردن هم توی دانشگاه هم توی پروژه شخصی.
از اون موقعی که این صحبت ها رو شنیدم با دقت بیشتری به نمونه کارها نگاه میکردم و متوجه شدم که دقیقا همین موضوع برای بقیه فعالان این حوزه صدق میکنه متاسفانه! درسته که بخش 3D یونیتی دیرتر اومد ولی خب این آپدیت های نسخه 2017 به بعدش داره هر روز کار رو بدتر از دیروزش میکنه، انگار داره زور میزنه خودش رو به عنوان یک نرم افزار فعال در حوزه گرافیک نشون بده در حالی که بک اندش داغونه!
آره خلاصه حقیقت برای من خیلی تلخ بود ولی خب نمیشینم غصه بخورم! باید بتونم محتوام رو اونقدر کیفیت ش رو بالا ببرم که اون بخش یونیتی ش اونقدر به چشم نیاد و حتی باعث بشه نگاه ملت بهش عوض بشه.
راستی یکی از کمبود های عجیب غریب یونیتی برای LD ها نداشتن کاراکتر با دوربین سوم شخص پیش فرض هست برای چرخیدن توی فضا! چیز به این سادگی رو باید Asset ایمپورت کنیم که کارمون راه بیوفته 🙂
سلام مجدد
نوروز مبارک و امیدوارم که سال خوبی رو برای خودتون بسازید.
ممنون که پاسخ دادین. از این که پاسخ دادن به کامنت شما براتون مهم بود تا جایی که حتی صفحه رو نبسته بودین تا متوجه پاسخ ما بشین، بسیار خوشحال شدم.
با شما موافقم و حرفهاتون رو قبول دارم. حرفهاتون درسته.
همونطور که پیشتر هم گفتم به نظرم اگر ابزارهامون رو با توجه به نیازهای پروژهمون انتخاب کنیم مسئله این که به زور بخوایم کارمون رو با یک ابزار انجام بدیم و حتی مسئله رزومه هم حل میشه چرا که ابزار مناسبی انتخاب کردیم.
فکر میکنم اگر بازیساز مستقل هستیم آزادی عمل بیشتری داریم و مجبور نیستیم لزماََ و حتماََ نرمافزارها و ابزارهای مختلف رو تست کنیم و خود پروژه و نیازهامون تعیین میکنه که از چه انجین و ابزارهایی باید استفاده کنیم. چه بسا در این حالت تجربه کسب کردن با انجین یا ابزاری که مورد نیازمون نیست وقت تلف کردن محسوب بشه. البته خواستم منظورم رو از نظر اولویتها و اهمیت موضوع برسونم وگرنه یاد گرفتن هیچ چیزی وقت تلف کردم نیست.
ولی به عنوان مثال اگر برنامهنویس یا لول دیزاینرهستیم و تخصص خاصی داریم که مسائل فنی و ابزار برامون مهم میشه بهتر هست با حداقل با هر دو انجین مطرح و ابزارهای متداول در بازار کار و در زمینه کاری خودمون تجربه کسب کنیم. این طوری حداقل دلیل رد شدن ما برای همکاری در انجام یک پروژه (توسط خودمون یا دیگران)، نداشتن تسلط به اون انجین یا ابزار نخواهد بود. در این حالت واقعاََ با یک برنامهریزی میان مدت و حتی کوتاه مدت که مصرانه پیگیری بشه، امکانش هست که به تسلط نسبی به انجین یا ابزاری که در کاربا اون تجربه نداریم برسیم. در این حالت این کار نه جنبه وقت تلف کردن، بلکه جنبه سرمایهگذاری داره.
ممنون که همراهمون هستید.
موفق و سلامت باشید.
سال نو شما هم مبارک باشه 🙂 من کلا یادم رفت بگم دیشب!
بله، میشه وقت گذاشت و انجین های دیگه رو یاد گرفت توی یک مدت زمان خاصی ولی خب حرکت هوشمندانه اون حرکتی هست که از همون اول ماجرا هدف دار باشه، یعنی طرف بدونه که مثلا دو سال دیگه من این شرکت میرم توی فلان جا، اون شرکت یونیتی کار میکنه پس من میرم سمت اون انجین.
توی ایران این مسئله یخورده خیالی به نظر میرسه! چون عملا اون کسی که تازه وارد حوزه GameDev میشه دسترسی به منابع جامع و مفید فارسی نداره، به خاطر همین به صورت پیش فرض رو میاره به سمت یونیتی (با توجه به حجم بالای آموزش های آبکی این انجین!)، حالا اینکه بعدش چی بشه، از کجا سر در میاره دیگه بعدها باید خودش بره سراغ رفرنس های خارجی تا ببینه انتخاب هاش درست بوده یا غلط!
یکی از حرکت های خوب توی این زمینه همین سایت شماست که تقریبا داره سعی میکنه منابع فارسی کاربردی برای ورود به این حوزه تهیه کنه ولی خب خیلی خیلی خیلی کمه!
من نمیدونم کسایی که میرن بالا دیگه نگاهی به پایین نمی ندازن که شاید کسی کمکی بخواد، سوالی داشته باشه و …
به طور مثال آقای سجاد ربیعی که متخصص FX توی Houdini هستن، 17 قسمت آموزش جامع و ریز به ریز این نرم افزار رو بعد از 3 سال کار باهاش و بعد از اینکه توی یک شرکت خارجی مشغول به کار شدن به صورت رایگان در اختیار هنرجوهاش و حالا بقیه علاقه مندان ضبط کردن و توی آپارات و یوتیوب قرار دادن! خیلی حرفه واقعا! (حالا اگه پولی هم میداد ملت قطعا سمتش میرفتن، مهم وقت گذاشتن ه)
من خودم الان تنها رفرنس م توی GameDev فارسی فقط پادکست fancast ه که برای اون طرف آبی ها یک برنامه مکمل حساب میشه نه برنامه اصلی! دیگه حالا سفره دلم رو باز نکنم که خیلی قضیه دارک میشه XD ولی خب برای خودم یک درسی شد که هر وقت حتی چهار قدم هم رفتم بالا بازم یک نگاهی به پایین بندازم چون خودم یک زمانی توی جایگاه همون آدم ها بودم!
اتفاقاََ این موضوع که شما به عنوان یک گیمدیزاینر یا هر متخصص دیگهای که مهم هست کار با انجینها و ابزارهای مطرح رو بلد باشی و برای یادگیریشون وقت بگذاری، به نظرم یکی از مصادیق هوشمندی هست.
پیشتر هم گفتم که شرایط میطلبه چه تصمیمی بگیریم و به همین علت نمیشه یک نسخه واحد برای همه پیچید ولی با توجه به اطلاعات و تجربه فکر کنم حرفهام و نظرم رو در این چند نظر مطرح کردم.
در رابطه با این که منابع فارسی کم هستند هم درست میگین و ما هم با دغدغه همراهی و کمک به دیگران و این که اشتباهات ما رو از ابتدا تکرار و تجربه نکنند وارد این مسیر شدیم. هم شعارمون و صحبتهامون که بخشی از اون در فوتر سایت هم اومده، نشوندهنده این موضوع هست.
امیدوارم که این فرهنگ کمک به دیگران مخصوصاََ همراهی کردن با تازهکارها، در بین همه اهالی صنعت بازیسازی نهادینه بشه. ما حرکتی رو شروع کردیم و با همراهی شما دوستان، در این که تاثیری هر چند اندک در این زمینه داشته باشیم بسیار خوشبین و امیدوار هستیم. یکی از خوبهای این کار که همیشه به بازیسازها بیمنت کمک کرده همونطور که گفتید آقای امیر حسین فصیحی هست و ما هم از کمکهای ایشون بسیار بهره بردیم.
موفق باشی دوست عزیز.
سلام آقای نظری، ممنون از وقتی که گذاشتین برای این مطلب،
با توجه به بررسی هایی که خودم شخصا برای ProBuilder انجام دادم (لینک: https://twitter.com/aminmntazeri/status/1239475413090533376?s=20) به این نتیجه رسیدم که یونیتی تا جای ممکن از امکانات کم خرج استفاده میکنه! به طور مثال اگه دوستان قابلیت های UModeler رو توی Asset Store ببینن خیلی راحت میفهمن که ProBuilderای که یونیتی خریداری کرده و آورده توی پکیج منیجرش، عملا کاری از دست ش برنمیاد جز مدلینگهای ساده و همینطور تعمیر برخی از مش های ایمپورت شده! با توجه به محدودیت هایی هم که داره سرعت مدلینگ رو به شدت پایین میاره!
حالا اینکه اون Asset پولیه و دسترسی بهش سخته یه قضیه دیگس.
سلام ممنون از اینکه مقاله رو خوندید و همین طور ممنون از اینکه پکیج Umodeler رو معرفی کردید. یکی از سیاست هایی که خیلی برای یونیتی مهمه و ما توی مقاله ی “بازی سازی با یونیتی” بهش اشاره کردیم، این هست که همه بتونن باهاش بازی بسازن نه فقط افراد حرفه ای و باتجربه. همون طور که گفتین این پکیج امکان بیشتری نسبت به پروبیلدر داره و احتمالا حرفه ای ها سریع تر می تونن باهاش مدلینگ انجام بدن اما پروبیلدر در عین اینکه تمام چیزی که برای پروتوتایپ نیاز دارید رو بهتون میده بسیار ساده هست و همه می تونن ازش استفاده کنن. در مورد خریداری پکیج ها و ابزارها هم ما باید به سیاست های یونیتی و همین طور شرکت فروشنده رجوع کنیم. بعضی از شرکت ها درامدی که از فروش روزانه پکیجشون دارند خیلی زیاد هست و براشون نمی صرفه تا زمانی که فروش دارند امتیاز کامل پکیج رو به یونیتی بفروشند.