事件系统
描述
事件系统对于任何研究都是必不可少的。它是你设置待记录值、使实验进展和创建任务的方式。用户可以创建事件系统以执行任务中的所有功能、逻辑和交互。事件通常充当对象和变量之间的中介。
事件系统由触发器和动作组成。在这里,你设置规则,比如“当发生这种情况”(触发器)然后“执行此操作”(动作)。例如:如果参与者点击特定图像(触发器),则显示不同的随机图像(动作)。
创建事件 - 概述
事件在任务编辑器中的右上角的“事件”选项卡下进行管理。可以通过点击 + 帧事件
为发生在该帧上的事件创建新事件,或者通过点击 + 实验事件
将该事件应用于所有帧。所有现有事件在右侧面板的列表视图中显示。事件是在帧级别上定义的,可以每帧单独/特定,或在实验中重复/相同。
无论哪种方式,事件始终为指定帧内的实验组中的所有实验定义。然而,用户可以通过自定义逻辑仅在某些实验、条件或其他情况下执行事件。
以下视频概述了Labvanced中可用的触发器和动作:
事件的执行顺序可以进行调整。默认情况下,同一触发器的事件在列表中靠前,将首先被执行。事件也可以被复制和删除。当选择现有事件时,具体信息会显示在右下角(事件属性)面板中。为了更好地概述,现有事件也可以重新打开(名称字段旁边的图标)。
触发器
触发器定义了事件何时会被执行。这可以是对特定对象的鼠标点击、某个键盘输入、变量的改变、视频文件的开始,或许多其他事情。所有触发器及其设置/参数在以下列表中进行了解释:
触发器类别 | 触发器选项 | 描述 |
---|---|---|
用户输入触发器 | 用户输入触发器是指用户/参与者可以通过移动鼠标、点击键盘元素、滚动等手动激活的任何触发器。 | |
生理信号触发器 | 当有特定的生理输入,比如注视特定元素或头部运动变化时,生理信号触发器会被触发。 | |
实验与帧触发器 | 这些触发器与实验的实验和帧相关,例如帧何时开始或结束。 | |
变量值改变触发器 | 变量(值变化) | 当某个特定变量的值发生变化时,会触发事件。 |
媒体对象触发器 | 媒体对象触发器 | 该触发器与媒体对象相关,例如视频/音频文件暂停、录制完成等。 |
API触发器 | 这些是当接收到来自API的数据时发生的触发器。 | |
全局触发器 | 全局触发器指任何对实验的重大变化,例如实验暂停或多用户研究中参与者的离开。 |
用户输入触发器
用户输入触发器指任何可以由用户/参与者手动激活的触发器。
下表提供了Labvanced中所有用户输入触发器的介绍性概述。每个触发器将在接下来的部分中详细描述。
用户输入触发器选项 | 概述 |
---|---|
鼠标触发器 | 任意鼠标移动可以作为触发器用于启动事件,例如:滚动、点击、悬停等。你还可以将特定元素或目标与触发器相关联。例如,鼠标点击仅在点击特定图像时作为触发器使用。 |
键盘触发器 | 任何键盘按键都可以作为触发器用于启动事件。你可以指定特定的键盘字母或数字作为触发器。 |
按钮点击 | 在Labvanced中创建的按钮对象可以作为触发器用于启动事件。 |
输入时按回车 | 当参与者在实验中按下‘Enter’键时,此触发器通常被用作提交其书面响应或在文本框中的输入。 |
滚动触发器 | 当参与者滚动时,此触发器会被激活。你可以指定x轴或y轴滚动方向,以及在何种元素上发生滚动作为事件触发器。 |
游戏手柄/操纵杆触发器 | 此触发器允许你在实验设计中使用游戏手柄和操纵杆作为记录数据的输入设备。 |
鼠标触发器
‘鼠标触发器’选项是非常流行的事件触发器,因为它基于任何鼠标交互发起事件,例如:向上/下移动鼠标、点击、悬停在特定对象上、离开特定对象或任何移动!
下面的示例展示了一个‘鼠标触发器’,当对名为‘Image_1’的目标对象执行‘左键点击’时将会触发:
以下是使用鼠标触发器时的完整选项概述:
菜单项 | 菜单区域 | 鼠标触发器选项和规格 |
---|---|---|
动作 下拉列表: | 以下鼠标触发器选项可从下拉列表中获得:
| |
按钮 下拉列表: |
| |
目标 选项: | 在上面的示例中,‘Image_1’是将触发事件的按钮点击的目标。 可以通过点击底部的 ‘+添加目标’ 选项添加多个目标。 | 在指定目标时,以下选项可用:
|
键盘触发器
‘键盘触发器’选项是另一种流行的事件触发方式。基本上,来自键盘的任何输入都可以用作触发器。这包括:按下、按住或释放一个键。
在下面的示例中,触发器设置为在指定的目标数值(0、2或6)被按下时触发:
以下是使用键盘触发器时的完整键位和选项概述:
菜单项 | 菜单区域 | 键盘触发器选项 |
---|---|---|
动作 下拉列表: | 这些是可用的键盘动作选项:
| |
键位 触发事件的哪个键 | 选择哪个键作为触发器,您可以通过点击 +添加: 选项指定:
+添加: 按钮添加多个键盘触发器。 | |
附加选项 | 启用小键盘按钮 选项允许在实验中将小键盘键作为触发器使用。 对于 允许事件传播 选项,如果多个事件具有相同的键盘触发器,则在没有此选项的情况下所有事件都将被触发。只有第一个事件将被触发,事件执行将在第一个事件完成后停止。 |
按钮点击触发器
如果您在编辑器中放置了按钮或导航对象,您可以将它们用作事件的一部分,其中单击按钮作为动作的触发器。
单击此触发器将显示以下菜单,您可以在其中指定哪个特定按钮将作为触发器:
以下是对所显示项目的更近一步分析:
菜单项 | 菜单区域 | 按钮点击触发器选项 |
---|---|---|
目标: +设置目标 | 选择一个按钮元素作为目标 | |
按钮: 选项 | 指定帧上的哪个特定按钮 |
- 注意: 选择按钮点击触发器后,您可以利用并引用特定触发器的按钮点击值在各种动作中使用值选择菜单。
输入时按回车触发器
触发条件:当在特定元素激活时按下Enter/Return键。
参数:
添加目标:将输入元素添加到事件中。
注意: 选择输入时按回车触发器后,您可以利用并引用特定触发器的输入时按回车值在各种动作中使用值选择菜单。
滚动触发器
触发条件:在特定元素上使用滚动条、触控板或鼠标的滚轮。
参数:
- 选择滚动是在Y轴还是X轴(垂直滚动或水平滚动)。
目标:设置将应用滚动触发器的目标元素。
注意:对于长文本,在‘对象属性’(/content/learn/zh/guide/task-editor/objects.html#object-properties)面板的‘样式’部分,Overflow-X
和/或Overflow-Y
选项必须选择scroll
作为选项。
游戏手柄/操纵杆触发器
游戏手柄/操纵杆触发器
允许您在实验设计中使用游戏手柄和操纵杆控制器作为记录数据的输入设备。注意: 请记得在实验特性选项卡的研究设置下启用此选项。
选择此触发器后,将出现以下对话框。
连接手柄后,您可以指定哪些特定按键应作为触发器。按下特定按键时,系统将显示其ID。
在下面的示例中,2
表示◎键,而3
表示▵键。注意: 不同的手柄在按键ID分配方面可能存在一些差异。
由于按下某个键,实时数据也会出现在该触发器对话框的后半部分,您可以实时查看根据您按下或释放的按键如何变化:
请查看此演练以获取更多细节和使用此触发器的示例。
下表详细解释了这些选项。
菜单项 | 菜单区域 | 游戏手柄/操纵杆触发器选项 |
---|---|---|
监听按钮 | I.) 指定触发器与按钮相关,并指定是按下键、按下或释放键,还是释放键。 II.) 指定触发器是针对任何按钮还是特定按钮。如果选择了特定选项,系统将提示您按下游戏手柄上的按钮。 | |
监听轴 | 如果需要轴运动,则可以指定当阈值变化达到特定值时触发器将被激活。默认值为0.01。 | |
连接状态 | 指示设备是否已连接。 | |
实时数据流 | 连接设备后,按下按键或移动轴时,实时数据将在此处显示您对设备的任何输入。这在设置研究时测试时非常有用,并确定您想要使用的哪些键或轴。 |
注意: 选择游戏手柄/操纵杆触发器后,您可以在各种动作中利用并引用其特定触发器值,通过值选择菜单。
生理信号触发器
这些触发器仅在任务启用眼动追踪和/或头部追踪时适用。
眼动注视触发器
触发条件:
- 总体来说,当启用眼动追踪时,此触发器生效。
- 仅在查看特定元素时触发
参数:
眼动定点触发器
该触发器仍处于测试阶段。
头部追踪触发器
触发条件:
头部朝向或头部运动的变化。
注意: 选择头部追踪触发器后,您可以在各种动作中利用并引用特定触发器的头部追踪值并使用值选择菜单。
实验与帧触发器
任务初始化触发器
触发条件:
- 任务的第一个实验第一帧。每个任务仅执行一次,尽管在所有该帧的实例中都显示在事件选项卡中。
此触发器与洗牌和从动作中读取相结合效果很好。通过这些组合,您可以在任务开始时洗牌数组条目或数据帧,并将主题分配给刺激集,而不必创建多个事件以读取刺激或数据。
参数:无
- 注意: 选择任务初始化触发器后,您可以在各种动作中利用并引用特定触发器的任务初始化值并使用值选择菜单。
帧初始化触发器
触发条件:
- 帧的初始化,出现之前,参与者看不到。
此触发器与洗牌、从读取和绘制随机数动作配合良好。这些组合可以在帧出现之前完成这些动作,为其他动作开始提供清晰路径。
注意: 请勿将帧初始化触发器与记录变量的事件或涉及诸如实验编号或条件编号等系统变量的事件一起使用。这是因为帧初始化触发器在实验之间发生,因此不能准确计算即将显示的实验或条件的完整数量。
参数:无
- 注意: 选择帧初始化触发器后,您可以在各种动作中利用并引用特定触发器的帧初始化值并使用值选择菜单。
关于任务和帧初始化触发器的注意事项: 由于任务和帧初始化触发器在任务或帧开始之前发生,因此在此期间创建的变量将在任务/帧实际开始时重置。使用此事件时会出现警告:
如果您不想让变量值重置,请记得在变量属性窗口中取消选中“在实验开始时重置”框。
帧开始触发器
触发条件:
- 帧开始
参数:无
- 注意: 选择帧开始触发器后,您可以在各种动作中利用并引用特定触发器的帧开始值并使用值选择菜单。
帧结束触发器
触发条件:
- 帧结束(帧不再可见后)
参数:无
- 注意: 选择帧结束触发器后,您可以在各种动作中利用并引用特定触发器的帧结束值并使用值选择菜单。
变量值改变触发器
变量值改变
触发条件:
- 变量值从起始值改变
参数:
变量:选择一个或多个需要“监听”的变量。这些变量的任何值变化将立即触发相应的动作。
注意: 选择变量值改变触发器后,您可以在各种动作中利用并引用特定触发器的变量值改变值并使用值选择菜单。
媒体对象触发器
媒体对象触发器
以前称为单独的“控制音频/视频触发器”和“控制对象”触发器。
触发条件:
- 视频或音频文件的开始、暂停或停止
- 录制对象的文件上传完成,文件选定,录制完成
- 相机快照对象的快照完成或上传完成
参数:
目标:选择帧上存在的对象元素
执行类型:选择触发器的子类型
- 音频或视频对象选项:
- 播放开始:当元素开始播放时触发
- 播放停止:当元素暂停时触发
- 播放结束:当元素停止播放时触发
- 视频、音频或屏幕录制对象选项:
- 录制完成:当音频录制停止时触发
- 上传完成:当文件上传完成时触发
- 文件上传对象选项:
- 文件选定:当选择文件时触发
- 上传完成:当文件上传完成时触发
- 相机快照对象选项:
- 快照完成:当相机成功拍摄快照时触发
- 上传完成:当快照完成上传时触发
- 音频或视频对象选项:
注意: 选择媒体对象触发器后,您可以在各种动作中利用并引用特定触发器的媒体对象值并使用值选择菜单。
API触发器
如果您需要将数据从外部服务器发送或通信到Labvanced,则可以使用“API触发器”和“API动作”。以下可以用作触发器:
- Websocket触发器
- OpenAI触发器
Websocket触发器
Websocket触发器用于接收来自websocket/API的消息,作为动作的触发器。
点击此选项后,将出现以下项目。
- 接受/接收自: 自动检测本地主机的IP地址。可以在‘研究设置’选项卡下的‘实验特性’中手动更改此设置。
- 触发/消息: 输入将作为触发器的消息。输入“任何”以接受多条消息作为触发器。
有关如何使用API触发器/动作的示例,请查看此演示https://www.labvanced.com/page/library/51053,点击对话框中的“检查”选项。
- 注意: 选择WebSocket触发器后,您可以在各种动作中利用并引用特定触发器的WebSocket值并使用值选择菜单。
OpenAI触发器
‘OpenAI触发器’可以被用来根据来自OpenAI的信息发起动作。
选择此选项将导致以下参数显示:
注意: 另外,请参考此演练,我们在其中逐步构建一项研究,在研究中整合ChatGPT并利用此触发器。
在下面的示例中,分配的数据框被称为‘df’,‘OpenAI触发器’的结果将附加到该数据框。此数据框需要有两列。第一列将表示“角色”,第二列为“聊天消息”。动作中产生的值将自动附加到此处链接的数据框。
如果您还在使用‘发送到OpenAI’动作,那么您需要在这里使用与您之前指定的相同数据框。
- 注意: 选择OpenAI触发器后,您可以在各种动作中利用并引用特定触发器的OpenAI值并使用值选择菜单。
全局触发器
全局触发器在实验内发生重大变化时触发,比如暂停实验或参与者离开多用户研究!以下选项被列为全局触发器:
- 暂停/恢复实验
- 参与者离开多用户研究
暂停/恢复实验
‘暂停/恢复实验’触发器是一种允许您根据实验暂停或恢复的方式执行事件的选项。
选择此触发器后,将出现以下视图,您可以进一步指定触发器的性质,它应该在实验暂停或继续/恢复时执行:
实验暂停: 参与者暂停(退出全屏)研究。
实验继续: 参与者恢复研究。此触发器适用于眼动追踪研究。如果参与者离开虚拟下巴托架,可以将他们送回之前的实验或帧。
参与者离开多用户研究
如果参与者离开多用户研究,这也可以用作事件的触发器。如果参与者离开多用户研究,这在全球层面会影响实验,因为它会阻止其他参与者继续研究。
通过选择此触发器,您可以指定如果参与者离开多用户研究将发生什么类型的动作。
动作
动作定义了当事件被执行时应该发生的事情。它们可以用来更改变量和对象属性、记录数据、从/向数组读取和写入数据,或跳转到下一个实验或任务。通常每个事件有多个动作。使用“控制动作”,可以使用逻辑操作(如果-那么语句)、循环、回调函数以及在彼此之间嵌套动作(例如在if语句内的while循环)。因此,事件系统可以被视为图形编程环境。在这种视图中,触发器充当函数调用,而动作描述功能逻辑。这种方法确保几乎任何实验逻辑都可以实现,而无需使用某些编程/语法结构。
下表提供了Labvanced中可用动作的介绍性概述:
动作类别 | 动作选项 | 描述 |
---|---|---|
对象动作 | 对象动作指在任务中发生的任何操作。 | |
变量动作 | 任何读取或记录变量值的动作。 | |
数组动作 | 数组操作包括选择、添加、删除、改变和洗牌数组及其条目。 | |
数据框操作 | 如果您在实验中使用.csv文件(数据框),这些动作是相关的。 | |
跳转动作 | 允许您通过跳转到特定部分导航实验,以及接受和拒绝参与者部分。 | |
控制动作 | 控制动作用于执行特定的事件序列,例如如果/那么逻辑、循环(例如播放重复的声音或闪烁图像),以及设置动作发生的延迟。 | |
API动作 | 指用于将数据发送到API的特定API动作。 | |
代码动作 | 代码动作允许您使用JavaScript或CSS。 | |
粘贴动作 | 粘贴动作 | 允许您粘贴先前复制的动作。 |
对象操作是指在任务中对存在的对象进行的任何处理。以下是几种对象操作选项: |
- 设置对象属性
- 控制媒体对象
- 复制对象
- 对每个对象执行操作
设置对象属性操作
使用“设置对象属性”操作,您可以通过指定对象、要更改的属性和新值来以任何您想要的方式更改对象的外观。
在下面的示例中,此操作将通过将“可见性”设置为“1”和将“高度”设置为“400”来更改目标图像的两个属性,同时通过将此变化发生时的时间记录到名为“Object_Prop_Change_Time”的数值变量中。
以下是您在使用“设置对象属性”操作时遇到的字段的完整概述:
菜单项 | 菜单区域 | 设置对象属性触发选项 |
---|---|---|
目标 对象选择下拉列表: | 第一个下拉列表将显示您在该帧中的对象供您选择。这表示将在哪个特定对象上执行该操作。 | |
目标 属性选择下拉列表: | 第二个下拉菜单指示要更改的对象属性。有关可用选项及其参数的完整说明,请参见对象属性表。 | |
值选择菜单 | 定义新值,即操作之后新对象属性的值,使用**值选择菜单 **。 | |
‘+ 添加属性’ | 可以通过单击此图标添加和更改多个属性。 | |
复选框 - 记录此更改在屏幕上反映的时间(以帧开始的毫秒为单位)。 | 当属性发生更改时,可能需要短时间(大约~10毫秒)才能使更改可见。通过此选项,您可以更精确地记录在下一个显示刷新上更改的属性实际可见的时间。 注意: 选择此选项后,将出现一个对话框提示您指示(或创建一个新变量)保存捕获值的位置。变量应为数值类型。 |
控制媒体对象操作
以前的“控制音频/视频”和“控制对象”操作。
效果:更改视频/音频元素的播放或更改上传/录制元素的状态。
参数:
- 目标:选择一个媒体对象
- 效果:选择一个子操作
- 音频或视频对象选项:
- 开始播放:开始播放视频/audio文件
- 停止播放:停止视频/audio文件
- 暂停播放:暂停视频/audio文件
- 跳转到时间:允许您指定在音频/视频文件中跳转到的毫秒时间
- 静音:关闭对象的声音
- 取消静音:恢复对象的声音
- 音频、视频或屏幕录制对象选项:
- 开始录制:开始新的(音频)录制
- 停止录制:停止(音频)录制
- 开始上传:开始上传文件
- 清除录制:删除(音频)录制数据
- 开始播放:开始播放录制文件
- 停止播放:停止播放录制文件
- 暂停录制:暂停对象的录制
- 恢复录制:恢复对象的录制
- 文件上传对象选项:
- 开始上传:开始选中文件的上传过程
- 清除文件:删除所选文件
- 选择文件:允许参与者选择所需的文件
- 相机快照对象选项:
- 开始相机:打开参与者的相机
- 停止相机:关闭参与者的相机
- 开始上传:开始将快照上传到实验
- 拍摄快照:使用参与者的相机拍照
- 音频或视频对象选项:
复制对象操作
效果:复制一个对象,替代多个单独对象和重复事件的需要。
参数:
- 源:选择要复制的帧上的对象。
- 复制数量:输入要制作的源对象的复制数量。
- 设置新元素名称:从几个参数中选择以确定复制的名称。
- 使用递增后缀分配名称:在新元素名称的末尾添加数字标签以区分复制品。
- 动作序列:允许您选择(从常规动作列表中)将发生在复制品上的动作。选择“当前对象”作为目标,以将动作应用于所有复制品。
对每个对象操作
效果:将操作应用于几个相同类型的对象。
参数:
- 过滤器:选择要针对的元素类型。
- 允许附加名称过滤器:输入要针对的对象名称。对于在同一帧内名称相同的多个对象,这种方法效果很好。
- 动作序列:允许您选择(从常规动作列表中)将对选定元素执行的动作。选择“当前对象”作为目标,将动作应用于所有符合上述指定标准的元素。
变量操作
变量操作用于设置或创建变量值,记录和定义值,包括会话之间的值。
下表提供了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://才能使此操作生效。
控制操作
需求操作(如果...则...否则)操作
效果:评估一个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声明被积极评估(返回真),则“然后”块中的操作将被执行,其余的需求操作将被跳过。
- 添加其他案例(真/假):如果启用,默认/备用选项将添加到需求操作。如果没有执行任何If/Else-If声明(返回为真),则将执行else案例中定义的操作。
重复操作(while循环)操作
效果:重复执行一系列操作,立即或在定义的间隔内。可以指定停止条件,以便停止循环的执行。
参数:
- 执行类型:选择立即执行或定时执行
- 执行完整循环:此操作将持续执行该循环,直到停止条件得到满足。
- 每隔...毫秒执行一次:该循环将在定义的间隔执行(例如,每50毫秒执行一次)。
- 定义循环次数:选择“每隔...毫秒执行一次”时,用户可以为应执行的循环次数分配一个数字整数值。这就替代了定义停止条件的需要。
- 执行间隔:确定执行间隔。
- 立即开始(真/假):如果启用,循环将立即执行。如果禁用,循环将在下一个执行间隔开始。
- 允许多重启动(真/假):如果启用,可以同时启动多个循环实例。如果禁用,则只能一次执行一个循环实例。
- 启用停止条件(真/假):如果启用,可以指定循环的停止条件。
- 停止条件:停止条件用于指定循环执行停止的逻辑表达式。与If/Else-If语句类似,可以组合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”操作选项 |
---|---|---|
模型类型 | 指定将要使用的AI模型。 注意: 要指定ChatGPT版本,请查看“研究设置”中的“实验功能”列 | |
聊天记录数据框 | 链接到包含两列的数据框变量。第一列将表示“角色”,第二列表示“聊天消息”。此操作的值将自动追加到在此链接的数据框中。 数据框也可以通过数据框操作进行操作。有关进一步参考,请查看OpenAI的文档 | |
插入消息‘+’ | 点击此按钮,变量对话框将出现。您需要指示正在发送到OpenAI的“变量”值以及相关消息的“角色”:
|
由于OpenAI在不断发展,请查看OpenAI文档以获取进一步说明。
代码操作
在某些情况下,您的实验可能需要使用自定义代码。通过这些操作,您可以做到这一点!在“代码操作”菜单下提供了以下选项:
- 运行JavaScript
- 设置全局CSS
运行JavaScript操作
“运行JavaScript”操作允许您为研究中的特定事件编写程序,并通过输入自定义JavaScript代码在触发时执行该操作。
当选择上述“运行JavaScript”操作时,您将看到一个区域(代码编辑器),在此区域中应编写JavaScript代码,并提供使用说明:
设置全局CSS操作
通过“设置全局CSS”操作,您可以使用自定义CSS代码在触发时改变研究的某个方面。
点击此操作后,会打开以下字段:
使用“设置全局CSS”操作的一个示例是,当参与者从多项选择问题中选择特定颜色时,改变研究的背景颜色。
粘贴操作
此选项允许您粘贴之前创建并复制的操作。这使您在设计实验时能够更快地工作,从而不必不断选择相同的项目。例如,如果您有一个与现有事件相似的事件,可以直接复制、粘贴并修改,而不是从头开始构建。
值选择菜单
在处理某些事件时,您会注意到会出现一个铅笔图标。这被称为值选择菜单,因为它允许您选择和指示应记录或跟踪何种值。这是一个非常强大和重要的选项,您必将用于实验设计和设置。
此铅笔图标/值选择菜单出现在事件系统中某些操作的各个位置,例如设置/记录变量操作、设置对象属性操作和要求(如果...那么)操作,如下所示。
点击铅笔图标会出现一个下拉菜单,您可以在其中指定要读取或写入的值。下拉菜单将始终首先列出触发器特定的值选项,然后继续显示其他5类(当前时间、常量值、变量、框架/任务/选项和操作),所有这些都有各自的选项。 这些将在下面详细描述。
上图显示了在使用鼠标触发时值选择菜单的样子。如您所见,左侧的第一个菜单项以触发器特定类别开头,然后移动到其他5个类别(当前时间等)。
菜单选项
下表进一步解释了类别和选项:
类别 | 选项 | 描述 |
---|---|---|
触发器特定 | 根据您之前为事件选择的触发器类型。 | 根据您为事件选择的触发器,将在值选择菜单的顶部显示特定的选项列表供您选择。请参阅关于触发器特定值的部分以查看完整的选项和描述。 |
当前时间 | 测量和调用时间值。 | |
常量值 |
| 根据您需要的变量类型分配常量值,如字符串或数值。这些有时与其他选项(如[算术 ](#arithmetic)联合使用以创建计数器。) |
变量 |
| 指定或引用一个变量或从数组或数据框中选择一个值。 |
框架/任务/对象 |
| 允许您获取与对象属性、框架、眼动跟踪(如果启用)和设备(屏幕刷新率)相关的值。 |
操作 |
| 使用操作对您的变量执行指定的更改,如组合变量值、将字符串转换为小写或运行数学操作。 |
当前时间值
使用“当前时间”选项,您可以记录或引用与时间相关的值。
提供了以下选项:
当前时间:UNIX时间戳
此值以毫秒格式捕获UNIX格式的时间戳。
当前时间:从帧开始的时间
此值捕获从帧开始经过的时间。通常,这相当于反应时间。
常量值
根据您需要的变量类型分配常量值,如字符串或数值。这些有时与其他选项(如[算术
](#arithmetic)联合使用以创建计数器。
提供了以下选项:
常量:字符串
分配字符串/文本值。
常量:数值
分配数值/数字值。
常量:布尔值
分配真或假的值。
常量:分类
分配一个水平值(主要用于因子)。
常量:日期
分配日期值。
常量:时间
分配时间值。
常量:颜色
分配颜色(十六进制字符串)值。
变量值
指定或引用一个变量或从数组或数据框中选择一个值。提供了以下选项:
选择变量
允许您选择并指向一个变量。
从数组选择值
允许您从数组中选择一个值。
从数据框选择值
允许您从您创建的数据框中选择值。
框架/任务/对象值
允许您获取与对象属性、框架、眼动跟踪(如果启用)和设备(屏幕刷新率)相关的值。
对象属性
读取对象属性。
框架
框架值选项 | 描述 |
---|---|
最后缓存的鼠标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) |
数学操作
对标量值执行数学操作。
数学操作选项 | 描述 |
---|---|
abs | 返回值的绝对数。 |
sqrt | 返回值的平方根。 |
round | 返回四舍五入的值,保留0到3位小数。 |
floor | 返回取整的值。 |
ceil | 返回向上取整的值。 |
cos | 返回余弦值。 |
sin | 返回正弦值。 |
tan | 返回切线值。 |
触发器特定值
触发器特定值是指与特定事件中定义的触发器相关联的值。例如,如果您的事件使用鼠标触发器,那么在某些指定操作的区域(例如在使用设置/记录变量
操作或设置对象属性
操作时),您可以在值选择菜单中引用鼠标触发器特定的值。
在下面的示例中,使用鼠标触发的触发器特定值来记录x值和y值,以及使用设置/记录变量
操作的[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时间) | 以毫秒为单位的媒体对象触发时间戳。 |
触发时间(从帧开始) | 从帧开始到媒体对象触发发生的经过时间,以毫秒计。 |
触发器(Websocket触发)值
当使用Websocket触发时,可以在某些操作中调用以下触发器特定值:
触发器(Websocket触发)选项 | 描述 |
---|---|
消息 | 可以用来描述和标记的消息,使您(接收方)能够在不同数据类型之间进行过滤。 |
数据 | 可以保存不同类型数据的值,例如参与者的选择、时间戳、鼠标x/y坐标等。 |
触发时间戳(Unix时间) | 触发发生时的时间戳,以Unix时间格式表示,精确到毫秒。 |
触发时间(从帧开始) | 从帧开始到Websocket触发发生的经过时间,以毫秒计。 |
触发器(OpenAI触发)值
当使用OpenAI触发时,可以在某些操作中调用以下触发器特定值:
触发器(OpenAI触发)选项 | 描述 |
---|---|
Chat GPT答案 | 来自ChatGPT的回答的值。 |
触发时间戳(Unix时间) | 当OpenAI触发发生时的时间戳,以Unix时间格式表示,精确到毫秒。 |
触发时间(从帧开始) | 从帧开始到OpenAI触发发生的经过时间,以毫秒计。 |
触发器(全局实验事件)值
当使用暂停/恢复实验触发时,可以在某些操作中调用以下触发器特定值:
触发器(全局实验事件)选项 | 描述 |
---|---|
总帧时间 | 指的是触发之前分配的总帧时间。 |
全局事件原因 | 指出触发原因的字符串值,例如参与者离开研究。 |
触发时间戳(Unix时间) | 以毫秒为单位的全局事件触发时间戳。 |
触发时间(从帧开始) | 从帧开始到全局事件触发发生的经过时间,以毫秒计。 |
触发器(用户离开实验)值
当使用参与者离开多用户研究触发时,可以在某些操作中调用以下触发器特定值:
触发器 (用户 离开实验) 选项 | 描述 |
---|---|
剩余参与者数量 | 研究中剩余的参与者数量。 |
触发时间戳(Unix时间) | 以毫秒为单位的用户离开实验触发时间戳。 |
触发时间(从帧开始) | 从帧开始到用户离开实验触发发生的经过时间,以毫秒计。 |