Blenderでの動きの振り付けとアニメーション作成
Blenderとは,3次元モデラーのフリーソフトウェアである.3次元モデル,レンダリング(3Dシーンから高品質な2D画像を生成する処理),アニメーション作成の機能がある.対応ファイル形式は,Stanford Triangle Format (ply),Wavefront OBJ (obj),3D Studio Max (3ds),Stereo-Lithography (stl) 等である.
ありがちな失敗例
- 傘の開閉するためのボーン(3Dモデルの骨格として機能する制御要素)の数が多いので,アニメーションを作るときに一つ一つを設定するのは時間がかかる
解決方法
傘の開閉するボーンの動きを,一括で行えるような制御用のボーンを作成する
具体的な操作
傘のボーンにIKSolver(Inverse Kinematics:逆運動学の計算を行う機能)を設定し,そのTargetとなるボーンを適当な位置に作成しておき,その作成したボーンを傘のボーンのIKSolverのTargetに設定する.そうすると,傘のボーンは,Targetとなるボーンに追従するように動く.それぞれの傘のボーンと,Targetのボーンを作成した後,Targetとなるボーンすべてを一つの制御用のボーンの子にする.こうすると,制御用のボーンを動かすと,Targetのボーンすべてが動く.Targetのボーンが動くと傘のボーンはTargetのボーンを追従するように動く.
- パンチの動作などで一目で見て,何の動作かわかりづらい,または,迫力が足りない
解決方法
ボーンの拡大縮小を行い,モデルの部分的な大きさを変えるアニメーションにより誇張表現する
具体的な操作
パンチを出す前のキーフレーム(アニメーション上の重要な位置を示すフレーム)で,手の部分のボーンを選択し,拡大縮小の操作を行い(大きさはほぼ変えない),Scaleのキーを設定する.パンチを出した瞬間のキーフレームで,手の部分のボーンを拡大して,手が大きくなるように,Scaleのキーを設定する.パンチを引き戻した状態のキーフレームで,手の部分のボーンを縮小して,手が元々の大きさになるように,Scaleのキーを設定する.
- Constraints(制約:ボーンの動きに制限を加える機能)のうちIKソルバ等が設定されたボーンを1回転させる場合,逆回転が生じる.
理想 0度→90度→180度→270度→360度
現実 0度→90度→180度→90度→0度→-90度→-180度→-90度→0度(逆回転部:180度→90度→0度→-90度→-180度)
理由:IKソルバーが-180度から180度の制限があるため逆回転が生じる
解決法(2通り)
- 1回転させるボーンにConstraints(IKソルバ等)を使わないで,[R]キー(Blender 4では回転モードへの切り替えキー)による回転を行う
- 36フレーム目と37フレーム目のような隣り合うフレームの間に逆回転を生じさせ,逆回転は起こっているが,逆回転を描画するフレームを存在させないことで回避する
動作確認手順
複数ボーンの一括制御確認手順
- 新規Blenderプロジェクトを開き,複数パーツを持つモデルを作成する
- 編集モードで必要な骨格(複数のボーン)を追加する
- 各ボーンに対してIKSolverを設定する(プロパティパネル→ボーン→Constraints→追加→Inverse Kinematics)
- Target用の空のボーンを各ボーンに対応する位置に作成する
- 各IKSolverのTargetに対応するボーンを設定する
- すべてのTargetボーンを選択し,新しい制御用ボーンを作成してそれらの親に設定する(Ctrl+P→Keep Offset)
- アニメーションタイムラインでキーフレームを設定し(I→Location/Rotation/Scale),制御用ボーンを移動させて動作確認する
誇張アニメーション確認手順
- アーマチュア(骨格)を持つモデルを用意する
- ポーズモードに切り替え,対象となるボーンを選択する
- タイムライン上で開始フレームに移動し,選択したボーンのScaleキーフレームを設定(I→Scale)
- 動作の最中となるフレームに移動し,ボーンを拡大(S→X/Y/Z→値を入力),Scaleキーフレーム設定
- 終了フレームに移動し,ボーンを元の大きさに戻し,Scaleキーフレーム設定
- アニメーションを再生(スペースキー)して動作確認
IKソルバーによる回転問題の確認手順
- アーマチュアを作成し,エンドボーンにIK Constraintを設定する
- IKターゲットとなるボーンまたは空オブジェクトを追加
- タイムライン上で複数フレームを使用して,IKターゲットを1回転させるようにキーフレーム設定
- アニメーションを再生して問題の発生を確認
- 解決法1:IK Constraintを削除し,直接[R]キーでの回転に切り替える
- 解決法2:タイムライン上で逆回転が起こるタイミングを特定し,そのフレームの前後に密にキーフレームを設定する