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

- お気に入り
- 実験として頻繁に使用する文字列や画像の呈示,キーボードやマウスによる反応を採取するためのコンポーネントがある
- 刺激
- 呈示する視覚・聴覚刺激のコンポーネントがあり,視覚刺激はある程度カスタマイズされたものがある
- 反応
- 反応を採取するための方法(キーボード,マウス,リッカートなど)が準備されている
- カスタム
- EEG
- アイトラッキング
1. 凝視点
凝視点を500 ms呈示する
【基本】
- 名前:刺激の名前を入力 ⇒ fixation
- 開始時刻:1試行の中で刺激の呈示を開始する時間を設定(最初からならば0) ⇒ 0.0
- 実行時間:刺激を呈示する時間を設定 ⇒ 0.5
- 文字列:呈示する文字列を入力 ⇒ +

2. ターゲット
赤を150 ms呈示する
【基本】
- 名前:刺激の名前を入力 ⇒ target
- 開始時刻:凝視点呈示(500 ms後)が終わってから呈示 ⇒ 0.5
- 実行時間:刺激を呈示する時間を設定 ⇒ 0.15
- 文字列:呈示する文字列を入力 ⇒ 赤

【外観】

3. 反応の取得
ターゲットが呈示されてから1200
ms反応を採取する(反応があれば終了)
- コンポーネントの中から「Keyboard」を選択する
【基本】
- 名前:反応の名前を入力 ⇒ key_resp
- 開始時刻:凝視点呈示(500 ms後)が終わってから測定開始 ⇒ 0.5
- 実行時間:測定を終える時間間隔を設定 ⇒ 1.2
- Routineを終了:反応があったときの挙動を設定 ⇒ ☑
- 検出するキー:反応に用いるキーをシングルコーテーションで囲い,複数あるときはコンマで区切る ⇒ ‘d’, ‘f’, ‘j’, ‘k’, ‘space’

【データ】
- 記録:記録するタイミングを設定 ⇒ 最初のキー

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

4. ブランク
反応後1000 msのブランク画面を呈示する
- 左下にある「Rutineを挿入」をクリック
- 新しいRoutineの名前 ⇒ blank

新たなタブで作成される
【基本】
- 名前:刺激の名前を入力 ⇒ blank_display
- 開始時刻:blankの中で最初に呈示 ⇒ 0.0
- 実行時間:刺激を呈示する時間を設定 ⇒ 1.0

◎刺激セットを組み込む
5. 刺激セットの設定
エクセルで刺激セットを作成する
- エクセルの1行目に変数名,2行目以降に中身を記述する
- 1列目:呈示する文字列 ⇒ 変数名:Word
- 2列目:呈示する色 ⇒ 変数名:Color
- 3列名:正答反応キー ⇒ 変数名:CorrectResp
- 4列目:刺激の適合性 ⇒ 変数名:Congruent

6. 刺激セットの読み込み1
5で作成した刺激をPsychopyに読み込み,反復数を設定する
- 「Loopを挿入」をクリックし,刺激セットを適応させる範囲(1試行の流れ)を設定

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

7. 刺激セットの読み込み2
読み込んだ刺激セットを各コンポーネントに反映させる
- 刺激セットで用いた変数名の前に「$」を付けることによって,コンポーネントに反映させることができる
- 例えば,呈示する文字列を反映させたいところで「$Word」と入力すると刺激セットの文字列をコンポーネントに反映させることができる
7.2. 反応取得の更新
【データ】
- 正答を記録 ⇒ ☑
- 正答に $CorrectResp を入力

◎フィードバック
8. フィードバックの設定
7.2.の結果に応じたコードを記述する
- 左下にある「Routineを挿入」をクリックし,「new」をクリック
- 新しいRoutineの名前 ⇒ feedback
- trialとblockの間にRoutineを設定(クリックする)
- 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
- ‘Correct!’
- 画面上に呈示したい文字列をシングルクォーテーションで囲う
- 3行目 else:
- 4行目 fb = ‘Error!’
- fb
- fbはこの場で作った任意の名前(ifの中で作ったもの)
- ‘Error!’
- 画面上に呈示したい文字列をシングルクォーテーションで囲う
9. フィードバック画面の設定
7.2.の結果に応じたフィードバックを呈示する
【基本】
- 名前:刺激の名前を入力 ⇒ fb_display
- 開始時刻:1試行の中で刺激の呈示を開始する時間を設定(最初からならば0) ⇒ 0.5(反応後にちょっとブランク)
- 実行時間:刺激を呈示する時間を設定 ⇒ 0.5
- 文字列:呈示する文字列を入力 ⇒ $fb
- 「繰り返し毎に更新」にする

◎教示
10. 教示の設定
教示画面を組み込む
教示画面をあらかじめ,JPGなどで準備しておき,適切なタイミングで,それを表示させる。
今回用いる教示画面は以下の通りである。
- 挨拶文【inst1.JPG】
- 課題の説明【inst2.JPG】
- 反応キーの説明【inst3.JPG】
- 課題のまとめ【inst14.JPG】
10.1. 刺激リストの作成
刺激を提示するときと同様に,エクセルで刺激リストを作る

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

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

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