@quenty/ik 15.23.1-canary.523.2b7508a.0 → 15.23.1
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
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
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.23.1
|
|
6
|
+
## [15.23.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ik@15.23.0...@quenty/ik@15.23.1) (2025-03-21)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @quenty/ik
|
|
9
9
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/ik",
|
|
3
|
-
"version": "15.23.1
|
|
3
|
+
"version": "15.23.1",
|
|
4
4
|
"description": "Inverse Kinematics for characters on Roblox",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -26,36 +26,36 @@
|
|
|
26
26
|
"Quenty"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@quenty/acceltween": "2.5.0",
|
|
30
|
-
"@quenty/baseobject": "10.8.0",
|
|
31
|
-
"@quenty/binder": "14.18.
|
|
32
|
-
"@quenty/brio": "14.16.
|
|
33
|
-
"@quenty/camera": "14.19.
|
|
34
|
-
"@quenty/characterutils": "12.17.
|
|
35
|
-
"@quenty/humanoidtracker": "13.16.
|
|
36
|
-
"@quenty/instanceutils": "13.16.
|
|
37
|
-
"@quenty/loader": "10.8.0",
|
|
38
|
-
"@quenty/maid": "3.4.0",
|
|
39
|
-
"@quenty/math": "2.7.
|
|
40
|
-
"@quenty/motor6d": "7.19.
|
|
41
|
-
"@quenty/optional": "11.8.0",
|
|
42
|
-
"@quenty/promise": "10.10.
|
|
43
|
-
"@quenty/qframe": "10.10.
|
|
44
|
-
"@quenty/r15utils": "13.16.
|
|
45
|
-
"@quenty/ragdoll": "15.22.1
|
|
46
|
-
"@quenty/remoting": "12.17.
|
|
47
|
-
"@quenty/rx": "13.16.
|
|
48
|
-
"@quenty/servicebag": "11.11.
|
|
49
|
-
"@quenty/signal": "7.10.0",
|
|
50
|
-
"@quenty/table": "3.7.
|
|
51
|
-
"@quenty/tie": "10.19.
|
|
52
|
-
"@quenty/valueobject": "13.16.
|
|
29
|
+
"@quenty/acceltween": "^2.5.0",
|
|
30
|
+
"@quenty/baseobject": "^10.8.0",
|
|
31
|
+
"@quenty/binder": "^14.18.1",
|
|
32
|
+
"@quenty/brio": "^14.16.1",
|
|
33
|
+
"@quenty/camera": "^14.19.1",
|
|
34
|
+
"@quenty/characterutils": "^12.17.1",
|
|
35
|
+
"@quenty/humanoidtracker": "^13.16.1",
|
|
36
|
+
"@quenty/instanceutils": "^13.16.1",
|
|
37
|
+
"@quenty/loader": "^10.8.0",
|
|
38
|
+
"@quenty/maid": "^3.4.0",
|
|
39
|
+
"@quenty/math": "^2.7.1",
|
|
40
|
+
"@quenty/motor6d": "^7.19.1",
|
|
41
|
+
"@quenty/optional": "^11.8.0",
|
|
42
|
+
"@quenty/promise": "^10.10.1",
|
|
43
|
+
"@quenty/qframe": "^10.10.1",
|
|
44
|
+
"@quenty/r15utils": "^13.16.1",
|
|
45
|
+
"@quenty/ragdoll": "^15.22.1",
|
|
46
|
+
"@quenty/remoting": "^12.17.1",
|
|
47
|
+
"@quenty/rx": "^13.16.1",
|
|
48
|
+
"@quenty/servicebag": "^11.11.1",
|
|
49
|
+
"@quenty/signal": "^7.10.0",
|
|
50
|
+
"@quenty/table": "^3.7.1",
|
|
51
|
+
"@quenty/tie": "^10.19.1",
|
|
52
|
+
"@quenty/valueobject": "^13.16.1"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@quenty/rigbuilderutils": "10.18.
|
|
55
|
+
"@quenty/rigbuilderutils": "^10.18.1"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "6b7c3e15e60cdb185986207b574e2b5591261e7a"
|
|
61
61
|
}
|
|
@@ -76,7 +76,7 @@ end
|
|
|
76
76
|
@param humanoid Humanoid
|
|
77
77
|
@return IKRigClient?
|
|
78
78
|
]=]
|
|
79
|
-
function IKServiceClient:GetRig(humanoid)
|
|
79
|
+
function IKServiceClient:GetRig(humanoid: Humanoid)
|
|
80
80
|
assert(self._serviceBag, "Not initialized")
|
|
81
81
|
assert(typeof(humanoid) == "Instance" and humanoid:IsA("Humanoid"), "Bad humanoid")
|
|
82
82
|
|
|
@@ -88,7 +88,7 @@ end
|
|
|
88
88
|
@param humanoid Humanoid
|
|
89
89
|
@return Promise<IKRigClient>
|
|
90
90
|
]=]
|
|
91
|
-
function IKServiceClient:PromiseRig(humanoid)
|
|
91
|
+
function IKServiceClient:PromiseRig(humanoid: Humanoid)
|
|
92
92
|
assert(self._serviceBag, "Not initialized")
|
|
93
93
|
assert(typeof(humanoid) == "Instance" and humanoid:IsA("Humanoid"), "Bad humanoid")
|
|
94
94
|
|
|
@@ -111,9 +111,9 @@ end
|
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
@param position Vector3? -- May be nil to set no position
|
|
114
|
-
@param
|
|
114
|
+
@param priority number?
|
|
115
115
|
]=]
|
|
116
|
-
function IKServiceClient:SetAimPosition(position,
|
|
116
|
+
function IKServiceClient:SetAimPosition(position: Vector3, priority: number?)
|
|
117
117
|
assert(self._serviceBag, "Not initialized")
|
|
118
118
|
|
|
119
119
|
if position ~= position then
|
|
@@ -126,7 +126,7 @@ function IKServiceClient:SetAimPosition(position, optionalPriority)
|
|
|
126
126
|
return
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
-
aimer:SetAimPosition(position,
|
|
129
|
+
aimer:SetAimPosition(position, priority)
|
|
130
130
|
end
|
|
131
131
|
|
|
132
132
|
--[=[
|
|
@@ -212,4 +212,4 @@ function IKServiceClient:Destroy()
|
|
|
212
212
|
self._maid:DoCleaning()
|
|
213
213
|
end
|
|
214
214
|
|
|
215
|
-
return IKServiceClient
|
|
215
|
+
return IKServiceClient
|
package/src/Server/IKService.lua
CHANGED
|
@@ -24,7 +24,7 @@ local RunService = game:GetService("RunService")
|
|
|
24
24
|
|
|
25
25
|
local Maid = require("Maid")
|
|
26
26
|
|
|
27
|
-
local SERVER_UPDATE_RATE = 1/10
|
|
27
|
+
local SERVER_UPDATE_RATE = 1 / 10
|
|
28
28
|
|
|
29
29
|
local IKService = {}
|
|
30
30
|
IKService.ServiceName = "IKService"
|
|
@@ -89,7 +89,9 @@ end
|
|
|
89
89
|
@param humanoid Humanoid
|
|
90
90
|
@return IKRig?
|
|
91
91
|
]=]
|
|
92
|
-
function IKService:GetRig(humanoid)
|
|
92
|
+
function IKService:GetRig(humanoid: Humanoid)
|
|
93
|
+
assert(typeof(humanoid) == "Instance" and humanoid:IsA("Humanoid"), "Bad humanoid")
|
|
94
|
+
|
|
93
95
|
return self._ikRigBinder:Bind(humanoid)
|
|
94
96
|
end
|
|
95
97
|
|
|
@@ -98,8 +100,8 @@ end
|
|
|
98
100
|
@param humanoid Humanoid
|
|
99
101
|
@return Promise<IKRig>
|
|
100
102
|
]=]
|
|
101
|
-
function IKService:PromiseRig(humanoid)
|
|
102
|
-
assert(typeof(humanoid) == "Instance", "Bad humanoid")
|
|
103
|
+
function IKService:PromiseRig(humanoid: Humanoid)
|
|
104
|
+
assert(typeof(humanoid) == "Instance" and humanoid:IsA("Humanoid"), "Bad humanoid")
|
|
103
105
|
|
|
104
106
|
self._ikRigBinder:Bind(humanoid)
|
|
105
107
|
return self._ikRigBinder:Promise(humanoid)
|
|
@@ -109,7 +111,7 @@ end
|
|
|
109
111
|
Unbinds the rig from the humanoid.
|
|
110
112
|
@param humanoid Humanoid
|
|
111
113
|
]=]
|
|
112
|
-
function IKService:RemoveRig(humanoid)
|
|
114
|
+
function IKService:RemoveRig(humanoid: Humanoid)
|
|
113
115
|
assert(typeof(humanoid) == "Instance" and humanoid:IsA("Humanoid"), "Bad humanoid")
|
|
114
116
|
|
|
115
117
|
self._ikRigBinder:Unbind(humanoid)
|
|
@@ -128,7 +130,7 @@ end
|
|
|
128
130
|
@param humanoid Humanoid
|
|
129
131
|
@param target Vector3?
|
|
130
132
|
]=]
|
|
131
|
-
function IKService:UpdateServerRigTarget(humanoid, target)
|
|
133
|
+
function IKService:UpdateServerRigTarget(humanoid: Humanoid, target)
|
|
132
134
|
assert(typeof(humanoid) == "Instance" and humanoid:IsA("Humanoid"), "Bad humanoid")
|
|
133
135
|
assert(typeof(target) == "Vector3", "Bad target")
|
|
134
136
|
|
|
@@ -141,11 +143,11 @@ function IKService:UpdateServerRigTarget(humanoid, target)
|
|
|
141
143
|
serverRig:SetAimPosition(target)
|
|
142
144
|
end
|
|
143
145
|
|
|
144
|
-
function IKService:_handlePlayerRemoving(player)
|
|
146
|
+
function IKService:_handlePlayerRemoving(player: Player)
|
|
145
147
|
self._maid[player] = nil
|
|
146
148
|
end
|
|
147
149
|
|
|
148
|
-
function IKService:_handlePlayer(player)
|
|
150
|
+
function IKService:_handlePlayer(player: Player)
|
|
149
151
|
local maid = Maid.new()
|
|
150
152
|
|
|
151
153
|
local humanoidTracker = self._humanoidTrackerService:GetHumanoidTracker(player)
|
|
@@ -188,4 +190,4 @@ function IKService:Destroy()
|
|
|
188
190
|
self._maid:DoCleaning()
|
|
189
191
|
end
|
|
190
192
|
|
|
191
|
-
return IKService
|
|
193
|
+
return IKService
|
|
@@ -17,16 +17,16 @@ function IKDataService:Init(serviceBag)
|
|
|
17
17
|
self._tieRealmService = self._serviceBag:GetService(TieRealmService)
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
function IKDataService:PromiseRig(humanoid)
|
|
20
|
+
function IKDataService:PromiseRig(humanoid: Humanoid)
|
|
21
21
|
return IKRigInterface:Promise(humanoid, self._tieRealmService:GetTieRealm())
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
function IKDataService:ObserveRig(humanoid)
|
|
24
|
+
function IKDataService:ObserveRig(humanoid: Humanoid)
|
|
25
25
|
return IKRigInterface:Observe(humanoid, self._tieRealmService:GetTieRealm())
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
function IKDataService:ObserveRigBrio(humanoid)
|
|
28
|
+
function IKDataService:ObserveRigBrio(humanoid: Humanoid)
|
|
29
29
|
return IKRigInterface:ObserveBrio(humanoid, self._tieRealmService:GetTieRealm())
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
return IKDataService
|
|
32
|
+
return IKDataService
|
|
@@ -16,7 +16,7 @@ local TorsoIKBase = setmetatable({}, BaseObject)
|
|
|
16
16
|
TorsoIKBase.__index = TorsoIKBase
|
|
17
17
|
TorsoIKBase.ClassName = "TorsoIKBase"
|
|
18
18
|
|
|
19
|
-
function TorsoIKBase.new(humanoid)
|
|
19
|
+
function TorsoIKBase.new(humanoid: Humanoid)
|
|
20
20
|
local self = setmetatable(BaseObject.new(), TorsoIKBase)
|
|
21
21
|
|
|
22
22
|
self._humanoid = humanoid or error("No humanoid")
|
|
@@ -24,38 +24,38 @@ function TorsoIKBase.new(humanoid)
|
|
|
24
24
|
self.Pointed = self._maid:Add(Signal.new()) -- :Fire(position | nil)
|
|
25
25
|
|
|
26
26
|
self._resources = IKResource.new(IKResourceUtils.createResource({
|
|
27
|
-
name = "Character"
|
|
28
|
-
robloxName = self._humanoid.Parent.Name
|
|
27
|
+
name = "Character",
|
|
28
|
+
robloxName = self._humanoid.Parent.Name,
|
|
29
29
|
children = {
|
|
30
30
|
IKResourceUtils.createResource({
|
|
31
|
-
name = "RootPart"
|
|
32
|
-
robloxName = "HumanoidRootPart"
|
|
33
|
-
})
|
|
31
|
+
name = "RootPart",
|
|
32
|
+
robloxName = "HumanoidRootPart",
|
|
33
|
+
}),
|
|
34
34
|
IKResourceUtils.createResource({
|
|
35
|
-
name = "LowerTorso"
|
|
36
|
-
robloxName = "LowerTorso"
|
|
37
|
-
})
|
|
35
|
+
name = "LowerTorso",
|
|
36
|
+
robloxName = "LowerTorso",
|
|
37
|
+
}),
|
|
38
38
|
IKResourceUtils.createResource({
|
|
39
|
-
name = "UpperTorso"
|
|
40
|
-
robloxName = "UpperTorso"
|
|
39
|
+
name = "UpperTorso",
|
|
40
|
+
robloxName = "UpperTorso",
|
|
41
41
|
children = {
|
|
42
42
|
IKResourceUtils.createResource({
|
|
43
|
-
name = "Waist"
|
|
44
|
-
robloxName = "Waist"
|
|
45
|
-
})
|
|
46
|
-
}
|
|
47
|
-
})
|
|
43
|
+
name = "Waist",
|
|
44
|
+
robloxName = "Waist",
|
|
45
|
+
}),
|
|
46
|
+
},
|
|
47
|
+
}),
|
|
48
48
|
IKResourceUtils.createResource({
|
|
49
|
-
name = "Head"
|
|
50
|
-
robloxName = "Head"
|
|
49
|
+
name = "Head",
|
|
50
|
+
robloxName = "Head",
|
|
51
51
|
children = {
|
|
52
52
|
IKResourceUtils.createResource({
|
|
53
|
-
name = "Neck"
|
|
54
|
-
robloxName = "Neck"
|
|
55
|
-
})
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
}
|
|
53
|
+
name = "Neck",
|
|
54
|
+
robloxName = "Neck",
|
|
55
|
+
}),
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
},
|
|
59
59
|
}))
|
|
60
60
|
self._maid:GiveTask(self._resources)
|
|
61
61
|
self._resources:SetInstance(self._humanoid.Parent or error("No humanoid.Parent"))
|
|
@@ -121,10 +121,8 @@ function TorsoIKBase:_recordLastValidTransforms()
|
|
|
121
121
|
end
|
|
122
122
|
|
|
123
123
|
function TorsoIKBase:Update()
|
|
124
|
-
self._relWaistTransform = CFrame.Angles(0, self._waistY.p, 0)
|
|
125
|
-
|
|
126
|
-
self._relNeckTransform = CFrame.Angles(0, self._headY.p, 0)
|
|
127
|
-
* CFrame.Angles(self._headZ.p, 0, 0)
|
|
124
|
+
self._relWaistTransform = CFrame.Angles(0, self._waistY.p, 0) * CFrame.Angles(self._waistZ.p, 0, 0)
|
|
125
|
+
self._relNeckTransform = CFrame.Angles(0, self._headY.p, 0) * CFrame.Angles(self._headZ.p, 0, 0)
|
|
128
126
|
|
|
129
127
|
self:UpdateTransformOnly()
|
|
130
128
|
end
|
|
@@ -191,4 +189,4 @@ function TorsoIKBase:GetUpperTorsoCFrame()
|
|
|
191
189
|
return lowerTorso.CFrame
|
|
192
190
|
end
|
|
193
191
|
|
|
194
|
-
return TorsoIKBase
|
|
192
|
+
return TorsoIKBase
|