Blenderのシェイプキーを完全に理解する

キャラクターのモデリングが完成すると、次はキャラクターに表情を付ける段階に入ります。表情付けによく利用される機能に、シェイプキーというものがあります。これは、オリジナルメッシュをもとにした変形を保存しておく機能です。この記事ではシェイプキーの使い方について詳しく解説していきます。

シェイプキーとは

シェイプキーとは、オリジナルのメッシュをもとにしたデフォーム(変形)を保存しておく機能です。

メッシュの頂点ごとに 、元の位置からどれだけポリゴンを動かしたかを保存して、ステートとして呼び出すことができます。

シェイプキーはBlenderでの呼び名であって、ほかのソフトではモーフターゲットブレンドシェイプと呼ばれたりします。また、シェイプキーを操作することをモーフィングといったりもします。

シェイプキーの付け方

シェイプキーはプロパティから追加します。シェイプキーを追加したいオブジェクトを選択して、Shape Keysリストの右側にある+を押下します。

初回の追加だと、Basisというオリジナルのメッシュデータが追加されるので、もう一度+を押して、Key1を追加します。

シェイプキーをエディットする

シェイプキーを作成したら、あとはエディットモードで編集するだけです。

目的のシェイプキーをクリックしてから、エディットモードで編集することを忘れないでください。間違えて別のキーを編集してしまうことが結構あるので注意しましょう。

表情まわりで使用されるシェイプキーですが、頂点一つ一つを動かすのは面倒ですし、モデルのシルエットが崩れやすくなります。Blenderにはプロポーショナルエディティングという機能があるので、これを使いながらメッシュを編集することをおすすめします。

プロポーショナルエディティングについては、以下の記事が参考になります。

シェイプキーのパラメータについて

プロパティで設定できるパラメータは、Blenderの外に持っていくことができません。もし、UnityやUnrealEngineといった、別のソフトに出力するのであれば、あまり気にしなくてもよいです。

Relativeモード

シェイプキー同士を合成するモードです。

Valueで、選択中のシェイプキーの強度を指定できます。Range Min / Maxでは、Valueの可動範囲を変更できます。

Vertex Groupに頂点グループを指定すると、特定の頂点だけを、シェイプキーの効果からマスクすることができます。Relative Toは、どのシェイプを基準にデフォームするかを指定できます。

Absoluteモード

時間経過によるデフォームを行う場合は、こちらのモードを使用します。Interpolationでは、シェイプ間の補完方法が選択できます。Evaluation Timeでは、時間経過(=フレーム)を指定します。

Interpolationの違いは、下のようなイメージです。CardinalとCatmull-Romにあまり違いはありません。

Shape Key Lock

選択中のシェイプキーを、Valueに関係なく3Dビューポートに固定します。これをオンにすると、Valueがグレーアウトし、常に1を設定している状態になります。

Shape Key Edit Mode

合成済みのシェイプをエディットモードに反映します。本来、シェイプキーのエディットモードでは、そのシェイプキーが持つジオメトリーのみを編集できますが、これをオンにした状態では、シェイプキーを合成した状態のジオメトリーを編集できます。

Clear Shape Keys

Relativeモード限定。すべてのValueをゼロにリセットします。

Re-time Shape Keys

Absoluteモード限定。追加したり順番を入れ替えたシェイプのフレームを再設定します。

シェイプキーのオプションについて

+-ボタンのすぐ下あるvボタンから、選択中のシェイプキーに対するオプションが選べます。あまり出番がないものが多いのですが、一応紹介しておきます。

New Shape From Mix

現在合成されているシェイプキーを、一つのシェイプキーとしてリストに追加します。

Mirror Shape Key / Mirror Shape Key (Topology)

ローカルx軸を基準に、シェイプを反転させます。Mirror Shape Key (Topolgy)は、メッシュフローを参照して反転するらしいのですが、思った通りにならないことが多いです。

Join as Shapes / Transfer Shape Key

Join as Shapes は、同じ頂点数を持つモデルから、選択中のシェイプキーをコピーします。Transfer Shape Keyは、同じ頂点数を持つモデルに、選択中のシェイプキーを転送します。

まったく同じメッシュ構造を持つモデル同士で、シェイプを受け渡すことにしか使えません。 このオプションを使用するには、オブジェクトを複数選択している必要があります。

Delete All Shape Keys

すべてのシェイプキーを吹き飛ばします。………恐ろしや。

Move to Top / Move to Bottom

選択中のシェイプキーを一番上or下に移動させます。一段だけ上げたいor下げたい場合は、vボタン直下の△▽ボタンを使ってください。

シェイプキーの注意点

シェイプキーはそんなに万能ではないです。シェイプキーを使う上での注意すべき点が、そこそこあります。

タイムラインな変形遷移はアニメーションが必要

シェイプキーで保存できるのはあくまで形(シェイプ)だけなので、セリフに合わせたリップシンクやシーンカットに合わせた表情変化は、アニメーションにシェイプキーを組み込んであげる必要があります。

頂点をカーブしながら動かしたいとか、ある地点で一時停止してほしいとか、そういうアニメーション的な動きを、シェイプキーだけで表現することはできません。

複雑なシェイプキーはデータを重くする

シェイプキーは動かした頂点の移動量を保存するので、動かす頂点が多くなるほどデータが重くなります。

検証用に、頂点数3万のモデルを用意しました。シェイプキーを持たない状態だと、およそ1.35MBです。このモデルにシェイプキーを一つ持たせます。一頂点だけ動かしたものと、全部の頂点を移動させたものをfbx形式で出力し、ファイルサイズを比較します。結果は以下の通りになりました。

デフォルト1頂点だけ移動全頂点を移動
ファイルサイズ(.fbx)1.35 MB1.35 MB1.78 MB

この結果から、動かす頂点が多くなればなるほど、データの容量が肥大していくことがわかります。

まさかとは思いますが、シェイプキーでポージングするのはやめましょう。また、空のシェイプキーをいくつ持たせても大して影響はありませんが、シェイプキー毎にデータのオーバーヘッドが生じるので、使わないものは削除しておくのが無難です。

シェイプの使いまわしができない

シェイプキーはモデルのメッシュに依存するので、ほかのモデルに流用することできません。制作するキャラクターごとに設定していかなければならないので、プロジェクトによってはかなりのロスになります。

表情データを使いまわしたいのであれば、ボーンを使ったアニメーションベースで動かすことを検討してください。

モディファイアをラスタライズできない

これは後々問題になるので、注意しましょう。シェイプキーを持ったモデルは、モディファイアをラスタライズできなくなります。モディファイアをかけることはできるのですが、Applyボタンで確定することができなくなります。

とくにジオメトリーに関係するモディファイアを使用している場合は気を付けましょう。(ex. Mirrorモディファイア、Decimateモディファイア、Maskモディファイアなど)

オリジナルのメッシュを編集しにくい

後からオリジナルのメッシュを編集すると、だいたいのシェイプキーは崩れます。シェイプキーが保存しているのは、オリジナルからの移動差分です。オリジナルの頂点が1メートル横にずれると、その頂点に設定されたシェイプキーも1メートル横にずれます。

オリジナルのメッシュを編集したことでシェイプキーが崩れた場合は、基本的にはシェイプキーごと作り直した方がよいです。

プラットフォーム別のシェイプキー上限

ちょっと余談になりますが…….。モデルに持たせられるシェイプキーの数自体に制限はありません。しかし、モデルをアップロードするプラットフォームによっては、上限数を設定しているところがあるので、その点は注意が必要です。

たとえばclusterだと、ブレンドシェイプの上限が64になっています。64個のシェイプは結構余裕があるので、使い切ることはそんなにないかなぁ、と思いますが一応チェックしておく方がいいでしょう。

cluster カスタムアバターの制限

カスタムアバターの制限, cluster カスタマーサポート

まとめ

シェイプキーの大まかな使い方について解説しました。

モデルをキャラ付けするためには、シェイプキーを使ったモーフィングが欠かせません。この記事では、表情のモデリングについて解説することはありませんでしたが、非常に参考になるアドオンがあるので、下の記事から、ぜひご覧になっていってください。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です