【Blender】歌に合わせて口パクさせる方法

Blender口パクさせる方法 Blender
Blender口パクさせる方法

【Blender】歌に合わせて口パクさせる方法

「SNOW DANCE」のミュージックビデオをお手本にした3DCGを作成しました。

ミュージックビデオなら、歌声に合わせて口をパクパクさせてみたい。ですよね。いろいろ調べた結果、ほぼ自動的に口パクさせることができましたので、その方法をシェアします。

歌に合わせて口パクさせる方法

Blender初心者の私。とりあえず、口パクとかリップシンクとかのキーワードで検索するところから始めました。

参考にした記事

検索した結果、YoutubeのカサハラCGチャンネルにいい情報を見つけました。この件に限らず、カサハラCGさんにはかなりお世話になりました

ざっくりまとめると…下記のような手順です。

  • オブジェクトに口を開け閉めするシェイプキーを設定する。
  • 音声ファイルを、ビデオシーケンサーに登録する。
  • 音声のレベルを、シェイプキーパラメータのFカーブにベイクする。

各段階が全部知らないことばかりで、私が自力で調べても絶対見つけられないヤツでした。本当に助かります。

シェイプキーを設定する

シェイプキー?

シェイプキーは、オブジェクトに対して登録する情報です。一つのオブジェクトがいろいろな形状に変化する場合に、それぞれの状態を「シェイプキー」と呼ぶようです。

オブジェクトにはシェイプキーごとに、基本の形状からどのくらい変化しているかを示すパラメータを設定できます。

シェイプキー活用の代表例としては、まぶたの開閉があります。

まぶたを閉じている状態のオブジェクトの形状をシェイプキーとして登録します。
まぶたを開けている状態を基本として、完全に閉じている状態は「1」。
半分閉じている状態は「0.5」として表現できます。

シェイプキーのパラメータは、アニメーションのキー要素として設定できます。

まぶたの例では、パラメータを 0→1→0→1と変化させれば、目がパチパチ開閉するアニメが実現できます。

ドリクマに口の開閉シェイプキーを登録する

さて、ドリクマの口をパクパクさせるには、口の開閉のシェイプキーを登録しなければなりません。

しかし、ドリクマの口周りは、丸い鼻の下に”人”とだけ書いてあるデザインです。

まず、口の開け閉めをどうデザインするのか…少し悩みました。

結果、口を最大開けた場合に”人”の下に弓型のくちびるが出現して”△”のようになるようにデザインしました。

くちびるのパーツを作成し、口を閉じている状態では、顔の中に埋没して見えない配置にしておきます。

口を閉じた状態のクマ

口を開けるにしたがって、くちびるのパーツが回転して張り出し、最大値で”△”になるように調整しました。

口を開けた状態のクマ

そして、口を閉じた状態を基本形、口を開けた状態を mouth_open としてシェイプキー登録しました。

音声ファイルをビデオシーケンサーに登録する

歌唱だけの音声データを入手する

口パク用には、「SNOW DANCE」の曲の音声データをそのままビデオシーケンサーに登録しても意味がありません。

なぜなら、歌声以外にもいろいろな楽器の音が含まれているので、その影響が口パクに出てしまうからです。

つまり、楽曲データから歌唱部分だけを抜き出す必要がありました。

もしかしたら、AIで抽出できたりする?もしかしたら無料でできたりする?と期待して検索してみたら、なんとありました。すごいご時世です。

それが、ボーカルリムーバー

このサービスに、MP3ファイルをアップすると、AIで分析してボーカルと各楽器に分離した状態のファイルを取得できます

もちろん、作成した音声ファイルを共有するのはNGとなりそうなのでブログでは共有できません。お手元のファイルで一度試してみてください。私は、結構びっくりしました。

ビデオシーケンサーへの登録

ビデオシーケンサーへの登録は、カサハラCGチャンネルの手順通りに行えました。

動画はミュージックビデオの音声合わせにして作っていたので、タイミングが一致するように歌唱抽出音声データの配置を調整しました。

余談ですが、どうやら、ビデオシーケンサーは、Blenderの機能の中でもそれほど使われていない機能らしいです。もし、使ってなかったらすこしハードルが高くなりそうですね。私はたまたま、元ネタと比較するための動画作成用にビデオシーケンサーを使っていたので、すんなりとできました。

シェイプキーのパラメータのFカーブにベイクする

いよいよ、口パク実現の最終段階です。

ドリクマのmouth_openシェイプキーのパラメータのFカーブにベイクする

カサハラCGのレクチャー通りに、先に作成したドリクマオブジェクトのmouth_openシェイプキーのパラメータのFカーブに、音声ファイルをベイクしてみました。

ベイクというのは、Blenderでよく使われる用語です。あるデータを変換したデータを確定することみたいです。ベイク=焼成するようなイメージですかね?物理演算シミュレーション結果のベイクなどでも使われています。

アニメをレンダリングして確認してみました。音声のボリュームがパラメータに反映されるので、大きな声だと多い口、小さな声だと小さな口…となって、ちょっと違和感がありました。

そこで、Fカーブに対してモディファイアを適用して、小さな声でも、それなりに口を開くように調整しました。このあたりもカサハラCGチャンネルで紹介されている内容の応用です。

これで、歌唱に合わせて、ドリクマが口をパクパクしてくれるようになりました。

口を閉じたままのドリクマもミッフィーみたいでかわいかったのですが、口パク追加したほうがよくなったなぁと思ってます。

よかったら、できあがりをYoutubeで確認してみてください↓

考察

作業を通じて感じたことなど。

音声ファイルの活用ができなかったらどうなっていた?

今回、音声ファイルをもとに、1曲まるごとの口パク設定をまるっと終えることができました。

もしも、このノウハウがなかったら、ボーカルに合わせて手動で口の開閉のキーを打つ必要がありました。タイミングを合わせて、口の開け方もちょっとずつ変えて…を手作業でするのは、かなり大変でしょう。

ちゃんと調べてから作業に入って、本当によかったなと思います。

将来ためしてみたいこと

今回は、音声の大小に合わせて口を開け閉めしていました。ドリクマだからそれでもあまり違和感はないのですが、これがリアルな人間のキャラクターだったら、かなり違和感ありそうですね。

母音のあいうえおのそれぞれで口の開き方は違いますし、マ行やパ行などは発音時に口が閉じる必要があるので、このあたりの再現も必要なはず。

ここまでくると、口パクではなくリップシンクと呼ぶべきですが、このあたりを自動化することはできるのか、試してみたい気がします。

きっとどこかにノウハウ転がってると思うんですが。

まとめ

「SNOW DANCE」のミュージックビデオをお手本にした3D CGアニメの制作にあたって、歌唱に合わせた口パクを実現した手法について共有しました。

YoutubeのカサハラCGチャンネルさんを参考にして、下記の手順を行いました。

  • 口の開閉のシェイプキーを登録する。
  • 音声ファイルをビデオシーケンサーに配置する。
  • 音声ファイルをシェイプキーのパラメータのFカーブにベイクする。

追加して、下記の作業が必要でした。

  • ドリクマ向けの口の開閉のデザイン
  • 音楽ファイルから音声だけを抜きだす

口パクをきっかけにシェイプキーについて学ぶことができたので、瞳の位置と、まぶたの開閉についてもシェイプキーを設定しました。

手動でのキー打ちが必要でしたが、視線とまばたきを変えるだけでも、キャラクターの魅力がグッと上がったので、面白いものですね。

そのうちにきっと、表情のキャプチャとシェイプキーへの反映もAIでできるようになりそうな気がします。すでにWonder Studioでは、もうできているのかな?

コメント

タイトルとURLをコピーしました