大学の授業準備の際にPCIbexを使おうとしたところ、 エラーになって非常に困ったので エラーの概要と解決方法、原因の考察のログを残しておきます。 学期期間中かつToDoが鬼のように溜まっているので 推敲なしの書きなぐりですがご容赦ください。

エラーの概要

今回対象とするのは、 PCIbexのEmpty projectから実験を示した場合に起こるエラーの一つです。

キャプション

ミニマルな再現のためのケースとして、以下のような容認性判断課題 のControllerを作成しています。

キャプション

なお全体のスクリプトは以下です。

ただ、このスクリプトを実行させてもIbex部分が実行されることはありません。 Ibex部分しかない場合はTrialがないというエラーになりますが、 ある場合はただただスキップされてしまいます。 このエラーを探るため開発者ツールを見てみると、 newController is not defined というエラーが出ています。

キャプション

これがエラーの概要です。

解決方法

解決方法はシンプルです。 左下にModulesがあるので、 そこのPennController.jsを機能するバージョンで置き換えます。

キャプション

機能するファイルとしては、少なくとも2023/10/13の段階では、 以下のURLにある PennController.js が有効に思えます。

https://github.com/PennController/penncontroller/blob/master/releases/2.0/PennController.js

このURLにアクセスすると、以下のような画面に遷移すると思います。 コードを表示しているペインの右上に Raw, Copy, Download を示す ボタンがあるのが見えると思います。 このダウンロードボタンを押すと、機能するバージョンをダウンロードできます。

キャプション

ダウンロードしたファイルを、 先ほど言及した左下のModulesにアップロードします。 ダウンロードしたファイルをドラッグ・アンド・ドロップしても良いですし、 アップロードボタンから選択しても良いでしょう。 個人的にはブラウザのダウンロードしたファイルを確認する画面を表示させ、 そこから引っ張ってドロップするのが一番簡単に思えます。

さてドロップしたりアップロードすると、 既存のファイルを置き換えても良いかと問われます。 置き換えることが目的なので、Yesを選択しましょう。 これで作業は終わりです。 もし問われない場合は、ファイル名がPennController.jsになっていない 可能性があるので注意しましょう。 ファイル名はPennController.jsでなければなりません。

キャプション

これで所望の挙動を得られました。

キャプション

原因の考察

JavaScriptは詳しくないのでわからないのですが、 上手く行くケースと上手く行かないケースのスクリプトを ざっと眺めてみたところ、_AddElementType("Controller", ...) という記述の有無に差があることに気づきました。 上手く行かないケースでは、この記述が無いようです。

キャプション

恐らくですが、これで”Controller”にまつわる 機能を追加しているのでしょう。 時間ができたらよく調べてみます。