labvanced logoLabVanced
  • Research
    • Publications
    • Researcher Interviews
    • Use Cases
      • Behavioral Psychology
      • Personality & Social Psychology
      • Cognitive & Neuro Psychology
      • Developmental & Educational Psychology
      • Clinical & Health Psychology
      • Sports & Movement Psychology
      • Marketing & Consumer Psychology
    • Labvanced Blog
  • Technology
    • Feature Overview
    • Desktop App
    • Phone App
    • Precise Timing
    • Experimental Control
    • Eye Tracking
    • Multi User Studies
    • More ...
      • Questionnaires
      • Artificial Intelligence (AI) Integration
      • Mouse Tracking
      • Data Privacy & Security
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Public Experiment Library
    • Labvanced Sample Studies
  • Pricing
    • Pricing Overview
    • License Configurator
    • Single License
    • Research Group
    • Departments & Consortia
  • About
    • About Us
    • Contact
    • Downloads
    • Careers
    • Impressum
    • Disclaimer
    • Privacy & Security
    • Terms & Conditions
  • Appgo to app icon
  • Logingo to app icon
Learn
指南
视频
教程
常见问题
发行说明
教室
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
指南
视频
教程
常见问题
发行说明
教室
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 指南
    • 开始使用

      • 对象
      • 事件
      • 变量
      • 任务向导
      • 试验系统
      • 研究设计
        • 任务
        • 阻塞
        • 会议
        • 组
    • 特色主题

      • 随机化与平衡
      • 眼动追踪
      • 桌面应用
      • 示例研究
      • 参与者招募
      • API 访问
        • REST API
        • Webhook API
        • WebSocket API
      • 其他主题

        • 精确的刺激时序
        • 多用户研究
        • Labvanced中的头部追踪 | 指南
    • 主应用标签

      • 概览:主标签
      • 仪表盘
      • 我的研究
      • 共享研究
      • 我的文件
      • 实验库
      • 我的账户
      • 我的许可
    • 研究标签

      • 概览:研究特定标签
      • 研究设计
        • 任务
        • 阻塞
        • 会议
        • 组
      • 任务编辑器
        • 主要功能和设置
        • 试验系统
        • 画布和页面框架
        • 对象
        • 对象属性表
        • 变量
        • 系统变量表
        • 事件系统
        • 试验随机化
        • 文本编辑器功能
        • 任务中的眼动追踪
        • 任务中的头部追踪
        • 多用户研究
      • 研究设置
        • 启动和主要设置
        • 浏览器和设备设置
        • 实验特征设置
      • 描述
        • 关于描述信息的更多细节
        • 图像、链接和描述中的引用
      • 变量
      • 媒体
      • 翻译
      • 运行
      • 发布和记录
        • 在 Labvanced 发布研究的要求
        • 招募参与者和众包
        • 许可证选择与确认
        • 发布您的 Labvanced 研究后
      • 共享
      • 参与者
      • 数据查看与导出
        • 数据视图和变量 & 任务选择(旧版本)
        • 访问录音(旧版本)
  • 视频
    • 视频概览
    • 在 Labvanced 中开始使用
    • 创建任务
    • 元素视频
    • 事件与变量
    • 高级主题
  • 逐步指导
    • 简介
    • 斯特鲁普任务
    • 词汇决策任务
    • 波斯纳注视提示任务
    • 改变失明闪烁范式
    • 眼动追踪示例研究
    • 婴儿眼动追踪研究
    • 鼠标追踪下的注意力捕获研究
    • 快速串行视觉呈现
    • ChatGPT 研究
    • 眼动追踪演示:将SVG作为兴趣区
    • 多用户演示:在研究中显示参与者的光标
    • 游戏手柄/操纵杆控制器 - 基本设置
    • 带有 EEG 集成的桌面应用研究
  • 常见问题
    • 功能
    • 安全性与数据隐私
    • 许可
    • Labvanced 的精度
    • 程序化使用与 API
    • 离线使用 Labvanced
    • 故障排除
    • 研究创建问题
  • 版本说明
  • 教室

显示参与者光标:多用户演示

概述

在一个多用户实验中,当多个参与者实时参与实验时,您可能希望让他们的光标彼此可见。在本演示中,我们将向您展示如何设置这一点。

Labvanced中多用户鼠标跟踪特性的预览

实施说明

请注意,在Labvanced中有几种方法可以实现多参与者光标位置的共享,由于该平台灵活,因此在选择方法之前考虑您的实验设计非常重要。

为了明确这一点,我们将介绍两种实现方法:

  • 方法1: 一个 利用数组的演示 来分配光标位置
  • 方法2: 在 下面的部分, 我们将讨论一个 演示,其中可使用单个值 作为x和y坐标

方法1:使用鼠标跟踪和数组显示光标

该演示包含两个对象(每个用户一个鼠标),并在对象面板的侧边栏中列出。此方法可用于参与者数量为2个或以上的多用户研究。

对象

下面是 对象属性 面板,在此处可以处理所有视觉样式。目前,两个光标的 Visibility 值为1(这意味着不透明度=100%),如下所示:

在Labvanced编辑器中添加光标对象以设置Labvanced中的多用户研究

在本演示中,我们将把 Visibility 值更改为0,如下所示。稍后,当实验开始时,我们将使其中一个光标可见。即,如果您是参与者1,那么您将在这里看到参与者2的光标对象,反之亦然。这将在 事件:Init 部分中描述。

在Labvanced中隐藏光标,以便在多参与者研究实验开始时显示一个光标的可见性

如果您不想为光标创建两个对象,请参考 这一部分 查看仅使用单个光标对象的替代方法。

自定义变量

在这里,我们列出为本演示的目的创建的所有自定义变量。您可以在构建实验时提前创建它们或在编辑器中创建它们。

在多用户研究中为光标共享创建的变量

事件概述

要添加事件,请点击 [+] 帧事件(仅在此帧上)。

在本演示中有以下事件:

  1. 事件:Init: 使其他参与者的鼠标可见
  2. 事件:sendMove: 发送鼠标坐标
  3. 事件:receiveMove: 接收鼠标坐标

下面将描述每个事件的结构。

事件:init

此事件指定当帧启动时会发生什么。在这种情况下,我们的目标是让参与者1看到参与者2的鼠标,反之亦然。

触发器

该事件的触发器是 On Frame Init,因为我们希望在帧初始化时分配光标对象的可见性。

Labvanced中的On Frame Init

操作

在指定这一点并点击‘下一步’按钮后,您可以选择帧初始化时将发生的操作。

下面显示我们使用的操作是 控制操作 → ‘如果...那么’, 所以:

  • 如果 Role_Id 等于 1(注意:Role_Id 是一个在多用户研究中唯一的变量,分配参与者的ID)。
  • 那么,将 mouse_user_2 对象的 Visibility 的 Set Object Property 设置为1。
  • 注意: 这两个操作的组合本质上意味着:“如果您是参与者1(Role_Id==1),那么您将看到mouse_user_2对象。”
  • 注意: 如何在编辑器中指定 Role_Id == 1?请参考下面 逐步部分 ,在其中对此进行了更详细的说明。

指定如果第一参与者的Role id为1,则记录鼠标跟踪数据

在 Else If 部分,我们对参与者2做相同的事情(Role_Id==2)。目标对象是 mouse_user_1,其 Visibility 值应为1。

指定如果第二参与者的Role id为2,则记录鼠标跟踪数据

事件:sendMove

接下来,我们需要在两个参与者之间建立一个“桥”,当您移动鼠标时,这些值会被跟踪/存储并发送给另一个参与者。

触发器

因此,该事件使用 鼠标触发器,在该事件中,任何“移动”将触发事件。

指示事件触发器为鼠标触发器。

操作

同样,需要一个 控制操作 → 如果...那么 命令:

指示角色ID等于1

记录鼠标跟踪数组并共享给多参与者研究中的其他参与者

如果您的 Role_Id==1,则会发生以下 变量操作:

  • 设置/记录变量: 指定变量 moveMouse1 并将其设置为等于 触发器特定值 的 Mouse [X,Y] Array。
  • 分发变量: 将该变量分享给参与者2。

否则,如果您的 Role_Id==2 ...

指定角色ID等于2

那么:

  • moveMouse2 将记录鼠标 [X,Y] 数组(就像上面的示例一样),但我们将使用它来存储参与者2的鼠标跟踪值,并将其设置为等于他们的鼠标 [X,Y] 数组。
  • 然后,将该变量分发给参与者1。

设置鼠标跟踪以测量数组和坐标值

总结: 到目前为止,我们已经:

  • 创建了变量以存储每个参与者的鼠标跟踪 [X,Y] 数组(参与者1的光标为moveMouse1,参与者2的光标为moveMouse2)
  • 并建立了一座桥将鼠标跟踪值传送给其他参与者,使用分发变量操作。

事件:receiveMove

接下来,我们需要指定这些鼠标跟踪值将会发生什么。在这种情况下,当接收到以数组格式的鼠标移动时,我们希望更改鼠标光标对象以反映这些移动!换句话说,使用 [X,Y] 数组,我们将这些值绑定到鼠标光标上,以便它实际上移动,显示另一个参与者在屏幕上所做的事情!因此,为了实现这一点,将使用下面描述的触发器和操作。

触发器

由于鼠标跟踪值存储在变量中,因此每当这些变量变化时,意味着鼠标正在移动。因此,我们可以使用 变量值更改 触发器 通过选择保存鼠标跟踪值的两个特定变量来更新屏幕上的光标位置, 如下所示:

设置触发器,如果鼠标跟踪值发生变化

操作

接下来,我们想使用 从数组选择(读取)操作 从光标的变量数组中获取x和y坐标值,因为我们计划用它们来设置对象的坐标。

因此,我们选择moveMouse1变量,它包含参与者1的 [X,Y] 数组,并调用第一个值,该值的 固定索引 为1,并将该值存储在名为 x_mouse1 的数值变量中,因为x值在数组中排在首位。

设置鼠标跟踪数组并保存单个值,并将其存储为x和y值的变量

我们增加另一个 从数组选择(读取) 操作,并将 固定索引 写为2,因为我们想调用第二个数组值,即y坐标并存储在 y_mouse1 变量中。

为了使光标图像移动,我们需要实时更新其图像坐标,使其获取与鼠标跟踪等效的x和y值(在上述操作中我们获取并存储在变量 x_mouse1 和 y_mouse1 中)。

为了实现这一点,我们选择 设置对象属性 操作,使 mouse_user_1 的 目标(在下面的图像中,它仅写作‘mouse’,因为对话框缩短了标题)和其属性 X 的值(=) 为 x_mouse1 +5,这是一个 算术操作. 请参考这个 逐步说明 来了解如何设置。

将参与者一个的鼠标位置的对象属性设置为鼠标跟踪值

此时您可能会想知道为什么输入字段中会出现+5… 这是因为我们需要创建一个偏移,因为该对象实际上是一个包含嵌入图像的文本对象(如本演示开头所述)。因此,如果您需要构建您的研究,并让用户看到他们自己定制的光标,就像我们在这里做到的那样,但也要点击研究中的其他对象,那么这是不可能的,除非您创建这个偏移(除非您选择省略光标的图像,仅保留文本标签)。

接下来,我们选择 +添加属性,并指向相同的图像对象,选择 Y 属性,并将其设置为变量 y_mouse1。

我们重复相同的过程,但只选择我们为参与者2准备的其他变量:

获取参与者2的鼠标跟踪数组并将其存储为单变量,以存储每个变量的x和y值

在这里,我们指向对象 mouse_user_2 并分配相应的变量:

使用x和y鼠标跟踪值更新鼠标光标对象,以共享多参与者研究中的光标位置

所有这些操作一起使两个光标对象移动,通过读取数组变量的值,然后使用这些数值来设置对象的x和y值。

事件:end

接下来,我们创建一个事件以正式结束数据记录过程,并通过插入一个‘结束’按钮来存储数据,当该按钮用作触发器时,它将导致进行控制操作,其中执行 接受/结束会话 操作。

触发器

要结束会话,按钮触发器是单击 结束按钮 将触发会话结束。

指示按钮作为触发器

操作

操作是接受/结束会话。

结束会话

再次,请注意,此演示仅用于学习目的,并且只是多用户研究环境中共享鼠标和光标位置的众多方法之一。有关如何实现此效果的另一个示例,将在接下来的部分中描述。

方法2:共享多用户研究中的光标的单变量方法

在另一个演示中, 我们展示了如何选择使用单个值(即直接调用X和Y坐标),而不是数组。

共享光标位置的多用户研究的预览

这是该演示的完整预览,包括录制结束时数据的预览:

光标的单个对象

该演示还与前一个演示不同,因为光标只有一个对象,而不是两个。此方法非常适合多用户研究,只希望展示“对手”或“队友”的光标位置。

在Labvanced编辑器中添加鼠标光标对象以进行多参与者研究

自定义变量

该演示还包括以下自定义变量及其规格。虽然本演示的变量较少,但与使用数组的先前示例相比,需要更多的事件/操作。

为多参与者创建的自定义变量

事件:sendMove

触发器是鼠标移动:

选择鼠标触发

操作是记录鼠标的X坐标和Y坐标的触发器特定值,放入两个分别指定为参与者1的变量中。

根据参与者一的鼠标跟踪记录x和y值作为单独的值

在这个如果/那么条件下的下一个操作用于将这两个值分发给参与者2。

将鼠标跟踪变量分发给多用户研究中的参与者2

然后我们添加一个“否则如果”条件,以记录鼠标的X坐标和Y坐标的触发器特定值,放入两个分别指定为参与者2的变量中。

根据参与者二的鼠标跟踪记录x和y值作为单独的值

下一个操作用于将这两个值分发给参与者1。

将鼠标跟踪变量分发给多用户研究中的参与者一

事件:receiveMove1

现在我们需要一个事件来传输鼠标坐标。因此,如果与参与者1相关的这些特定变量值发生变化,则将其用作触发器:

设置当鼠标跟踪变量变化时触发

然后我们使用操作更新光标位置的对象属性以采用这些值。实际上,如果您是参与者2,则对手对象将采用参与者1的变量坐标:

将光标属性设置为等于鼠标跟踪值

事件:receiveMove2

我们在这里做同样的事情。如果您是参与者1,则对手对象将采用参与者2的变量坐标:

使用鼠标跟踪的变量值变化作为事件触发

将鼠标光标值设置为等于参与者2的值,在多用户研究中

结论

本演示展示了两种鼠标坐标可以用于更新对象属性的多种方式,以传输多用户研究设置中的光标位置。您可以使用数组

演示详细信息:逐步输入值

如果您仍然在Labvanced中摸索,或者只是需要一些额外的说明,下面的部分逐步展示了您如何实现某些命令以及您需要在菜单中采取的步骤:

  • 在要求操作中指定 Role_ID==1
  • 选择要在变量中记录的鼠标 [X,Y] 数组
  • 使用算术操作设置对象属性

在要求操作中指定 Role_ID==1

在上面的演示中,这一行经常出现,那么您如何能做到这一点呢?

指定角色ID为1

首先 +添加操作 并选择控制操作 → 要求操作(如果...那么),因为这是它在此演示中经常出现的上下文。

选择控制操作并指定如果...那么操作

接下来, +要求 以更详细地指定如果条件。

对于第一个铅笔图标(正式称为 值选择菜单),选择 变量 → 选择变量 以指向Role_Id变量。

选择变量

这将打开变量菜单,在其中存储所有本地/全局变量。在顶部面板下,全局变量中将找到 Role_Id 变量。选择它。

选择角色ID

接下来,在另一个铅笔图标上,您需要指定参与者角色ID的值。所以,去 常数值 → 数字.

选择常数值

然后只需输入数字1。太棒了!

角色ID设置为1

使用算术操作设置对象属性

通过使用设置对象属性操作,指定目标对象,其属性,然后指定要用作对象属性新值的变量值来设置光标位置。

使用对象属性调用值以将其设置为鼠标光标

选择对象操作:

设置对象属性,选择该操作

对于 目标 单击第一个 无 并从列表中选择第一个光标对象 mouse_user_1。对于对象属性的第二个列表,选择 X 选项:

选择鼠标用户对象

然后点击铅笔图标。选择菜单中的 运算,并选择 算术 选项:

选择算术操作

单击第一个铅笔图标,选择 变量 → 选择变量,变量的对话框将出现,您可以从中选择 x_mouse1 变量:

选择变量操作

然后点击第二个铅笔图标,选择 常数值 → 数字,并在出现的字段中输入数字5。

选择常数值选项

因为这与演示有关,即对象是图像加文本的组合,我们需要将值偏移5个点,以便底下的对象可点击:

设置对象属性等于鼠标跟踪值

单击 +添加属性,并指示 y_mouse1 变量将分配给 mouse_user_1 对象的 Y 对象属性。

在多用户研究中使用鼠标跟踪值设置对象属性的值

Prev
眼动追踪演示:将SVG作为兴趣区
Next
游戏手柄/操纵杆控制器 - 基本设置