Zeige die Cursor der Probanden: Multi-User-Demo
Überblick
In einem Multi-User-Experiment, an dem mehrere Teilnehmer in Echtzeit teilnehmen, möchten Sie möglicherweise ihre Cursor einander sichtbar machen. In dieser Demo zeigen wir Ihnen, wie Sie das einrichten können.
Hinweis zur Implementierung
Bitte beachten Sie, dass es mehrere Ansätze gibt, die Sie zur gemeinsamen Nutzung der Cursorpositionen mehrerer Probanden in Labvanced implementieren können, da die Plattform flexibel ist. Daher ist es wichtig, Ihr Versuchsdesign zu berücksichtigen, bevor Sie sich für einen Ansatz entscheiden.
Um diesen Punkt zu verdeutlichen, werden wir zwei Ansätze für die Umsetzung vorstellen:
- Ansatz 1: eine Demo, die Arrays verwendet zur Verteilung der Cursorposition
- Ansatz 2: in einem weiter unten, werden wir eine Demo besprechen, in der einzelne Werte für x- und y-Koordinaten verwendet werden können.
Ansatz 1: Cursoranzeige mit Mausverfolgung und Arrays
Diese Demo umfasst zwei Objekte (eine Maus pro Benutzer) und werden im Seitenbereich des Objektpanels aufgelistet. Dieser Ansatz kann für Multi-User-Studien verwendet werden, in denen 2+ Teilnehmer teilnehmen.
Objekte
Darunter befindet sich das Objekteigenschaften
Panel, wo alle visuellen Stile verwaltet werden können. Derzeit haben beide Cursor eine Sichtbarkeit
von 1 (dies bedeutet Opazität = 100%) wie unten gezeigt:
Für diese Demo werden wir die Sichtbarkeit
auf 0 ändern, wie unten gezeigt. Später, wenn das Experiment beginnt, werden wir einen der Cursor sichtbar machen. d.h. wenn Sie Teilnehmer 1 sind, werden Sie das Cursorobjekt von Teilnehmer 2 hier sehen und umgekehrt. Dies wird im Abschnitt Ereignis:Init unten beschrieben.
Wenn Sie keine zwei Objekte für die Cursor haben möchten, verweisen Sie auf diesen Abschnitt, um eine alternative Methode mit nur einem einzigen Cursorobjekt zu sehen.
Benutzerdefinierte Variablen
Hier listen wir alle benutzerdefinierten Variablen auf, die für die Zwecke dieser Demo erstellt wurden. Sie können diese im Voraus oder innerhalb des Editors beim Erstellen Ihres Experiments erstellen.
Ereignisübersicht
Um ein Ereignis hinzuzufügen, klicken Sie auf das [+] Frame-Ereignis (nur in diesem Frame)
.
Wir haben die folgenden Ereignisse in dieser Demo:
- Ereignis:Init: Sichtbar machen der Maus des anderen Teilnehmers
- Ereignis: sendMove: Senden der Mauskoordinaten
- Ereignis: receiveMove: Empfangen der Mauskoordinaten
Im Folgenden wird die Struktur für jedes der Ereignisse beschrieben.
EREIGNIS: init
Dieses Ereignis legt fest, was passiert, wenn der Frame initialisiert wird. In diesem Fall ist unser Ziel, dass Teilnehmer 1 die Maus von Teilnehmer 2 sieht und umgekehrt.
Auslöser
Der Auslöser für das Ereignis ist Bei Frame-Init
, weil wir die Sichtbarkeit des Cursorobjekts so schnell wie möglich festlegen möchten, sobald der Frame initialisiert wird.
Aktion
Nachdem Sie dies festgelegt haben und die Schaltfläche „Weiter“ geklickt haben, können Sie die Aktionen auswählen, die bei der Initialisierung des Frames stattfinden.
Unten zeigen wir, dass die Aktion, die wir verwenden, eine Steueraktions → „Wenn… Dann“, ist:
- Wenn
Role_Id
gleich 1 ist (Hinweis: Role_Id ist eine Variable, die einzigartig für Multi-User-Studien ist und dem Teilnehmer seine ID zuweist). - Dann
Setze Objekteigenschaft
dermouse_user_2
ObjektSichtbarkeit
auf 1. - Hinweis: Die Kombination dieser beiden Aktionen bedeutet im Wesentlichen: „Wenn Sie Teilnehmer 1 (Role_Id==1) sind, dann sehen Sie das Objekt
mouse_user_2
.“ - Hinweis: Wie wird der
Role_Id == 1
im Editor festgelegt? Verweisen Sie auf den Schritt-für-Schritt-Abschnitt unten, wo dies im Detail erklärt wird.
Im Abschnitt Sonst Wenn
machen wir dasselbe, aber für Teilnehmer 2 (Role_Id==2). Das Zielobjekt ist mouse_user_1
, das den Wert 1 für die Sichtbarkeit
haben sollte.
EREIGNIS: sendMove
Als Nächstes müssen wir eine „Brücke“ zwischen den beiden Teilnehmern herstellen, bei der, wenn Sie Ihre Maus bewegen, diese Werte verfolgt/gespeichert und an den anderen Teilnehmer gesendet werden.
Auslöser
Daher wird für dieses Ereignis der Mausauslöser
verwendet, wobei jede 'Bewegung', die gemacht wird, das Ereignis auslöst.
Aktionen
Wiederum wird ein Steueraktion
→ Wenn… Dann
Befehl benötigt:
Wenn Ihr Role_Id==1
ist, dann folgen die Variablenaktionen
:
Setze / Zeichne eine Variable
: Definieren Sie die VariablemoveMouse1
und setzen Sie sie gleich dem trigger-spezifischen Wert desMouse [X,Y] Array
.Variablen verteilen:
Teilt diese Variable mit Teilnehmer 2.
Sonst, wenn Ihr Role_Id==2
…
Dann:
- Die
moveMouse2
wird das Maus [X,Y] Array aufzeichnen (genau wie im vorherigen Beispiel oben), aber wir werden es verwenden, um die Mausverfolgungswerte von Teilnehmer 2 aufzuzeichnen und zu setzen gleich ihrem Maus [X,Y] Array. - Dann verteilen Sie diese Variable an Teilnehmer 1.
Zusammenfassung- Bis zu diesem Punkt haben wir:
- Variablen erstellt, um das Mausverfolgungs-[X,Y] Array jedes Teilnehmers zu speichern (moveMouse1 für den Cursor von Teilnehmer 1 und moveMouse2 für den Cursor von Teilnehmer 2)
- Und eine Brücke eingerichtet, bei der der Wert der Mausverfolgung an den anderen Teilnehmer gesendet wird, indem die Variable verteilt wird.
EREIGNIS: receiveMove
Als Nächstes müssen wir festlegen, was mit diesen Mausverfolgungswerten geschieht. In diesem Fall, nachdem die Mausbewegungen in einem Arrayformat empfangen werden, möchten wir das Mauszeigerobjekt ändern, um die Bewegungen widerzuspiegeln! Mit anderen Worten, wir werden die [X,Y] Array verwenden, um diese Werte an den Mauszeiger zu binden, sodass er sich im Wesentlichen bewegt und zeigt, was der andere Teilnehmer auf dem Bildschirm tut! Daher werden die Auslöser und Aktionen beschrieben, die im Folgenden verwendet werden.
Auslöser
Da die Mausverfolgungswerte in Variablen gespeichert werden, bedeutet jede Änderung dieser Variablen, dass sich die Maus bewegt. Daher können wir den Variablenwert geändert
-Auslöser verwenden, um die Cursorposition auf dem Bildschirm zu aktualisieren, indem wir die beiden spezifischen Variablen auswählen, die die Mausverfolgungswerte enthalten, wie unten gezeigt:
Aktion
Als nächstes möchten wir die Wählen aus Array (lesen)
-Aktion verwenden, um die x- und y-Koordinatenwerte aus den Variablenarrays des Cursors abzurufen, da wir sie verwenden möchten, um die Koordinaten des Objekts festzulegen.
Daher wählen wir die moveMouse1
-Variable, die das Array der [X,Y] von Teilnehmer 1 hat und rufen den ersten Wert ab, der einen Festgelegten Index
von 1 hatte, und speichern diesen Wert in einer numerischen Variable namens x_mouse1
, da die x-Werte im Array zuerst aufgelistet sind.
Wir fügen eine weitere Wählen aus Array (lesen)
-Aktion hinzu und schreiben für den Festgelegten Index
2, da wir den zweiten Arraywert, der die y-Koordinaten sind, abrufen und in der Variablen y_mouse1
speichern möchten.
Um das Cursorbild zu bewegen, müssen wir seine Bildkoordinaten in Echtzeit aktualisieren, indem wir ihm die x- und y-Werte zuweisen, die den x- und y-Koordinaten aus der Mausverfolgung entsprechen (die wir abgerufen und in den obigen Aktionen in den Variablen x_mouse1
und y_mouse1
gespeichert haben).
Um dies zu erreichen, müssen wir die Aktion Setze Objekteigenschaft
wählen, sodass das Ziel
von mouse_user_1
(im Bild unten wird es einfach als „Maus“ bezeichnet, da das Dialogfeld den Titel kürzt) und seine Eigenschaft X
hat einen Wert (=) von x_mouse1
+5, was eine arithmetische Operation. ist. Verweisen Sie auf diese Schritt-für-Schritt-Erklärung, wie dies eingerichtet wird.
Zu diesem Zeitpunkt fragen Sie sich vielleicht, warum die +5 im Eingabefeld erscheint… Das liegt daran, dass wir einen Offset erstellen müssen, da dieses Objekt eigentlich ein Textobjekt ist, das ein eingebettetes Bild enthält (wie zu Beginn dieses Walkthroughs beschrieben). Wenn Sie also Ihre Studie erstellen und die Benutzer ihre eigenen benutzerdefinierten Cursors sehen lassen möchten, während Sie dies hier tun, aber auch auf andere Objekte in der Studie klicken möchten, dann wird das nicht möglich sein, es sei denn, Sie erstellen diesen Offset (es sei denn, Sie wählen, das Bild des Cursors wegzulassen und nur das Textlabel zu behalten).
Weiter geht's, wir wählen +Eigenschaft hinzufügen
und zeigen auf dasselbe Bildobjekt, wählen die Y
-Eigenschaft und setzen es gleich der Variablen y_mouse1
.
Wir wiederholen den gleichen Prozess, wählen aber einfach die anderen Variablen aus, die wir für Teilnehmer 2 festgelegt haben:
Hier zeigen wir auf das Objekt mouse_user_2
und weisen die entsprechenden Variablen zu:
Gemeinsam sorgen all diese Aktionen dafür, dass sich beide Cursorobjekte für beide Teilnehmer bewegen, indem sie Werte aus der Array-Variable lesen und diese numerischen Werte verwenden, um die x- und y-Werte des Objekts festzulegen.
EREIGNIS: end
Als Nächstes erstellen wir ein Ereignis, um den Datenaufnahmeprozess offiziell zu beenden und die Daten zu speichern, indem wir eine „Ende“-Schaltfläche einfügen, die, wenn sie als Auslöser verwendet wird, zu einer Steueraktion führt, bei der die Aktion Akzeptieren/Session beenden
stattfindet.
Auslöser
Um die Sitzung zu beenden, wird der Schaltflächenauslöser verwendet, bei dem das Klicken auf den End-Button
die Sitzung beendet.
Aktion
Die Aktion ist die Akzeptieren/Session beenden.
Bitte beachten Sie, dass diese Demo zu Lernzwecken dient und nur eine Methode von vielen zur gemeinsamen Nutzung des Maus- und Cursorstandorts in einem Multi-User-Studie-Setting ist. Ein weiteres Beispiel, wie dieser Effekt erzielt werden kann, wird in den kommenden Abschnitten beschrieben.
Ansatz 2: Einzelvariablenansatz zur gemeinsamen Nutzung von Cursorn in Multi-User-Studien
In dieser anderen Demo, zeigen wir, wie Sie anstelle von Arrays die Möglichkeit haben, einzelne Werte (d.h. direkt auf X- und Y-Koordinaten zuzugreifen) zu verwenden.
Hier ist eine vollständige Vorschau dieser Demo, einschließlich einer Vorschau der am Ende aufgezeichneten Daten:
Ein einzelnes Objekt für den Cursor
Diese Demo unterscheidet sich auch von der vorherigen, da es anstelle von zwei Objekten für den Cursor nur eines gibt. Dieser Ansatz ist großartig für Multi-User-Studien, die nur zeigen möchten, wo sich der Cursor des „Gegners“ oder „Teamkollegen“ befindet.
Benutzerdefinierte Variablen
Diese andere Demo umfasst die folgenden benutzerdefinierten Variablen und deren Spezifikationen. Während diese Demo weniger Variablen hat, erfordert sie mehr Ereignisse/Aktionen im Vergleich zum vorherigen Beispiel mit Arrays.
EREIGNIS: sendMove
Der Auslöser ist die Mausbewegung:
Die Aktion besteht darin, die trigger-spezifischen Werte der X-Koordinate und Y-Koordinate der Maus in zwei separaten Variablen aufzuzeichnen, die speziell benannt sind, um Teilnehmer 1 anzuzeigen.
Die nächsten Aktionen unter dieser Wenn/Dann-Bedingung dienen dazu, diese beiden Werte an Teilnehmer 2 zu verteilen.
Dann fügen wir eine „Sonst Wenn“-Bedingung hinzu, um die trigger-spezifischen Werte der X-Koordinate und Y-Koordinate der Maus in zwei separaten Variablen zu erfassen, die speziell benannt sind, um Teilnehmer 2 anzuzeigen.
Die nächsten Aktionen werden verwendet, um diese beiden Werte an Teilnehmer 1 zu verteilen.
EREIGNIS: receiveMove1
Jetzt benötigen wir ein Ereignis, um die Mauskoordinaten zu übertragen. Wenn also diese spezifischen Variablenwerte, die mit Teilnehmer 1 verbunden sind, sich ändern, werden sie als Auslöser verwendet:
Dann aktualisieren wir die Eigenschaft des Cursorstandortsobjekts, um diese Werte mithilfe einer Aktion zu übernehmen. Wenn Sie also Teilnehmer 2 sind, übernimmt das Gegnerobjekt die Koordinaten der Variablen von Teilnehmer 1:
EREIGNIS: receiveMove2
Hier machen wir dasselbe. Wenn Sie Teilnehmer 1 sind, dann übernimmt das Gegnerobjekt die Koordinaten der Variablen von Teilnehmer 2:
Fazit
Diese Demo zeigt zwei von vielen Möglichkeiten, wie Mauskoordinaten verwendet werden können, um Objekteigenschaften zu aktualisieren und die Cursorposition in einem Multi-User-Studien-Setup zu übertragen. Sie können Arrays verwenden
Demo-Details: Schritt-für-Schritt Eingabewerte
Wenn Sie sich immer noch in Labvanced zurechtfinden oder einfach zusätzliche Klarstellungen benötigen, zeigen die folgenden Abschnitte Ihnen Schritt für Schritt, wie Sie bestimmte Befehle implementieren und die Schritte, die Sie mithilfe der Menüs unternehmen müssen, um sie umzusetzen:
- Festlegen von
Role_ID==1
in einer Anforderungsaktion - Auswahl des Maus [X,Y] Array, das in einer Variablen für die Mausverfolgung aufgezeichnet werden soll
- Verwendung von arithmetischen Operationen, um eine Objekteigenschaft festzulegen
Festlegen von Role_ID==1
in einer Anforderungsaktion
In der obigen Demo erscheint diese Zeile häufig. Wie können Sie es so formulieren?
Zuerst +Aktion hinzufügen
und Steueraktionen → Anforderungsaktionen (Wenn…Dann) auswählen, weil dies der Kontext ist, in dem es häufig in dieser Demo erscheint.
Als Nächstes +Anforderung
, damit Sie die Wenn-Bedingung detaillierter festlegen können.
Für das erste Bleistikonsymbol (formell als Das Wertauswahlmenü) wählen Sie Variable
→ Wählen Sie Variable
, um auf die Rolle_Id-Variable zu zeigen.
Dies öffnet das Variablenmenü, in dem alle lokalen/globalen Variablen gespeichert sind. Oben im Paneel finden Sie unter Globale Variablen
die Variable Role_Id
. Wählen Sie diese aus.
Als nächstes müssen Sie beim anderen Bleistiftsymbol den Wert der Rollennummer des Teilnehmers festlegen. Gehen Sie zu Konstantenwert → Numerisch.
Und geben Sie einfach die Zahl 1 ein. Voila!
Verwendung von arithmetischen Operationen zur Festlegung einer Objekteigenschaft
Die Cursorposition wird durch die Verwendung der Aktion „Objekteigenschaft festlegen“ festgelegt, wobei das Zielobjekt, seine Eigenschaft und dann der Wert der Variablen spécifiées wird, der als neuer Wert für die Objekteigenschaft verwendet werden soll.
Wählen Sie die Objektaktion:
Für das Ziel
klicken Sie auf das erste keine
und wählen Sie das erste Cursorobjekt mouse_user_1
aus der Liste aus. Für die zweite Liste der Objekteigenschaften wählen Sie die X
-Option:
Klicken Sie dann auf das Bleistift-Symbol. Wählen Sie Operationen
im Menü und wählen Sie die Arithmetisch
-Option aus:
Klicken Sie auf das erste Bleistiftsymbol und wählen Sie Variable
→ Wählen Sie Variable
und ein Dialogfeld der Variablen erscheint, aus dem Sie die x_mouse1
-Variable auswählen können:
Klicken Sie dann auf das zweite Bleistiftsymbol und wählen Sie Konstantenwert
→ Numerisch
und geben Sie die Zahl 5 in das angezeigte Feld ein.
Da dies sich auf die Demo bezieht, in der das Objekt eine Kombination aus Bild und Text ist, müssen wir den Wert um 5 Punkte offsetieren, damit das darunterliegende Objekt anklickbar ist:
Klicken Sie auf +Eigenschaft hinzufügen
, und weisen Sie an, dass die Variable y_mouse1
der Y
-Objekteigenschaft des Objekts mouse_user_1
zugewiesen wird.