MakeHumanとBlenderで人体アニメーション(MakeHuman 1.3とBlenderを使用)
【概要】
MakeHuman(人体モデル作成専用の3Dソフトウェア)とBlender(3Dモデリング、アニメーション、レンダリングなどが可能な総合的な3DCGソフトウェア)を用いて人体アニメーションを作成する手順を解説する。CMUモーションキャプチャデータベースのBVH形式モーションデータを使用し、MakeHumanで作成した人体モデルにBlenderでアニメーションを適用する方法を説明する。
【目次】
【関連する外部ページ】
【サイト内の関連情報】
前準備
Blenderは,3次元コンピュータグラフィックス・アニメーションソフトウェアである.3次元モデルの編集,レンダリング,光源やカメラ等の設定による3次元コンピュータグラフィックス・アニメーション作成機能がある.
メニューの日本語化を行っておくと使いやすい.「編集(Edit)→プリファレンス(Preferences)→インターフェイス(Interface)→翻訳(Translation)」で設定できる.
cmu-motionデータセット(モーションデータ)のダウンロード
謝辞:The Daz-friendly BVH release of CMU's motion capture database - cgspeed
- https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture/the-daz-friendly-bvh-release-of-cmus-motion-capture-databaseを開く
- 「PRIMARY RELEASE: Daz-friendly hip-corrected BVH files releases」からディレクトリを選ぶ
- 「DOWNLOAD」をクリック
このとき、マイクロソフトセキュリティアラートが表示される場合があるが、偽広告なので無視する(金子見解)。
- ファイルのダウンロードが始まる
- 展開(解凍)すると、次のようなファイルが得られる
- 「01」などのディレクトリの中には.bvh形式のモーションデータ(BioVision Hierarchy形式:モーションキャプチャデータを保存する標準的なファイル形式)が入っている
このデータはCMUモーションキャプチャデータベース由来であるため、後述のMakeHumanでリグ(骨格)を付ける際は、データに対応する「CMU mb」というリグを選ぶと、ボーン構成が一致しやすい。
前準備
Blenderのインストール
メニューの日本語化を行っておいた方が使いやすい。
MakeHuman 1.3のインストール、Blenderでの設定
Blenderで人体アニメーション
BlenderのBVH Retargeterアドオンの準備
BVH形式のモーションデータをBlender上の骨格に適用する(リターゲットする)には、専用のアドオンが必要である。かつてはMakeHumanチームが開発した「MakeWalk」というアドオンが使われていたが、現在はその後継である「BVH and FBX Retargeter」(旧称MakeWalk。開発元も同一)が保守されており、Blender 3.0以降で動作する。
- BVH Retargeterの解説ページを開く
- ページに記載されているダウンロードリンクから、最新版の「BVH and FBX Retargeter」のzipファイルをダウンロードする。バージョンはBlenderの更新に合わせて随時公開されるため、ページの記載を確認してダウンロードすること。
- Blenderを起動する
- Blenderで、「編集」→「プリファレンス」と操作する
- 「アドオン」(Blenderのバージョンによっては「拡張機能」内の項目)を選ぶ
- 右上のメニューから「ディスクからインストール」を選び、先ほどダウンロードしたzipファイルを選ぶ。
これはレガシーアドオン(拡張機能プラットフォーム以前の形式のアドオン)としてインストールされる。
- 検索窓に「retarget」と入力し、該当するアドオンが表示されたらチェックを入れて有効化する。
- Blenderのプリファレンスの画面を閉じる
MakeHumanで、アニメーション化したい人体データの準備
- makehuman.exeを起動する
- MakeHumanで、人体に骨格(リギング:Blenderでは「アーマチュア」(3Dモデルをアニメーション化するための骨格システム)ともいう)を付ける。「ポーズ/アニメーション(Pose/Animate)」を選び、種類を選ぶ。
今回はCMUモーションキャプチャデータベースのBVHデータを使うため、「種類」として「CMU mb」を選ぶ。これにより、CMUのモーションデータに対応した骨格が付く。
- 人体データを保存するために、「Files」を選び、「Save」を選ぶ。ファイル名とディレクトリを指定して保存すると、拡張子.mhm(MakeHuman Model形式)のファイルが作成される。
保存先は既定ではMakeHumanのユーザデータフォルダ(Windowsの場合、
C:\Users\(ユーザー名)\Documents\makehuman\v1py3\data\models)である。分かりやすい場所を覚えておくこと。 - ファイルができるので確認する
Blenderで人体アニメーションを作成
- Blenderを起動する
- 中央の立方体は不要なので、立方体を左クリックで選んでから、DELキーを押して削除
- N キーでサイドバーを表示し、「MPFB」タブを選択する(Nキーで表示と非表示が切り替わる)。
「MPFB」タブが無い場合は、MPFB2アドオンのインストールが済んでいるかを、別のページで確認する。
- 「新規人体(New human)」→「プリセットから(From presets)」パネルを開き、「MHMをインポート(Import MHM)」ボタンをクリックし、先ほど保存した.mhmファイルを選ぶ。
- 読み込まれるので確認する
- 「Rigging」→「Add rig」パネルを開き、リグの種類として「CMU MB」を選び、「Add rig」をクリックする。MakeHuman側でCMU mbのリグを設定していれば、同じ骨格構成の骨格がBlender上にも追加される。
- N キーでサイドバーを開き、先ほど導入した「BVH and FBX Retargeter」(旧MakeWalk)のタブを選ぶ。
- 骨格(アーマチュア)を選択した状態で、アドオンのパネルにある「Load and Retarget」をクリックする。
- 先ほど準備したモーションデータの中から、.bvhデータファイルを1つ選び、ファイル選択画面で決定する。
- アニメーションが骨格に読み込まれ、再生できる状態になる。
レンダリング
次の手順でアニメーションをレンダリング(3Dシーンから連続した2D画像を生成する処理)してみる。「アニメーションのレンダリング」とは、一連の複数のフレームを一括レンダリングすることである。
- 次の手順で、カメラの位置を調整
- カメラを「カメラ視野」に固定
まず、Nキーでシェルフを出し、「ビュー」タブを選択し、「カメラをビューにロック」(Blenderのバージョンによっては「カメラをロック」と表示される)にチェックを入れる(シェルフを閉じるときもNキー)。
- 視点をカメラに変える
視点 (View) → カメラ (Camera) と操作する。画面右上のナビゲーションコントロール(視点操作ツール)からも切り替えができる。テンキーの「0」でも切り替え可能である。
先ほど、「カメラをビューにロック」したので、「カメラ視野(カメラビュー)」(レンダリング時に使用される視点)を動かすと、同時にカメラも動くようになる。
- カメラ視野の自由な移動:SHIFTキーとマウスの中ボタンを押しながらマウス移動
- カメラ視野の自由な回転(原点を基準):マウスの中ボタンを押しながらマウス移動
- マウスのホイールでも視点を調整
- F12キーでレンダリングして、確認してみる
これはカメラ視野でのレンダリングである。
- カメラを「カメラ視野」に固定
- アニメーションの終了の設定
既定(デフォルト)は250になっているのを適切に調整する(60くらいの値にする)。
- アニメーションのレンダリング
CTRLキー + F12キー(同時押し)
レンダリングが始まるので、確認する。終了を待つ。
- レンダリングが終了したら、確認のため再生してみる
CTRLキー + F11キー(同時押し)
別ウインドウが開いて、再生が始まる。
- 必要に応じて、カメラを見やすい位置に再度、調整する