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

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

【目次】

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

本記事の前提知識

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

必要な基礎知識

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

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

Blender 5.1におけるキーフレーム操作に関する注意

Blender 5.1の既定設定では,3Dビューポート上でIキーを押すと,環境設定の「Default Key Channels」に基づきキーフレームが自動挿入される.従来の「Insert Keyframe Menu」(Location/Rotation/Scale等を選択するメニュー)は既定では表示されない.本記事の手順でメニューから項目を選択する操作を行うには,次のいずれかの方法を用いる.

本記事中の「Iキー→Scale」「Iキー→Rotation」等の記述は,上記いずれかの方法により対応する項目を選択する操作を指す.

Blenderのインターフェース

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

本記事で扱わない範囲

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

ありがちな失敗例

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

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

解決方法

傘の開閉を制御するボーンの動きを一括で行うための制御用のボーンを作成する.

具体的な操作

傘の各リブ(骨)を制御するボーンに対して,親子関係を利用した階層構造を構築する.具体的には,傘の中心に制御用の親ボーンを作成し,各リブのボーンをその子として設定する.さらに,各リブのボーンの回転を制御する補助ボーンを追加し,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キーでScale値のキーフレームを挿入する(前述「Blender 5.1におけるキーフレーム操作に関する注意」を参照.以下同様).この操作により,現在のScale値が記録される.パンチを出した瞬間のキーフレームでは,手の部分のボーンを拡大し,手が大きくなるようにScaleのキーを設定する.タイムライン上で目的のフレームに移動し,Sキーを押し,数値(例:1.5で1.5倍)を入力してEnterキーを押した上で,IキーでScale値のキーフレームを挿入する.パンチを引き戻した状態のキーフレームでは,手の部分のボーンを元の大きさに戻すようにScaleのキーを設定する.タイムライン上で終了フレームに移動し,Sキー→1→EnterIキーで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値のキーフレームを挿入する(前述「Blender 5.1におけるキーフレーム操作に関する注意」を参照.以下同様).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キーによりScale値のキーフレームを挿入する(前述「Blender 5.1におけるキーフレーム操作に関する注意」を参照.以下同様).
  5. 動作の最中となるフレーム(例:15フレーム目)に移動し,ボーンを拡大する.Sキーを押し,数値(例:1.5)を入力してEnterキーを押した上で,IキーでScale値のキーフレームを挿入する.
  6. 終了フレーム(例:30フレーム目)に移動し,ボーンを元の大きさに戻す.Sキー→1→EnterIキーで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値のキーフレームを挿入する(前述「Blender 5.1におけるキーフレーム操作に関する注意」を参照.以下同様).
  6. 60フレーム目に移動し,360度回転させる.Rキー→Zキー→360と入力してEnterキーを押した上で,IキーでRotation値のキーフレームを挿入する.
  7. アニメーションを再生して逆回転問題の発生を確認する.スペースキーを押してアニメーションを再生し,ボーンが途中で逆回転することを確認する.
  8. 解決法1を試す.ボーンを選択し,プロパティパネル(Nキー)のTransformタブを開き,Rotation Modeのドロップダウンメニューから「Quaternion」を選択する.既存のキーフレームを削除する(1フレーム目に移動してAlt + Iキーで現フレームのキーフレームを削除し,60フレーム目でも同様に削除する.全フレームの全キーフレームの一括削除はShift + Alt + I,タイムライン上で対象キーフレームを選択しての削除はXキーで行う).再度,1フレーム目でRキー→Zキー→0→EnterIキーでRotation値のキーフレームを挿入し,60フレーム目でRキー→Zキー→360→EnterIキーでRotation値のキーフレームを挿入する.アニメーションを再生し,正しく0度→360度に回転することを確認する.
  9. 解決法2を試す(解決法1の設定を元に戻してから実施する).回転モードを「XYZ Euler」に戻す.既存のキーフレームを削除する(前述のAlt + Iキー,またはXキーによる方法を用いる).1フレーム目に0度のキーフレームを設定する.15フレーム目に移動し,Rキー→Zキー→90→EnterIキーでRotation値のキーフレームを挿入する.30フレーム目に180度,45フレーム目に270度,60フレーム目に360度のキーフレームを同様に設定する.アニメーションを再生し,逆回転せずに0度→360度に回転することを確認する.