آموزش سیستم‌های مدیریت موجودی C++ در آنریل انجین 5 - آخرین آپدیت

دانلود Unreal Engine 5 C++ Inventory Systems

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

ساخت یک سیستم موجودی فضایی قدرتمند و چندنفره در آنریل انجین

  • ایجاد یک سیستم موجودی فضایی کاربردی و آماده برای حالت چندنفره، شامل آیتم‌های قابل تجهیز (Equippable)، قابل انباشت (Stackable) و قابل ساخت (Craftable)!

  • ساخت و مدیریت سیستم‌های موجودی (اینونتوری) در موتور بازی‌سازی آنریل انجین.

  • کدنویسی سیستم‌های تعامل با آیتم به روشی مستحکم و مقیاس‌پذیر.

  • کدنویسی سیستم‌های موجودی و آیتم چندنفره (Multiplayer).

  • ایجاد شبکه‌های موجودی فضایی با دسته‌بندی آیتم‌ها.

  • پیاده‌سازی آیتم‌های قابل انباشت، مصرفی (Consumable) و قابل تجهیز.

پیش‌نیازهای دوره

  • دانش C++ در آنریل انجین الزامی است.

  • فضای دیسک کافی برای نصب آنریل انجین 5 و سیمبل‌های دیباگینگ.

  • استفاده از Rider IDE (برای استفاده‌های غیرتجاری رایگان است!).

در این دوره، شما نحوه ایجاد سیستم‌های اینونتوری (موجودی) برای بازی‌های خود در آنریل انجین 5 را با استفاده از C++ و بلوپرینت‌ها خواهید آموخت.

ما یک موجودی فضایی با شبکه‌های آیتم برای دسته‌بندی‌های مختلف (قابل تجهیز، مصرفی و قابل ساخت) و قابلیت جابجایی بین این شبکه‌ها را ایجاد خواهیم کرد. آیتم‌ها می‌توانند اندازه‌های متفاوتی داشته باشند و هر کدام تعداد متفاوتی از خانه‌های شبکه را اشغال کنند. همچنین آیتم‌ها قابلیت انباشت (Stackable) خواهند داشت که امکان تقسیم، ترکیب، مصرف و انداختن آیتم‌ها را فراهم می‌کند.

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

منابع و دارایی‌های دوره

دارایی‌های (Assets) مورد نیاز برای این دوره ارائه شده‌اند که شامل موارد زیر است:

  • تمامی مدل‌های سه‌بعدی (3D Meshes) برای آیتم‌های مورد استفاده، از جمله معجون‌های مصرفی، شنل‌ها، ماسک‌ها و اسلحه‌های قابل تجهیز، و مواد اولیه قابل ساخت.

  • تمامی تکسچرهای دوبعدی (2D Textures) برای آیکون‌ها، ویجت‌ها، منوها، حاشیه‌ها و پیام‌ها.

  • افکت‌های Niagara برای برداشتن آیتم‌ها.

این پروژه از آنریل انجین 5.5 استفاده می‌کند و در آنریل انجین 5.6 نیز کار می‌کند؛ شما می‌توانید از جدیدترین نسخه آنریل انجین برای این دوره استفاده کنید!

ویژگی‌های برجسته این دوره آموزشی

  • شبکه‌های موجودی فضایی (Spatial Inventory Grids) و قابلیت جابجایی بین چندین شبکه در موجودی برای نگهداری آیتم‌های دسته‌بندی‌های مختلف (ما آیتم‌های قابل تجهیز، مصرفی و قابل ساخت را پیاده‌سازی می‌کنیم).

  • سیستم "Item Fragment" که به کمک آن آیتم‌ها با افزودن "قطعات" ماژولار قابل شخصی‌سازی هستند تا قابلیت‌های خاصی به آن‌ها داده شود (این یک الگوی نرم‌افزاری شناخته شده در صنعت بازی‌سازی است). برای مثال، با افزودن یک Grid Fragment، آیتم قادر به اشغال چندین خانه در شبکه می‌شود؛ با افزودن یک Equippable Fragment، آیتم قابل تجهیز می‌شود و الی آخر.

  • پاپ‌آپ‌های راهنمای ابزار (Tooltip Popups) آیتم که ویژگی‌های آیتم را نمایش می‌دهند و استفاده از الگوهای طراحی برای ایجاد سیستمی بسیار منعطف که راهنماها با "فرگمنت‌های" آیتم سازگار می‌شوند تا اطلاعات آن را نمایش دهند.

  • قابلیت جابجایی آیتم‌ها در یک موجودی فضایی.

  • آیتم‌های قابل انباشت (Stackable Items) با تعداد انباشت (Stack Counts) (فقط کافی است یک Stackable Fragment اضافه کنید)، با پشتیبانی از حداکثر تعداد انباشت و قابلیت تقسیم، ترکیب و انداختن آیتم‌ها در موجودی.

  • آیتم‌های مصرفی (Consumable Items)، قابلیت مصرف و اعمال رفتارهای سفارشی پس از مصرف آیتم (ما معجون‌ها را پیاده‌سازی خواهیم کرد).

  • تجهیزات (Equipment) با اسلات‌های قابل تجهیز (Equippable Slots)، و تجهیز واقعی آیتم‌های مختلف (ما شنل‌ها، ماسک‌ها و اسلحه‌ها را پیاده‌سازی خواهیم کرد).

  • منابع (Assets) برای این دوره فراهم خواهند شد، از جمله کاراکتر، اسلحه‌ها، تجهیزات، معجون‌ها و آیتم‌های قابل ساخت، و همچنین تمامی تکسچرهای رابط کاربری (UI) برای ویجت‌های منوی موجودی. البته شما آزاد هستید که از منابع خودتان استفاده کنید!

  • همه چیز برای کار در یک محیط چندنفره (Multiplayer) برنامه‌نویسی شده است، هم برای سرور شنونده (Listen Server) و هم برای سرورهای اختصاصی (Dedicated Servers). همچنین در بازی‌های تک‌نفره (Standalone) نیز کار می‌کند.

  • آیتم‌ها کاربردی هستند - نه فقط بر آنچه در منوها می‌بینیم، بلکه بر آنچه در بازی اتفاق می‌افتد نیز تأثیر می‌گذارند. این سیستم به گونه‌ای کدنویسی شده است که انعطاف‌پذیر باشد و به شما امکان می‌دهد تا قابلیت‌های خاص خود را هنگام مصرف/تجهیز/استفاده از آیتم‌ها برنامه‌نویسی کنید، از جمله ادغام با سیستم قابلیت گیم‌پلی (Gameplay Ability System - GAS).

دانشجویان من به راحتی و با تلاش کم، این سیستم موجودی را در پروژه‌های خود ادغام کرده‌اند.

ما موضوعاتی از سطح متوسط تا پیشرفته C++ در آنریل انجین را پوشش خواهیم داد. اگر دوره من با عنوان "Unreal Engine 5 C++ The Ultimate Game Developer Course" را گذرانده‌اید یا دانش معادل آن را دارید، آماده شرکت در این دوره هستید!

همچنین به انجمن دیسکورد Druid Mechanics دسترسی خواهید داشت، جامعه‌ای که من برای دانشجویانم ایجاد کرده‌ام و طراحی شده تا مفیدترین منبع شما در طول یادگیری باشد. ما در حال حاضر بیش از 35,000 دانشجو داریم و این تعداد در حال افزایش است! همه ما اینجا هستیم تا به یکدیگر کمک کنیم!

امیدوارم از این دوره به همان اندازه که من از ساخت آن لذت بردم، لذت ببرید!

همین حالا شروع کنید و بیایید چند اینونتوری بسازیم!


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

Introduction

  • به دوره خوش آمدید! Welcome to the Course!

  • 1 - مقدمه بخش ۱ 1 - Section 1 Intro

  • ایجاد پروژه و دارایی‌ها Project Creation and Assets

  • مش سفارشی کاراکتر Custom Character Mesh

  • ایجاد یک پلاگین Creating a Plugin

  • کنترلر بازیکن موجودی Inventory Player Controller

  • اکشن تعامل اصلی Primary Interact Action

  • ویجت HUD The HUD Widget

  • کانال ردیابی آیتم Item Trace Channel

  • ردیابی آیتم‌ها Tracing for Items

  • پیام برداشتن Pickup Message

  • متریال برجسته‌سازی Highlight Material

HUD موجودی Inventory HUD

  • مقدمه بخش ۲ Section 2 Intro

  • کامپوننت موجودی Inventory Component

  • تغییر وضعیت موجودی Toggle Inventory

  • دکمه بستن Close Button

  • گرید موجودی Inventory Grid

  • دکمه‌های سوئیچر Switcher Buttons

  • اسلات‌های گرید Grid Slots

داده‌های موجودی Inventory Data

  • مقدمه بخش ۳ Section 3 Intro

  • سریالایزر آرایه سریع Fast Array Serializer

  • توابع آرایه سریع Fast Array Functions

  • فضایی در موجودی نیست No Room in Inventory

  • فضایی برای آیتم دارد Has Room for Item

  • RPCهای اضافه کردن آیتم Add Item RPCs

  • مانیفست آیتم Item Manifest

  • تگ‌های نوع آیتم Item Type Tags

  • هنگام اضافه شدن آیتم On Item Added

فرگمنت‌های آیتم Item Fragments

  • مقدمه بخش ۴ Section 4 Intro

  • فرگمنت آیتم Item Fragment

  • فرگمنت تصویر Image Fragment

  • بررسی گرید موجودی Inventory Grid Check

  • اضافه کردن آیتم به ایندکس‌ها Add Item To Indices

  • دریافت ابزارهای فرگمنت Get Fragment Utilities

  • آیتم اسلات‌گذاری شده Slotted Item

  • اضافه کردن آیتم اسلات‌گذاری شده به Canvas Add Slotted Item to Canvas

  • تکسچرهای اسلات گرید Grid Slot Textures

  • برای هر کدام 2D For Each 2D

  • فرگمنت قابل انباشت Stackable Fragment

  • تعداد انباشت Stack Count

  • به‌روزرسانی اسلات‌های گرید Updating Grid Slots

جستجو برای مکانی برای تعلق Searching for a Place to Belong

  • فضایی برای آیتم دارد - برنامه Has Room For Item - The Plan

  • آیا آیتم قابل انباشت است؟ Is the Item Stackable

  • چند انباشت باید اضافه شود؟ How Many Stacks to Add

  • خروج زودهنگام از حلقه Exiting the Loop Early

  • آیا ایندکس تصرف شده است؟ Is Index Claimed

  • در این ایندکس فضا وجود دارد؟ Has Room at Index

  • بررسی محدودیت‌های اسلات Check Slot Constraints

  • آیا ایندکس تصرف شده است... دوباره Is Index Claimed...Again

  • آیا اسلات گرید بالا سمت چپ است؟ Is Upper Left Grid Slot

  • آیا قابل انباشت است؟ Is Stackable

  • آیا نوع آیتم مطابقت دارد؟ Does Item Type Match

  • آیا اسلات در حداکثر ظرفیت است؟ Is Slot at Max Capacity

  • آیا در محدوده‌های گرید است؟ Is In Grid Bounds

  • تعیین مقدار پر کردن برای اسلات Determine Fill Amount for Slot

  • تکمیل نتایج Filling in the Results

  • یافتن اولین آیتم بر اساس نوع Find First Item by Type

  • آزمایش الگوریتم ما Testing our Algorithm

اضافه کردن انباشت Adding Stacks

  • تعداد کل انباشت Total Stack Count

  • هنگام برداشته شدن On Picked Up

  • هنگام تغییر انباشت On Stack Change

  • اضافه کردن انباشت Add Stacks

برداشتن Pick Up

  • مقدمه بخش ۷ Section 7 Intro

  • آیتم معلق Hover Item

  • آیتم اسلات‌گذاری شده کلیک شد Slotted Item Clicked

  • رویدادهای اشاره‌گر Pointer Events

  • اختصاص آیتم معلق Assign Hover Item

  • تعداد انباشت آیتم معلق Hover Item Stack Count

  • حذف آیتم از گرید Remove Item from Grid

آیتم معلق Hover Item

  • مقدمه بخش ۸ Section 8 Intro

  • پارامترهای کاشی Tile Parameters

  • موقعیت Canvas و ماوس Canvas and Mouse Position

  • مختصات معلق Hovered Coordinates

  • محاسبه ربع کاشی Calculate Tile Quadrant

  • هنگام به‌روزرسانی پارامترهای کاشی On Tile Parameters Updated

  • ابعاد آیتم معلق Hover Item Dimensions

  • محاسبه مختصات شروع Calculate Starting Coordinate

  • بررسی موقعیت معلق Check Hover Position

  • در محدوده‌های گرید In Grid Bounds

  • آیتم قابل تعویض دارد Has Swappable Item

  • مکان‌نما از Canvas خارج شد Cursor Exited Canvas

  • برجسته‌سازی و لغو برجسته‌سازی Highlighting and UnHighlighting

  • تغییر نوع معلق Change Hover Type

قرار دادن Put Down

  • مقدمه بخش ۹ Section 9 Intro

  • رویدادهای اسلات گرید Grid Slot Events

  • هنگام کلیک شدن اسلات گرید On Grid Slot Clicked

  • قرار دادن در ایندکس Put Down on Index

  • نمایش و پنهان کردن مکان‌نما Show and Hide Cursor

  • هنگام کلیک شدن آیتم اسلات‌گذاری شده On Slotted Item Clicked

  • تعویض با آیتم معلق Swap With Hover Item

  • آیا باید تعداد انباشت‌ها تعویض شود؟ Should Swap Stack Counts

  • تعویض تعداد انباشت‌ها Swap Stack Counts

  • مصرف انباشت‌های آیتم معلق Consume Hover Item Stacks

  • پر کردن انباشت‌ها Filling in Stacks

  • اسلات پر است Slot is Full

منوی Pop Up Pop Up Menu

  • مقدمه بخش ۱۰ Section 10 Intro

  • کلاس منوی Pop Up Pop Up Menu Class

  • رویدادهای ویجت Pop Up Pop Up Widget Events

  • دلیگیت‌های Pop Up آیتم Item Pop Up Delegates

  • تکمیل کلاس Pop Up آیتم Finishing the Item Pop Up Class

  • Blueprint Pop Up آیتم Item Pop Up Blueprint

  • ایجاد Pop Up آیتم Create Item Pop Up

  • اشاره‌گر ضعیف به Pop Up آیتم Weak Pointer to Item Pop Up

  • Callbacks تقسیم، رها کردن و مصرف Split Drop and Consume Callbacks

  • هنگام تقسیم منوی Pop Up On Pop Up Menu Split

رها کردن آیتم‌ها Dropping Items

  • مقدمه بخش ۱۱ Section 11 Intro

  • رها کردن آیتم Drop Item

  • رها کردن آیتم توسط سرور Server Drop Item

  • ایجاد آیتم رها شده Spawn Dropped Item

  • ایجاد Actor برای برداشتن Spawn Pickup Actor

  • تست رها کردن آیتم‌ها Test Dropping Items

  • رها کردن دستی آیتم‌ها Dropping Items Manually

مصرف آیتم‌ها Consuming Items

  • مقدمه بخش ۱۲ Section 12 Intro

  • هنگام مصرف منوی Pop Up On Pop Up Menu Consume

  • مصرف آیتم توسط سرور Server Consume Item

  • فرگمنت‌های قابل مصرف Consumable Fragments

توضیحات آیتم Item Description

  • مقدمه بخش ۱۳ Section 13 Intro

  • ویجت توضیحات آیتم Item Description Widget

  • معلق کردن و لغو معلق کردن برای آیتم‌های اسلات‌گذاری شده Hover and Unhover for Slotted Items

  • ایجاد توضیحات آیتم Creating an Item Description

  • تنظیم اندازه و موقعیت توضیحات آیتم Set Item Description Size and Position

الگوی Composite The Composite Pattern

  • الگوی Composite The Composite Pattern

  • راه‌اندازی الگوی Composite Setting up the Composite Pattern

  • جذب فرگمنت‌های موجودی Assimilate Inventory Fragments

  • فرگمنت تصویر The Image Fragment

  • فرگمنت متن The Text Fragment

  • فرگمنت عدد برچسب‌دار Labeled Number Fragment

  • اصلاح‌کننده‌های مصرف Consume Modifiers

  • تکمیل توضیحات آیتم Completing the Item Description

تجهیز آیتم‌ها Equipping Items

  • مقدمه بخش ۱۵ Section 15 Intro

  • اسلات‌های گرید تجهیز شده Equipped Grid Slots

  • قابلیت معلق Hover Functionality

  • Blueprintهای اسلات گرید تجهیز شده Equipped Grid Slot Blueprints

  • آیکون خاکستری شده Grayed Out Icon

  • اضافه کردن اسلات‌های گرید تجهیز شده Adding Equipped Grid Slots

  • ایجاد یک آیتم قابل تجهیز Creating an Equippable Item

  • فرگمنت تجهیزات Equipment Fragment

  • آیا می‌تواند آیتم معلق را تجهیز کند؟ Can Equip Hover Item

  • آیتم اسلات‌گذاری شده تجهیز شده Equipped Slotted Item

  • اندازه ترسیم آیتم اسلات‌گذاری شده Slotted Item Draw Size

  • ایجاد ویجت آیتم اسلات‌گذاری شده Creating the Slotted Item Widget

  • تکمیل OnItemEquipped Finishing OnItemEquipped

  • ایجاد آیتم اسلات‌گذاری شده تجهیز شده Creating the Equipped Slotted Item

  • تجهیز شنل Equipping the Cloak

  • برنامه‌ریزی EquippedSlottedItemClicked Planning EquippedSlottedItemClicked

  • آیتم‌های برای تجهیز و خارج کردن از تجهیز Items to Equip and Unequip

  • حذف آیتم اسلات‌گذاری شده تجهیز شده Remove Equipped Slotted Item

  • ساخت آیتم اسلات‌گذاری شده تجهیز شده Make Equipped Slotted Item

  • انتشار دلیگیت‌های کلیک اسلات Broadcast Slot Clicked Delegates

  • مورد خاص - تعویض با آیتم‌های معتبر Edge Case - Swapping with Valid Items

  • مورد خاص - تغییر دسته‌بندی‌ها Edge Case - Switching Categories

کامپوننت تجهیزات Equipment Component

  • کامپوننت تجهیزات Equipment Component

  • فراخوانی توابع تجهیز Calling Equip Functions

  • Actor تجهیز Equip Actor

  • ایجاد Actor تجهیز Spawning the Equip Actor

  • از بین بردن Actor تجهیز Destroying the Equip Actor

  • زمان‌بندی چرخه عمر Actor Timing Actor Lifecycles

  • Actor مش Proxy Proxy Mesh Actor

  • زمان‌بندی مش Proxy Timing the Proxy Mesh

  • Blueprint مش Proxy Proxy Mesh Blueprint

  • نمایش کاراکتر Character Display

  • Blueprint نمایش کاراکتر Character Display Blueprint

  • پنهان کردن نقطه Hiding the Dot

  • برخورد مش کاراکتر Character Mesh Collision

  • توضیحات آیتم تجهیز شده Equipped Item Description

  • ایجاد آیتم‌های بیشتر Creating More Items

  • سخنرانی جایزه: از اینجا به کجا برویم Bonus Lecture: Where to go from here

نمایش نظرات

آموزش سیستم‌های مدیریت موجودی C++ در آنریل انجین 5
جزییات دوره
25 hours
167
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
3,540
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Stephen Ulibarri Stephen Ulibarri

مهندس، برنامه نویس، توسعه دهنده بازی، نویسنده