マルチユーザー実験デザイン
デフォルトでは、Labvancedの研究において、各参加者は独立した実験を行います。たとえ複数の参加者が同じセッションにいても、参加者の行動は他の参加者には見えません。マルチユーザーモードをオンにしても、それ自体は変わりません。これは、複数の参加者が同時に同じ実行中のセッションに参加できるようにしますが、Distribute Variableアクションを自分で構築するまでは、一人の参加者が行ったことは他の参加者に見えません。このアクションが、ひとつの参加者の孤立した実験からもう一方の実験への値を運ぶ橋です。
マルチユーザーが必要な場合
参加者がリアルタイムで相互作用しない場合、たとえば2つの被験者間条件を比較しているだけの場合、グループ割り当てのある標準の単一参加者研究で十分です。同時に同じセッションにいる必要がある2人以上の参加者がいる場合、またはそのうちの一人の行動がセッションが進行中の間に他の参加者に届く必要がある場合、特にマルチユーザーが必要です。
同期型セッションの設定
マルチ参加者ツールはデフォルトで隠されています。それらを有効にするには、設定を開き、特別機能の下でマルチユーザー研究に進み、Transformをクリックします。これにより、Number of Participants(最小2)とMaximum Parallel Sessionsが表示されます。完全な設定リストについては、マルチユーザー研究を参照してください。このクリックは元に戻すことができないため、最初に参加者数を決定し、単一参加者バージョンを保持する場合は事前に研究を複製してください。
これをオンにすることは、参加者がセッションにグループ化される方法だけを変更します。参加者同士をつなげるものではありません。特定の瞬間に2人の参加者が同調し続ける必要がある場合は、Sync Frame Start(フレーム設定)またはタスク設定の下のマッチングオプションを使用して、すべての参加者が到着するまでその時点で全員を保持します。
例: いかなる参加者も、他の参加者が応答する前に次のトライアルに移動しないようにします。そのフレームに
Sync Frame Startを設定し、両方の参加者が到着するまでそこに待機します。
ペアリングと役割
各参加者は、参加者が参加する際に1から始まる順序で割り当てられるシステム変数Role_Idによって識別されます。これを要件アクションで使用して、参加者ごとに異なるコンテンツを提供します。
例:
Role_Idが1に等しい → 対象画像を表示。Role_Idが2に等しい → 代わりに応答オプションを表示します。
デフォルトでは、参加者はロビーからランダムにマッチされます。予め決められたペアの場合は、代わりに事前定義された参加者グループを使用してください。公開と記録タブで、カスタムリンクの構築を開き、groupフィールドに値を入力します。同じgroup値でリンクを介して参加した参加者は、お互いだけでマッチされます。
例: 2人のラボ参加者が同じ時間帯にスケジュールされています。それぞれに
group=12のリンクを与えれば、2人はロビーからランダムにマッチされるのではなく、ペアリングされます。
参加者間の共有変数
これが橋そのものです。Distribute Variableアクションは、選択したトリガーに基づいて、一方の参加者から別の参加者のターゲット変数に値を送信します。イベントがこのように発生するまで、何も共有されません。
例: ボタンをクリックしたトリガーで、クリックした参加者の現在のスコアを他の参加者の画面の
PartnerScore変数に配布します。
同じターゲット変数に同時に書き込む可能性がある参加者が1人以上いる場合は、最初に到着したものが処理されるまで、他の参加者が通過できないようにアクションのブロックオプションをオンにします。
ベストプラクティス
- 公開前に、2つの別々のブラウザセッション(2番目のタブまたはシークレットウィンドウ)でテストします。役割の割り当ては参加順序に依存するため、相互作用の両面を確認するにはこれが唯一の信頼できる方法です。
- フレームの構築を始める前に
Role_Idのロジックを決定します。役割の割り当てはセッション全体に適用されるため、最初からそれに沿って設計する方が、既に存在するフレームに後から追加するよりも簡単です。 - メインパスだけでなく、同期したフレームのすべての条件分岐を監査します。ショートカットをとった参加者が他の参加者が無限に待たされる最も一般的な原因です。
- 同じターゲット変数に同時に複数の参加者が書き込む可能性があるすべての
Distribute Variableアクションに対してブロックオプションをオンにします。 - ペアリングを制御する必要がある場合(たとえば、スケジュールされたラボセッションや特定の役割の組み合わせに依存する研究など)には、ランダムなロビーのマッチングの代わりに事前定義された参加者グループを使用します。
具体的なパターン: ディレクター/マッチャー参照通信タスク
これはクラシックな参照通信タスクです: 一人の参加者がターゲットアイテムを説明し、もう一人が候補のセットからそれを特定します。これは2役のデザインであり、上記のツールに直接マッピングされます。
- 2人の参加者を持つマルチ参加者を有効にし、
Transformをクリックします。 Role_Idで要件アクションを使用して2つの役割を分けます:Role_Idが1の参加者がディレクターとなり、対象画像とテキスト入力が表示されます。Role_Idが2の参加者がマッチャーとなり、候補画像のセットが表示され、ターゲットは表示されません。(どのRole_Idがどの役割にマッピングされるかはあなたの選択です; パターンはどちらの方法でも同じように機能します。)- ディレクターが説明を送信したとき、たとえばエンターキーまたはボタントリガーを使用し、
Distribute Variableを用いてそのテキスト値をマッチャーの画面にあるDescription変数に送信します。1つの説明が飛んでいる間は他の説明が送信されないよう、ブロックを有効にします。 - 配布された
Description値をマッチャーに表示し、候補画像を選択させます。正しい/不正解の変数を生成するために、既知のターゲットに対して応答をコーディングします。 - 両方の参加者が次のトライアルに移動するフレームで
Sync Frame Startを使用して、ディレクターがマッチャーが応答する前に進まないようにします。
これは、以下にリンクされている画像説明デモの背後にある同じ構造です。一度メカニズムが整うと、ターゲット/候補の内容を交換することで、基盤となるイベントロジックを変更することなくパラダイムを変えることができます。
Labvancedにおけるマルチユーザーデザインの例
ウルティマタムゲーム
2人用の経済的意思決定タスク: 一人の参加者が共有資源の分配を提案し、もう一人がそれを受け入れるか拒否するかを決定します。
画像説明デモ
ライブチャットボックスを使ったディレクター/マッチャー参照通信タスク: 一人の参加者がターゲット画像を説明し、もう一人がそれを特定します。
ストックマーケットゲーム
リアルタイムでの2人用バージョン。1人の参加者が内部の価格情報を受け取り、その情報を正確に共有するか歪めるか、または秘匿するかを決定します。