プレーヤーを制作トラッカーに接続し、そこからプレイリストを読み込み、レビューのノートをパブリッシュします。対応は Bernard Engine、Kitsu、ftrack、Flow Production Tracking です。
制作トラッカーは、作品のショット、バージョン、タスクの一覧を保持しています。Bernard Review は、トラッカーからレビュー対象のプレイリストを読み込み、ノートと注釈付きフレームをショットごとに送り返せます。自動で動くものはありません。やり取りはすべて、クリックまたはスクリプトのコマンドで行います。
Bernard Engine は、Bernard Review の発行元である AArts Lab の制作トラッカーです。別製品として別売りで、近日オープンソースになる予定です。
このバージョンでは、Review Notes タブの Tracker リストの先頭に Bernard Engine (coming soon) が表示されますが、まだ選択できません。Bernard Engine への直接パブリッシュは近日対応予定です。それまでは、Bernard Engine に接続されたパイプラインが、スクリプトを通じてプレーヤーとやり取りします。
.bpl ファイルで行います。各クリップにトラッカーの識別子(x_tracking ブロック)を持たせます。詳細は連携にあります。
File > Tracker... で Tracker ウィンドウが開きます。最初はフローティングで、ほかのパネルと同じようにドッキングできます。トラッカーへの呼び出しは独立して実行されます。プレーヤーがネットワークを待つことはなく、Cancel で実行中の呼び出しを止められます。

サイトとは、トラッカーと、そこでのあなたのアカウントのことです。Add で種類を尋ねられ、続いて次の項目を入力します。
| 種類 | 項目 |
|---|---|
| Kitsu | サイトのアドレス、メールアドレス、パスワード |
| ftrack | サイトのアドレス、API ユーザー、API キー |
| Flow | サイトのアドレス、スクリプト名、スクリプトキー |
各項目のツールチップに、どこで確認できるかが書かれています。Flow では Admin > Scripts > + Script(キーは、スクリプトの作成時に 1 度しか表示されないので、そのときにコピーしてください)、ftrack では My Account > API key、Kitsu では、サイトへのサインインに使うメールアドレスとパスワードです。
すべての種類に共通する項目:プロキシ、独自の認証局を持つスタジオ向けの認証局ファイル、Path map(スタジオのパスと、それが Windows、Linux、macOS でどうなるか)、Status map(プレーヤーのステータス、pending、approved、not approved と、それぞれに対応するトラッカー側のステータス)。
アドレスは https:// で始まる必要があります。http:// は、このマシン自身(localhost)に向けた場合だけ受け付けられます。たとえば、テスト用トラッカーへの SSH トンネルです。
シークレット。 パスワードやキーの欄は伏せ字になります。Remember にチェックを入れると、トラッカーが受け入れたあとに限り、シークレットはシステムの資格情報ストア(Windows の資格情報マネージャー、Linux の Secret Service、macOS のキーチェーン)に保存されます。ストアがない場合、パネルには stored without encryption と表示されます。シークレットは、あなたのプロファイル内の、あなただけが読めるファイルに保存されます。パイプラインは BERNARD_TRACKER_<ID>_SECRET 変数(サイト名を大文字にしたもの)でシークレットを渡すこともでき、こちらが優先されます。その場合、パネルには secret from the environment と表示されます。サイトのファイル trackers.json には、シークレットは一切含まれません。
Save & Test はサイトを保存して接続します。Test は再接続し、トラッカーが認識しているユーザーまたはエラーを表示します。Forget はサイトとそのシークレットを削除します。
プロジェクトを選び、続いてプレイリストを選びます。フィルターで一覧を絞り込めます。プレビューには、各クリップのメディアがどこにあるかが表示されます。local(トラッカーが示したパス)、mapped(そのパスを Path map で変換したもの)、not local のいずれかです。Replace はプレイリストを置き換え、Append は末尾に追加します。
メディアがこのマシンにないクリップは、識別子とともに保持され、パブリッシュ可能なままです。ただし、開かれることも、書き出されることも、セッションのゲストに送られることもなく、再生ではスキップされます。
プレビュー。 読み込み中には何もダウンロードされません。一部のショットがこのマシンにない場合は、読み込みのあとに 1 つの質問が表示されます。3 shots are not on this machine (4.5 MB). Download All は、プレイリストの順に 1 つずつ、何も再生していないときにだけ取得し、各ショットは届き次第再生できます。Later は何もダウンロードしません。Kitsu、ftrack、Flow がメディアをホストしている場合は、Download preview ボタンで 1 つのショットをプロファイルに取得することもできます。取得したものは、既定で 7 日間保持されます(Edit > Preferences... > Cache & Performance > Keep downloaded previews (days))。2 GB を超えるプレビューは受け付けられません。Flow では、Version にアップロードされたムービー(Uploaded Movie フィールド、sg_uploaded_movie。別の名前は、サイトの uploaded_movie フィールドキーで設定します)が対象です。これは、Version のパス(Path to Movie、Path to Frames、Path map 適用後)がこのマシンにない場合にのみ使われます。
インストーラーは bernardreview:// リンクを登録します(Windows:インストール先専用の Software\Classes の下に登録され、アンインストーラーが削除します。Linux:プレーヤーのデスクトップエントリの x-scheme-handler/bernardreview タイプ)。Flow の管理者は、Flow で一度だけエントリを追加します。Admin > Action Menu Items で新しい項目を作り、URL は bernardreview://flow、Entity Types は Version と Playlist、タイトルは Open in Bernard Review にします(Flow が自身のデータをアドレスに付加するので、ほかに設定するものはありません)。すると、バージョンまたはプレイリストを右クリックしたときにこのエントリが表示されます。ブラウザーは、Bernard Review を開いてよいかを 1 回だけ尋ねます。
Kitsu から。 Kitsu のエントリは custom action です(管理者メニューの Custom Actions ページ)。タスクが選択されているとき(Shots、Assets などのページ)にのみ表示され、Playlists ページには表示されません。Kitsu は選択内容を隠しフォームとして送りますが、bernardreview:// のアドレスではそれを運べません。そのため、カスタムアクションの URL は小さな中継ページで、フォームを bernardreview://kitsu?entity_type=Task&selected_ids=<the tasks>&project_id=<the project>&server_hostname=<your Kitsu's host> に変換し、何も保持しません(Kitsu が付加するメールアドレスは破棄してください)。選択された各タスクは、選択順に最新のプレビューとして開き、先頭のものが選ばれます。それ以外は Flow と同様です(ここで設定済みの Kitsu サイト、Replace / Append、Download preview)。中継ページ: Bernard Review のリレーサーバーが提供する予定です。自分でホストしたいスタジオは tools/kitsu_relay.py(1 ファイル、Python 標準ライブラリのみ)を使います。HTTPS アドレスの背後で任意の WSGI サーバーとともに実行するか(その application)、試すには単体で実行します(python kitsu_relay.py --host 127.0.0.1 --port 8765)。Kitsu が POST するメールアドレスとタスク ID はこのプログラムに見えますが、保持もログ記録もしません。すべての ID は Kitsu の ID として、サーバーはサイト名として検証され、すぐにリンクが返されます。そのうえで Kitsu に新しいカスタムアクションを作ります。Name は Open in Bernard Review、URL はそのページの https アドレス、Entity type は All、AJAX はチェックなしです。
ftrack から。 ftrack のアクションはアドレスではありません。選択に対して Actions メニューを開くと、ftrack は、あなたのコンピューターで動いているプログラムに、何を提供できるかを尋ねます。そのプログラムが tools/ftrack_action.py(1 ファイル)です。管理者権限は不要で、ftrack のサイトには何も追加されませんが、エントリが表示されるのはあなたの Actions メニューだけで、プログラムが動いている間に限ります。ftrack Connect とともに実行するか(独自のプラグイン bernard-review/hook/ftrack_action.py として、Connect のプラグインフォルダーか FTRACK_CONNECT_PLUGIN_PATH に挙げたフォルダーに置き、Connect を再起動します)、単体で実行します。単体の場合は、FTRACK_SERVER、FTRACK_API_USER(ftrack のユーザー名で、File > Tracker... と同じもの)、FTRACK_API_KEY(あなた個人の API キー)を設定し、ftrack の Python API(ftrack-python-api)をインストールしたうえで python ftrack_action.py を実行します。すると、バージョン(1 つまたは複数。選択したものだけが選択順に開き、先頭のものが選ばれます)、および 1 つのバージョンリストまたは 1 つのレビューセッション(全体が、Tracker ウィンドウで選んだプレイリストとして開きます)に対して Open in Bernard Review が提供されます。クリックすると、このコンピューター上で bernardreview://ftrack?entity_type=Version&selected_ids=<the versions>&server_hostname=<your ftrack's host> が開きます。それ以外は Flow と同様です(ここで設定済みの ftrack サイト、Replace / Append、Download preview)。このプログラムは何も保持せず、ログにも記録しません。すべての ID は ftrack の ID として、サーバーはサイト名として検証され、リンクにはユーザー名もキーも含まれません。ftrack が送るのは選択だけで、周囲に表示されているバージョンは送られません。1 つのバージョンをクリックすれば、そのバージョンだけが開きます。
Linux の .sh インストーラー。 DEB と RPM のパッケージは、デスクトップがすぐに認識します。.sh の場合は、一度だけ update-desktop-database ~/.local/share/applications(デスクトップエントリをそこにコピーしたうえで)を実行し、続いて xdg-mime default bernardplayer.desktop x-scheme-handler/bernardreview を実行してください。
Publish セクション(File > Publish Notes to Tracker... でも開きます)には、ノートまたは 1 つ以上の描画があるクリップが一覧表示されます。チェックを入れられるのは、接続中のサイトから読み込まれたものだけです。
Reviewer: とあなたの名前で始まり、続いてクリップのノート、そして注釈付きフレームごとに [f1042] 00:00:43:10 の形式のマーカーが付きます。番号と時間は、Review Notes タブの表示と同じです(タイムコードがなければ [f1042] のみ)。Note text は、送信前にそのテキストをそのまま表示します。Review Notes タブの上部(Essential ではトラッカーのピルの隣)に、トラッカーに接続している間は Publish (N) が表示されます。N は、まだ送られていないものの数で、描画付きのノート、または単独で変更されたステータスです。ボタンを押すと、Publish status にチェックが入った状態で Publish ウィンドウが開きます。N が 0 のときはグレーアウトします。
同じ操作は、スクリプト用のコマンド(tracker-sites、tracker-connect、tracker-publish など)としても存在します。Python API と IPCを参照してください。これらのコマンドを通じてシークレットが渡されることはありません。
さらに詳しくは、完全版マニュアルのパート 6.6 を参照してください(Help > User Guide)。