IKControl

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Las instancias de IKControl generan poses de animación procedurales usando Inverse Kinematics (IK). Te permite hacer que los personajes respondan realmente a su entorno, ambiente.

Por ejemplo, puede hacer que un personaje coloque su mano en un asa de puerta exactamente, y el personaje lo hará independientemente de su posición. IKControls proporciona la ventaja de tener que crear muchas menos animaciones para su juego mientras que da a su experiencia un sentido más realista y pulido.

IKControls debe ser un hijo de un Humanoid o AnimationController con un 0> Class.

Puedes usar IKControls para crear un personaje:

  • Gira su cabeza y torso para mirar un punto de interés en el mundo.
  • Modifique sus posiciones de pies para responder a terrenos dinámicos. Ajuste sus piernas y pies para colocarlos según sea necesario en el terreno con rocas y pendientes.
  • Sostén un arma y colóquela sus manos apropiadamente en el mango sin necesidad de crear animaciones para cada arma en el juego.
  • Apunta a un punto en el mundo, para que la punta de la arma apunte exactamente a lo que quieres disparar. Útil especialmente en los shooters de tercera persona.
  • Coloca sus manos en el volante de un coche y sigue cuando gira.
  • ¡Mucho más!

IKControl anulará la animación para todas las partes entre el ChainRoot y el

Muestras de código

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

Resumen

Propiedades

  • Leer paralelo

    La última parte en la que estás interesado en mover tu personaje. Por ejemplo, el brazo superior. Debe ser un ancestro de EndEffector y ser un BasePart o un Bone en tu personaje.

  • Leer paralelo

    Alterna el control de encendido y desactivado. Verdadero por defecto.

  • Leer paralelo

    La parte que estás interesado en mover para alcanzar el Target . Por ejemplo, la mano de tu personaje. Debe ser un descendiente de ChainRoot y ser un BasePart o un 1> Class.Bone1> en tu personaje.

  • Un desplazamiento adicional aplicado en la parte superior del EndEffector en su espacio local para cambiar dónde se mueve.

  • Leer paralelo

    Un desplazamiento adicional aplicado en la parte superior de la Target para cambiar el lugar donde se mueve el EndEffector .

  • Leer paralelo

    Una instancia opcional que determina la manera en que se dobla la cadena. Puedes usar esto para especificar la manera en que se dobla un tobogán o rodilla.

  • Leer paralelo

    Especifica el orden en que se solucionan los controles. Los valores más altos tienen una prioridad más alta.

  • Leer paralelo

    Especifica el número promedio de segundos que se necesitan para que el EndEffector alcance con facilidad el Target .

  • Leer paralelo

    El objeto que el EndEffector alcanza o apunta. Puede ser cualquier cosa que tenga una posición en el mundo, como BasePart, Attachment, 1> Class.Bone1> o 4> Class.Motor6D4> .

  • Especifica cómo el solventador satisface este control.

  • Leer paralelo

    Especifica el peso del objetivo de control IK. Debe estar en el rango [0, 1].

Propiedades

ChainRoot

Leer paralelo

Al especificar un ChainRoot y un EndEffector

Enabled

Leer paralelo

Esta propiedad te permite alternar el control de IK de forma activa e inactiva. Está activado por defecto. Cuando Enabled es falso, el control de IK está desactivado y no se resuelve por el solucionador de física PGS.

EndEffector

Leer paralelo

El Class.IKControl.EndEffector|End

EndEffectorOffset

Leer paralelo

El

Alternativamente, puede usar accesorios al configurar un accesorio como EndEffector , que lo mueve al Target en lugar de las partes a las que se adjunta, lo que permite obtener de forma efectiva el mismo resultado.

También puede usar EndEffectorOffset para modificar qué eje del EndEffector debe apuntar al Target cuando se usa 1> LookAt1> como

Offset

Leer paralelo

El desplazamiento es un desplazamiento adicional de CFrame aplicado en la parte superior del Target``Datatype.CFrame que produce el final 1>

Leer paralelo

El Pole es un opcional Instance que te da control sobre cómo deben doblarse las partes en tu personaje. Puede ser cualquier cosa que tenga una posición en el mundo, como BasePart o 2>Class.IKControl.Base2>. Cuando lo especificas, el solventador intentará hacer que las partes se doblen adecuadamente según la posición del personaje. La posición

Priority

Leer paralelo

Cuando hay múltiples controles activos en un personaje, el orden en que se resuelven por el sistema subyacente afecta la postura final generada. Al cambiar este valor, especifica el orden en que se satisfacen los controles. Los valores más altos tienen una prioridad más alta, y los controles de mayor prioridad se resuelven más tarde porque su resultado puede sobresalir el resultado anterior de otros controles. Si tienes múltiples controles en

SmoothTime

Leer paralelo

Este valor especifica el número promedio de segundos que se necesitan para que el EndEffector alcance el Target . El comportamiento es el de una mola de resorte críticamente

Target

Leer paralelo

El Target representa un punto

Leer paralelo

Al cambiar el Type, puede cambiar el comportamiento del control. Estas son las opciones disponibles:

Weight

Leer paralelo

Puede controlar la cantidad de un control que afecta a la postura del personaje al usar esta propiedad. Los valores deben estar en el rango [0, 1]. 0 significa sin efecto, y 1 significa el efecto completo del control IK. Los valores fuera de este rango están redondeados. La suavidad de este valor permite mezclar o apagar un control específico para evitar el movimiento dejar. Es 1 por defecto.

El peso determina el factor de interpolación entre el End-Effector y el IK target. Establecer el peso en 0 no desactiva el control IK porque otros factores, incluido el SmoothTime smoothing factor y Pole, todavía pueden cambiar la postura. Para desactivar realmente el control IK, turn the Enabled property to false.

Métodos

GetChainCount


Devuelve

GetChainLength


Devuelve

GetNodeLocalCFrame

Parámetros

index: number

Devuelve

GetNodeWorldCFrame

Parámetros

index: number

Devuelve

GetRawFinalTarget


Devuelve

GetSmoothedFinalTarget


Devuelve

Eventos