یونیتی (موتور بازی)

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
موتور بازی ساز یونیتی
انتشار پایدار ۴٫۱٫۵ / جون ۲۰۱۳
نوشته‌شده به سی++، جاوااسکریپت، سی‌شارپ
سیستم‌عامل ادابی فلش پلیر، ویندوز، لینوکس، اواس ده، ایکس‌باکس ۳۶۰، اندروید، پلی‌استیشن ۳، وی، و وی یو
حجم ۶۴۵ mb
گونه موتور بازی
پروانه

نرم‌افزار مالکیتی

cost aprox. $1,500 USD or $75/month subscription for 12 months
وب‌گاه Unity3d.com

یونیتی (به انگلیسی: Unity) جزو چهار موتور بازی ساز بزرگ می‌باشد که البته روز به روز در حال پیشرفت است، طی چند سال اخیر بسیاری از بازی سازان به سمت این موتور گرایش پیدا کرده‌اند، حتی در داخل کشور نیز بسیاری از شرکت‌های بازی سازی این موتور را به عنوان موتور بازی ساز خود انتخاب کرده‌اند و در حال ساخت بازی با این موتور بازی ساز هستند. ساخت بازی با این موتور بازی ساز بسیار ساده است چرا که بیشتر کار در محیط ویژوال انجام می‌شود، یعنی حدود ۸۰ درصد کار بدون کدنویسی انجام می‌شود و تنها حدود ۲۰ درصد کار کدنویسی است، که این موضوع باعث جذب بسیاری از کاربران علاقه‌مند به بازی سازی شده است که علم زیادی در برنامه نویسی ندارند.

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

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

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

زبان برنامه‌نویسی[ویرایش]

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

آبجکت‌ها و مدل‌ها[ویرایش]

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

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

همچنین یونیتی قابلیت استفاده از بافت با پسوند jpg ،png ،dd ،psd و… را دارد.

شیدر[ویرایش]

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

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

عوارض زمین[ویرایش]

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

فیزیک[ویرایش]

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

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

اجسام سخت(Rigidbodies)[ویرایش]

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

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

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

نور پردازی و سایه[ویرایش]

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

رندرینگ و افکت‌های تصویر[ویرایش]

یونیتی از میان افزار نیم‌سایه برای رندر کردن تصاویر استفاده می‌کند، نیم‌سایه یک میان افزار برای کنترل رندر است که برای بهبود عملیات رندر از تکنولوژی Occlusion Culling استفاده می‌کند و با این کار بازدهی بی نظیری در رندر ایجاد می‌کند، این میان افزار هم اکنون با پلتفرم‌های ایکس‌باکس ۳۶۰، پلی‌استیشن ۳ و PCسازگاری دارد. Occlusion Culling یکی از بهترین و معروفترین تکنولوژی‌های برای بالابردن فریم ریت بازی هاست، در صورتی که بخواهیم به ساده ترین شکل ممکن Occlusion Culling را تعریف کنیم باید بگوییم هر چیزی که در دید دوربین است رندر می‌شود و تمام اجسامی که در خارج از دید آن هستند مورد پردازش قرار نمی‌گیرند، همین تعریف ساده نشان می‌دهد که این تکولوژی باعث بازدهی بسیار بالایی خواهد شد. همچنین یونیتی به طور پیش فرض بسیاری از افکت‌های مورد نیاز دوربین در بازی را به همراه دارد که استفاده از این افکت‌ها باعث بالا رفتن کیفیت تصویر در بازی می‌شود، دوتا از مهمترین آنها عبارتند از:

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

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، mp۳ پشتیبانی می‌کند اما برای اینکه صدای بازی بر روی تمامی پلتفرم‌ها اجرا شود بهتر است از فایل‌های mp۳ در صدا گذاری بازی استفاده شود. Audioclip بخش اصلی صدا گذاری در یونیتی است که از audiosourceها استفاده می‌کند، یه این نحو که ابتدا یک audiosource برای یک شی در بازی ایجاد می‌کنیم و بعد با استفاده از audioclip آن را کنترل می‌کنیم.

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

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

پلتفرم‌های خروجی[ویرایش]

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

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

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

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

منابع آموزشی[ویرایش]

یکی از برتری‌های موتور بازی ساز یونیتی داشتن فایل راهنما بسیار قدرتمند است، این باعث می‌شود تا برنامه نویسی با یونیتی بسیار سریع و راحت انجام شود، این فایل راهنما به همراه یونیتی پس از نصب به صورت آفلاین در دسترس برنامه نویس قرار می‌گیرد و تقریباً تمامی کلاس‌ها و متدهای مورد استفاده یونیتی را به همراه مثال کاربردی به سه سی شارپ، جاوااسکریپت و بو (BOO) را دارد. همچنین در سایت یونیتی قسمت‌هایی برای پشتیبانی برنامه نویسی در نظر گرفته شده است که در صورت داشتن هرگونه سوال می‌توان به آنها مراجعه کرد. چندین شرکت ساخت فیلم آموزشی برای موتور بازی ساز نیز ساعت‌ها فیلم آموزشی ساخته‌اند، همچنین کاربران بسیاری در زمینه آموزش یونیتی فیلم ساخته و یا مقاله نوشته‌اند که تمامی آنها در اینترنت قابل دسترسی است.

قیمت[ویرایش]

موتور بازی ساز یونیتی با توجه به قابلیت‌های بسیاری که دارد دارای قیمت مناسب و ارزانی است، که این خود یکی از دلایل روی آوردن بازی سازیان به این موتور بازی ساز شده است. این موتور بازی ساز در دو نسخه رایگان و غیر رایگان یا حرفه‌ای عرضه می‌شود، قیمت نسخه حرفه‌ای حدود ۱۵۰۰ دلار می‌باشد که البته برای بار اول باید این مبلغ را پرداخت کرد و برای نسخه‌های جدید تر نیازی به پرداخت دوباره نیست بلکه تخفیف بسیاری برای نسخه‌های بعدی به مشتری داده می‌شود. همچنین می‌توان به صورت ماهیانه با پرداخت ۷۵ دلار لایسنس این موتور را خریداری کرد.

منابع[ویرایش]

http://en.wikipedia.org/w/index.php?title=Unity_(game_engine)&oldid=428773131