この記事では、PPgarageの立ち絵編集画面で作成したFuse版立ち絵マクロを、DaVinci Resolveのタイムラインで使う方法と、インスペクタに表示される主なコントロールの役割を紹介します。
対象ツール:PPgarage_ver0.8、DaVinci Resolve
この記事でお借りした立ち絵
アズキ様:男にも女にもなれる鳴花ヒメ立ち絵
Character: 鳴花ヒメ
事前準備
Fuse版立ち絵をDaVinci Resolveで利用するには、立ち絵マクロと、立ち絵マクロが参照するPSDファイルを事前に用意しておく必要があります。
立ち絵マクロの作成
PPgarageのFuseモードでPSDファイルを開き、立ち絵編集画面にて『Save | Macro作成』を実行してください。
ここで作成された立ち絵マクロが、DaVinci Resolveのジェネレーターとして利用できるようになります。
保存したはずのマクロが一覧に表示されない場合
- DaVinci Resolveを再起動してください。
- 下記のディレクトリに
.settingファイルが保存されているか確認してください。
"<USERPROFILE>/AppData/Roaming/Blackmagic Design/DaVinci Resolve/Support/Fusion/Templates/Edit/Generators/PPgarage"
PSDファイルの用意
Fuse版立ち絵を利用する際には、マクロ作成時に設定したPSDファイルが読み込まれます。
また、立ち絵のベースとなる可視状態(各レイヤーの表示/非表示)は、PSDファイルで設定されている可視状態が適用されます。
そのため、タイムラインに立ち絵を設置する前に、PSDファイル側でレイヤーの可視状態を調整しておくと、初期設定が楽になります。
立ち絵をタイムラインに設置する
- DaVinci Resolveでエディットページを開きます。
- 左上の『エフェクト』を開きます。
- 『ツールボックス』→『ジェネレーター』→ 『PPgarage』と進みます。
- 使いたい立ち絵マクロをタイムラインへドラッグ&ドロップします。
立ち絵の移動やサイズの調整
DaVinci Resolveでは、EditやFusionなどのページごとに作業領域が分かれています。そのため、イメージの位置や拡大縮小などの変形操作も、どのページの機能を使っているかによって挙動が変わります。
PPgarageのFuseモードでは、立ち絵編集画面でのノードの追加の可否により、変形コントロールの主体をEditとFusionのどちらに置くかが決まります。
| 『Merge+』の可否 | 主体となる変形コントロール |
|---|---|
| 無効の場合 | クリップの標準の変形コントロールが主体になる。 |
| 有効の場合 | Fusionオーバーレイが主体になる。 |
Merge+が無効の場合
この場合の位置調整や拡大縮小は、クリップの標準の変形コントロールを使う形になります。
- 『設定』タブを選択
立ち絵を直接動かす方法
オンスクリーン調整コントロールを有効にすることで、立ち絵を直接動かすことが可能になります。
- タイムラインビューア左下のオンスクリーン調整コントロールをクリックして有効化
- 『∨』からプルダウンリストを表示し『変形』を選択
- タイムラインビューアに表示される立ち絵を直接ドラッグして操作する
立ち絵クリップを移動した際に、表示されるボックスとイメージの座標がズレることがあります。
これはFusionコンポジションの出力するイメージのアスペクト比と、タイムラインのアスペクト比が異なる場合に発生する現象で、DaVinci Resolve側の仕様になります。
Merge+が有効の場合
この場合の位置調整や拡大縮小は、Fusionオーバーレイを使う形になります。
- 『ジェネレーター』タブを選択
- 『変形』タブを選択
立ち絵を直接動かす方法
オンスクリーン調整コントロールを有効にすることで、立ち絵を直接動かすことが可能になります。
- タイムラインビューア左下のオンスクリーン調整コントロールをクリックして有効化
- 『∨』からプルダウンリストを表示し『Fusionオーバーレイ』を選択
- タイムラインビューアに表示される記号をドラッグして操作する
| 記号 | 役割 |
|---|---|
| 外周の枠線 | 立ち絵のサイズを変更します。 |
| 中央の□↑→ | 立ち絵を移動させます。 |
| 〇(円) | 立ち絵を回転させます。 |
キーフレームエディターを利用する
エディットページやカットページでは、画面上部にある『キーフレーム』を選択することでキーフレームエディターが表示されます。
便利な機能ですが、同ページのキーフレームエディターは比較的新しい機能のため、DaVinci Resolveのバージョンによって利用できる機能に差がある可能性があります。
| コントロールの種類 | 対応するDaVinci Resolveのバージョン |
|---|---|
| クリップの標準の変形コントロール | DaVinci Resolve 20 以降 |
| Fusionオーバーレイ | DaVinci Resolve 21 Public Beta 以降 |
後述のExButtonsをキーフレームエディターで利用する場合は、『DaVinci Resolve 21 Public Beta』以降が必要になります。
『DaVinci Resolve 21 Public Beta』はベータ版であるため、正式版では仕様が異なる可能性があります。また、不具合が含まれている可能性もあるため注意してください。
Transform+が有効な場合
コントロールにTransformが追加され、より詳細な2D変形が使えるようになります。
ピボットについて
変形の際の中心となる軸を設定します。
例えばピボットの値をX:0.3、Y:0.3に設定して角度を調整すると、イメージの左下を軸にして回転するようになります。
| 記号 | 役割 |
|---|---|
| ×マーク | ピボットの位置を調整します。 |
DVE+が有効な場合
コントロールにDVEが追加され、より複雑な回転制御や、遠近感を含む変形が使えるようになります。
ImageOptions
画像まわりの設定グループです。立ち絵の表示ルール、反転、クロップなどを扱います。
操作するにはインスペクタにてタブをコントロール(Controls)に設定してください。
『コントロール』タブは『Controls』と表記されることがあります。これはDaVinci Resolveのバージョンと設定されている言語によって異なります。
レイヤー名拡張機能を有効にする
PSDToolの独自拡張機能を再現した機能を有効化します。
これによりレイヤー名に付けられた!、*、:flipxなどの記号を反映させます。
レイヤー選択時に上位フォルダーを有効化
レイヤーを有効にした際に、所属する上位フォルダーもまとめて有効化します。これによりレイヤー選択時の表示漏れを防ぎやすくなります。
この機能によって有効になった上位フォルダーも、レイヤー名拡張機能の影響を受けます。
イメージの反転
立ち絵全体を反転します。レイヤー名拡張機能の:flipyなどを反映させる場合は、この機能を利用して操作する必要があります。
| 値 | 内容 |
|---|---|
| None | 反転を行いません。 正面表示になります。 |
| X:Flip | 左右を反転します。:flipxが付いているレイヤーが有効になります。 |
| Y:Flip | 上下を反転します。:flipyが付いているレイヤーが有効になります。 |
| XY:Flip | 上下左右を反転します。:flipxyが付いているレイヤーが有効になります。 |
イメージのクロップに関する操作
一般的に配布されている立ち絵のPSDファイルは、高解像度で作成されていることが多いため、そのまま使用するとDaVinci Resolve上での負荷が大きくなることがあります。
PPgarageのFuse版立ち絵には、余計な領域をクロップ(切り取り)することで、処理コストを抑える機能が実装されています。
例えば立ち絵のバストアップを描写するシーンでは、上の画像のように、胸より下の領域をクロップすることでイメージサイズを削減し、処理コストを軽減することが可能です。
イメージをクロップする
クロップ機能の有効/無効を切り替えます。
チェックを入れることで、クロップ用コントロールが表示されます。
チェックを外すとクロップが解除されます。
クロップの編集
クロップの編集に関する現在の状態を変更します。
『Edit』を選択してクロップする範囲を設定し、その後『Apply』を選択することでクロップを適用する、という流れになります。
『Edit』が選択されている間は、ExButtonsや目パチ口パクの設定が無効になります。
クロップ範囲の色 - Edit時のみ
クロップ範囲を選択した際に、目印としてその領域に何色を合成するかを選択します。
クロップ範囲の不透明度 - Edit時のみ
クロップ範囲を選択した際に、目印となる色の不透明度を設定します。
CropSize - Edit時のみ
クロップする範囲を割合で設定します。
左右の●を狭めることで範囲を広げ、間の─を動かすことで範囲がスライドします。
- CropSizeTop
上辺をクロップする範囲を設定します。
- CropSizeBottom
下辺をクロップする範囲を設定します。
- CropSizeLeft
左辺をクロップする範囲を設定します。
- CropSizeRight
右辺をクロップする範囲を設定します。
クロップ範囲 - Apply時のみ
現在適用されているクロップ範囲の割合が表示されます。
このコントロールはクロップが適用されている状態でのみ表示されます。
イメージのサイズ
立ち絵のサイズが表示されます。
クロップが有効になると削減された範囲が反映されます。
SyncOptions
目パチ口パクに関する設定を行います。
操作するにはインスペクタにてタブをコントロール(Controls)に設定してください。
目パチのタイプ
立ち絵編集画面にて目パチを設定したボタンに対し、どの動作を適用するか設定します。
| 値 | 内容 |
|---|---|
| Pattern | 定められたパターンに従って開閉を行います。 |
| Open | 開きで固定します。 |
| Close | 閉じで固定します。 |
目パチの固定パターンの詳細については、後述のEyeSyncPatternを参照してください。
口パクのタイプ
立ち絵編集画面にて口パクを設定したボタンに対し、どの動作を適用するか設定します。
| 値 | 内容 |
|---|---|
| Sync | 解析により得られた情報を元に開閉を行います。 |
| Open | 開きで固定します。 |
| Close | 閉じで固定します。 |
口パクの解析については、後述の口パクの解析についてを参照してください。
口パクの解析について
現行のPPgarageでは、タイムライン上の音声情報を口パクに反映させるためには、音声解析を実行する必要があります。
音声解析には、立ち絵クリップごとに個別に解析を行う方法と、タイムライン単位で一括で解析を行う方法があります。
立ち絵クリップのSyncOptionsではその立ち絵クリップに対してのみ音声の解析を行います。
オーディオトラック番号
口パクの対象となるオーディオトラックを設定します。
閾値(dB)
音声ファイルを解析した際に、開きと閉じの境目となる閾値を設定します。数値は『-96~0』の間で設定可能で、0に近づくほど大きな音が基準になります。
ディレイ
この数値の分だけ音声と口パクのタイミングをズラします。マイナスにすれば口パクの方が早くなり、プラスにすると遅くなります。
口パクの拡張設定
どのように口パクを行うかを設定します。
| 値 | 内容 |
|---|---|
| dB | 音量情報を元に開閉を行います。 |
| Bound | 音声が設置されているトラックの範囲で開閉します。 |
| Test | 一定の間隔で開閉を繰り返します。 文字通りテスト用の機能で、音声情報は無視されます。 |
解析開始
設定された情報に基づいて口パクの解析を実行します。
解析によって得られたデータの扱いについては後述のLipSyncDataを参照してください。
ログ
解析結果や状態メッセージを表示します。
解析中は、編集作業やプレビュー再生を控えてください。処理中にタイムラインや対象クリップの状態が変わると、解析に失敗したり、意図しない結果になる可能性があります。
音声の解析が失敗する場合
音声の解析の際に問題が発生すると、ログにメッセージが表示されます。
ログの内容に応じて、以下の対応を行ってください。
『音声の解析が完了しました。〇件のファイルの解析に失敗しました。』と表示された場合
以下について確認してください。
- 音声クリップが複合クリップ化していないか
対象のクリップを右クリックし、『ここで展開』→『クリップのみ使用』を選択してください。これで通常の音声クリップに戻すことができます。
また、AoiSupportから音声を投げ込むと、自動的に複合クリップ化することがあります。これを避けるにはAoiSupportの上部メニューから『動画編集ソフト設定』→『DaVinci Resolve設定』へ進み、『投げ込み設定』の『音声とテキストを一緒に投げ込む場合、クリップをリンクさせる』にチェックを入れてください。 -
ppg_analysis_helper(拡張解析機能)を導入する
PPgarageの標準機能では対応する音声ファイルの形式が限られています。
ppg_analysis_helperを導入することで、一般的に使用されている、ほとんどの音声や動画ファイルの解析に対応することが可能になります。
『解析開始』を押しても反応が無く、ログに何も表示されない
DaVinci Resolveの起動後に一度も読み込まれていない立ち絵クリップで解析を行おうとすると、機能のロードが行われていないため失敗することがあります。
一瞬で構いませんので、対象となる立ち絵クリップのプレビューを表示させてから再度実行してください。
その他の問題について
詳細なエラーログがコンソールに出力されるので確認してください。
コンソールは次の手順で表示できます。
- 上部メニューにて『ワークスペース』をクリック
- 『コンソール』をクリック
それでも問題が解決しない場合はPPgarageの制作者(しはぶき)へとご連絡ください。
PPgAnalyzerによる解析から除外する
この立ち絵をPPgAnalyzerによる解析の対象から除外します。後述のLipSyncDataなどを手動で設定した際に、上書きされるのを避けたい場合にチェックを入れてください。
ExButtons
ここには、立ち絵編集画面で設定したボタンスクリプトを元に実体化したコントロールが並びます。
操作するにはインスペクタにてタブをコントロール(Controls)に設定してください。
-
MultiButton
単一選択式のボタンです。『M*_***』といった名称になります。
-
SingleSwitch
オン/オフの単純な切り替えを行います。『S*_***』といった名称になります。
-
Blank
区切り線です。見出しや整理用のスペースとして設けられます。
レイヤー操作が適用される順番について
PPgarageのFuseモードでは、レイヤーの表示/非表示に関する操作方法が複数提供されています。
操作が適用される順番によって、イメージの合成結果が異なることがあるので注意してください。
各操作が適用される順番は下記の通りです。
- PPgBaseControlのレイヤーリスト
- PPgExControlのExButtonsを上から順番に適用
Links
このタブではPSDファイルの選択や、内部設定、目パチ口パクの情報などを扱います。
File
このクリップで扱うPSDファイルへのパスです。
パスを変更することで別のPSDファイルへ差し替えることが可能です。
ブラウズ
クリックするとダイアログが開き、PSDファイルを選択できます。
ここで選択された内容は『File』に反映されます。
レイヤーの表示/非表示を引き継ぐ
新しいPSDファイルを選び直した際に、PPgBaseControlの『レイヤーリスト』にて設定されている、各レイヤーの可視状態を引き継ぐか否かを選択します。
| チェックの有無 | ブラウズでPSDを選び直した際の動作 |
|---|---|
| 有効 | 新しいPSDに対し、PPgBaseControlの『レイヤーリスト』で設定されている可視状態を適用します。 |
| 無効 | 『レイヤーリスト』で設定されている可視状態を破棄し、新しいPSDに保存されている状態を再現します。 |
PSDファイルを選択した際の詳しい仕様や、可視状態の扱いに関しては、後述のPSDファイルの解析(読み込み)に関する仕様と注意点を参照してください。
EditNo
Fuse版立ち絵では、合成を行う前に前回作成したイメージとの差分について事前計算を行い、処理内容を最適化して負荷を軽減する独自のシステムを実装しています。
ただし、同一のPSDファイルの立ち絵を複数同時に画面へ表示すると、内部でイメージの合成が交互に行われるため、前回のイメージと一致しなくなり、一部の最適化機能が損なわれることがあります。
この場合、それぞれの立ち絵クリップに異なる『EditNo』を設定することで、イメージ合成に使用する領域を分離し、複数表示時でも最適化を維持できます。
事前計算による最適化が損なわれるのは、同じPSDの立ち絵が同時に複数表示される時だけです。
異なるPSDの立ち絵が複数表示される場合や、同じPSDの立ち絵が別々のタイミングで表示される場合は正常に最適化されるので、EditNoを分ける必要はありません。
EditNoを設定すると使用するメモリ容量も増えるため、メモリに余裕が無い場合は注意してください。
EyeSyncPattern
目パチ用の制御データです。このコントロールに連動して目の開閉が行われます。
また、手動で値を調整することも可能です。
値は『開き = 2, 閉じ = 0』を基準とし、それ以外の値は中割りの数に応じて対応する状態が変動します。
これは1つの立ち絵に中割りの数が混在する場合でも、遅延を最小限に抑えて動作させるための構造になります。
中割りの数に応じた、目パチの状態と値の関係表
| 目パチの構成 | 状態->値の関係 |
|---|---|
| 中割りが0 | 開き -> 値が1以上 閉じ -> 値が0 |
| 中割りが1つ | 開き -> 値が1以上4以下 中割り1 -> 値が5 閉じ -> 値が0 |
| 中割りが2つ | 開き -> 値が2以上3以下 中割り1 -> 値が1か4 中割り2 -> 値が5 閉じ -> 値が0 |
| 中割りが3つ | 開き -> 値が2 中割り1 -> 値が1か3 中割り2 -> 値が4 中割り3 -> 値が5 閉じ -> 値が0 |
LipSyncData
口パク用の制御データです。音声の解析によって得られた口パクの情報は、このコントロールに記録されます。
こちらも手動で値を調整することが可能です。
値は『閉じ = 0』を基準とし、それ以外の値は中割りの数に応じて対応する状態が変動します。
これは1つの立ち絵に中割りの数が混在する場合でも、遅延を最小限に抑えて動作させるための構造になります。
中割りの数に応じた、口パクの状態と値の関係表
| 口パクの構成 | 状態->値の関係 |
|---|---|
| 中割りが0 | 閉じ -> 値が0以下 開き -> 値が1以上 |
| 中割りが1つ | 閉じ -> 値が0 中割り1 -> 値が1か-1以下 開き -> 値が2以上 |
| 中割りが2つ | 閉じ -> 値が0 中割り1 -> 値が1か-1 中割り2 -> 値が2か-2以下 開き -> 値が3以上 |
| 中割りが3つ | 閉じ -> 値が0 中割り1 -> 値が1か-1 中割り2 -> 値が2か-2 中割り3 -> 値が3か-3 開き -> 値が4 |
なぜ目パチと口パクで構造が違うのか
一般的に瞬きは、閉じる速度は早く、開く速度は遅くなる傾向があります。そのため目パチを制御するEyeSyncPatternでは、閉じる動作を『2,1,0』の3カウントで、開く動作を『0,5,4,3,2』の5カウントで表現する構造が採用されています。
一方で口パクは、音声に追従して開閉する必要があります。しかし中割りの数が少ない場合、最大に開かれた4から順番に数値を減らしていくと、状態が変化するまでにラグが発生します。
そのままでは動きが鈍く見えやすいため、LipSyncDataでは負の値を含めてタイミングの補正を行う構造になっています。
立ち絵クリップをパワービンに保存する
設定を変更した立ち絵クリップは、パワービンに保存することで別のプロジェクトでも再利用することができます。
- エディットページにて『メディアプール』を選択します。
- メディアプール領域右上の『・・・』から『パワービンの表示』を有効にします。
- パワービンの任意のビン(フォルダー)を選択します。
- 保存したいクリップを、パワービンの領域へドラッグ&ドロップします。
PSDファイルの解析(読み込み)に関する仕様と注意点
PPgarageでは処理の効率化を図るため、独自のメモリ管理と最適化されたシステムを導入しています。
編集時の操作内容によってはこれらのシステムと嚙み合わず、意図した結果を得られない可能性があるので注意してください。
PSDファイルの解析時の仕様と注意点
- 同一のPSDファイルの解析は、DaVinci Resolveが起動してから一度だけ行われ、DaVinci Resolveが終了するまで保持されます。
- 既に解析済みのPSDファイルについては保持しているデータが再利用されるため、参照先のPSDファイルの変更を反映したい場合は、DaVinci Resolveを再起動する必要があります。
- PSDファイルの解析は、立ち絵マクロのプレビュー時にも実行されます。
- PSDファイル本体を編集してレイヤーやフォルダーの追加、削除、並び替えを行うと、各レイヤーに割り当てられたIDがズレるため、編集データやボタン設定が意図したレイヤーと合わなくなる場合があります。
タイムライン設置後にベースの可視状態を変更する場合
タイムラインに設置した後でも、立ち絵クリップのベースとなる可視状態は変更可能です。
主な方法は次の2つです。
- PPgBaseControlのレイヤーリストを有効にし、各レイヤーの可視状態を変更する。
-
レイヤーの表示/非表示を引き継ぐのチェックを外した状態で、ブラウズにてPSDファイルを読み込む。
ブラウズによってPSDファイルを読み込んだ場合、保持されている解析データを元に可視状態を取得します。そのため『設定されているPSDファイル』と『読み込むPSDファイル』が同一の場合、既に解析データが保持されているため可視状態が更新されません。
同一のPSDファイルを選択して可視状態を更新する場合は、DaVinci Resolveを再起動してからブラウズからの選択を行ってください。
可視状態の変更機能については、将来的なアップデートで改善される予定です。
Fusionページ
立ち絵クリップの右上にあるアイコンをクリックすることで、立ち絵のFusionページへ移動します。
FusionページではExButtonsに登録されていないレイヤーの操作や、より詳細な設定を行うことができます。
PPg_***
立ち絵マクロ本体のグループノードです。PPg_PSDファイル名といった名前になっており、PPgarageの関連ノードや、マクロ作成時にオプションで追加した純正ノードが入っています。
Wクリックすると中身が展開されます。
PPgBaseControl
PSDファイルを元に、ベースとなる立ち絵のイメージを作るノードです。レイヤーの可視状態の操作、PSDファイルの選択、反転、クロップなど、立ち絵の土台を担当します。
PPgExControl
ExButtonsの内容を反映して、差分を合成するノードです。
PPgSyncControl
目パチや口パクを反映して、差分を合成するノードです。
Merge
『Merge+』が有効だと含まれます。位置、サイズ、角度、反転といった基本的な変形を行います。
Background
このクリップの解像度を設定する背景用ノードです。Mergeに接続されます。
Transform
『Transform+』が有効だと含まれます。Mergeより更に詳細な2D変形を行います。
DVE
『DVE+』が有効だと含まれます。より複雑な回転制御や、遠近感を含む変形を行います。
ノード構成は、立ち絵編集画面でマクロ作成時に選んだオプションの内容によって変わります。Merge、Transform、DVEは作成時に選択されていなければ含まれません。BackgroundはMergeが有効な場合のみ含まれます。
次の記事
Fuse版立ち絵マクロをDaVinci Resolveのタイムラインで使う方法と、主なコントロールの役割について紹介します。