Estrutura do Projeto
A seguir apresentaremos a estrutura de pastas do projeto de desenvolvimento do jogo, esta estrutura pode ser utilizada para diversos tipos de projetos que tenham personagens e jogadores.
1. Pastas
└── Content
├── ExampleContent # Pacotes de exemplo
| ├── AnimStarterPack # Não devem estar no versionamento
| └── ThirdPerson # Separados da lógica do projeto
└── Projeto # Pasta principal do projeto
├── Art # Elementos do ambiente
| ├── Industrial # Texturas e malhas
| | ├── Ambient
| | ├── Machinery
| | └── Pipes
| ├── Nature
| | └── Ambient
| | ├── Foliage
| | ├── Rocks
| | └── Trees
| └── Office
├── Models
| ├── Characters # Estruturas dos personagens
| | ├── Human # Classe human
| | | ├── Mesh # Malhas e esqueletos
| | | ├── Animations # Animações
| | | └── Audio # Sons
| | ├── Mutant
| | | ├── Mesh # Malha e texturas do personagem
| | | └── Animations
| | | ├── Logic # Animation Blueprint, Blend Space
| | | ├── Base # Animações com movimento básico
| | | ├── Aim # Animações usando uma arma e mirando
| | | └── Audio # Sons do personagem
| | └── NPC
| | ├── Mesh # Malha e texturas do personagem
| | └── Animations
| | ├── Logic # Animation Blueprint, Blend Space
| | ├── Base # Animações com movimento básico
| | ├── Aim # Animações usando uma arma e mirando
| | └── Audio # Sons do personagem
| ├── Chests # Baús
| | ├── Materials
| | └── Mesh
| ├── Inventory # Inventários
| ├── Itens # Itens
| └── Weapons # Armas
├── Core
| ├── Characters # Classe principal dos personagens
| ├── Engine # Player Controller e Game Control
| ├── GameModes # Game Mode e Game Instance
| ├── Interactables # Classes de interação
| ├── Pickups # Classes básicas de objetos
| ├── DataSets # Tabelas, enum e struct
| └── Weapons # Classe de armas
├── UI
| ├── Characters # Interface vida, força e outros
| ├── SettingsMenu # Configuração do jogo
| ├── ExitMenu # Menu de saída
| └── MainMenu # Menu Principal
└── Maps
├── Level1
└── Level2
2. Classes
| Classe | Pai | Atributos | Tipo | Categoria |
|---|---|---|---|---|
| BP_CharacterBase | fHealth | float | Character | |
| sSound | Sound Cue | |||
| tImage | Texture 2D | |||
| cColor | Color | |||
| nName | Name | |||
| fWalkSpeed | float | Character\Movement | ||
| fCrouchSpeed | float | |||
| fRunSpeed | float | |||
| bRunning | boolean | |||
| bCrouch | boolean | |||
| bActionLeftAttack | boolean | Character\Action | ||
| bActionRightAttack | boolean | |||
| bShooting | boolean | |||
| bHoldingWeapon | boolean | |||
| bAim | boolean | |||
| bReloadWeapon | boolean | |||
| Jump | Event | |||
| Run | Event | |||
| Attack Left | Event | |||
| Attack Right | Event | |||
| Weapon Take | Event | |||
| Crouch | Event | |||
| Weapon Aim | Event | |||
| Weapon Reload | Event | |||
| Weapon Shot | Event | |||
| Died | Event | |||
| Catch | Event | |||
| ├── BP_Human | BP_CharacterBase | |||
| ├── BP_Mutant | BP_CharacterBase | |||
| └── BP_NPC | BP_CharacterBase | |||
| BP_PlayerController | APlayerController | |||
| BP_AIController | AIController | |||
| BP_BotController | APPlayerController | |||
| BP_GameMode | UGameMode | |||
| BP_GameInstance | UGameInstance | OpenMenuExit | ||
| OpenMenuMain | Event | |||
| OpenMenPause | Event | |||
| BP_Item | nName | Name | ||
| sSound | Sound Cue | |||
| tImage | Texture 2D | |||
| cColor | Color | |||
| └──BP_Weapon | BP_Item | WeaponShot | Event | |
| Magazine | integer | |||
| Projectile | BP_Projectile | |||
| └──BP_Projectile | BP_Item | EventHit | Event | |
| Damage | float |
class IMenuMainInterface : public UInterface {};
class HUD_Player : public SWidget {};
class MenuMain : public SWidget {};
class MenuLobbySinglePlayer : public SWidget {};
class MenuLobbyMultiPlayer : public SWidget {};
class MenuConfig : public SWidget {};
class MenuPause : public SWidget {};
class MenuExit : public SWidget {};
class MenuMain : public IMenuInterface {};
class UMenuMainInterface : public IMenuMainInterface {};
class UProjectGameInstance : public UGameInstance, IMenuMainInterface {};