◎1試行の流れを作成

0. コンポーネント

 Psychopyは呈示したい,あるいは測定したものに応じて,コンポーネントを選択する。例えば,文字列を呈示したいのであれば,「Text」を選択する。

  • お気に入り
    • 実験として頻繁に使用する文字列や画像の呈示,キーボードやマウスによる反応を採取するためのコンポーネントがある
  • 刺激
    • 呈示する視覚・聴覚刺激のコンポーネントがあり,視覚刺激はある程度カスタマイズされたものがある
  • 反応
    • 反応を採取するための方法(キーボード,マウス,リッカートなど)が準備されている
  • カスタム
    • コードの記入など細かい設定を行うことができる
  • EEG
    • 脳波の測定(別途機器が必要)
  • アイトラッキング
    • 眼球運動の測定(別途機器が必要)

1. 凝視点

凝視点を500 ms呈示する

  • コンポーネントの中から「Text」を選択する

【基本】

  • 名前:刺激の名前を入力 ⇒ fixation
  • 開始時刻:1試行の中で刺激の呈示を開始する時間を設定(最初からならば0) ⇒ 0.0
  • 実行時間:刺激を呈示する時間を設定 ⇒ 0.5
  • 文字列:呈示する文字列を入力 ⇒ 

2. ターゲット

を150 ms呈示する

  • コンポーネントの中から「Text」を選択する

【基本】

  • 名前:刺激の名前を入力 ⇒ target
  • 開始時刻:凝視点呈示(500 ms後)が終わってから呈示 ⇒ 0.5
  • 実行時間:刺激を呈示する時間を設定 ⇒ 0.15
  • 文字列:呈示する文字列を入力 ⇒ 

【外観】

  • 前景色:文字の色を設定 ⇒ red

3. 反応の取得

ターゲットが呈示されてから1200 ms反応を採取する(反応があれば終了)

  • コンポーネントの中から「Keyboard」を選択する

【基本】

  • 名前:反応の名前を入力 ⇒ key_resp
  • 開始時刻:凝視点呈示(500 ms後)が終わってから測定開始 ⇒ 0.5
  • 実行時間:測定を終える時間間隔を設定 ⇒ 1.2
  • Routineを終了:反応があったときの挙動を設定 ⇒ 
  • 検出するキー:反応に用いるキーをシングルコーテーションで囲い,複数あるときはコンマで区切る ⇒ ‘d’, ‘f’, ‘j’, ‘k’, ‘space’

【データ】

  1. 記録:記録するタイミングを設定 ⇒ 最初のキー

ここまで入力を終えると,以下のように時間軸で刺激のタイミングを見ることができる。

4. ブランク

反応後1000 msのブランク画面を呈示する

  • 左下にある「Rutineを挿入」をクリック
  • 新しいRoutineの名前 ⇒ blank

新たなタブで作成される

  • コンポーネントの中から「Text」を選択する

【基本】

  • 名前:刺激の名前を入力 ⇒ blank_display
  • 開始時刻:blankの中で最初に呈示 ⇒ 0.0
  • 実行時間:刺激を呈示する時間を設定 ⇒ 1.0

ここまで出来たら,名前を付けて保存

  • 「Stroop」など

◎刺激セットを組み込む

5. 刺激セットの設定

エクセルで刺激セットを作成する

  • エクセルの1行目に変数名,2行目以降に中身を記述する
    • 1列目:呈示する文字列 ⇒ 変数名:Word
    • 2列目:呈示する色 ⇒ 変数名:Color
    • 3列名:正答反応キー ⇒ 変数名:CorrectResp
    • 4列目:刺激の適合性 ⇒ 変数名:Congruent

  • 「StimSet」と名前を付けて保存

6. 刺激セットの読み込み1

5で作成した刺激をPsychopyに読み込み,反復数を設定する

  • 「Loopを挿入」をクリックし,刺激セットを適応させる範囲(1試行の流れ)を設定
    • 開始位置と終了位置を順番にクリック

  • 名前:ループの名前(自動作成)
  • Loopの種類:刺激セットの呈示順序 ⇒ random
  • 繰り返し回数:刺激セットの反復回数 ⇒ 2
  • 繰り返し条件:刺激セットの読み込み ⇒ フォルダマークをクリックし,StimSet.xlsxを指定

7. 刺激セットの読み込み2

読み込んだ刺激セットを各コンポーネントに反映させる

  • 刺激セットで用いた変数名の前に「$」を付けることによって,コンポーネントに反映させることができる
  • 例えば,呈示する文字列を反映させたいところで「$Word」と入力すると刺激セットの文字列をコンポーネントに反映させることができる

7.1. ターゲットの更新

  • targetをクリックする

【基本】

  • 文字列の部分を $Word に変更
  • 文字列の横の更新を「繰り返し毎に更新」に変更

【外観】

  • 前景色の部分を $Color に変更
  • 文字列の横の更新を「繰り返し毎に更新」に変更

7.2. 反応取得の更新

  • key_respをクリックする

【データ】

  • 正答を記録 ⇒ 
  • 正答に $CorrectResp を入力

◎フィードバック

8. フィードバックの設定

7.2.の結果に応じたコードを記述する

  • 左下にある「Routineを挿入」をクリックし,「new」をクリック
  • 新しいRoutineの名前 ⇒ feedback
  • trialとblockの間にRoutineを設定(クリックする)
  • カスタムの中から「Code」を選択する
  • Routine開始時のタブを選択
  • 左下に以下のようなコードを入力
if key_resp.corr == 1:
  fb = 'Correct!'
else:
  fb = 'Error!'

8.1. コードの説明

  • 1行目:条件文(最後に「:」)
  • 2行目:条件文が当てはまるときの処理(タブでずらして記述)
  • 3行目:条件文以外(最後に「:」)
  • 4行目:条件文が当てはまらないときの処理(タブでずらして記述)

ここで記述したいことを言語化すると,もし反応が正しければ(1行目),「Correct!」と表示させ(2行目),もし反応が正しくなければ(3行目),「Error!」と表示させる。これらを細かく分解すると以下のようになる。

  • 1行目 if key_resp.corr == 1:
    • if
      • もし
    • key_resp.corr == 1:
      • 反応(key_resp)の正答番号(.corr)が正答(1)ならば(:
        • key_respは,3.を使用した名前
        • .corrは,ドットの前のものの正答番号を呼び出し
        • 1は正答だったときの番号,0は誤答だったときの番号
  • 2行目 fb = ‘Correct!’
    • fb
      • fbはこの場で作った任意の名前(後ほど使用)
    • ‘Correct!’
      • 画面上に呈示したい文字列をシングルクォーテーションで囲う
  • 3行目 else:
    • else:
      • ifの内容が当てはまらないならば
  • 4行目 fb = ‘Error!’
    • fb
      • fbはこの場で作った任意の名前(ifの中で作ったもの)
    • ‘Error!’
      • 画面上に呈示したい文字列をシングルクォーテーションで囲う

9. フィードバック画面の設定

7.2.の結果に応じたフィードバックを呈示する

  • コンポーネントの中から「Text」を選択する

【基本】

  • 名前:刺激の名前を入力 ⇒ fb_display
  • 開始時刻:1試行の中で刺激の呈示を開始する時間を設定(最初からならば0) ⇒ 0.5(反応後にちょっとブランク)
  • 実行時間:刺激を呈示する時間を設定 ⇒ 0.5
  • 文字列:呈示する文字列を入力 ⇒ $fb
  • 繰り返し毎に更新」にする

◎教示

10. 教示の設定

教示画面を組み込む

教示画面をあらかじめ,JPGなどで準備しておき,適切なタイミングで,それを表示させる。 今回用いる教示画面は以下の通りである。

  1. 挨拶文【inst1.JPG
  2. 課題の説明【inst2.JPG
  3. 反応キーの説明【inst3.JPG
  4. 課題のまとめ【inst14.JPG

10.1. 刺激リストの作成

 刺激を提示するときと同様に,エクセルで刺激リストを作る

10.2. 刺激の順序を作成

下記の図の手順で,刺激順序を設定していく。

10.3. 刺激を設定する

刺激の中からImageを選択し,以下のように設定する。

反応の中からKeyboardを選択し,以下のように設定する。