After Effects│音声データから母音を抽出して口パクアニメーションを付けるスクリプト│Wav2Lab

音声データから口パクアニメーションを自動生成したい

まえまえからやってみたかったボーカロイドの口パク技術を試してみました。

音声データがしっかりしてれば、口パクアニメーションの下地に使えそうな方法です。

目次

STEP1:音声データの用意

自分のボイスデータが波形的にいけてなかったので効果音ラボさんから音声データを用意しました。

参考:https://soundeffect-lab.info/sound/voice/line-girl1.html

STEP2:mp3からwavに変換

mp3からwavに変換します(line-girl1-denshagatouchaku1.wav)。音声データはある程度の長さは必要なようです(今回は4秒)。

STEP3:Wav2Labを使って母音データの抽出

下記のURLからWav2Labのダウンロードがあるので、ダウンロードして解凍します。

ダウンロード:https://www.nicovideo.jp/watch/sm34735545

STEP4:データ生成

Wav2Lab.exeを起動して、音声データをドラッグ&ドロップします。line-girl1-denshagatouchaku1.labというデータが生成されます。

※閾値と単位時間はデフォルトを推奨します。単位時間早くしてもやたら早く切り替わってしまいます。

※生成された.labファイルはメモ帳などでちゃんと記録されているか確認しておくこと。音声がいけてないと全然データ取れてない結果になります。

STEP5:母音データをLab2MarkerでAEのレイヤーマーカーに変換

@BeamManPさんのLab2Marker.jsxをダウンロードします。

STEP6:データの作成

適当なコンポジション(あとであいうえおの口パクデータをいれる)を用意します。

コンポジションを選択して、ファイル>スクリプト>スクリプトファイルの実行でline-girl1-denshagatouchaku1.labを選択します。

スクリプト実行後、母音のレイヤーマーカーが生成されます。

STEP7:「あいうえおん」の口パクアニメーションを適応

先程のコンポジション内にLive2Dデータをインポートします。公式リンクを参考に口のアニメーションを1秒を置きに作成します。

参考:https://docs.live2d.com/cubism-editor-manual/after-effects/?locale=ja

0s(無発声)
MOUTH_FORM 0
MOUTH_OPEN_Y 0

1s(あ)
MOUTH_FORM 1
MOUTH_OPEN_Y 1

2s(い)
MOUTH_FORM 1
MOUTH_OPEN_Y 0.4

3s(う)
MOUTH_FORM 0
MOUTH_OPEN_Y 0.3

4s(え)
MOUTH_FORM 0
MOUTH_OPEN_Y 0.6

5s(お)
MOUTH_FORM 0
MOUTH_OPEN_Y 1

6s(ん)
MOUTH_FORM 0
MOUTH_OPEN_Y 0

STEP8:仕上げ

親のコンポジションにタイムリマップをかけます(Ctrl+Alt+T)。タイムリマップに下記のエクスプレッションを挿入します。

buffer = 0.1;
nKey = marker.nearestKey(time);
if(time < nKey.time){
cIndex = nKey.index-1;
} else {
cIndex= nKey.index;
}
ret = 0;
if(cIndex > 0)
{
nowmarker = marker.key(cIndex);
if(nowmarker.time + nowmarker.duration + buffer > time)
{
comment = nowmarker.comment;
    if(comment == "a"){
        ret = 1;
    }else if(comment == "i"){
        ret = 2;
    }else if(comment == "u"){
        ret = 3;
    }else if(comment == "e"){
        ret = 4;
    }else if(comment == "o"){
        ret = 5;
    }else if(comment == "N"){
        ret = 6;
    }
}
}
ret;

このままだとパカパカ口が切り替わるだけなので、すこし滑らかなカーブにします。

タイムリマップを選択してアニメーション>キーフレーム補助>エクスプレッションをキーフレームに変換します。ウインドウ>スムーザー>適応で適当にキーフレームを間引きます。

アニメーションカーブを全選択してイーズをかけたら、あとは再生しながら微調整します。

まとめ

本来はボカロ(とAviUtl)で使う技術のようですが、たまたまAEに変換するツイートを見たので試してみました。

うまくいけば、リップシンクを手付けする下地になるので、時短になるかもしれません(結局最後の詰めは、手動で調整になりますが)。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次