labvanced logoLabVanced
  • Research
    • Publications
    • Researcher Interviews
    • Use Cases
      • Developmental Psychology
      • Linguistics
      • Clinical & Digital Health
      • Educational Psychology
      • Cognitive & Neuro
      • Social & Personality
      • Arts Research
      • Sports & Movement
      • Marketing & Consumer Behavior
      • Economics
      • HCI / UX
      • Commercial / Industry Use
    • Labvanced Blog
  • Technology
    • Feature Overview
    • Desktop App
    • Phone App
    • Precise Timing
    • Experimental Control
    • Eye Tracking
    • Multi User Studies
    • More ...
      • Questionnaires
      • Artificial Intelligence (AI) Integration
      • Mouse Tracking
      • Data Privacy & Security
      • Text Transcription
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Cognitive Tests
    • Sample Studies
    • Public Experiment Library
  • Pricing
    • Pricing Overview
    • License Configurator
    • Single License
    • Research Group
    • Departments & Consortia
  • About
    • About Us
    • Contact
    • Downloads
    • Careers
    • Impressum
    • Disclaimer
    • Privacy & Security
    • Terms & Conditions
  • Appgo to app icon
  • Logingo to app icon
Learn
ガイド
ビデオ
ウォークスルー
FAQ
リリースノート
リリースノート
文書
教室
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
ガイド
ビデオ
ウォークスルー
FAQ
リリースノート
リリースノート
文書
教室
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
  • ガイド
    • はじめに

      • オブジェクト
      • イベント
      • 変数
      • タスクウィザード
      • トライアルシステム
      • 研究デザイン
        • タスク
        • ブロック
        • セッション
        • グループ
    • 注目のトピック

      • ランダム化とバランス
      • アイ・トラッキング
      • アンケート
      • デスクトップアプリ
      • サンプル研究
      • 参加者募集
      • APIアクセス
        • REST API
        • Webhook API
        • WebSocket API
      • その他のトピック

        • 正確な刺激のタイミング
        • マルチユーザー研究
        • Labvancedにおけるヘッドトラッキング | ガイド
    • メインアプリタブ

      • 概要: メインタブ
      • ダッシュボード
      • マイスタディ
      • 共有スタディ
      • マイファイル
      • 実験ライブラリ
      • マイアカウント
      • マイライセンス
    • スタディタブ

      • 概要: スタディ専用タブ
      • 研究デザイン
        • タスク
        • ブロック
        • セッション
        • グループ
      • タスクエディタ
        • 主な機能と設定
        • トライアルシステム
        • キャンバスとページフレーム
        • オブジェクト
        • オブジェクトプロパティテーブル
        • 変数
        • システム変数テーブル
        • イベントシステム
        • 試行のランダム化
        • テキストエディタの機能
        • タスクにおけるアイ・トラッキング
        • タスクにおける頭追跡
        • マルチユーザー研究
      • 設定
      • 変数
      • メディア
      • テキストと翻訳
      • 開始と参加
      • 被験者管理
      • データビューとエクスポート
        • Dataview と変数 & タスクの選択 (古いバージョン)
        • 録音へのアクセス (古いバージョン)
  • ビデオ
    • ビデオ概要
    • Labvancedの始め方
    • タスクを作成する
    • 要素ビデオ
    • イベントと変数
    • 高度なトピック
  • ウォークスルー
    • イントロダクション
    • ストループタスク
    • 語彙的判断タスク
    • ポズナー誘導課題
    • 変化盲点ちらつきパラダイム
    • アイ・トラッキングサンプル研究
    • 乳児アイ・トラッキング研究
    • マウストラッキングによる注意の捕捉研究
    • 迅速な視覚的提示
    • ChatGPT研究
    • アイ・トラッキングデモ: AOIとしてのSVG
    • マルチユーザーデモ: 研究内で被験者のカーソルを表示
    • ゲームパッド/ジョイスティックコントローラー - 基本セットアップ
    • EEG統合を持つデスクトップアプリ研究
    • 被験者間グループのバランスと変数の設定
  • FAQ
    • 機能
    • セキュリティとデータプライバシー
    • ライセンス
    • Labvancedの精度
    • プログラム使用とAPI
    • Labvancedをオフラインで使用する
    • トラブルシューティング
    • 研究作成に関する質問
  • リリースノート
  • ドキュメント
  • 教室

参加者のカーソルを表示: マルチユーザーデモ

概要

リアルタイムで複数の参加者が実験に参加するマルチユーザー実験では、参加者のカーソルを互いに見えるようにしたい場合があります。このデモでは、その設定方法をお見せします。

Labvancedにおけるマルチユーザーのマウストラッキング機能のプレビュー

実装に関する注意

Labvancedでは、このカーソル位置の共有を実現するためのいくつかのアプローチがあります。プラットフォームは柔軟性があるため、アプローチを決定する前に実験デザインを考慮することが重要です。

この点を明確にするために、これを達成するための2つのアプローチを紹介します:

  • アプローチ 1: カーソル位置を配布するための配列を利用するデモ
  • アプローチ 2: さらに下のセクションで、 x座標とy座標の単一値を使用するデモについても説明します。

アプローチ 1: マウストラッキングと配列を使用したカーソル表示

このデモには、2つのオブジェクト(各ユーザーに1つのマウス)が含まれており、オブジェクトパネルのサイドパネルにリストされています。このアプローチは、2人以上の参加者がいるマルチユーザー研究に使用できます。

オブジェクト

以下は、すべての視覚スタイリングを管理できるオブジェクトプロパティパネルです。現在、両方のカーソルのVisibilityは1(これは不透明度=100%を意味します)となっています。

Labvancedエディタに追加されているカーソルオブジェクト、マルチユーザー研究の設定のために

このデモでは、Visibilityを0に変更します。後で、実験が始まったときには、1つのカーソルを表示します。つまり、参加者1の場合、参加者2のカーソルオブジェクトがここに表示され、逆も同様です。これは下にあるイベント:Initセクションで説明されています。

Labvancedでカーソルを非表示にして、マルチ参加型研究の実験が始まると1つのカーソルの可視性が表示される

カーソル用に2つのオブジェクトを持たない場合は、このセクションを参照して、単一のカーソルオブジェクトだけの代替方法を見ることができます。

カスタム変数

ここでは、このデモの目的のために作成されたすべてのカスタム変数をリストしています。これらは、事前に作成するか、実験を構築しながらエディタ内で作成できます。

カーソル共有のためにマルチユーザー研究で作成された変数

イベント概要

イベントを追加するには、[+] フレームイベント(このフレームのみ)をクリックします。

このデモには、以下のイベントがあります:

  1. イベント:Init: 他の参加者のマウスを表示
  2. イベント:sendMove: マウス座標を送信
  3. イベント:receiveMove: マウス座標を受信

以下に、各イベントの構造を説明します。

イベント: init

このイベントは、フレームが開始したときに何が起こるかを指定します。この場合、私たちの目標は参加者1が参加者2のマウスを見て、逆もまた同様です。

トリガー

イベントのトリガーはOn Frame Initです。フレームが初期化されるとすぐにカーソルオブジェクトの可視性を設定したいためです。

LabvancedのOn Frame Init

アクション

これを指定し、「次へ」ボタンをクリックした後、フレーム初期化時に発生するアクションを選択できます。

以下に、私たちが使用するアクションは制御アクション→「If... Then」です。したがって:

  • Role_Idが1に等しい場合(注: Role_Idは、マルチユーザー研究に特有の変数で、参加者にIDを割り当てます)。
  • その場合、mouse_user_2オブジェクトのVisibilityを1に設定します。
  • 注: これら2つのアクションの組み合わせは、基本的に「あなたが参加者1(Role_Id==1)であれば、mouse_user_2オブジェクトを見ることができる」ということを意味します。
  • 注: Role_Id == 1はエディタでどのように指定されますか? 手順の詳細セクションを参照してください。

最初の参加者のRole_idが1の場合にマウストラッキングデータを記録することを指定

Else Ifセクションでは、参加者2(Role_Id==2)について同じことを行います。ターゲットオブジェクトはmouse_user_1で、Visibilityの値は1である必要があります。

第二参加者のRole_idが2の場合にマウストラッキングデータを記録することを指定

イベント: sendMove

次に、マウスを動かすときに2人の参加者の間に「ブリッジ」を確立する必要があります。つまり、マウスを動かすと、その値がトラッキングされ、他の参加者に送られます。

トリガー

したがって、マウストリガーがこのイベントに使用され、マウスの動きがイベントをトリガーします。

イベントトリガーがマウストリガーであることを示す

アクション

また、制御アクション → If…Thenコマンドが必要です:

役割idが1と等しいことを示す

マウストラッキング配列を記録し、他の参加者に共有する

もしあなたのRole_Id==1なら、以下の変数アクションが発生します:

  • 変数を設定/記録: 変数moveMouse1を定義し、トリガー特有の値であるMouse [X,Y] Arrayに等しく設定します。
  • 変数を配布:この変数を参加者2に共有します。

もしあなたのRole_Id==2なら…

役割idが2と等しいことを指定

その場合:

  • moveMouse2はマウス[X,Y]配列を記録します(前の例と同様ですが)が、参加者2のマウストラッキング値を保存し、彼らのマウス[X,Y]配列に等しく設定します。
  • その後、この変数を参加者1に配布します。

マウストラッキングを設定して配列と座標値を測定

要約-ここまでで、私たちは:

  • 各参加者のマウストラッキング[X,Y]配列を保存するための変数を作成しました(参加者1のカーソルはmoveMouse1、参加者2のカーソルはmoveMouse2)
  • そして、Distribute Variableアクションを使用して、マウストラッキング値が他の参加者に送信されるブリッジを確立しました。

イベント: receiveMove

次に、これらのマウストラッキング値で何が起こるかを指定する必要があります。この場合、配列形式でマウスの動きを受信する際に、マウスカーソルオブジェクトをその動きに反映させたいのです!言い換えれば、[X,Y]配列を使用して、それらの値をマウスカーソルに結びつけ、それが本質的に動くようにし、他の参加者の動きを画面上に表示するのです!したがって、これを実現するために、以下のトリガーとアクションが使用されます。

トリガー

マウストラッキング値は変数に保存されているため、これらの変数が変更されるたびにマウスが動いているということになります。したがって、変数値変更トリガーを使用して、以下のようにマウスの動きを画面上で更新します。

マウストラッキング値が変更された場合のトリガー設定

アクション

次に、配列から選択(読み取り)アクションを使用して、カーソルの変数配列からxおよびy座標の値を取得します。これらの値を使用してオブジェクトの座標を設定する予定です。

したがって、私たちは参加者1の[X,Y]の配列があるmoveMouse1変数を選択し、最初の値をFixed Indexの1で呼び出し、その値を数値変数x_mouse1に格納します。x値は配列の最初にリストされています。

マウストラッキング配列を設定し、個別の値を保存し、xおよびy値として変数に格納する

次に、別の配列から選択(読み取り)アクションを追加し、Fixed Indexに2と記入して、2番目の配列値であるy座標を呼び出し、それをy_mouse1変数に格納します。

カーソル画像を動かすためには、マウスのトラッキング(私たちが取得して変数に保存したx_mouse1とy_mouse1の値)に対応するx値とy値をリアルタイムで取得して、オブジェクトの画像座標を更新する必要があります。

これを実現するために、オブジェクトプロパティを設定アクションを選択し、mouse_user_1のターゲット(以下の画像では、短縮されたタイトルのため「mouse」と書かれています)と、そのプロパティXがx_mouse1+5の値(算術演算)を持つように設定します。この手順の詳細な説明を参照してください。

参加者1のマウスの位置をマウストラッキング値に設定するオブジェクトプロパティを設定

ここで、なぜ+5が入力フィールドに表示されるのか疑問に思われるかもしれません…これは、このオブジェクトが実際にはテキストオブジェクトであり、埋め込まれた画像を含んでいるため、オフセットを作成する必要があるからです(このウォークスルーの冒頭で説明されています)。したがって、研究を構築し、ユーザーがここで示すように自身のカスタマイズされたカーソルを確認しつつ、研究内の他のオブジェクトをクリックする必要がある場合、オフセットを作成しなければなりません(カーソルの画像を省略し、テキストラベルのみを維持することを選択しない限り)。

次に、+プロパティを追加を選択し、同じ画像オブジェクトを指定し、Yプロパティにy_mouse1変数を等しく設定します。

同様のプロセスを繰り返しますが、参加者2のために用意した他の変数を選択します:

参加者2のマウストラッキング配列を選択して、各変数のxおよびy値を保存する

ここでは、オブジェクトmouse_user_2を指定し、それぞれの変数を割り当てます:

マウストラッキングのxおよびy値を使用して、マルチ参加型研究におけるカーソル位置を共有するためにマウスカーソルオブジェクトを更新する

これらすべてのアクションにより、参加者の両方のカーソルオブジェクトが、配列変数から値を読み取り、これらの数値を使用してオブジェクトのxおよびy値を設定することにより、動くようになります。

イベント: end

次に、データ記録プロセスを正式に終了し、データを保存するためのイベントを作成します。endボタンを挿入すると、クリックされたときにセッションを終了するトリガーになります。

ボタンをトリガーとして示す

アクション

そのアクションは、Accept/End Sessionです。

セッションを終了する

もう一度注意してください。このデモは学習目的のものであり、マルチユーザー研究設定におけるマウスとカーソルの位置を共有するための多くの方法のうちの1つです。この効果を達成するための別の例が、次のセクションで説明されます。

アプローチ 2: マルチユーザー研究におけるカーソル共有のための単一変数アプローチ

この別のデモでは、配列ではなく、単一値(つまり、x座標およびy座標を直接呼び出す)を使用するオプションを示します。

カーソルの位置が共有されているマルチユーザー研究のプレビュー

このデモの完全なプレビュー、データ記録のプレビューも含まれています:

カーソル用の単一オブジェクト

このデモは、2つのカーソルオブジェクトの代わりに1つのオブジェクトを持つという点でも前のものと異なります。このアプローチは、「対戦相手」または「チームメイト」のカーソルの位置を示したいマルチユーザー研究に最適です。

マルチ参加型研究のためにマウスカーソルオブジェクトをLabvancedエディタに追加

カスタム変数

この別のデモには、以下のカスタム変数とその仕様が含まれています。このデモは変数が少ないですが、配列のある前の例に比べて、より多くのイベント/アクションが必要です。

マルチ参加型のために作成されたカスタム変数

イベント: sendMove

トリガーはマウスの動きです:

選択されているマウストリガー

そのアクションは、マウスのx座標とy座標のトリガー特有の値を2つの別々の変数に記録することです、それらは参加者1を示すために名前が付けられています。

参加者1のマウストラッキングに基づいてxおよびy値を別々の値として記録

次のアクションは、if/then条件の下で、これら2つの値を参加者2に配布します。

マルチユーザー研究における参加者2へのマウストラッキング変数の配布

次に、Else If条件を追加して、マウスのx座標とy座標のトリガー特有の値を参加者2を示すために名前が付けられた2つの別々の変数に記録します。

参加者2のマウストラッキングに基づいてxおよびy値を別々の値として記録

次のアクションは、これら2つの値を参加者1に配布します。

マルチユーザー研究における参加者1へのマウストラッキング変数の配布

イベント: receiveMove1

次に、マウス座標を送信するイベントが必要です。つまり、参加者1に関連する特定の変数値が変更されると、それがトリガーとして使用されます:

マウストラッキング変数が変更されたときのトリガーを設定

次に、これらの値を使用して、カーソル位置のオブジェクトプロパティを更新するアクションを使用します。本質的に、あなたが参加者2であれば、Opponentオブジェクトは参加者1の変数の座標を取得します:

カーソルプロパティをマウストラッキング値に等しく設定する

イベント: receiveMove2

ここでも同じことを行います。あなたが参加者1であれば、Opponentオブジェクトは参加者2の変数の座標を取得します:

マウストラッキングの変数値の変更をイベントトリガーとして使用する

マルチユーザー研究における参加者2の値に等しいマウスカーソル値を設定

結論

このデモは、マウス座標をオブジェクトプロパティに更新してマルチユーザー研究設定でカーソル位置を伝達するために使用できる多くの方法のうちの2つを示しています。配列を利用することができます。

デモの詳細: 値の入力手順

Labvancedの使い方に慣れていない場合や、追加の明確さが必要な場合は、以下のセクションで特定のコマンドを実装する方法と、それらを実装するために行う必要のある手順をステップバイステップで示します:

  • 要件アクションでのRole_ID==1の指定
  • マウスの[X,Y]配列を記録するための変数の選択
  • オブジェクトプロパティを設定するための算術演算の使用

要件アクションでのRole_ID==1の指定

上記のデモでは、この行が頻繁に表示されますが、どのようにして見つけることができますか?

Role idが1であることを指定

まず、+アクションを追加を選択し、制御アクション→要件アクション(If…Then)を選択します。これは、このデモで頻繁に表示される文脈です。

制御アクションを選択し、If...Thenアクションを指定する

次に、+要件を選択して、If条件をより詳細に指定します。

最初の鉛筆アイコン(正式には値選択メニューと呼ばれます)で、変数→変数を選択を選択して、Role_Id変数を指します。

変数を選択する

これにより、すべてのローカル/グローバル変数が保存されている変数メニューが開きます。上部パネルにあるグローバル変数の下に、Role_Id変数が見つかります。それを選択します。

Role IDを選択する

次に、他のペンアイコンで参加者の役割IDの値を指定する必要があります。したがって、定数値→数値に移動します。

定数値を選択する

そして、単に数字の1を入力します。タダ!

Role IDが1に設定される

オブジェクトプロパティを設定するための算術演算の使用

カーソル位置を設定するには、オブジェクトプロパティを設定アクションを使用して、ターゲットオブジェクトとそのプロパティを指定し、次にオブジェクトプロパティの新しい値として使用する変数値を指定します。

オブジェクトプロパティを使用してマウスカーソルの値を呼び出す

オブジェクトアクションを選択します:

オブジェクトプロパティを設定し、アクションを選択

ターゲットの最初のnoneをクリックし、リストから最初のカーソルオブジェクトmouse_user_1を選択します。次に、オブジェクトプロパティの2番目のリストからXオプションを選択します:

マウスユーザーオブジェクトの選択

次に、ペンアイコンをクリックします。メニューから演算子を選択し、算術オプションを選択します:

算術演算の選択

最初のペンアイコンをクリックし、変数→変数を選択を選択します。変数のダイアログボックスが表示され、x_mouse1変数を選択できます。

変数選択アクション

次に、2番目のペンアイコンをクリックし、定数値→数値を選択し、表示されるフィールドに数字の5を入力します。

定数値オプションの選択

これは、オブジェクトが画像とテキストの組み合わせに関連するデモであるため、対象の下にあるオブジェクトがクリック可能になるように、5ポイントオフセットを作成する必要があります。

設定されたオブジェクトプロパティにマウストラッキング値を等しくする

下にある+プロパティを追加をクリックし、y_mouse1変数がmouse_user_1オブジェクトのYオブジェクトプロパティに割り当てられることを示します。

マウストラッキング値を使用したマルチユーザー研究におけるオブジェクトプロパティを設定

Prev
アイ・トラッキングデモ: AOIとしてのSVG
Next
ゲームパッド/ジョイスティックコントローラー - 基本セットアップ