- Dokumentacja
- Funkcje klienta
- getPedBoneMatrix
Funkcja
getPedBoneMatrix
Zwraca macierz 4x4 kości postaci w tej klatce, w takim samym układzie jak getElementMatrix: wiersz 1 = oś X kości, 2 = oś Y, 3 = oś Z, 4 = pozycja. To te same osie, w których attachElementToBone liczy przesunięcie i obrót, więc punkt przyczepienia to pozycja + X*dx + Y*dy + Z*dz. Liczona prosto z obrotu kości w silniku, bez kątów Eulera, więc nie gubi dokładności przy obrotach o 90°.
Składnia
table getPedBoneMatrix(ped thePed, int bone)Argumenty
thePedped- Postać (w zasięgu).
boneint- Numer kości (
getBoneIDs).
Zwraca
Macierz { {xx,xy,xz,0}, {yx,yy,yz,0}, {zx,zy,zz,0}, {x,y,z,1} } albo false.
Przykład
addEventHandler("onClientPedsProcessed", root, function()
local m = getPedBoneMatrix(localPlayer, 25) -- prawa dłoń
if not m then return end
-- punkt 20 cm wzdłuż osi X dłoni
local x, y, z = m[4][1] + m[1][1] * 0.2, m[4][2] + m[1][2] * 0.2, m[4][3] + m[1][3] * 0.2
dxDrawLine3D(m[4][1], m[4][2], m[4][3], x, y, z, tocolor(255, 0, 0), 2)
end)
Uwagi
Najświeższe pozycje kości są w onClientPedsProcessed (po przeliczeniu animacji w tej klatce).
Zobacz też
getPedBonePositionZwraca położenie w świecie wybranej kości szkieletu postaci, np. głowy albo dłoni. Na kliencie położenie jest dokładne i podąża za animacją (kość czytana z gry). Na serwerze serwer nie zna pozy postaci, więc zwraca przybliżenie: stałe przesunięcie kości względem stojącej postaci, obrócone zgodnie z jej kierunkiem. Numer kości jest (np. 8 głowa, 25 prawa dłoń, 35 lewa dłoń); na kliencie działa też numer kości gry.getPedBoneRotationZwraca obrót wybranej kości szkieletu postaci w świecie, w stopniach, dokładnie tak, jak wygląda w bieżącej klatce animacji. Działa dla postaci widocznych w tej grze. Przydaje się do przyczepiania obiektów do dłoni albo głowy tak, żeby obracały się razem z nią.attachElementToBonePrzyczepia element (np. obiekt) do kości postaci, z przesunięciem i obrotem. Element porusza się z kością, np. czapka z głową albo broń w dłoni. Numery kości są takie same jak wgetBoneIDs(np. 1 miednica, 8 głowa, 25 prawa dłoń, 35 lewa dłoń).getElementMatrixZwraca macierz elementu (pozycja i obrót). Domyślnie tablicę 4x4, a zlegacy = falseobiektMatrix.