当前位置:网站首页>Ue5 gas learning notes 0.1 case Preview
Ue5 gas learning notes 0.1 case Preview
2022-07-28 18:37:00 【CloudHu1989】
List of articles
Preface
The last article has introduced what is GAS, What does it do , This article gives a preview of the three cases to be introduced later .
One 、GASDocumentation Case study
GASDocumentation The case is open source in Github Project on , It is also the early basis of this article , The author shared his thoughts on GAS The understanding of the , And made detailed documents and simple case presentations . The same author tranek, Made GASShooter, Yes GAS Has done a very good practical example . These two cases , A very detailed analysis will be made later .
GASDocumentation It includes a template project of a third person shooter game that supports multiplayer online , Its target audience is novice GameplayAbilitySystem plug-in unit , But not for Unreal Engine 5 Novice .
Users should know C++, The blueprint , UMG, Replication And others UE5 Middleware .
This project provides a sample , It shows you how to use GameplayAbilitySystem The plug-in establishes a basic third person shooter game that supports multiplayer online , among AbilitySystemComponent(ASC) They are located in PlayerState Class represents players /AI Controlled characters and located Character Class representative AI Controlled soldiers .
I'm making sure to show GAS Basic and some common skills represented by fully annotated code , Try to make this sample simple enough . Because this document focuses on beginners , Therefore, the sample does not include things like [Predicting Projectiles] Such high-order Technology .
Concept description :
ASCbe locatedPlayerStatestillCharacter.- Network synchronization
Attribute. - Montage of network synchronization (Animation Montages).
GameplayTag.- stay
GameplayAbilityInternal and external applications and removalGameplayEffect. - Use the damage value after being protected by armor to modify the character's HP .
GameplayEffectExecutionCalculations.- Vertigo effect .
- Death and rebirth .
- Use capabilities on the server (Ability) Generate projectiles (Projectile).
- When aiming and running , Predictably modify the speed of local players .
- Constantly expend endurance to run .
- Consume mana to use abilities (Ability).
- Passive ability (Ability).
- Stack
GameplayEffect. - lock Actor.
- Create in the blueprint
GameplayAbility. - stay C++ Created in
GameplayAbility. - Instantiate each Actor Of
GameplayAbility. - Non instantiated
GameplayAbility(Jump). - static state
GameplayCue( Bullet impact particle effect ). - Actor
GameplayCue( Running and vertigo particle effects ).
The role class has the following capabilities :
| Ability | Input binding | Is it predictable | C++/Blueprint | describe |
|---|---|---|---|---|
| jumping | Space bar | Yes | C++ | Make the character jump . |
| gun | Left mouse button | No | C++ | Shoot missiles from the character's gun , The launch animation is predictable , But missiles cannot be predicted . |
| Aimed at | Right mouse button | Yes | Blueprint | When holding down the right mouse button , The character will walk slower and the camera will be pulled closer (zoom in) To obtain higher shooting accuracy . |
| Running | Left Shift | Yes | Blueprint | When pressing and holding the left Shift when , The character runs faster while consuming energy . |
| Dash forward | Q | Yes | Blueprint | The character rushes forward while exhausting his strength . |
| Passive shield stack | passive | No | Blueprint | every 4s The maximum number of layers a character can get is 4 The shield of , Remove a shield every time you take damage . |
| Meteorite falls | R | No | Blueprint | The character locks an enemy and summons a meteorite , Cause damage and dizziness to it . The location is predictable, while the formation of meteorites is unpredictable . |
GameplayAbility Whether by blueprint or C++ It doesn't matter to create . Here we use blueprints and C++ Mix to create , It is intended to show the use of each method .
AI The minion of control has no predefined GameplayAbility. Red soldiers have more life regeneration , Blue soldiers have more initial life .
about GameplayAbility The name of , I use _BP Suffixes denote those created by blueprints GameplayAbility Logic , No suffix means C++ establish .
Blueprint resource naming prefix
| Prefix | Asset Type |
|---|---|
| GA_ | GameplayAbility |
| GC_ | GameplayCue |
| GE_ | GameplayEffect |
Two 、GASShooter Case study
GASShooter It's based on Unreal Engine 5 Of GameplayAbilitySystem (GAS) Plug in development FPS/TPS Advanced case . Research on GASShooter You should learn before GASDocumentation Relevant documents and cases , So as to gradually master GAS, After all, it is a very complex system .
2.1 brief introduction
This project is not product level code , But a utilization GAS The starting point for the evaluation of different technologies to use weapons , With a certain exploratory and experimental nature .
The relevant resources used in the project come from Epic Games Of ShooterGame Learning project ,Epic Games Of Infinity Blade And some of the tranek Self made resources .
GASShooter The current engine version is Unreal Engine 5.0, There are also some previous versions , But no longer do long-term support for them , So I suggest you update to UE5 Version of .
| Key | action |
|---|---|
| T | Switch between first and third person perspectives |
| Left mouse button | Activate the main weapon , Target |
| Middle mouse button | Activate the available ability of the weapon |
| Right mouse button | Activate the second ability of the weapon |
| Mouse up scroll wheel | Switch to the next weapon in the backpack |
| Mouse scroll down | Switch the previous weapon in the backpack |
| R | Fill with bullets |
| Left Ctrl | Cancel aiming |
| Left Shift | sprint |
| E | Interact with interactive objects |
| Console command | action |
|---|---|
kill | Kill local players |
Heroes have magic , But currently there are no skills related to magic consumption . In the new BioShock The concept of this project started at the time of release , Intended to achieve something similar BioShock That kind of upgradeable skill , This makes the scope of the project too wide , But this may be achieved in the future .
Secondary ammunition is not used , It can be used to fill guns, grenades and other things .
2.2 Concept of coverage
- Skill batch
- Equipped weapons with skills
- Predict weapon switching
- Weapons and ammunition
- A simple Arsenal
- Head injury
- Reusable custom target roles
- Sight
- Play synchronized montage animation on multiple skin bone components when using a skill
- By inheritance
FGameplayEffectContextCome to GameplayCue Send additional information . - Character block before HP is removed by damage
- Pick up items
- One click interactive system . Hold down “E” It can interact with interactive objects , Including player resurrection 、 Weapon box and sliding door .
This project does not show bullet prediction , This should be a technical difficulty . I suggest you refer to Unreal Tournament (Unreal Tournament) Source code , Learn how to do this with fake projectiles on owned clients .
| weapons | Main skill ( Left mouse button ) | Secondary skills ( Right mouse button ) | Switch skills ( Middle mouse button ) |
|---|---|---|---|
| Rifle | Fire hit scan bullets according to the current firing mode . | Aim at the present . | In fully automatic 、 Change the firing mode between semi-automatic and burst . |
| Rocket launchers | Launch a rocket . | Aim at the target . Start targeting the rocket . Press the left mouse button to launch a rocket at the target . | nothing |
| Shotgun | Launch the hit scanning projectile based on the current shooting mode . | Aimed at , Reduce the range of the projectile . | Change the launch mode between semi-automatic and full-automatic . |
3、 ... and 、Lyra Starter Game Case study
Lyra Is a game example for you to learn , It can help you understand Unreal Engine 5 (UE5) Framework . Its architecture is designed in modular form , It contains a core system and some plug-ins , They will follow UE5 Develop and update regularly .
- Cross platform compatibility and scalability . Yes Epic Online multiplayer and cross platform game support for online services and host online subsystems .
- You can choose between three different game modes : Eliminate ( Team death competition )、 control ( Capture control points ) And explosives ( Top down Party game ).
- Self defined Gameplay Skill system . Niagara FX.
- Project Gameplay Illusory schematic diagram of concept (UMG) Control classes and UI Icon , Including menu settings 、 Handle key rocker , And health 、 Display of mana and weapons . these UI The function is designed in a modular way , So you can be independent of Lyra Use its system in your own game .
- Optimized handmade content , Including mobile animation assets 、 Sound and with Pawn Compatible weapon systems .
- new UE5 Mannequins Manny and Quinn. These mannequins are operational characters , Have and MetaHuman The same core skeleton level , And with a compatible animation system .
Official introduction , There is no need to carry all of them here , If you are interested, you can check it in detail through hyperlinks . The content to be analyzed in detail later is the part not detailed in the official documents , Will do detailed analysis through the source code , So that we can figure out the context .
UE5 GAS A list of study notes
Pre skills :1. programing language C++;2.Unreal Engine 5;3.Github and VS development environment
0.0 Introduce
0.1 Case preview
0.2 Configuration plug-ins
1.0 Concept
1.1 Capability system components (AbilitySystemComponent)
1.2 Game tag (GameplayTag)
1.3 attribute (Attribute)
1.4 Property set (AttributeSet)
1.5 Game effect (GameplayEffect)
1.6 Skill (GameplayAbility)
1.7 Mission (AbilityTask)
1.8 Special effects (GameplayCue)
1.9 Skill system overall (AbilitySystemGlobals)
1.10 forecast (Prediction)
1.11 target location (Targeting)
2.0 Common skills and effects
2.1 vertigo
2.2 sprint
2.3 Aimed at
2.4 Life steals
2.5 Generate a random number on the client and server
2.6 crit
2.7 Hit
2.8 Generate target data when the game is paused
2.9 One click interactive system
3.0 debugging
3.1 Display debug information
3.2 Game debugger
3.3 journal
4.0 Optimize
4.1 Skill batch
4.2 Special effect batch processing
4.3 Skill system component network synchronization mode
4.4 Attribute agent network synchronization protocol
4.5 Lazy loading of skill system components
5.0 Suggest
5.1 Effect container
5.2 Skill system component proxy binding
6.0 difficult
6.1LogAbilitySystem: Warning: Can't activate LocalOnly or LocalPredicted ability %s when not local!
6.2 Script structure cache error
6.3 Animation montage is not synchronized to the client
6.4 The copied blueprint role sets the property set to null pointer
6.5 Unresolved external symbols :UEPushModelPrivate::MarkPropertyDirty(int,int)
8.0 Reference material
8.1 Official documents of unreal engine
8.2 Github Open source project
- 4.27
- 4.26
- 4.25.1
- 4.25
- 4.24
10. 0 case analysis
10.1 GASDocumentation Case study ( On )
10.1 GASDocumentation Case study ( in )
10.1 GASDocumentation Case study ( Next )
10.2 GASShooter Case analysis
10.3 LyraStarter Case analysis
边栏推荐
- 频谱仪原理简介二
- Seven steps, in-depth interpretation of data meaning
- What is the employment prospect of software testing?
- Introduction to USB type-C PD fast charging
- Docker搭建Mysql主从复制
- Detailed explanation of network RJ45 interface
- .net WCF wf4.5 state machine, bookmark and persistence
- UE5 GAS 学习笔记 1.2游戏标签
- First understanding of structure
- iptables防火墙端口规则配置
猜你喜欢

Five key considerations for network security budget planning in 2023

Principle, classification and requirements of antenna

Mqtt over quic: the next generation Internet of things standard protocol injects new impetus into the message transmission scenario

mysql 索引使用与优化

冒泡排序和相关视频

About the difference between root and alias under localization

示波器参数详解

电源适配器 全球定义

WordPress prompt error in establishing database connection

Introduction to advanced design system (ads) 2009 RF simulation
随机推荐
矢量网络分析仪(矢网)组成和原理简介
Go's sleep
Go并发详解之一
npm 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
Summer Challenge [FFH] JS custom component: DIY a keyboard that can be used at any time! (I)
Brief introduction: basic principle of srv6
Temporary URL
haproxy实现灰度发布
Modifier modifier modifier of solidity _;
Iptables firewall port rule configuration
Golang 并发之锁
About the difference between root and alias under localization
Centos8 creates wordpress+mysql error reports according to the official website of docker
多线程与高并发—— 源码解析 AQS 原理
Wired: who owns the art of the future? Openai allows dall-e users to commercialize their works. At present
直播|StarRocks 技术内幕 :低基数全局字典优化
Seven steps, in-depth interpretation of data meaning
Is the training institution of software testing reliable
Digital torrent: resource reorganization and strategic conflict in enterprise transformation
Food safety | will the salt content of bread exceed the standard? A few tips to teach you to eat bread correctly!