构建多用户研究
你实际如何连接两个参与者,以便一个人的行为能够到达另一个人的屏幕?
本讲解涵盖了逐步的操作机制:启用多用户模式、分配角色、连接参与者以及保持它们的同步。有关何时使用多用户设计、最佳实践以及现有示例研究,请参阅多用户实验设计。
以下四个步骤对于每个多用户研究都是相同的,无论它实际测试的是什么。一旦您完成这些步骤,"附加示例"部分展示了相同的四个步骤在三个不同设计中的重复使用。
前提知识
建议具备基本的Labvanced知识,例如事件如何工作以及变量如何使用,以便跟上下面使用的术语。
设置框架
启用多参与者模式
Labvanced研究默认是为一个参与者构建的。在此之前, nenhum多用户工具,Role_Id,Distribute Variable,同步, 都不存在,直到研究被告知将同时运行超过一个人。
在右侧栏目中打开设置,然后在特殊功能下点击多用户研究并点击Transform。这将显示两个字段:Number of Participants(最少2个)和Maximum Parallel Sessions。有关此功能解锁的完整设置列表,请参见多用户研究。
此点击无法撤销(确认对话框本身标记为Transform Permanently)。首先决定参与者数量,如果您希望也有一个单参与者版本,请提前复制研究。

使用Role_Id分配角色
打开多参与者模式后,每个参与者仍然运行相同的、没有区别的实验副本;还没有任何东西将它们区分开来。Role_Id为每个参与者提供一个身份,您可以在其上进行操作,而不会收集任何个人信息,因此它们的实验可以开始进行不同的事情。
添加一个事件,带有一个Trial and Frame Trigger → On Frame Start,然后一个Control Actions → Requirement Actions (If... Then... Else If) 动作:
- **添加需求:**左侧 →
Variable→ 选择Role_Id;比较 →equal;右侧 →Constant Value→Number→1 - **然后:**添加适用于角色1的任何动作,例如
Set Object Property以显示目标图像 - **添加其他情况:**添加适用于所有其他角色的动作

使用Distribute Variable连接参与者
不同的Role_Id可以为每个参与者提供不同的内容,但它仍然无法在它们之间移动信息;每个参与者的实验仍在孤立运行。 Distribute Variable是唯一一个能够将一个参与者实验中的值推送到另一个实验中的动作,这使得研究感觉到共享,而不是并排进行。
在适合您设计的触发器上,例如Button Click Trigger或Enter on Input Trigger,添加一个Variable Actions → Distribute Variable Action:
- **分配值给:**所有参与者,或选择
- **选择目标变量和值:**接收参与者屏幕上的变量,以及它应该设置为什么
- **阻止:**如果多个参与者可能同时写入同一个目标变量,请开启此选项

priceArray,启用阻止,并且采用去抖动速率限制。 保持参与者同步
参与者并未以相同的速度在研究中移动。如果没有同步点,一个参与者可能在等待的值甚至尚未分配之前就到达了后一个框架,从而看到一个空白或未完成的状态,而不是另一个参与者的响应。
在参与者需要保持步调一致的框架上,例如在另一个参与者作出反应之前,任何人都不应推进,在帧设置下启用Sync Frame Start。所有人将在该框架处等到所有参与者都到达。

附加示例
上述四个步骤没有改变。改变的是分配的内容和同步点的位置。三种变体的工作,从最简单的开始:
共享计数器
框架的最简单版本:两个参与者看到相同的运行总数,任一参与者都可以对此进行添加。
- **Role_Id:**在这里不需要,因为两个参与者的行为方式相同。
- 分配:在
Button Click Trigger上,将值分配给所有参与者,目标变量SharedCount,值 =SharedCount + 1。 - **同步:**不需要同步,因为没有试验边界来限制参与者。
这确认了多参与者模式和分配变量在添加基于角色的逻辑之前已经正常工作。
导演-匹配描述任务
一种参考交流任务:一个参与者(导演)描述一个目标项目,另一个(匹配者)从一组候选项中识别它。
- Role_Id:
Role_Id1显示目标图像和文本输入。Role_Id2显示候选图像而没有目标。 - **分配:**在导演的回车键触发时,将文本值分配给匹配者屏幕上的
Description变量,>Block启用,因为一次只能有一个描述在飞行。 - **同步:**在下一试验框架上启用
Sync Frame Start,因此导演在匹配者选择候选人之前不能继续。
这与图像描述演示背后的结构相同。
回合制提议和响应
一种经济交换:一个参与者提议分割共享金额,另一个参与者接受或拒绝。
- Role_Id:
Role_Id1显示提议分割的输入。Role_Id2在提议到达之前什么也不显示。 - **分配:**在提议者提交触发时,将提议的值分配给响应者屏幕上的
Offer变量。 - **同步:**在结果框架上启用
Sync Frame Start,因此在响应者回答之前,任何一个参与者都看不到结果。
这与最后通牒游戏背后的结构相同。
此模式的实际示例,使用随机抽取的金额而不是手动输入的金额:Role_Id等于1触发一个Draw Random Number动作(在50到150之间的离散均匀抽取,保存到amountToSplit),随后立即Distribute Variable发送amountToSplit给所有参与者,启用Block。

amountToSplit,然后分配变量将其发送给所有参与者,启用阻止。