Apple iPhone と iPad の近年のモデルには、人の顔にある 50 以上もの筋肉の位置やトポロジ、動きを区別する優れた顔認証とモーション トラッキングの機能が備わっています。お使いの iOS デバイスに深度カメラと ARKit 機能が備わっていれば、Epic Games が提供する無料の Live Link Face アプリを使用して、Unreal Engine 内で 3D キャラクターの複雑なフェイシャル アニメーションを実行し、それらを携帯デバイスとエンジン内でリアルタイムでレコーディングすることができます。
このページでは、Live Link Face アプリを使ってライブ パフォーマンスを 3D キャラクターの顔に適用する方法と、結果のフェイシャル キャプチャ システムをプロダクション撮影の工程に組み込む方法について説明します。
Live Link Face は、Epic Games Launcher の [Learn (ラーニング)] タブにある Face AR Sample で使用されているものと同じ ARKit 機能に依存しています。ただし、Face AR Sample は iOS 向けにコンパイルする必要があり、それには Mac および Apple デベロッパー アカウントが必要になります。Live Link Face アプリを使うと、フェイシャル アニメーションをすぐに適用して、Unreal Engine プロジェクトのキャラクターを適切に設定することができます。
前提条件:
-
このページには、Unreal Engine のさまざまなツールや機能領域に関連した内容が含まれています。このページの内容を十分に理解するには、以下についての基礎知識が必要です。
-
ARKit および Depth API をサポートする iOS デバイスが必要です。
はじめに
このセクションのステップに従い、Unreal Engine プロジェクトを設定して Live Link Face アプリに接続し、このアプリでレコーディングされるデータを 3D キャラクターに適用します。
-
プロジェクトで次のプラグインを有効にします。
- Live Link
- ARKit
- ARKit Face Support
-
ARKit の顔認証機能で生成されるフェイシャル ブレンド形状に一致する一連のブレンド形状で設定されたキャラクターが必要です。通常は、これを Autodesk Maya などのサードパーティ製のリギングおよびアニメーション ツールで行い、その後キャラクターを Unreal Engine にインポートする必要があります。
キャラクターでサポートする必要があるブレンド形状のリストについては、「Apple ARKit ドキュメント」を参照してください。
独自のキャラクターをお持ちでない場合は、Epic Games Launcher の [Learn] タブにある Face AR Sample に含まれる少年を使用できます。
キャラクターのブレンド形状は、ARKit ブレンド形状で使用されているものとまったく同じ名前にする必要はありません。LiveLinkRemap アセット内でカスタム ブループリント関数を作成して、ARKit ブレンド形状の名前をキャラクターで使用している名前に変換できます。詳しい手順については、「Face AR Sample ドキュメント」を参照してください。ただし、最良の結果を得るためには、お使いのキャラクターのフェイシャル ブレンド形状が、ARKit ブレンド形状と同じ領域をカバーすることを確認する必要があります。
-
Live Link Pose ノードを含むアニメーション ブループリントを使って、Unreal Engine 内でキャラクターを設定します。たとえば、Face AR Sample の少年のアニメーション ブループリントは次のとおりです。
後にこのノードを使って、携帯デバイスから送られるアニメーション データをキャラクターに適用します。
-
コンピュータの IP アドレスを取得します。Live Link Face アプリの接続に必要になります。
IP アドレスは、通常はコンピュータのコントロール パネルか設定で見つけることができます。また、ほとんどの Windows プラットフォームでは ipconfig コマンドライン ユーティリティを使って特定することもできます。
- コンピュータがインターネットに接続されている場合は、独自のネットワーク内にのみ表示される「ローカル IP アドレス」と、公開インターネット上でユーザーを識別する「パブリック IP アドレス」の両方がある場合があります。その場合はローカル IP アドレスを選択します。通常、ローカル IP アドレスは
10.
または192.168.
のいずれかで始まります。 - また、コンピュータに異なるアダプタに向けて複数の IP アドレスが設定されている場合があります。たとえば、有線のイーサネット アダプタとワイヤレス アダプタの 2 つがあり、それぞれに独自のアドレスがある場合です。その場合は、デバイスと同じネットワークへの接続にコンピュータが使用しているアダプタの IP アドレスを選択してください。
- コンピュータがインターネットに接続されている場合は、独自のネットワーク内にのみ表示される「ローカル IP アドレス」と、公開インターネット上でユーザーを識別する「パブリック IP アドレス」の両方がある場合があります。その場合はローカル IP アドレスを選択します。通常、ローカル IP アドレスは
-
Apple App Store で Epic Games 提供の無料の Live Link Face アプリを見つけて、お使いの携帯デバイスにインストールします。
-
携帯デバイスをコンピュータと同じワイヤレス ネットワークに接続するか、イーサネット ケーブルを使って Lightning Ethernet アダプタを介して携帯デバイスをコンピュータに直接接続します。
Live Link にはネットワーク データ ソースが必要なため、USB を介して携帯デバイスをコンピュータに接続するだけでは不十分です。
-
携帯デバイスで Live Link Face アプリを実行します。ホーム画面が表示され、ここで新しいレコーディングを開始できます。
クリックしてフルサイズで表示。
開始すると、最初に ARKit 顔認証システムで生成されたトライアングル メッシュがカメラ画像に重なって表示されます。この重なったオーバーレイ表示を無効にして、上の画像のように自分の顔のみが見えるようにするには、[Preview Mesh (プレビュー メッシュ)] 設定をオフにします。詳細については、後述の「Live Link Face アプリのコントロール」セクションを参照してください。
-
左上にあるアイコンをタップしてアプリ設定を開きます。コンピュータに接続するには、少なくとも [LiveLink] で設定を行う必要があります。
クリックしてフルサイズで表示。
LiveLink の設定ページで [Add Target (ターゲットを追加)] をタップし、コンピュータの IP アドレスを入力します。
アニメーションを複数の Unreal Editor のインスタンスにブロードキャストする場合は、ここに複数の IP アドレスを入力します。後述の「複数のユーザーと作業する」セクションも参照してください。
Live Link Face アプリのその他の設定の詳細については、以下のセクションを参照してください。
-
Unreal Editor のメイン メニューから [Window (ウィンドウ)] > [Live Link] を選択して [Live Link] パネルを開きます。当該の携帯デバイスがサブジェクトとして表示されます。
-
キャラクターのアニメーション グラフ内で Live Link Pose ノードを見つけ、そのサブジェクトを携帯デバイスを表すサブジェクトに設定します。
-
Animation ブループリントを コンパイル し 保存 します。
-
キャラクターを選択します。[Details (詳細)] パネル内で、[Skeletal Mesh (スケルタルメッシュ)] カテゴリにある [Update Animation in Editor (エディタでアニメーションを更新)] 設定が有効になっていることを確認します。
-
Live Link Face アプリに戻り、携帯デバイスのカメラを自分の顔に向けて、アプリに顔を認識させて顔の動きのトラッキングを開始します。
この時点で、Unreal Editor 内のキャラクターの顔がユーザーの顔のリアルタイムな動きに一致するようになるはずです。
-
パフォーマンスをレコーディングする準備ができたら、Live Link Face アプリの赤い [Record (録画)] ボタンをタップします。デバイスでパフォーマンスのレコーディングが開始され、Unreal Editor では Take Recorder が起動して、エンジン内でキャラクターのアニメーション データのレコーディングが始まります。
レコーディングを停止するには、再び [Record] ボタンをタップします。
頭の回転を設定する
Live Link Face アプリからのデータを使って頭の回転をアクタに適用するには、頭のジョイントを駆動するために、まずイベント グラフとアニメーション グラフ内でブループリントを設定する必要があります。
Head Rotation ブループリント - イベント グラフ
このブループリントは、キャラクターのアニメーション ブループリントのイベント グラフ内に作成します。このブループリントは Live Link パフォーマンスのヨー、ロール、ピッチの各データを受け取り、それらをキャラクターのリグの適切なボーンに適用します。
クリックしてフルサイズで表示。
- ブループリント内で右クリックして Event Blueprint Update Animation ノードを追加します。これにより、動きがあるそれぞれのフレームが頭の位置によって確実に更新されます。
- 次に、[My Blueprint (マイ ブループリント)] パネルで「HeadRoll」、「HeadYaw」、「HeadPitch」という 3 つの浮動小数変数を作成します。それぞれをブループリントにドラッグし、メニューから [Set (設定)] オプションを選択します。
- Event Blueprint Update Animation ノードからドラッグして Evaluate Live Link Frame ノードを作成します。これによって、浮動小数変数内に格納される Live Link ソースからのデータが提供されます。
- Subject ドロップダウン メニューで、当該の携帯デバイスを表すサブジェクトを選択します。
- Role ドロップダウン メニューを開いて LiveLinkBasicRole を選択します。
- Evaluate Live Link Frame の近くを右クリックして Get Property Value ノードを作成します。これらは、Live Link アプリからのヨー、ロール、ピッチの取得に使用します。各ノードの Property Name ボックスで、それぞれを「headYaw」、「headRoll」、「headPitch」に設定します。
- Evaluate Live Link Frame ノードの Valid Frame 出力を、上の画像で示されているとおりに Set 変数に接続します。
- 最後に、各 Get Property Value ノードの Value 出力を、対応する Set 変数ノードの浮動小数入力にそれぞれ接続します。
Head Rotation ブループリント - アニメーション グラフ
頭と首の回転データをアプリから取得できるようになったら、次はそれをアニメーション グラフ内でキャラクターのリグに適用します。
クリックしてフルサイズで表示。
上記のセクションは、アニメーション グラフの最後 (Output Pose ノードの直前) に追加されます。
- Output Pose ノードの Result からドラッグして、Component To Local ノードを作成します。
- 次に、回転データによって影響を受けるキャラクターのスケルトン内にある頭と首の各ボーンに向けて、Transform (Modify) Bone ノードをそれぞれ作成します。Face AR Sample プロジェクトの Kite Boy を使用している場合は、2 つ必要になります。
- それぞれのノードをブループリント内で選択して、[Details] パネルの [Bone to Modify (修正するボーン)] を正しいボーン名に設定します。Kite Boy の場合は「neckRoot」と「head」です。
- 上の画像のように、最初のノードの出力を次のノードの Component Pose 入力に接続します。
- それぞれの Transform (Modify) Bone ノードで Translation Space オプションのドロップダウンをクリックし、Bone Space に変更します。
- Transform (Modify) Bone ノードの [Details] パネルの Rotation セクションで、Rotation Mode を Add to Existing に変更し、Rotation Space オプションを Bone Space に変更します。
- イベント グラフで集めたヨー、ピッチ、ロールのデータを使って、頭と首のボーンの回転を更新するローテータを作成します。前に作成した各浮動小数変数のコピーをそれぞれドラッグし、メニューから [Get (取得)] を選択します。
- それぞれの変数で、出力からドラッグして Float x Float ノード を作成します。ピッチを「15」で、ヨーとロールを「-15」で乗算処理します。目的の結果を得るために、ヨー、ピッチ、ロールの乗数の調整が必要な場合があります。さまざまな正の値や負の値を試して、適切な回転となるように設定してください。
- 乗数を設定したら、次はローテータの作成です。ブループリントのパネル内を右クリックして Make Rotator ノードを作成します。
- ヨー乗数からの出力を Make Rotator ノードの X (Roll) 入力に接続します。
- ピッチ乗数を Z (Yaw) に接続します。
- 最後に、ロール乗数を Y (Pitch) に接続します。
- Make Rotator ノードの出力を各 Transform (Modify) Bone ノードの Rotation 入力に接続します。
- Live Link Pose ノードを作成して Live Link Subject Name を当該の携帯デバイスに設定し、一連のシーケンスを完了します。出力からドラッグして Local to Component ノードを作成します。
- その出力を最初の Transform (Modify) Bone ノードの Component Pose 入力に接続します。
適切な回転を得るために、ヨー、ピッチ、ロールの接続の調整が必要な場合があります。回転を確認するための最良の方法は、シーケンスが完了した際にライブ テストを行う方法です。キャラクターはユーザーと同じように動くはずです。たとえばユーザーが左に頭を傾けた際は、キャラクターも同じように左に傾きます。
PIE (プレイ イン エディタ) 機能を使って頭の回転設定をテストします。キャラクターの頭が Live Link アプリでレコーディングされているものと一致して回転するはずです。
Live Link Face アプリのコントロール
Live Link Face アプリのホーム画面には次のコントロールが用意されています。
クリックしてフルサイズで表示。
1 | [Settings (設定)] ダイアログが開きます。 |
2 | すべての Live Link ターゲットへのフェイシャル アニメーション データの送信を切り替えます。緑色で強調表示されている場合は、アプリからアニメーション データが送信されています。 ライブの場合は、アプリ設定で設定したタイムコード ソースから読み取られている現在のタイムコード値もリスト表示されます。 |
3 | ビデオの表示とフェイシャル トラッキングのオン/オフを切り替えます。 |
4 | 新規テイクのレコーディングを開始/停止します。 |
5 | アプリによってレコーディングされたテイクのリストを表示します。 |
6 | 現在のスレートとテイク、そして Live Link サブジェクト名を表示します。タップして現在のスレート名を変更したり、テイク番号を変更したりできます。 |
7 | 緑色で強調表示されている場合は、現在のカメラ ビューで ARKit フェイシャル キャプチャ システムが顔を正しく検出できることを示しています。 |
Live Link Face アプリの設定
ホーム画面の左上のアイコンをタップすると、アプリの動作を設定できる設定ページに移動します。
設定項目 | 説明 |
---|---|
LiveLink | アプリを設定して Unreal Engine を実行するコンピュータに接続し、アニメーション データを送信して、Live Link を介してレコーディングを制御できます。 |
Timecode (タイムコード) | Live Link Face アプリのタイムコード ソースを設定します。詳細については、後述の「タイムコード ソース」を参照してください。 |
OSC | Live Link Face アプリと、外部 OSC コントローラおよびデバイスとの間の接続を設定します。詳細については、後述の「OCS を介して Live Link Face を制御する」を参照してください。 |
Calibration (キャリブレーション) | [Calibration] メニューを開きます。 |
Stream Head Rotation (頭の回転をストリーミング) | ARKit からの頭の回転データ (ヨー/ピッチ/ロール) を Live Link 接続を介してアプリで送信するかどうかを設定します。 このオプションは、携帯デバイスを三脚に据えて、デバイスを基準とした自分の頭の相対的な上下左右の動きに合わせて、バーチャルな頭の動きを Live Link Face アプリを使って駆動する場合に便利です。 Live Link Face アプリとボディ モーション キャプチャ システムとを組み合わせて使用する場合は、この設定は必ずしも必要ではありません。代わりに、カスタム ヘルメットなどを使ってデバイスが常に顔の前面を向くように頭に取り付けて、ボディ モーション キャプチャ システムで頭の上下左右の動きをレコーディングします。 |
Preview mesh (メッシュをプレビュー) | ホーム画面で、ARKit 顔認証システムで生成されたトライアングル メッシュとカメラ画像とを重ねて表示するかどうかを設定します。 |
記録ボタン | 赤い記録ボタンをホーム画面上で視覚化するかどうかを指定します。 |
Blendshape data (ブレンド シェイプ データ) | ホーム画面で、ARKit 顔認証システムによってすべてのフェイシャル ブレンド シェイプに向けて生成されるデータ値を表示するかどうかを設定します。多くの場合、この情報はデバッグの際に役立ちます。 |
Take Recorder | ホーム画面で現在のスレート名とテイク番号を表示するか、現在のレコーディングに使用されるファイル名を表示するかを設定します。 |
Overlay (オーバーレイ) | Live Link Face アプリのメイン画面を常に表示しておくかどうか、またはタッチ画面を操作し始めるまでにメイン画面をフェードアウトさせるかどうかを設定します。 |
Video Quality (ビデオ品質) | 参照ビデオのエンコードに使用される JPEG 圧縮の品質を設定します。品質を高くすると画像がよりシャープになりますが、それに伴ってデバイス上により多くのストレージ スペースが必要になります。 |
Storage (ストレージ) | デバイス上の空きスペースと、Live Link Face で使用されているスペースの容量を表示します。この画面では、以前にレコーディングしたテイクを削除することもできます。 |
Reset (リセット) | Live Link Face アプリをファクトリ設定にリセットし、アプリのインストール後に上記の設定項目に加えた変更をすべて元に戻します。 |
About (詳細情報) | アプリの法的情報を表示します。 |
生のフェイシャル レコーディング
Live Link Face アプリで新規レコーディングを開始すると、キャプチャされた映像が次の 2 つのファイルでデバイスにレコーディングされます。
-
.mov
ファイル。カメラによってレコーディングされた参照ビデオが含まれます。ビデオ フレームは JPEG コーデックを使って圧縮されますが、一時的な圧縮を含まないフレームアキュレートとなります。このファイルにはオーディオとタイムコードが含まれており、レコーディング後にアニメーション パフォーマンスの作業を行うアニメーターが参照用に使用することを目的としています。
-
.csv
ファイル。レコーディング時に ARKit によってキャプチャされた生のアニメーション データが含まれます。この .csv ファイルを iOS デバイスからエクスポートして、Take Recorder で記録したのと同じように Unreal Engine にインポートすることができます。 Live Link から .csv 記録を抽出し、それを使用して Unreal Engine でフェイシャル アニメーションを駆動する方法については、以下のセクションをお読みください。フェイシャル キャプチャに関する追加ツールをビルドを検討しているデベロッパーにとって、このファイルの 生データは有用です。
iOS デバイスから .CSV フェイシャル レコーディングを抽出する
生の Live Link フェイシャル レコーディングを iOS デバイスから .csv
形式で抽出するには 2 つの方法があります。最も簡単なのは Live Link アプリ自体からテイクを共有する方法ですが、iOS ファイル アプリで .csv
ファイルにブラウズし、それらを手動で転送または共有することもできます。
Live Link アプリ内
-
メイン画面の左下隅にある [Take Browser (テイク ブラウザ)] アイコンをタップします。
-
[Select (選択)] をタップして、デバイスから抽出する テイク を選択します。
-
[Share (共有)] アイコンをタップして、AirDrop やメールなどの iOS のビルトイン共有機能の一つを選びます。
Live Link テイクをデバイスから共有する上で、最も信頼性の高いオプションは AirDrop です。多数のテイクまたは非常に長いテイクを抽出する場合は、Google ドライブなどのサードパーティ製のサービスで問題が発生することがあります。全般的に、iOS の共有機能は非 Apple サービスとの併用時にバグが発生しやすくなります。
iOS ファイル アプリ
iOS ファイル アプリでは、いくつかの異なる方法で iOS デバイスからファイルを抽出できます。iOS デバイスとコンピュータとの間のファイル転送については、『Apple のドキュメント』を参照してください。
Live Link アプリでは生のフェイシャル レコーディングを「Live Link Face」フォルダに格納します。このフォルダは iOS デバイスの「Files」 > 「Browse」フォルダにあります。

Live Link Face を起動して テイク を開き、共有するテイクのフォルダをタップします。生の .csv
ファイルはそのフォルダ内にあります。
クリックしてフルサイズで表示。
.csv
ファイルを共有するには、目的のファイルをタップして、コンテキスト メニューから共有オプションの一つを選択します。
Unreal Engine で .CSV フェイシャル レコーディングを使用する
このプロセスでは、このドキュメントの「はじめに」セクションで紹介した 3 つのプラグインすべてに加えて、LiveLinkFaceImporter ベータ プラグインが必要です。
-
[Edit (編集)] > [Plugins (プラグイン)] からプラグイン ブラウザを開きます。「LiveLinkFaceImporter」を検索し、このプラグインを有効にします。次に進む前にエディタを再起動します。
-
コンテンツ ブラウザ の [Import (インポート)] をクリックして、使用する Live Link
.csv
ファイルをインポートします。 -
コンテンツ ブラウザ内に新しい レベル シーケンス アセットが作成されます。このアセットの名前は
.csv
ファイルと同じ名前になり -
このアセットをダブルクリックし、そのレベル シーケンスを シーケンサー で開きます。トラック名の隣にあるドロップダウン キャレットをクリックすると、すべてのフェイシャル ブレンド シェイプからのキーフレーム データが表示されます。
クリックしてフルサイズで表示。
.CSV を MetaHuman キャラクターに適用する
レベル シーケンスをキャラクターで使用するには、目的のレベル シーケンスをシーケンサーで開き、Live Link ソースを設定する際のサブジェクトとして設定します。レベル シーケンスはオプションとして表示されるはずです。MetaHuman 上でアニメーションを再生するには、MetaHuman ブループリントを選択して、[Details] パネル の [Live Link] セクションにある次の項目を設定します。

- [Use ARKit Face (ARKit Face を使用)] チェックボックスをオンにして有効にします。
- [ARKit Face Subj] ドロップダウン メニューで、インポートした
.csv
と一致するサブジェクトを選択します。
これらの設定には、MetaHuman ブループリントのイベント グラフからもアクセスできます。
クリックしてフルサイズで表示。
これで、レベル シーケンスをシーケンサーで再生した際に、フェイシャル アニメーションが MetaHuman キャラクターにバインドされます。
キャリブレーション
フェイシャル トラッキングの品質を高めるために、ニュートラルな「落ち着いた」フェイス ポーズの画像をキャプチャすることで、顔の変化によりうまく対応するよう Live Link Face アプリをキャリブレート (較正) できます。
キャリブレーションを有効にするには、Live Link Face アプリが起動している際に左上の [Settings (設定)] アイコンを開き、[Calibration (キャリブレーション)] をタップします。キャリブレーション メニューが表示されます。ここで [Enable (有効)] ボタンをタップして、キャリブレーション機能を有効にできます。

ここでは任意で [Countdown (カウントダウン)] プロパティを有効にすることもできます。これにより、キャリブレーション画像を開始する際に 3 秒タイマーが有効になります。
Live Link Face アプリのメイン画面に戻ると、画面左下に [Calibrate (+) (キャリブレート (+))] ボタンが新たに表示されます。このボタンをタップすると特殊な「キャリブレーション モード」が有効になり、[Record] ボタンの機能がキャリブレーションをキャプチャするものに変わります。

顔をキャリブレートするには、まず [Calibrate] ボタンをタップします。次に、顔をデバイスのカメラに向けて [Record] ボタンを押します。このときには、ニュートラルで感情のない表情になるよう心がけてください。キャリブレーション画像は即座に撮影されるか、キャリブレーション設定で [Countdown] が有効になっている場合は、画像のキャプチャ前に 3 秒のカウントダウンが入ります。
キャリブレーション画像がキャプチャされたら、それを [Save (保存)] で保存するか、[Discard (破棄)] を選択してやり直します。画像を保存して再び [Calibration] ボタンをタップすると、再キャリブレート して新しい画像をキャプチャするオプションや、キャリブレーションを 削除 するオプションが表示されます。
レコーディング モードと結果
デバイス上の Live Link Face アプリから、または Live Link アプリの OSC インターフェースを介してレコーディングを開始した場合、パフォーマンスは前述のセクションでも説明したとおりに携帯デバイスにレコーディングされます。このようにレコーディングする際に、Unreal Engine のインスタンスに接続している必要はありません。
Live Link Face アプリまたは OSC インターフェースを介してレコーディングを開始するときに、Live Link を介して Unreal Engine のインスタンスに接続している場合は、すべての接続された Unreal Engine のインスタンスで Take Recorder も 一緒に 起動します。この場合、アニメーション パフォーマンスは、携帯デバイスとコンピュータ上の Take Recorder の両方でレコーディングされます。
Live Link を介して Unreal Engine の単一または複数のインスタンスに接続している場合に、携帯デバイスか OSC インターフェースから ではなく、Unreal Engine インターフェースの Take Recorder からレコーディングを開始すると、パフォーマンスは携帯デバイスには 保存されません。この場合は、コンピュータの Take Recorder にのみレコーディングされます。
複数のユーザーと作業する
より複雑な実際のプロダクション現場では、Unreal Engine の「Multi-User Editing (マルチユーザー編集)」機能を使って、同時に複数のスタッフと同じ仮想ワールド内で共同作業をライブで行う場合があります。このような場合は、Live Link Face アプリを、すべてのスタッフによって実行される すべての Unreal Engine インスタンスに接続するよう設定することをお勧めします。こうすることで、アプリでパフォーマンス キャプチャをすべてのエンジン インスタンスにマルチキャストできるようになります。すべてのスタッフは、レイテンシーを最小限に抑えながら受信アニメーション データをコンテキスト内で確認することができます。
タイムコード ソース
プロダクション現場では、Live Link Face アプリが大規模なパフォーマンス キャプチャ環境のほんの一環であることがよくあります。多くの場合は、オーディオ、ライブ映像、他のボディ キャプチャ データ、カメラのトラッキング データなどの他の要素を同時にレコーディングする必要があります。精度を保ちつつこれらの個別のレコーディングを同期するには、すべてのレコーディングに一貫したタイムコード値が埋め込まれていることを確認する必要があります。
Live Link Face アプリには、[Settings] パネルで設定可能なタイムコード ソースのオプションが 3 つ用意されています。
-
System Timer (システム タイマー)
Live Link Face アプリでは、デバイスのシステム タイマーに基づいたタイムコード値をデフォルトで使用します。このタイマーは、前回のシステム再起動以降の経過時間に基づいています。これは、それ自体では正確なベース オプションですが、このタイムコードと他のデバイスで作成されたレコーディングとのリンクが困難になる場合があります。
-
NTP Server (NTP サーバー)
一日の時間帯に基づいて一貫したタイムコードを得る方法の一つとして、ネットワーク タイム プロトコル (NTP:Network Time Protocol) を通じて時刻値を提供するサーバーを利用する方法があります。このオプションを選択した場合、デフォルトのサーバーは「time.apple.com」になります。これは、Apple がデバイスの時間帯を同期する際に使用するものと同じサーバーです。ただし、多くのプロダクションがステージ上のデバイスのタイムコードと同期するため行っているように、カスタムの NTP サーバーを使用する場合はサーバー名と IP アドレスを入力することができます。
-
Tentacle Sync (テンタクル同期)
「Tentacle Sync」とは、Bluetooth を介してデバイスと稼働中のマスター クロックとの同期を可能にするサードパーティ製のハードウェア デバイスです。これは最もプロフェッショナルなタイムコード オプションといえるもので、ハイエンドなプロダクションでは、撮影時のタイムコード同期にマスター クロックを利用するケースがほとんどです。詳細については、Tentacle Sync のページを参照してください。
OSC を介して Live Link Face アプリを制御する
Live Link Face アプリでは Open Sound Control (OSC) プロトコルを通じて双方向のコミュニケーションをサポートしています。
-
OSC デバイスを使って Live Link Face をリモートで制御できます。たとえば、外部のデバイスを使って、アプリでのレコーディングをリモートで開始できます。
-
また、Live Link Face のアクティビティに関する通知を他の OSC デバイスに送信するよう、Live Link Face を設定することもできます。たとえば、アプリで新規レコーディングを開始するたびに、他のデバイスで何らかのアクションをトリガーするように設定したりできます。
OSC を設定するには、アプリの設定を開いて以下を実行します。
-
[Listener (リスナー)] セクションには、携帯デバイスの現在の IP アドレスと、Live Link Face アプリが受信 OSC メッセージのリッスンに使用しているポートが表示されます。この IP アドレスとポートにコマンドを送信するよう、OSC リモート コントロール デバイスを設定します。
-
Live Link Face からの OSC コマンドで他のデバイスを制御するには、対象となるデバイスの IP アドレスとポートを [Target (ターゲット)] セクションに入力します。
Live Link Face アプリでは、次の OSC コマンドをサポートしています。
コマンド | 説明 |
---|---|
/OSCSetSendTarget <IP:string> <port:int32> |
OSC 送信ターゲットを、指定された IP アドレスとポートに設定します。アプリでは、新しく設定された OSC 送信ターゲットに /OSCSetSendTargetConfirm コマンドで応答します。 |
/AddLiveLinkAddress <IP:string> <port:int32> |
アプリでブレンド シェイプ データをブロードキャストする新しい Live Link ターゲットを追加します。 |
/ClearAllLiveLinkAddresses |
すべての Live Link ターゲットを削除します。 |
/LiveLinkSubject <name:string> |
Live Link サブジェクト名を設定します。 |
/LiveLinkStreamStart |
すべての Live Link ターゲットに対してデータ ストリーミングを開始します。 |
/LiveLinkStreamStop |
Live Link ターゲットに対するデータ ストリーミングを停止します。 |
/BatteryQuery |
デバイスのバッテリー レベルをリクエストします。アプリでは、OSC 送信ターゲットに「/Battery <level:float32> 」で応答します。 |
/ThermalsQuery |
デバイスの熱状態をリクエストします。アプリは /Thermals <state:int32> で OSC 送信ターゲットに応答します。 |
/Slate <name:string> |
指定された名前にスレートを設定します。 |
/Take <number:int32> |
指定された値にテイク番号を設定します。 |
/ARSessionStart |
ビデオと AR のトラッキングを有効にします。アプリでは、OSC 送信ターゲットに /ARSessionStartConfirm で応答します。 |
/ARSessionStop |
ビデオと AR のトラッキングを無効にします。アプリは /ARSessionStopConfirm で OSC 送信ターゲットに応答します。 |
/RecordStart <slate:string> <take:int32> |
指定したスレートとテイク番号でレコーディングを開始します。アプリでは、OSC 送信ターゲットに「/RecordStartConfirm <timecode:string> 」で応答します。現時点で、タイムコードは常に 00:00:00.000 の形式であることに留意してください。 |
/RecordStop |
レコーディングを停止します。アプリでは、OSC 送信ターゲットに「/RecordStopConfirm <timecode:string> <blendshapesCSV:string> <referenceMOV:string> 」で応答します。下記の /Transport コマンドの 2 つの文字列を使用して、デバイスからデータをコピーできます。 |
/Transport <IP:port:string> <path:string> |
上記の /RecordStopConfirm コマンドで返されたパスを使い、指定した IP アドレスとポートにファイルのコンテンツを転送するようアプリにリクエストします。アプリはその IP アドレスとポートに TCP 接続を開きます。最初に、ファイルの合計サイズがビッグ エンディアン形式で含まれる int32 が送信され、次にファイルのコンテンツが送信されます。 |
/VideoDisplayOn |
ビデオの表示を有効にします。 |
/VideoDisplayOff |
ビデオの表示を無効にします。この場合でもトラッキングとレコーディングは行われます。 |
/AppActivated |
アプリが携帯デバイスで有効になった際に、アプリによってこれが OSC 送信ターゲットに送信されます。これは、最初の開始時にフォアグラウンドに表示されます。 |
/AppDeactivated |
アプリが携帯デバイスで無効になった際に、アプリによってこれが OSC 送信ターゲットに送信されます。これは、消去された際にバックグラウンドに送られます。 |