Live2D拡張のリファレンス(旧Ver2)
投稿日:2015年6月19日 | 最終更新日:2023年3月29日
このページは宴2までのLive2D拡張のドキュメントです。宴3でのLive2D拡張はこちらになります
宴2では「Live2D Cubism2」を、宴3では「Live2D Cubism3」をサポートしています。
宴2での「Live2D Cubism3」対応や、宴3での「Live2D Cubism2」対応の予定はありません。
目次
概要
Live2D拡張のリファレンスです。使用するには、Live2DのSDKと、拡張スクリプトが必要になりますので、「宴」でLive2Dを使ってみるを参考に、セットアップしてください。
宴の拡張スクリプトとサンプルは以下からも取得できます。
宴のLive2D拡張サンプルプロジェクトのDL
または、宴のLive2D拡張スクリプトのみののDL
Live2D拡張は、宴3にはまだ対応していません。
また、サンプル内のSampleLive2D以下のアセットは削除してもかまいません。容量を圧迫するのでリリース時には削除したほうが良いです。
Live2dForUtageをAddComponent
サンプルシーンでは設定済みですが、実際に自分で作ったシーンにLive2Dを使う場合には、
AdvEngineに「Live2dForUtage」コンポーネントをAddComponentが必要です。
リソースのインポート
Live2Dのファイルの置き場所は Resouces/プロジェクト名/Live2D 以下になります
また、リソースファイルはmodel.json形式である必要があります。Live2DViewerなどで作成してUnityにインポートしてください。
設定シートリファレンス
CharacterやTextureシートに、画像ファイル代わりにLive2Dファイルを設定していきます。
- FileNameには使用する.model.jsonを記述
- FileTypeに「Live2D」と記述
Scale値やPivotなどは、通常の設定と同じように使えます。Live2Dの基本の大きさは、Live2Dで設定したキャンバスの大きさになるため、とても大きいことがあります。Scale値で倍率設定して、大きさを調整しましょう。
コマンドリファレンス
サンプル
キャラクターの表示
基本的には、通常どおりArg1にキャラ名を指定すると表示されます。Arg2はモーション名を指定する点が若干違いますが、
基本的なキャラクター表示コマンドと同じ使い方が可能です。
ただし、Arg4に表情名を指定するなど以下のような特殊な使い方が可能になっています。
説明 | Arg1 | Arg2 | Arg3 | Arg4 | Arg5 |
---|---|---|---|---|---|
キャラの表示 | キャラ名 | 再生するモーション名 または、グループ名を指定すると そのグループ内のモーションを ランダム再生 |
レイヤー名 | 表情名 「Clear」と記述すると デフォルトの表情に戻す |
モーションの 再生タイプ |
モーションの再生タイプ
Arg5には「NoReplay」「Loop」「IdleOnEnd」という特殊なモーション再生タイプを設定できます。
Arg5(モーション再生タイプ) | 説明 |
---|---|
未記入 | モーションを再生後停止 |
IdleOnEnd | モーションを再生後、アイドル系モーションをランダムで再生します。 |
Loop | モーションをループ再生します |
NoReplay | 直前が同じモーションの場合は、モーション再生をしなおさないようにします。NoReplayは、Loopをとめる場合にも使えますし、シナリオの合流点やジャンプ先直後など、直前のモーションがわからない場合に、同じモーションを再び再生するのを避ける場合などに使ってください。 |
タッチする場所によってシナリオを分岐させる
Live2Dで設定した当たり判定設定できます。設定の仕方はこちらをご確認ください。
宴では、そのあたり判定を使って、タッチした場所によってシナリオ分岐させることが可能です。
基本的には宴の標準コマンドであるSelectionClickと同じ使い方ですが、Arg6に頭や体などのパーツ名を指定できます。
Command | 説明 | Arg1 | Arg2 | Arg3 | Arg4 | Arg5 | Arg6 |
---|---|---|---|---|---|---|---|
SelectionClick | タッチする場所によってシナリオを分岐させる | ジャンプ先のシナリオラベル | 有効にするための論理式 falseなら、有効にしない |
選択された場合に実行する計算式。 | オブジェクト名 | パーツ名 |
黄色の部分がタッチ領域。頭をタッチするか、体をタッチするかでシナリオを分岐させることができる。
その他の仕様
宴のLive2D拡張では、以下のような仕様があります。
アイドル(idle)系モーションについて
待機時の基本ポーズとして、アイドル系モーションがあります。
キャラの表示直後など、モーションが何も設定されてない場合はアイドルモーションがランダム再生されます。
また、IdleOnEndのように、特定のモーションの再生後にアイドルモーションのランダム再生をすることもできます。
アイドル系モーションには、Live2DViewerなどであらかじめモーションのグループ名を「idle」と設定しておいてください。
目パチ、呼吸
基本的には自動的にされるので、モーションには仕込む必要がありません。
ボイス
Live2DViewerなどで、モーションにボイスを仕込んだ場合でも、基本的にはそのボイスは無視され再生されません。
ボイスの指定は、宴の通常の書式(Voice列へのファイル名記入)でおこなっってください。
口パク
テキストの文字送りの間は自動的に口パクがされます。
また、ボイスファイルを鳴らしている間は、音声に合わせて口パクがされます。(ただし、現時点Unity5.1のWebGL版では非対応)
モーション自体に口パクを仕込んでしまうと、テキストやボイスと違った動きになるので、モーションには口パクを仕込まないことを推奨します。
詳細設定
Live2DForUtageのコンポーネントから、Live2Dに関する詳細な設定を変更することができます。
LipSyncType | 説明 |
---|---|
Sound Type | Live2Dのモーションに含まれるサウンドファイルの再生方法 |
Eye Blink Type | 目パチのタイプ |
Breath Type | ブレス(呼吸補正)のタイプ |
Lip Sync Type | リップシンク(口パク)のタイプ |
Text Lip Sync Speed | 口パクの速度(一秒間に何回、口を開け閉めするか) |
Voice Lip Sync | ボイスのリップシンクのタイプ |
Voice Lip Sync Scale Volume | ボイスの音量に対しての、口を開く大きさ |
Voice Lip Sync Smoothing | ボイスのリップリンクをスムーズにするか |
Sound Type | 説明 |
---|---|
Ignore | サウンド再生しない |
Voice | ボイスとして再生する |
Se | Seとして再生する |
Eye Blink Type | 説明 |
---|---|
Always | 常に行う(モーション再生中も行う) |
None | 行わない |
IdleOrMotionFinished | アイドルモーションと、モーション終了後のみ |
BreathType | 説明 |
---|---|
Always | 常に行う |
None | 行わない |
IdleOrMotionFinished | アイドルモーションと、モーション終了後のみ |
MotionFinished | モーション終了後のみ |
LipSync Type | 説明 |
---|---|
Always | 常に行う |
None | 行わない |
IdleOrMotionFinished | アイドルモーションと、モーション終了後のみ |
OnlyMotionFinished | モーション終了後のみ |
VoiceLipSyncType | 説明 |
---|---|
Always | そのキャラのボイスが鳴っている間は再生する |
None | 行わない |
OnlyInPage | そのボイスが鳴るページのみ |
ツール
再生中のLive2Dモデルのモーション名、表情名、パラメーターを表示するビュワーを追加しました。
Tools>Utage>Live2D Viewer から開きます
Motionがモーション名、Emotionが表情名、その他はLive2dのパラメーター名になります
宴のパラメーターコマンドとの連携
好感度によって頬を赤らめるなど、宴のパラメーターによってLive2Dのパラメーターを変化させることができます。
ビフォー
アフター
この機能を使うには、Live2dParamTbl{}というシートを追加して、操作するLive2Dのパラメーター名を設定する必要があります。
あとはParamコマンドを使って他のパラメーターと同様に変化させることができます。
最後に
「Live2Dでこういうことがしたい」という、ご意見・ご要望をお待ちしています。QAコーナーにお願いします。
寄せられたご意見をもとに、Live2Dさまと協力して使いやすいものにしていこうと思っています。