IKControl
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Le istanze IKControl generano pose di animazione procedurale utilizzando Kinematica Inversa (IK).Permettono di far rispondere ai personaggi in modo realistico al loro Ambiente.
Ad esempio, puoi fare in modo che un personaggio metta la mano su una maniglia di porta esattamente e il personaggio lo farà indipendentemente dalla sua posizione.I controlli IK forniscono il vantaggio di dover creare meno animazioni per il tuo gioco mentre dai alla tua esperienza una sensazione più realistica e levigata.
IKControls deve essere un figlio di un Humanoid o AnimationController con un Animator e avere tutte le loro proprietà richieste impostate correttamente, altrimenti non hanno alcun effetto.Le proprietà richieste sono Type , EndEffector , Target , ChainRoot .Non appena questi sono Impostare, il modulo IkControl modifica la posa del tuo personaggio come specificato.Il seguente esempio di codice mostra come configurare il tuo primo IKControl e iniziare a creare animazioni più realistiche per il tuo Gioco.
Puoi usare IKControls per creare un personaggio:
- Ruota la sua testa e il torso per guardare un punto di interesse nel Mondo.
- Modifica le posizioni dei suoi piedi per rispondere al terreno dinamico. Aggiusta le sue gambe e i piedi per posizionarli in modo appropriato sul terreno con rocce e pendenze.
- Tieni una pistola e posiziona le sue mani in modo appropriato sul grip senza dover creare animazioni per ogni pistola nel Gioco.
- Mira a un punto nel Mondo, in modo che la punta del punto della pistola si posizioni esattamente su ciò che vuoi sparare. Particolarmente utile nei tiratori in terza persona.
- Posiziona le sue mani sulla ruota di sterzo di un'auto e seguila quando si gira.
- Molto di più!
IKControl sovrascriverà l'animazione per tutte le parti tra il ChainRoot e il EndEffector .Puoi abilitarlo/disabilitarlo usando Enabled o cambiare quanto hanno un effetto sull'animazione sottostante usando il Weight.Fai attenzione: se non configuri correttamente il tuo IKControls, potresti generare pose cattive e irrealistiche!
Campioni di codice
This sample shows the basic setup for an IKControl that moves a character's left arm to reach for a point in the world.
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à
L'ultima parte in cui sei interessato a spostare il tuo personaggio.Ad esempio, il braccio superiore.Deve essere un antenato di EndEffector e essere un BasePart o un Bone nel tuo personaggio.
Attiva/disattiva il controllo. Vero per Offpredefinita.
La parte a cui sei interessato a spostarti per raggiungere il Target .Ad esempio, la mano del tuo personaggio.Deve essere un discendente di ChainRoot e essere un BasePart o un Bone nel tuo personaggio.
Un offset aggiuntivo applicato sopra il EndEffector nel suo spazio locale per cambiare dove si muove.
Un offset aggiuntivo applicato sopra il Target per cambiare dove si muove il EndEffector .
Un'istanza opzionale che determina in quale modo si piega la catena. Puoi usarla per specificare in quale modo si piega un gomito o un ginocchio.
Specifica l'ordine in cui i controlli vengono risolti. I valori più alti hanno una priorità maggiore.
Specifica il numero medio di secondi che ci vogliono perché il EndEffector raggiunga senza problemi il Target .
L'oggetto a cui il EndEffector raggiunge o punta.Può essere qualsiasi cosa abbia una posizione nel Mondo, come BasePart , Attachment , Bone , o Motor6D .
Specifica come il solvente soddisfi questo controllo.
Specifica il peso del bersaglio di controllo IK. Dovrebbe essere nella gamma [0, 1].