SlideShare a Scribd company logo
Gameplay Tags
Что мы можем сделать с тегами?
Типы урона и сопротивления к ним
Что мы можем сделать с тегами?
Типы урона и сопротивления к ним
Точки интереса
Что мы можем сделать с тегами?
Типы урона и сопротивления к ним
Точки интереса
Задания
Что мы можем сделать с тегами?
Типы урона и сопротивления к ним
Точки интереса
Задания
Достижения
Что мы можем сделать с тегами?
Типы урона и сопротивления к ним
Точки интереса
Задания
Достижения
Всё, на что способно ваше воображение!
Избегаем лишние Cast’ы
Избегаем лишние Cast’ы
Избегаем лишние Cast’ы
Actor/Component Tags
Системы для работы с тегами
Gameplay Tags
Actor/Component Tags
Actor Tags Component Tags
Actor/Component Tags
Actor/Component Tags
Actor/Component Tags
Gameplay Tags
Gameplay Tags
DefaultEngine.ini
[Gameplay Tags]
ImportTagsFromConfig=true;
UE 4.13 UE 4.15
Gameplay Tags
UE 4.13 UE 4.15
Gameplay Tags
из *.INI
Gameplay Tags
из *.INI из DataTable
Gameplay Tags
Gameplay Tags
Gameplay Tags в 4.13
Gameplay Tags в 4.13
Gameplay Tags в 4.13
Gameplay Tags в 4.13
Gameplay Tags в 4.13
using UnrealBuildTool;
public class BP : ModuleRules
{
public BP(TargetInfo Target)
{
PublicDependencyModuleNames.AddRange(new string[]
{
"Core", "CoreUObject", "Engine", "InputCore", "UMG",
“GameplayTags”,
});
}
}
Gameplay Tags в 4.13
class BP_API AGameplayTagsAcot : public Actor, public
IGameplayTagAssetInterface
Gameplay Tags в 4.13
class BP_API AGameplayTagsAcot : public Actor, public
IGameplayTagAssetInterface
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GameplayTags")
FGameplayTagContainer GameplayTagContainer;
Gameplay Tags в 4.13
class BP_API AGameplayTagsAcot : public Actor, public
IGameplayTagAssetInterface
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GameplayTags")
FGameplayTagContainer GameplayTagContainer;
virtual void GetOwnedGameplayTags(FGameplayTagContainer& TagContainer)
const override
{ TagContainer = GameplayTags; return; }
Gameplay Tags
Gameplay Tag Gameplay Tag Container
Gameplay Tags
Gameplay Tags
Gameplay Tags
Gameplay Tags
ВСЕМ СПАСИБО!

More Related Content

PDF
TopGear Russia: video 2013
PDF
Rubylight programming contest
PDF
особенности работы с Locomotion в Unreal Engine 4
PDF
концепт и архитектура геймплея в Creach: The Depleted World
PPTX
Опыт разработки VR игры для UE4
PPTX
Организация работы с UE4 в команде до 20 человек
PDF
Data Driven Gameplay in UE4
PPTX
Code and Memory Optimisation Tricks
TopGear Russia: video 2013
Rubylight programming contest
особенности работы с Locomotion в Unreal Engine 4
концепт и архитектура геймплея в Creach: The Depleted World
Опыт разработки VR игры для UE4
Организация работы с UE4 в команде до 20 человек
Data Driven Gameplay in UE4
Code and Memory Optimisation Tricks

More from Sperasoft (20)

PPTX
The theory of relational databases
PPTX
Automated layout testing using Galen Framework
PDF
Sperasoft talks: Android Security Threats
PDF
Sperasoft Talks: RxJava Functional Reactive Programming on Android
PDF
Sperasoft‬ talks j point 2015
PDF
Effective Мeetings
PDF
Unreal Engine 4 Introduction
PDF
JIRA Development
PDF
Introduction to Elasticsearch
PDF
MOBILE DEVELOPMENT with HTML, CSS and JS
PDF
Quick Intro Into Kanban
PDF
ECMAScript 6 Review
PDF
Console Development in 15 minutes
PDF
Database Indexes
PDF
Apache Hadoop 1.1
PDF
Evolution of Game Development
PDF
Apache Cassandra
PDF
Test Methods
PDF
Unity3D Scripting: State Machine
PDF
Unity Programming
The theory of relational databases
Automated layout testing using Galen Framework
Sperasoft talks: Android Security Threats
Sperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft‬ talks j point 2015
Effective Мeetings
Unreal Engine 4 Introduction
JIRA Development
Introduction to Elasticsearch
MOBILE DEVELOPMENT with HTML, CSS and JS
Quick Intro Into Kanban
ECMAScript 6 Review
Console Development in 15 minutes
Database Indexes
Apache Hadoop 1.1
Evolution of Game Development
Apache Cassandra
Test Methods
Unity3D Scripting: State Machine
Unity Programming
Ad

Gameplay Tags

Editor's Notes

  • #2: Всем кек! Большинство из нас так или иначе слышали о тегах, но далеко не многие используют их. Причиной тому является не знание того как их можно использовать и как это может обернутся для нас выгодой. В основном многие люди с которыми я разговаривал считают, что теги используются для фильтрации данных в играх, но на самом же деле, с тегами можно делать очень много крутых вещей.
  • #3: Таких как: Типы урона и сопротивления к ним, может ли противник получить повреждения огнем или другим типом урона.
  • #4: Точки интереса, без необходимости создания под каждую точку нового блюпринта.
  • #5: Задания, а в точности размечать принадлежность объектов к заданиям.
  • #6: Достижения
  • #7: Все, на что способно ваше воображение и возможности связать это с тегированием!
  • #8: Отдельным пунктом стоит выделить возможность использовать теги, взамен Cast’aм. Рассмотрим следующий пример, представим что мы делаем РПГ и Инвентарь у нас представлен отдельным Actor’ом который хранит в себе вещи в виде компонентов. Допустим для завершения квеста нам необходимо чтобы у персонажа был определенный предмет. Как бы мы поступили в классическом случае применении Cast’a.
  • #9: Брали все компоненты по классу у Actor’a инвенторя, после чего каждый бы из них кастили к определенному классу Item’a. После чего запрашивали бы принадлежность к квесту. И в случае нахождения выдавали награду.
  • #10: В случае использование тегов, можно решить данную задачу следующим образом. Взять все компоненты у Actor’a инвентаря, которые обладают тегом нашего квеста. В случае нахождения таковых, выдать награду. Тем самым сэкономив ресурсы компьютера и сделав блюпринт или ваш код более простым.
  • #11: Поняв возможности которые предоставляют нам системы тегирования, рассмотрим их подробнее. Unreal Engine 4 имеет две встроенных системы тегирования. Первая система пришла еще с Unreal Engine 3, и называется Actor/Component tags, в коммьюнити чаще о ней говорят просто как о тегах. Позже в Unreal Engine 4 появилась вторая система Gameplay Tags, которая к сегодняшнему дню, получила очень большое развитие, как со стороны производительности так и со стороны удобства использования ее в наших проектах. Рассмотрим каждую из них подробнее.
  • #12: Это базовая система тегирования, которая изначально есть у любого Actor’a или Component’a. Она представляет из себя обычный массив FNam’ов, который мы можем настроить в Class Defaults.
  • #13: Для работы с данной системой мы можем использовать следующие функции. Get Tags - Возвращает все теги Actor’a Get Component Tags - Возвращает все теги Component’a
  • #14: Get Components by Tags - Возвращает все компоненты Actor’a с искомым тегом Actor Has Tag - Проверяет наличие тега у Actor’a
  • #15: Get All Actors with Tag - Возвращает все Actor’ы мира у которых есть искомый тег