事件系统
描述
事件系统对于任何研究都是必不可少的。它是您设置要记录的值、使实验进展和创建任务的方式。用户可以创建事件系统以执行任务中的所有功能、逻辑和交互。事件通常充当对象和变量之间的中介。
事件系统由触发器和动作组成。在这里,您设置规则,例如“当发生这个时”(触发器)然后“执行这个”(动作)。例如:如果参与者点击特定图像(触发器),则显示另一张随机图像(动作)。
![Labvanced中触发器和动作如何使用的概述。](/content/learn/content_imgs/learn/guide/task-editor/imgs/events/event_system_overview.png)
有关事件在Labvanced中如何工作的介绍,请参考这段快速视频:
创建事件 - 概述
事件在任务编辑器的“事件”标签下进行管理,位于右上角。新事件可以通过单击+ 帧事件
为该帧创建的事件,或通过单击+ 试验事件
将事件应用于所有帧来创建。所有现有事件在右侧面板中以列表视图显示。事件在帧级别上定义,可以是每帧独立/特定的,也可以在一次试验中在每帧上复制/相同。
无论哪种方式,事件始终在指定的帧内为试验组中的所有试验定义。然而,自定义逻辑允许用户仅在特定试验、条件或其他情况下执行事件。
下面的视频概述了Labvanced中可用的触发器和动作:
事件的执行顺序可以调整。默认情况下,具有相同触发器的事件在列表中位于更上方,将首先执行。事件也可以被复制和删除。当选择现有事件时,具体细节显示在右下角(事件属性)面板中。为了更好的概览,现有事件也可以重新打开(名称字段旁边的图标)。
触发器
触发器定义事件何时执行。这可能是特定对象上的鼠标点击、某个键盘输入、变量的变化、视频文件的开始或其他许多事情。以下列表中解释了所有触发器及其设置/参数:
触发器类别 | 触发器选项 | 描述 |
---|---|---|
用户输入触发器 | 用户输入触发器是指任何可以通过用户/参与者手动激活的触发器,例如移动鼠标、点击键盘元素、滚动等。 | |
生理信号触发器 | 生理信号触发器在指定的生理输入出现时发生,例如注视特定元素或头部运动变化。 | |
试验和帧触发器 | 这些触发器与实验试验和帧相关,例如帧何时开始或结束。 | |
变量值变化触发器 | 变量(值变化) | 变量值发生变化时,事件的触发器便会出现。 |
媒体对象触发器 | 媒体对象触发器 | 该触发器与媒体对象有关,例如视频/音频文件暂停、录音完成等。 |
API 触发器 | 当来自 API 的数据传入时,这些触发器会发生。 | |
全局触发器 | 全局触发器是指对实验的任何重大变化,例如暂停实验或多用户研究中参与者的离开。 |
用户输入触发器
用户输入触发器指的是任何可以由用户/参与者手动激活的触发器。
下表提供了Labvanced中所有用户输入触发器的简介。每个触发器在接下来的部分中会有更详细的描述。
用户输入触发器选项 | 概述 |
---|---|
鼠标触发器 | 任何鼠标移动都可以用作触发器来启动事件,例如:滚动、点击、悬停等。您还可以将特定元素或目标与触发器关联。例如,鼠标点击仅在点击某个特定图像时作为触发器使用。 |
键盘触发器 | 任何键盘按键都可以用作触发器来启动事件。您可以指定特定的键盘字母或数字作为触发器。 |
按钮点击 | 在Labvanced中创建的按钮对象可以用作触发器来启动事件。 |
输入时按下 Enter | 当参与者在实验过程中按下'Enter'键时,通常用作为提交他们在文本字段中写入的响应或输入的方式。 |
滚动触发器 | 当参与者滚动时会触发此事件。您可以指定x轴或y轴的滚动方向,以及滚动发生在什么元素上以用作事件触发器。 |
游戏手柄/摇杆触发器 | 此触发器允许您在实验设计中使用游戏手柄和摇杆控制器作为记录数据的输入设备。 |
鼠标触发器
“鼠标触发器”选项是非常流行的事件触发器,因为它基于任何鼠标交互来启动事件,例如:向上/向下移动鼠标、点击、悬停在特定对象上、离开特定对象或任何移动!
下面的示例显示一个“鼠标触发器”,当“左”鼠标点击“目标”对象“Image_1”时将执行:
以下是您在使用鼠标触发器时可用的选项的完整概述:
菜单项 | 菜单区域 | 鼠标触发器选项和规格 |
---|---|---|
动作 下拉列表: | ![]() | 以下鼠标触发器选项可从下拉列表中获得:
|
按钮 下拉列表: | ![]() |
|
目标 选项: | ![]() 在上面的示例中,‘Image_1’是将触发事件的按钮点击的目标。 可以通过单击底部的** ‘+添加目标’ **选项添加多个目标。 |
|
- 注意: 在事件系统中选择鼠标触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的鼠标值。
键盘触发器
“键盘触发器”选项是另一种流行的触发事件的方式。实际上,来自键盘的任何输入都可以用作触发器。这包括:按下、保持或释放一个键。
在下面的示例中,触发器被设置为在指定的目标数值(0、2或6)被按下时发生:
以下是您在使用键盘触发器时可用的键和选项的完整概述:
菜单项 | 菜单区域 | 键盘触发器选项 |
---|---|---|
动作 下拉列表: | ![]() |
|
键 触发事件的键 | ![]() | 触发所用的键由在此选项中选择的内容指定,单击**+添加: **
+添加: **按钮添加多个键盘触发器。 |
其他选项 | ![]() | 启用数字小键盘按钮选项允许在实验中将数字小键盘键用作触发器。 对于允许事件传播选项,如果多个事件具有相同的键盘触发器,则所有事件都将触发而无需它。只有第一个事件会触发,并且事件执行将在第一个事件完成后停止。 |
- 注意: 在事件系统中选择键盘触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的键盘值。
按钮点击触发器
如果在编辑器中放置了按钮或导航对象,您可以利用它们作为事件的一部分,其中点击按钮将作为动作的触发器。
单击此触发器将显示以下菜单,您可以指定哪个特定按钮将作为触发器:
以下是所展示项目的更近步看:
菜单项 | 菜单区域 | 按钮点击触发器选项 |
---|---|---|
目标: +设置目标 | ![]() | |
按钮: 选项 | ![]() | 指定帧上的哪个特定按钮 |
- 注意: 在事件系统中选择按钮点击触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的按钮点击值。
输入时按下 Enter 触发器
触发条件:在特定元素上按下 Enter/Return 键时。
参数:
添加目标:将输入元素添加到事件中。
注意: 在事件系统中选择输入时按下 Enter 触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的输入时按下 Enter 值。
滚动触发器
触发条件:在特定元素上使用滚动条、触控板滚动或鼠标滚轮。
参数:
- 选择滚动是在Y轴还是X轴(垂直滚动或水平滚动)。
目标:设置滚动触发器应用于的目标元素。
注意:对于长文本,在'对象属性'(/content/learn/zh/guide/task-editor/objects.html#object-properties)面板的'样式'部分,Overflow-X
和/或Overflow-Y
选项需要选择scroll
作为选项。
- 注意: 在事件系统中选择滚动触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的滚动值。
游戏手柄/摇杆触发器
游戏手柄/摇杆触发器
允许您在实验设计中使用游戏手柄和摇杆控制器作为记录数据的输入设备。注意: 请记得在'实验设置'标签的'实验特征'列中启用此选项。
![游戏手柄触发器菜单选项](/content/learn/content_imgs/learn/guide/task-editor/imgs/events/gamepadtrigger.png)
选择此触发器后,以下对话框将出现。
![游戏手柄触发器菜单选项对话框](/content/learn/content_imgs/learn/guide/task-editor/imgs/events/gamepadoptions.png)
连接游戏手柄后,您可以指定哪些特定键应作为触发器。按下特定键后,系统将显示其ID。
在下面的示例中,2
指的是◎键,3
指的是▵键。注意: 需要说明的是,不同的游戏手柄之间在如何分配键ID方面存在一些差异。
![游戏手柄触发器,设置命令的键](/content/learn/content_imgs/learn/guide/task-editor/imgs/events/gamepadkeytrigger.png)
按下键后,实时数据也会出现在此触发器对话框的后半部分,您可以看到根据您按下或释放的内容,值如何实时变化:
请查看此指南以获取更多详细信息和使用此触发器的研究示例。
下表详细解释了这些选项。
菜单项 | 菜单区域 | 游戏手柄/摇杆触发器选项 |
---|---|---|
侦听按钮 | ![]() | I.) 指定触发器与按钮相关,是否是按下键、按住键或释放键。 II.) 指定触发器是针对任何按钮还是特定按钮。如果选择特定选项,您将被提示按下手柄上的按钮。 |
侦听轴 | ![]() | 如果需要轴运动,那么您可以指定当阈值以特定值变化时将触发器设置为发生。默认值为0.01。 |
连接状态 | ![]() | 指示设备是否已连接。 |
实时数据流 | ![]() | 连接设备并按下某个键或移动轴后,实时数据将在这里显示,您在设备上执行的任何输入都会在这里显示。这在设置研究时进行测试以及确定您想要使用哪个键或轴时非常有用。 |
注意: 在事件系统中选择游戏手柄/摇杆触发器后,您可以在与值选择菜单的各种动作中利用和引用其特定于触发器的值。
生理信号触发器
这些触发器仅在启用了眼动追踪和/或头部追踪时适用。
眼动注视触发器
触发条件:
- 总体而言,当启用眼动追踪时,该触发器将适用。
- 仅在查看特定元素时触发。
参数:
如果您选择仅在特定元素上触发,请将这些元素添加为目标。
注意: 在事件系统中选择眼动注视触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的注视值。
眼动固定触发器
该触发器仍处于测试阶段。
- 注意: 在事件系统中选择键盘触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的固定值。
头部追踪触发器
触发条件:
头部方向或头部运动的变化。
注意: 在事件系统中选择头部追踪触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的头部追踪值。
试验和帧触发器
任务初始化触发器
触发条件:
- 任务的第一次试验的第一帧。每个任务仅执行一次,尽管在所有实例的事件标签中显示。
此触发器与Shuffle和Read From动作配对良好。通过这些组合,您可以在任务开始时随机排列数组条目或数据帧,并为刺激分配受试者,而无需创建多个事件以读取刺激或数据。
参数:无
- 注意: 在事件系统中选择任务初始化触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的任务初始化值。
帧初始化触发器
触发条件:
- 帧的初始化,在其对参与者可见之前。
此触发器与Shuffle、Read From和Draw Random Number动作配对良好。通过这些组合,这些动作可以在帧出现之前完成,为其他动作在帧开始时的开始留出清晰的路径。
注意: 不要将帧初始化触发器与记录变量或涉及系统变量(如试验编号或条件编号)的事件一起使用。这是因为帧初始化触发器在试验之间发生,因此关于即将显示的试验或条件不能完全准确计数。
参数:无
- 注意: 在事件系统中选择帧初始化触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的帧初始化值。
关于任务和帧初始化触发器的注意事项: 由于任务和帧初始化触发器在任务或帧开始之前发生,因此在此期间创建的变量在任务/帧真正开始时将重置。使用此事件时会出现警告:
如果您不希望变量值被重置,请记得在变量属性窗口中取消选中“在试验开始时重置”框。
帧开始触发器
触发条件:
- 帧开始
参数:无
- 注意: 在事件系统中选择帧开始触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的帧开始值。
帧结束触发器
触发条件:
- 帧结束(当帧不再可见后)
参数:无
- 注意: 在事件系统中选择帧结束触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的帧结束值。
变量值变化触发器
变量值变化
触发条件:
- 变量的值从其起始值变化
参数:
变量:选择一个或多个您想要“监听”变化的变量。这些变量的任何值变化将立即触发相应的动作。
注意: 在事件系统中选择变量值变化触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的变量值变化值。
媒体对象触发器
媒体对象触发器
以前称为单独的“控制音频/视频触发器”和“控制对象”触发器。
触发条件:
- 视频或音频文件的开始、暂停或停止
- 文件上传完成、文件选择、录音物体的录音完成
- 照片快照完成或上传完成的相机快照对象
参数:
目标:选择帧中存在的对象元素
执行时:选择触发的子类型
- 音频或视频对象选项:
- 播放开始:当元素开始播放时触发
- 播放停止:当元素暂停时触发
- 播放结束:当元素停止播放时触发
- 视频、音频或屏幕录制对象选项:
- 录音完成:当音频录音停止时触发
- 上传完成:当文件上传完成时触发
- 文件上传对象选项:
- 文件选择:当选择文件时触发
- 上传完成:当文件上传完成时触发
- 相机快照对象选项:
- 照片快照完成:当相机成功拍摄快照时触发
- 上传完成:当快照上传完成时触发
- 音频或视频对象选项:
注意: 在事件系统中选择媒体对象触发器后,您可以在与值选择菜单的各种动作中利用和引用特定于触发器的媒体对象值。
API 触发器
如果您需要将数据从外部服务器发送或传输到Labvanced,可以使用“API触发器”和“API动作”。可以作为触发器使用的内容包括:
- WebSocket触发器
- OpenAI触发器
WebSocket触发器
WebSocket触发器用于当来自WebSocket/API的消息被接收并作为动作的触发器进行处理时。
单击此选项后,以下项目将出现。
- 接受/接收自: 自动检测本地主机的IP地址。可以手动更改,位于'实验设置'标签下'实验特征'列。
- 触发/消息: 输入将作为触发器的消息。输入'any'以接受多个消息作为触发器。
有关如何使用API触发器/动作的示例,请检查此演示https://www.labvanced.com/page/library/51053,通过单击对话框中的'检查'选项。
- 注意: 在事件系统中选择WebSocket触发器后,您可以在与[值选择菜单](### 对象操作 对象操作指的是在任务中对存在的对象进行的任何操作。 有几种对象操作选项:
- 设置对象属性
- 控制多媒体对象
- 复制对象
- 对每个对象执行操作
设置对象属性操作
使用“设置对象属性”操作,您可以通过指定相关对象、要更改的属性和新值,随意更改对象的外观。
在下面的示例中,该操作将通过将“可见性”设置为“1”以及将其“高度”设置为“400”来更改目标图像的两个属性,同时通过将这一变更发生的时间记录在名为“Object_Prop_Change_Time”的数值变量中。
以下是您在使用“设置对象属性”操作时遇到的字段的完整概述:
菜单项 | 菜单区域 | 设置对象属性触发选项 |
---|---|---|
目标 对象选择下拉列表: | ![]() | |
目标 属性选择下拉列表: | ![]() | 第二个下拉菜单指示要更改哪个对象 属性。有关可用选项及其参数的完整解释,请参见 对象属性表 |
值选择菜单 | ![]() | 定义新值,即操作后新对象属性的值,应采用 值选择菜单 。 |
‘+ 添加属性’ | ![]() | 可以通过单击此图标添加并更改多个属性。 |
复选框 - 修改属性在屏幕上显示的时间(从框架开始以毫秒为单位)。 | ![]() | 当属性更改时,会需要短暂的时间(大约 ~10ms 使更改可见)。通过此选项,您可以更准确地记录修改后的属性在下一次显示更新时确切可见的时间。 注意: 选中此选项后,将出现对话框提示您指明(或创建新变量)此捕获的值应存储在哪里。 该变量应为数值类型。 |
控制多媒体对象操作
以前分别为“控制音频/视频”和“控制对象”操作。
效果:更改视频/音频元素的播放或更改上传/录制元素的状态。
参数:
- 目标:选择一个媒体对象
- 效果:选择一个子操作
- 音频或视频对象选项:
- 开始播放:开始播放视频/音频文件
- 停止播放:停止视频/音频文件
- 暂停播放:暂停视频/音频文件
- JumpToTime:允许您指定一个毫秒的时间,以跳转到音频/视频文件中的该时间
- 静音:关闭对象的声音
- 取消静音:恢复对象的声音
- 音频、视频或屏幕录制对象选项:
- 开始录制:开始新的(音频)录制
- 停止录制:停止(音频)录制
- 开始上传:开始上传文件
- 清除录制:删除(音频)录制数据。
- 开始播放:开始播放录制的文件
- 停止播放:停止播放录制的文件
- 暂停录制:暂停对象的录制
- 恢复录制:恢复对象的录制
- 文件上传对象选项:
- 开始上传:开始为所选文件的上传过程
- 清除文件:删除所选文件
- 选择文件:允许参与者选择所需的文件
- 摄像头快照对象选项:
- 启动相机:打开参与者的相机
- 停止相机:关闭参与者的相机
- 开始上传:开始将快照上传到实验
- 拍摄快照:使用参与者的相机拍照
- 音频或视频对象选项:
复制对象操作
效果:复制对象,以替代多个单独对象和重复事件的需要。
参数:
- 源:选择要复制的框架中的对象。
- 复制数量:输入要制作的源对象的副本数量。
- 设置新元素名称:从多个参数中选择以确定副本的名称。
- 使用递增后缀分配名称:在新元素名称的末尾添加一个数值标签,以区分副本。
- 操作顺序:允许您选择(从常规操作列表中)对所有副本所发生的操作。选择“当前对象”作为目标,以对所有副本应用该操作。
对每个对象操作
效果:将操作应用于多个相同类型的对象。
参数:
- 筛选:选择要定位的元素类型。
- 允许额外名称筛选:输入要定位的对象名称。对于帧中多个同名对象,这种方式效果很好。
- 操作顺序:允许您选择(从通常的操作列表中)对所选元素将发生的操作。选择“当前对象”作为目标,以将操作应用于符合上述指定条件的所有元素。
变量操作
变量操作用于设置或创建变量值,记录和定义值,包括跨会话的值。
下表提供了 Labvanced 中所有可用变量操作选项的简介。每个选项将在后续部分中详细描述。
变量操作选项 | 描述 |
---|---|
设置/记录变量 | 写入或设置变量值 |
复制到剪贴板 | 将变量值复制到计算机的内部剪贴板。 |
抽取随机数 | 抽取一个或多个随机数字并将其保存在变量中 |
获取 URL 参数 | 从参与者的唯一 URL 中保存一个值 |
从/写入设备 | 从本地设备的存储中读取或写入变量。此操作将数据保存到参与者的设备,而不是发送到 Labvanced 服务器。 |
从/写入共享变量 | 从共享变量读取或写入,它在研究的会话中被共享。该变量可以与所有参与者共享或私有到每个参与者。 |
数学与统计 | 对某些输入变量(数组)执行数学运算,并将结果保存在输出变量中。 |
即时记录变量 | 创建所有变量值的快照并将其发送到 Labvanced 服务器。 |
移动平均滤波器 | 计算某些输入的移动平均(不断更新的数据平均值)并将结果保存在新变量中。 |
分配变量 | 将一个值发送给其他参与者。该值存储在一个变量中。 |
设置/记录变量操作
“设置/记录变量”操作必将在 Labvanced 中的每个实验中使用,因为它是存储和记录值及行为测量的方式。
单击此操作后,将出现以下对话框菜单,您可以在此指定应记录哪个变量及感兴趣的值:
菜单项 | 菜单区域 | 描述 |
---|---|---|
选择 | ![]() | 单击选择后,您指示哪个变量应存储该值。从这里,您还可以创建一个新变量。 |
笔图标 | ![]() | 笔图标象征着 值选择菜单,用于定义和指定应分配给所选变量的确切值(如左侧等号(=)符号附近的绿色按钮所示)。 |
在下面的示例中,我们创建了一个名为 counter
的新变量,并使用值选择菜单中的算术选项使变量值增加 1(基于之前步骤中定义的触发条件)。
下面的图像记录鼠标 X,Y 坐标,以便在研究中捕捉鼠标跟踪。下面的图像展示了如何使用三项操作使变量值记录成为可能。变量(左侧)是手动创建的,而等号(=)右侧的值是 仅鼠标触发特定值,系统提供的,您可以在记录值时引用它。
注意: 设置/记录变量
操作也常用于 控制操作
的上下文,您可以 根据变量值指定条件使用“如果/那么”和“而当循环”。
复制到剪贴板操作
效果:将变量值复制到计算机的内部剪贴板。
抽取随机数操作
效果:抽取一个或多个随机数字并将其保存在变量中
参数:
- 类型:选择连续值和离散值
- 分布:选择高斯分布和均匀分布
- 多次抽取(布尔值 真/假):选择抽取一次或多次。
- 抽取数量:选择抽取的数量
- 最小值:定义均匀分布的最小值
- 最大值:定义均匀分布的最大值
- 平均值:定义高斯分布的平均值
- 标准偏差:定义高斯分布的标准偏差
- 在变量中保存:选择一个变量以存储值。
获取 URL 参数操作
效果:从参与者的唯一 URL 中保存一个值
参数:
- 参数名称:输入所需参数的名称
- 在变量中保存:选择将参数值保存到的变量
此操作可与其他操作结合使用,以为参与者构建唯一的 URL,或提取数据分析所需的信息。
从/写入设备操作
效果:从本地设备的存储中读取或写入变量。此操作将数据保存到参与者的设备,而不是发送到 Labvanced 服务器。
参数:
- 选择从本地设备读取或写入。
- 选择要读取或写入的变量。
用例:纵向/多会话研究
- 使用此操作,特定设备的数据可以从会话传递到会话,前提是同一参与者在每个会话中使用相同设备。
- 例如,您可以使用此操作记录第一会话中向每个参与者呈现的图像,并确保在第二会话中呈现不同的图像。
- 创建一个图像数组,并随机选择一些图像在每个会话中呈现。
- 写入设备:在第一会话中呈现的图像的索引编号。
- 从设备读取:在第二会话中,读取第一会话中的图像索引,并包含一个 JavaScript 操作,阻止在第二会话中选择这些索引。
从/写入共享变量操作
效果:从共享变量读取或写入,它在研究的会话中被共享。该变量可以与所有参与者共享或私有到每个参与者。
参数:
- 选择要同步的变量。必须是标量或数组。
- 高级选项
- 存储密钥:选择一个变量的名称,作为访问同步变量的密钥。
- 读取或写入方法:
- 读取、修改,然后写入共享变量:读取变量并进行更改,然后将变量发送到研究。
- 仅从服务器读取共享值:调用在研究中共享的变量,但不进行任何更改。
- 仅将变量写入服务器:更改共享变量,但不向参与者显示。
- 在不同参与者之间共享值(不仅在会话之间):允许参与者查看整个会话中彼此同步变量的值。该选项默认选中,但可通过单击复选框取消选中。
- 操作顺序:
- 从所有可用操作列表中选择对共享/同步变量将发生的操作。
用例:纵向/多会话研究
- 使用此操作,参与者特定的数据可以从会话传递到会话,并在会话中参与者之间共享。
- 例如,您可以使用此操作记录测试分数,然后允许参与者将他们的分数与其他完成测试的参与者的平均分数进行比较。
- 另一个示例(类似于从/写入设备操作)是让参与者从一个数组中挑选5个他们喜欢的图像,完成一个任务,然后在以后的会话中再次呈现这5个图像。不同之处在于,此操作可用于向其他参与者显示所选择的图像,或将这些图像从另一个参与者的可用选项中排除。
数学与统计操作
效果:对某些输入变量(数组)执行数学运算,并将结果保存在输出变量中。
参数:
- 类型:选择数组操作、线性代数和统计检验
- 运算:选择数学运算(例如:总和,最小值,标准差等)
- 输入数组:选择要执行运算的输入变量(数组)
- 参数:某些运算有额外参数。
- 输出:选择一个输出变量,以存储结果。
即时记录变量操作
效果:创建所有变量值的快照,并将其发送到 Labvanced 服务器。
参数:无
移动平均滤波器操作
效果:计算某些输入的移动平均(不断更新的数据平均值),并将结果存储在新变量中。
参数:
- 滤波器形状:选择滤波器类型
- 简单移动平均:计算简单移动平均,所有样本具有相同权重。
- 线性加权移动平均:对样本进行加权,使样本权重线性递减。
- 指数移动平均:对样本进行加权,使样本权重以指数方式递减。
- 样本数量:确定每一步使用多少样本。
- 输入:选择一个输入变量(数组),以计算移动平均值
- 输出:选择一个输出变量,以存储结果。
分配变量操作
分配变量操作对于 Labvanced 中的多用户研究 至关重要。通过此操作,可以在参与者之间共享变量值,从而使信息(包括刺激位置和任何更改)在参与者的屏幕上反映。
选择此操作后,将出现以下对话框,您可以在其中指定在参与者之间分配的变量值。
下面的图像显示了当所有菜单项都填写完毕时,功能性分配变量操作对话框的样子。在该示例中,分配变量是用作在两个参与者之间创建聊天方式的一项操作,通过分配来自输入字段对象的变量值。
在这里查看包含分配变量和聊天框功能的演示:图像描述任务与聊天附加组件。
对话框菜单项的完整解释如下:
菜单项 | 菜单区域 | 分配变量操作选项和描述 |
---|---|---|
分配值给 | ![]() | 选择值应发送给哪些其他参与者。
|
选择目标变量和值 | ![]() |
|
块 | ![]() | 如果启用,则目标变量在当前值分配完成之前无法更改。 |
速率限制策略 | ![]() | 速率限制策略是保护您的实验免受服务器溢出的方式,并作为控制请求速率(即通过分配变量的更新发送到服务器的请求)的预防策略。可用的策略选项包括:
|
数组操作
从数组选择(读取)操作
效果:将从数组中读取一个变量,并将此值存储在标量变量中。
参数:
- 数组变量:用于读取值的输入数组。
- 索引类型:确定使用什么类型的索引。
- 固定:使用固定索引进行读取操作。在这种情况下,输入要读取信息的位置(基于 1)。
- 变量:使用数值变量作为读取操作的索引。在这种情况下,选择一个标量数值变量来确定读取的位置。
- 数组末尾:从数组的末尾读取。
- 输出变量:选择一个标量变量,读取的值将存储在该变量中。
添加/删除数组条目操作
效果:将添加和/或删除条目到/从数组中。
参数:
- 数组变量:执行添加或删除操作的数组变量。
- 索引类型:确定使用什么类型的索引。
- 固定:使用固定索引进行插入/删除操作。在这种情况下,输入应插入/删除条目的数组位置(基于 1)。
- 变量:使用数值变量作为插入/删除操作的索引。在这种情况下,选择一个标量数值变量以确定应插入/删除的位置。
- 数组末尾:从数组末尾插入/删除。
- 要删除的条目数量:将从定义的索引位置开始删除数组条目(在插入新条目之前)。0 表示不会删除任何值。
- 要插入的变量:选择一个或多个标量变量,这些变量将根据定义的位置插入到数组变量中。
更改(替换)数组条目操作
效果:替换/更改数组中的一个值。
参数:
- 数组变量:数组变量,其中应修改一个值
- 索引类型:确定使用什么类型的索引。
- 固定:使用固定索引进行替换操作。在这种情况下,输入应更改的数组位置(基于 1)。
- 变量:使用数值变量作为替换操作的索引。在这种情况下,选择一个标量数值变量以确定替换操作的位置。
- 数组末尾:替换数组中的最后一个条目。
- 输入变量:选择一个(标量)变量,保存新值。
洗牌数组条目操作
效果:重新洗牌数组中的条目/顺序。
参数:无
数据框操作
从/写入数据框操作
效果:从数据框读取值或向数据框写入值,并将其保存到新的数组变量中。
参数:
- 数据框变量:选择要读取的数据框变量。
- 读取或写入:选择从选定数据框读取或向选定数据框写入。
- 按行还是列:选择数据应如何读取。
- 索引类型:选择将用于读取数据框的索引变量类型。可以是固定、变量或最后一行。
- 索引变量:选择将用于作为索引读取数据框的变量。
- 输出变量:选择将读取/写入的数据存储为输出的变量。必须是数组变量。
洗牌数据框条目操作
效果:洗牌数据框中的条目的顺序。
参数:
- 选择要洗牌的数据框。
- 选择数据框应按行还是列洗牌。
跳转操作
跳转到操作
效果:将参与者“跳转”到实验中的不同步骤。此操作可以更改实验中试验和任务的顺序,并可用于为每位参与者创建个性化的实验逻辑。
参数:
- 跳转到:确定要跳转到的实验位置。
- 下一个框架:跳转到下一个框架。如果在试验中没有定义更多框架,则会跳转到下一个试验的第一个框架。
- 下一个试验:跳转到下一个试验。如果没有定义更多试验,则会跳转到下一个任务的第一个试验。
- 下一个任务:跳转到下一个任务。如果没有定义更多任务,则会跳转到下一个区块的第一个任务。
- 下一个区块:跳转到下一个区块。如果没有定义更多区块,则会结束会话。
- 上一个框架:跳转到上一个框架。如果没有前一帧,则不会执行操作。
- 特定框架:跳转到特定框架。用户直接选择要跳转到的框架。
- 特定试验:跳转到特定试验。用户直接选择要跳转到的试验编号。
- 特定任务:跳转到当前区块中特定任务的第一个实例。用户直接选择要跳转到的任务。
- 特定区块:跳转到特定区块的第一个实例。用户直接选择要跳转到的区块。
- 在跳转之前检查所需答案:如果启用,实验将检查所有所需答案是否都已回答。如果没有,则不会执行跳转操作。
接受/结束会话操作
效果:将接受参与者数据,结束录制会话,并显示众包代码。
参数:
- 在结束会话之前记录试验数据:如果启用,将在退出研究之前存储(发送到服务器)最新试验数据。
- 显示默认结束页面:如果启用,将出现 Labvanced 的默认结束屏幕。如果这是众包会话(使用了众包链接),则将向参与者展示补偿代码。如果禁用,在显示当前框架之后实验将结束,并不会显示默认结束屏幕及补偿代码。
拒绝/结束会话操作
效果:结束录制会话,不会将参与者的数据标记为完成,也不会显示带有补偿代码的默认结束屏幕。
使用此操作拒绝参与者数据时,用户应向参与者显示适当的消息,说明他们不会因自己的时间而获得奖励。
参数:无
重定向到 URL 操作
效果:将参与者重定向到特定 URL。
注意:为了使此操作有效,URL 的开头必须包含 https:// 。
控制操作
需求操作(如果... 那么... 否则如果)操作
效果:评估一个 if-then 语句,并依赖于执行一系列操作。每个 If/Else-If 语句由嵌套的 AND/OR 比较组成,以评估所有要求是否达成(语句为真)或未达成(语句为假)。如果语句为真,将执行“然后”下的操作。
参数:
- 添加需求:为语句添加新需求。在两侧将出现“值选择”菜单,以进行逻辑比较。在语句中间,您可以选择两侧应如何比较(例如:等于,小于,不等等)。
- 添加 OR 组:OR 组中的所有要求只需其中一个为真,该组即为真。如果子操作在几种情况下应被执行,请添加 OR 组。
- 添加 AND 组:AND 组中的所有要求必须为真,整个组方可为真。当多项要求应被满足时,添加 AND 组。
- 操作顺序:每个 If/Else-If 语句下有一定的操作列出的列表,其中定义在“然后”下。操作顺序列出与特定的 If/Else-If 语句关联的所有操作。在满足关联的 If/Else-if 语句的要求的情况下,将执行新的操作。
- 添加 Else-If 案例:需求操作可以由多个单独的 If/Else-If --> Then 语句构成。但是,只能执行一个语句。如果一个 If/Else-If 语句评估为正(返回真),则在 Then 块中的操作将被执行,其余的需求操作将被跳过。
- 添加 Else 案例(真/假):如果启用,则为需求操作添加一个默认/后备选项。如果没有执行任何 If/Else-If 语句(返回真),则将在 Else 案例中定义的操作将被执行。
重复操作(While 循环)操作
效果:反复执行一系列操作,或立即或在定义的时间间隔内。可以指定停止条件,以便停止循环执行。
参数:
- 执行类型:选择立即执行还是定时执行
- 执行完整循环:将持续执行循环,直到满足停止条件。
- 每 ... 毫秒执行:将在定义的时间间隔内执行循环(例如:每 50 毫秒执行一次)。
- 定义循环次数:选择“每 ... 毫秒执行”时,用户可以为应该执行循环的次数指定一个整数值。这取代了定义停止条件的需要。
- 执行间隔:确定执行间隔。
- 立即启动(真/假):如果启用,则立即执行循环。如果禁用,则将在下一个执行间隔启动循环。
- 允许多次启动(真/假):如果启用,可以并行启动多个循环实例。如果禁用,则一次只能执行一个循环实例。
- 启用停止条件(真/假):如果启用,可以为循环指定停止条件。
- 停止条件:停止条件可用于指定循环执行应停止的逻辑表达式。类似于 If/Else-If 语句,可以组合 AND 组、OR 组和要求以进行逻辑比较。
- 操作顺序:操作顺序列出在循环每次迭代中执行的所有操作。可以通过“添加操作”图标添加新的操作。
延迟操作(时间回调)操作
效果:在某个时间延迟后执行一系列操作
参数:
- 延迟类型:选择固定延迟或可变延迟
- 固定延迟:操作将在固定延迟后执行。
- 可变延迟:操作将在指定的(数值)变量的延迟后执行。
- 延迟:以毫秒(ms)为单位的延迟长度。
- 操作顺序:操作顺序列出在指定时间延迟后执行的所有操作。可以通过“添加操作”图标添加新的操作。
操作组
操作还可以组织为 操作组。 操作组允许您将某些操作组合在一起,以便于视觉结构,也可以在需要一并复制、重复或删除多个操作时使用。要添加操作组,您可以在自定义操作下找到该选项:
API 操作
如果您需要将数据从外部服务器发送或传输到 Labvanced,则可使用“API 操作”和 “API 触发器”。您可以在此类别中使用以下操作:
- 发送到 Websocket
- 发送到 OpenAI
为了使这些操作“可用”或可使用,您必须在 研究设置 的 [“实验特性
由于OpenAI的不断发展,请查看OpenAI的文档以获取进一步的说明。
代码操作
在某些情况下,您的实验可能需要您使用自定义代码。使用这些操作,您可以做到这一点! 在“代码操作”菜单下提供以下选项:
- 运行JavaScript
- 设置全局CSS
运行JavaScript操作
“运行JavaScript”操作允许您为您的研究编程特定事件,并通过输入自定义JavaScript来读取/设置Labvanced变量,这些代码将在触发时作为操作运行。
当选择上述“运行JavaScript”操作时,您将看到一个区域(代码编辑器),在该区域中应编写JavaScript代码,以及如何使用它的说明:
设置全局CSS操作
使用“设置全局CSS”操作,您可以使用自定义CSS代码在触发时更改研究的某个方面。
点击此操作后,会打开以下字段:
使用“设置全局CSS”操作的一个示例是,当参与者从多项选择题中选择特定颜色时,更改研究的背景颜色。
粘贴操作
此选项允许您粘贴之前创建并复制的操作。它允许您在设计实验时更快地工作,以便您无需不断选择相同的项目。例如,如果您有一个与已存在的事件相似的事件,您可以直接复制、粘贴并修改,而不是从头开始构建。
值选择菜单
在处理某些事件时,您会注意到出现一个笔图标。这称为值选择菜单,因为它允许您选择并指示要记录或跟踪的值类型。这是一个非常强大和重要的选项,您必然会在实验设计和设置中使用。
此笔图标/值选择菜单在事件系统中某些操作的不同位置出现,例如设置/记录变量操作、设置对象属性操作和条件(如果...则)操作,如下所示。
点击笔图标会弹出一个下拉菜单,您可以在其中指定要读取或写入的值。 下拉菜单将始终首先列出一个触发特定的值选项,然后继续列出其他5个类别(当前时间、常量值、变量、框架/任务/选项和操作),每个类别都有其自己的选项。 这些将在下面进一步描述。
上面的图像显示了在使用鼠标触发器时值选择菜单的样子。如您所见,左侧的第一个菜单项以触发特定类别开始,然后转向其他5个类别(当前时间等)。
菜单选项
下面的表格进一步解释了这些类别和选项:
类别 | 选项 | 描述 |
---|---|---|
触发特定 | 取决于您之前为事件选择的触发类型。 | 基于您为事件选择的触发器,您将在值选择菜单顶部看到特定选项列表供您选择。请参阅触发特定值部分以查看完整的选项和描述列表。 |
当前时间 | 测量和调用时间值。 | |
常量值 |
| 根据您需要的变量类型分配常量值,如字符串或数字。这些值有时与算术 等其他选项结合使用以创建计数器。 |
变量 |
| 指定或引用变量或从数组或数据框中选择值。 |
框架/任务/对象 |
| 允许您获取与对象属性、框架、眼动追踪(如果已激活)和设备(屏幕刷新率)相关的值。 |
操作 |
| 使用操作对您的变量执行指定的更改,例如组合变量值,将字符串转化为小写,或运行数学运算。 |
当前时间值
通过“当前时间”选项,您可以记录或引用与时间相关的值。
以下选项可用:
当前时间:UNIX时间戳
此值以毫秒形式捕获UNIX格式的时间戳。
当前时间:来自帧开始的时间
此值捕获从帧开始经过的时间。通常,这是反应时间的等效值。
常量值
根据您需要的变量类型分配常量值,如字符串或数字。这些值有时与算术
等其他选项结合使用以创建计数器。
以下选项可用:
常量:字符串
分配一个字符串/文本值。
常量:数字
分配一个数字/数值。
常量:布尔
分配一个真或假的值。
常量:分类
分配一个级别值(主要用于因素)。
常量:日期
分配一个日期值。
常量:时间
分配一个时间值。
常量:颜色
分配一个颜色(十六进制字符串)值。
变量值
指定或引用一个变量或从数组或数据框中选择一个值。可用的选项包括:
选择变量
允许您选择并指向一个变量。
从数组中选择值
允许您从数组中选择一个值。
从数据框中选择值
允许您从您创建的数据框中选择一个值。
框架/任务/对象值
允许您获取与对象属性、框架、眼动追踪(如果已激活)、和设备(屏幕刷新率)相关联的值。
对象属性
读取一个对象属性。
框架
框架值选项 | 描述 |
---|---|
最近缓存的鼠标X位置 | 参与者鼠标的最后一个X坐标值。 |
最近缓存的鼠标Y位置 | 参与者鼠标的最后一个Y坐标值。 |
最近缓存的鼠标[X,Y]数组 | 参与者鼠标的最后一个[X,Y]坐标值,以数组格式呈现。 |
框架名称 | 框架的名称。 |
眼动追踪
眼动追踪值选项 | 描述 |
---|---|
最近缓存的坐标X | 参与者视线的最后一个X坐标值。 |
最近缓存的坐标Y | 参与者视线的最后一个Y坐标值。 |
最近缓存的坐标[X,Y]数组 | 参与者视线的最后一个[X,Y]坐标值,以数组格式呈现。 |
最近缓存的坐标+时间[X,Y,T]数组 | 参与者视线的最后一个[X,Y]坐标值,加上相机捕获时间T值,以数组格式呈现。 |
设备
- 刷新率: 参与者设备的刷新率值。
操作
使用操作对您的变量执行指定的更改,例如组合变量值,将字符串转化为小写,或运行数学运算。
以下选项可用:
算术
算术操作在许多不同的目的中都非常有用,包括组合字符串甚至修改对象属性。
基本上,算术操作允许您对多个值进行操作。
选择此选项后,额外的笔图标(即值选择菜单)将出现,以及运算的列表,例如加法。
这些值可以使用以下五种不同的运算进行操作:
- (+) 加法
- (-) 减法
- (/) 除法
- (*) 乘法
- (%) 取模
下面的示例展示了如何利用算术运算创建一个名为“intermediateVar”的新字符串变量(在绿色按钮中)。
新变量值('intermediateVar')通过将多个算术操作与先前创建的变量(即 'userChatName' 和 'chatInput')结合使用定义,连同常量字符串值,即分号 :
和换行<br>
。此操作创建了一个可用于多用户研究的用户聊天效果。
字符串操作
字符串操作选项 | 描述 |
---|---|
转为小写 | 将字符串变量中的所有字母转换为小写字母。 → 示例: (AAABBB) 转换为 (aaabbb) |
转为大写 | 将字符串变量中的所有字母转换为大写字母。 → 示例: (aaabbb) 转换为 (AAABBB) |
转为链接 | 将变量中的字符串转换为在另一个窗口中打开的URL |
移除空格 | 删除字符串变量中字母之间的所有空格。 → 示例: (aaa bbbb cccc) 转换为 (aaabbbbccc) |
修剪空格 | 删除字符串变量开头的空格。 → 示例: ( aaabbbcccc) 转换为 (aaabbbcccc) |
替换子字符串正则表达式 | 替换字符串值变量中的某些字母。 → 示例: (aaabbbccc) 将 bbb 替换为 xxx 使得值变为 (aaaxxxccc) |
数学操作
对标量值执行数学运算。
数学操作选项 | 描述 |
---|---|
abs | 返回值的绝对数。 |
sqrt | 返回值的平方根。 |
round | 返回四舍五入后的值,保留0到3位小数。 |
floor | 返回向下取整的值。 |
ceil | 返回向上取整的值。 |
cos | 返回余弦值。 |
sin | 返回正弦值。 |
tan | 返回正切值。 |
触发特定值
触发特定值是指与特定事件内定义的触发器相关联的值。例如,如果您的事件使用鼠标触发器,那么,在指定操作的特定区域(例如使用设置/记录变量
操作或设置对象属性
操作时),您可以引用鼠标触发特定值,在值选择菜单中。
在下面的示例中,使用鼠标触发的触发特定值用于使用设置/记录变量
操作记录x值和y值以及一个[X,Y]数组。
下面是Labvanced中可以找到的所有类型的触发特定值的表格,后面是每个选项的详细解释。
名称 | 值选项 - 概览 |
---|---|
触发(鼠标) |
|
触发(键盘) |
|
触发(按钮栏) |
|
触发(输入时Enter) |
|
触发(滚动) |
|
触发(游戏手柄/摇杆) |
|
触发(眼动追踪注视) |
|
触发(眼动追踪固定) |
|
触发(头部追踪) |
|
触发(任务初始化时) |
|
触发(框架初始化时) |
|
触发(框架开始时) |
|
触发(框架结束时) |
|
触发(变量值改变) |
|
触发(媒体对象触发) |
|
触发(Websocket触发) |
|
触发(OpenAI触发) |
|
触发(全局实验事件) |
|
触发(用户离开实验) |
|
触发(鼠标)值
当使用鼠标触发器时,可以在处理某些操作时调用以下触发特定值:
触发(鼠标)选项 | 描述 |
---|---|
鼠标X | 返回框架坐标中的当前鼠标X位置。 |
鼠标Y | 返回框架坐标中的当前鼠标Y位置。 |
鼠标[X,Y]数组 | 鼠标的[X,Y]坐标,以数组格式呈现。 |
刺激名称 | 触发事件的对象名称(例如,单击的图像)。 |
刺激信息 | 触发事件的对象的刺激信息。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的经过时间(毫秒)。 |
触发(键盘)值
当使用键盘触发器时,可以在处理某些操作时调用以下触发特定值:
触发(键盘)选项 | 描述 |
---|---|
按键ID | 被按下的触发键的ID值。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的经过时间(毫秒)。 |
触发(按钮栏)值
当使用按键点击触发器时,可以在处理某些操作时调用以下触发特定值:
触发(按钮栏)选项 | 描述 |
---|---|
刺激名称 | 触发事件的按钮对象名称。 |
刺激信息 | 触发事件的按钮对象的刺激信息。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的经过时间(毫秒)。 |
触发(输入时Enter)值
当使用输入时Enter触发器时,可以在处理某些操作时调用以下触发特定值:
触发(输入时Enter)选项 | 描述 |
---|---|
按键ID | 被按下的触发键的ID值。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的经过时间(毫秒)。 |
触发(滚动)值
当使用滚动触发器时,可以在处理某些操作时调用以下触发特定值:
触发(滚动)选项 | 描述 |
---|---|
刺激名称 | 触发事件的按钮对象名称。 |
刺激信息 | 触发事件的按钮对象的刺激信息。 |
滚动位置X | 触发事件时鼠标的滚动位置X。 |
滚动位置Y | 触发事件时鼠标的滚动位置Y。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的经过时间(毫秒)。 |
触发(游戏手柄/摇杆)值
当使用游戏手柄/摇杆触发器
时,可以在处理某些操作时调用以下触发特定值:
触发(游戏手柄/摇杆)选项 | 描述 |
---|---|
游戏手柄设备ID | 连接的游戏手柄的ID或名称。 |
按下的键(数组) | 被按下的键。 |
按下或保持的键(数组) | 被按下或保持的键。 |
释放的键(数组) | 被释放的键。 |
轴(数组) | 轴值。 |
游戏手柄时间戳(Unix时间) | 游戏手柄的Unix时间戳。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式。 |
触发时间(来自帧开始) | 与帧开始相关的触发发生的Unix时间戳。 |
触发(眼动追踪注视)值
当使用眼动追踪注视触发器时,可以在处理某些操作时调用以下触发特定值:
触发 (眼动追踪注视) 选项 | 描述 |
---|---|
坐标X | 注视的X坐标值。 |
坐标Y | 注视的Y坐标值。 |
坐标[X,Y]数组 | 眼动追踪坐标X,Y,以数组格式呈现。 |
刺激名称 | 初始化注视触发的刺激名称。 |
刺激信息 | 初始化注视触发的刺激的刺激信息。 |
相机捕获时间T | 快照发生的确切时间。在Labvanced眼动追踪管线中,相机快照发生在算法和神经网络进行注视计算之前。因此,相机捕获时间T 是发生初始快照时的UNIX时间戳。有关我们基于网络摄像头眼动追踪技术的更多信息,请参考我们的眼动追踪技术页面。 |
注视置信度C | 此值范围从0到1,表示图像快照中存在开放眼睛的置信度和概率,基本上充当“眨眼检测器”。有关更多详细信息,请参考我们发布的同行评审论文。 |
坐标+时间[X,Y,T]数组 | 包含注视的x/y坐标及相机捕获时间戳(T)的数组,如上所述。 |
坐标+时间+置信度[X,Y,T,C]数组 | 包含注视的x/y坐标、相机捕获时间戳(T)和注视置信度(C)的数组,如上所述。 |
触发时间戳(Unix时间) | 眼动触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到眼动触发发生的经过时间(毫秒)。 |
触发(眼动追踪固定)值
当使用眼动追踪固定触发器时,可以在处理某些操作时调用以下触发特定值:
触发 (眼动追踪固定)选项 | 描述 |
---|---|
注视中心X | 注视的中心点的X值。 |
注视中心Y | 注视的中心点的Y值。 |
注视持续时间 | 检测到的注视的持续时间。 |
注视开始时间 | 检测到的注视的开始时间。 |
注视结束时间 | 检测到的注视的结束时间。 |
注视分散度 | 表示在检测到的注视中,注视值的分散程度。 |
刺激名称 | 触发事件的按钮对象名称。 |
刺激信息 | 触发事件的按钮对象的刺激信息。 |
[X,Y,Dur,Start,End,Disp] | 数组,包含以下内容:注视中心的x和y值、注视的持续时间、开始时间、结束时间和分散值。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的经过时间(毫秒)。 |
触发(头部追踪)值
当使用头部追踪触发器时,可以在处理某些操作时调用以下触发特定值:
触发 (头部 追踪)选项 | 描述 |
---|---|
相机捕获时间T | 捕获图像帧的时间,即捕获时的Unix时间戳。这是捕获图像/帧的时间,在任何处理发生之前。 |
头部转动 | 从左到右的头部转动,在文献中称为偏航(yaw)。 |
头部倾斜 | 从上到下的头部倾斜,称为俯仰(pitch)。 |
头部滚动 | 捕获从侧到侧的头部滚动运动。 |
头部位置[X,Y,T]数组 | 此数组捕获与头部位置相关的数值,包括头部中心的坐标x和y以及时间戳变量(T)。 |
鼻子位置[X,Y,T]数组 | 此数组捕获与鼻子具体位置相关的数值,包括鼻子位置的x和y坐标,以及测量发生时的时间戳变量(T)。 |
鼻子矢量[X,Y,Z,T]数组 | 此测量通过从鼻尖投影一个向量来工作,对于测试参与者是否注视屏幕(在未启用眼动追踪的研究中尤其重要)非常有用。因此,如果鼻子指向屏幕外(即参与者未关注实验),则Z值将从1减小并接近0。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式,说明头部追踪被检测时触发的时点。 |
触发时间(来自帧开始) | 触发发生的时间值,考虑到帧开始时机的时间。 |
触发(任务初始化时)值
当使用任务初始化触发时,可以在处理某些操作时调用以下触发特定值:
触发(任务初始化时)选项 | 描述 |
---|---|
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的时间(以毫秒为单位)。 |
触发(框架初始化时)值
当使用框架初始化触发时,可以在处理某些操作时调用以下触发特定值:
触发(框架初始化时)选项 | 描述 |
---|---|
试验号 | 触发框架初始化发生时的试验号。 |
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的时间(以毫秒为单位)。 |
触发(框架开始时)值
当使用框架开始触发时,可以在处理某些操作时调用以下触发特定值:
触发(框架开始时)选项 | 描述 |
---|---|
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的时间(以毫秒为单位)。 |
触发(框架结束时)值
当使用框架结束触发时,可以在处理某些操作时调用以下触发特定值:
触发(框架结束时)选项 | 描述 |
---|---|
总框架时间 | 在框架上花费的总时间(以毫秒为单位)。 |
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到触发发生的时间(以毫秒为单位)。 |
触发(变量值改变)值
当使用变量值改变触发时,可以在处理某些操作时调用以下触发特定值:
触发(变量值改变)选项 | 描述 |
---|---|
变量中的新值 | 指变量的新值。 |
触发时间戳(Unix时间) | 变量值改变触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到变量值改变发生的经过时间(毫秒)。 |
触发(媒体对象触发)值
当使用媒体对象触发时,可以在处理某些操作时调用以下触发特定值:
触发(媒体对象触发)选项 | 描述 |
---|---|
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到媒体对象触发发生的经过时间(毫秒)。 |
触发(WebSocket触发)值
当使用WebSocket触发时,可以在处理某些操作时调用以下触发特定值:
触发(WebSocket触发)选项 | 描述 |
---|---|
消息 | 一条消息,用于描述和标记,允许您(在接收端)在不同类型的数据之间进行筛选。 |
数据 | 一个可以包含不同类型数据的值,例如参与者的选择、时间戳、鼠标x/y坐标等。 |
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到WebSocket触发发生的经过时间(毫秒)。 |
触发(OpenAI触发)值
当使用OpenAI触发时,可以在处理某些操作时调用以下触发特定值:
触发(OpenAI触发)选项 | 描述 |
---|---|
Chat GPT答案 | 来自ChatGPT的答案值。 |
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到OpenAI触发发生的经过时间(毫秒)。 |
触发(全局实验事件)值
当使用暂停/恢复实验触发时,可以在处理某些操作时调用以下触发特定值:
触发(全局实验事件)选项 | 描述 |
---|---|
总框架时间 | 指触发之前分配的总框架时间。 |
全局事件原因 | 表示触发原因的字符串值,例如参与者离开研究的原因。 |
触发时间戳(Unix时间) | 触发的Unix时间戳(以毫秒为单位)。 |
触发时间(来自帧开始) | 从帧开始到全局事件触发发生的经过时间(毫秒)。 |
触发(用户离开实验)值
当使用参与者离开多用户研究触发时,可以在处理某些操作时调用以下触发特定值:
触发 (用户 离开实验)选项 | 描述 |
---|---|
剩余参与者人数 | 最近留在研究中的参与者数量。 |
触发时间戳(Unix时间) | 用户离开实验触发发生时的时间戳,以Unix时间格式(毫秒)。 |
触发时间(来自帧开始) | 从帧开始到用户离开实验触发发生的经过时间(毫秒)。 |