.. title:: 「PsychoPy/Pavloviaによるオンライン実験」サポートページ PsychoPy/Pavloviaによるオンライン実験 サポートページ ============================================================================================== .. contents:: :depth: 3 - 2022/08/22 - 訂正を更新しました。Pavloviaの仕様変更により、本書の記述が新しい仕様と一致しなくなってしまったことによる訂正です。 訂正 ------------------------ .. list-table:: :widths: 10 40 * - p.90-94 - 本書執筆時点(2021年9月頃)では4.5節「プロジェクトを共同で管理する」で述べた通りReporter以上の権限があれば招待されたユーザーのクレジットを割り当てることができたのですが、2022年8月の時点で、Reporterの権限では割り当てができなくなっていることを確認しました。Pavlovia側で設定変更があったものと思われます。変更後の設定でもMaintainerの権限であれば割り当て可能ですので、 **招待されたユーザのクレジットで実験を実施したい場合はMaintainerとして招待しておくのが無難だと思われます。** 補足 ------------------------ 3.5節で使用するHTMLファイル ################################ - `コード3.1 HTMLフォームの例 `_ Zipファイルを展開し、26行目の実験参加用URLを書き換えて使用してください。文字化けさせずに開くにはUTF-8に対応したエディタが必要です。 3.5節の正規表現に関する補足 ################################ HTMLフォームを用いて実験情報ダイアログの値を入力する話題(3.5節)において、「正規表現」というものを使ってフォームに入力できる文字を制限できるということを紹介したが、正規表現について解説するスペースがなかったのでここで補足します。 正規表現とは文字列の集合を表記する方法の一種で、「数字」や「アルファベット」といった文字の集合を特殊な記号で表します。例えば ``\d`` と書けば「0から9の数字のいずれか1文字」を表します。 「1文字を表す」と断っているように、数値4桁なら ``\d\d\d\d`` のように ``\d`` を4つ書く必要があります。 4桁程度ならこれでもよいのですが、16桁のように桁数が多い時は ``\d`` を16個も書くのも大変なので、 ``\d{16}`` のように ``{}`` 内に繰り返し数を書いて表現することができます(もちろん2桁でも ``\d{2}`` のように ``{}`` を使うことができます)。 ``\d`` のような文字集合を表す記号には他に「アルファベット、数字、アンダーバーのいずれか1文字」を表す ``\w`` や「空白文字のいずれか1文字」を表す ``\s`` などがありますが、参加者IDは「アルファベットの大文字1文字と数字4字桁」などのようにもう少し文字を限定しないといけないことが多いでしょう。 そういったときに有効なのが ``[]`` です。 ``[]`` は、その内に含まれる文字のいずれか1文字を表します。 例えば ``[ABCDEF]`` と書けばAからFのいずれか1文字を表します。 ``[春夏秋冬]`` のように日本語の文字も使えます(「春夏秋冬のいずれか1文字」を表します)。 「大文字アルファベット全体」のように連続する文字をまとめて指定する場合は ``[A-Z]`` のように最初と最後の文字を ``-`` で結んで書くことができます。 この場合、 ``A-Z`` で「AからZのいずれか1文字」を表すひとつのまとまりなので、他の文字と組み合わせて ``[A-Z#$]`` のようにしたり(「A-Zおよび#, $の中からいずれか1文字」)、 ``[A-Za-z]`` のようにしたりすることもできます(大文字および小文字のアルファベットからいずれか1文字)。 ここまで紹介した表現を組み合わせて、「大文字のAからJのアルファベット1文字+数字7桁+TかXかZのいずれか1文字」というIDを表現してみましょう。 まず「大文字のAからJのアルファベット1文字」は ``[A-J]`` と書けます。 数字7桁は ``\d{7}`` です。 最後の「TかXかZのいずれか1文字」は連続したアルファベットではないので ``[]`` 内に列挙して ``[TXZ]`` でいいでしょう。 これを順番に並べて ``[A-J]\d{7}[TXZ]`` と書けば完成です。 HTMLのフォームで以下のように書けば、IDとして不適切な文字が入力された状態でフォームを送信出来なくなります。 .. code-block:: html 参加者募集フォームでの入力制限ではあまり使う機会はないと思いますのでここでは省略しますが、正規表現では「任意の1文字」を表す ``.`` や直前の文字の1文字以上の繰り返しを表す ``+`` 、0文字以上の繰り返しを表す ``*`` など、可変長の文字列を表す表記もあります。 「正規表現」で検索すると詳しい解説が書かれたページががたくさんヒットしますので、興味を持った方は検索してください。 5章のチュートリアルプロジェクト ################################ GitLabのページ(プロジェクトのコードページ)へのリンクです。 Pavloviaでの検索の練習のため、一度は4章の手順に従って検索して見つけることをお勧めします。 - `5.1節 ブロック化されたStroop課題 (tutorial_blocked_stroop) `_ - `5.2節 傾きの対比 (tutorial_tilt_illusion) `_ - `5.3節 概念学習 (tutorial_concept_formation) `_ - `5.4節 系列位置効果 (tutorial_seq_pos_effect) `_ 5.4節「系列位置効果」の手続きをBuilderで作成する場合のケース1と2の実装例 ################################################################################################ 5.4節で挙げた3つのケースのうち、ケース1と2は実装方法の概略しか述べる紙面がなかったので、それぞれ概略にしたがって作成したBuilderの実験を以下からダウンロードできるようにしておきました。 ダウンロードしたZIPファイルを展開してBuilderで開いてください。 readme.mdに簡単な解説があります。 - ケース1: `tutorial4_case01.zip `_ - ケース2: `tutorial4_case02.zip `_ 6章のデモプロジェクト ################################ GitLabのページ(プロジェクトのコードページ)へのリンクです。 - `6.1節 音声の動画と再生 (demo_movie_sound) `_ - `6.2節 スライダー (demo_slider) `_ - `6.3節 フォーム (demo_form) `_ クレジットがassignされているプロジェクトを探す #################################################### 終了した実験はinactiveにするのが一般的だと思いますが、inactiveにしても割り当てのクレジットは解放されません。 解放されていないと他の実験に割り当てなおすことができませんので無駄になってしまいます。 プロジェクトをinactiveにしてしまうと、プロジェクトのページを開いてもクレジットが割り当てられているか表示されないため、inactive状態のプロジェクト数が多くなってくると割り当てっぱなしになっているプロジェクトを探すのは一苦労です。 このような場合はDashboardのCreditsタブが便利です。 Creditsタブを開くと、すべてのクレジットの状態を確認することができます。 例えば今、どのプロジェクトにもクレジットを割り当てていないはずなのに下図のようにassignedが0でなければ、どこかのプロジェクトに解放しわすれたクレジットがあると思われます。 .. figure:: fig_assigned_credits_1.png このような場合、statusをクリックして下図のようにクレジットがassignedの状態にあるものが先頭になるように並び替えてみましょう。そうすると、どのプロジェクトにクレジットが割り当てられているかが直ちにわかります。 プロジェクト名をクリックするとそのプロジェクトのページが開くので、assignedを0にしてupdate assgined creditsをクリックしましょう。プロジェクトがrunningでない場合はrunningに変更しないとクレジットは操作できないことにご注意ください。 .. figure:: fig_assigned_credits_2.png PCに保存されているプロジェクトを別の場所へ移動させる時の注意 ################################################################### 一度Pavloviaと同期したプロジェクトを、別のフォルダやPCへ移動させたくなることは珍しくないでしょう。このような場合、プロジェクトのフォルダをまるごと移動すればよいのですが、移動した後に同期しようとすると下図のように **「同期されたプロジェクトの保存位置を指定してください」** というダイアログが表示されます。 ちょっと意味不明なので戸惑う人がいるのではないかと思うのですが、これは「PsychoPyの設定ファイルに記録されていないフォルダから同期が実行されたため、PsychoPyが確認してきている」と考えてください。 プロジェクトの現在のフォルダを選択してOKすれば、通常の同期作業が始まります。 .. figure:: fig_sync_moved_project.png .. 参加者募集システムの例