Saltar al contenido
  • Global

    Global

    Chatroom Rules

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

[AYUDA] ¿Definir el frente de un ped?


Publicaciones recomendadas

  • Usuario
Publicado

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:

  • Usuario
Publicado
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
Publicado (editado)

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 ;)

Editado por SAXI
  • Usuario
Publicado

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.

Invitado
Responder a este tema...

×   Pegar como texto enriquecido.   Pegar como texto sin formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incrustado automáticamente..   Mostrar como un enlace en su lugar

×   Se ha restaurado el contenido anterior.   Limpiar editor

×   No se pueden pegar imágenes directamente. Carga o inserta imágenes desde la URL.

  • Explorando recientemente   0 miembros

    • No hay usuarios registrados viendo esta página.
×
×
  • Crear nuevo...