付録 ===================================================== 本文未解説コンポーネント --------------------------------------------- PsychoPy Builder 3.0.5で利用できるコンポーネントのうち、本文で取り上げなかったものの概要を示します。 Patchコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 画像ファイルや縞模様などを描画します。このコンポーネントが使用しているPsychoPyのPatchStimが廃止(deprecated)となっており、過去にこのコンポーネントを使用して作成された実験をサポートするために残されているものと思われます。新しく実験を作成する時にはImageコンポーネントまたはGratingコンポーネントを使うことをお勧めします。 PatchコンポーネントのプロパティはImageコンポーネントおよびGratingコンポーネントの対応するプロパティを参照してください。 Apertureコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 画面を「穴」で切り抜くコンポーネントです。このコンポーネントはルーチンペインにおける描画順序の影響を受けません。つまり、Apertureコンポーネントの上に他の刺激を重ね書きしようとしてもApertureコンポーネントに切り抜かれてしまいます。 **サイズ $** 「穴」の直径をしめす値を指定します。他のコンポーネントの **サイズ [w, h] $** と異なり幅と高さを別々の値にすることはできません。 **位置 [x, y] $** 刺激の中心のX座標とY座標を表す値を指定します。**[単位]** の設定に従います。 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フレーム毎に移動する距離を正の実数で指定します。 **[単位]** に従います。 EnvelopeGratingコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 変調されたグレーティングを描くコンポーネントです。詳細は省略します。 Noiseコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 様々なノイズ画像を描くコンポーネントです。詳細は省略します。 cedrusButtonBoxコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Cedrusの反応ボタンボックスを用いて反応を記録するコンポーネントです。詳細は省略します。 ioLabsButtonBoxコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ioLabs Systems製のボタンボックスを用いて反応を記録するコンポーネントです。詳細は省略します。 Microphoneコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ マイクから音声を記録します。 **ステレオ** マイクがステレオか否かを指定します。 Joystickコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ジョイスティックで反応を記録するコンポーネントです。Mouseコンポーネントと同じような使い方が出来ます。 **[ボタン押しでRoutineを終了]** Mouseコンポーネントと同様、「全てのクリック」と「有効なクリック」を選べます。 **[ジョイスティックの状態を保存]** Mouseコンポーネントと同様です。:numref:`第%s章 ` 参照。 **[時刻の基準]** Mouseコンポーネントと同様です。:numref:`第%s章 ` 参照。 **[クリック可能な視覚刺激 $]** Mouseコンポーネントと同様です。:numref:`第%s章 ` 参照。 **[クリック時に保存するパラメータ]** Mouseコンポーネントと同様です。:numref:`第%s章 ` 参照。 **[デバイス番号 $]** 複数のジョイスティックを接続している場合に、それぞれを識別するための番号を指定します。番号はシステムに認識されている順番に0, 1, 2...です。 **[検出するボタン $]** 押されていることを検出するボタンをカンマ区切りで番号で指定します。ボタンと番号の対応は製品によって異なりますので、各自で確認してください。 Pumpコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Qmixライブラリ対応のシリンジユニットを制御するコンポーネントです。Python2には対応していないため、Python2ベースのPsychoPyを使用している時には表示されません。詳細は省略します。 Unknownコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 新しいバージョンのBuilderで追加されたコンポーネントを使った実験を古いバージョンのBuilderで開いた時など、使用中のBuilderで利用できないコンポーネントが実験に含まれてる場合があります。このような時、利用できないコンポーネントがUnknownコンポーネントとして表示されます。 実験を作成する際にこのコンポーネントを配置しても何も起きません。 Variableコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ユーザー変数を追加するコンポーネントです。Codeコンポーネントでユーザー独自の変数を使用する場合とほぼ同じですが、ルーチンペイン上に表示されるので、自分が作った実験を再利用するときや、共同研究者や学生などのために実験を作成したときに、どのような変数が独自に用いられているのかがわかりやすいという利点があります。 **実験開始時の値 $** 実験開始に設定する値を指定します。 **Routine開始時の値 $** ルーチンが開始する時に設定する値を指定します。 **フレーム更新開始時の値 $** 各フレームの処理のたびに設定する値を指定します。 **実験開始時の値を保存** 実験開始時の値を保存するときにチェックします。 **Routine開始時の値を保存** Routine開始時の値を保存するときにチェックします。 **フレーム更新時の値を保存** フレーム更新中の値を保存するか否かについて、「なし」、「最初」、「最後」、「すべて」のいずれかから選びます。 **Routine終了時の値を保存** ルーチン終了時の値を保存するときにチェックします。 **実験終了時の値を保存** 実験終了時の値を保存するときにチェックします。 ParallelOutコンポーネント ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ パラレルポートからのトリガー出力を行うためのコンポーネントです。 **ポートアドレス** (**Port ddress**) パラレルポートのアドレスを指定します。PsychoPy設定ダイアログの「一般」タブの「パラレルポート」に列挙されている値およびLabJack U3の中から選択します。 **開始時データ $** (**Start data $**) コンポーネントの開始時刻に送信する値を指定します。Noneなら値を送信しません。 **終了時データ $** (**Stop data $**) コンポーネントの終了に送信する値を指定します。Noneなら値を送信しません。 **スクリーンに同期** (**Sync to screen**) データの送信と画面の更新を同期させるか否かを指定します。 予約語 ---------------------------------------------- .. psychopy.experiment.exports.NamSpace参照 Pythonの予約語 (Python 3.7) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Pythonインタプリタを起動してkeywordをimportすると、keyword.kwlistというリストにPython予約語の一覧が格納されます。以下にPython3.7の予約語を示します。これらの語はBuilderにおいて **[名前]** や変数名として使用することはできません。 .. csv-table:: 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   Builderの予約語(3.0.5) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 以下の語はBuilder内で使用されているモジュール名および定数名です。これらの語はBuilderにおいて **[名前]** や変数名として使用することはできません(__から始まる語はそもそも使うべきではないので省略しています)。 .. csv-table:: 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において **[名前]** や変数名として使用することはできません。 .. csv-table:: 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では警告が出ませんが、 **[名前]** や変数名として使用しない方が望ましいと思われます。 .. csv-table:: __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 Builderの内部変数(3.0.5) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 以下の語はBuilder(バージョン3.0.5)の内部変数として予約されています。 これらの語はBuilderにおいて **[名前]** や変数名として使用することはできません。 .. tabularcolumns:: |p{12zw}|p{30zw}| .. csv-table:: :header: "予約語", "概要" :widths: 20, 80 :class: longtable \_thisDir, Builderを実行するときにカレントフォルダをpsyexpファイルに移動するために使用されます。 buttons, 最後に取得したマウスのボタンの状態を示すリストが格納されています。 component, 予約されています。 continueRoutine, 実行中のルーチンを継続するか否かを示す真偽値が格納されています。→ :numref:`第%s章 ` currentLoop, 本書では解説しなかったloopTypeのstaircase、interleaved staircasesを使用したときに使用されます。 dlg, expInfoダイアログを作成するために使用します。 expInfo, expInfoダイアログの項目と値が辞書オブジェクトとして格納されています。→ :numref:`第%s章 ` 、:numref:`第%s章 ` endExpNow, ESCキーによる実験の中断を有効にしているときに、この変数を利用してESCキー以外のキーで実験を終了できます。 expName, 実験設定ダイアログの[Experiment name]に入力した実験名が格納されています。 filename, 各種実験記録ファイルやログファイルのファイル名を生成するために利用されます。 frameDur, フレームレートの実測値を保持しています。計測に失敗した場合は1/60secにセットされます。 frameN, 現在のフレーム番号を格納しています。→ :numref:`第%s章 ` globalClock, 実験開始からの経過時間を計測するためのpsychopy.core.Clockのインスタンスが格納されています。→ :numref:`第%s章 ` key_resp, 予約されています。 KeyResponse, 予約されています。 level, 本書では解説しなかったloopTypeのstaircase、interleaved staircasesを使用したときに使用されます。 logFile, ログファイルを作成するためのpsychopy.logging.LogFileのインスタンスが格納されています。 paramName, 本書では解説しなかったloopTypeのinterleaved staircasesを使用したときに使用されます。 routineTimer, ルーチン終了までの残り時間を計測するためのpsychopy.core.CountdownTimerのインスタンスが格納されています。 t, ルーチンが開始してからの経過時間を格納しています。→ :numref:`第%s章 ` theseKeys, 最後に取得したキーの状態を示すリストを格納しています。→ :numref:`第%s章 ` thisComponent, 現在処理中のコンポーネントに対応するインスタンスが格納されています。 thisExp, フローの制御ややデータの保存に関与するpsychopy.data.ExperimentHandlerのインスタンスが格納されています。 win, 刺激提示スクリーン本体であるpsychopy.visual.Windowのインスタンスを格納しています。 x, 最後に取得したマウスカーソルのX座標を格納しています。Mouseコンポーネントの **マウスの状態を保存** の設定によって単独の値であったりリストであったりします。 y, 最後に取得したマウスカーソルのY座標を格納しています。Mouseコンポーネントの **マウスの状態を保存** の設定によって単独の値であったりリストであったりします。 以上に加えて、以下の語は正常なルーチンの実行に必須の変数名と一致するのでBuilderにおいて **[名前]** や変数名として使用することはできません。 .. csv-table:: :widths: 36, 64 trialComponents (trialはルーチン名), 当該ルーチンでフレーム毎に処理する必要があるコンポーネントのインスタンスを並べたリストが格納されています。→ :numref:`第%s章 ` trialClock (trialはルーチン名), 当該ルーチンが開始されてからの経過時間を計測するpsychopy.core.Clockのインスタンスが格納されています。→ :numref:`第%s章 ` ログファイル --------------------------------------------- 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 0)までの整数を並べたリストを作成することができる。 - range( )を用いて、mからn (n>m)までの整数を並べたリストを作成することができる。 - range( )を用いて、mからnまで、sの間隔で整数を並べたリストを作成することができる。ただしm、nは互いに異なる整数、sは非0の整数である。 - リストの要素を無作為に並べ替えることが出来る。 - m個の要素を持つリストから、n個の要素(m>n)を重複なく無作為に抽出することが出来る。 - ルーチンに配置された視覚刺激コンポーネントをスクリーン上に描画させないようにすることが出来る。 - スライスを用いて、あるリストから連続する要素を抽出したリストを作り出すことが出来る。 - リストの先頭から要素を抽出する場合のスライスの省略記法を用いることが出来る。 - リストの末尾までの要素を抽出する場合のスライスの省略記法を用いることが出来る。