表情の仕組み
表情のパラメータについて
ゲームやアプリでの表情を設定するために JSON 形式の設定ファイルを用意します。
ここで用いる JSON 設定ファイルにはデフォルト値と表情値の2つの値が記述されています。
デフォルト値と表情値のそれら2つのパラメータ値の差の値が、モデルの表情に影響を与えることになります。
「怒り」の表情を例に挙げて説明します。

表情のデフォルト値と「怒り」の表情値と、それらの差は下表の通りになります。
デフォルト | 怒り | 差 | |
左眼 開閉 | 1 | 1 | 0 |
右眼 開閉 | 1 | 1 | 0 |
目玉 X | 1 | 1 | 0 |
目玉 Y | 0 | 0 | 0 |
左眉 上下 | 0 | -0.3 | -0.3 |
右眉 上下 | 0 | -0.3 | -0.3 |
左眉 左右 | 0 | -0.3 | -0.3 |
右眉 左右 | 0 | -0.3 | -0.3 |
左眉 角度 | 0 | 0 | 0 |
右眉 角度 | 0 | 0 | 0 |
左眉 変形 | 0 | -1 | -1 |
右眉 変形 | 0 | -1 | -1 |
口 開閉 | 0 | 0 | 0 |
口 変形 | 1 | -1 | -2 |
照れ | 0 | 0 | 0 |
(※標準の設定では加算ですが、Cubism Viewerでの表情設定やプログラム次第で乗算にすることもできます。)
注意すべきパラメータ
眼の開閉について
「悲しい」表情を表現するために眼の開閉に関する 「左眼 開閉」「右眼 開閉」でデフォルト値が「1.0」、
表情値が「0.8」に設定された場合、まばたきのモーションに差の「-0.2」が加算されます。
このとき、はじめから 0.2 だけすでに眼が閉じてあるので、まばたきの動きで眼が閉じきるまでの時間が少しだけ長く、
閉じている時間も少しだけ長くなります。
逆に、「驚き」など眼が見開いているような顔で表情値が「1.2」で差が「0.2」の場合、
まばたきで目が閉じる「0」のときに「0.2」が加算されるので、目が閉じきらないということになります。
これらの場合では加算では対応しづらいので、乗算を使うと良いです。
目玉の位置について
サンプルの響のように、目玉が正面を向いていない原画からモデルを作って、デフォルト値を原画と同じ目玉の
位置にした場合、表情値の目玉の位置もデフォルト値と同じにして表情を作って下さい。
目線を逸らした表情を作りたい場合は、モーションに表情をのせときに必ず目線が逸らされていることになるので、
これを考慮した上でモーションを作成したり、目線を制御する特別な方法を導入する必要があるので気をつけて下さい。
口の開閉について
基本的に「口 開閉」のデフォルト値と表情値は「0」に設定して下さい。
もしくは、はじめから表情の設定から除外して JSON ファイルを作成しても構いません。
表情値が「0.2」など、口が半開きになるように設定すると、口パクのときに口が閉じきらずに不自然になってしまいます。
「0.2」のときに歯を噛みあわせたような口になるなど、表情の設定を見越してモデルを作成すると良いでしょう。
(しかし、そのようにするなら「口 開閉」が「0」のときに歯を噛み合わせるように作ったほうが手っ取り早いと思います。)