【Blender4.5】発音に合わせてリップシンクさせる:Lip Syncアドオン

blender
記事内に広告が含まれています。

Blenderのアドオンを使って、a,i,u,e,oなど音声に合わせて口の動きを自動でアニメーションさせるリップシンク(Lip Sync) の方法を解説します。

以前、以下の記事で簡易的な口パクのリップシンクの方法について解説しましたが、アドオンを使えば複数の口の動きを音に合わせて動かし、よりリアルなアニメーションにすることが可能です。

今回アドオンを使いますが、Blender Extensions の公式プラットフォーム上にある信頼されたアドオンで、導入も簡単です。

この記事では、

  • Lip Syncアドオン導入
  • リグ操作でポーズアセットを作成する方法
  • それをViseme(ビジーム)に登録する方法
  • リップシンクでしゃべらせる方法

など、手順を解説していきます。

この記事は、Blenderのアドオンを使って発音に合わせてリップシンクさせる方法を解説している中級者向けの記事です。

難易度 3.0

※ちなみにBlender5.0だと機能しませんでした。Blender4.5で機能することを確認しています。途中まで5.0で操作してますが音をベイクするときは4.5で作業しています。ビデオシーケンサーに入るまでは操作は同じです。

スポンサーリンク

Lip Syncアドオン導入

Lip Sync アドオン

Lip Sync アドオンは、音声ファイルを解析して発音(音素)を検出し、あらかじめ用意した口の形(シェイプキーやポーズ)に対応づけて、自動でキーフレームを生成するアドオンです。

アドオンインストール

上部メニューEdit > Preferences… でウィンドウを開き

Get ExtensionsのメニューでLip Syncを検索して、Installをクリックします。

Installedになったらインストール完了です。

基本設定

  • まずLanguage Model(言語)Japanese(日本語)に設定します。日本語データをインストールしてくれます。(しゃべる言語に合わせる)
  • Animation Typeを決めます。
    • オブジェクトモードリグを選択してAdd Lip Sync on SelectionボタンクリックするとPose Assetになってリグ操作でポーズアセットを作成することになります。
    • オブジェクトモードメッシュを選択してAdd Lip Sync on Selectionボタンクリックするとシェイプキーで表情を作ることもできます。
    • 好きな方を選んでください。

今回自分はポーズアセットのライブラリを作成する方法で進めます。

スポンサーリンク

作成するViseme(口の形)と音素

アドオンで日本語(Japanese)に設定すると、日本語用の音素グループのリストが出ます。この音素に対応するViseme(口の形)をシェイプキーやリグで作っていくことになります。

アドオンで設定するためのリストには右図のようなグループが必要だと言われていますが、ある程度まとめても大丈夫だと思うので、最低限のものをまとめておきます。(全部のVisemeを作ってももちろんOKです。)

  • sil・PP・FF・nn…閉じた口(デフォルト)
  • TH・DD・kk・RR…少し開いた口
  • CH・SS…少し開いて横にも開く
  • aa…あ
  • E…え
  • ih…い
  • oh…お
  • ou…う
  • UNK…判定できなかったときの。デフォルトや別のアクションを適当に設定してもいいかと思ったら、結構判定できないのでここで設定したものが頻出するかもしれない。

正直「あいうえお」と「ん(閉じ口)」だけでもいいと思います。こだわりがある方は納得するところまで作り込んでみてください。

グループ代表音・説明
silsilence(無音)
口を閉じている状態、しゃべっていないとき
😐 口閉じ
PPP/B/M
両唇を閉じる音
例:ぱ・ば・ま
👄 しっかり閉じる
FFF/V
上の歯が下唇に触れる
日本語ではほぼ使わない(ファ行)
🦷 下唇を噛む感じ
TH英語の「th」音
舌が歯の間に出る
日本語ではほぼ不要
👅 少し舌を出す
DDT/D/N
舌が上あごに触れる
た・だ・な 行
😮 やや開く
kkK/G
か・が 行
口は少し開く
😮 A系に近い
CHch
ち・じ
横に少し広がる
😬 I系寄り
SSS/Z
さ・ざ 行
横に引く
😁 I系に近い
nn
口は閉じ気味
PPに近いが軽め
😐 軽く閉じる
RR日本語の「ら行」
軽く開く
A系寄り
😮 中間
aa
😮 大きく開く
E
😬 横に広がる
ih
😁 横に強く引く
oh
😗 丸める
ou
😗 すぼめる
UNKUnknown(不明音)
判定できなかった音
無視してもOKなことが多い
スポンサーリンク

ポーズアセットをViseme登録する方法

アセットライブラリフォルダを作成する

ポーズアセットを作るので、PCの好きな場所にポーズアセット用ライブラリフォルダを作成します。

自分の場合は「hadeusa mouth」というフォルダを作成しました。

上部メニューEdit > Preferences… でウィンドウを開き
File Paths > Asset Librariesの右のアイコンをクリックすると
フォルダ選択画面が出てくるので、さっき作成したポーズアセット用のフォルダを選択します。

hadeusa mouthのフォルダがAsset Librariesの一覧に出てくるようになりました。

preferencesウィンドウを閉じて、次は、Asset Browserを開き、作ったアセットライブラリを表示します。
(まだ何も入ってません。)

ポーズを作ってライブラリに登録する

  • ポーズを作る
    • とりあえず最初はデフォルトの閉じた口を作成します。(リグ操作をわかりやすくするため、使わないリグは不可視化しておくと良いです。)
    • 口の動きだけではなく、目や頬、眉毛などいろいろ動かしたいって方はもっとリグを選択しておいてください。
    • ポーズができたら、使うリグを選択して、Asset BrowserAssetメニューを開き Create Pose Asset...ボタンをクリックします。
  • ポーズをライブラリに登録
    • 設定画面が出るのでPose Nameに名前をつけます。(例えば今回は口閉じ、無音のsilをつけます)
    • Libraryにポーズアセット用に作ったライブラリを選択します。
    • 設定したらCreateボタンを押します。するとライブラリ内にsilポーズが登録されます。
  • サムネ画像を作る
    • 作ったポーズを選択し、右側のパネルの中のPreviewを開きます。下向き矢印▼アイコンを開いてCapture Screenshot Previewをクリックします。
    • 画面のキャプチャを撮れるモードになるので、マウスを左上からドラッグしてボックスを作り、キャプチャ範囲を決めます。(画面を綺麗にするためリグを隠したりすると良い)
    • これでポーズアセットのサムネが作成できます。

登録のポイント

  • ポーズ作るとき
    右上のちょうちょみたいなアイコンのXというところをクリックすると、左右対称にポーズを作ることができます。
  • サムネをキャプチャするとき
    右上のShow GizmoShow Overlaysのアイコンをオフにすると画面の記号などが消えて綺麗にキャプチャできます。

これでポーズがアセットライブラリに登録されました。この作業を繰り返して、必要な口の形のポーズを作っていきます。

ポーズアセットをそれぞれの音に割り当てていく

Lip SyncアドオンのパネルのViseme Settingsを開き、それぞれの音に、作ったポーズアセットを割り当てていきます。

作成するViseme(口の形)と音素というセクションを見て、それぞれの口の形のポーズアセットを作成し、全てのリストを埋めてください。(めんどくさいという方は似た口の形は重複したポーズアセットを設定してもOKです。)

終わったら口のポーズなどは全部クリアしておきましょう。

スポンサーリンク

音声をベイクしてアニメーションさせる

音声ファイルをインポートする

  • ビデオシーケンサーエディタを開きます。
    • シーンを、今現在ビューポートで使っているシーンに設定します。(デフォルトだとSceneという名前)
  • するとシーケンサーにチャンネルが表示されるので、音声ファイルをシーケンサーの中にドラッグ&ドロップします。

※これはBlender5.0の画像ですが、5.0は機能しなかったので普通に4.5で作業してください。

Blender4.5の場合ビデオシーケンサーを開くだけで、シーンを設定する必要はないです。

Animation Settings(アニメーション設定)

アドオンでアニメーションを作るときの設定です。

  • Lip Close Duration(口閉じ時間)
    • 発声後に口が閉じるまでの時間。無音区間に自動で「閉じ口」形状を入れる。数値を短くするとパキッと閉じる。長くすると自然にフェード(自然さを出したいなら少し長め)
  • In between
    • 2つのキーフレームの最小間隔。これより近い位置にあるキーフレームは削除される。
  • silence
    • 無音を挿入するために必要な最小間隔。キーフレームの間がこの時間以上空いていたら「口閉じ」キーを入れる
  • Prioritize Accuracy(精度優先)
    • 音声に対して最も適切なVisemeを選び、リアルなリップシンクになるがその分キーフレームが増えやすく、動きがややシャープになることがある
  • Bake Audio
    • 音声を解析し各Visemeにキーフレームを自動生成
    • デフォルトの設定では他のキーフレームをクリアする設定になっている
スポンサーリンク

完成作品

(※右側動画は音が出ます。)

右が完成作品です。これはバージョン4.5で再生してます。

Prioritize Accuracyの設定をつけてベイクしました。最初はベイクするのにすごく時間がかかって4500くらいキーフレームを打ったとか出るから重いのかなぁと思ったのに、ファイル開き直してやってみたらすぐベイクできたりして、ちょっとよくわかりません。

また、最初UNKに設定した「い」の動きがやたら多くなって、結構判定できてないみたいなんですよね。だからUNKを「あ」に変えてみたりしました。

自分はこのくらい動いてくれて嬉しいなぁと思うんですが、結構はきはき移り変わるので、英語っぽい動きかもしれません…設定を変えて、もうちょっとなめらかにできたらいいかなぁ。

声:VOICEVOX:ずんだもん

(※右側動画は音が出ます。)

これは以前以下の記事で作った、Blenderの機能を使って作った簡易なリップシンクです。口パクしかしてませんが、音の大きさで動きをつけてるので、そんなにはっきりした音じゃなくても安定してアニメーションしてくれますね。

声:VOICEVOX:ちび式じい

ベイクできないとき

音声が小さいとベイクしづらい?のか、大きくするとエラーがなくなってベイクできたりしました。ベイクする前にストリップの音量を2とかに上げてみてください。

また、音声がはっきりしたものがいいみたいです。もっとキャラクターっぽいちび式じいの声で焼こうとしたらエラーで焼けませんでした。声の大きさかもしれませんが。音の判定精度がそんなに高くないかもです。

スポンサーリンク

まとめ

実際使おうと思ってやってみたんですが、そもそも5.0でベイクできないというのがショックでした…。
他にも同じエラーが出てる人もたくさんいるみたいなので、もしかしたら修正したバージョンが今後出るかもしれません。

あとたまにベイクするときにとても重いことがあって、理由がわからないので、安定して動いてくれるのかなぁってちょっと不安です…。

あとは音の判定ですね。そもそも癖のあるキャラ声とかぼそぼそ音とかは多分ひろってくれません…エラーが出る確率が高くなると思います。やっぱり音の判定ってなかなか難しいみたいですね。特に日本語だと余計そうなのかも。

今回自分がやたら過剰に大きな口の動きをつけてしまったのもあって、日本語っぽくない口の動きになったけど、アニメキャラくらいのちょっとした口パクだったら違和感なくできそうな気がします。よりバリエーションのあるリップシンクをつけたいっていう方はやってみるとよいかもしれません。

スポンサーリンク

参考動画

設定の仕方など参考にさせていただいてます。こちらは言語が英語設定です。

コメント