Blenderでの動きの振り付けとアニメーション作成

【概要】Blenderは3次元モデリング、レンダリング、アニメーション作成が可能なフリーソフトウェアである。本記事では、アニメーション作成時によくある失敗例として、複数ボーンの制御の煩雑さ、動作の表現力不足、回転補間による逆回転問題を取り上げ、それぞれの解決方法と具体的な動作確認手順を解説する。

【目次】

  1. 本記事の前提知識
  2. ありがちな失敗例
  3. 動作確認手順

本記事の前提知識

本記事を理解し実践するには、以下の知識と技能が必要である。

必要な基礎知識

Blenderの基本操作として、オブジェクトモード、編集モード、ポーズモードの切り替え方法を理解していることが求められる。モード切り替えは、3Dビューポート上部のモード選択ドロップダウンメニュー、またはTabキー(オブジェクトモードと編集モードの切り替え)とCtrl+Tabキー(ポーズモードへの切り替え)で行う。オブジェクトの選択方法として、左クリックによる選択、Shiftキーを押しながらの複数選択、Aキーによる全選択、Alt+Aキーによる選択解除を理解している必要がある。

キーフレームアニメーションの基本として、タイムライン上での時間の概念、キーフレーム(アニメーション上の重要な位置で値を記録するフレーム)の役割、補間(キーフレーム間の中間状態を自動計算する処理)の概念を理解している必要がある。

Blenderのインターフェース

本記事で使用する主要なパネルと表示方法は次のとおりである。プロパティパネルは画面右側に配置され、表示されていなければNキーで切り替えられる。タイムラインは画面下部に配置され、アニメーションのフレームを管理する。アウトライナーは画面右上に配置され、シーン内のオブジェクト階層を表示する。3Dビューポートは画面中央の主要な作業領域である。

本記事で扱わない範囲

本記事では、3Dモデルの詳細な作成方法は扱わない。動作確認手順では簡易的なモデル作成手順を示すが、実用的なモデリング技法は範囲外である。

ありがちな失敗例

複数ボーンの一括制御に関する問題

傘の開閉を制御するためのボーン(3Dモデルの骨格として機能し、メッシュの変形を制御する要素)の数が多い場合、アニメーションを作成する際に一つ一つを設定するのは時間がかかる。

解決方法

傘の開閉を制御するボーンの動きを一括で行えるような制御用のボーンを作成する。

具体的な操作

傘の各リブ(骨)を制御するボーンに対して、親子関係を利用した階層構造を構築する。具体的には、傘の中心に制御用の親ボーンを作成し、各リブのボーンをその子として設定する。さらに、各リブのボーンの回転を制御するための補助ボーンを追加し、Copy Rotation Constraint(他のボーンの回転値を複製して適用する制約機能)を設定する。

手順は次のとおりである。まず、傘の中心軸に制御用ボーンを作成する。編集モードで、Shift+Aキーを押し、表示されるメニューからSingle Boneを選択する。作成したボーンを適切な位置に移動させる(Gキーで移動、Zキーでz軸方向に限定)。次に、各リブを制御するボーンを作成する。Shift+Aキー→Single Boneを繰り返し、傘のリブの数だけボーンを追加し、適切な位置と角度に配置する。続いて、各リブのボーンを、制御用ボーンの子として設定する。ポーズモードに切り替え(Ctrl+Tabキー)、すべてのリブのボーンを選択(Shiftキーを押しながら左クリック)し、最後に制御用ボーンを選択してから、Ctrl+Pキー→Keep Offsetを選択することで親子関係を設定する。

次に、回転用の補助ボーンを追加する。編集モードに戻り(Tabキー)、Shift+Aキー→Single Boneで補助ボーンを追加し、制御用ボーンと同じ位置またはわずかにずらした位置に配置する(Gキーで移動)。そして、各リブのボーンにCopy Rotation Constraintを設定する。ポーズモードで各リブのボーンを選択し、画面右側のプロパティパネル(Nキーで表示)内のボーン制約タブ(鎖のアイコン)を開き、Add Bone Constraintボタンをクリックし、表示されるメニューからCopy Rotationを選択する。最後に、Copy Rotation ConstraintのTargetに補助ボーンを設定する。Targetフィールドの右側のスポイトアイコンをクリックし、3Dビューポート上で補助ボーンをクリックして選択する。

この設定により、補助ボーンを回転させると、すべてのリブのボーンが同じ角度だけ回転し、傘の開閉動作を一括で制御できる。また、制御用ボーンの位置を動かせば、傘全体の位置も同時に移動する。

トラブルシューティング

親子関係が正しく設定されているか確認するには、アウトライナーでボーンの階層構造を確認する。制約が正しく機能しているか確認するには、ポーズモードで補助ボーンを選択し、Rキー→Zキー→数値入力で回転させ、すべてのリブのボーンが同時に回転することを確認する。回転しない場合は、Copy Rotation ConstraintのInfluenceスライダーが1.0に設定されているか確認する。

動作の表現力に関する問題

パンチの動作などで、何の動作かわかりにくい、または迫力が不足している場合がある。

解決方法

ボーンの拡大縮小を行い、モデルの部分的な大きさを変えるアニメーションにより誇張表現する。

具体的な操作

パンチを出す前のキーフレームで、手の部分のボーンを選択し、Scaleキーフレーム(拡大縮小の値を記録するキーフレーム)を設定する。ポーズモードで手の部分のボーンを選択し、Iキーを押してInsert Keyframe Menuを表示し、Scaleを選択する。この操作により、現在のScale値が記録される。パンチを出した瞬間のキーフレームで、手の部分のボーンを拡大して手が大きくなるように、Scaleのキーを設定する。タイムライン上で目的のフレームに移動し、Sキーを押し、数値(例:1.5で1.5倍)を入力してEnterキーを押してから、Iキー→Scaleでキーフレームを設定する。パンチを引き戻した状態のキーフレームで、手の部分のボーンを元の大きさに戻すように、Scaleのキーを設定する。タイムライン上で終了フレームに移動し、Sキー→1→Enter→Iキー→Scaleでキーフレームを設定する。

トラブルシューティング

キーフレームが正しく設定されているか確認するには、タイムライン上で該当フレームに黄色または橙色のダイヤモンド形のマーカーが表示されていることを確認する。拡大縮小が適用されていない場合は、ボーンを選択した状態でプロパティパネル(Nキー)のTransformタブを開き、Scale値が変化しているか確認する。メッシュが変形しない場合は、アーマチュアとメッシュが正しくペアレント(親子関係)されているか、メッシュにアーマチュアモディファイアが適用されているか確認する。

回転補間による逆回転問題

ボーンを1回転させるアニメーションを作成する場合、逆回転が生じることがある。

理想的な回転

0度→90度→180度→270度→360度

実際の回転

0度→90度→180度→90度→0度(逆回転)

理由

Blenderのキーフレーム補間では、回転角度を-180度から180度の範囲で正規化し、キーフレーム間の回転では最短経路を選択する。このため、0度から360度への補間では、360度が0度として正規化されるため、システムは逆回転する経路を選択する。この現象は、Euler角(XYZ Eulerモード)での回転表現に起因する。Euler角は各軸の回転を-180度から180度の範囲で表現するため、この範囲を超える連続回転を正しく補間できない。

解決方法(2通り)

トラブルシューティング

中間キーフレームを追加しても逆回転する場合は、各キーフレーム間の角度差が180度を超えていないか確認する。Quaternionモードで問題が解決しない場合は、Rキーで回転させた後、必ずIキー→Rotationでキーフレームを設定する。

動作確認手順

複数ボーンの一括制御確認手順(傘の開閉の例)

  1. 新規Blenderプロジェクトを開く。Blenderを起動し、File→New→Generalを選択する
  2. 簡易的な傘モデルを作成する。Shift+Aキー→Mesh→Coneで円錐を追加する
  3. 編集モードに切り替え(Tabキー)、傘の中心に制御用ボーンを追加する。Shift+Aキー→Armature→Single Boneを選択し、ボーンを追加する。Gキー→Zキーで垂直方向に移動させ、傘の中心軸に配置する
  4. 各リブに対応するボーンを追加する。Shift+Aキー→Armature→Single Boneを繰り返し、傘のリブの数だけボーンを追加する。各ボーンをGキー(移動)とRキー(回転)で、傘の外側に向かって放射状に配置する
  5. 各リブのボーンを、制御用ボーンの子として設定する。ポーズモードに切り替え(Ctrl+Tabキー)、すべてのリブのボーンを選択(Shiftキーを押しながら左クリック)し、最後に制御用ボーンを選択してから、Ctrl+Pキー→Keep Offsetを選択する
  6. 回転用の補助ボーンを追加する。編集モードに戻り(Tabキー)、Shift+Aキー→Armature→Single Boneで補助ボーンを追加し、制御用ボーンと同じ位置またはわずかにずらした位置に配置する(Gキーで移動)
  7. 各リブのボーンにCopy Rotation Constraintを追加する。ポーズモードに切り替え(Ctrl+Tabキー)、各リブのボーンを選択し、プロパティパネル(Nキー)→ボーン制約タブ(鎖のアイコン)→Add Bone Constraint→Copy Rotationを選択する。この操作を全てのリブのボーンに対して繰り返す
  8. Copy Rotation ConstraintのTargetに補助ボーンを設定する。各リブのボーンの制約設定で、Targetフィールドの右側のスポイトアイコンをクリックし、3Dビューポート上で補助ボーンをクリックする。Influenceスライダーが1.0に設定されていることを確認する。この操作を全てのリブのボーンに対して繰り返す
  9. ポーズモードで補助ボーンを選択し、回転させる(Rキー→Zキー→数値入力、例:45と入力してEnter)。すべてのリブのボーンが同時に回転することを確認する
  10. アニメーションタイムラインでキーフレームを設定する。タイムライン上で1フレーム目に移動し、補助ボーンを選択した状態でIキー→Rotationを選択する。30フレーム目に移動し、Rキー→Zキー→90→Enterで90度回転させてから、Iキー→Rotationでキーフレームを設定する。スペースキーでアニメーションを再生し、傘の開閉アニメーションが正しく動作することを確認する

誇張アニメーション確認手順

  1. アーマチュアを持つモデルを用意する。新規プロジェクトでShift+Aキー→Armature→Single Boneでアーマチュアを追加し、簡単なメッシュ(例:Shift+Aキー→Mesh→Cube)を追加する。メッシュを選択し、次にアーマチュアを選択してから、Ctrl+Pキー→With Automatic Weightsでペアレントを設定する
  2. ポーズモードに切り替える。アーマチュアを選択した状態でCtrl+Tabキーを押す
  3. 対象となるボーンを選択する
  4. タイムライン上で開始フレーム(例:1フレーム目)に移動し、選択したボーンのScaleキーフレームを設定する。Iキーを押してInsert Keyframe Menuを表示し、Scaleを選択する
  5. 動作の最中となるフレーム(例:15フレーム目)に移動し、ボーンを拡大する。Sキーを押し、数値(例:1.5)を入力してEnterキーを押してから、Iキー→Scaleでキーフレームを設定する
  6. 終了フレーム(例:30フレーム目)に移動し、ボーンを元の大きさに戻す。Sキー→1→Enter→Iキー→Scaleでキーフレームを設定する
  7. アニメーションを再生して動作を確認する。スペースキーを押してアニメーションを再生し、ボーンが拡大縮小することを確認する

回転補間による逆回転問題の確認手順

  1. 新規Blenderプロジェクトを開く。File→New→Generalを選択する
  2. 単一のボーンを持つアーマチュアを作成する。Shift+Aキー→Armature→Single Boneを選択してアーマチュアを追加する
  3. ポーズモードに切り替える。アーマチュアを選択した状態でCtrl+Tabキーを押す
  4. ボーンを選択する
  5. タイムライン上で1フレーム目に移動し、回転キーフレームを設定する。Rキー→Zキー→0と入力してEnterキーを押してから、Iキー→Rotationを選択する
  6. 60フレーム目に移動し、360度回転させる。Rキー→Zキー→360と入力してEnterキーを押してから、Iキー→Rotationを選択する
  7. アニメーションを再生して逆回転問題の発生を確認する。スペースキーを押してアニメーションを再生し、ボーンが途中で逆回転することを確認する
  8. 解決法1を試す。ボーンを選択し、プロパティパネル(Nキー)のTransformタブを開き、Rotation Modeのドロップダウンメニューから「Quaternion」を選択する。既存のキーフレームを削除する(タイムライン上で1フレーム目に移動し、Alt+Iキー→Rotation、60フレーム目でも同様に削除)。再度、1フレーム目でRキー→Zキー→0→Enter→Iキー→Rotation、60フレーム目でRキー→Zキー→360→Enter→Iキー→Rotationでキーフレームを設定する。アニメーションを再生すると、正しく0度→360度に回転することを確認する
  9. 解決法2を試す(解決法1の設定を元に戻してから実施)。回転モードを「XYZ Euler」に戻す。既存のキーフレームを削除する。1フレーム目に0度のキーフレームを設定する。15フレーム目に移動し、Rキー→Zキー→90→Enter→Iキー→Rotationで90度のキーフレームを設定する。30フレーム目に180度、45フレーム目に270度、60フレーム目に360度のキーフレームを同様に設定する。アニメーションを再生すると、逆回転せずに0度→360度に回転することを確認する