miércoles, 8 de agosto de 2012

¿Qué es Pathfinding en Second Life?

Desde el día de ayer, Linden Lab está instalando la actualización del server que posee las herramienta y funciones de pathfinding, un grupo de comandos LSL que permitirá animar de forma fluida e inteligente cualquier objeto.

Las soluciones actuales para animar prims son engorrosas, complicadas y de baja calidad, por ejemplo, Puppeter es sencillo pero el resultado es un movimiento tosco. Pathfinding es capaz de crear animaciones inteligentes en muy pocas líneas de código, pues estas funciones correrán del lado de servidor. De esta manera, los creadores podrán pensar en objetos inteligentes capaces de recorrer el mundo, evadir obstáculos, responder al entorno, encontrar vías despejadas o perseguir a cualquier entidad en el mundo virtual.

Básicamente, existen 6 funciones:
  • Evadir - Escapa de un avatar o un determinado objeto. llEvade.
  • Escapar - Intenta permanecer a determinada distancia de un obstáculo dado. llFleeFrom.
  • Navegar - Se desplaza a una posición específica. llNavigateTo.
  • Patrullar - Se mueve a lo largo de una senda definida por puntos (patrol points) llPatrolPoints.
  • Perseguir - Persigue un objeto o avatar. llPursue.
  • Deambular - Se mueve aleatoriamente al rededor de un punto central predefinido. See llWanderWithin.
De esta manera, con apenas unas cuantas líneas de código, la animación de objetos cobra vida casi real.

Esta función está disponible únicamente para propietarios de parcelas o administradores de región.
Debes usar el visor Beta de Linden Lab. Phoenix Firestorm aunció que se encuentra a pocos días de lanzar la actualización que soporta pathfinding.

EJEMPLOS
Código para evadir un objeto:

default
{
    state_entry()
    {
        llCreateCharacter([CHARACTER_MAX_SPEED, 25, CHARACTER_DESIRED_SPEED, 15.0]);
        //MAX_SPEED is @ 20 by default
    }
 
    touch_start(integer total_number)
    {
        llEvade(llDetectedKey(0), []);
    }
}

Vídeo de pruebas:

No hay comentarios:

Publicar un comentario en la entrada