labvanced logoLabVanced
  • Research
    • Publications
    • Researcher Interviews
    • Use Cases
      • Developmental Psychology
      • Linguistics
      • Clinical & Digital Health
      • Educational Psychology
      • Cognitive & Neuro
      • Social & Personality
      • Arts Research
      • Sports & Movement
      • Marketing & Consumer Behavior
      • Economics
      • HCI / UX
      • Commercial / Industry Use
    • Labvanced Blog
    • Services
  • Technology
    • Feature Overview
    • Code-Free Study Building
    • Eye Tracking
    • Mouse Tracking
    • Generative AI Integration
    • Multi User Studies
    • More ...
      • Reaction Time/Precise Timing
      • Text Transcription
      • Heart Rate Detection (rPPG)
      • Emotion Detection
      • Questionnaires/Surveys
      • Experimental Control
      • Data Privacy & Security
      • Desktop App
      • Mobile App
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Cognitive Tests
    • Sample Studies
    • Public Experiment Library
  • Pricing
    • Licenses
    • Top-Up Recordings
    • Subject Recruitment
    • Study Building
    • Dedicated Support
    • Checkout
  • About
    • About Us
    • Contact
    • Downloads
    • Careers
    • Impressum
    • Disclaimer
    • Privacy & Security
    • Terms & Conditions
    • Third-Party Licenses
  • Appgo to app icon
  • Logingo to app icon
Learn
Guía
Videos
Guías paso a paso
Preguntas Frecuentes
Archivo de Boletines
Documentos
Aula
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
Guía
Videos
Guías paso a paso
Preguntas Frecuentes
Archivo de Boletines
Documentos
Aula
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
  • Guía
    • COMENZANDO

      • Editor de Tareas
      • Presentación del Estímulo
      • Corrección de Respuesta
      • Objetos
      • Eventos
      • Variables
      • Asistente de Tareas
      • Sistema de Pruebas
      • Diseño del Estudio
        • Tareas
        • Bloques
        • Sesiones
        • Grupos
    • TEMAS DESTACADOS

      • Diseño de Experimentos
        • Creando un Estudio
        • Patrones de Marco de Datos
      • Aleatorización y Equilibrio
      • Seguimiento Ocular
      • Cuestionarios
      • Aplicación de Escritorio
      • Estudios de Muestra
      • Reclutamiento de Participantes
      • Acceso a la API
        • REST API
        • API de Webhook
        • API de WebSocket
      • Otros Temas

        • Tempos de Estímulo Precisos
        • Estudios Multi-Usuario
        • Seguimiento de Cabeza en Labvanced | Guía
    • TABS PRINCIPALES DE LA APLICACIÓN

      • Resumen: Tabs Principales
      • Tablero
      • Mis Estudios
      • Estudios Compartidos
      • Mis Archivos
      • Biblioteca de Experimentos
      • Mi Cuenta
      • Licencia y Servicios
    • TABS DE ESTUDIO

      • Resumen: Tabs Específicos del Estudio
      • Diseño del Estudio
        • Tareas
        • Bloques
        • Sesiones
        • Grupos
      • Editor de Tareas
        • Controles de Tareas
        • El Sistema de Pruebas
        • Marcos de Canvas y Página
        • Objetos
        • Tablas de Propiedades de Objetos
        • Variables
        • Tablas de Variables del Sistema
        • El Sistema de Eventos
        • Funciones del Editor de Texto
        • Seguimiento ocular en una tarea
        • Seguimiento de Cabeza en una Tarea
        • Estudios Multi-Usuario
      • Configuraciones
      • Variables
      • Medios
      • Textos y Traducir
      • Lanzar y Participar
      • Gestión de Sujetos
      • Vista de Datos y Exportar
        • Vista de Datos y Selección de Variables y Tareas (Versión ANTIGUA)
        • Accediendo a Grabaciones (Versión ANTERIOR)
  • Videos
    • Resumen del Video
    • Comenzando en Labvanced
    • Creando Tareas
    • Videos de Elementos
    • Eventos y Variables
    • Temas Avanzados
  • Guías
    • Introducción
    • Tarea de Stroop
    • Tarea de Decisión Léxica
    • Tarea de Indicación de Mirada de Posner
    • Paradigma de Parpadeo de Ceguera al Cambio
    • Estudio de Ejemplo de Seguimiento Ocular
    • Estudio de Seguimiento Ocular en Lactantes
    • Estudio de Captura Atencional con Seguimiento del Ratón
    • Presentación Visual Serial Rápida
    • Estudio de ChatGPT
    • Demostración de Seguimiento Ocular: SVGs como AOIs
    • Demostración Multiusuario: Mostrar los Cursores de los Sujetos
    • Gamepad / Controlador de Joystick - Configuración Básica
    • Estudio de Aplicación de Escritorio con Integración de EEG
    • Balanceo de Grupos entre Sujetos y Configuración de Variables
  • FAQ
    • Características
    • Política de Soporte y Directrices
    • Seguridad y Privacidad de Datos
    • Licencias
    • Precisión de Labvanced
    • Uso Programático y API
    • Uso de Labvanced sin Conexión
    • Solución de Problemas
    • Preguntas sobre la Creación de Estudios
  • Archivo del Boletín
  • Documentos
  • Aula

Mostrar los cursores de los sujetos: Demostración de múltiples usuarios

Descripción general

En un experimento de múltiples usuarios donde varios participantes están tomando parte en el experimento en tiempo real, puede que desee hacer que sus cursores sean visibles entre sí. En esta demostración, le mostraremos cómo configurarlo.

Vista previa de la función de seguimiento del mouse para múltiples usuarios en Labvanced

Nota sobre la implementación

Tenga en cuenta que hay varios enfoques que puede implementar para compartir las ubicaciones del cursor de múltiples participantes en Labvanced, ya que la plataforma es flexible y, por lo tanto, es importante considerar su diseño experimental antes de comprometerse con un enfoque.

Para dejar esto claro, presentaremos dos enfoques para lograrlo:

  • Enfoque 1: una demostración que utiliza arreglos para distribuir la posición del cursor
  • Enfoque 2: en una sección más adelante, discutiremos una demostración donde se pueden usar valores únicos para coordenadas x e y.

Enfoque 1: Visualización del cursor usando seguimiento del mouse y arreglos

Esta demostración incluye dos objetos (un mouse por usuario) y se enumeran en el panel lateral en el panel de Objetos. Este enfoque se puede utilizar para estudios de múltiples usuarios donde hay 2 o más participantes.

Objetos

Abajo se encuentra el Object Properties panel donde se puede manejar todo el estilo visual. Actualmente, ambos cursores tienen un Visibility de 1 (esto significa opacidad = 100%) como se muestra a continuación:

Los objetos del cursor que se agregan al editor de Labvanced para configurar un estudio de múltiples usuarios en Labvanced

Para esta demostración, cambiaremos el Visibility a 0, como se muestra a continuación. Más adelante, cuando comience el experimento, haremos que uno de los cursores sea visible. es decir, si usted es el Participante 1, entonces verá el objeto cursor aquí del Participante 2 y viceversa. Esto se describe en la sección Evento: Init a continuación.

Ocultando los cursores en Labvanced para que cuando comience el experimento del estudio con múltiples participantes, la visibilidad de un cursor se muestre al inicio del experimento

Si no desea tener dos objetos para los cursores, consulte esta sección para ver un método alternativo con solo un objeto cursor.

Variables personalizadas

Aquí enumeramos todas las variables personalizadas que se crearon con el propósito de esta demostración. Puede crearlas con antelación o dentro del editor mientras construye su experimento.

Las variables creadas en el estudio de múltiples usuarios para compartir el cursor

Descripción general de eventos

Para agregar un evento, haga clic en el [+] Frame Event (on this frame only).

Tenemos los siguientes eventos en esta demostración:

  1. Evento: Init: Haciendo visible el mouse del otro participante
  2. Evento: sendMove: Enviando las coordenadas del mouse
  3. Evento: receiveMove: Recibiendo las coordenadas del mouse

A continuación, se describe la estructura de cada uno de los eventos.

EVENTO: init

Este evento especifica lo que sucederá cuando se inicie el marco. En este caso, nuestro objetivo es que el Participante 1 vea el mouse del Participante 2 y viceversa.

Disparador

El disparador para el evento es On Frame Init porque queremos asignar la visibilidad del objeto cursor tan pronto como se inicializa el marco.

El On Frame Init en Labvanced

Acción

Después de especificar esto y hacer clic en el botón 'Siguiente', puede seleccionar las acciones que ocurrirán al inicializar el marco.

A continuación, mostramos que la acción que utilizamos es una Acción de Control → ‘Si... Entonces’, así que:

  • Si Role_Id es igual a 1 (Nota: Role_Id es una variable que es única para estudios de múltiples usuarios y asigna al participante su ID).
  • Entonces, Set Object Property de la mouse_user_2 del objeto Visibility será 1.
  • Nota: La combinación de estas dos acciones esencialmente significa: "Si usted es el Participante 1 (Role_Id==1), entonces verá el objeto mouse_user_2."
  • Nota: ¿Cómo se especifica el Role_Id == 1 en el editor? Consulte la sección paso a paso a continuación donde se explica con más detalle.

especificando que si el Role id del primer participante es 1 entonces registrar los datos de seguimiento del mouse

Bajo la sección Else If hacemos lo mismo pero para el participante 2 (Role_Id==2). El objeto objetivo es mouse_user_1 que debería tener el valor Visibility de 1.

especificando que si el Role id del segundo participante es 2 entonces registrar los datos de seguimiento del mouse

EVENTO: sendMove

A continuación, tenemos que establecer un ‘puente’ entre los dos participantes donde si mueve su mouse, esos valores son rastreados/almacenados y enviados al otro participante.

Disparador

Por lo tanto, se utiliza el Mouse trigger para este evento donde cualquier ‘Movimiento’ que se realice activará el evento.

Indicando que el disparador del evento es un disparador de mouse.

Acciones

De nuevo, se necesita un comando Control Action → If…Then:

indicando que el role id es igual a uno

Registrar el arreglo de seguimiento del mouse y compartirlo con otros sujetos en el estudio multiparticipante

Donde si su Role_Id==1, entonces se llevan a cabo los siguientes Variable Actions:

  • Set / Record a Variable: Apunte / defina la variable moveMouse1 y configúrela para que sea igual al valor específico del disparador de Mouse [X,Y] Array.
  • Distribute Variable: Comparta esta variable con el Participante 2.

De lo contrario, si su Role_Id==2 …

especificando que el role id es igual a dos

Entonces:

  • La moveMouse2 registrará el arreglo Mouse [X,Y] (justo como en el ejemplo anterior) pero lo usaremos para almacenar los valores de seguimiento del mouse del Participante 2 y configurarlo para que sea igual a su arreglo Mouse [X,Y].
  • Luego, distribuya esta variable al participante 1.

Configurar el seguimiento del mouse para medir los valores de arreglo y coordenadas

Resumen- Hasta este punto hemos:

  • Creado variables para almacenar el arreglo de seguimiento del mouse [X,Y] de cada participante (moveMouse1 para el cursor del Participante 1 y moveMouse2 para el cursor del Participante 2)
  • Y hemos establecido un puente donde el valor de seguimiento del mouse se envía al otro participante utilizando la acción Distribute Variable.

EVENT: receiveMove

A continuación, necesitamos especificar qué sucederá con estos valores de seguimiento del ratón. En este caso, al recibir los movimientos del ratón en formato de matriz, queremos cambiar el objeto del cursor del ratón para reflejar los movimientos. ¡En otras palabras, usando la matriz [X,Y], vincularemos esos valores al cursor del ratón para que, en esencia, se mueva, mostrando lo que el otro participante está haciendo en la pantalla! Así, para lograr esto, se utilizarán el disparador y las acciones descritos a continuación.

Trigger

Dado que los valores de seguimiento del ratón se están almacenando en variables, cada vez que estas variables cambian, significa que el ratón se está moviendo. Por lo tanto, podemos usar el Variable Value Changed trigger para actualizar la ubicación del cursor en la pantalla seleccionando las dos variables específicas que contienen los valores de seguimiento del ratón, como se muestra a continuación:

Configurar el disparador si los valores de seguimiento del ratón cambian

Action

A continuación, queremos utilizar la Select From Array (Read) action para obtener los valores de las coordenadas x e y de las matrices de variables del cursor porque planeamos usarlos para establecer las coordenadas del objeto.

Así, seleccionamos la variable moveMouse1 que tiene la matriz de [X,Y] del participante 1 y llamamos al primer valor, que era un Fixed Index de 1 y almacenamos ese valor en una variable numérica llamada x_mouse1, porque los valores x están listados en primer lugar en la matriz.

Configurar la matriz de seguimiento del ratón y guardar los valores individuales y almacenarlos como variables con valores x e y

Agregamos otra Select From Array (Read) action y para el Fixed Index escribimos 2 porque queremos llamar al segundo valor de la matriz, que son las coordenadas y y almacenarlo en la variable y_mouse1.

Para hacer que la imagen del cursor se mueva, necesitamos actualizar sus coordenadas de imagen en tiempo real haciéndola adoptar los valores x e y que son equivalentes a las coordenadas x e y del seguimiento del ratón (que hemos obtenido y almacenado en las variables x_mouse1 y y_mouse1 en las acciones anteriores).

Para lograr esto, necesitamos elegir la Set Object Property action para que el Target del mouse_user_1 (en la imagen a continuación se escribe simplemente como ‘ratón’ porque el cuadro de diálogo acorta el título) y su propiedad X tiene un valor (=) de x_mouse1+5, que es una operación aritmética. Consulte esta explicación paso a paso de cómo se configura esto.

Establecer la propiedad del objeto de la ubicación del ratón del participante uno para adoptar los valores de seguimiento del ratón

En este punto, te estarás preguntando por qué aparece el +5 en el campo de entrada... Esto se debe a que necesitamos crear un desplazamiento, ya que este objeto es en realidad un objeto de texto que incluye una imagen incrustada (como se describe al principio de este recorrido). Por lo tanto, si necesitas construir tu estudio y hacer que los usuarios vean sus propios cursores personalizados como lo hacemos aquí, pero también hacer clic en otros objetos en el estudio, entonces no será posible a menos que crees este desplazamiento (a menos que decidas omitir la imagen del cursor y mantener solo la etiqueta de texto).

Continuando, elegimos +Add Property y apuntamos al mismo objeto de imagen, seleccionamos la propiedad Y y la establecemos igual a la variable y_mouse1.

Repetimos el mismo proceso pero solo seleccionamos las otras variables que hemos dedicado para el participante 2:

Tomando las matrices de seguimiento del ratón del participante 2 y almacenándolas como variables individuales para almacenar valores x e y de cada variable

Aquí apuntamos al objeto mouse_user_2 y asignamos las respectivas variables:

Usando los valores de seguimiento del ratón x e y para actualizar el objeto del cursor del ratón y compartir la ubicación del cursor del ratón en el estudio de múltiples participantes

Juntas, todas estas acciones hacen que los dos objetos del cursor se muevan para ambos participantes al leer los valores de la variable de matriz y luego usar estos valores numéricos para establecer los valores x e y del objeto.

EVENT: end

A continuación, creamos un evento para finalizar oficialmente el proceso de grabación de datos y almacenar los datos al insertar un botón de ‘fin’ que, cuando se utiliza como un disparador, llevará a una acción de Control donde tiene lugar la acción Accept/End Session.

Trigger

Para finalizar la sesión, el disparador del botón es donde hacer clic en el End Button hará que la sesión finalice.

Indicando el botón como un disparador

Action

La acción es Aceptar/Finalizar sesión.

Finalizar la sesión

Nuevamente, ten en cuenta que esta demostración es con fines de aprendizaje y es solo un método entre muchos para compartir la ubicación del ratón y del cursor en un entorno de estudio multiusuario. Otro ejemplo de cómo se puede lograr este efecto se describe en las secciones siguientes.

Enfoque 2: Enfoque de Variable Única para Compartir Cursores en Estudios Multiusuario

En esta otra demostración, en lugar de matrices, mostramos cómo tienes la opción de usar valores individuales (es decir, llamando directamente a las coordenadas X e Y).

Vista previa de un estudio multiusuario donde se está compartiendo la ubicación del cursor del ratón

Aquí hay una vista previa completa de esta demostración, que incluye una vista previa de los datos grabados al final:

Objeto Único para el Cursor

Esta demostración también difiere de la anterior en el sentido de que en lugar de dos objetos para el cursor, solo hay uno. Este enfoque es excelente para estudios multiusuario que solo quieren mostrar dónde se encuentra el cursor del ‘oponente’ o ‘compañero de equipo’.

Agregar el objeto del cursor del ratón al editor de Labvanced para el propósito de un estudio de múltiples participantes

Variables Personalizadas

Esta otra demostración incluye las siguientes variables personalizadas y sus especificaciones. Mientras que esta demostración tiene menos variables, requiere más eventos/acciones que se utilizan en comparación con el ejemplo anterior con matrices.

Variables personalizadas creadas para varios participantes

EVENT: sendMove

El disparador es el movimiento del ratón:

Seleccionando el disparador del ratón

La acción es registrar los valores específicos del disparador de las coordenadas X e Y del ratón en dos variables separadas que están específicamente nombradas para indicar al participante 1.

Grabando valores x e y como valores separados basados en el seguimiento del ratón del Participante uno

Las siguientes acciones bajo esta condición si/entonces sirven para distribuir estos dos valores al participante 2.

Distribuyendo la variable de seguimiento del ratón al participante 2 en un estudio multiusuario

Luego, agregamos una condición de 'Else If' para registrar los valores específicos del desencadenador de la coordenada X del mouse y la coordenada Y en dos variables separadas que están específicamente nombradas para indicar al participante 2.

Grabando valores x e y como valores separados basados en el seguimiento del mouse del Participante dos

Las siguientes acciones se utilizan para distribuir estos dos valores al participante 1.

Distribuyendo la variable de seguimiento del mouse al participante uno en un estudio de múltiples usuarios

EVENTO: receiveMove1

Ahora necesitamos un evento para transmitir las coordenadas del mouse. Así, si estos valores de variable específicos asociados al Participante 1 cambian, se utilizarán como un desencadenante:

Estableciendo que cuando las variables de seguimiento del mouse cambian, entonces el desencadenante

Luego, actualizamos la propiedad del objeto de ubicación del cursor para que tome estos valores usando una acción. En esencia, si eres el Participante 2, entonces el objeto Oponente toma las coordenadas de las variables del Participante 1:

Estableciendo la propiedad del cursor igual a los valores de seguimiento del mouse

EVENTO: receiveMove2

Hacemos lo mismo aquí. Si eres el Participante 1, entonces el objeto Oponente toma las coordenadas de las variables del Participante 2:

Los valores de las variables que cambian del seguimiento del mouse se utilizan como un desencadenante de evento

Estableciendo los valores del cursor del mouse para que sean iguales a los valores del participante 2 en un estudio de múltiples usuarios

Conclusión

Esta demostración muestra dos de las muchas formas en que las coordenadas del mouse pueden ser utilizadas para actualizar propiedades de objetos con el fin de transmitir la ubicación del cursor en un estudio de múltiples usuarios. Puedes utilizar arreglos.

Detalles de la Demostración: Ingresando Valores Paso a Paso

Si todavía te estás familiarizando con Labvanced o solo necesitas una aclaración extra, las secciones a continuación te muestran, paso a paso, cómo implementar ciertos comandos y los pasos que debes seguir usando los menús para implementarlos:

  • Especificando Role_ID==1 en una Acción de Requisito
  • Seleccionando el Array de Mouse [X,Y] para ser Registrado en una Variable para Seguimiento del Mouse
  • Usando Operaciones Aritméticas para Establecer una Propiedad de Objeto

Especificando Role_ID==1 en una Acción de Requisito

En la demostración anterior, esta línea aparece con frecuencia, así que ¿cómo puedes lograr que sea así?

Especificando que el id de Rol es uno

Primero +Add Action y Acciones de Control de Selección → Acciones de Requisito (Si...Entonces) porque este es el contexto en el que aparece con frecuencia en esta demostración.

Seleccionando la Acción de Control y especificando la acción If...Then

A continuación, + Requirement para que puedas especificar la Condición If con mayor detalle.

Para el primer ícono de lápiz (formalmente conocido como El Menú de Selección de Valor), elige Variable → Select Variable para apuntar a la variable Role_Id.

Seleccionando una variable

Esto abrirá el menú de Variables donde se almacenan todas las variables locales / globales. En el panel superior, bajo Global Variables encontrarás la variable Role_Id. Selecciónala.

Seleccionando el ID de Rol

A continuación, en el otro ícono de bolígrafo, necesitas especificar el valor del id de rol del participante. Así que ve a Valor Constante → Numérico.

Seleccionando el valor constante

Y simplemente escribe el número 1. ¡Ta-da!

ID de Rol establecido en 1

Usando Operaciones Aritméticas para Establecer una Propiedad de Objeto

Establecer la ubicación del cursor se hace usando la acción Establecer Propiedad de Objeto, especificando el objeto objetivo, su propiedad y luego especificando el valor de la variable que se utilizará como el nuevo valor para la propiedad del objeto.

Usando la propiedad del objeto para llamar a los valores para establecerlo en un cursor del mouse

Selecciona la Acción de Objeto:

Establecer propiedad del objeto, seleccionando la acción

Para el Target haz clic en el primer none y selecciona el primer objeto cursor mouse_user_1 de la lista. Para la segunda lista de las propiedades del objeto, selecciona la opción X:

Seleccionando el objeto de usuario del mouse

Luego, haz clic en el ícono del bolígrafo. Elige Operations del menú y selecciona la opción Arithmetic:

Seleccionando las operaciones aritméticas

Haz clic en el primer ícono de lápiz y elige Variable → Select Variable y aparecerá un cuadro de diálogo de las variables desde las que puedes seleccionar la variable x_mouse1:

Seleccionar acción de variable

Luego, haz clic en el segundo ícono de lápiz y elige Constant Value → Numeric y escribe el número 5 en el campo que aparece.

Elegir la opción de valor constante

Como esto se relaciona con la demostración donde el objeto es una combinación de una imagen más texto, necesitamos compensar el valor en 5 puntos para que el objeto de abajo sea clickeable:

Estableciendo que la propiedad del objeto se iguale a los valores de seguimiento del mouse

Haz clic en el +Add Property debajo e indica que la variable y_mouse1 será asignada a la propiedad del objeto Y del objeto mouse_user_1.

Los valores de propiedad del objeto establecidos en un estudio de múltiples usuarios utilizando los valores de seguimiento del mouse

Prev
Demostración de Seguimiento Ocular: SVGs como AOIs
Next
Gamepad / Controlador de Joystick - Configuración Básica