@quenty/ik 15.35.3-canary.b2b6e1d.0 → 15.35.4-canary.90de6eb.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -1
- package/package.json +24 -24
- package/src/Client/GripPointer.lua +1 -0
- package/src/Client/IKServiceClient.lua +1 -0
- package/src/Client/Rig/IKRigAimerLocalPlayer.lua +3 -1
- package/src/Client/Rig/IKRigClient.lua +1 -0
- package/src/Server/IKService.lua +1 -0
- package/src/Server/Rig/IKRig.lua +1 -0
- package/src/Shared/Arm/ArmIKBase.story.lua +4 -2
- package/src/Shared/Arm/IKAimPositionPriorites.lua +1 -0
- package/src/Shared/Grip/IKGripUtils.lua +6 -1
- package/src/Shared/Grip/IKLeftGrip.lua +6 -3
- package/src/Shared/Grip/IKRightGrip.lua +6 -3
- package/src/Shared/Interfaces/IKRigInterface.lua +1 -0
- package/src/Shared/Rig/IKRigBase.lua +7 -5
- package/src/Shared/Rig/IKRigUtils.lua +1 -0
- package/src/Shared/Torso/TorsoIKBase.lua +1 -0
- package/src/Shared/Torso/TorsoIKUtils.lua +1 -0
- package/test/scripts/Client/ClientMain.client.lua +1 -0
- package/test/scripts/Server/ServerMain.server.lua +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,15 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [15.35.
|
|
6
|
+
## [15.35.4-canary.90de6eb.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ik@15.35.3...@quenty/ik@15.35.4-canary.90de6eb.0) (2026-01-03)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/ik
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [15.35.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ik@15.35.2...@quenty/ik@15.35.3) (2025-12-31)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @quenty/ik
|
|
9
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/ik",
|
|
3
|
-
"version": "15.35.
|
|
3
|
+
"version": "15.35.4-canary.90de6eb.0",
|
|
4
4
|
"description": "Inverse Kinematics for characters on Roblox",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -27,35 +27,35 @@
|
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@quenty/acceltween": "2.5.3",
|
|
30
|
-
"@quenty/baseobject": "10.9.0",
|
|
31
|
-
"@quenty/binder": "14.25.
|
|
32
|
-
"@quenty/brio": "14.20.
|
|
33
|
-
"@quenty/camera": "14.26.
|
|
34
|
-
"@quenty/characterutils": "12.22.
|
|
35
|
-
"@quenty/humanoidtracker": "13.21.
|
|
36
|
-
"@quenty/instanceutils": "13.20.
|
|
37
|
-
"@quenty/loader": "10.9.0",
|
|
38
|
-
"@quenty/maid": "3.5.0",
|
|
30
|
+
"@quenty/baseobject": "10.9.1-canary.90de6eb.0",
|
|
31
|
+
"@quenty/binder": "14.25.7-canary.90de6eb.0",
|
|
32
|
+
"@quenty/brio": "14.20.5-canary.90de6eb.0",
|
|
33
|
+
"@quenty/camera": "14.26.7-canary.90de6eb.0",
|
|
34
|
+
"@quenty/characterutils": "12.22.6-canary.90de6eb.0",
|
|
35
|
+
"@quenty/humanoidtracker": "13.21.7-canary.90de6eb.0",
|
|
36
|
+
"@quenty/instanceutils": "13.20.6-canary.90de6eb.0",
|
|
37
|
+
"@quenty/loader": "10.9.1-canary.90de6eb.0",
|
|
38
|
+
"@quenty/maid": "3.5.1-canary.90de6eb.0",
|
|
39
39
|
"@quenty/math": "2.7.3",
|
|
40
|
-
"@quenty/motor6d": "7.28.
|
|
41
|
-
"@quenty/optional": "11.9.0",
|
|
42
|
-
"@quenty/promise": "10.12.
|
|
43
|
-
"@quenty/qframe": "10.12.
|
|
44
|
-
"@quenty/r15utils": "13.21.
|
|
45
|
-
"@quenty/ragdoll": "15.34.
|
|
46
|
-
"@quenty/remoting": "12.21.
|
|
47
|
-
"@quenty/rx": "13.20.
|
|
48
|
-
"@quenty/servicebag": "11.13.4-canary.
|
|
49
|
-
"@quenty/signal": "7.11.3-canary.
|
|
40
|
+
"@quenty/motor6d": "7.28.7-canary.90de6eb.0",
|
|
41
|
+
"@quenty/optional": "11.9.1-canary.90de6eb.0",
|
|
42
|
+
"@quenty/promise": "10.12.4-canary.90de6eb.0",
|
|
43
|
+
"@quenty/qframe": "10.12.5-canary.90de6eb.0",
|
|
44
|
+
"@quenty/r15utils": "13.21.6-canary.90de6eb.0",
|
|
45
|
+
"@quenty/ragdoll": "15.34.4-canary.90de6eb.0",
|
|
46
|
+
"@quenty/remoting": "12.21.6-canary.90de6eb.0",
|
|
47
|
+
"@quenty/rx": "13.20.4-canary.90de6eb.0",
|
|
48
|
+
"@quenty/servicebag": "11.13.4-canary.90de6eb.0",
|
|
49
|
+
"@quenty/signal": "7.11.3-canary.90de6eb.0",
|
|
50
50
|
"@quenty/table": "3.8.0",
|
|
51
|
-
"@quenty/tie": "10.26.
|
|
52
|
-
"@quenty/valueobject": "13.21.
|
|
51
|
+
"@quenty/tie": "10.26.7-canary.90de6eb.0",
|
|
52
|
+
"@quenty/valueobject": "13.21.7-canary.90de6eb.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@quenty/rigbuilderutils": "10.22.
|
|
55
|
+
"@quenty/rigbuilderutils": "10.22.7-canary.90de6eb.0"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "90de6ebb6e0cb5e6798e08b312cb1864c1d3354c"
|
|
61
61
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!nonstrict
|
|
1
2
|
--[=[
|
|
2
3
|
Handles repliation and aiming of the local player's character for
|
|
3
4
|
IK.
|
|
@@ -11,6 +12,7 @@ local require = require(script.Parent.loader).load(script)
|
|
|
11
12
|
local BaseObject = require("BaseObject")
|
|
12
13
|
local CameraStackService = require("CameraStackService")
|
|
13
14
|
local IKAimPositionPriorites = require("IKAimPositionPriorites")
|
|
15
|
+
local ServiceBag = require("ServiceBag")
|
|
14
16
|
|
|
15
17
|
local MAX_AGE_FOR_AIM_DATA = 0.2
|
|
16
18
|
local DEFAULT_REPLICATION_RATE = 1.3
|
|
@@ -27,7 +29,7 @@ IKRigAimerLocalPlayer.__index = IKRigAimerLocalPlayer
|
|
|
27
29
|
@param ikRig IKRigClient
|
|
28
30
|
@return IKRigAimerLocalPlayer
|
|
29
31
|
]=]
|
|
30
|
-
function IKRigAimerLocalPlayer.new(serviceBag, ikRig)
|
|
32
|
+
function IKRigAimerLocalPlayer.new(serviceBag: ServiceBag.ServiceBag, ikRig)
|
|
31
33
|
local self = setmetatable(BaseObject.new(), IKRigAimerLocalPlayer)
|
|
32
34
|
|
|
33
35
|
self._cameraStackService = serviceBag:GetService(CameraStackService)
|
package/src/Server/IKService.lua
CHANGED
package/src/Server/Rig/IKRig.lua
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
--!nonstrict
|
|
1
2
|
--[[
|
|
2
3
|
@class ArmIKBase.story
|
|
3
4
|
]]
|
|
4
5
|
|
|
5
|
-
local require =
|
|
6
|
-
|
|
6
|
+
local require = (require :: any)(
|
|
7
|
+
game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent
|
|
8
|
+
).bootstrapStory(script) :: typeof(require(script.Parent.loader).load(script))
|
|
7
9
|
|
|
8
10
|
local RunService = game:GetService("RunService")
|
|
9
11
|
local Workspace = game:GetService("Workspace")
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
--!nonstrict
|
|
1
2
|
--[=[
|
|
2
3
|
Utility methods for grip attachments
|
|
3
4
|
@class IKGripUtils
|
|
4
5
|
]=]
|
|
5
6
|
|
|
7
|
+
local require = require(script.Parent.loader).load(script)
|
|
8
|
+
|
|
9
|
+
local Binder = require("Binder")
|
|
10
|
+
|
|
6
11
|
local IKGripUtils = {}
|
|
7
12
|
|
|
8
13
|
--[=[
|
|
@@ -26,7 +31,7 @@ local IKGripUtils = {}
|
|
|
26
31
|
@param humanoid Humanoid
|
|
27
32
|
@return ObjectValue
|
|
28
33
|
]=]
|
|
29
|
-
function IKGripUtils.create(binder
|
|
34
|
+
function IKGripUtils.create(binder: Binder.Binder<any>, humanoid: Humanoid): ObjectValue
|
|
30
35
|
assert(binder, "Bad binder")
|
|
31
36
|
assert(typeof(humanoid) == "Instance" and humanoid:IsA("Humanoid"), "Bad humanoid")
|
|
32
37
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Left grip
|
|
3
4
|
@class IKLeftGrip
|
|
@@ -13,8 +14,10 @@ local IKLeftGrip = setmetatable({}, IKGripBase)
|
|
|
13
14
|
IKLeftGrip.ClassName = "IKLeftGrip"
|
|
14
15
|
IKLeftGrip.__index = IKLeftGrip
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
export type IKLeftGrip = typeof(setmetatable({} :: {}, {} :: typeof({ __index = IKLeftGrip }))) & IKGripBase.IKGripBase
|
|
18
|
+
|
|
19
|
+
function IKLeftGrip.new(objectValue: ObjectValue, serviceBag: ServiceBag.ServiceBag): IKLeftGrip
|
|
20
|
+
local self: IKLeftGrip = setmetatable(IKGripBase.new(objectValue, serviceBag) :: any, IKLeftGrip)
|
|
18
21
|
|
|
19
22
|
self:PromiseIKRig()
|
|
20
23
|
:Then(function(ikRig)
|
|
@@ -27,4 +30,4 @@ function IKLeftGrip.new(objectValue, serviceBag: ServiceBag.ServiceBag)
|
|
|
27
30
|
return self
|
|
28
31
|
end
|
|
29
32
|
|
|
30
|
-
return Binder.new("IKLeftGrip", IKLeftGrip)
|
|
33
|
+
return Binder.new("IKLeftGrip", IKLeftGrip :: any) :: Binder.Binder<IKLeftGrip>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Right grip
|
|
3
4
|
@class IKRightGrip
|
|
@@ -13,8 +14,10 @@ local IKRightGrip = setmetatable({}, IKGripBase)
|
|
|
13
14
|
IKRightGrip.ClassName = "IKRightGrip"
|
|
14
15
|
IKRightGrip.__index = IKRightGrip
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
export type IKRightGrip = typeof(setmetatable({} :: {}, {} :: typeof({ __index = IKRightGrip }))) & IKGripBase.IKGripBase
|
|
18
|
+
|
|
19
|
+
function IKRightGrip.new(objectValue: ObjectValue, serviceBag: ServiceBag.ServiceBag): IKRightGrip
|
|
20
|
+
local self: IKRightGrip = setmetatable(IKGripBase.new(objectValue, serviceBag) :: any, IKRightGrip)
|
|
18
21
|
|
|
19
22
|
self:PromiseIKRig()
|
|
20
23
|
:Then(function(ikRig)
|
|
@@ -27,4 +30,4 @@ function IKRightGrip.new(objectValue: ObjectValue, serviceBag: ServiceBag.Servic
|
|
|
27
30
|
return self
|
|
28
31
|
end
|
|
29
32
|
|
|
30
|
-
return Binder.new("IKRightGrip", IKRightGrip)
|
|
33
|
+
return Binder.new("IKRightGrip", IKRightGrip :: any) :: Binder.Binder<IKRightGrip>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!nonstrict
|
|
1
2
|
--[=[
|
|
2
3
|
@class IKRigBase
|
|
3
4
|
]=]
|
|
@@ -8,6 +9,7 @@ local ArmIKBase = require("ArmIKBase")
|
|
|
8
9
|
local BaseObject = require("BaseObject")
|
|
9
10
|
local CharacterUtils = require("CharacterUtils")
|
|
10
11
|
local Promise = require("Promise")
|
|
12
|
+
local ServiceBag = require("ServiceBag")
|
|
11
13
|
local Signal = require("Signal")
|
|
12
14
|
local TorsoIKBase = require("TorsoIKBase")
|
|
13
15
|
|
|
@@ -15,7 +17,7 @@ local IKRigBase = setmetatable({}, BaseObject)
|
|
|
15
17
|
IKRigBase.ClassName = "IKRigBase"
|
|
16
18
|
IKRigBase.__index = IKRigBase
|
|
17
19
|
|
|
18
|
-
function IKRigBase.new(humanoid, serviceBag)
|
|
20
|
+
function IKRigBase.new(humanoid: Humanoid, serviceBag: ServiceBag.ServiceBag)
|
|
19
21
|
local self = setmetatable(BaseObject.new(humanoid, serviceBag), IKRigBase)
|
|
20
22
|
|
|
21
23
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
@@ -30,19 +32,19 @@ function IKRigBase.new(humanoid, serviceBag)
|
|
|
30
32
|
return self
|
|
31
33
|
end
|
|
32
34
|
|
|
33
|
-
function IKRigBase:GetLastUpdateTime()
|
|
35
|
+
function IKRigBase:GetLastUpdateTime(): number
|
|
34
36
|
return self._lastUpdateTime
|
|
35
37
|
end
|
|
36
38
|
|
|
37
|
-
function IKRigBase:GetPlayer()
|
|
39
|
+
function IKRigBase:GetPlayer(): Player?
|
|
38
40
|
return CharacterUtils.getPlayerFromCharacter(self._obj)
|
|
39
41
|
end
|
|
40
42
|
|
|
41
|
-
function IKRigBase:GetHumanoid()
|
|
43
|
+
function IKRigBase:GetHumanoid(): Humanoid
|
|
42
44
|
return self._obj
|
|
43
45
|
end
|
|
44
46
|
|
|
45
|
-
function IKRigBase:Update()
|
|
47
|
+
function IKRigBase:Update(): ()
|
|
46
48
|
self._lastUpdateTime = tick()
|
|
47
49
|
self.Updating:Fire()
|
|
48
50
|
|