Adobe Character(アドビ キャラクター)で、キャラクターの口が自動で動くリップシンクを作成する方法をご紹介します。Adobe Characterは多機能で、リップシンクと組み合わせてキャラクターに複雑な動きを作れます。
ですが、今回は自動リップシンクのみを説明します。
なぜなら私もAdobe Characterではリップシンクくらいしか作れないからです。調べてもあまりAdobe Characterを説明しているサイトがなく、四苦八苦したので誰かの役に立てればと思い当記事を残します。
口パクだけなので動画で使い道あんまりないかもですが、ゆっくり実況とかで使えるかもですね。
今回Adobe Characterで作るリップシンクの完成形
今回はchatGPTに作らせた短い小説を音声さんで合成しました。なんだこの話は…。
リップシンクで必要な素材
リップシンクを作るには次の2つの素材が必要です。
- PhotoshopまたはIllustratorのキャラデータ
- 音声データ
次に説明します。
PhotoshopまたはIllustratorのキャラ素材(.psd.ai)
AdobeCharacterに読み込む素材(キャラクター)は、PhotoshopまたはIllustratorで準備してください。
pngやJpegといった拡張子も読み込めますが、リップシンクは作れません。できるかもしれませんが、恐ろしく手間がかかるだろうし、私はその方法は知りません。
今回はIllustrator(.ai)で準備しましたが、Premiere Proも使ったアニメ作成ならPhotoshop(.psd)が良いです。Premiere ProはIllustrator(.ai)をレイヤーごとに調整できないので…。
音声
音声素材はmp3、wav、aifのいずれかを準備してください。今回は音声さんで作成しました。

【重要】レイヤー構造について
AdobeCharacterでリップシンクを作成するには、閉じた口、大きく開けた口といった、様々な口の形のレイヤーを準備しなければなりません。下記が、今回のリップシンクのレイヤー構造とその画像です。
character
├── 目
│ ├── left_eye
│ └── right_eye
├── 口
│ ├── ニュートラル
│ ├── M
│ ├── S
│ ├── D
│ ├── Ee
│ ├── Aa
│ ├── uh
│ ├── oh
│ ├── R
│ └── W-Oo
└── 顔
└── <楕円形>

ここで大切なのはそれぞれの口の形をしたレイヤーを、親レイヤー「口」でまとめることです。準備する口の形については次にご説明します。
口の形について
準備する口の形ですが、AdobeCharacterのリグにある、パペットのモーション設定に登場するイラストに基づいています。

リグとかパペットとか、モーションとかよくわからないかも知れませんが、とりあえず今は「このイラストにある、ニュートラルやMといった口の形を準備する」と思うだけで大丈夫です。
ニュートラルから驚きまで全ての口の形を準備する必要はありませんが、口の形が多いほど滑らかなリップシンクになります。(個人的に滑らかすぎると海外アニメのようになるので、あんまり好きじゃありません。)
この時のIllustratorやPhotoshopのレイヤー名を、MとかEeといったAdobeCharacterが設定している口の名前にしておくと読み込んだときに自動で口の形が、レイヤーとモーションで紐付けされています。
名付けしていない、または紐づけできていなかったとしても後でAdobeCharacterで設定が可能です。作成した口の形は全て表示させると、次のようになります。気持ち悪いですね。

AdobeCharacterでリップシンクを作成する
AdobeCharacterでリップシンクを作成します。AdobeCharacterを立ち上げると、左上に【ホーム|リグ|録画|ストリーム】のタブがあり、最初はリグが開いています。
リップシンクでは、リグと録画のタブを使用します。リグはキャラクターの動きの設定や制御、録画はキャラクターを動かします。
【全体動画】AdobeCharacterでの作業
AdobeCharacterで素材を読み込んで自動リップシンク化するまでの流れです。動画もあったほうがわかりやすいかと思うので載せておきます。
ではリグからキャラクターのリップシンクを設定します。
【リグ】リップシンクを設定する

リグの画面では「プロパティ」「パペット」「プロジェクト」を使います。私はざっくりと次のような認識をしています。
- プロジェクト:アニメで使う素材が一覧で表示(ドラッグでインポート可)
- パペット:キャラクターが表示、プロジェクトと併用して使用する
- プロパティ:リップシンクといったモーションが準備されている、パペットと合わせて使用する
リグの設定を次から順に説明します。
プロジェクトに素材を読み込む
プロパティにPhotoshopもしくはIllustratorのデータを読み込んでください。プロジェクトに外部ファイルをドラッグするだけで読み込めます。ドラッグ以外ではファイル>読み込みでも大丈夫です。
パペットとプロパティ
プロパティにあるPhotoshopまたはIllustratorのデータをダブルクリックします。すると、パペットに作成したキャラクターが出力され、プロパティには人のイラストが現れます。次のような画面になっているはずです。

プロパティに何も表示されない場合は、プロパティにレイヤー、レイヤーメッシュ、タグなどのメニューがあるので、タグを開いてください。
次から作成したデータの口の形を、AdobeCharacterに紐付けます。
AdobeCharacterに口を認識させる

パペットにある口レイヤーをプロパティの口に紐付けます。動画では、5秒目でこの作業を行なっています。
紐付けの方法は簡単で、口レイヤーを選択して、プロパティに表示されている人の口をクリックするだけです。紐づけは実際に動く口の形ではありません、それを束ねている親レイヤーです。
きちんと紐づけられたかは、パペット側の口に青タグの「口グループ」、金タグの「口」と出ていれば成功です。

これでAdobeCharacterでこれが口だと認識します。
AdobeCharacterに口の形を認識させる

先ほどの動画では、8秒目でこの作業を行なっています。
やり方は先ほどと同じで、それぞれの口の形をしたレイヤーをプロパティに表示されている口の形に対応したクリックするだけです。ニュートラルなら、パペット側レイヤーでニュートラルを選択して、プロパティのニュートラルの口をクリックします。
PhotoshopまたはIllustratorのデータ時にレイヤー名を口の形にしていると、この作業は不要ですが、紐付けされていないこともあるので確認しておきましょう。実際動画でもニュートラルは紐付きがされていませんでした。
紐付けされていれば、パペットのレイヤーをクリックした時に、青タグで「ニュートラル」や「Ah」などが付与されています。金タグはありません。

【録画】実際にリップシンクを使って口を自動で動かす
録画で実際に準備した音声データにリップシンクを連動させます。画面上部、リグの隣にある「録画」をクリックして、録画画面に移動。
録画は実際にキャラクターが音がなり、キャラクターが動く画面です。
タイムラインにキャラクターと音素材をドラッグ

動画では21秒からの作業です。音素材、キャラクター素材をタイムラインの【パペットはここにドラッグしてシーンを作成】ドラッグします。
タイムラインは動画や音声、静止画などの素材を時間軸に沿って配置・編集する場所です。タイムラインに音ファイルとパペットが読み込まれたら次に進みます。
本来表示してほしくないレイヤーが表示されている、もしくは表示されていない場合はリグの設定が間違っています。もう一度、「パペットとプロパティの紐付け」または「レイヤーの構造」を見返してください。
リップシンクを設定する

タイムラインのパペットと音素材を二つ同時に選択します。
素材を二つ同時に選択する方法は、PCと同じです。Shiftを押しながら書く素材をクリックです。右クリックしながらドラッグでも大丈夫です。水色になれば選択されています。
パペットと音素材の両方を選択した状態で、上部のメニュー、「タイムライン」>「シーンオーディオからリップシンクテイクを計算」をクリック。
これで自動リップシンクが完成です!!
AdobeCharacterが音に合わせて自動で口を動かしてくれます。お疲れ様でした。
【備考】リップシンクが希望の動きではない場合
Adobe製品とはいえ、リップシンクが必ずしも完璧に動作するわけではありません。たとえば、「あ」のような短くて一瞬の発音では、口パクが自動で割り当てられないことがあります。
その場合、自分でリップシンクの口の形を指定する必要があります。

音声の波形をより短い時間単位で確認したいときは、タイムライン下部にある「山のアイコン」(波形の表示密度)を、大きい山側にスライドしてください。これによって、波形が細かく表示されるようになり、各音に対応する口の形がより見やすくなります。
口要素のタイムラインで右クリックをすると、挿入したい口の形が選べます。対応する口を挿入しましょう。無音にすることも可能です。
まとめ
以上、AdobeCharacterで自動リップシンクを作成する方法をご紹介しました。ぶっちゃけ開→閉の2動作ならpremier proで前後に並べて動かすというアナログな方法を採用しています。
もっといろいろ使えるようになりたいなあ。
当記事があなたの参考になれば幸いです。
コメント