シェイプキーについて
こんにちは、クロスメディア・ラボのきのこです。今回のブログではキャラクターのアニメーションの中でも大切な、表情を付けることのできるシェイプキーという機能について説明していきたいと思います。
シェイプキーとは
まず簡単にシェイプキーについて説明すると、作成したオブジェクトの頂点の位置を複数パターン記憶しておく機能のことです。例えば、キャラクターモデルに「真顔」と「笑顔」の表情を用意したい場合、それぞれの表情に合わせて頂点の位置を調整し、シェイプキーの機能を使用して保存することができます。
笑顔を作ろう!
それではシェイプキーを使用して笑顔を作成していきたいと思います。
今回説明に使用するモデルは弊社のマスコットキャラクター「ミャート」です。

通常時はこの表情ですが、この表情とは別に笑顔の状態を作成し、シェイプキーを使用して好きに切り替えられるようにしていきましょう!
シェイプキーを作成していきます。
オブジェクトモードで表情を付けたいモデルを選択し、オブジェクトデータプロパティを開きます。シェイプキーの項目を開き左側にある下矢印を2回押します。

するとシェイプキーが二つ追加されますので、名前を変更しておきます。1個目に追加されたシェイプキー(ベース)は元のモデルの形を確認するためのデータなので、「Basis」などの名前にして基本的に触らないようにします。2個目以降(キー1など)に追加したシェイプキーから表情を付けていきます。今回笑顔を作るのにあたって動かしたいパーツを個別に設定していきます。まずは閉じた左目から作成していきます。後で見た時に分かりやすいように名前を付けておきます。左目のまばたき用なので「Close_Blink.L」と付けました。それではこの「Close_Blink.L」を選択し、数値を1に設定した状態で編集モードに切り替え閉じた目の形にモデルを調整していきます。

調整しました。これで「Close_Blink.L」の数値が1の時左目が閉じるようになりました。
次に右目も同様に数値が1の時に目が閉じるようにしていきます。今回使用しているミャートのモデルは目元の頂点の位置が左右対称なのでシェイプキーのコピーをすることができます。ただモデリングの過程などで左右対称に作ったはずの頂点の位置が非対称になってしまうことがあり、その場合シェイプキーのコピーが上手く使用できません。コピーをする際は先にシェイプキーのモデルの頂点を左右対称にしておきましょう。
頂点の対称化は左右対称にしたい頂点を選択して、メッシュから対称化を選択します。

これで選択した頂点が左右対称になりました。順番が前後してしまいましたが、この後のミラーの作業に影響が出てしまう可能性があるため、対称化はシェイプキーの追加をする前に行いましょう。
それでは頂点の対称化ができたところでシェイプキーのミラーを行います。
まず「Close_Blink.L」の数値を1にした状態でシェイプキーの項目右側にある下矢印を押し、「新規シェイプをミックスから作成」を選択します。するとシェイプキーが一つ追加されます。この追加されたシェイプキーが右目のまばたきになります。名前も分かりやすく「Close_Blink.R」と付けておきます。


しかしこの状態では追加されたキーの数値を1にしても右目は閉じず、左目の形が崩れてしまいます。左目同様右目も閉じるようにするためにシェイプキーのミラーを行います。
ミラーの仕方は追加された「Close_Blink.R」を選択して、右側の下矢印を押し「シェイプキーをミラー反転」を選択します。

これで右目も数値を1にした時に閉じるようになりました。

次に開いた口を作成しますが、こちらは左目のシェイプキーを作成した時と同じ手順で設定していきます。シェイプキーを追加して、編集モードで開いた口の形に頂点を調整していきます。

調整をしたものがこちらになります。これで、無事に笑った顔のミャートができました!
今回はパーツごとに個別にシェイプキーを設定したので、ウインクや、口だけを開くことも可能です。
シェイプキーを使いこなすことでキャラクターに様々な表情を付けることができ、アニメーションによる表現の幅も広がりますのでぜひ活用してみてくださいね。
今回シェイプキーの説明に使用したミャートは9月末にリニューアルオープンしたバーチャルCOMCOMに登場しています!
ワールドの色々な所に登場しているので自由に歩き回って探してみてくださいね。
メタバース制作|体験型ホームページをメタバースで作ろう – 株式会社コムフォート