IKControl

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

IKControl les instances génèrent des poses d'animation procédurale à l'aide de kinétique inversée (IK). Ils vous permettent de faire réagir les personnages de manière réaliste à leur environnement.

Par exemple, vous pouvez faire en sorte qu'un personnage place sa main sur un poignée de porte exactement, et le personnage le fera indépendamment de son emplacement. IKControls fournissent l'avantage d'avoir à créer beaucoup moins d'animations pour votre jeu tout en donnant à votre expérience un meilleur sentiment réaliste et poli.

IKControls doit être un enfant d'un Humanoid ou d'un AnimationController avec un 0>

Vous pouvez utiliser IKControls pour faire un personnage :

  • Faites pivoter sa tête et son torse pour regarder un point d'intérêt dans le monde.
  • Modifiez ses positions de pieds pour répondre aux terrains dynamiques. Ajustez ses jambes et ses pieds pour les placer selon les rochers et les pentes.
  • Tenez une arme et placez ses mains correctement sur le poignée sans avoir à créer des animations pour chaque arme dans le jeu.
  • Visez un point dans le monde, afin que le bout du point d'arme soit exactement ce que vous voulez tirer. Utile dans les tirs à la troisième personne.
  • Placez ses mains sur le volant d'une voiture et suivez-le lorsqu'il tourne.
  • Beaucoup plus!

IKControl remplacera l'animation pour toutes les parties entre le ChainRoot et le Class.

Échantillons de code

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

Résumé

Propriétés

  • Lecture parallèle

    La dernière partie que vous êtes intéressé à déplacer votre personnage. Par exemple, le bras supérieur. Doit être un ancêtre de EndEffector et être un BasePart ou un Bone dans votre personnage.

  • Lecture parallèle

    Bascule le contrôle sur et off. Vrai par défaut.

  • Lecture parallèle

    La partie que vous êtes intéressé à déplacer pour atteindre le Target. Par exemple, la main de votre personnage. Doit être une descendant de ChainRoot et être un BasePart ou un 1> Class.Bone1> dans votre personnage.

  • Lecture parallèle

    Un décalage supplémentaire appliqué au-dessus du EndEffector dans son espace local pour changer où il se déplace.

  • Lecture parallèle

    Un décalage supplémentaire appliqué au-dessus de la Target pour modifier l'endroit où le EndEffector se déplace.

  • Lecture parallèle

    Une instance facultative qui détermine la façon dont la chaîne se plie. Vous pouvez l'utiliser pour spécifier la façon dont un coude ou une genouillère se plie.

  • Lecture parallèle

    Spécifie l'ordre dans lequel les contrôles sont résolus. Les valeurs plus élevées ont une priorité plus élevée.

  • Lecture parallèle

    Spécifie le nombre moyen de secondes qu'il faut pour que le EndEffector atteigne l'Target .

  • Lecture parallèle

    L'objet que le EndEffector atteint ou pointe. Il peut être n'importe quoi qui a une position dans le monde, comme BasePart, Attachment, 1> Class.Bone1>, ou 4> Class.Motor6D4>.

  • Lecture parallèle

    Spécifie comment le solvant satisfait ce contrôle.

  • Lecture parallèle

    Spécifie le poids de la cible de contrôle IK. Il devrait être dans la gamme [0, 1].

Propriétés

ChainRoot

Lecture parallèle

En spécifiant un ChainRoot et un EndEffector comme valeur de

Enabled

Lecture parallèle

Cette propriété vous permet de basculer le contrôle IK oui ou off. Il est par défaut. Lorsque Enabled est faux, le contrôle IK est désactivé et n'est pas résolu par le solveur.

EndEffector

Lecture parallèle

La partie <a href="/reference/engine/datatypes">de la chaîne de votre personnage</a> que vous souhaitez affecter. Par exemple, il pourrait s

EndEffectorOffset

Lecture parallèle

L'偏

Alternativement, vous pouvez utiliser des accessoires en définissant un accessoire comme EndEffector , ce qui le déplace vers le Target au lieu des parties qu'il attache, ce qui donne efficacement le même resultats.

Vous pouvez également utiliser EndEffectorOffset pour modifier l'axe dans lequel le EndEffector devrait pointer sur le Target lors de l'utilisation de 1> LookAt1>

Offset

Lecture parallèle

L'Offset est un ajout CFrame appliqué au-dessus de la Target Datatype.C

Lecture parallèle

Le Pole est un optionnel Instance qui vous donne le contrôle sur la façon dont les parties de vot

Priority

Lecture parallèle

Lorsque plusieurs contrôles sont actifs sur un personnage, l'ordre dans lequel ils sont résolus par le système sous-jacent affecte la posture finale générée. En changeant cette valeur, vous spécifiez l'ordre dans lequel les contrôles sont satisfaits. Les valeurs plus élevées ont une priorité plus élevée et les contrôles de plus haut niveau sont résolus plus tard car leur résultat peut dépasser le résultat précédent des

SmoothTime

Lecture parallèle

Cette valeur spécifie le nombre moyen de secondes qu'il faut pour que le EndEffector atteigne le Target. Le comportement est que d'une ressort de rupt

Target

Lecture parallèle

La Target représente un point (

Lecture parallèle

En changeant le Type, vous pouvez modifier le comportement du contrôle. Voici les options disponibles :

  • Transformer : c'est une contrainte 6-DoF complète. Aligne le EndEffector``Datatype.CFrame à celui de l' Target .
  • Position: positionne la position de EndEffector à celle de Target.
  • Rotation : EndEffector la rotation de Target à celle de Class.IKControl.Target|Target.
  • LookAt: déplace et oriente toute la chaîne pour créer un axe (par défaut, l'axe avant) sur le EndEffector point à une position dans le monde spécifiée par Target.

Weight

Lecture parallèle

Vous pouvez contrôler la mesure dans laquelle un contrôle affecte la posture du personnage en utilisant cette propriété. Les valeurs devraient être dans la gamme [0, 1]. 0 signifie aucun effet, et 1 signifie l'effet complet du contrôle IK. Les valeurs en dehors de cette gamme sont arrondies. La valeur lissement varie ce valeur pour permettre de mélanger dans ou hors un contrôle pour éviter le mouvement de secousse. Il est par défaut 1.

Le poids détermine le facteur d'interpolation entre le End-Effector et la cible IK. En activant le poids à 0, le IK Control ne désactive pas le Control IK car d'autres facteurs, y compris le SmoothTime smoothing factor et Pole, peuvent toujours modifier la position. Pour vraiment désactiver le IK Control, tournez la propriété Enabled sur false.

Méthodes

GetChainCount


Retours

GetChainLength


Retours

GetNodeLocalCFrame

Paramètres

index: number

Retours

GetNodeWorldCFrame

Paramètres

index: number

Retours

GetRawFinalTarget


Retours

GetSmoothedFinalTarget


Retours

Évènements