Live2D
このページは宴3でのLive2D拡張のドキュメントです。宴2でのLive2D拡張はこちらになります
宴2では「Live2D Cubism2」を、宴3では「Live2D Cubism3」をサポートしています。
宴2での「Live2D Cubism3」対応や、宴3での「Live2D Cubism2」対応の予定はありません。
宴3では、Live2DのCubism3に対応しています。
Cubism3がリリースされたばかりで公式のドキュメントなどの情報が不足しているせいもあり、
宴独自ではない、Unityの基本的な操作方法やLive2DのUnitySDKの最低限な使い方も合わせて紹介しています。
Unity初心者向けの細かな手順や、エラー対応なども詳しく載せてしまっているため、複雑な手順に見えますが、慣れてしまえばとても簡単にできるかと思います。
(将来的にはおそらくLive2D公式からより詳細なドキュメントが公開されると思います。)
目次
Live2Dとは
Live2Dは、2Dキャラの見た目の維持したまま、3Dキャラのように滑らかで動的なアニメーション表示をするという、2Dと3Dのいいとこどりという夢のような技術です。
公式サイトはこちら http://www.live2d.com/
2017年4月に、Cubism3という新バージョンがリリースされました。
宴3ではこのバージョンに対応していくことにしています。
サンプルイメージ
Live2Dの開発者登録とSDKのDL
Live2DのUnitySDLのパッケージは以下から取得できます。
ライセンス等は必ずLive2Dの規約に従ってください。
Live2D Cubism3のUnitySDK
* ) 2017/4/30現在、Cubism3のUnitySDKは、Unity5.6.0以上が必要です。基本的にはLive2DSDKがバージョンアップされた時点の最新のUnityが必要になるようです。
DLしたパッケージファイルをUnityにドラッグアンドロップでUnityにインポートします。
- ) 2017/4/30現在、インポート直後に一部エラーメッセージがでることがあります。
いったんUnityを再起動してください。それ以降は無視しても問題ないようです。
エラーの詳細はLive2D公式にお問合せください。
Live2D Cubism3のUnitySDKの基本的な使い方
Live2D Cubism3のUnitySDKはまだドキュメントがないため、ここで大ざっぱに使い方を補足します。
(将来的にはLive2D公式でドキュメントが公開されると思いますので、その際にはそちらのドキュメント参照してください)
モデルのインポート
基本的には、素材一式のフォルダを丸ごとドラッグアンドドロップでUnityにインポートするだけです。
インポートすると、Unity形式のアニメーションクリップや表示用のプレハブが自動的に作成されます。
描画順の設定
3D用のカメラ(Perspective)で表示する場合は、デフォルトのままでよいのですが、
2D用のカメラ(Orthographic)で表示する場合は、以下のように描画順の設定方法変更する必要があります。
Unityのメカニムを使ってアニメーションを設定
Unityのメカニウムという仕組みを使ってアニメーションを手動で設定する必要があります。
Unityのメカニウムになれていない人のために、最低限の手順を載せておきます。
さらに詳しい使い方は、Unity公式のメカニウムのドキュメントを確認してください。
https://docs.unity3d.com/ja/540/Manual/Animator.html
Animatorコンポーネントを追加
プレハブを選択して、AnimatorコンポーネントをAddComponentします。
アニメーションコントローラーを作成し、設定
AnimatorContollerを作成します。
作成したアニメーションコントローラーを
プレハブのAnimatorコンポーネントに設定します。
アニメーションコントローラーにアニメーションクリップを設定
Window>Animatorでアニメーションコントローラーの編集ウィンドウを開きます。
右クリックで、新しいStateを作成します。
作成したStateの名前を変更し、アニメーションクリップを設定します。
(Stateの名前はアニメーションクリップと同じ方が誤解がないでしょう)
さらに、体のモーションと別に表情用のモーションを同時に再生するために、表情用のレイヤーを作ります。
作成した表情用のレイヤーに、各表情のStateを作成・設定していきます。
宴のLive2D拡張の使い方
ここからは、宴でLive2D拡張をつかうまとめです。
実行には、「宴」と、Live2D本家のSDK、以下に紹介する拡張スクリプトが必要です。
宴本体の購入とインポート
Unityに新規プロジェクトを作成して「宴3」をAssetStoreから購入、インポートします。
- ) 2017/5/4 現在、宴の最新版(3.0.8以上)が必須です。
宴のLive2D拡張のDLとインポート
宴でLive2D拡張を使うには以下のパッケージをDLしてください
宴3のLive2D拡張サンプルプロジェクトのDL
パッケージをダブルクリック(またはUnityのプロジェクトウィンドウにドラッグ&ドロップ)すると
宴のLive2D拡張をインポートできます。
サンプルの実行
Live2Dのライセンスの都合上、サンプルモデルを再配布できないので、サンプルにはモデルデータは含まれていません。
なので、そのままではサンプルは実行できません。
以下の手順で、表示したいLive2Dモデルのプレハブを設定すると、サンプルが実行可能になります。
宴の新規プロジェクトの作成
プロジェクトの作成方法や、基本的な使い方は宴の基本的な流れと同じです。
チュートリアルなどを参考にして、新規プロジェクトを作成してください。
プレハブに宴用のコンポーネントを追加
Live2D表示用のプレハブを宴で表示するためには、
UtageForLive2D/Scripts/AdvGraphicObjectLive2D をAddComponentします。
プレハブの置き場所を変える
プレハブの置き場所を
作成したプロジェクト名/Resources/プロジェクト名/Texture/Character 以下に置きます。
Texture/Character以下であれば、サブフォルダを作っても構いません。
キャラクターシートを編集
Live2Dの表示は、基本的にはプレハブを使った表示になります。
こちらのやり方とほぼ同じです。
唯一、キャラクターシートのFileTypeを「Custom」とする点だけ違います。
テクスチャ描きこみ
テクスチャ書き込みの設定をすると、トランジションやフェードを使うことができます。
ただし、通常よりも負荷が高いので注意してください。
大きさの調整
表示の大きさの調整は、キャラクターシートのScale値でも設定可能ですが、
テクスチャ描き込みを使う場合は、描き込んだテクスチャを引き延ばすことになり、劣化して見える場合があります。
そういった場合は、プレハブの大きさそのものを変えたほうが良いでしょう。
キャラクターシートを編集
Live2Dの表示は、基本的にはプレハブを使った表示になります。
こちらのやり方と同じです。
キャラクター表示の際に、Arg2にモーション名(メカニムで設定したState名)を記述すると、そのモーションを再生します。
口パクに対応する
ソースコードを修正
口パクに対応するには、Live2D公式のUnitySDKにまだ不具合があるため、一部Live2Dのソースコードを書き換える必要があります。
Github上では修正済みですので、このようにコードを変えましょう。
https://github.com/Live2D/CubismUnityComponents/issues/1
おそらくすぐに更新版のパッケージが公開されると思います。
パラメーターオブジェクトにコンポーネントを追加
口パクをするためには、どのパラメーターが口パクの影響を受けるかをプレハブに設定する必要があります。
ただし、パラメーターのオブジェクトはプレハブの深い階層にあるため、いったんプレハブをシーンに置いてから編集する必要があります。
口パク用のコンポーネントを追加
Live2Dにはすでに公式の口パク用のコンポーネントがありますが、
それと宴の処理をつなげる必要があります。
UtageForLive2D/Scripts/Live2DLipSnychコンポーネントをAddComponentします。
これで、自動的にテキストやボイスの再生に合わせて口パクをするようになります。
口パクの課題
宴の口パク用のコンポーネント(Live2DLipSnych)は、シナリオの状況に合わせて、Live2Dの口パクコンポーネントをオンオフしているだけです。
それ以上の細かな設定は、Live2Dのモデルや口パクのコンポーネントの数値を調整するなどしてください。
宴側でLiv2d側の更新を追いかけてサポートするのは非常に困難ですので、やり方に関しては、Live2D公式に問い合わせてください。
現状の口パク処理はいくつか問題があります。
まず、音量に従って口パクする場合に、Live2Dのデフォルト設定では変化が小さすぎる点です。
これもおそらくそのうち修正されるかと思います。
ほかにも、元の表情が口を閉じている場合と、口を空けている場合でやり方を変える必要がでてきそうです。
基本的にプレハブで設定できるのは、1モデルに対してどちらかのやり方しかできないため
・口を開けている表情のときに、口パク後に口を閉じてしまう
・口を閉じている表情の時に、口パク後に口を口を開いてしまう。
・または口パク後から一瞬でもとの表情の口に戻るため、アニメーションがスムーズではなく違和感がある。
・その他、半開きの口など、半端に空いているときや、表情によって口パクの大きさを変えられない。
・ボイスの音量設定が小さいと、自動的に口パクも小さくなる。(音量が0だとずっと閉じたままになる)
などの問題があります。
これらに対応するためには、以下のような拡張が将来的に必要になってきます。
1、 表情ごとに設定を細かく決める
2、 表情ごとに「口パクつき表情アニメーション」を別途作成して、それを再生
おそらく1で対応することになると思いますが、そのほかに良いアイディアがあったらお願いします。
UI画面でも使う場合
UI画面など、宴のシナリオの外でもLive2Dを表示する場合はLive2DのUnity拡張のやり方に従って設定してください。
ただし、宴のシナリオで使う同じプレハブを宴の外で使ってしまうと、宴のシナリオ側で自動的にアンロードされてしまい表示できなくなってしまう恐れがあります。
Static Asset Mangaerにプレハブを設定して、ロード・アンロードの対象から外すか、
プログラムから明示的に宴のファイルマネージャーを使ってロードや参照の処理をするようにしてください。
補足
Cubism3のUnitySDKは、Cubism2のUnitySDLとは、全く構造が変わっています。
そのため、宴2までのLiv2D拡張との互換性はありません。
また、揺らぎ処理や目パチ、アイドルモーションへの対応などもできなくっています。
(ただし、アイドルモーションについては、メカニウムで自動遷移を設定することで制御可能かと思います)
Cubism3のUnitySDKはかなりUnity上でのカスタムが容易になっています。
おそらく、宴側で何かをする必要はあまりなく、Unity側のプレハブへコンポーネントを追加したり、メカニムなどを設定することで対応可能になるかと思います。
シナリオが絡まないただのLive2D表示の問題など宴に関係ないことやLive2Dの使い方に関しての質問には対応できませんので、Live2D側に公式へ質問してください。
また、メカニムの使い方などのUnity自体の操作方法への質問に関しても対応はできません。Unity公式へ質問をしてください。