LIVE2DのキャラでUnity上で、音声に合わせて口パクさせていきたいんですが、
それ以外にも、自動で瞬きや、キャラが自動でゆらゆらさせて、自然な感じを出していきたいと思います。
LIVE2DのキャラでUnity上で、音声に合わせて口パクさせたい
ということで、
まずは音声に合わせて口パクをするというところまでを
以下のチュートリアルに沿って書いていきます。
そもそもLIVE2Dっていうのは、
二次元のバーチャルキャラを作れるサービスですね。
厳密にいうと、違うかもですが。
そして、
今回の記事に関して、
LIVE2Dのチュートリアルを見ればええやんとなりますが、
細かくて、繰り返すには苦痛。
自分なりにそのチュートリアルをさらに、使いやすいメモに書き換えていきます。
ということで、
まず、
LIVE2DをUnityで使うために、LIVE2Dのホームページから、
Cubism SDK for Unity をダウンロードします。
これで、UnityでLIVE2Dのキャラを操作できるようになります。
ダウンロードしたら、ダブルクリックするか、
ファイルをUnityへ投入し、インポートします。
Unityにキャラを表示させる。
まず、
この記事がわかりやすいので、
わからなければ、この記事を参考にしてください。
キャラが必要なのでサンプルデータを今回は使ってみます。
ということで、
LIVE2Dからサンプルデータをダウンロードします。
が、ダウンロードできるキャラクターは、限られています。
キャラを色々使い方は、有料にするか、
自作でキャラを作る必要があります。
LIVE2Dでキャラを作るには
キュビズムエディターというものを使います。
ここでは、詳しい使い方は、紹介しません。
チュートリアルをご覧ください。
というか、自分自身が理解できてませんので。
mocファイルを作成
で、キャラを用意できたら、
Unityでキャラを表示させるためには、
mocファイルというものを作らないといけません。
それも、
キュビズムエディターでできるので、
キュビズムエディターを起動します。
キュビズムエディターの開くから、
先ほどダウンロードしたhiyori_free_t06.cmo3を開きます。
そうすると、キャラが表示されると思います。
そして、ファイル→組み込み用ファイルの書き出し→moc3ファイル書き出し
で、ファイルを保存します。
そうすると、mocファイルができると思います。
Unityの操作
Unityをまず2Dで作成します。
そして、
開いたら、先ほどダウンロードしたUnityのSDKをインポートします。
これをUnityにドロップすると、
このような画面になると思います。
そして、右下のインポートをクリック。
そうすると、
エラーが出る場合があります。
以下のようなエラーが出る場合があります。
Live2DCubismCore.bundle”は、開発元を検証できないため開けません。
これは、Macの場合、
システム環境設定→セキュリティとプライバシー→一般で、
実行許可が下に表示されてると思うので、
それを許可(画像では、許可してしまっているので出ていません)
そうすればOKです。
無事にインポートできたと思います。
そして、先ほどのmoc3ファイルを含めたフォルダをUnityにインポートすると、
prefabファイルができると思います。
そのprefabファイルをドロップすると、
キャラが表示されると思います。
prefabファイルができない場合は、
ファルダの中がおかしい可能性があります。
それでは、チュートリアルに沿って、
キャラクターにモーションなどをつけていきます。
キャラクターの視線をドラッグで追従できるようにする設定方法
キャラクターに視線を追従していく設定を説明していきたいと思います。
チュートリアルには、
CubismLookControllerをアタッチすると書いてあります。
アタッチってなんやねん?となりますが、
要は、Unityのコンポーネントに追加ということですね。
まず、先ほど追加したhiyoriのprefabファイルを選択、
右のコンポーネントを追加で、
CubismLookControllerと入力します。
出てきたら、追加します。
チュートリアルに沿って、ブレンドモードはオーバードライブにします。
オーバードライブの理解が及ばないので、オーバードライブの意味を理解したい方は、チュートリアルを見てください。
その後、
上図のターゲットの部分に、
CubismLookTargetのスクリプトをアタッチさせた、
gameprojectをアタッチします。
スクリプト っていうのは、プログラムですね。
図のように、create→C#スクリプト でできます。
ファイル名は、なんでもいいですが、
CubismLookTargetとします。
CubismLookTargetのスクリプトは、チュートリアルのをそのままコピペします。
で、このプログラムをそのまま、ビジュアルスタジオなどに貼り付けます。
自分は実行エラーが出ました。既に存在しているみたいな警告でした。
意味不明だったので、
一回、全部スクリプトファイルを消して、
再度、やり直したら大丈夫でした。
スクリプト ができたら、
新しくゲームプロジェクトをつくり、
これにアタッチします。
そして、このゲームプロジェクトを先ほどの、
ターゲットの部分にアタッチします。
これで、視線の追従の設定が終わりました。
次に、実際に目と顔を動かし方について、
書いていきます。
ドラッグで目と顔を追従するようにする
カーソル?キーポインター?(名前あってる?マウスとかで画面上に動いてる矢印のこと)をドラッグしながら動かすと、
目と顔を追従させる方法を説明していきます。
まずは、コンポーネントに、
下図のヒエラルキーの中の、
hiyoriの階層に、パラメーターというものがあると思います。
その中の、
PARAM_ANGLE_XとY
PARAM_EYE_BALL_XとY
が下図のようにあるとおもいます。
それを選択し、そこに、
CubismLookParameteをアタッチしていきます。
下図の右側のように一つずつですね。
これで、再生ボタンを押して、
ドラッグして動かすと、顔と目が追従してくると思います。
キャラクターを自動でまばたきをさせるには
次は、キャラクターを自動で瞬きする設定をこちらのチュートリアルに沿って
説明していきます。
モデルのプロジェクトに、
CubismEyeBlinkControllerというコンポーネントをアタッチします。
アタッチできたら、チュートリアルに沿って、
ブレンドモードをオーバードライブに設定します。
これで、瞬きの設定はまず、終わりました。
次に、どこを瞬きさせるかのパラメーターの設定をしていきます。
まばたきをさせるパラメータを指定
CubismEyeBlinkParameterというスクリプトを、
まばたきさせたいパラメーターにアタッチします。
具体的には、
ParamEyeLOpenとParamEyeROpen
です。
以下の図のように、
先ほどと同じように、一つずつコンポーネントに追加していきます。
これで、まばたきできる状態になりました。
次に、自動で瞬きさせる設定をします。
自動でまばたきをさせる設定をする
モデルにCubismAutoEyeBlinkInputをアタッチします。
これで再生ボタンを押せば自動でまばたきしてくれると思います。
もし、動かない場合は、
スクリプト名が紛らわしいので、
スクリプト名やアタッチしてるところを間違えている可能性があるので、
確認してくださいね。
音に合わせてキャラクターを口パクさせる
ようやく、本題です。
口を動かすには、
まず、キャラクターに、口を動かすCubismMouthControllerをコンポーネントに追加します。
で、またブレンドモードはオーバードライブにしておきます。
次にパラメーターの設定をするので、
キャラクターのパラメーターMouse0penYにCubismMouthParameterを検索し、コンポーネントに追加し、アタッチします。
次に、音声を追加する設定をします。
キャラクターにCubismAudioMouthInputというコンポーネントを追加します。
新たに、
ゲームオブジェクトを作成し、(onseiyouとしときます)
そこに、
AudioSourceというコンポーネントを追加し、
そこにオーディオクリップというところがあるので、
そこに音声データをアタッチします。
そして、そのゲームオブジェクト(ここではonseiyou)を
CubismAudioMouthInputのAudio Inputにアタッチする。
チュートリアルだと、
ゲイン1とsmoothing5になってるが、
smoothingの値が1までしかいないので、多分ゲイン5だろう。
というよりも、このキャラクターだと、
ゲインをあげないと口を大きく開けてくれない。
もっと、大きく口を開閉させたい場合、
キュビズムエディターの方で、
口のサイズを調整するしかないです。
とりあえず、
これで、音声に合わせて口パクはできると思います。
より高度に、あ、い、う、え、お、によって、口の開き方を調整することは可能ですが、
ちょっと、できなかったので、需要があれば、
またの機会にお伝えするかもしれません。
ついでに、
そのあとのチュートリアルのキャラクターを周期的に動かすも、
お伝えします。
キャラクターを周期的に動かす。
まず、モデルに
CubismHarmonicMotionCotrollerをコンポーネントに追加します。
次に、動かしたパラメーターに、
Cubism Hamonic Motion Parameterをアタッチします。
例えば、チュートリアル通りにやると、
ParamAngleX
に追加します。
そうすると、首を周期的にふります。
※注意
ParamAngleXにアタッチしても、
動かない場合、
ドラッグで動くLOOK controllerの設定してと、
自動で動かない場合があります。
そんな時は、
LOOK controllerのチェックをはずすと自動で動くようになると思います。
まとめ
基本的には、
キャラクター自体に、
controllerのスクリプト をアタッチし、
動かしたい部位に、
例えば、
目の開閉だったら、目のパラメーターに、
目を動かすパラメーターのスクリプトをコンポーネントに追加していくという流れですね。
ややこやしいですが、
なれてくれば、すぐできるようになると思います。
自分は、忘れては、やりの繰り返しです。
コメント