しばらく更新が途切れてしまいました。その間にPsychoPyもバージョンが1.80にアップして様々な機能が追加されたようです(詳細についてはChangelogを参照)。今回は新しく加わった機能も取り入れつつ、実験課題を作成してみましょう。
今回取り扱う課題は先行手がかり課題(precueing task; Posner, 1980)です。眼球運動を伴わない潜在的注意の存在を実験的に実証した実験パラダイムとして非常に有名です。これをPsychoPy上で再現してみましょう。
各試行は、まず3つの正方形が呈示されるところからスタートします。被験者は中央の正方形を見て、目を動かさないように教示されます。その後、いずれかの正方形が50 msの間明るく光ります。これが手がかり(cue)です。その一定時間の後、左右いずれかの正方形の中にターゲット(標的刺激;target)が出現します。被験者の課題は、このターゲットに対して出来るだけ早く反応することです(反応キーはスペースキーとします)。
この実験では2つの要因が操作されます。一つは、手がかりとターゲットの位置関係です。手がかりが与えられた正方形の中にターゲットが出現する試行は有効試行(valid trial)と呼ばれます。手がかりが与えられた正方形とは逆側にターゲットが出現する試行は無効試行(invalid trial)と呼びます。また中央の正方形に手がかりが与えられた試行は中立試行(neutral trial)と呼びます。
もう一つの要因は、手がかりとターゲットの呈示タイミングのズレの大きさです。SOA(stimulus onset asynchrony)と呼ばれます。これを操作することによって視覚的注意処理の時間的な性質を検討します。今回の実験では、100 ms, 200 ms, 400 ms, 800 msの4種類を設定することにしましょう。
試行の割合ですが、手がかりについては3種類の試行は等確率で出現するものとします。SOAに関しても同様です。またこれらに加えて、手がかりが与えられたあとにターゲットが出現しないキャッチ試行を設けます。これは被験者が画面をよく見ないで反応することを防ぐためです。全体の10%程度の試行数をこれに充てることにします。
ここまで決まれば早速実験プログラムの作製に取りかかります。
まず「Rotines」に以前にはなかった赤い帯が見えると思います。これはバーション1.78.00から導入されたStatic Componentです。例えば大きな画像を読み込むなど時間の掛かる処理を各試行がスタートする前に行うときに使うものです。実験中にずっと呈示されている注視点などを描画するときにも使うようです。
さて、それでは実験をデザインしていきますが、その前準備として、一つ設定を変えておきます。画面上のアイコンからセッティングを選び、Experiment Settingsウィンドウを表示させてください。ここでは色々な設定が行えますが、この時点では一つだけ設定を変えておきます。Screenタブを選んで、Unitsの値を「pix」に変更しておいてください。PsychoPyでは刺激の大きさなどを指定するときに様々な単位が使え、例えば「deg」を選択すると視角(visual angle)で値を指定することもできます。ただし、その場合には別途スクリーンの大きさや視距離などを設定する必要があります。この講座の中ではひとまず刺激のパラメータはすべてピクセル数(pix)で指定しますので、ここで予め設定しておきます。設定について詳しく知りたい人は、愛媛大学十河先生のページで詳しく説明されていますので、そちらを参照してください(Link)。
さて、それでは刺激画面の設定をしていきます。まず正方形は、こちらもバージョン1.78.00から導入されたPolygon (shape) Componentを使います。設定画面を開き、一つずつ値を設定していきましょう。まず画面右に呈示される四角形を作成するので、Nameは「rightRect」にします。呈示時間は実験開始時からずっと呈示されていますので、Startを0に、Stopの値は空白にしておきましょう。Fill colorは塗りつぶしの色なので背景色の$[0, 0, 0]に、Line Colorは白($[1, 1, 1])を指定します。Line widthは線の太さを表しますが、ひとまずここでは2にしておきましょう。重要なのは位置の設定で、Positionの値を[300,0]に指定します。これは画面中心から見てx軸方向に300ピクセル右に呈示するという意味です。左に呈示したい場合にはマイナスの値を指定します。正方形の大きさはひとまず150×150ピクセルとします。これを左・右・中央の3つ作成します。
次は手がかりを作ります。手がかりは正方形のいずれかを明るくするということなので、正方形の上に線を太くした同じ大きさの四角形を呈示することとします。呈示時間は50 msなので、Stopを「duration (s)」「0.05」に設定します。そのほかは先ほどの正方形と同じように設定しますが、Line widthは「10」を指定します。左右どちらに呈示されるかはまた後ほど設定するので、とりあえず現時点では右に呈示されるようにPositionは「[300, 0]」としておきます。
次はターゲットです。ターゲットもPolygon Componentで作りましょう。SOAは手がかりの出現タイミングからの時間ですから、例えばSOAが400 msの試行はStartの値が1+0.4=「1.4」となります。これも後で指定し直すので、ひとまず適当な値を入れておいてください。N Verticesの値を変えるとN角形を作ることが出来ます。この数を非常に大きくする円が作れるわけですね。好きな値を入れてください。またPositionも右側に呈示されるように「[300, 0]」としておきます。Sizeは「[10, 10]」ぐらいにしておきましょう。
次に反応取得をします。Keyboard Componentを設定しますが、ここではStartのタイミングを手がかりの呈示時点と合わせておきます。反応時間を取得するのであれば、本来はターゲットの呈示に合わせた方がよいのですが、ターゲットが出現しないキャッチ試行があること、また、ターゲットの提示前に間違えて反応してしまう予期反応もエラーとして記録したいので、今回はこのようにします(StopやStore correctの設定は後ほど行います)。
これで一試行の流れが設定完了しました。いったんファイルに適当な名前をつけて保存しましょう。くれぐれもフォルダ(親フォルダも含め)に日本語文字(2バイト文字)が含まれないようにしてください。