post

معرفی موتور بازی ساز یونیتی

معرفی موتور بازی ساز یونیتی

موتور بازی ساز یونیتی 3

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

ساخت بازی با این موتور بازی ساز بسیار ساده است چرا که بیشتر کار در محیط ویژوال انجام می شود، یعنی حدود 80 درصد کار بدون کدنویسی انجام می شود و تنها حدود 20 درصد کار کدنویسی است، که این موضوع باعث جذب بسیاری از کاربران علاقه مند به بازی سازی شده است که علم زیادی در برنامه نویسی ندارند.

 

ویرایشگر اسکریپت

این موتور بازی ساز از نرم افزار mono که یک نرم افزار متن باز ویرایشگر زبان های برنامه نویسی است به عنوان ویرایشگر زبان برنامه نویسی استفاده می کند، این نرم افزار بسیار قدرتمند است و کاملا با موتور بازی ساز یونیتی هماهنگ شده است ،مهمترین قابلیت های این نرم افزار در لیست زیر معرفی شده است

  • پیشنهاد دهنده خودکار کلمات
  • سیستم دیباگینگ پیشرفته
  • پشتیبانی کامل از زبان سی شارپ
ویراشیگر اسکریپت mono
ویراشیگر اسکریپت mono

 

 

زبان برنامه نویسی

یونیتی از جمله موتور های بازی ساز است که می تواند از زبان های برنامه نویسی معروف پشتیانی کند، زبان های برنامه نویسی سی شارپ (C#.net) ، جاوااسکریپت (javascript) و زبان برنامه نویسی بو(BOO) که یک زبان از خانواده زبان برنامه نویسی پایتون(Python) می باشد در یونیتی قابل استفاده هستند.

زبان برنامه سی شارپ (C#.net)  یکی از قدرتمند ترین زبان های برنامه نویسی است که قابلیت شی گرایی ( objectOreinted)   و به واسطه این قابلیت ، قابلیت هایی همچون ارث بری را دارد، این قابلیت ها در پروژه های بزرگ برنامه نویسی بسیار سودمند هستند.

آبجکت ها و مدل ها

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

Blender (.blend),

Maya (.mb, .ma),

Cheetah3d (.jas)

3dsMax(.3ds,.max)

اما فایل های FBX فایل های اصلی مورد استفاده یونیتی است که برای مدل های متحرک استفاده می شود، این فایل توسط بسیاری از نرم افزار های سه بعدی مانند 3dsmax و maya تولید می شود.

همچنین یونیتی قابلیت استفاده از بافت ها(texture) با پسوند jpg،png،dds, ، psd و…  را دارد.

 

shader

یونیتی بطور پیش فرض 40 شیدر که بیشترین استفاده در بازی های روز را دارند همراه خود دارد، به عنوان نمونه می توان تعدادی از آنها را نام برد: Depht of field,Soft Particle,Glow,Specular,Bump Mapping,Paralax Mapping,Glass Shader .

اگر این شیدرها برای شما کافی نبود، شما می توانید به راحتی شیدر خود را بنویسید، این کار در یونیتی به وسیله Shaderlab که زبان CG و GLSL را پشتیبانی می کند انجام می شود.

عوارض زمین

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

عوارض زمین
عوارض زمین

 

 

فیزیک

یونیتی از موتور فیزیکی PhysX محصول شرکت NVIDIA استفاده می کند.

فیزیک در بازی وظیفه شبیه سازی جرم، اصطکاک، مقاومت هوا و سرعت را به عهده دارد، در یونیتی علاوه بر اینها فیزیک وظیفه شبیه سازی، لباس(پارچه)، اجسام نرم،اجسام سخت، اتصالات وشبیه ساز اتومبیل را بر عهده دارد.

اجسام سخت(Rigidbodies)

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

شبیه ساز اتومبیل

یونیتی این امکان را برای کاربران فراهم کرده است تا کاربران بتوانند بسیار ساده و سریع فیزیک مورد نیاز برای شبیه سازی حرکت اتومبیل را ایجاد کنند.

نور پردازی و سایه

نور و سایه  در یونیتی کاملا پویا است، قابلیت های استفاده شده در یونیتی باعث شده است تا بدون نگرانی از افت میزان فرم، از بهترین حالت نور و سایه استفاده کرد.

به وسیله میان افزار Beast می توان پس از ایجاد محیط بازی و نورپردازی ها در بازی یک lightmap کلی از محیط ایجاد کرد که این کار باعث بالا رفتن کیفیت سایه در بازی می شود، این میان افزار باعث می شود تا سایه ها و نور ها تنها در فضای نمایش داده شده توسط دوربین ایجاد شود و بقیه محیط که در دید دوربین نیست مورد پردازش قرار نگیرد،  این امکان در بسیاری از موتورهای گران قیمت بازی ساز نیز موجود است.

 

رندرینگ و افکت های تصویر

یونیتی از میان افزار Umbra  برای رند کردن تصاویر استفاده می کند، Umbra  یک میان افزار برای کنترل رندر است که برای بهبود عملیات رندر از تکنولوژی Occlusion Culling استفاده می کند و با این کار بازدهی بی نظیری در رندر ایجاد می کند، این میان افزار هم اکنون با پلتفرم های Xbox360،PS3 و PC سازگاری دارد.

Occlusion Culling یکی از بهترین و معروفترین تکنولوژی های برای بالابردن فریم ریت بازی هاست، در صورتی که بخواهیم به ساده ترین شکل ممکن Occlusion Culling را تعریف کنیم باید بگوییم هر چیزی که در دید دوربین است رندر میشود و تمام اجسامی که در خارج از دید آن هستند مورد پردازش قرار نمیگیرند، همین تعریف ساده نشان میدهد که این تکولوژی باعث بازدهی بسیار بالایی خواهد شد.

همچنین یونیتی به طور پیش فرض بسیاری از افکت های مورد نیاز دوربین در بازی را به همراه دارد که استفاده از این افکت ها باعث بالا رفتن کیفیت تصویر در بازی می شود، دوتا از مهمترین آنها عبارتند از:

Screen Space Ambient Occlusion (SSAO) image effect : این اسکریپت زمانی که بر روی دوربین استفاده شود باعث ایجاد سایه ناشی از نزدیکی دو جسم به یکدیگر به صورت realtime می شود که در زیبا تر جلوه دادن بازی بسیار مؤثر است.

Screen Space Ambient Occlusion
Screen Space Ambient Occlusion

 

Depth of Field Image Effect : ای اسکریپت باعث شبیه سازی لنز دوربین می شود به طوری که منطقه ای از دید دوربین واضح و بقیه مات می باشد، این افکت باعث طبیعی تر شدن دید دوربین می شود.

Depth of Field Image Effect
Depth of Field Image Effect

 

 

در زیر لیستی از افکت ها آمده است:

  • Blur image effect
  • Bloom and Flares Image Effect
  • Color Correction Curves image effect
  • Color Correction image effect
  • Contrast Enhance image effect
  • Contrast Stretch image effect
  • Crease image effect
  • Depth of Field Image Effect
  • Luminance Edge Blur image effect
  • Edge Detection image effect
  • Edge Detect Normals image effect
  • Fisheye image effect
  • Glow image effect
  • Grayscale image effect
  • Motion Blur image effect
  • Noise image effect
  • Sepia Tone image effect
  • Screen Space Ambient Occlusion (SSAO) image effect
  • Sun Shafts image effect
  • Twirl image effect
  • Vignetting Image Effect
  • Vortex image effect

 

صدا در یونیتی

 

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

موتور بازی ساز یونیتی از فرمت های  ogg, wav, aif, mp3  پشتیبانی می کند اما برای اینکه صدای بازی بر روی تمامی پلتفرم ها اجرا شود بهتر است از فایل های mp3 در صدا گذاری بازی استفاده شود.

Audioclip بخش اصلی صدا گذاری در یونیتی است که از audiosource ها استفاده می کند، یه این نحو که ابتدا یک audiosource برای یک شی در بازی ایجاد می کنیم و بعد با استفاده از audioclip آن را کنترل می کنیم.

صدا در یونیتی
صدا در یونیتی

 

همه چیز تقریبا واضح است، قسمت 3d soundاگر انتخاب شده باشد صدا در محیط به صورت سه بعدی پخش می شود ، بدون در نظر گرفتن منو یا استریو بودن صدا، یعنی اگر شما به عنوان یک شنونده در بازی به شی نزدیک شوید که صدای سه بعدی پخش می کند ، با چرخش شما به دور تولید کننده صدا ، صدا بر اساس جایگاه شما در اسپیکر راست یا چپ پخش می شود.

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public AudioClip impact;
void OnCollisionEnter() {
audio.PlayOneShot(impact);
}
}

در مثال، impact یک متغیر از نوع Audioclip می باشد که یک Audisource در آن قرار دارد، این اسکریپت اگر به یک شی نسبت داده شود، آن شی پس از برخورد این صدا را برای یک بار پخش می کند، مثلا اگر این اسکریپت را به فشنگ(تیر) نسبت دهیم، تیر به محض برخورد با یک جسم دیگر این صدا را برای یک بار پخش می کند.

سیستم ذرات

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

  • Particle Emitter
  • Particle Animator
  • Particle Renderer

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

همچنین می توان برای ذرات قابلیت برخورد را نیز تعریف کرد، یعنی می توان برخورد ذرات با دیگر اجسام در محیط بازی را کنترل کرد که تمامی قابلیت های سیستم ذرات در یونیتی به وسیله اسکریپت نویسی قابل کنترل است.

سیستم ذرات
سیستم ذرات

 

 

پلتفرم های خروجی

یونیتی یک موتور بازی ساز چند پلتفرمه است، یعنی می تواند برای بسیاری از پلتفرم های موجود بازی را ایجاد کند.

امروزه تنها حدود 5 درصد کاربران بازی ها را بر روی کامپیوتر های شخصی اجرا می کنند و سهم بسیاری به کنسول های بازی و موبایل و وب می رسد.

یونیتی برای پلتفرم های زیر خروجی ایجاد می کند:

  • windows
  • Mac
  • Nintendo Wii
  • XBOX
  • PS3
  • IOS
  • Android
  • Web

تقریبا می توان گفت که یونیتی برای تمامی پلتفرم های موجود خروجی بازی تولید می کند، که از لحاظ تجاری بسیار مهم است به خصوص اجرای بازی بر روی وب و به صورت چند کاربر (network) که باعث جذب کاربران بسیار می شود، تعدادی از بازی های موجود در شبکه اجتماعی facebook توسط موتور بازی ساز یونیتی ایجاد شده است.

از جمله بازی های ساخته شده برای وب توسط یونیتی می توان به بازی های زیر اشاره کرد:

  • Battlestar Galactica
  • Fusion Fall
  • BeGone
  • Marvel Superhero Squad Online
  • Paper Moon

به زودی یونیتی خروجی به صورت فلش با پسوند فایل swf را نیز به خروجی های خود اضافه خواهد کرد که این باعث می شود تا هر پلتفرمی که پخش کننده فایل های فلش را دارد بازی های خروجی گرفته شده از یونیتی را اجرا کند و این انقلابی در بازی های سه بعدی خواهد بود.

منابع آموزشی

یکی از برتری های موتور بازی ساز یونیتی داشتن فایل راهنما ( help)  بسیار قدرتمند است، این باعث می شود تا برنامه نویسی با یونیتی بسیار سریع و راحت انجام شود، این فایل راهنما ( help)  به همراه یونیتی پس از نصب به صورت آفلاین در دسترس برنامه نویس قرار می گیرد و تقریبا تمامی کلاس ها و متد های مورد استفاده یونیتی را به همراه مثال کاربردی به سه سی شارپ (c#.net) ، جاوااسکریپت (javascript)  و بو (BOO) را دارد.

همچنین در سایت یونیتی قسمت هایی برای پشتیبانی برنامه نویسی در نظر گرفته شده است که در صورت داشتن هرگونه شوال می توان به آنها مراجعه کرد .

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

 

قیمت

موتور بازی ساز یونیتی با توجه به قابلیت های بسیاری که دارد دارای قیمت مناسب و ارزانی است، که این خود یکی از دلایل روی آوردن بازی سازیان به این موتور بازی ساز شده است.

این موتور بازی ساز در دو نسخه رایگان و غیر رایگان یا حرفه ای عرضه می شود، قیمت نسخه حرفه ای حدود 1500 دلار می باشد که البته برای بار اول باید این مبلغ را پرداخت کرد و برای نسخه های جدید تر نیازی به پرداخت دوباره نیست بلکه تخفیف بسیاری برای نسخه های بعدی به مشتری داده می شود.