Runnerビューの導入による実験実行方法の変更

2020年2月に公開されたPsychoPy 2020.1ではRunnerというインターフェースが追加され、実験の開始や停止はRunnerから行うように変更されました。本書1.2節「Standalone PsychoPyの準備」の「図1.3」で示されているCoderの「実行アイコン」はRunnerを開くアイコンに変更されています。

../../_images/newver_open_runner.png

従来のCoderではコードの編集画面と実行画面が一体となっていたため、本番の実験の準備をしている最中に誤ってコードを編集してしまう危険性があったり、コードの内容が(たとえ一部であれ)実験参加者に見えてしまったりするなどの問題がありました。こういった問題を回避するため、Coder(およびBuilder)から実験実行機能を分離させたものがRunnerです。実験の実行前にRunnerに実験を登録しておけば、Coderを開かずにRunnerから実験を実行できます。

以下にRunnerウィンドウを示します。一番上には登録済みの実験のリストが表示されています。Coderで「Runnerを開く」ボタンを押した場合は、その時に編集中の実験が自動的に登録されます。Runner上から実験を登録する場合や、登録済みの実験をリストから削除する場合(リストから削除されるだけでファイル自体は削除されません)、リストの右側の+ボタンと-ボタンを使用します。

../../_images/newver_runner.png

リスト上の実験をひとつ選択した状態でリストの右側の「実行」ボタンをクリックすると、実験が実行されます。実行中に「中断」ボタンをクリックすると実験が中断されます。これらは従来Coderウィンドウにあったボタンと同じ働きをします。リストの右側にはさらに2つのボタンがありますが、これらはオンライン実験の実行とローカルデバッグに使用します。ここでは省略します。

実験リストの下にはAlertという欄があります。これは開発段階の機能で、実験に問題がある可能性が見つかった場合はここにその内容が表示されます。現時点では主にBuilderで作成した実験向けの機能なので、本書とはほとんど関係がありません。

Alertの下にあるStdOutという欄は、従来Coderの下部にあったOutputペインに相当するものです(CoderからはOutputペインが削除されています)。

非ASCII文字のprint()について

2020年現在、PsychoPyはPython3ベースのものが標準となっており、漢字やカナなどの非ASCII文字の扱いが改善されています。スクリプト内でprint()文を用いて非ASCII文字を表示しようとしたことが原因のエラーはほぼ解消されました。

Coderビューの「シェル」タブについて

本書1.2節「Standalone PsychoPyの準備」において「『シェル』タブを使用するとPsychoPyの動作自体が不安定になることがあるため、あまりお勧めできない」と書きましたが、幾度ものバージョンアップを経てかなり安定して使用できるようになりました。

setFoo()系メソッドから代入へ

psychopy.visualのオブジェクトに位置や回転角度を設定する方法には、setPos()やsetOri()といったメソッド(便宜的にsetFoo()系と呼びます)と=演算子を使う方法があります。=演算子を使うのが新しい方法で、本書の執筆時点では移行期だったためsetFoo()系メソッドを使う方法を中心に解説し、=演算子を使う方法は付録A.6.4節で紹介するにとどめました。本書の出版後さらに移行が進み、そろそろ新しいオブジェクトではsetFoo()系がサポートされず=演算子のみがサポートされるケースが出てきたようです。

RatingScaleからSliderへ

本書2.3.7節で紹介しているRatingScaleオブジェクトは他のバックエンドライブラリとの相性問題をしばしば起こしており、現在では代わりとなるSliderというオブジェクトが追加されています。

psychtoolboxベースのバックエンドライブラリについて

2019年にPsychtoolboxのキーボード入力、オーディオ出力のコードがPythonへポートされてPsychoPyに組み込まれました。従来のpsychopy.eventモジュールと異なり垂直同期に制限されないキーボードイベントの検出や、キーリリースの検出が可能となったほか、音声再生時の遅延が従来のバックエンドより短くなりました。

キーボードはpsychopy.hardware.keyboardモジュールを使うことで、オーディオはPsychoPyの設定でオーディオライブラリにptbを指定することで利用できます。これらについてはいずれ機会をみて解説したいと考えています。

Standalone版のインストールディレクトリ変更

2020年現在、WindowsにStandalone PsychoPyをインストールするとC:\Program Files\PsychoPy3というディレクトリにインストールされるようになりました(64bit版Windowsに64bit PythonベースのPsychoPyをインストールした場合)。本書でStandalone版 PsychoPyのインストールディレクトリについて言及している箇所は適宜読み替えてください。

psychopy.preferences.Preferencesオブジェクトの変更点

本書付録A.6.2にpsychopy.preferences.Preferencesオブジェクトを操作して実行時に設定を変更する方法を紹介していますが、psychopy.prefsにhardwareというデータ属性が追加され、'audioLib'などの設定はhardwareに移されました。PsychoPy設定ダイアログで「ハードウェア」にまとめられている項目がhardwareに対応しています。

PsychoPy3のオンライン実験(Pavlovia)について

PavloviaはPsychoJS, jsPsych, lab.jsといったJavaScriptで書かれた実験を実行するサービスであり、本書で扱っているPythonのコードを実行することは出来ません。Builderで作成された実験のうち、PsychoJSでサポートされた機能しか使っていない実験であればわずかな修正で動くのですが、Pythonで直接コーディングされた実験は自分でJavaScriptに書き直す必要があります。