گیم جابز

کاریابی در بازی‌سازی ایران

آموزش کار با موتور گرافیکی آنریل ( Unreal Engine ) “قسمت اول”

“به قلم وحید حیدری‌پور از مجله بازینامه”

مقدمه

موتور بازی‎سازی آنریل، یکی از معروف‎ترین موتورهای بازی‎ سازی است که توسط شرکت اپیک گیمز طراحی شده و توسعه داده می‎شود. این موتور اولین بار در سال ۱۹۹۸ در بازی اول شخص تیراندازی Unreal رونمایی شد. اگرچه موتور آنریل در درجه‎ی اول برای ساخت بازی‎های اول شخص تیراندازی ساخته شده‎، ولی حضور موفقیت آمیزی در مابقی ژانرهای بازی ‎های ویدئویی شامل stealth، MMORPG و سایر RPGها داشته ‎است. یکی از ویژگی‎های بارز و بسیار خوب موتور آنریل قابل حمل بودن بسیار بالای کدهایی است که که به زبان C++ در آن نوشته می‎شود. و به عنوان ابزاری کارآمد برای بسیاری از بازی‎سازان کنونی درآمده است.

نسخه‎ی کنونی موتور آنریل، Unreal Engine 4، برای DirectX 11,12 مایکروسافت ( برای ویندوز، Xbox One و ویندوز RT)، OpenGL ( برای سیستم عامل مک، لینوکس، PlayStation 4، IOS، Android، Ouya و ویندوز XP) و JavaScript/WebGL برای کار با HTML5 در browserهای وب طراحی شده‎است.

بازی آنریل، اولین بازی ساخته شده با موتور بازی‎سازی آنریل ۱:

بازی Killing Floor، ساخته شده با استفاده از موتور آنریل ۲:

بازی BioShock Infinite، ساخته شده با استفاده از موتور آنریل ۳:

و تصویری از مقایسه توانایی رندر گرافیکی موتورآنریل ۱، ۲ و ۳ با استفاده از مدل Malcom از بازی آنریل تورنمنت، آنریل تونمنت ۲۰۰۴ و آنریل تورنمنت ۳ در کنار هم:

شرکت اپیک گیمز چندی پیش در حرکتی خداپسندانه، آخرین نسخه از موتور آنریل را که تاکنون رایگان نبود(!) یعنی آنریل ۴ را به شکل رایگان و متن باز در اختیار عموم قرار داده است. مقاله‌ای که پیش روی شماست به عنوان متنی آموزشی سعی در ارائه‎ی مطالب مفید و کاربردی در مورد موتور آنریل ۴ دارد، با ما همراه باشید.

آشنایی با ادیتور آنریل ۴

برای شروع با ادیتور موتور آنریل ۴ آشنا می‌شویم، وقتی برای اولین بار ادیتور موتور آنریل ۴ را باز می‎کنیم با صفحه به این شکل روبرو می‎شویم:

همانطور که ملاحظه می‎کنید در قسمت پروژه‎ی جدید، دو سربرگ Blueprint و C++ وجود دارد، که در هرکدام گزینه‎های مختلفی موجود است. در صورتی که در سربرگ Blueprint یک پروژه‎ی خالی بسازیم، در ادامه خواهیم دید که چه اتفاقی خواهد افتاد. اما اگر سربرگ C++ و پروژه‎ی خالی را انتخاب کنیم مقادیری کد به زبان C++ به پروژه اضافه خواهد شد. در قسمت پایین صفحه مسیری که پروژه در آن ذخیره خواهد شد را انتخاب میکنیم و دکمه Create Project را می‎زنیم. حال اندکی صبر لازم است تا موتور فایل‎های مورد نیاز برای پروژه جدید را در مسیری که به آن داده‎اید کپی کند.

اگر شما هم مثل من پروژه‎ی خالی Blueprint را انتخاب کرده باشید با صفحه‎ی بالا روبرو خواهید شد. خب، ما یک مرحله‎ی خیلی خیلی ساده ساخته‎ایم، اولین چیزی که نظرِ شما را به خود جلب خواهد کرد و بیشترین بخش تصویر را هم شامل می‎شود Viewport است، که به عنوان چیزی که شما از دنیای سه بعدی خواهید دید به نمایش درمی‎آید. در سمت چپ و بالا، مانند بسیاری از نرم افزارهای دیگر منوهای اصلی را مشاهده می‎کنید. با کلیک بروی گزینه‎ی فایل منوی فایل به شکل زیر خواهد بود: 

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

با کلیک بروی گزینه ادیت، منوی زیر را خواهیم داشت:

که در آن گزینه‎های Editor Preferences و Project Settings، گزینه‎هایی هستند که می‎شود بروی آنها جزئی شد و درموردشان صحبت کرد. گزینه‎ی بعدی Window، بسیار پراهمیت است زیرا بخش‎های مختلف از رابط کاربری را می‎توان از این منو فعال یا غیرفعال کرد.

که بازهم درمورد هرکدام از بخش‎های آن می‎توان کاملاً جزئی سخن گفت. و در آخر منوی Help است که بسیار کاربردی است. در منوی Help اولین قسمت مستندسازی است که با استفاده از کلید F1 قابل دسترسی است.

این گزینه شما را مستقیماً به مستندات وب‌سایت متصل می‎کند. در مورد آموزش‌های مقدماتی می‎توانید از قسمت Tutorials استفاده کنید. از منوها که بگذریم به نوارابزاری که بالای Viewport قرار دارد می‎رسیم، که شامل کلیدهای پرکاربردی است و به شما این امکان را می‎دهد که با یک کلیک کاری که می‎خواهید را انجام دهید.

از چپ به راست کلید Save یا همان Ctrl+s خودمان که برای ذخیره‎سازی است. Source Control که به شما امکان متصل شدن به یک نرم‎ افزار کنترل پروژه را میدهد. Content که شما را به Content Browser خواهد برد و امکان استفاده از آن‎ها را مهیا می‎سازد.

Marketplace شما را به مارکت ‎های فروش Content متصل خواهد کرد. گزینه ‎ی بسیار مهم Settings که به شما این امکان را می‎دهد خیلی سریع تنظیماتی از Viewport و یا پروژه را تغییر دهید. گزینه‎ی Play که شما را به محیط Viewport می‎برد و هرآنچه که در بازی خواهید دید و شنید برایتان قابل شنیدن و رؤیت خواهد بود.

خب، بیایید دوباره به سمت چپ برویم، همانجایی که پنل Modes وجود دارد؛ 

به صورت پیش فرض بروی مود جایگذاری است، و به شما این امکان را می‎دهد تا اتفاقات مختلفی را در Viewport وارد کرده و جایگذاری کنید، برای مثال به قسمت Lights سری بزنید، یک نور مستقیم یا نقطه‎ای را انتخاب کنید و بکشید و در Viewport رها کنید و به صورت زنده تأثیری که بر محیط می‎گذارد را ملاحظه کنید.

در این بخش سربرگ‎های بعدی به ترتیب Paint، Landscape، Foliage و Geometry Editing هستند، که درمورد هرکدام به تفصیل صحبت خواهیم کرد.

بخش بعدی Content Browser، یا همان بخشی است که ما در آن محتواهایی که می‎خواهیم در پروژه استفاده کنیم را در آن می‎یابیم. به عنوان مثال اگر شما می‎خواهید بر روی آبجکت‎های موجود در پروژه‎تان، Material خاصی بدهید و یا در پروژه‎تان موسیقی داشته باشید، باید آن‎ها را ازین بخش بارگذاری کنید. در تصویر، من بروی StarterContent کلیک کردم و همانطور که می‎بینید در آن تعدادی پوشه وجود دارد. برای مثال اگر بروی پوشه Props دوبار کلیک کنم همه‎ی Propهای موجود در صحنه را برایم لیست می‎کند و درصورتی که بخواهم هرکدام از آنها را ادیت کنم، با دوبار کلیک بروی آن Prop این امکان برایم فراهم می‎شود.

که من بروی یکی از Meshها دوبار کلیک کرده و MeshEditor به شکل زیر ظاهر می‎شود.

حال بیایید سری به سمت بالا و راست بزنیم، World Outliner. این همان جایی است که همه‎ی آبجکت‎های موجود در مرحله‎ی شما را به شکل سلسله‎مراتبی در خود دارد. که با کلیک کردن بروی هرکدام از آنها همان آبجکت در صحنه به شکل خودکار انتخاب می‎شود و به شما امکان تغییر در آن را می‎دهد. برای مثال شما می‎توانید یکی از آبجکت‎ها را به عنوان Parent برای آبجکت دیگر مشخص کنید و به این ترتیب، هر تغییری بروی والد، بروی فرزندان آن هم اعمال خواهد شد.

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

آبجکت مورد نظرتان اعمال کنید.

این پنل شامل بخش‎های متنوعی برای ایجاد تغییرات دلخواه شماست، از تغییر مکان و اندازه و زاویه گرفته تا تغییر در Mesh و Material. که البته به همین جا خاتمه نمی‎یابد، ولی به دلیل محدودیت در تصویر به همین اندازه بسنده می‎کنم و مابقی را به شما واگذار می‎کنم.

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

حال در همان حالی که در Viewport هستیم، کلیک راست را نگه می‎داریم و به سمت چپ و راست و جلو و عقب حرکت می ‎دهیم. در حالتی که ماوس را به سمت چپ و راست حرکت می‎دهیم مشابه کلیک چپ خواهد بود، ولی زمانی که به سمت جلو و عقب حرکت دهید، نمای دوربین به سمت بالا و پایین حرکت می‎کند. در واقع با کلیک راست شما در جایتان ثابت هستید.

حالت بعدی استفاده از کلید میانی ماوس است ( که می‎توان به جای آن همزمان از کلیک چپ و راست هم استفاده کرد)؛ اگر می‎خواهید زاویه دوربین ثابت بماند و فقط در جایی که هستید به طرف بالا یا پایین و چپ و راست حرکت کنید، کلید میانی این کار را برایتان انجام خواهد داد.

در بالای Viewport گزینه‎هایی وجود دارد که شما را در کار کردن با Viewport یاری می‎دهد. مثلاً اگر حس می‎کنید سرعت دوربین زیاد است می‎توانید با استفاده از گزینه بالا سمت راست سرعت دوربین را تعیین کنید که به صورت پیش‎فرض بروی ۴ تنظیم شده‎است. 

راه دیگری که برای حرکت کردن در محیط Viewport وجود دارد استفاده از کلیدهای W،A،S و D است، بله، کلیدهای همراهمان در بازی‎های اول شخص تیراندازی. در همان حالی که کلیک چپ ماوس را نگه داشته‎اید، با استفاده از کلیدهای مذکور در محیط حرکت کنید. کلید E شما را مستقیماً به سمت بالا می‎برد، برای به خاطر سپردن، اول کلمه Elevator. کلید Q همان حرکت را عکس انجام می‎دهد. به خاطر داشته باشید که باید کلیک چپ ماوس را نگه داشته باشید، در غیر این صورت کلیدهای گفته‎شده شما را به هدفتان نمی‎رسانند. کلید C ( به همراه کلیک) برای زوم کردن استفاده می‎شود و FOV را تغییر می‎دهد، و برای زوم به سمت عقب از کلید Z استفاده می‎شود و به محض اینکه کلیک را رها کنیم به حالت عادی باز خواهیم گشت.

راه سوم استفاده از کلید Alt و کلیک ماوس است، کلید Alt را نگه دارید و با کلیک چپ به‎دور محوری که در صفحه وجود دارد حرکت خواهید کرد. اگر می‎خواهید که شی‌‎ای را به عنوان محور در صحنه داشته باشید برویش کلیک کنید و کلید F را بزنید، حال با استفاده از Alt و کلیک ماوس به دور آن بچرخید.

حال که با اشکال مختلف کار کردن با Viewport آشنا شدیم، بیایید درمورد Orthografic Views باهم صحبت کنیم. در بخش Viewport به بالای سمت راست دقت کنید، اگر مأوس خود را بروی مربع‎های کوچکی که در کنار سرعت دوربین هست نگه دارید با این جمله مواجه می‎شوید: Maximizes or restores this viewport. بروی آن کلیک کنید. با تصویر زیر روبرو خواهید شد.

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

با استفاده از کلید میانی مأوس می‎توانید بروی هریک زوم کنید و با استفاده از کلیک راست تصویر را جابه‎جا کنید. نکته‎ی جالبی که احتمالاً در هنگام جابه‎جا کردن متوجه آن خواهید شد این است که اشیای موجود در صحنه در هر سه نما همواره برخط خواهند ماند و خط سبز در نمای کناری با خط قرمز نمای جلو و به همین ترتیب با نماهای پایین همواره یکی است و با حرکت دادن یکی از نماها مابقی هم حرکت می‎کنند تا همه اشیای موجود در صحنه در یک خط بمانند. به صورت پیش فرض همه‎ی نماهای بدون عمق به شکل Wireframe نشان داده می‎ شوند. اگر روی دکمه‎ای که در سه نما به همین نام است کلیک کنید با حالات مختلفی روبرو می‎شوید. اگر خواستید که یکی از این نماها را به عنوان نمای اصلی انتخاب کنید و بزرگش کنید، از همان مربع کوچک که در گوشه بالاییِ نماست استفاده کنید. راه دیگری برای دسترسی به نماهای بدون عمق هست و آن این است که در نمای پرسپکتیو، بروی کلید Perspective کلیک کنید و هر سه نما را در این قسمت خواهید دید، هرکدام را که می‎خواهید انتخاب کنید.

کاربرد گسترده نماهای بدون عمق زمانی است که شما می‎خواهید با دقت بسیار زیاد آبجکت‎ها را در محیط قرار دهید. در کنار دکمه Perspective نوشته شده است Lit. به نظرتان این گزینه چیست؟ برویش کلیک می‎کنیم تا ببینیم.

همان ‎طور که ملاحظه می ‎کنید Wireframe که قبلاً با آن آشنا شدیم هم هست، بله، حالت‎های مختلف در نشان دادن نماها وجود دارد. که به شکل پیش‎فرض در حالت Lit قرار دارد. Lit حالتی است که نورپردازی را در محیط اعمال می‌کند و در واقع همان حالتی است که تاکنون می‎دیدیم. گزینه بعدی Unlit است، یعنی همان حالت Lit ولی بدون نورپردازی. حالت بعدی Wireframe است که به شما این امکان را می ‎دهد تا تمامی لبه‎های چندضلعی‎های موجود را مشاهده کنید. بعدی Detail Lighting است که تنها نورپردازی را به نمایش می‎گذارد. گزینه بعدی که به کارتان خواهد آمد Reflections است که بازتاب‎ها را به نمایش خواهد گذاشت. گزینه بعدی که به نظرم خوب است بدانید Exposure است، ماوس خود را برویش نگه دارید.

Exposure در موتور آنریل به صورت پیش فرض به شکل اتوماتیک است، سؤال خوبی است! این Exposure چیست؟ حتماً برایتان اتفاق افتاده است که وقتی در محیطی تاریک هستید و به محیطی با نوری بیشتر می‎روید شدت نور چشمتان را بزند یا اطراف را خیلی سفید حس کنید. این قابلیت در موتور آنریل به شکل پیش فرض وجود دارد. پس اگر محیطی که طراحی می‎کنید نور کمی دارد و می‎خواهید از این محیط کم نور به محیطی با نور بیشتر بروید، اگر این قابلیت را دوست ندارید Exposure را به صفر تغییر دهید.

گزینه بعدی Show است که لیست تعدادی از flagهای تغییرپذیر را در خود دارد.

همان‎طور که می‎ بینید می ‎توانید Anti-aliasing، BSP،Collision،Fog و مابقی اتفاقات را خاموش یا روشن کنید. در قسمت All Show flags می‎توانید همه این قابلیت‎ها را درکنار هم ببینید. پس پردازش، انواع نور و نورپردازی، مشخه‎های نوری و … با همه‎ی این قابلیت‎ها کار کنید و حداقل هرکدام را یکبار روشن و خاموش کنید، و نگران این نباشید که چیزی را خراب خواهید کرد. گزینه Use Defaults در هر حالی که باشید شما را به حالت پیش فرض برخواهد گرداند. 

حال بیایید اندکی درمورد اینکه چگونه آبجکت‎ها را در محیط چیدمان کنیم صحبت کنیم. برای این منظور به منوی فایل بروید، New Level و سپس Defualt را انتخاب می‎کنیم.

بر روی دسته‎ی بازی که در وسط صحنه است کلیک کنید و کلید Delete را فشار دهید. با استفاده از پنل سمت چپ می‎توان اشیایی را به محیط اضافه کرد. فقط کافی است یکی را انتخاب کنید، و بکشید و در Viewport رها کنید. البته سایز آبجکت‎ها نسبت به محیطی که ما داریم بزرگ است و به کمک پنل سمت راست می‎توانید اشیا را به اندازه دلخواه درآورید. و با استفاده از ابزارهای بالای Viewport به آن تغییر اندازه یا زاویه و … دهید. همچنین می‎توانید از Content Browser برای آوردن assetهای مختلف به محیط استفاده کنید. اگر خاطرتان باشد در Content Browser پوشه StarterContent را داشتیم. که برای شروع خوب است. برای مثال از پوشه Props یک Mesh انتخاب کنید و به محیط بیاورید. جالب است که به شکل پیش فرض بروی سطح قرار می‎گیرد، و یا یک میز در محیط بیاورید. دیگر نیازی نیست نگران این باشید که مبادا پایه‎های میز در سطح فرو رود یا بروی هوا بایستد، خودش می‎داند که باید بروی سطح قرار بگیرد. همچنین این امکان وجود دارد که در هر نقطه از محیط کلیک راست کنید و در قسمت Place Actor آبجکتی را در همان نقطه ایجاد کنید.

حال بیایید تا آبجکت‎هایی که به محیط آورده‎ایم را اندکی جابه‎جا کنیم، یک صندلی به محیط می‎آوریم. کلید W را بزنیم یا از نوار بالای Viewport کلید چهارجهته را انتخاب می‎کنیم.

سه کمانه در مرکز صندلی ظاهر می‎شود که امکان جابه‏‎جایی صندلی در سه جهت x، y و z را می‎دهد. اگر صندلی را اندکی بچرخانیم وسط سه کمانه صفحاتی را خواهیم دید که امکان حرکت دادن صندلی در آن صفحات را مهیا می‎کنند.

در قسمت پایین و چپ تصویر هم نشان‎گر کوچکی حاضر است تا محورهای مختصات را به شما یادآور شود. اگر آبجکت را از سطح جدا کردید نگران این نباشید که چطور آن را دوباره بروی سطح گردانید، راه‎های زیادی برای این کار وجود دارد که یکی از آنها استفاده از کلید End است. اگر اکنون کلید E را فشار دهید امکان چرخاندن شی برایتان مهیا می‎شود.

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

اگر بخواهم صندلی را در جهت محور z خودِ صندلی حرکت دهم به نظرتان چه باید بکنم، اگر من کمانه آبی رنگ را بگیرم و به سمت بالا یا پایین بکشم چه اتفاقی می‎افتد؟ این همان جایی است که مبحث سیستم مختصات محلی و جهانی پیش می‎آید. نظر شما را به کره‎ی کوچکی که در بالای تصویر در کنار ابزارهای حرکت دادن و چرخش و تغییراندازه قرار دارد جلب می‎کنم. این کره کوچک بیان‎گر این مسئله است که شما در سیستم مختصات جهانی هستید، یعنی اگر در جهت محور z صندلی را حرکت دهید در جهت محور z جهانی حرکت خواهد کرد. یک بار که برویش کلیک کنیم یک مکعب کوچک جایگزین کره می‎شود. و سیستم مختصات به سیستم محلی تغییر می‎کند.

همانطور که می‎بینید کمانه‎های مختصات در راستای ابعاد صندلی قرار گرفته‎اند. حال اگر در جهت z حرکت کنیم صندلی در جهت محور z خودش حرکت می‎کند. به راحتی می‎توانیم با استفاده از پنل Transform صندلی را به حالت اول بازگردانیم. و به این نکته توجه داشته باشیم که در محیط موتور آنریل واحد جابه‎جایی به سانتی‎متر است. اگر شما در پنل Transform و در قسمت Location مقدار x را به ۳۰۰ تغییر دهید آبجکت در راستای محور x به همان اندازه در واحد سانتی‎متر جابه‎جا خواهد شد.

وقتی صندلی را جابه‎جا می‎کنید حتماً متوجه شده‎اید که صندلی حرکتی بریده بریده دارد. انگار که بروی یک Snap Grid حرکت کند! بله، همینطور است، نظر شما را به قسمت بالایی تصویر و به صفحه شطرنجی که در کنارش عدد ۱۰ نوشته شده است جلب می‎کنم. این شکل که به رنگ نارنجی درآمده‎است بیان می‎کند که شما بروی یک Grid در حرکت هستید و گام حرکتتان ۱۰ سانتی‎متر است. اگر می‎خواهید می‎توانید گام‎تان را بلندتر بردارید و یا با غیرفعال کردن این دکمه آزادانه آبجکت را در محیط حرکت دهید.

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

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

با ما همراه باشید.

…………………………..

این مقاله در مجله تخصصی بازینامه تهیه شده است.

برگرفته شده از PardisGame

دسته ها: کتابخانه

فرستادن دیدگاه


GameDojo

آخرین پیام‌ها


گیم‌جابز را دنبال کنید





موقعیت های ویژه

  • استخدام توسعه‌دهنده Unreal...

      آنچه ما انجام می دهیم: ما با سابقه‌ای ۱۰ […]

  • استخدام برنامه نویس...

    Polydin Studio استودیوی بازیسازی پالیدین با هدف توسعه محصولات با […]

  • نریتیو دیزاینر (دورکار!)

    نیک اسپاد آفاق دورکاری دوستانی که به روایت داستان و […]

  • طراح باز موبایل...

    Mystory تهران با سلام  به یک طراح بازی موبایل سبک […]

  • استخدام انیماتور بازی...

    Polydin Studio تهران استودیوی بازی‌سازی پالیدین در شروع با هدف […]

  • NestJS) Back-End Developer-مشهد)

    استودیو طراحان سفید مشهد تقریبا ده سال پیش بود که […]

دسترسی سریع به







ارسال تازه‌ها به ایمیل شما

[wysija_form id="2"]