IKControl

Visualizza obsoleti

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

IKControl istanze generano posizioni di animazione procedurali utilizzando Inverse Kinematics (IK). Ti consente di fare rispondere i personaggi in modo realistico al loro Ambiente.

Ad esempio, puoi fare in modo che un personaggio metta la sua mano su un maniglia di porta esattamente, e il personaggio lo farà indipendentemente dalla sua posizione. IKControls fornisce l'anticipo di dover creare meno animazioni per il tuo gioco mentre dai alla tua esperienza un aspetto più realistico e polito.

IKControls deve essere un figlio di un Humanoid o AnimationController con un 0>

Puoi usare IKControls per creare un personaggio:

  • Ruota la sua testa e il suo torso per guardare a un punto di interesse nel Mondo.
  • Modifica le sue posizioni dei piedi per rispondere al terreno dinamico. Adjust its legs and feet to place them accordingly on terrain with rocks and slopes.
  • Tieni una pistola e posizionala le sue mani in modo appropriato sulla impugnatura senza dover creare animazioni per ciascuna pistola nel Gioco.
  • Punta a un punto nel Mondo, in modo che il dito della pistola punti esattamente a ciò che vuoi sparare. Utile in particolare per gli sparatori in terza persona.
  • Metti le tue mani al volante di un'auto e segui quando gira.
  • Molto di più!

IKControl覆盖了所有部分之间的 animazione,从 ChainRoot 到 Class.

Campioni di codice

IKControl setup

local character = script.Parent.Character
local humanoid = character.Humanoid
local root = character.HumanoidRootPart
-- Create a new attachment to use as the IKControl.Target
local target = Instance.new("Attachment")
target.CFrame = CFrame.new(-1, 0, -1)
target.Parent = root
local ikControl = Instance.new("IKControl")
ikControl.Type = Enum.IKControlType.Position
ikControl.EndEffector = character.LeftHand
ikControl.ChainRoot = character.LeftUpperArm
ikControl.Target = target
ikControl.Parent = humanoid

Sommario

Proprietà

  • Lettura Parallela

    L'ultima parte che sei interessato a spostare il tuo personaggio. Ad esempio, l'ascia superiore. Devi essere un antenato di EndEffector e essere un BasePart o un Bone nel tuo personaggio.

  • Lettura Parallela

    Attiva/disattiva il controllo. Vero per Offpredefinita.

  • Lettura Parallela

    La parte che sei interessato a spostare per raggiungere il Target . Ad esempio, la mano del tuo personaggio. Deve essere discendente di ChainRoot e essere un BasePart o un 1> Class.Bone1> nel tuo personaggio.

  • Lettura Parallela

    Un ulteriore offset applicato sopra il EndEffector nella sua area locale per cambiare dove si muove.

  • Lettura Parallela

    Un ulteriore offset applicato sopra il Target per cambiare dove si muove il EndEffector .

  • Lettura Parallela

    Un'istanza opzionale che determina in quale direzione si piega la catena. Puoi usarlo per specificare in quale direzione si piega un gomito o un ginocchio.

  • Lettura Parallela

    Specifica l'ordine in cui i controlli vengono risolti. I valori più alti hanno la priorità più alta.

  • Lettura Parallela

    Specifica il numero medio di secondi che ci vuole per il EndEffector per raggiungere facilmente il Target .

  • Lettura Parallela

    L'oggetto che il EndEffector raggiunge o punta. Può essere qualsiasi cosa che abbia una posizione nel Mondo, come BasePart , Attachment , 1> Class.Bone1> , o 4> Class.Motor6D4> .

  • Lettura Parallela

    Specifica come il solvente soddisfi questo controllo.

  • Lettura Parallela

    Specifica il peso della target di controllo IK. Dovrebbe essere nella fascia [0, 1].

Proprietà

ChainRoot

Lettura Parallela

Specificando un ChainRoot e un EndEffector

Enabled

Lettura Parallela

Questa proprietà ti consente di attivare e disattivare il controllo IK. È impostato per impostazione predefinita. Quando Enabled è falso, il controllo IK è disattivato e non risolto dal Risolutore fisico PGSsottostante.

EndEffector

Lettura Parallela

Il Class.IKControl.EndEffector|End

EndEffectorOffset

Lettura Parallela

L'end-eff

In alternativa, puoi utilizzare gli allegati impostando un allegato come EndEffector , che lo sposta sul Target invece delle parti a cui è allegato, ottenendo effettivamente lo stesso Risultato.

Puoi anche usare EndEffectorOffset per modificare quale asse del EndEffector dovrebbe puntare al Target quando si usa 1> LookAt1> come 4>

Offset

Lettura Parallela

L'Offset è un ulteriore CFrame applicato sopra il Class

Lettura Parallela

Il Pole è un Instance opzionale che dà controllo su come le parti nel tuo personaggio dovrebbero piegarsi. Può essere qualsiasi cosa che abbia una posizione nel Mondo, come BasePart , 1>Class.IKControl.Leg1> e 4>Class.IKControl.ChainRoot4>. È per impostazione predefinita nulla. Quando lo specifici, il solvente di base cercherà di piegare le parti in

Priority

Lettura Parallela

Quando più controlli sono attivi su un personaggio, l'ordine in cui vengono risolti dal sistema sottostante influisce sulla posa finale generata. Cambiando questo valore, specifici l'ordine in cui i controlli sono soddisfatti. I valori più alti hanno una priorità più alta e i controlli di priorità più alta vengono risolti più tardi poiché il loro risultato potrebbe sovrascrivere il risultato precedente di altri cont

SmoothTime

Lettura Parallela

Questo valore specifica il numero medio di secondi che ci vuole per il EndEffector per raggiungere il Target . Il comportamento è quello di una molla inibita

Target

Lettura Parallela

Il Target rappresenta

Lettura Parallela

Cambiando il Type, puoi cambiare il comportamento del controllo. Questi sono gli opzioni disponibili:

Weight

Lettura Parallela

Puoi controllare quanto un dato controllo influenza la posa del personaggio utilizzando questa Proprietà. I valori dovrebbero essere nell'intervallo [0, 1]. 0 non ha effetto, e 1 ha effetto completo del controllo IK. I valori oltre questo intervallo sono arrotondati. La facilità con cui si varia questo valore ti consente di mescolare in o fuori un controllo specifico per evitare il movimento di lag. È 1 per impostazione predefinita.

Il peso determina il fattore di interpolazione tra il End-Effector e il target IK. Impostando il peso su 0 non disabilita il controllo IK poiché altri fattori, tra cui il fattore di levitazione SmoothTime e Pole, possono ancora modificare la posa. Per veramente disabilitare il controllo IK, imposta la proprietà Enabled su false.

Metodi

GetChainCount


Restituzioni

GetChainLength


Restituzioni

GetNodeLocalCFrame

Parametri

index: number

Restituzioni

GetNodeWorldCFrame

Parametri

index: number

Restituzioni

GetRawFinalTarget


Restituzioni

GetSmoothedFinalTarget


Restituzioni

Eventi