【Blender5.0】リグ操作でシェイプキーとサウンドを連動させる方法:簡易的なリップシンク

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

Blenderには、音声に合わせて口の動きなどを自動でアニメーションさせる簡易的なリップシンク(Lip Sync) 機能があります。

アニメーション制作では定番の機能ですが、これを使えるようになると、VTuber風のキャラクターによる実況や解説動画なども、比較的手軽に作れるようになります。動画制作をしたい方にとっては、覚えておいて損のない機能だと思います。

※この記事で紹介する方法は、a,i,u,e,oなど音声の音素(母音・子音)を解析するものではなく、音の強さに応じてシェイプキーを動かす簡易的なリップシンク手法です。

この記事では、

  • リグ操作によってメッシュを変形させ、それをシェイプキーとして登録する方法
  • 作成したシェイプキーを音声(サウンド)と連動させて動かす方法

この2点を中心に解説します。

リップシンク(口パク)だけでなく、さまざまなトランスフォームや動きを音声に連動させることも可能です。
キーフレームを1つずつ打たずにアニメーションを作れるため、効率的な制作方法としても活用できます。

この記事は、Blenderでリグ操作してアニメーションをサウンドに連携させる簡易的なリップシンクの方法を解説している中級者向けの記事です。

難易度 3.0

スポンサーリンク

リグ操作でシェイプキーに登録する

まずはリグを操作して、それをシェイプキーに登録する方法を説明します。
普通はメッシュを頂点操作してシェイプキーに登録するんですが、多くの人がフェイスリグも作ってると思うんですよね。せっかくリグやボーンをつけてるんだったらそれを操作した方が早いと思うのでこの方法でやっています。
(口の形をもっと思い通りに制御したい、とか2Dアニメ調の場合は細かく形を作る場合も多いので、そういう場合はメッシュを直接操作してシェイプキーにした方がいいのかもしれません…。)

まずはリグをつけたモデルを用意してください。

  • オブジェクトモードでモデルのメッシュを選択します(何の変形もしてない状態)。
    • オブジェクトデータプロパティ > Shape Keys でアイコンをクリックするとBasisのシェイプキーが作成されます。これが変形なしのベースの形となります。
  • ポーズモードにはいり、ボーンを動かし口を開けたポーズを作ります。
  • オブジェクトモードでメッシュを選択します。
    • モディファイアプロパティ > アーマチュアモディファイアの右側の下向き▼からシェイプキーとして保存(Save As Shape Key)を押します。
      今のメッシュ変形をシェイプキーに登録します。
  • ポーズモードに戻ってリグを全て選択し、PoseタブからClear Transform → Allでリグ操作をクリアします。
  • オブジェクトモードに戻ります。
    オブジェクトデータプロパティ > Shape Keysを見ると、Armatureと名前がついたシェイプキーが登録されています。
    • ダブルクリックで名前を変更する。
    • 下のValueの数値を0から1に変更することで口を開くアニメーションができます。

※続けて他のシェイプキーを登録する場合は、必ず既存のシェイプキーのValueを0に戻しておいてください。

スポンサーリンク

サウンドに合わせてシェイプキーを動かす

まずサウンドをサンプリングする準備をします。

  • ビデオシーケンサーエディタを開きます。
    • シーンを、今現在ビューポートで使っているシーンに設定します。(デフォルトだとSceneという名前)
  • するとシーケンサーにチャンネルが表示されるので、音声ファイルをシーケンサーの中にドラッグ&ドロップします。
  • ビデオシーケンサーの下などにグラフエディタを開きます。
    • フレームは1に戻しておきます。
    • そして口を開ける動きをつけたシェイプキーのValue(値は0)キーフレームを打ちます。

これで音声とシェイプキーアニメを連動させる準備ができました。

※ちなみにここでシェイプキーではなく、オブジェクトのトランスフォームや他のシェーダーの値などにキーフレームを打っても、同様に設定して、音声と連動することが可能です。

チャンネルに音声の波形を焼き込む

  • グラフエディターのシェイプキーのチャンネルを選択します。(画面中でいうとValue(mouth_A))
    • エディタ上のChannelメニューのSound to Samplesをクリックします。
  • 音声ファイル選択画面が出ます。
    • さきほどシーケンサーに追加したものと同じ音声ファイルを選択し、Sound to Samplesボタンを押します。
  • これで、グラフエディタを見ると、音声の波形がシェイプキーのチャンネルにベイクされてるのがわかります。
    (ただ、音の強さによって波形がベイクされるので、値が0~1の範囲にならず、口の開きが小さくなりがちです。)
  • そのため、波形を0~1の範囲に収めます。
    • グラフエディタ右のModifiersタブにいき、Add ModifierからEnvelopeモディファイアを追加します。
    • Add Control Pointボタンを押し、下の、真ん中の数値と右側の数値(デフォルトで-1.0、1.0となっている)を増減させて範囲を調整します。
      グラフのカーブが0~1の範囲にちょうど収まるようにします。

これで再生をすると、口パクアニメのシェイプキーが音に合わせてアニメーションされるようになります。

チャンネルに音声をベイクするコマンドですが、Blenderのバージョンが古い場合はkeyメニューに、Bake Sound to F-Curvesみたいなメニューがあると思います。バージョンによってメニューが違うので気を付けてください。

なお、ビューポート再生時に音声とアニメーションがズレて見える場合は、
タイムラインの Playback > Sync
Sync to Audio に変更してみてください。

音声を基準に再生されるため、処理が重いシーンではフレーム落ちして見えることがありますが、音声とアニメーションのタイミングは正確に確認できます。

スポンサーリンク

完成

完成作品です。右側動画のように口が音声に合わせてアニメーションしています。(※右側動画は音が出ます。)

口パクしかしてませんが、このくらいのクオリティになります。

もうちょっと口を大きくあけといたらよかったかな…と思いました。
後から直すかもしれません。

シェイプキーで1の値にしたときの口の開いたポーズが、maxの口の開きになるので、喋ってて、一番口を開いたときの大きさとか、ちょっと大きめに作っといた方がいいですね。

ここにノンリニアアニメーションで身体の動きをつけるとよりいい感じになります。

ちなみにここで使っているボイスはVOICEVOXのちび式じいです。使い方についての記事を書いているので、やってみたい方は参考にしてみてください。

声:VOICEVOX:ちび式じい
スポンサーリンク

関連記事

アドオンを使って発音に合わせたリップシンクもやってみました。

コメント