この記事はLive2D Advent Calendar 2015 14日目の記事です。 

(※目玉焼き法について語ると言ったな、あれは嘘だ)
(※本記事は変態向けです。サンプルのデフォーマ構造やパラメータとの関連付けを十分理解している必要があります。また初学者には余計な混乱を招いたり、精神に異常をきたす恐れがあります。回れ右して帰ってください。)

一般的にLive2Dで表情付けと 言ったら、Animator上で目や口や眉の変形や位置、角度のパラメータを指定した「0フレームのモーションデータ」だと思います。

【公式の表情制御法】
01. 表情の仕組み
02. Animator で表情を作成
03. 表情の設定と書き出し

この公式形式の利点は、既存モーションに加算や乗算で表情を合成できることです。
「モーションと表情を分離して管理しよう」という設計思想だと思われます。

これは、これでいいのですが、今回はまったく別のアプローチを思いついたので、
新しい表情の制御方法を試してみたいと思います。 


■表情マトリックス
「十字グラフ散布図」と呼んだ方がいいんでしょうか?

kidoairaku

▲十字グラフ散布図

響きのカッコよさ重視で「表情マトリックス」と呼ぶことにします。
この図のような表情管理法をふと思いついたので、試してみました。

先ず、従来のデフォーマとパラメータ構成を示します。
(テンプレート適用でイプシロンを使用)

live2d_normal
従来のデフォーマとパラメータ構成


live2d_matrix
表情マトリックス 例

実際のModelerではこんな感じです。
眉の位置、角度、変形のパラメータとデフォーマを「眉の表情用」デフォーマに一本化。
目の変形や口の変形を「目の表情」、「口の表情」デフォーマに。
それらを表情用のパラメータで制御する…っといった感じです。


喜怒パラメータと哀楽パラメータを合成した喜怒哀楽パラメータをぐりぐり動かせます。

利点:
  • パラメータひとつ(厳密にはふたつの合成)でダイレクトに表情を指定できる
  • 中間の曖昧な表情もダイレクトに指定できる(喜び気味のやや悲しみとか)
  • パラメータ数やデフォーマを大幅に削減できる
  • パラメータの点数を増やせばn×nの大量の表情も作成可能
  • 目(口)の開閉と変形を分離した故、全組み合わせパターン作らなくてもいい

欠点:
  • 既存モーションの表情変化が反映されない(目眉口のデフォーマやパラメータを削ったので)
  • 表情マトリックスで作っていない表情や目眉口の個別制御ができない
  • テンプレート適用(デフォのモデル)で作った場合、デフォーマの改造が手間
  • 目(口)の開閉と変形を分離した故、開閉双方の状態で見栄えのいい変形の調製が大変

■別案:表情筋デフォーマ

目眉口それぞれの表情用デフォーマを表情マトリックスパラメータに紐付けましたが、別の案として、表情用デフォーマを「顔の回転デフォーマ」直下に1個だけ作って、それを表情筋のように変形させることで制御してもいいかもしれません。デフォーマもより一層シンプルになります。
ちょっとやってみました。

live2d_hyoujyoukin
更にデフォーマが減少

この「表情筋デフォーマ」に喜怒哀楽を紐付けます。
同じようにグリグリ動かせます。
ただ、デフォーマだと最大限分割数を増やして大きさを限界まで小さく詰めても、微妙な表情の変化難しいです。(追加で描画オブジェクトにも喜怒哀楽パラメータに紐付けて微修正してもいいかもですが、「表情筋デフォーマ1個で管理しよう!」という趣旨から離れて微妙です)

■マトリックスの表情配置設計の問題点と赤松先生問題
パッと思い付いたのが「喜怒哀楽」だったので、喜怒、哀楽パラメータで安直に合成しましたが、この設計には欠点があります。
例えば赤松先生がよく描くような「怒っているけど笑っている」という表情の設定ができません。
「喜怒」+「哀楽」ではなく、「喜哀」+「怒楽」にすべきでしょうか?
kiaidoraku

そうすると今度は「喜びながら悲しみをはらんだ表情」っというのが作り難くなります。

そもそも「喜」と「楽」ってほとんど一緒じゃねぇか?
「喜怒哀楽」より「喜怒哀」とかの方がギャルゲ的にはいいんじゃないか?
kidoaihore
▲喜怒哀惚(4隅の表情も作りやすい)

あまり2軸設計に囚われずに3×3の9表情を作って、近いニュアンスの表情をなるべく近づけるだけでもいいかもしれません。

live2d_25

5×5点にすれば25もの表情が登録できます。


iroiro_matrix

▲25パターンもパッと思い付かないので配置は適当です。

ちなみに最大で21×21の441点の表情が登録できます。
live2d_441

「うみねこのなく頃に」の戦人君やベアトリーチェ様の顔芸もラクショーですね。

■まとめ
  • 従来の公式の方法は、モーションと表情を分離、加算乗算合成前提、Animator上で表情を付ける。
  • 表情マトリックスは、モーションと表情をセットとして考えた方法、Animator上での表情付けが簡単だが、Modeler上での設計や調製が大変。

■結論
公式の方法でいいや


明日15日はsevena7aさんによる「Live2Dを使った小物の疑似3D表現」の予定です。
お楽しみに。