14. 付録

14.1. 本文未解説コンポーネント

PsychoPy Builder 3.0.5で利用できるコンポーネントのうち、本文で取り上げなかったものの概要を示します。

14.1.1. Patchコンポーネント

画像ファイルや縞模様などを描画します。このコンポーネントが使用しているPsychoPyのPatchStimが廃止(deprecated)となっており、過去にこのコンポーネントを使用して作成された実験をサポートするために残されているものと思われます。新しく実験を作成する時にはImageコンポーネントまたはGratingコンポーネントを使うことをお勧めします。

PatchコンポーネントのプロパティはImageコンポーネントおよびGratingコンポーネントの対応するプロパティを参照してください。

14.1.2. Apertureコンポーネント

画面を「穴」で切り抜くコンポーネントです。このコンポーネントはルーチンペインにおける描画順序の影響を受けません。つまり、Apertureコンポーネントの上に他の刺激を重ね書きしようとしてもApertureコンポーネントに切り抜かれてしまいます。

サイズ $
「穴」の直径をしめす値を指定します。他のコンポーネントの サイズ [w, h] $ と異なり幅と高さを別々の値にすることはできません。
位置 [x, y] $
刺激の中心のX座標とY座標を表す値を指定します。[単位] の設定に従います。

14.1.3. Dotsコンポーネント

一様に運動する小さな点を大量に描くコンポーネントです。運動視の研究などに用います。Polygonコンポーネントを大量に用いるよりPCへの負担が軽く、高速に描画できます。以下の解説では、点が描画される範囲をフィールドと呼んでいます。また、指定された方向に動く点をターゲット、それ以外の方向に動く点をノイズと呼んでいます。

フィールドの位置 $
実数を二つ並べたリストで刺激の中心のX座標とY座標を表す値を指定します。 [単位] に従います。
フィールドの形状
フィールドの形状を指定します。「楕円」(circle)または「長方形」(square)を指定できます。
フィールドの大きさ
実数または実数を二つ並べたシーケンスでフィールドの幅と高さを指定します。数値が一つだけの場合は幅と高さに同一の値を指定したものとみなされます。数値が二つの場合は順番に幅、高さの値とみなされます。 [単位] に従います。
コヒーレンス
0.0~1.0の実数でターゲットの割合を指定します。例えば0.8ならば80%の点がターゲットで、20%の点がノイズです。
方向 $
ターゲットが運動する方向を実数で指定します。単位はdegで時計回りが正の方向です。
ドットの寿命 $
点が消滅するまでのフレーム数を整数で指定します。例えば3であれば個々の点は3フレーム描画されると消滅して次のフレームでは新たな場所に出現します。-1を指定すると点がフィールド外に出るまで消滅しません。
ドットの大きさ $
点の大きさを正の実数で指定します。単位はpixです。 [単位] の影響を受けないので注意してください。
ドット数 $
運動する点の個数を正の整数で指定します。
ノイズドット
ノイズの運動を指定します。「一定方向」(direction)であればノイズは一定方向に動き続けます。「ランダム位置」(position)であればフレーム毎にランダムな位置に出現します。「ランダムウォーク」(walk)であればフレーム毎に運動方向が変化します。
シグナルドット
「同一方向」(same)を指定すると、ターゲットは消滅するまでその方向に動き続けます。「異なる方向」(different)を指定すると、フレーム毎にランダムにターゲットとなる点が入れ替わります。
速度 $
点が1フレーム毎に移動する距離を正の実数で指定します。 [単位] に従います。

14.1.4. EnvelopeGratingコンポーネント

変調されたグレーティングを描くコンポーネントです。詳細は省略します。

14.1.5. Noiseコンポーネント

様々なノイズ画像を描くコンポーネントです。詳細は省略します。

14.1.6. cedrusButtonBoxコンポーネント

Cedrusの反応ボタンボックスを用いて反応を記録するコンポーネントです。詳細は省略します。

14.1.7. ioLabsButtonBoxコンポーネント

ioLabs Systems製のボタンボックスを用いて反応を記録するコンポーネントです。詳細は省略します。

14.1.8. Microphoneコンポーネント

マイクから音声を記録します。

ステレオ
マイクがステレオか否かを指定します。

14.1.9. Joystickコンポーネント

ジョイスティックで反応を記録するコンポーネントです。Mouseコンポーネントと同じような使い方が出来ます。

[ボタン押しでRoutineを終了]
Mouseコンポーネントと同様、「全てのクリック」と「有効なクリック」を選べます。
[ジョイスティックの状態を保存]
Mouseコンポーネントと同様です。9章参照。
[時刻の基準]
Mouseコンポーネントと同様です。8章参照。
[クリック可能な視覚刺激 $]
Mouseコンポーネントと同様です。9章参照。
[クリック時に保存するパラメータ]
Mouseコンポーネントと同様です。9章参照。
[デバイス番号 $]
複数のジョイスティックを接続している場合に、それぞれを識別するための番号を指定します。番号はシステムに認識されている順番に0, 1, 2...です。
[検出するボタン $]
押されていることを検出するボタンをカンマ区切りで番号で指定します。ボタンと番号の対応は製品によって異なりますので、各自で確認してください。

14.1.10. Pumpコンポーネント

Qmixライブラリ対応のシリンジユニットを制御するコンポーネントです。Python2には対応していないため、Python2ベースのPsychoPyを使用している時には表示されません。詳細は省略します。

14.1.11. Unknownコンポーネント

新しいバージョンのBuilderで追加されたコンポーネントを使った実験を古いバージョンのBuilderで開いた時など、使用中のBuilderで利用できないコンポーネントが実験に含まれてる場合があります。このような時、利用できないコンポーネントがUnknownコンポーネントとして表示されます。

実験を作成する際にこのコンポーネントを配置しても何も起きません。

14.1.12. Variableコンポーネント

ユーザー変数を追加するコンポーネントです。Codeコンポーネントでユーザー独自の変数を使用する場合とほぼ同じですが、ルーチンペイン上に表示されるので、自分が作った実験を再利用するときや、共同研究者や学生などのために実験を作成したときに、どのような変数が独自に用いられているのかがわかりやすいという利点があります。

実験開始時の値 $
実験開始に設定する値を指定します。
Routine開始時の値 $
ルーチンが開始する時に設定する値を指定します。
フレーム更新開始時の値 $
各フレームの処理のたびに設定する値を指定します。
実験開始時の値を保存
実験開始時の値を保存するときにチェックします。
Routine開始時の値を保存
Routine開始時の値を保存するときにチェックします。
フレーム更新時の値を保存
フレーム更新中の値を保存するか否かについて、「なし」、「最初」、「最後」、「すべて」のいずれかから選びます。
Routine終了時の値を保存
ルーチン終了時の値を保存するときにチェックします。
実験終了時の値を保存
実験終了時の値を保存するときにチェックします。

14.1.13. ParallelOutコンポーネント

パラレルポートからのトリガー出力を行うためのコンポーネントです。

ポートアドレス (Port ddress)
パラレルポートのアドレスを指定します。PsychoPy設定ダイアログの「一般」タブの「パラレルポート」に列挙されている値およびLabJack U3の中から選択します。
開始時データ $ (Start data $)
コンポーネントの開始時刻に送信する値を指定します。Noneなら値を送信しません。
終了時データ $ (Stop data $)
コンポーネントの終了に送信する値を指定します。Noneなら値を送信しません。
スクリーンに同期 (Sync to screen)
データの送信と画面の更新を同期させるか否かを指定します。

14.2. 予約語

14.2.1. Pythonの予約語 (Python 3.7)

Pythonインタプリタを起動してkeywordをimportすると、keyword.kwlistというリストにPython予約語の一覧が格納されます。以下にPython3.7の予約語を示します。これらの語はBuilderにおいて [名前] や変数名として使用することはできません。

FALSE None TRUE and as assert async
await break class continue def del elif
else except finally for from global if
import in is lambda nonlocal not or
pass raise return try while with yield

14.2.2. Builderの予約語(3.0.5)

以下の語はBuilder内で使用されているモジュール名および定数名です。これらの語はBuilderにおいて [名前] や変数名として使用することはできません(__から始まる語はそもそも使うべきではないので省略しています)。

core data event gui logging
microphone misc os psychopy sound
visual ENVIRON FINISHED FOREVER NOT_STARTED
PAUSED PLAYING PRESSED PSYCHOPY_USERAGENT  
PY3 RELEASED SKIP STARTED STOPPED
absolute_import abspath copy gitExe join
print_function sys      

以下の語はnumpyおよびnumpy.randomからimportされるのでBuilderにおいて [名前] や変数名として使用することはできません。

asarray average cos deg2rad linspace log log10
normal np pi rad2deg randint random shuffle
sin sqrt std tan      

以下のリストはPsychoPyの旧バージョン(1.82.0)において予約語とされていたものです。現在(3.0.5)のBuilderでは警告が出ませんが、 [名前] や変数名として使用しない方が望ましいと思われます。

__builtins__ __doc__ __file__ __name__ __package__ abs
all any apply basestring bin bool
buffer bytearray bytes callable chr classmethod
clear cmp coerce compile complex copy
copyright credits delattr dict dir divmod
enumerate eval execfile exit file filter
float format fromkeys frozenset get getattr
globals has_key hasattr hash help hex
id input int intern isinstance issubclass
items iter iteritems iterkeys itervalues keys
len license list locals long map
max memoryview min next object oct
open ord pop popitem pow property
quit range raw_input reduce reload  
repr reversed round set setattr setdefault
slice sorted staticmethod str sum super
tuple type unichr unicode update values
vars viewitems viewkeys viewvalues xrange zip
False None True      

14.2.3. Builderの内部変数(3.0.5)

以下の語はBuilder(バージョン3.0.5)の内部変数として予約されています。 これらの語はBuilderにおいて [名前] や変数名として使用することはできません。

予約語 概要
_thisDir Builderを実行するときにカレントフォルダをpsyexpファイルに移動するために使用されます。
buttons 最後に取得したマウスのボタンの状態を示すリストが格納されています。
component 予約されています。
continueRoutine 実行中のルーチンを継続するか否かを示す真偽値が格納されています。→第7章
currentLoop 本書では解説しなかったloopTypeのstaircase、interleaved staircasesを使用したときに使用されます。
dlg expInfoダイアログを作成するために使用します。
expInfo expInfoダイアログの項目と値が辞書オブジェクトとして格納されています。→第4章、第5章
endExpNow ESCキーによる実験の中断を有効にしているときに、この変数を利用してESCキー以外のキーで実験を終了できます。
expName 実験設定ダイアログの[Experiment name]に入力した実験名が格納されています。
filename 各種実験記録ファイルやログファイルのファイル名を生成するために利用されます。
frameDur フレームレートの実測値を保持しています。計測に失敗した場合は1/60secにセットされます。
frameN 現在のフレーム番号を格納しています。→第5章
globalClock 実験開始からの経過時間を計測するためのpsychopy.core.Clockのインスタンスが格納されています。→第12章
key_resp 予約されています。
KeyResponse 予約されています。
level 本書では解説しなかったloopTypeのstaircase、interleaved staircasesを使用したときに使用されます。
logFile ログファイルを作成するためのpsychopy.logging.LogFileのインスタンスが格納されています。
paramName 本書では解説しなかったloopTypeのinterleaved staircasesを使用したときに使用されます。
routineTimer ルーチン終了までの残り時間を計測するためのpsychopy.core.CountdownTimerのインスタンスが格納されています。
t ルーチンが開始してからの経過時間を格納しています。→第5章
theseKeys 最後に取得したキーの状態を示すリストを格納しています。→第7章
thisComponent 現在処理中のコンポーネントに対応するインスタンスが格納されています。
thisExp フローの制御ややデータの保存に関与するpsychopy.data.ExperimentHandlerのインスタンスが格納されています。
win 刺激提示スクリーン本体であるpsychopy.visual.Windowのインスタンスを格納しています。
x 最後に取得したマウスカーソルのX座標を格納しています。Mouseコンポーネントの マウスの状態を保存 の設定によって単独の値であったりリストであったりします。
y 最後に取得したマウスカーソルのY座標を格納しています。Mouseコンポーネントの マウスの状態を保存 の設定によって単独の値であったりリストであったりします。

以上に加えて、以下の語は正常なルーチンの実行に必須の変数名と一致するのでBuilderにおいて [名前] や変数名として使用することはできません。

trialComponents (trialはルーチン名) 当該ルーチンでフレーム毎に処理する必要があるコンポーネントのインスタンスを並べたリストが格納されています。→第8章
trialClock (trialはルーチン名) 当該ルーチンが開始されてからの経過時間を計測するpsychopy.core.Clockのインスタンスが格納されています。→第9章

14.3. ログファイル

PsychoPy Builderで実験を実行すると、拡張子 .log のログファイルが作成されます。実験が十分な精度で実行されているかどうかを確認したい場合や、どうも意図している通りに刺激が提示されないといった問題が生じている時に、このログファイルから情報が得られる場合があります。ただし、Builderの実験がどのようなコードにコンパイルされて実行されるのかある程度知識がないと対策をとることまでは難しいかも知れません。

ログには以下のレベルがあります。実験設定ダイアログでログの出力レベルを選択すると、選択されたレベル以上のログがログファイルに出力されます。例えばwarningを選択すると、waringとerrorのレベルのログが出力されます。infoを選択すると、info、exp、data、warning、errorのレベルのログが出力されます。

  1. error
  2. warning
  3. data
  4. exp
  5. info
  6. debug

以下にdebugを選択した場合のログファイルの先頭部分の例を示します。非常に長い行は中略してあります。 各行の最初の数値が実験開始からの経過時間(秒)、続いてログのレベルが示されています。レベルに続いてその時刻に生じたイベントの内容が書かれています。

3.0528  WARNING  Movie2 stim could not be imported and won't be available
7.8399  INFO  Loaded monitor calibration from ['2015_06_02 16:25']
8.9837  EXP  Created window1 = Window(allowGUI=False, allowStencil=False, ... ()
8.9838  EXP  window1: recordFrameIntervals = False
9.1467  EXP  window1: recordFrameIntervals = True
9.3343  DEBUG  Screen (0) actual frame rate measured at 58.77
9.3344  EXP  window1: recordFrameIntervals = False
9.9161  EXP  Created text = TextStim(alignHoriz='center', alignVert= ... ()
9.9274  EXP  Created stimulus = Polygon(autoDraw=False, autoLog=True, ... ()
9.9286  EXP  <method-wrapper '__getattribute__' of attributeSetter object ... ()
(中略)
13.8202  EXP  Created sequence: fullRandom, trialTypes=4, nReps=25, seed=None
13.8229  EXP  New trial (rep=0, index=0): {u'correct_ans': u'slash', ... ()
13.8499  EXP  text: autoDraw = False
13.8499  EXP  stimulus: fillColor = u'green (named)'
13.8499  EXP  stimulus: pos = array([-400.,    0.])
13.8499  EXP  stimulus: lineColor = u'green (named)'
13.8499  EXP  cross1: autoDraw = True
13.8499  EXP  cross2: autoDraw = True
14.8756  EXP  stimulus: autoDraw = True
15.4022  DATA  Keypress: slash
15.4382  EXP  New trial (rep=0, index=1): {u'correct_ans': u'slash', ... ()
15.4778  EXP  stimulus: autoDraw = False
15.4778  EXP  cross1: autoDraw = False
15.4778  EXP  cross2: autoDraw = False
15.4778  EXP  stimulus: fillColor = u'green (named)'
15.4778  EXP  stimulus: pos = array([-400.,    0.])
15.4778  EXP  stimulus: lineColor = u'green (named)'
15.4778  EXP  cross1: autoDraw = True
15.4778  EXP  cross2: autoDraw = True
16.4711  EXP  stimulus: autoDraw = True
17.0442  DATA  Keypress: slash

もしこの実験をログレベル exp で実行していたら、exp以上のレベルのみが出力されるので、以下のような出力になります。上の例の2行目のINFOと6行目のDEBUGが抜けている点にご注意ください。

3.0528  WARNING  Movie2 stim could not be imported and won't be available
8.9837  EXP  Created window1 = Window(allowGUI=False, allowStencil=False, ... ()
8.9838  EXP  window1: recordFrameIntervals = False
9.1467  EXP  window1: recordFrameIntervals = True
9.3344  EXP  window1: recordFrameIntervals = False
9.9161  EXP  Created text = TextStim(alignHoriz='center', alignVert= ... ()
9.9274  EXP  Created stimulus = Polygon(autoDraw=False, autoLog=True, ... ()
9.9286  EXP  <method-wrapper '__getattribute__' of attributeSetter object ... ()
(中略)
13.8202  EXP  Created sequence: fullRandom, trialTypes=4, nReps=25, seed=None
13.8229  EXP  New trial (rep=0, index=0): {u'correct_ans': u'slash', ... ()
13.8499  EXP  text: autoDraw = False
13.8499  EXP  stimulus: fillColor = u'green (named)'
13.8499  EXP  stimulus: pos = array([-400.,    0.])
13.8499  EXP  stimulus: lineColor = u'green (named)'
13.8499  EXP  cross1: autoDraw = True
13.8499  EXP  cross2: autoDraw = True
14.8756  EXP  stimulus: autoDraw = True
15.4022  DATA Keypress: slash
15.4382  EXP  New trial (rep=0, index=1): {u'correct_ans': u'slash', ... ()
15.4778  EXP  stimulus: autoDraw = False
15.4778  EXP  cross1: autoDraw = False
15.4778  EXP  cross2: autoDraw = False
15.4778  EXP  stimulus: fillColor = u'green (named)'
15.4778  EXP  stimulus: pos = array([-400.,    0.])
15.4778  EXP  stimulus: lineColor = u'green (named)'
15.4778  EXP  cross1: autoDraw = True
15.4778  EXP  cross2: autoDraw = True
16.4711  EXP  stimulus: autoDraw = True
17.0442  DATA Keypress: slash

ログレベルがwarningなら、以下のような出力になります。

3.0528  WARNING  Movie2 stim could not be imported and won't be available

infoやdebugのレベルのログはBuilderの新機能の開発などの際に便利な内容が多く、おそらく一般ユーザーが必要とすることは少ないでしょう。expのレベルは刺激オブジェクトの作成やパラメーターの変更、ループの実行状況などに関する情報が出力されます。dataのレベルは実験記録ファイルへのデータ出力に関する情報が出力されます。expのログの時刻を確認したら、もしかすると刺激提示のタイミングなどに関するトラブルの情報が得られる可能性があります。

warningのレベルでは、致命的ではないかも知れないけれども問題が生じていることが報告されます。上の例ではMovieStim2が利用できないという問題が報告されています。今実行している実験の中で動画刺激を使用していなければ問題ありませんが、今後動画刺激を使いたいと思った時には利用できるようにインストールの問題などを解決しなければいけないことを示しています。

warningのレベルで最も注意すべきは、以下のようにlast frame was XX msというログが出力されている場合です。このようなログが出力されている場合は、フレームの描画に問題があって一定のスピードで描画ができていません。アニメーションする刺激の描画がカクカクしてしまったり、刺激の出現、消去のタイミングがずれてしまっている可能性があります。常駐プログラムの停止、グラフィックデバイスドライバの更新や、高性能グラフィックボードの追加などの対策が必要となる可能性があります。

16.5660  WARNING  t of last frame was 30.22ms (=1/33)
16.5974  WARNING  t of last frame was 31.41ms (=1/31)
16.6285  WARNING  t of last frame was 31.09ms (=1/32)

14.4. PsychoPy設定ダイアログ

PsychoPy設定ダイアログの各項目について簡単にまとめました。

14.4.1. アプリケーション タブ

[起動時にチップを表示]
チェックしておくとPsychoPy Builder/Coderを起動したときに「今日のチップ」を表示します。
[大きいアイコン]
ノートPCなど、低解像度のモニターを使用しているときはチェックを外すとスペースを節約できます。
[標準で開くウィンドウ]
PsychoPyを起動したときに開くウィンドウを指定します。「前回使用時のウィンドウを開く」、「Builder」、「Coder」、「BuilderとCoderを開く」から選びます。
[設定の初期化]
設定を初期化したいときは、ここにチェックをしてPsychoPyを再起動してください。
[設定の自動保存]
ウィンドウを閉じるときに、未保存の設定を自動的に保存します。
[デバッグモード]
PsychoPyのデバッグ用機能を有効化します。PsychoPyそのもののデバッグであって、ユーザーが作成した実験スクリプトのデバッグではありません。
[ロケール]
PsychoPyのメニュー等の表示に使う言語を選択します。空欄にしておくと、OSの言語の設定を利用しようとします。

14.4.2. Builder タブ

[前回の実験を開く]
チェックしておくと、前回開いていた実験を自動的に開きます。
[名前空間の整理]
コードのコンパイルに関連するオプションです。通常は変更する必要はないでしょう。
[コンポーネントフォルダ]
パスを列挙したリストを指定します。パス内に含まれる拡張子.pyのファイルをBuilderのコンポーネントとして読み込みます。
[表示しないコンポーネント]
特定のハードウェア用コンポーネントなど、使用しないコンポーネントの名前をここに書いておくと、コンポーネントペインに表示されなくなります。ロケールが日本語の場合、Fooコンポーネントと表示されているコンポーネントの名前はFooComponentと書く必要があります。
[デモのディレクトリ]
Builderのデモが展開されているディレクトリを指定します。Builderウィンドウのメニューの「デモ」メニューから「デモを展開...」すると自動的に設定されます。展開されたデモを手作業で別の場所に移したりしない限り、通常は変更する必要はありません。
[データ保存フォルダ]
Builderの実験を実行したときに、記録ファイルやログファイルが保存されるフォルダ名を指定します。
[フローを上に表示]
チェックするとフローペインが上に、コンポーネントペインが左にレイアウトされます。
[常にreadmeを表示]
psyexpファイルと同一のフォルダにreadme.txtというファイルが存在している場合、この項目をチェックしておくとreadme.txtの内容が表示されます。
[お気に入りの最大登録数]
コンポーネントペインの「お気に入り」に登録できるコンポーネント数の上限を指定します。

14.4.3. Coder タブ

[読み込み専用で開く]
実験を実施する際に、不用意にコードが変更されてしまうのを防ぎたいときにチェックします。
[コード用フォント]
コードの表示に使用するフォント名を指定します。複数のフォントを列挙すると、最初に読み込むことが出来たフォントを使用します。
[コメント用フォント]
コメントの表示に使用するフォント名を指定します。複数のフォントを列挙すると、最初に読み込むことが出来たフォントを使用します。
[出力用フォント]
出力パネルの表示に使用するフォント名を指定します。複数のフォントを列挙すると、最初に読み込むことが出来たフォントを使用します。
[コード用フォントサイズ]
フォントサイズを6から24の整数で指定します。
[出力用フォントサイズ]
フォントサイズを6から24の整数で指定します。
[ソースアシスタントを表示]
チェックするとCoder起動時にソースアシスタントを表示します。変数に格納されているクラスのヘルプなどが表示されます。
[出力パネルを表示]
チェックを外してPsychoPyを再起動すると、Coderウィンドウの下部に出力パネルが表示されません。
[前回のファイルを開く]
前回終了時に開いていたファイルを自動的に開きます。
[優先するシェル]
Coderウィンドウ下部のシェルパネルで優先するシェルを指定します。

14.4.4. 一般 タブ

[ウィンドウ描画ライブラリ]
ウィンドウの描画に使うライブラリを指定します。pygletとpygameが選択できますが、1.82.02現在でpygameはBuilderの機能を十分に活用できないのでpygletのままにしておくべきです。
[単位]
実験の設定ダイアログで [単位] を「PsychoPyの設定を用いる」に設定した場合、ここで選択した単位が使用されます。
[フルスクリーン]
チェックしておくと標準でフルスクリーンウィンドウで刺激を描画しようとします。実験の設定ダイアログで「フルスクリーンウィンドウ」のチェックを外している場合は、実験の設定ダイアログが優先されます。
[GUIを使用]
チェックしておくと標準でマウス等を有効にします。
[パス]
独自のPythonモジュールを使用したい場合、モジュールが置かれているパスをここに列挙しておくとimport出来ます。
[fracオーディオ圧縮]
fracを利用したい場合、ここへfracへのパスを設定します。
[実験終了キー]
実験を終了させるキーをESC以外にしたい時にここに指定します。pygletのキー名でなければいけません。
[実験終了キーのモディファイア]
「Shiftを押しながらESC」のようにモディファイアキーを押しながら終了するようにしたい時にここに指定します。

14.4.5. ハードウェア タブ

[オーディオライブラリ]
音声刺激の再生に使用するライブラリを列挙します。最初にロードできたものを利用します。
[オーディオドライバ]
音声刺激の再生に使用するドライバを列挙します。最初にロードできたものを利用します。

[オーディオデバイス]

[パラレルポート]
パラレルポートのアドレスを列挙します。ここへアドレスを記入しておかないとParallelOutコンポーネントでアドレスを選択できません。
[Qmixの設定]
Qmix pump(シリンジ制御ライブラリ)の設定を指定します。

14.4.6. ネットワーク タブ

[プロキシ]
ネットワークアクセスにプロキシが必要な場合、ここへアドレスとポートを記入します。
[プロキシの自動構成]
自動的にプロキシを構成しようとします。自動構成が利用可能な場合は「プロキシ」の設定に優先します。
[利用統計の送信を許可]
PsychoPy開発チームへ利用統計を送信することを許可します。開発の参考にするため、可能な限りチェックしておいてください。
[更新の確認]
起動時に新しいバージョンのPsychoPyが公開されていないか確認します。
[タイムアウト]
ネットワーク接続のタイムアウト時間を指定します。

14.4.7. キー設定 タブ

BuilderおよびCoderで利用できるショートカットキーを編集することが出来ます。個々の項目については省略します。

14.5. チェックリスト一覧

14.5.1. 第1章

  • PsychoPyを起動できる。
  • CoderのウィンドウからBuilderのウィンドウを開くことが出来る。
  • BuilderのウィンドウからCoderのウィンドウを開くことが出来る。
  • ExcelまたはLibreOffice Calcのどちらかを起動できる。
  • ファイルの拡張子を表示できる。

14.5.2. 第2章

  • Polygonコンポーネントを用いて多角形を表示できる。
  • PsychoPyにおける座標系の原点と水平、垂直軸の正の方向を答えられる。
  • pixを単位に指定して、 [位置 [x, y] $][サイズ [w, h] $] に適切な値を入力して任意の大きさの多角形を任意の位置に表示させることができる。
    • Polygonコンポーネントで正五角形以上の正多角形を描画できる。
  • Polygonコンポーネントで頂点数が5以上の時に [位置 [x, y] $] が例外的に図形のどの位置に対応するかを答えることが出来る。
  • cm、deg、norm、heightという単位を説明できる。
  • 複数のコンポーネントをルーチンペインに配置できる。
  • [回転角度 $] に適切な値を設定して図形を回転させて表示させることが出来る。
  • 図形の正の回転方向を答えられる。
  • 単位がnormの時に図形を回転させた時に生じる図形のひずみを説明できる。
  • Textコンポーネントを用いて文字列を表示できる。
  • 文字列を指定された位置に表示できる。
  • 文字列を指定された大きさで表示できる。
  • 文字列を上下反転、左右反転表示することが出来る。
  • 文字列の自動折り返し幅を設定できる。どのような文字列では自動折り返しが起きないか説明できる。
  • web/X11 color nameによる色指定で文字列の色を白、灰色、黒、赤、オレンジ色、黄色、黄緑色、緑、水色、青、ピンク、紫にすることが出来る。
  • [色空間] をrgbに設定して、数値指定によって文字列の色を白、灰色、黒、赤、黄色、緑色、青色にすることが出来る。
  • Polygonコンポーネントを用いて内部が塗りつぶされていない輪郭線だけの多角形を描画することができる。
  • Polygonコンポーネントを用いて輪郭線がない多角形を描画することができる。
  • ルーチンペイン上における視覚刺激コンポーネントの順番とスクリーン上での重ね順の関係を説明できる。
  • ルーチンペイン上におけるコンポーネントの順番を変更できる。
  • 視覚刺激コンポーネントの透明度を設定して完全な透明、完全な不透明とその中間の透明度で刺激を表示させることが出来る。
  • 刺激の表示開始時刻と表示時間を指定して表示させることが出来る。
  • 刺激の表示開始時刻と表示終了時刻を指定して表示させることが出来る。
  • 刺激の表示終了時刻を定めずに表示させることが出来る。
  • 実行中の実験を強制的に終了させることが出来る。
  • foo_lastrun.py (fooはpsyexp実験ファイル名)の役割を説明することが出来る。
  • dataフォルダの役割を説明することが出来る。
  • 実験結果を保存する必要がない場合、どのファイルを削除しても問題ないかを判断できる。
  • 作製済みのpsyexpファイルをBuilderで開くことが出来る。
  • psyexpファイルを別の名前で保存することが出来る。
  • 実験設定ダイアログを開くことが出来る。
  • 実験開始時に実験情報ダイアログを表示させるか否かを設定することが出来る。
  • 登録済みのモニターのうちどれを実験に使用するかを実験設定ダイアログで設定できる。
  • 実験をフルスクリーンモードで実行するか否かを設定することが出来る。
  • フルスクリーンモードを使用しない時に、視覚刺激提示ウィンドウの幅と高さを指定できる。
  • 視覚提示ウィンドウの背景色を指定できる。
  • 「実験の設定に従う」で参照される単位を指定することが出来る。
  • ESCキーによる実験の強制終了を有効にするか無効にするかを指定することが出来る。
  • 実験記録のファイルを保存するフォルダ名を指定することが出来る。
  • フルスクリーンモード時にマウスカーソルを表示するか否かを指定することが出来る。
  • モニターセンターを開くことが出来る。
  • モニターセンターに新しいモニターを登録することが出来る。
  • モニターの観察距離、解像度、スクリーン幅を登録することが出来る。

14.5.3. 第3章

  • Polygonコンポーネントを用いて円をスクリーン上に提示することが出来る。
  • Polygonコンポーネントを用いて十字をスクリーン上に提示することが出来る。
  • ルーチン実行中にキー押しが有効となる時間帯を指定できる。
  • キーが押されると直ちにルーチンを中断するように設定することが出来る。
  • 有効とするキーを指定できる。
  • すべてのキーを有効にするように設定することが出来る。
  • ExcelまたはLibreOffice Calcを用いて、実験に用いるパラメータを列挙した条件ファイルを作成することが出来る。
  • 実験のパラメータを表現するためにPsychoPyで使用できる名前を決めることが出来る。
  • フローペインでループの挿入を開始できる。
  • ループを挿入する際、フローペインの矢印上に表示される黒い円の意味を説明できる。
  • ループのプロパティ設定ダイアログで条件ファイルを指定し、表示された条件ファイルの概要が適切か確認できる。
  • [Loopの種類] のsequential、random、fullRandomの違いを説明できる。
  • [繰り返し回数 $] の値、条件ファイルに含まれる条件数、ルーチンが繰り返される回数の関係を説明できる。
  • [乱数のシード $] に値を設定するとどのような効果が得られるか説明できる。
  • 条件ファイルを [繰り返し条件] に指定する前にpsyexpファイルを保存すべき理由を説明できる。
  • 条件ファイルで定義したパラメータを用いてコンポーネントのプロパティ値を更新できるように設定できる。
  • コンポーネントのプロパティ名の最後に$が付いているものと付いてないものの違いを説明できる。
  • expInfoのparticipantに設定した文字列が記録ファイル名にどのように反映されるかを説明出来る。
  • dataフォルダに作成される拡張子logとpsydatのファイルに何が記録されているか、概要を説明することが出来る。
  • CSVファイルのCSVとは何の略であり、何を意味しているか説明することが出来る。
  • trial-by-trial記録ファイルから、各試行で用いられたパラメータの値を読み取ることが出来る。
  • trial-by-trial記録ファイルから、各試行において押されたキーのキー名と反応時間を読み取ることが出来る。
  • trial-by-trial記録ファイルに記録されている反応時間の計測開始時点(0.0秒になる時点)がどのように決まるか答えることが出来る。
  • trial-by-trial記録ファイルから実験情報ダイアログで入力した値を読み取ることが出来る。
  • trial-by-trial記録ファイルから実験実行時のフレームレートを読み取ることが出来る。
  • 分析時に未変更の記録ファイルを保存しておいた方がよい理由を説明できる。
  • 正答/誤答を記録するようにKeyboardコンポーネントを設定することが出来る。
  • キーを押さないことが正答となるように設定することが出来る。
  • 正答となるキー名を条件ファイルから読み込んで繰り返し毎に更新することが出来る。
  • trial-by-trial記録ファイルから、各試行の正答/誤答を読み取ることが出来る。
  • ルーチンを新たに作成してフローに追加することが出来る。
  • 既存のルーチンをフローに追加することが出来る。
  • フローからルーチンを削除することができる。
  • フローペインの赤いルーチンと緑のルーチンが何に対応しているか説明することが出来る。
  • 特定のKeyboardコンポーネントが検出したキー押しを記録しないように設定することが出来る。
  • 既存のルーチンと同一の内容を持つ新しいルーチンをコピー&ペーストの機能を使って作成することが出来る。

14.5.4. 第4章

  • Gratingコンポーネントを用いて長方形、または楕円形に縞模様が描かれた刺激を提示することが出来る。
  • Gratingコンポーネントで [単位] がcm、deg、pix、norm、heightのいずれの場合においても、「幅xに対してy周期分の縞模様」を描けるように [空間周波数 $] の値を決定できる(x、yは正の数値)。
  • Gratingコンポーネントで描かれる縞模様を初期設定の状態からずらして描画することが出来る。
  • Gratingコンポーネントで描画処理の負担を軽くするためにテクスチャの解像度を下げることができる。
  • Gratingコンポーネントを大きく表示するときに画質を高めるためにテクスチャの解像度を上げることができる。
  • Gratingコンポーネントの色を指定したときに、何色の縞模様が描かれるのかをこたえることができる。
  • 恒常法の実験において、正答率がそのまま心理物理曲線の縦軸の値として使用できるように正答を定義できる。
  • 実験情報ダイアログの項目を追加、削除することが出来る。
  • 実験情報ダイアログの項目の初期値を設定することが出来る。
  • 実験情報ダイアログの項目名から、その値を利用するためのBuilder内における表記に変換することが出来る。
  • 条件ファイル名を実験情報ダイアログの項目から取り出してループのプロパティに設定することが出来る。
  • 実験情報ダイアログの項目をドロップダウンメニューに出来る。
  • 多重繰り返しを挿入できる。
  • 多重繰り返しの内側のループで条件ファイル名を外側のループの条件ファイルから読み込んで設定することができる。

14.5.5. 第5章

  • 変数の役割を説明できる。
  • 関数の役割を、引数、戻り値という用語を用いながら説明できる。
  • Builderで使用できる数学関数を挙げることが出来る
  • 関数の引数に別の関数の戻り値を使うことが出来る。
  • 条件ファイルから読み込んだパラメータ値を関数の引数に使うことが出来る。
  • Pythonの算術演算子8つ挙げてその働きを説明することが出来る。
  • 現在のルーチンが開始してから経過した時間を保持しているBuilderの内部変数を答えられる。
  • 現在のルーチンが開始してから描画したフレーム数を保持しているBuilderの内部変数を答えられる。
  • 現在のルーチンが開始してから経過した時間の値を用いて、時間の経過とともに色や位置が変化する実験を作成することが出来る。
  • 実験情報ダイアログに入力されたデータの型を答えることが出来る。
  • データを整数型、浮動小数点型、文字列型、リストに変換することが出来る。
  • 実験情報ダイアログを用いて刺激の大きさや位置などの値を実験開始時に指定するように実験を作ることが出来る。

14.5.6. 第6章

  • 画像ファイルをスクリーン上に提示することが出来る。
  • 画像ファイルを上下、または左右に反転させて提示することが出来る。
  • 画像ファイルや条件ファイル等の位置を絶対パスで指定することが出来る。
  • 画像ファイルや条件ファイル等の位置を相対パスで指定することが出来る。
  • OSによるパスの書き方の違いを説明できる。
  • 複数のOSで実行できるBuilderの実験を作成するためにはどの記法でパスを記述したらよいか答えられる。
  • N件法の尺度をスクリーンに提示して反応を記録することが出来る。
  • アナログ尺度をスクリーンに提示して反応を記録することが出来る。
  • カテゴリカルな尺度をスクリーンに提示して反応を記録することが出来る。
  • 複数の文字列を結合した文字列を得る式を書くことが出来る。
  • 条件ファイルや実験情報ダイアログから読み込んだ文字列が組み込まれた文を提示することが出来る。
  • Textコンポーネントの [文字列] にPythonの式を書いた時に、表示する文字列を改行させることが出来る。
  • 条件に応じて処理を分岐させるPythonコードを書くことが出来る。
  • 数値の大小や一致・不一致に応じて処理を分岐させることが出来る。
  • 文字列の一致・不一致に応じて処理を分岐させることが出来る。
  • Pythonの比較演算子を6つ挙げてそれらの働きを説明することが出来る。
  • Pythonの論理演算子を3つ挙げてそれらの働きを説明することが出来る。
  • 変数に値を代入する式を書くことが出来る。
  • x+=7、x**=2といった二項算術演算子と代入演算子を組み合わせた式の働きを説明することが出来る。
  • Codeコンポーネントを用いてPythonのコードをルーチンに配置することができる。
  • Codeコンポーネントのプロパティである [実験開始時][Routine開始時][フレーム毎][Routine終了時][実験終了時] の違いを説明できる。
  • クラスとインスタンスの違いを説明することができる。
  • データ属性とは何かを説明することができる。
  • 変数xに格納されたインスタンスのデータ属性fooに値を代入したり値を参照したりするときのPythonの式を書くことができる。
  • BuilderKeyResponseのデータ属性を参照して押されたキー名を知ることが出来る。

14.5.7. 第7章

  • Polygonコンポーネントを使って線分を描画することが出来る。
  • Polygonコンポーネントを使った線分の長さ、角度が決まっている時に、その端点が指定された座標に一致するように 位置 [x, y] $ を指定することが出来る。
  • 3通り以上の分岐を処理させるif文を書くことができる。
  • リストの中にある要素が含まれているか否かで処理を分岐させることができる。
  • Codeコンポーネントからルーチンを終了させることができる。
  • TrialHandlerのインスタンスから現在ループの何回目の繰り返しを実行中かを取得できる。
  • TrialHandlerのインスタンスから現在ループの繰り返し回数が残り何回かを取得できる。
  • TrialHandlerのインスタンスから現在ループの総繰り返し回数を取得できる。
  • 上記3項目の値を使って「現在第n試行」、「残りn試行」、「全n試行」といったメッセージをスクリーン上に提示できる。
  • Codeコンポーネントを用いて、実験記録ファイルに出力するデータを追加することが出来る。
  • 現在実行中の繰り返しのn回前、n回後に使われるパラメータを取得するコードを記述することが出来る。
  • if文の中に入れ子上にif文を組み込んだコードを記述することができる。
  • ifやelifの条件式が真であった時に実行されるコードがどこまで続いているかを判断することができる。if、elifの条件式が全て偽でelseまで進んだときに実行されるコードがどこまで続いているかを判断することができる。
  • 一連のif-elif-elseの組み合わせがどこまで続いているかを判断することができる。
  • 論理演算子を用いて複数の条件式をひとつの式にまとめることができる。

14.5.8. 第8章

  • ルーチン終了時のマウスカーソルの位置およびマウスのボタンの状態を記録することが出来る。
  • ボタンが押された時点のマウスカーソルの位置およびマウスのボタンの状態を記録することが出来る。
  • 実験記録ファイルにマウスカーソルの座標やボタンの状態がリストとして複数件出力されている時に、個々のデータの座標値やその取得時刻を判断できる。
  • Codeコンポーネントでマウスカーソルの座標を取得するコードを記述できる。
  • Codeコンポーネントでマウスのボタンの状態を取得するコードを記述できる。
  • getPressed()メソッドを用いて取得したマウスのボタンの状態を示すリストの各要素がどのボタンに対応しているか答えられる。また、リストの各要素の値とボタンの状態の関係を答えられる。
  • Codeコンポーネントを用いずにマウスカーソルの位置に刺激を描画することが出来る。
  • シーケンス型のデータから要素をひとつ取り出して他の変数に代入したり関数の引数に使ったりすることが出来る。
  • シーケンス型データの前からN番目の要素を取り出す時の式を答えられる。
  • シーケンス型データの後ろからN番目の要素を取り出す時の式を答えられる。
  • 関数を用いてシーケンス型データに含まれる要素数を調べることが出来る。
  • シーケンス型のデータが入れ子構造になっている時に、要素であるシーケンス型データや、さらにその要素を取り出すことが出来る。
  • 文字列の中からN番目の文字を取り出して変数に代入したり関数の引数に使ったりすることが出来る。
  • [1,2,3][0]といった具合に[から始まって、]の後に[ ]演算子が続く式を評価した時の値を答えられる。
  • ある座標がPolygonコンポーネントで描画した多角形の内側に含まれているか判定するコードを書くことができる。
  • Polygonコンポーネントで描画した二つの多角形に重なっている部分があるが判定するコードを書くことができる。
  • マウスカーソルの位置を設定するコードを書くことができる
  • マウスカーソルの表示ON/OFFを切り替えるコードを書くことができる。
  • ある変数に格納されている値だけが異なる処理を繰り返し実行しなければいけない時に、for文を用いて記述することが出来る。
  • for文を継続する必要がなくなった時に直ちに終了させることが出来る。
  • for文で現在処理中の要素に対してこれ以上処理を続ける必要がなくなった時に、次の要素の処理へ直ちに移行するコードを書くことができる。
  • ルーチン内に含まれるコンポーネントの一覧を格納したBuilderの内部変数の名前を答えられる。
  • オブジェクトがある名前のデータ属性(たとえば'foo')を持っているか判別するコードを書くことができる。
  • ある文字列が別の文字列の中に含まれているか(例えば'psych'が'psychophysics'に含まれるか)判別するコードを書くことができる。
  • リストにデータを追加するメソッドであるappend( )とextend( )の違いを説明できる。
  • 中身が空のリストを作成することが出来る。
  • ルーチン内でのみ必要なデータを蓄積するリストを作成するコードはどの時点で初期化すべきか判断できる。
  • %演算子を用いてNフレーム(N=2,3,4,…)に1回の頻度で処理を実行させることが出来る。
  • 2次元配列の要素のインデックスから、その要素が何行目、何列目にあるかを計算することが出来る。
  • 関数やメソッドの戻り値に直接[ ]演算子を適用した式を理解できる。
  • Polygonコンポーネントで描画した多角形にマウスカーソルを重ねてクリックするとルーチンの終了や反応の記録などの処理を行うコードを書くことができる。

14.5.9. 第09章

  • 視覚刺激をクリックしてルーチンを終了するようにMouseコンポーネントを設定できる。
  • trial-by-trial記録ファイルからクリックされた刺激の名前を読み取ることが出来る。
  • trial-by-trial記録ファイルにクリックした刺激の不透明度、回転角度、位置、サイズ、色を出力するように設定することが出来る。
  • Imageコンポーネントの下にクリック可能な視覚刺激を配置して、画像上の特定の領域をクリックするとルーチンが終了するようにすることが出来る。
  • Sliderコンポーネントで縦向き、横向きの尺度を描画できる。
  • Sliderコンポーネントで数値を記録する尺度とカテゴリカルな値を記録する尺度を使い分けることが出来る。
  • Sliderコンポーネントでslider、rating、radioのスタイルを使い分けられる。
  • Sliderコンポーネントでマーカーを三角にする、ラベルを45度傾ける、モノクロで描画するといったスタイルの変更ができる。
  • Sliderコンポーネントで刺激の不透明度、回転角度などの数値をリアルタイムに調整することが出来る。
  • Sliderコンポーネントで刺激の色名などのカテゴリカルな値をリアルタイムに調整することが出来る。

14.5.10. 第10章

  • 無圧縮WAV形式の音声ファイルを再生できる。
  • 指定された周波数の音を鳴らすことが出来る。
  • 指定されたキーコードの音を鳴らすことが出来る。
  • 音声のボリュームを指定できる。
  • 音声ファイルの再生を指定された時刻に途中終了できる。
  • 様々な再生時間の音声ファイルの再生開始、終了に合わせて他のコンポーネントを開始または終了させることが出来る。
  • 短時間に複数のSoundコンポーネントを鳴らそうとした時に期待した結果が得られない理由を説明できる。
  • 異なるサンプリングレートの音声ファイルをひとつの実験で混ぜて使用してはいけない理由を説明できる。
  • 動画ファイルを拡大縮小して再生することが出来る。
  • 動画ファイルを音声なしで再生することが出来る。
  • Codeコンポーネントを使って動画の再生中のフレーム時刻を得ることが出来る。
  • Codeコンポーネントを使って動画の再生中のみ実行する処理を記述することが出来る。
  • 動画を途中から再生開始することが出来る。
  • 動画の再生開始位置を先頭から、または末尾からの秒数で指定することが出来る。
  • 動画の再生を一時停止、再開できる。
  • Codeコンポーネントで動画が一時停止中であることを条件に処理を分岐できる。
  • マウスでオブジェクトを「クリック」した際にボタンが押されている期間が複数フレームにわたる場合を考慮したコードを記述できる。

14.5.11. 第11章

  • Builderで階段法の実験を作成することが出来る。
  • Builderでinterleaved staircasesの手続の実験を作成することが出来る。

14.5.12. 第12章

  • 実験が開始してからの経過時間を得るコードを書くことが出来る。
  • ひとつの数値を8進数、10進数、16進数整数の書式で文字列に埋め込むことが出来る。
  • ひとつの浮動小数点数を10進数表記と指数表記の書式で文字列に埋め込むことが出来る。
  • 数値を文字列に埋め込む際に、指定した桁数の右寄せで埋め込むことが出来る。桁が足りない時に0で埋めることが出来る。
  • 数値を文字列に埋め込む際に、指定した桁数の右寄せ埋めで込むことが出来る。桁が足りない時に空白文字で埋めることが出来る。
  • 数値を文字列に埋め込む際に、指定した桁数の左寄せで埋め込むことが出来る。
  • 浮動小数点数を文字列に埋め込む時に、整数部の桁数と小数点以下の桁数を指定することが出来る。
  • 複数の値をひとつの文字列にそれぞれ書式を指定して埋め込むことが出来る。
  • 条件式がTrueである間処理を繰り返すPythonのコードを書くことが出来る。
  • Codeコンポーネントを用いて、ある条件を満たしたときに実行が中断される実験を作ることが出来る。
  • Codeコンポーネントを用いて、ある条件を満たしたときに実行がスキップされるルーチンを作ることが出来る。
  • ある条件に当てはまる時にループを実行しない実験を作成することが出来る。
  • ループを実行しない実験を作成した時のtrial-by-trial記録ファイルから、ループを実行しなかった時の記録を判別できる。

14.5.13. 第13章

  • テキストエディタを用いて適切な改行コード、文字コードでpsyexpファイルを開くことが出来る。
  • psyexpファイルをテキストエディタで開いて [名前] の値を検索して、コンポーネントのパラメータの定義を探し出すことが出来る。
  • psyexpファイルをテキストエディタで編集して、コンポーネントのパラメータを変更することが出来る。
  • psyexpファイルをテキストエディタで編集して、Builderで配置したコンポーネントをコピーして個数を増やすことが出来る。
  • low以上high未満の整数を範囲とする一様乱数のサンプルをひとつ得るコードを書くことが出来る。(low、highは整数)
  • 整数の一様乱数を用いて、試行毎に複数の値のリストからひとつの値を無作為に選択するコードを書くことが出来る。
  • range( )を用いて、0からn (n>0)までの整数を並べたリストを作成することができる。
  • range( )を用いて、mからn (n>m)までの整数を並べたリストを作成することができる。
  • range( )を用いて、mからnまで、sの間隔で整数を並べたリストを作成することができる。ただしm、nは互いに異なる整数、sは非0の整数である。
  • リストの要素を無作為に並べ替えることが出来る。
  • m個の要素を持つリストから、n個の要素(m>n)を重複なく無作為に抽出することが出来る。
  • ルーチンに配置された視覚刺激コンポーネントをスクリーン上に描画させないようにすることが出来る。
  • スライスを用いて、あるリストから連続する要素を抽出したリストを作り出すことが出来る。
  • リストの先頭から要素を抽出する場合のスライスの省略記法を用いることが出来る。
  • リストの末尾までの要素を抽出する場合のスライスの省略記法を用いることが出来る。