ルーム

oTreeでは "ルーム" を設定することができます。次の機能を提供します:

  • 参加者や実験室のコンピューターに割り当てることができるリンク (セッションを跨いで同じリンクを使用できます)
  • セッション開始を待っている参加者を確認できる "待機部屋"
  • 参加者が簡単に入力できる短いリンク (短時間のライブデモに適しています)

以下がスクリーンショットです:

_images/room-combined.png

ルームの作成

複数の部屋を作成することができます。例えば、教えるクラスごとや管理する実験室ごとに部屋を作成することができます。

oTree Studio を使用している場合

サイドバーの "Settings" にアクセスし、一番下にある部屋を追加します。

PyCharm を使用している場合

settings.pyROOMS を設定してください。

例:

ROOMS = [
    dict(
        name='econ101',
        display_name='Econ 101 class',
        participant_label_file='_rooms/econ101.txt',
        use_secure_urls=True
    ),
    dict(
        name='econ_lab',
        display_name='Experimental Economics Lab'
    ),
]

参加者ラベル (下記参照) を使用している場合は、参加者ラベルのテキストファイルへの相対パス (もしくは絶対パス) を participant_label_file に設定する必要があります。

部屋の設定

参加者ラベル

参加者ラベルはルームの "ゲストリスト" です。1行に1つの参加者ラベルが含まれています。例えば、以下のようになります:

LAB1
LAB2
LAB3
LAB4
LAB5
LAB6
LAB7
LAB8
LAB9
LAB10

参加者ラベルを指定していない場合は、ルーム URL を知っていれば誰でも参加できます。詳しくは participant_label_file がない場合 を参照してください。

use_secure_urls (オプション)

この設定は participant_label_file に追加のセキュリティを提供します。例えば、セキュア URL を使用しない場合、開始 URL は以下のようになります:

http://localhost:8000/room/econ101/?participant_label=Student1
http://localhost:8000/room/econ101/?participant_label=Student2

もし Student1 に悪意があるなら、自分の URL の participant_label を "Student1" から "Student2" に変更して、Student2 になりすますかもしれません。しかし、 use_secure_urls を使用すると、各URL には以下のようなユニークなコードが付与されます:

http://localhost:8000/room/econ101/?participant_label=Student1&hash=29cd655f
http://localhost:8000/room/econ101/?participant_label=Student2&hash=46d9f31d

このとき、Student1 はユニークコードを知らなければ Student2 になりすますことができません。

ルームの使用

管理画面のヘッダーバーにある "Rooms" をクリックして、作成したルームをクリックします。参加者の URL が記載されているセクションまでスクロールダウンします。

participant_label_file がある場合

ルームの管理画面で、どの参加者が参加しているかをモニターし、準備ができたら希望の人数分のセッションを作成します。

参加者専用 URL を使うか、ルーム URL のどちらかを使うことができます。

参加者専用の URL には、すでに参加者ラベルが含まれています。例えば、以下のようになります:

http://localhost:8000/room/econ101/?participant_label=Student2

ルーム URL には参加者ラベルは含まれていません:

http://localhost:8000/room/econ101/

そのため、ルーム URL を使用する場合、参加者は参加者ラベルを入力する必要があります:

_images/room-combined.png

participant_label_file がない場合

各参加者にルームの URL を開いてもらいます。その後、ルームの管理ページで、何人の参加者がいるかを確認し、希望の人数分のセッションを作成してください。

このオプションは簡単ですが、参加者ラベルを使用するよりも信頼性が低くなります。理由は、誰かが 2 つの異なるブラウザで URL を開くことで 2 回プレイできるからです。

複数セッションへの再利用

ルームのURLは、セッション間で再利用できるように設計されています。実験室では、ブラウザのホームページとして設定することができます (ルーム URL または 参加者専用 URL を使用できます)。

教室での実験では、各生徒に固有の URL を与えて、それを学期を通して使用することができます。

参加者全員が来ない場合

実験室での実験で、参加者の数が予測できない場合は、ルーム URL を使用し、参加者に参加者ラベルを手動で入力してもらうことを検討しましょう。参加者は、参加者ラベルを入力して初めて出席者としてカウントされます。

あるいは、ブラウザで参加者専用 URL を開きますが、セッションを作成する前に、無人のコンピュータのブラウザを閉じておくこともできます。

参加者は、セッションが作成された後でも、参加枠が残っていれば参加することができます。

参加者ラベルへの事前割り当て

oTree では、到着時間に基づいて参加者を割り当てています。しかし、状況によっては、これが望ましくない場合があります。例えば、次のような場合です:

  • 参加者ラベルを oTree の ID と同じ順序で並べたい場合。例えば、LAB29 が常に参加者 29 になるようにしたい場合。
  • Alice/Bob/Charlie が常に参加者 1/2/3 になるようにグループ化して一緒にプレイさせたい場合

参加者ラベルを creating_session に割り当ててください:

def creating_session(subsession):
    labels = ['alice', 'bob', 'charlie']
    for player, label in zip(subsession.get_players(), labels):
        player.participant.label = label

誰かが participant_label=alice と書かれた開始リンクを開いた場合、oTree はそのセッションの参加者が既にそのラベルを持っているかどうかをチェックします。 (これにより、開始リンクを再びクリックすると同じ参加者として戻ることができます。)

参加者に関するデータをoTreeに渡す方法

"Participant vars for room" エンドポイント を参照