آموزش Unreal Engine 5 C++: برنامه‌نویسی پیشرفته رابط کاربری فرانت‌اند - آخرین آپدیت

دانلود Unreal Engine 5 C++: Advanced Frontend UI Programming

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

ساخت رابط کاربری و تجربه منوی فرانت‌اند AAA در آنریل انجین 5 با C++ و Common UI

در این دوره جامع، یک سیستم رابط کاربری فرانت‌اند با کیفیت AAA و تمام‌عیار را کاملاً از پایه با استفاده از چارچوب Common UI آنریل انجین 5 و C++ خواهید ساخت. از منوهای لایه‌ای گرفته تا پشتیبانی کامل از گیم‌پد، یاد خواهید گرفت که چگونه رابط‌های کاربری فراگیر و ماژولار طراحی شده برای پروژه‌های واقعی را ایجاد کنید.

آنچه در این دوره خواهید آموخت:

  • راه‌اندازی یک چارچوب UI ماژولار با استفاده از سیستم Common UI آنریل انجین 5 و C++.
  • ایجاد و مدیریت ویجت‌ها با استفاده از پشته‌های ویجت (Widget Stacks) به همراه تگ‌های گیم‌پلی (Gameplay Tags) و بارگذاری ناهمزمان (Async Loading).
  • توسعه یک منوی تنظیمات کاملاً کاربردی شامل:
    • ناوبری تب‌ها (Tab Navigation).
    • پنل جزئیات پویا (Dynamic Details Panel).
    • دسته‌بندی‌های تنظیمات ماژولار (Modular Setting Categories).
  • پیاده‌سازی سیستم تنظیمات کاربر بازی (Game User Settings) برای ذخیره و بارگذاری مقادیر پیکربندی.
  • ساخت یک سیستم کامل بازنگاری ورودی (Input Remapping).
  • استفاده از پیش‌پردازنده‌های ورودی (Input Preprocessors) برای تشخیص و پردازش پویا ورودی بازیکن.
  • ایجاد صفحه بارگذاری اولیه (Start Up) و صفحه بارگذاری حین بازی (In-Game Loading Screen).
  • استفاده بهینه از Common Activatable Widget، Widget Stacks، Common Text Block و سایر عناصر Common UI.
  • ساخت اشیاء داده سفارشی (Custom Data Objects) برای تولید آیتم‌های لیست (List View Item Generation).

پیش‌نیازها:

داشتن تجربه اولیه با برنامه‌نویسی C++ در آنریل انجین ضروری است.

در ابتدا، پایه و اساس اصلی UI را راه‌اندازی خواهید کرد. ما یک ویجت طرح‌بندی اصلی ایجاد می‌کنیم، پشته‌های ویجت را با استفاده از تگ‌های گیم‌پلی ثبت می‌کنیم و توابع ناهمزمان را برای نمایش ویجت‌ها روی صفحه پیاده‌سازی خواهیم کرد. پس از آماده شدن این موارد، یک صفحه واکنش‌گرا "Press Any Key" (هر کلیدی را فشار دهید) می‌سازید و آن را با جریان ویجت جدید خود نمایش می‌دهید.

در مرحله بعد، یک سیستم منوی اصلی پویا ایجاد خواهید کرد. از دکمه‌های Common UI که توسط کلاس‌های C++ بومی پشتیبانی می‌شوند، برای افزودن توضیحات متنی دکمه‌ها، دکمه‌های عملیاتی و یک صفحه تأیید انعطاف‌پذیر استفاده خواهیم کرد. همچنین اطمینان حاصل می‌کنیم که پشتیبانی کامل از گیم‌پد به طور یکپارچه ادغام شود. در طول مسیر، یاد می‌گیرید که چگونه ویژگی‌های UI را به شیوه‌ای ماژولار و قابل استفاده مجدد برای هر دو پروژه‌های بلوپرینت و C++ ساختاربندی کنید.

پس از اتمام منوی اصلی، به ساخت یک منوی تنظیمات قدرتمند می‌پردازید. این سیستم شامل دکمه‌های تب در بالا، یک پنل نمایش جزئیات در سمت راست و پشتیبانی از دسته‌بندی‌های مختلف تنظیمات از جمله گیم‌پلی، صدا، گرافیک و ورودی خواهد بود. یاد خواهید گرفت که چگونه اشیاء داده را با سیستم Data Registry آنریل ترکیب کنید تا UI را به صورت پویا پر کنید.

پس از راه‌اندازی ساختار، بر روی عملکرد تمرکز خواهیم کرد. شما منطق بازنشانی مقادیر به حالت پیش‌فرض را پیاده‌سازی می‌کنید، نحوه تولید ویجت‌های ورودی لیست را سفارشی‌سازی می‌کنید و یک سیستم سفارشی تنظیمات کاربر بازی (Game User Settings) ایجاد می‌کنید تا ترجیحات بازیکن را در فایل‌های پیکربندی ذخیره و بارگذاری کنید.

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

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


سرفصل ها و درس ها

Introduction

  • مقدمه Introduction

  • برخی سوالات متداول که ممکن است داشته باشید... Some Common Questions You May Have...

  • Common UI چیست؟ What is Common UI?

  • ایجاد یک پروژه C++ Create a C++ Project

  • چگونه کمک بگیریم؟ How to Get Help?

راه‌اندازی Common UI Set Up Common UI

  • نمای کلی بخش راه‌اندازی Common UI Set Up Common UI Section Overview

  • راه‌اندازی نقشه تست Set Up Test Map

  • کنترلر بازیکن فرانت‌اند Frontend Player Controller

  • تنظیم هدف دید Set View Target

  • تگ‌های گیم‌پلی Widget Stack Widget Stack Gameplay Tags

  • ویجت طرح‌بندی اصلی Primary Layout Widget

  • بیشتر درباره Transient... More On Transient...

  • ثبت Widget Stack Register Widget Stack

  • کمک‌کننده دیباگ Debug Helper

  • ساب‌سیستم UI فرانت‌اند Frontend UI Subsystem

  • Push کردن Soft Widget به Stack به صورت Asynchronous Push Soft Widget To Stack Async

  • اکشن Asynchronous در Blueprint BP Async Action

  • پیاده‌سازی اکشن Asynchronous Implement Async Action

  • طرح‌بندی الگو Template Layout

  • صفحه "فشار دادن هر کلید" Press Any Key Screen

  • انیمیت کردن صفحه "فشار دادن هر کلید" Animate Press Any Key Screen

  • تنظیمات توسعه‌دهنده Developer Settings

  • کتابخانه توابع فرانت‌اند Frontend Function Library

  • کار اشتراکی: پیشرفت خود را به اشتراک بگذارید Share Task: Share Your Progress

  • جمع‌بندی بخش Section Wrap Up

منوی اصلی Main Menu

  • نمای کلی بخش منوی اصلی Main Menu Section Overview

  • دریافت پیکربندی ورودی مطلوب Get Desired Input Config

  • پایه دکمه مشترک Common Button Base

  • بلوپرینت ویجت دکمه Button Widget Blueprint

  • ویجت منوی اصلی Main Menu Widget

  • هنگام فشار دادن هر کلید On Any Key Pressed

  • سبک متن دکمه Button Text Style

  • متن توضیحات دکمه Button Description Text

  • ویجت متن توضیحات Description Text Widget

  • دکمه‌های عملیاتی مرتبط Bound Action Buttons

  • داده ورودی مشترک Common Input Data

  • قبل از استفاده از گیم‌پد... Before using Gamepad...

  • تست با گیم‌پد Testing with Gamepad

  • صفحه تایید Confirmation Screen

  • شیء اطلاعات صفحه تایید Confirm Screen Info Object

  • راه‌اندازی صفحه تایید Init Confirm Screen

  • Push کردن Native صفحه تایید به Modal Stack Native Push Confirm Screen To Modal Stack

  • Push کردن صفحه تایید در Blueprint به Modal Stack BP Push Confirm Screen To Modal Stack

  • بلوپرینت ویجت صفحه تایید Confirm Screen Widget Blueprint

  • خروج از بازی Quitting The Game

  • چالش بخش: صفحه داستان Section Challenge: Story Screen

  • راه‌حل: صفحه داستان Solution: Story Screen

  • جمع‌بندی بخش Section Wrap Up

  • رفع مشکلات منو Fix Menu Issues

  • چالش اختیاری: پنجره تایید جدید Optional Challenge: New Confirmation Window

منوی گزینه‌ها Options Menu

  • نمای کلی بخش منوی گزینه‌ها Options Menu Section Overview

  • راه‌اندازی صفحه گزینه‌ها Set Up Options Screen

  • دکمه‌های عملیاتی سفارشی مرتبط Custom Bound Action Buttons

  • اتصال دکمه‌های عملیاتی مرتبط Binding Bound Action Buttons

  • ویجت لیست تب مشترک Common Tab List Widget

  • بلوپرینت ویجت لیست تب Tab List Widget Blueprint

  • شیء داده لیست List Data Object

  • مجموعه اشیاء داده لیست List Data Object Collection

  • رجیستری داده‌های گزینه‌ها Options Data Registry

  • دریافت یا ایجاد رجیستری Get or Create Registry

  • مدیریت ایجاد تب Handle Tab Creation

  • تست تب‌ها با گیم‌پد Testing Tabs With Gamepad

  • هنگام انتخاب تب گزینه‌ها On Options Tab Selected

  • چالش اختیاری: تب جدید Optional Challenge: New Tab

  • جمع‌بندی بخش Section Wrap Up

تب گیم‌پلی Gameplay Tab

  • نمای کلی بخش تب گیم‌پلی Gameplay Tab Section Overview

  • Common List View Common List View

  • پایه ویجت ورودی لیست List Entry Widget Base

  • بلوپرینت ویجت ورودی لیست List Entry Widget Blueprint

  • شیء داده رشته‌ای String Data Object

  • تنظیم آیتم‌های منبع لیست Set List Source Items

  • نگاشت ورودی لیست داده‌ها Data List Entry Mapping

  • هنگام تولید ویجت ورودی On Generate Entry Widget

  • ویجت ورودی رشته‌ای String Entry Widget

  • بلوپرینت ویجت ورودی رشته‌ای String Entry Widget Blueprint

  • هنگام تنظیم آیتم لیست On List Item Set

  • گزینه‌های دینامیک رشته‌ای String Dynamic Options

  • هنگام مقداردهی اولیه شیء داده On Data Object Initialized

  • مقداردهی اولیه ویجت ورودی رشته‌ای Initialize String Entry Widget

  • هنگام کلیک روی دکمه On Button Clicked

  • انتقال به گزینه بعدی Advance To Next Option

  • هنگام تغییر شیء داده لیست مالک On Owning List Data Object Modified

  • تنظیمات کاربر بازی Game User Settings

  • کمک‌کننده تعامل داده Data Interaction Helper

  • تنظیم‌کننده و دریافت‌کننده دینامیک داده Data Dynamic Setter and Getter

  • ساخت کمک‌کننده تعامل Construct Interaction Helper

  • اعمال تنظیمات Apply Settings

  • هنگام هاور یا انتخاب آیتم On Item Hovered Or Selected

  • Native On List Entry Widget Hovered Native On List Entry Widget Hovered

  • تغییر حالت هایلایت Toggle Highlight State

  • انتخاب این ویجت ورودی Select This Entry Widget

  • ویجت نمای جزئیات Details View Widget

  • بلوپرینت ویجت نمای جزئیات Details View Widget Blueprint

  • پر کردن نمای جزئیات Populate Details View

  • به‌روزرسانی نمای جزئیات Update Details View

  • مقدار پیش‌فرض داده Data Default Value

  • منطق بازنشانی داده Data Reset Logic

  • جمع‌آوری داده‌های قابل بازنشانی Gather Resettable Data

  • هنگام کلیک روی دکمه بازنشانی On Reset Button Clicked

  • بازنشانی داده‌ها Reset Data

  • تست لیست گزینه‌ها با گیم‌پد Test Options List With Gamepad

  • تغییر مقدار از طریق گیم‌پد Modify Value Through Gamepad

  • بازیابی فوکوس برای گیم‌پد Regain Focus For Gamepad

  • نمایش تصویر توضیحات Display Description Image

  • چالش اختیاری: تنظیم جدید با تصویر توضیحات جدید Optional Challenge: New Setting with New Description Image

  • جمع‌بندی بخش Section Wrap Up

تب صوتی Audio Tab

  • نمای کلی بخش تب صوتی Audio Tab Section Overview

  • ورودی لیست هدر Header List Entry

  • بلوپرینت ویجت ورودی لیست هدر Header List Entry Widget Blueprint

  • پیدا کردن داده‌های لیست فرزند به صورت بازگشتی Find Child List Data Recursively

  • آیا آیتم قابل انتخاب یا ناوبری است؟ Is Item Selectable Or Navigable

  • ویجت ورودی مقیاسی Scalar Entry Widget

  • بلوپرینت ویجت ورودی مقیاسی Scalar Entry Widget Blueprint

  • شیء داده مقیاسی Scalar Data Object

  • ساخت شیء داده مقیاسی Construct Scalar Data Object

  • مقداردهی اولیه ویجت ورودی مقیاسی Initialize Scalar Entry Widget

  • متغیرهای پیکربندی صدا Volume Config Variables

  • نکاتی برای تنظیم حجم صدای کلی Hints on Setting the Overall Volume

  • تنظیم مقدار فعلی از اسلایدر Set Current Value From Slider

  • تغییر حالت هایلایت ورودی مقیاسی Toggle Scalar Entry Highlight State

  • بازنشانی داده‌های مقیاسی Reset Scalar Data

  • حجم صدای موسیقی Music Volume

  • چالش بخش: حجم صدای افکت‌های صوتی Section Challenge: Sound FX Volume

  • شیء داده بولی رشته‌ای String Bool Data Object

  • ساخت شیء داده بولی رشته‌ای Construct String Bool Data Object

  • استفاده از حالت صوتی HDR Use HDR Audio Mode

  • تست تب صوتی با گیم‌پد Test Audio Tab With Gamepad

  • کار اشتراکی: پیشرفت خود را به اشتراک بگذارید Share Task: Share Your Progress

  • جمع‌بندی بخش Section Wrap Up

تب ویدئو Video Tab

  • نمای کلی بخش تب ویدئو Video Tab Section Overview

  • چالش‌های پیش رو Challenges Ahead

  • اجرای بنچمارک سخت‌افزاری Run Hardware Benchmark

  • شیء داده Enum رشته‌ای String Enum Data Object

  • ساخت شیء داده Enum رشته‌ای Construct String Enum Data Object

  • پکیج کردن پروژه Package Project

  • شیء داده رزولوشن Resolution Data Object

  • مقداردهی اولیه مقادیر رزولوشن Init Resolution Values

  • تبدیل رزولوشن به رشته مقدار Resolution To Value String

  • توصیف‌گر شرط ویرایش Edit Condition Descriptor

  • افزودن شرط ویرایش Add Edit Condition

  • هنگام تغییر حالت قابل ویرایش On Toggle Editable State

  • شرط ویرایش فقط برای بیلد پکیج Package Build Only Edit Condition

  • شرط ویرایش حالت پنجره Window Mode Edit Condition

  • ویرایش داده وابستگی Edit Dependency Data

  • به‌روزرسانی حالت قابل ویرایش ویجت Update Widget Editable State

  • نمایش گاما Display Gamma

  • شیء داده عدد صحیح رشته‌ای String Integer Data Object

  • کیفیت کلی Overall Quality

  • مقیاس رزولوشن Resolution Scale

  • کیفیت نورپردازی سراسری Global Illumination Quality

  • کیفیت سایه و Anti-Aliasing Shadow and Anti-Aliasing Quality

  • تنظیمات بیشتر برای کیفیت گرافیک More Settings for Graphics Quality

  • همگام‌سازی عمودی (Vertical Sync) Vertical Sync

  • محدودیت نرخ فریم Frame Rate Limit

  • جدول رشته‌ای String Table

  • تست تب ویدئو با گیم‌پد Test Video Tab with Gamepad

  • کار اشتراکی: پیشرفت خود را به اشتراک بگذارید Share Task: Share Your Progress

  • جمع‌بندی بخش Section Wrap Up

تب کنترل Control Tab

  • نمای کلی بخش تب کنترل Control Tab Section Overview

  • چالش‌های پیش رو Challenges Ahead

  • ثبت نگاشت ورودی Register Input Mapping

  • پرس و جوی کلیدهای قابل نگاشت Query Mappable Keys

  • فیلتر کردن کلیدهای قابل نگاشت Filter Mappable Keys

  • شیء داده نگاشت مجدد کلید Key Remap Data Object

  • ساخت شیء داده نگاشت مجدد کلید Construct Key Remap Data Object

  • ویجت ورودی نگاشت مجدد کلید Key Remap Entry Widget

  • بلوپرینت ویجت ورودی نگاشت مجدد کلید Key Remap Entry Widget Blueprint

  • به‌روزرسانی تصویر دکمه Update Button Image

  • دریافت آیکون از کلید Get Icon From Key

  • بازسازی (Refactor) حالت تغییر هایلایت Refactor Toggle Highlight State

  • هنگام کلیک روی دکمه نگاشت مجدد On Remap Button Clicked

  • صفحه نگاشت مجدد کلید Key Remap Screen

  • بلوپرینت ویجت صفحه نگاشت مجدد کلید Key Remap Screen Widget Blueprint

  • Push کردن صفحه نگاشت مجدد کلید Push Key Remap Screen

  • ثبت پیش‌پردازشگر ورودی Register Input Preprocessor

  • انواع کلیدهای مطلوب Desired Key Types

  • پردازش کلید فشرده شده Process Pressed Key

  • اطلاع‌رسانی به صفحه نگاشت مجدد کلید Notify Key Remap Screen

  • درخواست غیرفعال‌سازی ویجت Request Deactivate Widget

  • اطلاع‌رسانی به ورودی لیست نگاشت مجدد کلید Notify Key Remap List Entry

  • اطلاع‌رسانی به شیء داده نگاشت مجدد کلید Notify Key Remap Data Object

  • آیا می‌توانیم اتصال کلید را بازنشانی کنیم؟ Can Reset Key Binding

  • بازنشانی اتصال کلید Reset Key Binding

  • چالش بخش: نمایش ورودی‌های گیم‌پد Section Challenge: Display Gamepad Inputs

  • تست تب کنترل با گیم‌پد Test Control Tab With Gamepad

  • چالش اختیاری: تنظیمات بیشتر برای نگاشت مجدد کلید Optional Challenge: More Key Remap Settings

  • جمع‌بندی بخش Section Wrap Up

صفحه بارگذاری Loading Screen

  • نمای کلی بخش صفحه بارگذاری Loading Screen Section Overview

  • صفحه بارگذاری راه‌اندازی Start Up Loading Screen

  • تنظیمات صفحه بارگذاری Loading Screen Settings

  • بلوپرینت ویجت صفحه بارگذاری Loading Screen Widget Blueprint

  • ساب‌سیستم صفحه بارگذاری Loading Screen Subsystem

  • شیء جهان قابل تیک Tickable World Object

  • تلاش برای به‌روزرسانی صفحه بارگذاری Try Update Loading Screen

  • آیا صفحه پیش‌بارگذاری فعال است؟ Is Pre Load Screen Active

  • آیا باید صفحه بارگذاری را نمایش داد؟ Should Show Loading Screen

  • بررسی نیاز به نمایش صفحه بارگذاری Check The Need to Show Loading Screen

  • تلاش برای نمایش صفحه بارگذاری در صورت عدم وجود Try Display Loading Screen If None

  • تلاش برای حذف صفحه بارگذاری Try Remove Loading Screen

  • اطلاع‌رسانی تغییرات دید صفحه بارگذاری Notify Loading Screen Visibility Changed

  • رابط صفحه بارگذاری Loading Screen Interface

  • بلوپرینت ویجت صفحه اعتبارات (Credits) Credit Screen Widget Blueprint

  • اسکرول اعتبارات Scroll Credits

  • تغییر دوربین بر اساس تگ Switch Camera By Tag

  • چالش اختیاری: شخصی‌سازی Rich Text Optional Challenge: Customize Rich Text

  • جمع‌بندی بخش Section Wrap Up

تبریک Congratulations

  • پس‌زمینه UI متحرک Animated UI Background

  • از اینجا به کجا برویم؟ Where to go from here?

  • سفر C++ خود را ادامه دهید... Continue your C++ journey...

نمایش نظرات

آموزش Unreal Engine 5 C++: برنامه‌نویسی پیشرفته رابط کاربری فرانت‌اند
جزییات دوره
27.5 hours
209
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,629
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Vince Petrelli Vince Petrelli

برنامه نویس/هنرمند سه بعدی