Unreal Engine: interpolazione lineare con FMath::Lerp

25 Ottobre 2020

FMath::Lerp esegue un'interpolazione lineare tra due valori, l'Alpha varia da 0 a 1.

In Unreal Engine, FMath::Lerp è una funzione che consente di eseguire una "linear interpolation" (interpolazione lineare) tra due valori. L'interpolazione lineare è un metodo che calcola un valore intermedio tra due estremi basandosi su un fattore di interpolazione compreso tra 0 e 1.

La firma della funzione FMath::Lerp è la seguente:

template <typename T>
static FORCEINLINE T Lerp(const T& A, const T& B, float Alpha);

Dove:

  • A è il valore di partenza
  • B è il valore di destinazione
  • Alpha è il fattore di interpolazione che determina la quantità di "mescolamento" tra i due valori. Un valore di 0 restituisce il valore di partenza A, un valore di 1 restituisce il valore di destinazione B, mentre un valore compreso tra 0 e 1 restituisce un valore intermedio tra A e B in base al fattore di interpolazione.

Ad esempio, se si desidera eseguire l'interpolazione lineare tra due valori float StartValue e TargetValue con un fattore di interpolazione di 0.5, si può utilizzare la funzione FMath::Lerp nel seguente modo:

float Result = FMath::Lerp(StartValue, TargetValue, 0.5f);

Il risultato sarà un valore che rappresenta l'interpolazione lineare al 50% tra StartValue e TargetValue.

FMath::Lerp, Riferimenti

ModuleCore
Header/Engine/Source/Runtime/Core/Public/Math/UnrealMathUtility.h
Include#include "Math/UnrealMathUtility.h"

 

Sintassi

template<class T, class U>
static T Lerp
(
    const T & A,
    const T & B,
    const U & Alpha
)

Esempio

Script di esempio per la rotazione.

MioScript.h:

 private:
      float TargetYaw = 10.f; // 360.f
      float InitialYaw; // 270.f
      float CurrentYaw;

MioScript.cpp:

 // Called when the game starts
void UMioScript::BeginPlay()
{
      Super::BeginPlay();

      // HERE BEGIN CODE
      InitialYaw = GetOwner()->GetActorRotation().Yaw;
      CurrentYaw = InitialYaw;
      TargetYaw = InitialYaw + 90.f;
}


// Called every frame
void UMioScript::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
      Super::TickComponent(DeltaTime, TickType, ThisTickFunction);

      // HERE BEGIN CODE
      CurrentYaw = FMath::Lerp(CurrentYaw, TargetYaw, 0.02f);
      FRotator DoorRotation = GetOwner()->GetActorRotation();
      DoorRotation.Yaw = CurrentYaw;
      GetOwner()->SetActorRotation(DoorRotation);
}

Articoli recenti

Commenti recenti

  1. Massimiliano Ferretti su I Commenti

    Mi permetto di aggiungere una mia considerazione personale che ho riportato dall'utilizzo di C#. Personalmente mi piace commentare funzioni e…

  2. Personalmente ritengo che utilizzare git porti sempre dei vantaggi anche per lo sviluppo solo. Già solo la possibilità di fare…

  3. ciao, il link a discord non è piu valido, vorrei utilizzare il materiale che hai pubblicato tempo fa, come faccio?

"

Itamde è anche una scuola di programmazione online.

Itamde

Impara ciò che desideri, al tuo ritmo

0 Commenti

Potrebbe interessarti anche...

Intelligenza artificiale

L’IA nel game dev: come usarla in modo efficace

L’intelligenza artificiale si impone come strumento indispensabile nell’industria dei videogiochi. Dagli studi indipendenti ai colossi del settore, l’IA trasforma ogni fase dello sviluppo, dalla concezione iniziale all’ottimizzazione post-lancio. Ma tra le promesse...

Itamde - Background 6

Analisi di un sito web ben fatto: esempi reali e lezioni da imparare

Cosa distingue un sito web veramente riuscito da uno semplicemente funzionale? La risposta si trova raramente in una singola caratteristica, ma piuttosto nell'armonia tra design, prestazioni tecniche, esperienza utente e contenuto. Per capire cosa rende buono un sito,...

CSS & Web

La tipografia cinetica si impone come tendenza web design del 2026

C'è stato un tempo in cui il testo su un sito web restava fermo al suo posto. Oggi si muove, respira, racconta una storia prima ancora che si finisca di leggerlo. La tipografia cinetica — o kinetic typography — sta ridefinendo il modo in cui concepiamo le interfacce...

Rimani aggiornato sulle ultime notizie e novità

Accedi ai contenuti riservati

Scopri il dietro le quinte dei nostri progetti, risorse esclusive e lo stato di avanzamento delle nostre creazioni in tempo reale.

Iscriviti alla newsletter

Ricevi le nostre notizie, le nostre riflessioni creative e le novità dell'atelier direttamente nella tua casella di posta elettronica.

Seguici

Unisciti alla nostra community sui social network per seguire i nostri progetti quotidiani e interagire con noi.