Does Unreal 5 have enhanced input?

Unreal Engine 5: Forbedret Input til Mobil Skydespil

05/04/2023

Rating: 3.93 (2058 votes)

Som softwareingeniør, der kaster sig ud i Unreal Engine 5, har du sandsynligvis allerede opdaget platformens enorme potentiale. Men når det kommer til at udvikle mobilspil, især top-down skydespil, hvor præcise og tilpassede touch-kontroller er altafgørende, kan standardløsningerne i motoren hurtigt føles begrænsede. Du er ikke alene om at opleve, at de indbyggede touch-kontroller mangler den fleksibilitet og dybde i C++-kontrol, som en erfaren udvikler forventer. Tanken om at skulle ty til dyre tredjepartsløsninger på markedspladsen kan virke uattraktiv, især når man foretrækker at stole på Unreal Engines egne, robuste systemer for kritiske funktioner som kontrol. Heldigvis er der en kraftfuld løsning inden for rækkevidde: Unreal Engines Forbedret Input-system, som demonstreres glimrende i Lyra-projektet. Dette system tilbyder den fulde C++-kontrol og tilpasningsfrihed, du søger, og eliminerer behovet for eksterne, potentielt ufærdige løsninger.

Does Unreal 5 have enhanced input?
Archived post. New comments cannot be posted and votes cannot be cast. Unreal 5 has "Enhanced Input" system which should handle all of your input needs, regardless of device/input type. However, a LOT still changes with it, it seems every update changes something, and you will still see "experimental" next to some features.
Indholdsfortegnelse

Hvad er Unreal Engines Forbedret Input-system?

Forbedret Input-systemet er en moderne og fleksibel tilgang til håndtering af brugerinput i Unreal Engine 5. Det er designet til at give udviklere mere granulær kontrol over, hvordan input fra forskellige enheder – tastatur, mus, gamepad og især touchskærme – behandles og oversættes til spilhandlinger. I modsætning til det ældre input-system, der ofte krævede mere boilerplate-kode og var mindre intuitivt for komplekse input-behov, introducerer Forbedret Input flere nøglebegreber:

  • Input Actions (IA): Disse repræsenterer den abstrakte handling, en spiller ønsker at udføre, f.eks. "Hop", "Skyd" eller "Bevæg". De er uafhængige af den specifikke input-enhed.
  • Input Mapping Contexts (IMC): Disse definerer, hvilke fysiske inputs (f.eks. W-tasten, venstre museklik, et touch-træk) der skal udløse hvilke Input Actions. Du kan have flere IMC'er aktive samtidigt, f.eks. én til kørsel og én til menunavigation. Dette giver utrolig fleksibilitet til at skifte mellem input-sæt baseret på spillets tilstand.
  • Input Modifiers: Disse ændrer værdien af et input, før det behandles af Input Action. Eksempler inkluderer "Negate" (vender værdien), "Dead Zone" (ignorerer små bevægelser) eller "Swizzle" (omarrangerer vektorkomponenter). Dette er især nyttigt for touch-input, hvor små, utilsigtede bevægelser kan filtreres fra.
  • Input Triggers: Disse definerer, hvornår en Input Action skal udløses baseret på inputtets tilstand. Eksempler inkluderer "Pressed" (når knappen trykkes ned), "Released" (når knappen slippes), "Hold" (når knappen holdes nede i en vis tid) eller "Tap" (et hurtigt tryk). For touch-input er dette essentielt for at skelne mellem et tryk, et træk eller et dobbelttryk.

Denne modulære opbygning gør Forbedret Input utrolig kraftfuldt til at håndtere komplekse input-scenarier, herunder de nuancerede interaktioner, der kræves for en moderne touch-brugerflade.

Hvorfor Forbedret Input er Ideelt til Mobil og Touch-Kontroller

Din frustration over de standard touch-kontroller i Unreal Engine 5 er velbegrundet. De er ofte simple og mangler de avancerede tilpasningsmuligheder, der er nødvendige for et konkurrencedygtigt mobilspil. Her skinner Forbedret Input virkelig igennem:

  • Granulær Kontrol: Du kan definere præcist, hvordan touch-input behandles. Skal et tryk være et "tap", et "hold" eller starten på et "drag"? Forbedret Input giver dig værktøjerne til at definere disse nuancer.
  • C++-Udvidelsesmuligheder: Som softwareingeniør vil du sætte pris på den fulde adgang til C++. Hver del af Forbedret Input-systemet – Input Actions, Modifiers og Triggers – kan udvides eller skræddersyes i C++. Dette betyder, at hvis du har brug for en helt unik touch-gestus, kan du implementere den præcist, som du ønsker. Dette er en game-changer i forhold til begrænsede blueprint-baserede løsninger.
  • Fleksible Virtuelle Joysticks og Knapper: Med Forbedret Input kan du nemt integrere virtuelle joysticks og knapper, der er fuldt ud tilpasselige i UMG (Unreal Motion Graphics) og derefter knytte dem til dine Input Actions. Du kan ændre billeder, størrelser, placeringer og endda deres adfærd dynamisk.
  • Multi-Touch Håndtering: Mobilspil kræver ofte multi-touch, f.eks. et finger til at bevæge sig og et andet til at skyde. Forbedret Input er bygget til at håndtere flere samtidige touch-punkter elegant, hvilket gør det muligt at implementere komplekse kontrolskemaer.
  • Klarhed og Skalerbarhed: Når dit spil vokser, og du tilføjer nye funktioner, giver Forbedret Input en klar og organiseret måde at administrere alle dine input-bindinger på. Dette forhindrer den "spaghetti-kode", der ofte opstår med ældre input-systemer.

Lyra-projektet: Din Vejleder til Avanceret Input

Din observation af Lyra-projektet er spot on. Lyra er mere end blot en tech-demo; det er en fremragende reference for, hvordan man bygger et moderne Unreal Engine 5-spil, og dets input-system er et strålende eksempel på Forbedret Inputs potentiale. Selvom Lyra måske ikke er en "standard" skabelon i den forstand, at den ikke er integreret i de indledende projektindstillinger, er den en officiel Epic Games-udgivelse og fungerer som en de facto-standard for avancerede input- og UI-løsninger.

Lyra demonstrerer ikke kun, hvordan man bruger Forbedret Input til traditionelle tastatur- og gamepad-inputs, men også hvordan man implementerer en robust touch-brugerflade med virtuelle joysticks og knapper. Nøglen her er, at Lyra's UI-komponenter, som er bygget med UMG, kommunikerer direkte med Forbedret Input-systemet. Dette giver dig mulighed for at:

  • Studere, hvordan Input Actions er defineret for touch-bevægelser (f.eks. IA_Move, IA_Look).
  • Se, hvordan Input Modifiers (f.eks. til at normalisere input-værdier) og Input Triggers (f.eks. til at detektere et "hold" på en knap) anvendes.
  • Forstå, hvordan UMG-widgets (dine virtuelle joysticks og knapper) kan sende input-værdier direkte til Forbedret Input-systemet, hvilket giver dig fuld kontrol over deres visuelle og funktionelle adfærd via C++ og Blueprint.

At Lyra ikke er "integreret" i de indledende skabeloner, bør ikke afskrække dig. Tænk på det som en avanceret blueprint for best practices, som du kan inkorporere i dit eget projekt. Det er et levende bevis på, at Forbedret Input er det værktøj, Epic Games selv bruger til komplekse, højtydende spil.

Implementering af Forbedret Input til Touch-Kontroller

Lad os se på, hvordan du kan gribe implementeringen an for dit top-down mobil skydespil:

1. Oprettelse af Input Actions og Mapping Contexts

Start med at oprette dine Input Actions (f.eks. IA_Move som en FVector2D for bevægelse, IA_Shoot som en bool for skydning). Dernæst opretter du en Input Mapping Context (f.eks. IMC_MobileControls). Her binder du dine Input Actions til specifikke touch-input. For bevægelse kan du tilføje et "Touch Input" og derefter anvende Modifiers som "Swizzle" og "Dead Zone" for at få den ønskede 2D-vektor fra fingerens træk.

2. Design af Virtuelle Kontroller i UMG

Dette er kernen i din visuelle brugerflade. Opret UMG-widgets for din virtuelle joystick og dine skydeknapper. For joysticket kan du bruge en kombination af "Canvas Panel" og "Image" widgets. Når en finger trykker ned på joystick-området, fanger du touch-inputtet. I C++ (eller Blueprint, men C++ giver dig mere kontrol), kan du derefter beregne den relative bevægelse af fingeren og oversætte dette til en FVector2D-værdi, som du derefter "indsprøjter" i dit Forbedret Input-system via den relevante Input Action (f.eks. IA_Move).

3. C++-Integration og Udvidelse

For at opnå den fulde C++-kontrol, du ønsker, skal du gøre følgende:

  • Tilmeld dig Input Actions: I din Player Controller eller din Character-klasse kan du tilmelde dig dine Input Actions ved hjælp af UEnhancedInputComponent. Dette gøres typisk i BeginPlay().
  • Eksempel på C++-binding:
     // I din PlayerController.cpp eller Character.cpp void AMyPlayerController::SetupInputComponent() { Super::SetupInputComponent(); if (UEnhancedInputComponent* EnhancedInputComponent = Cast<UEnhancedInputComponent>(InputComponent)) { // Bevægelse EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AMyPlayerController::Move); // Skyd EnhancedInputComponent->BindAction(ShootAction, ETriggerEvent::Started, this, &AMyPlayerController::Shoot); } } void AMyPlayerController::Move(const FInputActionValue& Value) { FVector2D MovementVector = Value.Get<FVector2D>(); // Implementer din bevægelseslogik her, f.eks. tilføj input til din karakter if (AMyCharacter* MyCharacter = Cast<AMyCharacter>(GetPawn())) { MyCharacter->AddMovementInput(FVector::ForwardVector, MovementVector.Y); MyCharacter->AddMovementInput(FVector::RightVector, MovementVector.X); } } void AMyPlayerController::Shoot(const FInputActionValue& Value) { // Implementer din skydelogik her } 
  • Brugerdefinerede Modifiers/Triggers: Hvis du har brug for specifikke touch-gestus, der ikke er dækket af standard Modifiers eller Triggers, kan du oprette dine egne C++-klasser, der nedarver fra UInputModifier eller UInputTrigger. Dette giver dig fuldstændig frihed til at fortolke touch-input, som du ønsker.

Ved at kombinere UMG's visuelle design med Forbedret Inputs robuste input-håndtering og din egen C++-logik, kan du skabe en mobil kontroloplevelse, der er både intuitiv og yderst responsiv.

Sammenligning: Standard Input vs. Forbedret Input

For at understrege fordelene ved Forbedret Input, lad os sammenligne det med det ældre input-system, som du sandsynligvis stødte på først:

FunktionStandard Input (Action/Axis Mappings)Forbedret Input (Enhanced Input)
FleksibilitetBegrænset; sværere at håndtere komplekse input-kombinationer eller kontekstafhængige inputs.Meget fleksibelt; modulær opbygning med Input Actions, Mapping Contexts, Modifiers og Triggers.
C++-KontrolRelativt god, men kræver ofte mere manuel binding og mindre abstraktion.Fremragende; fuld C++-adgang og mulighed for at udvide alle komponenter (Actions, Modifiers, Triggers).
Touch-HåndteringBasal; svær at tilpasse til avancerede gestus eller virtuelle joysticks med dynamisk adfærd.Meget robust; designet til komplekse touch-interaktioner, multi-touch og integration med UMG.
OrganiseringKan hurtigt blive uoverskueligt med mange mappings i projektindstillingerne.Klar og organiseret struktur med genbrugelige Input Actions og kontekstafhængige mappings.
FremtidssikringÆldre system; mindre fokus på fremtidig udvikling.Fremtidens standard for input i Unreal Engine; aktivt udviklet og brugt af Epic Games selv (f.eks. i Lyra).
LæringskurveNemmere at komme i gang med for simple inputs.Stejlere i starten pga. nye koncepter, men betaler sig på lang sigt.

Fordele ved at vælge Forbedret Input

At vælge Forbedret Input til dit mobilspil, især et komplekst top-down skydespil, giver dig en række væsentlige fordele:

  • Uovertruffen Fleksibilitet: Du kan skabe præcis den input-oplevelse, du ønsker, uanset hvor kompleks den er. Fra simple tryk til avancerede multi-touch gestus, er systemet klar til opgaven.
  • Fuld C++-Kontrol: Som softwareingeniør er dette sandsynligvis den største fordel. Du er ikke begrænset af foruddefinerede funktioner; du kan udvide og tilpasse hver eneste del af input-pipelinen.
  • Robust og Skalerbar: Da det er et officielt og moderne system fra Epic Games, er det bygget til at håndtere spil af enhver størrelse og kompleksitet. Det er et solidt fundament for dit projekt.
  • Bedre Brugeroplevelse: Med præcise og tilpassede kontroller kan du levere en langt bedre og mere intuitiv brugeroplevelse for dine spillere på mobile enheder.
  • Fremtidssikret Løsning: At investere tid i at lære Forbedret Input er en investering i dine fremtidige Unreal Engine-projekter, da det sandsynligvis vil forblive standarden i mange år fremover.

Overvejelser og Potentielle Udfordringer

Selvom Forbedret Input er kraftfuldt, er der et par ting at huske på:

  • Indledende Læringskurve: Som nævnt er systemet mere komplekst end det ældre input-system. Forvent at bruge lidt tid på at forstå de nye koncepter fuldt ud. Lyra-projektet er dog en uvurderlig ressource her.
  • Lyra's Kompleksitet: Lyra er et stort projekt. At udtrække specifikke input-komponenter og integrere dem i dit eget, mindre projekt kan kræve en vis indsats for at forstå afhængighederne. Fokusér på input-relaterede klasser og blueprints for at undgå at blive overvældet.
  • Ikke Standard "Skabelon": Selvom det er et officielt og avanceret system, er det ikke en del af de helt basale projekt-skabeloner. Dette betyder, at du selv skal integrere det i dit projekt, men det er en relativt ligetil proces, som Lyra kan vejlede dig i.

Bedste Praksis for Forbedret Input

  • Hold dine Input Actions atomare: Hver IA bør repræsentere en enkelt, logisk handling (f.eks. "Hop", ikke "HopOgLøb").
  • Brug Input Mapping Contexts klogt: Opret separate IMC'er til forskellige spiltilstande (f.eks. "Gameplay", "UI", "Køretøj") og aktiver/deaktiver dem efter behov.
  • Udnyt Modifiers og Triggers: De er utrolig kraftfulde for at finjustere input-adfærd og reducere mængden af kode, du skal skrive.
  • Test på enheder: Virtuelle joysticks og touch-gestus føles forskelligt på forskellige skærmstørrelser og enheder. Test dit spil grundigt på rigtige mobiltelefoner og tablets.
  • Dokumenter dine Input Actions: Hold en klar oversigt over, hvad hver Input Action gør, især hvis du arbejder i et team.

Ofte Stillede Spørgsmål

Q: Er Forbedret Input egnet til alle mobilspil?
A: Ja, det er yderst velegnet til stort set alle mobilspil, især dem der kræver præcise, komplekse eller tilpassede touch-kontroller. For simple spil kan det virke som overkill, men fleksibiliteten er altid en fordel.

Q: Kan jeg bruge Forbedret Input med UMG til on-screen kontroller?
A: Absolut! Dette er en af de største styrker. Du designer dine virtuelle joysticks og knapper i UMG, og så kan du i C++ (eller Blueprint) sende de indsamlede touch-data til Forbedret Input-systemet, som så udløser dine definerede Input Actions. Lyra-projektet er et perfekt eksempel på dette.

Q: Hvordan håndterer jeg multi-touch gestus med Forbedret Input?
A: Forbedret Input understøtter multi-touch direkte. Du kan definere Input Actions, der lytter efter specifikke touch-fingre (f.eks. "Touch 0", "Touch 1") eller bruge Modifiers og Triggers til at detektere komplekse gestus, der involverer flere fingre samtidigt, som f.eks. knib-til-zoom.

Q: Er det ydeevne-venligt?
A: Ja, Forbedret Input er designet til at være ydeevne-venligt og effektivt. Det er det system, Epic Games selv bruger til deres AAA-titler, hvilket indikerer dets robusthed og optimering.

Q: Vil Forbedret Input blive officielt integreret i de primære motorfunktioner/skabeloner?
A: Selvom det ikke er en del af de allermest basale projektskabeloner endnu, er Forbedret Input en kernekomponent i Unreal Engine 5's input-strategi og er allerede fuldt integreret i motoren som et plugin. Lyra-projektet cementerer dets status som Epic Games' foretrukne metode til input-håndtering. Du kan trygt antage, at det er en fremtidssikret løsning, og det er usandsynligt, at Epic ville skrotte det til fordel for en ældre eller mindre fleksibel tilgang. Manglen på en direkte "roadmap-opdatering" om touch-specifik integration i de basale skabeloner betyder ikke, at systemet ikke er færdigt; det betyder snarere, at den eksisterende struktur med Forbedret Input allerede giver alle de nødvendige værktøjer, du behøver, og at Lyra tjener som en fremragende reference for, hvordan man anvender dem.

Som softwareingeniør, der søger den bedste kontrol og udvidelsesmulighed for dine mobile skydespil i Unreal Engine 5, er Forbedret Input-systemet din bedste ven. Det giver dig den dybde i C++-kontrol, du ønsker, og eliminerer behovet for at ty til tredjepartsløsninger, der måske ikke lever op til dine forventninger om robusthed og tilpasning. Selvom det kræver en indledende investering i læring, vil den fleksibilitet og skalerbarhed, det tilbyder, betale sig rigeligt i dit nuværende og fremtidige projekter. Lad Lyra-projektet være din guide, og du vil snart mestre kunsten at skabe intuitive og kraftfulde touch-kontroller, der løfter dit mobilspil til nye højder.

Hvis du vil læse andre artikler, der ligner Unreal Engine 5: Forbedret Input til Mobil Skydespil, kan du besøge kategorien Mobiludvikling.

Go up