IKControl
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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
Amostras de código
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
Resumo
Propriedades
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.
Alterna el control de encendido y desactivado. Verdadero por defecto.
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.
Un desplazamiento adicional aplicado en la parte superior de la Target para cambiar el lugar donde se mueve el EndEffector .
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.
Especifica el orden en que se solucionan los controles. Los valores más altos tienen una prioridad más alta.
Especifica el número promedio de segundos que se necesitan para que el EndEffector alcance con facilidad el Target .
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.
Especifica el peso del objetivo de control IK. Debe estar en el rango [0, 1].
Métodos
Propriedades
Enabled
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.
EndEffectorOffset
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
El desplazamiento es un desplazamiento adicional de CFrame aplicado en la parte superior del Target``Datatype.CFrame que produce el final 1>
Pole
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
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
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
Al cambiar el Type, puede cambiar el comportamiento del control. Estas son las opciones disponibles:
- Transformar: es una restriccióncompleta de 6-DoF. Alinear el EndEffector``Datatype.CFrame con el de Target .
- Posición: alinear la posición de EndEffector a la de Target .
- Rotación: alinear la rotación de EndEffector a la de Target .
- LookAt: mueve y orienta toda la cadena para hacer un eje (por defecto, el eje delantero) en el EndEffector punto en un lugar en el mundo especificado por Target .
Weight
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.