Editado 3 meses atrás por ExtremeHow Equipe Editorial
Unreal EngineInterface do UsuárioDesign de UIUMGHUDProjetosGráficosWidgetsUXDesign interativo
Tradução atualizada 3 meses atrás
Criar uma interface de usuário (UI) personalizada no Unreal Engine pode melhorar muito a experiência do usuário em jogos e aplicativos. O Unreal Engine oferece uma estrutura robusta chamada UMG (Unreal Motion Graphics) que permite aos desenvolvedores de jogos projetar e implementar UIs interativas. Neste guia, iremos guiá-lo através do processo de criação de uma UI personalizada no Unreal Engine.
Unreal Motion Graphics (UMG) é o sistema visual de UI dentro do Unreal Engine. UMG permite que os desenvolvedores criem elementos de UI, como botões, rótulos de texto, sliders e muito mais. Através do uso de Blueprints e C++, os desenvolvedores podem facilmente integrar widgets UMG em seus projetos de jogos.
A base do UMG é o blueprint do widget de UI. No Unreal Engine, um widget é um bloco de construção básico para criar uma UI. Cada widget representa um componente individual da interface do usuário, como um botão ou caixa de texto.
Para começar a criar uma UI personalizada, primeiro precisamos configurar nosso projeto. Abra o Unreal Engine e crie um novo projeto ou use um existente. Certifique-se de selecionar as configurações desejadas para seu projeto, como a plataforma alvo e as configurações gráficas.
Existem três áreas principais no editor de Widget Blueprint: o painel Hierarchy, a aba Designer e a aba Graph.
O painel Hierarchy exibe uma visualização em árvore de todos os widgets na UI. Você pode usar este painel para organizar e gerenciar os widgets que compõem sua interface.
A aba Designer é onde você fisicamente organiza seus widgets na tela. Você pode arrastar e soltar widgets do painel de seleção na tela para começar a construir sua interface. Widgets disponíveis no painel de seleção incluem:
A aba Graph é usada para criar lógica usando blueprints. Aqui, você pode definir como os widgets se comportam em resposta a interações do usuário. Por exemplo, quando um botão é clicado, você pode especificar quais ações devem ocorrer.
Na aba Designer do nosso widget, vamos criar um layout simples que inclui um título e um botão Iniciar:
Agora, queremos definir o que acontece quando clicamos no botão “Start Game”. Para fazer isso, vá para a aba Graph.
OnClicked
ao gráfico de eventos. A partir daqui, você pode definir a lógica que acontece quando o botão é pressionado. Por exemplo, você pode carregar um novo nível usando o nó “Open Level” e especificar o nome do nível que deseja carregar.Para aqueles familiarizados com C++, o Unreal Engine permite criar e manipular widgets UMG programaticamente. Abaixo está um exemplo de criação e exibição de um widget usando C++:
#include “MainMenuWidget.h” #include “Blueprint/UserWidget.h” // Function to create and add widget to viewport void AYourGameMode::BeginPlay() { Super::BeginPlay(); // Check the widget class is valid if (MainMenuWidgetClass != nullptr) { UUserWidget* MainMenu = CreateWidget (GetWorld(), MainMenuWidgetClass); if (MainMenu != nullptr) { MainMenu->AddToViewport(); } } }
O código acima cria um widget durante o jogo quando o método BeginPlay do GameMode é acionado. Você precisa garantir que MainMenuWidgetClass
seja uma referência válida ao seu blueprint de widget.
Além de pressionar botões, você pode tornar sua UI mais dinâmica respondendo a outros tipos de entrada. Abaixo estão alguns elementos interativos comuns que você pode querer incluir:
Sliders são úteis para configurações como controle de volume. Você pode capturar o valor de um slider e aplicá-lo ao sistema de áudio. O exemplo abaixo mostra como lidar com mudanças em um slider:
// Event to change game's master volume void UMyGameInstance::OnVolumeSliderChanged(float Value) { // Assumes Value is in range [0.0, 1.0] UGameplayStatics::SetSoundMixClassOverride(this, SoundMix, SoundClass, Value, 1.0f, 0.0f); }
Para mostrar o progresso do jogo, use uma barra de progresso. Por exemplo, se você tiver uma tela de carregamento, vincule a barra de progresso a uma variável que atualiza à medida que o processo de carregamento avança:
// Tick function to update progress bar void ULoadingScreen::NativeTick(const FGeometry& MyGeometry, float InDeltaTime) { Super::NativeTick(MyGeometry, InDeltaTime); // Assume LoadProgress is updated elsewhere ProgressBar->SetPercent(LoadProgress); }
Depois que sua UI estiver funcional, concentre-se na estética. Uma interface atraente pode melhorar a experiência do usuário. Aqui estão algumas dicas:
Use o painel Details para modificar propriedades como fonte, cor e tamanho para textos e botões. Para um estilo mais avançado, considere usar folhas de estilos por meio do Slate, a biblioteca de widgets de UI do Unreal.
Para animar elementos de UI, use o painel Animations. Animações podem chamar a atenção para elementos específicos ou fornecer feedback para ações do usuário. Por exemplo, você pode querer que um botão mude de cor quando você passa o mouse sobre ele.
Testar é importante para garantir que sua UI funcione como esperado. Teste seu projeto regularmente para verificar problemas e fazer as mudanças necessárias. Obtenha uma variedade de feedback testando com diferentes usuários.
Criar interfaces de usuário personalizadas no Unreal Engine usando UMG pode aumentar muito a experiência do jogador. Se você estiver projetando um menu principal básico ou um HUD complexo no jogo, é essencial entender o básico do UMG e incorporar interatividade usando Blueprint ou C++. Com prática e experimentação, você pode desenvolver interfaces intuitivas e visualmente atraentes que complementam seu jogo.
Se você encontrar algo errado com o conteúdo do artigo, você pode