授業「コンピュータグラフィックス特論」サポートページ (2021年度後期授業)
URL は https://www.kkaneko.jp/a/cg.html
授業名: コンピュータグラフィックス特論
担当者: 金子邦彦
トピックス:マーカーレスのモーションキャプチャ,3次元コンピュータグラフィックス,種々のシミュレーション,人体アニメーション,コンピュータビジョンとコンピュータグラフィックス
1. Blender のインストール,Blender の基本機能
1-1. Blender のインストール
- YouTube 動画:
- 資料: https://www.kkaneko.jp/db/cg/blenderinst.html
(この資料のうち、後半の「Blenderに Wavefront OBJ形式ファイルをインポート 」は無視してください)
- 資料: https://www.kkaneko.jp/db/cg/blenderinst.html
1-2. Blender の概要
Blender の画面構成,立体の新規作成,カメラの調整とレンダリング,マテリアル
- YouTube 動画: https://www.youtube.com/watch?v=1r0KtGF-8Q0
- 資料: https://www.kkaneko.jp/db/cg/blender1.pdf
【動画で実演している内容】
3Dビュー
- 回転:テンキー 4, 6, 2, 8
- 正面、真横、上:テンキー 1, 3, 7
- ズームイン、ズームアウト:マウスホイール
オブジェクトモードでの種々の操作(移動、コピーペースト、追加、回転、拡大・縮小)
- ツールバーで移動モード:赤、青、緑の矢印、マウスの左ボタンを使用
- ツールバーで回転モード、左クリックで確定、右クリックでキャンセル
- ツールバーで拡大縮小モード、左クリックで確定、右クリックでキャンセル
- Nキーでサイドバー、オブジェクトの位置などを細かく設定
- オブジェクトの追加のためのコピーペースト:CTRL+C, CTRL+V (あるいは右クリックメニュー)
- メッシュオブジェクト: 追加(Add)、メッシュ(Mesh)
- シーン内のオブジェクト一覧:右上のアウトライナー
- オブジェクトの削除:右クリックで選び、DEL キーで削除(あるいは右クリックメニュー)
- オブジェクトのプロパティ
色を設定する場合:オブジェクトの選択、右のプロパティを使用、マテリアルで設定。 マテリアルが無い場合には、新規、マテリアル.
レンダリング
- レンダリング(F12)(あるいはメニューの「レンダー」)
モードの切り替え
- エディットモード,オブジェクトモードなどのモードの切り替えは,左上のメニューで切り替え
【サイト内の参考ページ】
- 3次元コンピュータグラフィックスソフトウェア blender の画面構成,基本操作
- Blender の設定操作例
2. Blender の基本操作
2.1 オブジェクトの配置,ローカル座標系,グローバル座標系
【ここで行うこと】
Blender のシーンの中に,さまざまな種類の立体を配置する.
Blender の操作法としては,立体の追加,移動,回転,拡大・縮小の操作を学ぶ. 基礎としては,グローバル座標系とローカル座標系を知る.

資料: https://www.kkaneko.jp/db/cg/layout.html
【まとめ】
立体には,さまざまな基本的な立体(球,円柱,平面など)がある. 立体は,移動,回転,拡大縮小できる. シーンは,複数の立体を含むことができる. 座標系には,グローバル座標系とローカル座標系がある.グローバル座標系は,シーン全体のもの.ローカル座標系は,オブジェクト個々のもので,オブジェクトが傾くとローカル座標系も傾く
2-2. レンダリング,作業視野とカメラ視野
【ここで行うこと】
Blender のシーンの中に,さまざまな種類の立体を配置し,カメラ視野を調整しながら,レンダリングを行う.
Blender の操作法としては,レンダリング,作業視野とカメラ視野の切り替え,カメラの調整,マテリアル 基礎としては,作業視野とカメラ視野を知る.

資料: https://www.kkaneko.jp/db/cg/blender.html
【まとめ】
視野には,カメラ視野と作業視野がある. レンダリングは,カメラ視野で行われる. 立体には,マテリアルを設定することができる.
3. 落下や衝突のシミュレーショ,パーティクルアニメーション
3-1. 剛体シミュレーション
【ここで行うこと】
Blender の剛体シミュレーションの機能を使い, 落下や衝突のシミュレーションを行う. オブジェクトをいろいろと配置して,落下や衝突のシミュレーションを行ってみる.

資料: https://www.kkaneko.jp/db/cg/rigid.html
【まとめ】
Blender にはアニメーションのプレビュー,アニメーションのレンダリングの機能がある.アニメーションのプレビューは,スペースキーで開始,一時中断できる.
Blender での剛体シミュレーションでは,剛体は, アクティブとパッシブの2種類がある. アクティブは普通の剛体である. パッシブは移動しないように設定された剛体である.
3-2. パーティクルアニメーション
【ここで行うこと】
パーティクルアニメーションは,「パーティクル」と呼ばれるたくさんの粒を使うシミュレーション
波,煙,炎,流れの表現などに利用できる.

Blender を一度終了し、もう一度起動してから行ってください(いままで作ったデータは全て消したい)
【まとめ】
Blender で,数や寿命や出力速度の設定を行った. 他のオブジェクトで跳ね返る,通り抜けるといったシミュレーションも行った.
4. ブーリアン演算,クロス・シミュレーション
4-1. ブーリアン演算
【ここで行うこと】
Blender で2つの立体のブーリアン演算を行う.ブーリアン演算により,立体に穴をあけたり,2つの立体の交差部分を得ることができる.

資料: Blender で,ブーリアン演算により,立体を加工
【まとめ】
Blender での立体のブーリアン演算は,差分や交差などである.
ブーリアン演算の差分によって,立体に穴をあけることができる.
4-2. クロス・シミュレーション
【ここで行うこと】
Blender でのメッシュの作成,メッシュの編集,クロス・シミュレーションの実行

資料: Blender で,クロス・シミュレーション(Cloth Simulation)を行う
【まとめ】
布を,多数のポリゴンから構成されるメッシュで表現できる.
メッシュとは,1つあるいは複数のポリゴンの集まりである.
5. マテリアル,スムースシェード
5-1. マテリアル入門,スムースシェード
【ここで行うこと】
ポリゴンのフラットシェーディングとスムースシェーディングの違いを見る. オブジェクトの色,透明度,粗さなどのマテリアルを設定する.

資料: Blender のマテリアル,スムースシェード (smooth shade)
ここで作成した Blender のデータは,次で使用する.Blender を閉じずに次に進むこと.
【まとめ】
- マテリアルで,立体の色や粗さやメタリックを設定できる.
- Blender には,アルファブレンディングにより半透明を表現できる機能がある.
- フラットシェーディングでは,個々のポリゴンが,そのまま描画される.
- スムースシェード (smooth shade)では,元のメッシュの形は変えずに,ポリゴンどうしの境界がなめらかになるように描画される.
5-2. PBR マテリアル
【ここで行うこと】
Blender で PBR マテリアルのインストールを行い,使ってみる. さまざまな種類の材質を設定してみる.
前準備: Blender で,PBR マテリアルのインストールを行うこと.

資料: Blender の PBR Materials アセット
【まとめ】
- PBR Materials アセットの利用により,マテリアルの設定を簡単に行うことができる
5-3. テクスチャ座標,バンプマッピング
【ここで行うこと】
Blender のシェーダーの機能により, テクスチャ座標,バンプマッピングなどを試してみる.


資料: Blender のシェーダー・エディタ(Shader Editor)
【まとめ】
- Blender のシェーダーでは,さまざまなブロックの組み合わせによりリアルな質感を表現.
6. ライティング,テクスチャペインティング
6-1. Blender のライト
【ここで行うこと】
Blender の 4種類のライト(ポイント,サン,スポット,エリア)を見る. Blender で Eevee と Cycle のレンダーエンジンを見る. Blender でライトの追加や移動を行う.


使用する Blender ファイル:02e.blend を使用する.
資料: Blender のライト
参考資料(さらに,いろいろな機能を使いたい人のため): Blender で,レンダリングを行う
【まとめ】
- シーン内に,ライトを複数配置できる.
- Blender のライトには,さまざまな種類(ポイント,サン,スポット,エリア)がある.
- Blender では,ライトは明るさ(パワー)などを設定できる.
- Blender には,Eevee,Cycle などのレンダリングエンジンが複数あり,場合に応じて選ぶ
6-2. 画像テクスチャ
【ここで行うこと】
Blender で画像ファイルを用いた画像テキスチャを行う. 画像テクスチャのテクスチャ座標系を見る.

資料: 画像テクスチャ
【まとめ】
- テクスチャ座標系は2次元の座標系である.
- 立体は,3次元のものであるが,立体のサーフェスに展開され,2次元のテクスチャ座標系にマッピングされる
- Blender では,シーンは 3次元で,x, y, z の軸.テクスチャは 2次元で,u, v の軸である.
6-3. テクスチャ・ペインティング
【ここで行うこと】
画像ファイルの中の必要な部分だけを,画像テクスチャとして用いたいときに便利なテクスチャ・ペインティングを行う.

資料: Blender で,テクスチャ・ペインティング (Texture Painting) を行う
使用する画像: door.png
【まとめ】
- テクスチャは,立体の表面についての属性である.質感の表現に利用される.
- テクスチャの平面は,立体の表面にマッピングされる
7. 人体アニメーション
人体のポーズについてのアニメーション
7.1 人体のソフト MakeHuman のインストールと機能,Blender 2.93 との連携
【ここで行うこと】
Windows パソコンで,MakeHuman のインストールを行う. MakeHuman は人体の造形等の機能を持つソフトウェアである. MakeHuman のデータを,Blender で取り込んで,Blender で人体画像のレンダリングを行う.

資料: MakeHuman 1.2 のインストールと機能,Blender との連携(人体アニメーション)(Windows 上)
【まとめ】
- 骨格(「アーマチャ」などという)を設定することができる.骨格を動かすことにより,オブジェクトが変形する.
- Blender で,骨格を用いた変形は「ポーズモード」で行う.骨格全体の移動などは「オブジェクトモードで行う.
- 骨格は MakeHuman を用いて生成することができる.
7.2 逆力学(IK)の機能を用いて人体を動かす.
【ここで行うこと】
MakeHuman のデータを,Blender で取り込む. そして,Blender の逆力学(IK)の機能を用いて,人体を動かす.

資料: 逆力学(MakeHuman 1.2, Blender を使用)(Windows 上)
【まとめ】
- 骨格(アーマチャ)を動かすと,骨格につながるオブジェクト全体が動くのが順方向の力学である.
- オブジェクトを動かすことで,その結果,骨格(アーマチャ)が動く(同時にオブジェクトの他の部分も動く)のが逆力学(IK)である.
7.3 モーションデータ
【ここで行うこと】
- cmu-motion データのダウンロードを行う.
- bvh データファイルのビューワ BVHPlay をダウンロードし,動かすことによって,モーションデータについての理解を深める.

資料:
- cmu-motion データのダウンロード: https://www.kkaneko.jp/db/cg/makehuman.html#S3
- bvh データファイルのビューワ BVHPlay のダウンロードと実行: https://www.kkaneko.jp/db/cg/bvhplay.html
【まとめ】
- 骨格(「アーマチャ」などという)についてのモーションデータが, インターネットなどで公開されている.
8. OpenCV によるコンピュータビジョン
OpenCVを用いた種々の処理
- 説明資料: [PDF], [パワーポイント]
- 説明ビデオ: ビデオ(音声つき)が YouTube にもある.4分16秒.https://www.youtube.com/watch?v=Xt4h0_XLWEw
8.1 前準備(OpenCV 及び関連ソフトのインストール)
- 前準備として,Python 3 用 opencv-python, matplotlib, numpy パッケージのインストール
Windows パソコンで, コマンドプロンプトを管理者として実行する.次のコマンドを実行する.
python -m pip install -U opencv-python opencv-contrib-python matplotlib numpy
8.2 濃淡画像,動画
- Python + OpenCV 4 で濃淡画像を使う(イメージヒストグラム,ヒストグラム平坦化,ノイズ除去,2値化,輪郭抽出)
トピックス:カラー画像から濃淡画像への変換,イメージヒストグラム,ヒストグラム平坦化,濃淡画像のノイズを加える、ノイズを除去する,OTSU の方法による2値化,輪郭抽出
説明資料: Python + OpenCV 4 で濃淡画像を使う(イメージヒストグラム,ヒストグラム平坦化,ノイズ除去,2値化,輪郭抽出)
- OpenCV でビデオカメラ画像の表示,ファイル書き出し,濃淡画像処理(Python を使用)
- OpenCV でビデオのフレーム間差分,トラッキングビジョン,オプティカルフロー(Python を使用)
9. OpenCV でのグラフィックス,マウスイベント,Unreal Engine のインストール
9.1 グラフィックス
OpenCV で点や線の描画(OpenCV,Python を使用)
説明資料: OpenCV で点や線の描画(OpenCV,Python を使用)
9.2 マウスイベント
説明資料:マウスイベント
9.3 ゲームエンジン
説明資料: ゲームエンジン[PDF], [パワーポイント]
9.4 Unreal Engine のインストール
説明資料: Unreal Engine 4.27 のインストール [PDF], [パワーポイント]
10. 3次元ゲームエンジン Unreal Engine 入門
Unreal Engine のアクター,レベルブループリント,イベント,物理シミュレーション
- Blueprint プロジェクトの新規作成 [PDF], [パワーポイント]
- アクタの配置(移動,回転,拡大縮小)と複製 [PDF], [パワーポイント]
- Unreal Engine 5におけるレベルブループリントの基本操作 [PDF], [パワーポイント]
- アクターを追加してみる [PDF], [パワーポイント]
11. 3次元ゲームエンジン Unreal Engine 4 を用いたゲーム作成演習
- 中間まとめ [PDF], [パワーポイント]
- アセットを使ってみる [PDF], [パワーポイント]
- キーボードイベントとテレポート機能を活用した3Dオブジェクト操作の基本 [PDF], [パワーポイント]
- サードパーソン [PDF], [パワーポイント]
12. 顔情報処理
説明資料: Dlib の機能概要 [PDF], [パワーポイント]
内容
- 顔情報処理
- 顔検出
- 顔検証
- 顔認識
- 顔識別
- 顔認識
- 顔ランドマークの検出
- 顔のアラインメント
- 顔のコード化
- 顔の性別,年齢等の予測
- 顔ランドマークの3次元化
- 3次元の顔の再構成
- 顔検出
顔検出は,写真やビデオの中の顔を検出すること.顔とそれ以外のオブジェクトを区別することも行う. 顔検出の結果は,バウンディングボックスで得られるのが普通である.
- 顔検証
顔検証は, 顔と顔とを比べてマッチするか(同一人物であるか)を調べること.
- 顔識別
顔識別では,ある顔と,データベースの中の多数の顔についての情報を用いて,顔が誰であるのかの個人の特定を行う. このとき,データベースの中の多数の顔とのマッチングが行われる.
- 顔認識
顔認識 (face recognition)は, 写真やビデオについて顔検出を行い,さらに, その結果として得られた顔について (複数の顔が得られた場合にはそれぞれについて), 顔識別(データベースの中の多数の顔についての情報を用いての,個人の特定)を行うという一連の処理全体である.
- 顔ランドマーク
顔ランドマークは,顔について,目,眉,鼻,口,あごのラインなどのアノテーションを行ったもの
- 顔の 68 ランドマーク
顔の 68 ランドマーク は,顔ランドマーク (facial landmark)の一種であり,68 組の数値で構成されている.68 組のそれぞれは,(x, y) 座標値である.
- 顔のアラインメント
さまざまな大きさや向きの顔を,一定の向きや大きさにそろえることなどをいう.
- 顔のコード化
顔のコード化では,顔を数値(複数の数値)に置き換える. このとき,同一人物の顔は,近い値の数値に, 違う人物の顔は,離れた値の数値になるようにコード化を行う.
- Dlib
Dlib は,数多くの機能を持つソフトウェア. Python, C++ のプログラムから使うためのインタフェースを持つ. Dlib の機能: 機械学習,数値計算,グラフィカルモデル推論,画像処理,スレッド,通信,GUI,データ圧縮・一貫性,テスト,さまざまなユーティリティ
- Dlib を用いた顔情報処理
Dlib には,顔情報処理に関して,次の機能がある.
- 顔検出
- 顔ランドマークの検出
- 顔のアラインメント
- 顔のコード化
ディープニューラルネットワークの学習済みモデルも配布されている
- face_recognition
face_recognition は,顔情報処理の機能を持つソフトウェア. 次の機能がある.
- 顔のコード化
- 顔検証
演習
次のページを,各自 WEB ブラウザで開き,上から,説明を読みながら,コードセルを上から順に実行することができる. https://colab.research.google.com/drive/1S55yEFiQpdIRdjWbdH0zzEYD5VAfklHd?usp=sharing
自分で画像ファイルをアップロードし,画像ファイル名を「5」のプログラムに書き, 最初から実行しなおすことにより, 自分で新しい画像を試すことができる.
Google Colaboratory に,自分の手持ちの画像をアップロードするなどで試してみたいと思った人のために, Google Colaboratory へのファイルのアップロードの実演を,次の動画で行っている.
(右側のメニューの「ファイル」をクリック.そして,手元のファイルをドラッグ&ドロップ).
https://www.youtube.com/watch?v=rBBwNB3iS8w
取り組む上での注意点
- Google Colaboratory の使い方について,分からなくなった時のために,次を用意している. https://www.kkaneko.jp/pro/colab/colab.html
- Google Colaboratory を使用している途中で「続行するには,Google Proを使う必要がある」と表示される場合がある.そのときは,使用を取りやめて,「できた部分で十分に学ぶことができた」と考えてほしい.
Pythonで動く3次元ゲームエンジン Panda3d
- Panda3d のインストール
Windows パソコンで, コマンドプロンプトを管理者として実行する.次のコマンドを実行する.
python -m pip install --pre --extra-index-url https://archive.panda3d.org/ panda3d
- 画面を開くだけの Python プログラム
プログラム実行により,画面が開く.
結果を確認したら,右上の「x」をクリックして終了.
from direct.showbase.ShowBase import ShowBase class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) app = HelloWorld() app.run()
- マウス操作
Panda3d には,マウス操作の機能がある.
- 左ボタンを押しながらマウスを動かす: 視点移動(上下左右)
- 右ボタンを押しながらマウスを動かす: 視点移動(前後)
このことを確認するために,次のプログラムを動かす.
- self.scene = self.loader.loadModel("models/environment"): シーン内に3次元のオブジェクト等を置く
- self.scene.setScale(1, 1, 1), self.scene.setPos(0, 0, 0): シーン内の3次元オブジェクトの寸法と場所を設定.
プログラム実行の後,マウスを動かしてみる.
結果を確認したら,右上の「x」をクリックして終了.
from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) app = HelloWorld() app.run()
- 複数の3次元オブジェクトを置く
プログラム実行の後,マウスを動かしてみる.
結果を確認したら,右上の「x」をクリックして終了.
from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.cube = self.loader.loadModel("models/misc/rgbCube") self.cube.reparentTo(self.render) self.cube.setScale(1, 1, 1) self.cube.setPos(0, 20, 0) app = HelloWorld() app.run()
- キーボードのイベントハンドラ
プログラム実行の後,「aキー」を押す.
結果を確認したら,右上の「x」をクリックして終了.
from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.cube = self.loader.loadModel("models/misc/rgbCube") self.cube.reparentTo(self.render) self.cube.setScale(1, 1, 1) self.cube.setPos(0, 20, 0) self.accept( "a", self.a_key ) def a_key(self): self.cube.setScale(2) app = HelloWorld() app.run()
- マウスのイベントハンドラ
プログラム実行の後,マウスの右ボタン,左ボタンを押す.
結果を確認したら,右上の「x」をクリックして終了.
from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.cube = self.loader.loadModel("models/misc/rgbCube") self.cube.reparentTo(self.render) self.cube.setScale(1, 1, 1) self.cube.setPos(0, 20, 0) self.accept( "mouse1", self.mouse1 ) self.accept( "mouse3", self.mouse3 ) def mouse1(self): self.cube.setScale(2) def mouse3(self): self.cube.setScale(0.5) app = HelloWorld() app.run()
- 矢印キーでオブジェクトを動かす
プログラム実行の後,4つの矢印キーでオブジェクトが動くことを確認する
結果を確認したら,右上の「x」をクリックして終了.
from direct.showbase.ShowBase import ShowBase from direct.showbase.Loader import Loader class HelloWorld(ShowBase): def __init__(self): ShowBase.__init__(self) self.scene = self.loader.loadModel("models/environment") self.scene.reparentTo(self.render) self.scene.setScale(1, 1, 1) self.scene.setPos(0, 0, 0) self.cube = self.loader.loadModel("models/misc/rgbCube") self.cube.reparentTo(self.render) self.cube.setScale(1, 1, 1) self.cube.setPos(0, 20, 0) self.accept( "arrow_up", self.up_key ) self.accept( "arrow_down", self.down_key ) self.accept( "arrow_right", self.right_key ) self.accept( "arrow_left", self.left_key ) def up_key(self): self.cube.setZ( self.cube.getZ() + 1 ) def down_key(self): self.cube.setZ( self.cube.getZ() - 1 ) def right_key(self): self.cube.setX( self.cube.getX() + 1 ) def left_key(self): self.cube.setX( self.cube.getX() - 1 ) app = HelloWorld() app.run()
InsightFace を用いた顔情報処理(顔検知,顔認識,年齢推定,性別推定)
姿勢推定について
参考資料
強化学習ツールキット
強化学習 ML-Agents ツールキットを動かしてみる
- 強化学習 ML-Agents ツールキットを動かしてみる
説明資料: 人工知能の概要 [PDF], [パワーポイント],
次の資料の「Python の仮想環境の作成」から開始してください。その前は、すでに、終わっています
パソコン実習資料: Windows で Unity ML-Agents + Python 環境を作る(Chocolatey, Anaconda を利用)(Chocolatey, Anaconda を利用)
説明ビデオ: ビデオ(音声つき)が YouTube にもある.8分34秒.ML-Agents ツールキットに付属の事前学習済みモデルを Unity で動かしてみる(ミニ実演)
説明ビデオ: ビデオ(音声つき)が YouTube にもある.7分56秒.ML-Agents ツールキットで学習を行ってみる(ミニ実演)
顔や目の動き,肌色
説明資料: 虹彩について
頭部の姿勢推定
頭部の姿勢推定
瞳孔の検出
- TobiasRoeddiger/PupilTracker のインストールと動作確認(瞳孔の検出)(Dlib,Python を使用)(Windows 上)
赤いマークは目の下の中央、緑のマークが瞳孔
眼球の運動(eye motion)
http://gazecapture.csail.mit.edu/download.php
Python 基礎
Python 基礎のまとめと体現学習
- プログラミング [PDF], [パワーポイント]
- Python プログラミング入門 [PDF], [パワーポイント]
- 関数,抽象化 [PDF], [パワーポイント]
- 繰り返し(ループ),リスト,辞書 [PDF], [パワーポイント]
ページ29まで
モーションデータ
- 人体画像の実習
複数種類の人体が登場する人体画像を制作しなさい.種々のオブジェクト(床面等も配置しなさい).
- MakeHuman と Blender で人体アニメーションを作る
マーカーレスのモーションキャプチャ
OpenPose のセットアップ
- OpenPose による姿勢推定(Windows 上)
- ※ 参考資料 (どうしても最新版を使いたいとき)
Windows で OpenPose 最新版をソースコードからビルドして、使ってみる(Build Tools for Visual Studio を利用)
8.1 MakeHuman, モーションデータ, Blender を用いた人体アニメーションの作成
【ここで行うこと】
- cmu-motion データを用いる.
- MakeHuman を用いて人体のデータ(骨格を含む)を作る.bvh データファイルのビューワ
- Blender では,cmu-motion データのモーションデータと,MakeHuman の人体のデータを用いて,人体アニメーションを作成する.
資料:
- MakeHuman と Blender で人体アニメーション: https://www.kkaneko.jp/db/cg/makehuman.html