Daw588 / IKB

Simple, lightweight, and performant inverse kinematics bundle for everyone.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inverse Kinematics Bundle

Simple, lightweight, and performant inverse kinematics bundle for everyone.

About 🪧

As the name implies, it’s an Inverse Kinematics Bundle, containing modules for common IK implementations, currently supporting R6 and R15 rigs, with more coming soon!

Purpose 🎭

Makes IK simple and easy to implement for common use cases with little to no knowledge about the math and logic behind the library itself, as well as keeping itself lightweight, and causing little to no impact on the CPU.

Performance ⚡

Module Method Runs Calls Avg. Runtime
R15.AL :Solve() 1,000 10,000 28.1ms
R6.Arm :Solve() 1,000 10,000 18.0ms
R6.Leg :Solve() 1,000 10,000 14.5ms

Credits 🏅

Installation 🏗️

Grab this asset: https://www.roblox.com/library/10493264838

Getting Started 📖

R15

local R15ALIK = require(script.IKB.R15.AL) -- "AL" stands for "Arm & Leg".

local LeftArmIK = R15ALIK.new(Character, "Left", "Arm")
LeftArmIK.ExtendWhenUnreachable = true -- Move body part when it normally cannot reach (do not include this line if you don't want this behavior).
LeftArmIK:Solve(Target.Position)

R6

local R6ArmIK = require(script.IKB.R6.Arm)

local LeftArmIK = R6ArmIK.new(Character, "Left")
-- Note: R6 does not support "ExtendWhenUnreachable" behavior yet.
LeftArmIK:Solve(Target.Position)

License 🧑‍⚖️

MIT License

About

Simple, lightweight, and performant inverse kinematics bundle for everyone.

License:MIT License


Languages

Language:Lua 100.0%