事件系统

描述
事件系统对于任何研究都是至关重要的。它是您设置要记录的值、使实验进展和创建任务的方式。用户可以创建一个事件系统来执行任务中的所有功能、逻辑和交互。事件通常充当对象和变量之间的中介。
事件系统由触发器和动作组成。在这里您设置规则,比如“当发生这个”(触发器)时,“做这个”(动作)。例如:如果参与者点击一个特定的图像(触发器),则显示一个不同的随机图像(动作)。

有关事件如何在Labvanced中工作的介绍,请参考这个快速视频:
创建事件 - 概述
事件在任务编辑器的右上角“事件”选项卡中管理。可以通过点击 + 帧事件
来创建新事件,该事件应在该帧上发生,或者通过点击 + 试验事件
将事件应用于所有帧。所有现有事件在右侧面板中以列表视图显示。事件在帧级别上定义,可以为每帧单独/特定或在试验中的每帧上重复/相同。
无论哪种方式,事件总是为指定的帧定义处理试验组中的所有试验。然而,自定义逻辑允许用户仅在特定试验、条件或其他情况下执行事件。
下面的视频概述了Labvanced中可用的触发器和动作:
事件的执行顺序可以调整。默认情况下,具有相同触发器的事件在列表中靠上并将首先执行。事件也可以被复制和删除。当选择一个现有事件时,详细信息会显示在右下角(事件属性)面板中。为了更好地概述,现有事件也可以重新打开(名称字段旁边的图标)。
触发器
触发器定义何时执行事件。这可以是对特定对象的鼠标点击、某个键盘输入、变量的变化、视频文件的开始,或其他许多事情。以下列表解释了所有触发器及其设置/参数:
触发器类别 | 触发器选项 | 描述 |
---|---|---|
用户输入触发器 | 用户输入触发器指的是任何可以通过用户/参与者手动激活的触发器,例如移动鼠标、点击键盘元素、滚动等。 | |
生理信号触发器 | 生理信号触发器在指定的生理输入发生时出现,例如注视特定元素或头部运动的变化。 | |
试验和帧触发器 | 这些触发器与实验试验和帧相关,例如帧何时开始或结束。 | |
变量值变化触发器 | 变量(值变化) | 当特定变量值发生变化时触发事件的一个触发器。 |
媒体对象触发器 | 媒体对象触发器 | 此触发器与媒体对象有关,例如视频/音频文件中的暂停、录制完成等。 |
API触发器 | 这些是发生在API接收数据时触发的触发器。 | |
全局触发器 | 全局触发器指实验中的任何重大变化,例如实验暂停或多用户研究中参与者离开。 |
用户输入触发器
用户输入触发器指的是任何可以被用户/参与者手动激活的触发器。
下表提供了Labvanced中所有用户输入触发器的简介。每个触发器将在接下来的部分中更详细地描述。
用户输入触发器选项 | 概述 |
---|---|
鼠标触发器 | 任何鼠标移动都可以作为触发器来启动事件,例如:滚动、点击、悬停等。您还可以将特定元素或目标与触发器关联。例如,鼠标点击只有在点击特定图像时才会作为触发器。 |
键盘触发器 | 任何键盘按键都可以作为触发器来启动事件。您可以将特定的字母或数字指定为触发器。 |
按钮点击 | 在Labvanced中创建的按钮对象可以用作触发器来启动事件。 |
输入时按回车 | 当参与者在实验中按下“Enter"时,常用于提交他们写入的响应或文本字段的输入。 |
滚动触发器 | 当参与者滚动时触发。您可以指定x或y滚动方向,以及对哪个元素进行滚动以作为事件触发器。 |
游戏手柄/摇杆触发器 | 此触发器允许您在实验设计中使用游戏手柄和摇杆控制器作为记录数据的输入设备。 |
鼠标触发器
“鼠标触发器”选项是一种非常流行的事件触发器,因为它根据任何鼠标交互来启动事件,例如:向上/向下移动鼠标、点击、悬停在特定对象上、离开特定对象或任何移动!
下面的示例显示了一个“鼠标触发器”,当“目标”对象“图像_1”被“左”鼠标点击时将发生:
以下是工作与鼠标触发器时可用选项的完整概述:
菜单项 | 菜单区域 | 鼠标触发器选项和规格 |
---|---|---|
动作 下拉列表: | ![]() | 以下鼠标触发器选项可从下拉列表中选择:
|
按钮 下拉列表: | ![]() |
|
目标 选项: | ![]() 在上面的示例中,“图像_1”是会触发事件的按钮点击目标。 可以通过点击底部的 ‘+添加目标’ 选项来添加多个目标。 |
|
键盘触发器
“键盘触发器”选项是另一种常用的事件触发器。基本上,任何来自键盘的输入都可以用作触发器。这包括:按下、保持或释放一个键。
在下面的示例中,触发器设置为指定目标数值(0、2或6)被按下时的键盘按下:
以下是工作与键盘触发器时的键和选项的完整概述:
菜单项 | 菜单区域 | 键盘触发器选项 |
---|---|---|
动作 下拉列表: | ![]() |
|
键 哪个键触发事件 | ![]() | 用作触发器的键通过单击 +添加: 选项来指定:
+添加: 按钮来添加多个键盘触发器。 |
其他选项 | ![]() | 启用小键盘按钮 选项允许小键盘键在实验中用作触发器。 对于 允许事件传播 选项,如果多个事件具有相同的键盘触发器,那么所有的事件都会触发。但只有第一个会触发,事件的执行将在第一个事件完成后停止。 |
按钮点击触发器
如果您在编辑器中放置了按钮或导航对象,您可以将其用作事件的一部分,其中点击按钮作为动作的触发器。
点击这个触发器会显示以下菜单,您可以在这里指定哪个具体按钮将作为触发器:
这里是所列项目的更详细介绍:
菜单项 | 菜单区域 | 按钮点击触发器选项 |
---|---|---|
目标: +设置目标 | ![]() | |
按钮: 选项 | ![]() | 指定帧上哪个具体按钮 |
- 注意: 在事件系统中选择按钮点击触发器后,您可以选择并参考特定触发器按钮点击值用于各种操作的值选择菜单。
输入时按回车触发器
触发条件:在特定元素处按下Enter/Return键。
参数:
添加目标:向事件添加输入元素。
注意: 在事件系统中选择输入时按回车触发器后,您可以选择并参考特定触发器输入时按回车值用于各种操作的值选择菜单。
滚动触发器
触发条件:在特定元素上使用滚动条、触控板滚动或鼠标滚轮。
参数:
- 选择滚动是在Y轴上还是X轴上(垂直滚动或水平滚动)。
目标:设置滚动触发器将应用于的目标元素。
注意:对于长文本,在‘对象属性’面板的‘样式’部分,Overflow-X
和/或Overflow-Y
选项需要选择scroll
选项。
游戏手柄/摇杆触发器
游戏手柄/摇杆触发器
允许您在实验设计中使用游戏手柄和摇杆控制器作为记录数据的输入设备。注意: 请记得在‘实验功能’栏目中的研究设置选项卡下启用此选项。

选择此触发器后,将出现以下对话框。

连接游戏手柄后,您可以指定哪些特定键应作为触发器。当按下特定键时,系统将显示其ID。
在下面的示例中,2
指的是 ◎ 键,3
指的是 ▵ 键。 注意: 不同的游戏手柄在按键ID分配上存在一些差异。

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