サイトアイコン ほろほろりドットコム

[Blender 2.8] 保管した形状を補間してアニメーションを補完する [シェイプキー]

Blender シェイプキー 3DCG モデリング 口 表情モーフ

[Blender 2.8] 表情や筋肉の動きのアニメーションを作成するに便利な、『シェイプキー』の機能と使い方のご紹介

今回の記事は、Blenderで『メッシュオブジェクト』が持つプロパティの1つである『シェイプキー』についてご紹介させていただきます。

『シェイプキー』は、オブジェクトをアニメーション用の新しい形状へ変形するために使用される機能です。

主にモデルの「顔の表情」や「筋肉の動き」等を制御するのに使用されます。

目次

『シェイプキー』とは?

『シェイプキー』は、冒頭でもお話しした通り、オブジェクトをアニメーション用の新しい形状へ変形するために使用される機能です。

表情その1
表情その2
表情その3

メッシュや、カーブ、サーフェス、ラティスなど、「頂点を持つオブジェクト」に対して使用できます。

他に、”モーフターゲット”または”ブレンドシェイプ”と呼ばれる場合もあります。

ブレンドシェイプ

アニメーション手法の1つ。頂点数などの構造は同じで、形はちがうモデルを複数用意しておき、それぞれの形をブレンドして新しい形をつくり出す。フェイシャル(表情)のアニメーションに多用される。フェイシャルで使う場合は、あらかじめ様々な表情のモデルをつくっておき、それらの形をパラメーターの調整で組み合わせられるコントローラーを制作することが多い。

引用元:ブレンドシェイプ | CG用語辞典 | CGWORLD Entry.jp

モーフ ターゲット は、何らかの方法で変形された特定のメッシュの頂点位置のスナップショットです。例えば、キャラクター モデルで、顔の形状を変えて表情を作り、その編集バージョンをモーフ ターゲットとして保存します。アンリアル エンジンでは、モーフ ターゲットをブレンドし、キャラクターの顔の表情を作ります。モーフターゲットを FBX 経由でアンリアルにインポートし、アニメーション シーケンスに入れることができます。

引用元:FBX モーフターゲットのパイプライン | Unreal Engine ドキュメント

シェイプキーの最も一般的な使用例は、キャラクターのフェイシャルアニメーション、および骨格リグの調整と改良です。

『シェイプキー』による調整無し
『シェイプキー』による調整有り

これらは、ボーンなどによる回転とスケールの組み合わせで達成できるものよりも、結果の形状をより詳細に制御する必要がある、有機的な柔らかい部分と筋肉のモデリングに特に役立ちます。

『シェイプキー』が制御するものは具体的には何かというと、“頂点”の位置または移動量です。

「頂点を持つオブジェクトに使用できる」とお話ししましたが、そもそも、この『シェイプキー』が操作するのは“頂点”なので、当然と言えば当然ですね。

Blenderでの『シェイプキー』の扱い方

『シェイプキー』の基本的な使い方

シェイプキーは、プロパティエディターの[オブジェクトデータ]からアクセスできる[シェイプキーパネル]から作成します。

シェイプキーを変更するには、最初にパネルでシェイプキーを選択してから、オブジェクトの頂点を3Dビューポートの新しい位置に移動します。

例えば、立方体の『メッシュオブジェクト』を用意したとして、それを細分化した状態の形状を”ベース”という名前の『シェイプキー』として登録します(この最初に作成したシェイプキーが、そのオブジェクトの基本の形状として登録されます)。

『シェイプキー』 “ベース”

その後、隅と面の中央部分をオブジェクト中心から放射状移動させて変形させた状態の形状を”キー1″という『シェイプキー』として登録します。

『シェイプキー』 “キー1”

パネルには、シェイプの現在の値(影響、ウェイト)に影響するコントロールがあります。 単独で図形を表示したり、他の図形と組み合わせたりすることができます。

例えば”キー1″の方で[値]の数値を動かすと、[基準の対象]となっている”ベース”の形状と”キー1″の形状を行ったり来たりします。

『相対シェイプキー』と『絶対シェイプキー』

メッシュ(カーブ、サーフェス、またはラティス)には、シェイプキーに”相対”と”絶対”という2タイプのスタックが用意されています。

この2タイプは、シェイプキーパネルのすぐ下にある[相対]というチェックボックスのチェックの有無で変更出来ます。

『相対シェイプキー』と『絶対シェイプキー』の切り替え

説明のため、「ベース」を含めて以下の5つのシェイプキーを作成しました。

シェイプキー”ベース”
シェイプキー”↖”
シェイプキー”↗”
シェイプキー”↙”
シェイプキー”↘”

これを使って、『相対シェイプキー』と『絶対シェイプキー』を、それぞれにおいての「値」「ベース」という2つのプロパティの違いと共に、ザックリとした概要をご説明します。

『相対シェイプキー』

相対シェイプキー

シェイプの移動量を、相対位置として記録します。

主に筋肉、手足の関節、顔のアニメーションに使用されます。

『相対シェイプキー』は、各シェイプキーで別個のものとしてそれぞれで設定します。

各シェイプは、『参照キー』として「ベース」か、または[基準の対象]で指定された「別のシェイプキー」に対して定義されます。

その時点で”0″以上の値を持つ各シェイプからの累積効果として、3Dビューポートに「結果の効果」が表示されます。「結果の効果」は、ベースシェイプを基準として、各シェイプのウェイト付きの相対オフセットを『参照キー』に追加する、ということを行ってその結果を得ています。「結果の効果」は「ミックス」とも呼ばれるようです。

(ちなみに、前項の「『シェイプキー』の基本的な使い方」でご紹介したものは『”相対”シェイプキー』です。)

シェイプキーとその参照キーの間のブレンドのウェイト値を表します。

値”0.0″は、そのシェイプキーの『参照キー』が”1.0″の状態。

値”1.0″は、『参照キー』”1.0″から更にそのシェイプキーの影響が100%ブレンドされた状態を示します。

また、Blenderでは、『参照キー』と”1.0″のシェイプの2つのシェイプ間のブレンドから、”0.0″未満あるいは”1.0″以上のブレンドの推定も行ってくれます。

『相対シェイプキー』での”値”
ベース

「ベース」は、スタック内の最初の(最上位)キーを指す呼称です。

ベースシェイプは、オブジェクトの元の位置にある頂点の状態を表します。

他のシェイプキーと違い、ウェイト値はなく、キーの設定や調整もできません。

そして、このベースキーは、他のシェイプをリスト横の[+]ボタンから新しく作成する時に、デフォルトで『参照キー』([基準の対象]にセットされるキー)となります。

memo: 最初に作成した”ベース”シェイプキーと「ベース」シェイプキーの違い

態々説明することでもないかもしれませんが、ちょっとややこしいかなと思ったので、メモ書き的に書いておきます。

そのオブジェクトで一番最初に作成したシェイプキーにはデフォルトで”ベース”と名付けられますが、これはただの一時的な名前なのでいくらでも変更できます。(ちなみに名前をダブルクリックで変更可能)

ここでご説明しました「ベース」シェイプキーは、その時点のリスト最上段に位置するシェイプキーです。

なので、例えば”ベース”の後から追加で作成した”↖”という名前のシェイプキーも、最上段にあればそれがその時点での「ベース」シェイプキーになります。

この「ベース」シェイプキーを変更すると、リスト全体のシェイプキーの移動量”0.0″となる頂点位置が変わります。

補足で細かいこと言いますと、新しくシェイプキーを追加した時に、[基準の対象]にデフォルトで設定されるシェイプキーが、その時点での「ベース」シェイプキーなだけなので、最上段の「ベース」シェイプキーを変更しても、各シェイプキーの『参照キー』である[基準の対象]に設定されているシェイプキーが一緒に変更になるような事はありません。

「ベース」シェイプキーと”ベース”シェイプキー

『絶対シェイプキー』

『絶対シェイプキー』

シェイプの移動量を、絶対位置として記録します。

主に、時間の経過とともにオブジェクトをさまざまなシェイプに変形するために使用されます。

『絶対シェイプキー』は、リストにある全てのシェイプキーを「時間経過」という1つの流れとして設定します。

各シェイプは、値(フレーム)で指定された評価時のオブジェクトのシェイプの状態を定義します。

結果のシェイプ(または「ミックス」)は、その時点での[評価時間]を指定した前のシェイプと次のシェイプの補間となります。

値(フレーム)

そのシェイプキーがアクティブになる[評価時間]を表します。『絶対シェイプキー』の場合、この値を変更することはできません。

『絶対シェイプキー』での”値”(フレーム)
ベース

こちらの『絶対シェイプキー』でも同じく、「ベース」は、スタック内の最初のキー(最上位)を指す呼称です。

ベースシェイプは、オブジェクトの元の位置にある頂点の状態を表します。

『シェイプキー』を作成するタイミングと、頂点の追加・削除の影響

シェイプキーを扱う時に気を付けたいことが1つあります。

それが、シェイプキーを作成するタイミングです。 結論としては、

シェイプキーは「メッシュが完成した後やトポロジが安定した状態」で作成する

というのが、基本です。

シェイプキーを作成した後で頂点数を追加したり削除したりすると、メッシュがぐちゃぐちゃになってしまう事があります。

シェイプキーでメッシュ崩壊 前
シェイプキーでメッシュ崩壊 後

私の例では地味だったので、グシャグシャになる様子の例として(こんな引用の仕方してすみません汗)、小咲南緒様という方の動画(Blenderのバージョンは2.7のようです)を勝手ながらお借りしましてご紹介しますm(_ _;)m(メッシュが崩壊している様子は大体10:49あたり)

頂点の増減によるシェイプの崩壊 大体10:49

こういったことが何故起こるかというと、『シェイプキー』そのものの機能に関係するようです。

まず、オブジェクトの頂点の数と接続方法は、メッシュ、カーブ、サーフェス、またはラティスで指定されます。

そして、そのオブジェクトからの頂点の情報を元に、シェイプキーを扱う訳ですが、シェイプキーは「各頂点の位置を記録する機能」ですので、常にオブジェクトのすべての頂点が自動的に記録されます。

実際に頂点を追加すると、すべてのシェイプキーに、頂点が作成された位置で記録されます。

ですので、シェイプキーを作成した後に頂点を追加・削除すること自体は可能ですが、そう言った操作をした場合、頂点位置の記録から正しくメッシュ構造を判断できなくなり、結果、メッシュがぐちゃぐちゃに崩壊する、という現象が起こる可能性があります。

そのため、「シェイプキーの作成のタイミング」としては、「メッシュが完成した後やトポロジが安定した状態」が基本な訳です。

『シェイプキー』の追加

『シェイプキー』の追加には次の2つの方法があります。

  • リストの横にある[+]ボタンで新しいシェイプキーを追加する方法
  • スペシャルメニューから選択できる[新シェイプをミックスから作成]から新しいシェイプキーを追加する方法

まず1つ目、リストの横にある[+]ボタンで新しいシェイプキーを追加する方法では、新しいシェイプは、3Dビューポートに表示される現在の結果とは無関係に、ベースシェイプ(シェイプキーパネル最上段に位置するシェイプキー)のコピーになります。

[+]から新しいシェイプキーを追加

2つ目、[Shape Key Specials]([∨]ボタン)>[新シェイプをミックスから作成(New Shape from Mix)]から追加する方法では、新しいシェイプキーを追加すると、シェイプはその時点で表示されている頂点構成の状態のものとなります。

[+]から新しいシェイプキーを追加

ですので、よくありそうな「相対シェイプキーでフェイシャルアニメーションを行う場合」という例で考えますと、

  • 全く新しい表情を作りたい場合
        → [+]から行う方法
  • 他の表情と組み合わせた表情を作りたい場合
        → [新シェイプをミックスから作成]から行う方法

という使い分けがオススメです。

更に詳しくお話ししますと、最初に極端な表情(怒りや驚きなど)でシェイプキーを作成し、次にそのシェイプに一時的な『頂点グループ』を適用してそのシェイプをコンポーネントに分割し、[新シェイプをミックスから作成]でそのシェイプのコピーを作成する、という使い方があります。

『シェイプキー』の使い方

パネルの基本操作

基本的なパネルの操作方法について。

選択

シェイプキーを[左クリック]で選択します。

名前の変更

シェイプキーの名前のところで[ダブルクリック]すると、名前が編集できます。

また、カーソルを項目の上に置いて、[Ctrl]+[左クリック]でも編集できます。

『シェイプキーパネル』の操作方法 追加、削除、名前変更

サイズ変更

リストビューの下の部分にある”::::”という部分をドラッグすると、リストビューのサイズを変更できます。

フィルター

パネルの左下あたりにある三角形のボタンをクリックするとフィルタリングオプションパネルの表示・非表示を操作できます。

『シェイプキーパネル』 フィルターの出し方

リストに存在するシェイプキーを検索するのに使います。

フィルターテキストフィールドに名前の一部を入力して、探したいシェイプキーを検索できます。

検索、包括的・排他的フィルタ(虫眼鏡のアイコン)、アルファベット順([AZ]アイコン)、逆順(矢印アイコン)

包括的・排他的フィルタ(虫眼鏡のアイコン)

虫眼鏡のアイコン。

クリックするとフィルタタイプを[包括的]↔[排他的]で切り替えができます。

虫眼鏡に”+”が描かれている時には、[包括的フィルタ]として、テキストフィールドに入力された文字を持つシェイプキーのみを表示します。

虫眼鏡に”-“が描かれている時には、[排他的]フィルタとして、テキストフィールドに入力された文字を含まないシェイプキーのみを表示します。

並べ替え

リストにあるシェイプキーの並べ替えをします。

追加([+]ボタン)

パネル横の[+]ボタンです。

新しいシェイプキーを作成します。

削除([-]ボタン)

パネル横の[-]ボタンです。

選択したシェイプキーを削除します。

追加([+]ボタン)、削除([-]ボタン)

スペシャルメニュー([∨]ボタン)

パネル横の[∨]ボタンです。

このボタンをクリックすると出現するプルダウンメニューには、リストへ登録されているものを操作する様々なツールが用意されています。

メニューに含まれるツールについて、詳しくは後述の[Shape Key Specials]をご覧ください。

『シェイプキーパネル』 スペシャルメニュー

移動([▲][▼]ボタン)

パネル横の[▲][▼]です。

選択したシェイプキーの並びを上下に1つ移動します。

絶対シェイプキーの場合は、この並び順によって各シェイプキーの[フレーム]値が変わりますが、相対シェイプキーの場合は、並び順の変更で何かが変化することはありません。

移動([▲][▼]ボタン)

各シェイプキーへの操作

値(数値)

詳しくは、「『相対シェイプキー』と『絶対シェイプキー』」の項をご覧ください。

ミュート(チェックボックス)

シェイプキーの有効化・無効化を切り替えられます。

チェックを外したシェイプキーは、シェイプキースタックのミックスを3Dビューポート上に表示する時に、そのシェイプキーの影響を無視させる事ができます。

ミュート(チェックボックス)

[Shape Key Specials] –スペシャルメニュー

[∨]ボタンをクリックして表示されるプルダウンメニューです。シェイプキーに対して様々な操作が行えます。

シェイプキーパネル スペシャルメニュー
[新シェイプをミックスから作成(New Shape From Mix)]

オブジェクトの現在の変形したシェイプで新しいシェイプキーを追加します。

「新しいシェイプキーを追加」とは言っても、これは[+]ボタンで新しく追加するのとは違い、こちらでは、その時点でシェイプキーによりミックスしている状態のシェイプを、新しいシェイプとして追加することが出来ます。

詳しくは、「『シェイプキー』の追加」の項をご覧ください。

[シェイプキーをミラー反転(Mirror Shape Key)]

メッシュが対称の場合、オブジェクトモードでX軸のシェイプキーをミラーリング出来ます。

メッシュの頂点が完全に対称でない場合はこのツールは機能しません。

対称的なメッシュにしたい場合は、編集モードで[メッシュ]>[対称化(Symmetrize)]ツールを使用する、といった方法があります。

[シェイプキーをミラー反転(Mirror Shape Key)]
[シェイプキーをミラー反転(トポロジー)(Mirror Shape Key (Topology))]

[シェイプキーをミラー反転]と同じような機能ですが、こちらはメッシュのトポロジに基づいてミラーリングされた頂点を検出します。

ですので、こちらのツールの場合は、メッシュ形状が完全な対称でなくても機能します。

[シェイプとして統合(Join as Shapes(Transfer Mix))]

別のオブジェクトから、その時点のミックス結果のシェイプのデータの転送を受け取ります。

コピーするオブジェクトを選択してから、コピー先のオブジェクトを選択します。その状態でこのツールを使用すると、アクティブオブジェクト(最後に選択したオブジェクト)に新しいシェイプキーとしてコピー元のシェイプが追加されます。

ただし、転送元と転送先の頂点数が違うとエラーするため、ご注意ください

髪のカラーリングだけ変え、シェイプキーを全削除した同じ構造のオブジェクトを用意しました。

以下の手順で統合したシェイプを他オブジェクトへコピーしてみます。

  1. コピー元のオブジェクトの方で、複数のシェイプキーをミックスした状態にしておきます。
  2. 「コピー元 → コピー先」の順で、オブジェクトを選択します。
  3. コピー先オブジェクトのシェイプキーパネルから、[シェイプとして統合]をクリックします。
  4. コピー先オブジェクトのシェイプキーパネルに統合されたシェイプキー”face”が新しく追加されます。
[シェイプキーの転送(Transfer Shape Key)]

別オブジェクトのその時点でのアクティブなシェイプキーのデータの転送を受け取ります。

シェイプのコピーという点で[シェイプとして統合]と似ていますが、こちらの場合は、その時点でのミックス結果のシェイプとは関係なく、リストビュー上でアクティブ状態のシェイプキーのデータをそのままコピーします。

コピーの仕方は[シェイプとして統合]と同じです。コピーするオブジェクトを選択してから、コピー先のオブジェクトを選択します。その状態でこのツールを使用すると、コピー元のアクティブなシェイプキーのデータが、アクティブオブジェクトに新しいシェイプキーとして追加されます。

以下の手順で、シェイプキーを他オブジェクトへ転送してみました。

  1. コピー元のオブジェクトの方で、コピーしたいシェイプキーをアクティブ状態にしておきます。
  2. 「コピー元 → コピー先」の順で、オブジェクトを選択します。
  3. コピー先オブジェクトのシェイプキーパネルから、[シェイプキーの転送]をクリックします。
  4. コピー先オブジェクトのシェイプキーパネルに、”うの形”のシェイプキーが新しく追加されます。

また、4の時点で、追加されたシェイプキーは、デフォルトで[シェイプキー固定]が有効になるようですので、シェイプのミックス結果を3Dビュー上で表示したい場合は無効にしましょう。

[全シェイプキーを削除(Delete All Shape Keys)]

そのままですが、全てのシェイプキーを削除します。

[最上段へ(Move to Top)]

アクティブなシェイプキーのリスト上の並びを一番上へ移動させます。

[最下段へ(Move to Bottom)]

アクティブなシェイプキーのリスト上の並びを一番下へ移動させます。

[相対(Relative)]

『相対シェイプキー』と『絶対シェイプキー』を切り替えます。

『相対シェイプキー』と『絶対シェイプキー』の違いなどは「相対シェイプキーと絶対シェイプキー」の項をご覧ください。

シェイプキー固定(ピンのアイコン)

ブレンドせずに3Dビューポートでアクティブな形状を表示します。

このシェイプキー固定は、オブジェクトが編集モードのときに自動的に有効になります。

シェイプキー編集モード(編集モードのアイコン)

有効にした場合、編集モードでもオブジェクトモードと同様にシェイプキーの操作が出来るようになります。

シェイプキーをクリア(×のアイコン) –『相対シェイプキー』の場合のみ

すべての影響値、またはウェイト値を”0″に設定します。

シェイプキーによる3Dビュー上の表示への影響を一度に無くしたい場合に便利です。(シェイプキーを削除するわけではありません)

シェイプキーをクリア

シェイプキーを時間再設定(時計アイコン) –『絶対シェイプキー』の場合のみ

絶対シェイプキーは、リスト内の順序で一定の間隔でタイミングが取られます。このボタンは、キーのタイミングをリセットします。 キーが削除または並べ替えられた場合に役立ちます。

シェイプキーを時間再設定

各シェイプキーの詳細設定

『相対シェイプキー』と『絶対シェイプキー』で設定項目や設定の仕方が違います。

相対シェイプキーの場合の詳細設定

[値(Value)]

シェイプキーとその参照キー(デフォルトではベースシェイプ)の間のブレンドのウェイト。

※『参照キー』とは、具体的には後述する[基準の対象]に設定されているキーです。

値0.0は、参照キーの100%の影響とシェイプキーの1.0を示します。

相対シェイプキーの場合の[値(Value)]
[最小範囲(Range Min)]、[最大(Max)]

アクティブなシェイプキーの影響値の最小、及び最大範囲。 値が0.0未満か、1.0を超えた場合、そのシェイプからBlenderが推定した結果が割り当てられます。

[最小範囲]、[最大]
[頂点グループ(Vertex Group)]

アクティブなシェイプキーの変形を頂点グループを使って制限します。

ちなみに、『頂点グループ』について、詳しくは↓の記事でご紹介させていただいておりますので、よろしければ併せてご覧下さい。

シェイプキーの追加に関する2つの方法」の説明でも触れましたが、一時的な頂点グループを複雑なシェイプに割り当て、その結果を新しい単純なシェイプにコピーすることにより、複雑な形状をコンポーネントに分解するのに便利です。

『シェイプキー』の基本的な使い方」で使用したものを元に、『頂点グループ』を使ってその形状変化を制御します。

『ウェイト』値を一番上部分が”1.0″、一番下部分が”0.0″になるように割り当てました。

[頂点グループ]に先ほど作った『頂点グループ』を設定した状態で、先ほどと同じように[値]の数値を動かすと、『ウェイト』の低い下部分の変形度合いが少ない or 変形が見られないのがお分かりになるかと思います。

[頂点グループ(Vertex Group)]
[基準の対象(Relative To)]

変形元のシェイプキーを選択します。 これは、そのシェイプの『参照キー』と呼ばれます。

デフォルトでは、その時点での『ベースシェイプ』となります。

詳しくは前述の「ベース」の項をご覧ください。

絶対シェイプキーの場合の詳細設定

[補間(Interpolation)]

シェイプキー間の補間を制御します。

[リニア]、[カーディナル]、[Catmull-Rom]、[Bスプライン]の4タイプから選択します。

[評価時間(Evaluation Time)]

シェイプキーの影響を制御します。 スクラブして、現在の構成の効果を確認します。 通常、このプロパティはアニメーション用にキー設定されているか、ドライバーでリグされています。

絶対シェイプキーの場合の”値”にあたる[評価時間(Evaluation Time)]

編集モードから操作するシェイプキーツール

これまででご紹介した方法は『シェイプキーパネル』から行う方法でしたが、これ以外にも、実は[編集モード]からシェイプキーを制御する方法もあるんです

『シェイプキーオペレーター』と呼ばれる2つのモデリングツールがそれです。

[編集モード]で[頂点]メニューから扱える2つの『シェイプキーオペレーター』

このツール2つはどちらも「既存のシェイプキーに対しての操作をするツール」です。

なので、当然ながらシェイプキーを1つも作成していない状態で、この2つのツールを使おうとすると、エラーが出ます。

シェイプキーを作成してからご使用ください。

[任意のシェイプキーを選択部に合成(Blend From Shape)]

シェイプキーから形のブレンドをします。

『頂点メニュー』([Ctrl]+[V])からこの項目を選択したら、画面右下に出現する[オペレーターパネル]で、どのシェイプキーとの合成を行うかを選択できます。

また、[ブレンド]は合成度合いの調整、[追加]は合成方法を”融合”と”追加”の2タイプの切り替えが行えます。

[任意のシェイプキーを選択部に合成(Blend From Shape)]

この項目は、[新シェイプをミックスから作成]と複数のシェイプを組み合わせるという点で似ています。

比較してみますと、

  • [新シェイプをミックスから作成]… 複数のシェイプをミックスしてから、新しいシェイプキーとしてミックスの結果を追加
  • [任意のシェイプキーを選択部に合成]… 一方のシェイプに一方のシェイプを合成

という違いがあるかと思います。

例えばですが、[新シェイプをミックスから作成]は、ミックス結果を新しいシェイプキーとして別物として作成できるので、元々のシェイプを変更したくない場合にオススメです。

対して、[任意のシェイプキーを選択部に合成]の方は、シェイプキーの数を増やさず合成できるので、元のシェイプからそこまで大きく動かさない微調整をしたい時など、元のシェイプに変更を加えても構わない場合にオススメです。

[シェイプキーに反映(Propagate to Shapes)]

他の全てのシェイプキーに、選択頂点の位置を適用します。

↓のGIFでは、全ての表情を”どや顔”に変更しています。

[シェイプキーに反映(Propagate to Shapes)]

『シェイプキー』の具体的な活用例

『アーマチュア』では表現しきれないような、表情や筋肉の動きを表現するのによく使われます。

『シェイプキー』単体で使う場合

『フェイシャルアニメーション』を行う場合を例に上げさせていただきます。

そのフレームでさせたい表情のシェイプキーを選択します。

その[値]などのプロパティ項目の横の点([・])を左クリックすると、タイムライン上にキーフレームを挿入できます。

[値] キーフレーム挿入 その1

または、プロパティ項目の上にカーソルを置いて、右クリックすると表示されるメニューの[キーフレームを挿入]からでも同様に、キーフレームの挿入が可能です。

[値] キーフレーム挿入 その2

様々なシェイプキーを組み合わせた結果↓になりました。

『シェイプキー』を使ったアニメーション

『アーマチュア』と『シェイプキー』を連動させる場合

『ドライバー』を使って『アーマチュア』の角度等のプロパティと連動させます。

『腕の関節の曲げ伸ばしと筋肉の動き』を作る場合を例にして説明させていただきます。

腕を『アーマチュア』だけ使って変形させてみますと、↓のように、特に関節付近で不自然に硬い変形になってしまいます。

『アーマチュア』のみでモデルの腕部分を変形

次に、『アーマチュア』と『シェイプキー』を使って変形させたものになります。↓の場合、『アーマチュア』しか使わなかった場合よりも柔らかい変形になっています。

『アーマチュア』+『シェイプキー』でモデルの腕部分を変形

『アーマチュア』と『シェイプキー』の準備

この場合、まずは「関節の動き」を『アーマチュア』の方のボーンの回転でキーフレーム挿入([I])しておきます。直接動きをアニメーションとして設定しているのはこちらだけです。

『アーマチュア』でボーンを回転し、キーフレーム挿入[I]

そして、関節の動きに伴う「筋肉の動き」を『シェイプキー』で作っておきます。

2か所の変形を『シェイプキー』で作成

これを『アーマチュア』の回転に合わせて[値]が変化する様に自動化させている訳ですが、その設定を『ドライバー』という機能を使って連動させています。

『ドライバー』の設定方法

  1. [プロパティエディター]の方の『シェイプキーパネル』のリストにある”腕上げ”シェイプキーの[値]の上で右クリックします。

  1. 右クリックすると表示される『値メニュー』から、[ドライバーを追加]を選択します。
  1. 『ドライブ対象プロパティ』という小ウィンドウが出てきます。こちらでも『ドライバー』の設定ができるのですが、今回は『ドライバーエディター』上で設定するので、ここでは無視します。

  1. 『ドライバー』を追加したプロパティ項目は、画像の通り、紫に変色します。
  1. 『ドライバーエディター』に移ります。『ドライバー』を追加したプロパティが存在する場合は、赤枠で囲った部分に対象のプロパティ一覧が表示されます。
  1. 先ほど追加した”腕上げ”シェイプキーの[値]プロパティを設定していきます。『ドライバーエディター』左側の[値(腕上げ)]と表示されている部分をクリックしますと、右側に、[値(腕上げ)]プロパティの『ドライバー』の詳細設定が表示されます。
  1. 『ドライバー』で変数として使用するため、シェイプキーと連動させたいボーンの名前を調べておきます。
『アーマチュア』”body_armature”の『ボーン』”elbow.L”
  1. 再び『ドライバーエディター』に戻り、変数の設定をします。オブジェクト名とボーン名、そして、ボーンから取得する数値を指定します。
    今回は、単純に”Z軸方向の回転”にしました。
  1. 変数が設定出来たら、上の[式]という項目で連動させるための関係を表した式を入力します。
    ここでは、“1/0.508*(var)”としました。
    ちなみに、ここではアニメーションで回転させている分だけの変化しか考えていないので、”0.508″というのはその回転量です。
  1. もう一つの”腕曲げ”シェイプキーの方でも同様のやり方で『ドライバー』を設定しました。
  1. おまけです。別アングルから見た比較。
『アーマチュア』のみ(別アングルver)
『シェイプキー』の『ドライバー』設定有り(別アングルver)

memo: 『シェイプキー』と『アーマチュア』の向き・不向きとオススメの使い分け

ちなみにですが、「関節」の方の回転も『シェイプキー』で管理した方が、『シェイプキー』1つだけで済むのでは?と思われる方もいらっしゃるかもしれませんが、不自然な動作になってしまうのでオススメできません。

『アーマチュア』無し『シェイプキー』のみで変形した人間モデル

『シェイプキー』が管理するのは”移動”なので、”回転”のような動作を表現するのには、あまり向かないようです。

なので、”回転”は『アーマチュア』、”移動”は『シェイプキー』のように使い分けるのがオススメです。

『モディファイアー』から『シェイプキー』を新規作成する場合

『モディファイアー』の中でも「変形」系のみですが、『モディファイアー』で得られた「変形」の結果を『シェイプキー』として適用することが可能です。

変形タイプのモディファイアー

変形(Deform)系の『モディファイアー』には、[シェイプキーとして適用(Apply as Shape Key)]という共通の項目があります。

例えば『波モディファイアー』を追加した時の『プロパティエディター』上の表示です。

赤く囲っている[シェイプキーとして適用]をクリックすると、そのモディファイアーによって与えられた変形の形状が、シェイプキーとして新規追加されます。

波モディファイアー>[シェイプキーとして適用]

『波モディファイアー』による変形の形状を新たな『シェイプキー』として追加

ちなみにですが、『波モディファイアー』については、以前↓の記事にて詳しくご紹介させていただきました。ご興味湧かれましたら、是非こちらも合わせてご覧ください。

参考にさせていただいたサイト・ページ一覧

参考にさせていただいた書籍

Blenderに関する記事や作品をまとめたページ作りました!

Blender Note

モバイルバージョンを終了