Cinematica Inversa

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Cinematica Inversa (IK) è una tecnica comune nell'animazione computerizzata per far muovere i personaggi in modo efficiente e interagire in modo realistico con il loro ambiente. Il processo di creazione di un movimento realistico per un personaggio richiede spesso molte iterazioni e piccole regolazioni delle varie articolazioni. Con l'IK, puoi posare e animare più parti di un personaggio posizionando o regolando un singolo oggetto.

Questa tecnica di animazione può fornire soluzioni ai seguenti esempi:

Prendi e posa la mano di un personaggio mentre regoli automaticamente gli arti correlati, come il polso, il gomito e la spalla.
Fai interagire i piedi di un personaggio in modo realistico su diverse superfici e pendenze.
Prendi e sposta un singolo oggetto target per creare rapidamente interazioni realistiche con il tuo personaggio e accessori.

IKControl

Puoi utilizzare un IKControl per aggiungere in modo procedurale l'IK ai tuoi modelli di personaggi al di fuori dell'Animation Editor. Studio ti consente di applicare in modo programmato l'IK a tutti i personaggi, come R15, Rthro e personaggi personalizzati importati, per creare movimenti e interazioni realistiche nel tuo gioco.

Quando aggiungi un IKControl, imposta correttamente le proprietà richieste per evitare risultati di animazione inaspettati e innaturali. Come per tutte le animazioni, testa i tuoi IKControl per assicurarti di ottenere il comportamento desiderato.

Proprietà richieste

Quando aggiungi un IKControl al Humanoid o a AnimationController del tuo personaggio, devi impostare le seguenti proprietà richieste per abilitare l'IK:

ProprietàDescrizione
TypeSpecifica il tipo di comportamento del controllo IK. Vedi Enum.IKControlType per l'elenco delle opzioni di comportamento. I tipi di comportamento comuni sono Position o Transform.
EndEffectorUna BasePart o Bone nel tuo modello di personaggio che traccia verso il Target. Ad esempio, puoi impostare un osso LeftHand come EndEffector per raggiungere un oggetto maniglia di porta impostato come Target.
TargetL'oggetto che il EndEffector raggiunge o punta. Un Target può essere un qualsiasi oggetto con una posizione nel mondo.
ChainRootDefinisce la catena di BaseParts o Bones che il IKControl influenza. Tutte le parti connesse tra il ChainRoot e il EndEffector sono influenzate dal IKControl utilizzando il tipo di comportamento definito.

Ad esempio, se il LeftHand del tuo personaggio è impostato come Target, puoi applicare l'IK all'intero braccio sinistro impostando ChainRoot sul LeftUpperArm. Per applicare l'IK solo alle parti sotto il gomito, imposta ChainRoot sul LeftLowerArm.

Testa IKControls

Puoi aggiungere e modificare IKControl in modo programmato o direttamente attraverso l'Explorer. Puoi anche aggiungere e fare modifiche a IKControl durante un test di Gioco per controllare rapidamente come varie proprietà influenzano i movimenti di un personaggio.

Per testare rapidamente il tuo IKControl utilizzando un Attachment come target:

  1. Dalla mezzanina di Studio, avvia un test di gioco.

  2. Nella Explorer, vai su Workspace → il modello Model del tuo utente. Questa istanza di Model è chiamata come il tuo attuale account Roblox.

  3. Fai clic sull'icona accanto a HumanoidRootPart del modello del tuo personaggio e aggiungi un Attachment.

  4. Seleziona l'Attachment e usa lo strumento Sposta per posizionare l'oggetto di fronte al tuo personaggio nella vista.

  5. Nella finestra Explorer, seleziona l'icona accanto al Humanoid del tuo personaggio e aggiungi un IKControl.

  6. Seleziona il IKControl e imposta i seguenti valori di proprietà nella finestra Properties:

    1. Type: Seleziona Transform dal menu a discesa.
    2. EndEffector: Seleziona il MeshPart LeftHand del tuo modello nella Explorer.
    3. Target: Seleziona il nuovo oggetto Attachment creato nella Explorer.
    4. ChainRoot: Seleziona il MeshPart LeftUpperArm del tuo modello nella Explorer.
    Proprietà di IKControl
    Explorer - Modello del Personaggio

    Il braccio sinistro del tuo personaggio dovrebbe ora tendere verso l'Attachment target. Puoi sperimentare spostando l'Attachment o modificando le proprietà del IKControl per ottenere risultati diversi.

Aggiungi vincoli

Puoi utilizzare Constraints per limitare come le articolazioni possono muoversi quando raggiungono il loro obiettivo. I vincoli possono garantire che articolazioni come gomiti e ginocchia si pieghino in modo naturale, o far ruotare le articolazioni meccaniche in un'orientazione specifica.

Gomito che si piega in modo innaturale
Gomito che si piega correttamente

Per aggiungere vincoli al tuo personaggio utilizzando IKControl, il tuo IKControl e il vincolo devono soddisfare le seguenti condizioni:

Le seguenti istruzioni descrivono il processo di aggiunta di un HingeConstraint per limitare la rotazione del gomito di un personaggio e aggiungere un BallSocketConstraint al polso per limitare l'angolo di rotazione.

Gomito

I personaggi Roblox R15 includono già allegati nelle loro articolazioni che puoi utilizzare per applicare il vincolo al gomito. Per il gomito, sia il LeftUpperArm che il LeftLowerArm includono un LeftElbowRigAttachment. Oltre ad aggiungere un vincolo, è necessario aggiungere anche ulteriori allegati figli all'LeftElbowRigAttachment di ciascuna parte per specificare quale asse il gomito può ruotare.

Per aggiungere il HingeConstraint e gli allegati figlio:

  1. Nella Explorer, trova il LeftLowerArm del tuo modello e fai clic sul pulsante .

  2. Aggiungi un HingeConstraint con il nome LeftElbowConstraint.

  3. Nella Explorer, vai a LeftUpperArm.LeftElbowRigAttachment e aggiungi un allegato:

    1. Fai clic sul pulsante per aggiungere un Attachment con il nome LeftElbowConstraintAttachment0.

    2. Nella vista, seleziona l'allegato e usa lo strumento Ruota per ruotare l'allegato in modo che il giallo PrimaryAxis sia l'asse di rotazione previsto per il gomito.

    3. Imposta la proprietà LeftElbowConstraint.Attachment0 su questo nuovo allegato.

  4. Nella Explorer, vai all'LeftLowerArm.LeftElbowRigAttachment del tuo modello e aggiungi un allegato:

    1. Fai clic sul pulsante e aggiungi un Attachment con il nome LeftElbowConstraintAttachment1.
    2. Imposta la proprietà LeftUpperArm.LeftElbowConstraint.Attachment1 su questo nuovo allegato.
    3. Copia la proprietà LeftElbowConstraintAttachment0.CFrameOrientation e incollala come valore di LeftElbowConstraint.Attachment1.CFrameOrientation.

Testa il tuo IKControl per verificare che il gomito ruoti solo attorno al suo asse a cerniera:

Polsi

Anche con il vincolo al gomito, l'IKControl può comunque produrre pose irrealistiche con i polsi.

Il polso si piega in modo innaturale in determinate orientazioni

Puoi migliorare questo aggiungendo un BallSocketConstraint per limitare la rotazione del polso. Sebbene questo sia simile al processo per aggiungere un HingeConstraint al gomito, puoi utilizzare la proprietà LimitsEnabled su questo vincolo per controllare ulteriormente l'ampiezza di movimento del polso.

Per aggiungere un BallSocketConstraint per il polso:

  1. Nella Explorer, trova il LeftHand del tuo modello e fai clic sul pulsante .
    1. Aggiungi un BallSocketConstraint con il nome LeftWristConstraint.
  2. Trova il LeftLowerArm.LeftWristRigAttachment del tuo modello e aggiungi un allegato:
    1. Fai clic sul pulsante e aggiungi un Attachment con il nome LeftWristConstraintAttachment0.
    2. Nella vista, seleziona l'allegato e usa lo strumento Ruota per ruotare l'allegato in modo che il PrimaryAxis giallo punti verso le punte delle dita del modello.
    3. Imposta la proprietà LeftWristConstraint.Attachment0 sull nuovo LeftWristConstraintAttachment0.
  3. Trova il LeftHand.LeftWristRigAttachment del tuo modello e aggiungi un allegato:
    1. Fai clic sul pulsante e aggiungi un Attachment con il nome LeftWristConstraintAttachment1.
    2. Copia la proprietà LeftWristConstraintAttachment0.CFrameOrientation e incollala come proprietà LeftWristConstraintAttachment1.CFrameOrientation.
    3. Imposta la proprietà LeftWristConstraint.Attachment1 su questo nuovo LeftWristConstraintAttachment1.
  4. Nella Explorer, seleziona il LeftWristConstraint.
  5. Nella finestra Properties, imposta quanto segue:
    1. Abilita LimitsEnabled.
    2. Imposta UpperAngle su 80. Questo controlla quanto può ruotare l'asse del vincolo, e 80 gradi è approssimativamente quanto il polso dovrebbe essere in grado di piegarsi.
  6. A seconda del tuo personaggio, potresti voler regolare la direzione verso cui punta il cono. Puoi farlo utilizzando lo strumento Ruota per ruotare il Attachment0 del vincolo.

Quando selezioni il LeftWristConstraint, appare un cono verde che visualizza l'ampiezza di movimento del polso.

Con il vincolo impostato, testa l'IKControl con la mano rivolta verso il basso di fronte al personaggio e il polso dovrebbe ruotare e piegarsi in modo più realistico.

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.