Jump to content
  • Global

    Global

    Chatroom Rules

    • NO SE DA SOPORTE EN CHATBOX
    • NO SPAM
    • NO FLOOD

Recommended Posts

  • Usuario
Posted

Hola a todos, quisiera saber como puedo hacer para definir el frente de un ped, para un setCameraMatrix.

 

Lo que deseo hacer, es que cuando te acerques a un ped, un setCameraMatrix enfoque el rostro de dicho ped, algo así:

 

LOQGCa3.png

 

Yo ya tengo realizado todo, solo me falta como calcular el frente del ped para hacer esto posible... ¿Me podrían decir mas o menos como hacerlo?

 

Llevo horas intentado que me salga, usando getElementPosition y getElementRotation sin ningun éxito :unsure:

  • Ex-Staff
Posted
local x,y,z = getElementPosition(localPlayer)
local bx,by,bz = getPedBonePosition(localPlayer,8)

setCameraMatrix(x,y,z,bx,by,bz)

?

  • Usuario
Posted

Creo que esto te servirá (creo):

Camera.setMatrix(Elemento.position + Vector3(-1.2,-3,0), Elemento.position + Vector3(-1.2,0,0))

Nota: 'Elemento' sería el PED.

Nota 2: Requiere OOP

  • Usuario
Posted
local x,y,z = getElementPosition(localPlayer)
local bx,by,bz = getPedBonePosition(localPlayer,8)

setCameraMatrix(x,y,z,bx,by,bz)

?

 

 

No no, lo que busco hacer es definir el frente del ped. Osea.. poder decir con seguridad que si colocas tal x, y, z, te dará el frente del ped en cuestión para un cameraMatrix

 

Creo que esto te servirá (creo):

Camera.setMatrix(Elemento.position + Vector3(-1.2,-3,0), Elemento.position + Vector3(-1.2,0,0))

Nota: 'Elemento' sería el PED.

Nota 2: Requiere OOP

 

No se mucho de OOP, lo adapte así:

getCamera().setMatrix(ped.position + Vector3(-1.2,-3,0), ped.position + Vector3(-1.2,0,0)) 

Y me salio este error:

attempt to index a userdata value

:wacko:

  • Ex-Staff
Posted (edited)

Sí, disculpa.

function getFacePosition(ped)
	
	local distancia = .5
	
	local rx,ry,rz = getElementRotation(ped)
	local bx,by,bz = getPedBonePosition(ped,8)
	
	local a = math.rad(90 - (-rz))
 
    local dx = math.cos(a) * distancia
    local dy = math.sin(a) * distancia
 
    local x,y = bx+dx, by+dy
	
	return {x,y,bz,bx,by,bz}
end

-- Ejemplo
local cara = getFacePosition(localPlayer)
setCameraMatrix(unpack(cara))

Eso debería funcionar ;)

Edited by SAXI
  • Usuario
Posted

Sí, disculpa.

function getFacePosition(ped)
	
	local distancia = .5
	
	local rx,ry,rz = getElementRotation(ped)
	local bx,by,bz = getPedBonePosition(ped,8)
	
	local a = math.rad(90 - (-rz))
 
    local dx = math.cos(a) * distancia
    local dy = math.sin(a) * distancia
 
    local x,y = bx+dx, by+dy
	
	return {x,y,bz,bx,by,bz}
end

-- Ejemplo
local cara = getFacePosition(localPlayer)
setCameraMatrix(unpack(cara))

Eso debería funcionar ;)

 

Me da una posición fija de un punto cardinal (sur), en pocas palabras, pone la cameraMatrix en el rostro del ped, solo si este esta mirando al Norte. Pero con esto me basta, continuare yo desde aqui. Muchas Gracias por la ayuda :D

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...