Comments
Description
Transcript
3DCG 技術の太極拳学習への応用
平成 25 年度 東邦大学理学研究科 情報科学専攻 修士論文 3DCG 技術の太極拳学習への応用 新谷研究室 学籍番号 6512009 中嶋 智 要旨 二十四式太極拳は二十四の複雑な型から構成された拳法であり世界中で練習されている。 初学者は初めに二十四の型の動きを覚える必要がある。太極拳の学習ポイントは、動き、 呼吸、重心移動であるが、市販のビデオ教材からそれらを学習するのは困難である。そこ で、近年安価になってきたヘッドマウントディスプレイ(HMD) 、3D プリンタ、スマート フォン、PC を利用し、CG 技術を駆使した統合的な太極拳の学習環境を構築する。太極拳 の学習ポイントを分かりやすく伝える HMD やスマートフォン用の教材を作成すれば、初 心者の学習支援につながる。また、複雑で分かりにくい太極拳でのポーズを 3D プリンタで 立体化し観察できれば便利ある。このために、初心者が安価な 3D プリンタを使い高品質な モデルを作成することが重要であり、高品質な造形物を手軽に作成出来る技術の確立が太 極拳の学習支援に繋がる。本研究では、 「ユーザーフレンドリーな 3DCG 教材の開発」と「高 品質 3D プリント造形物の作成支援」という 2 つの研究をもとに、二十四式太極拳の更なる 普及を目指す。 まず、ユーザーフレンドリーな 3DCG 教材の開発のため、モーションキャプチャを用い て取得した師範の演武のデータを用いて、太極拳初心者の学習を支援するスマートフォン 向けの CG 教材を作成した。本教材は、市販のビデオ教材では見にくかった手の動き、足 の重心移動、呼吸法などを分かりやすく表示するために、カメラアングル、鏡の配置、重 心と呼吸の視覚化機能などを学習者が自由に選択できるように構成されている。また、太 極拳の演武は移動や方向転換を頻繁に行うため、モニターに表示されているビデオ教材を 見ながら練習をする事が難しい。そこで、HMD に映像を出力し、常にビデオ教材の映像を 見ながら練習を行うことを可能とした。評価実験により、提案手法の有用性を示した。 次いで、高品質な 3D プリント造形物を初心者が手軽に作成出来るような支援技術を開発 1 した。近年主流となっている溶解樹脂堆積法 3D プリンタは立体物の断面形状を下から上へ と積み重ねて実体モデルを造形する。このため、堆積方向が製作に大きな影響を与える。 また、実体モデルを積層する際に、空洞部分や下に支えの無い橋構造部分を支えるために、 サポートと呼ばれる構造を作成する。サポートは制作後に手で除去を行うが、取り残しや 実体モデルの破損等に注意が必要であり、仕上がりに大きな影響を与える。サポート体積 はモデルの分割と堆積方向の選択により減らすことが可能であるが、非専門家が適切な分 割位置と堆積方向を決定することは容易ではない。そこで本研究では、分割位置と堆積方 向の自動決定法を検討する。提案手法により最適化した実体モデルを作成したところ、品 質の改善とサポート体積の減少が確認され、太極拳ポーズの 3D 造形物が容易に作成可能と なった。 2 目次 第1章 はじめに 2 第2章 二十四式太極拳 4 第3章 ユーザーフレンドリーな 3DCG 教材の開発 7 3.1 モーションデータの取得と修正(小川 2011) 3.2 モニター用 CG 教材の試作品の作成と評価 (中嶋 3.4 HMD 用 CG 教材の試作品の開発(中嶋 2012) 3.5 CG プログラムでの実装 第4章 高品質 3D プリント造形物の作成支援 4.1 3D プリンタ 4.2 コスト関数 4.3 サポート体積と断面領域数の計算 4.4 最適化 4.5 実験 第5章 2012) 7 11 23 31 37 37 41 42 44 45 まとめ 53 謝辞 参考文献 53 54 付録 55 1. 2. 3. 4. 5. 6. 7. 8. 9. モーションデータのエクスポート(MotionBuilder) Maya でのモデルの作成方法 Maya でのカメラの追従 Maya での半透明モデルの作成 Maya での鏡の設置 Maya でのキーフレームの設定 Maya のライトをカメラに追従させる Maya バッチレンダーを使ったレンダリング方法 ビデオ再生を行う Flash プログラムの作成 3 55 59 60 61 63 64 67 67 69 第一章 はじめに 二十四式太極拳は二十四の複雑な型から構成された拳法であり、健康に良いとされている ため、世界中で練習されている。初学者は初めに二十四の型の動きを覚える必要があり、 座学学習をする際は主にビデオ教材を用いて学習する。太極拳の学習ポイントは、動き、 呼吸、重心移動であるが市販のビデオ教材からそれらを学習するのは困難である。そこで、 近年安価になってきたヘッドマウントディスプレイ(HMD) 、3D プリンタ、スマートフォ ン、PC を利用し、CG 技術を駆使した統合的な太極拳の学習環境を構築する。太極拳の学 習ポイントを分かりやすく伝える HMD やスマートフォン用の教材を作成すれば、初心者 の学習支援につながる。また、複雑で分かりにくい太極拳でのポーズを 3D プリンタで立体 化し観察できれば便利ある。このために、初心者が安価な 3D プリンタを使い高品質なモデ ルを作成することが重要であり、高品質な造形物を手軽に作成出来る技術の確立が太極拳 の学習支援に繋がる。本研究では、 「ユーザーフレンドリーな 3DCG 教材の開発」と「高品 質 3D プリント造形物の作成支援」という 2 つの研究をもとに、二十四式太極拳の更なる普 及を目指す。 まず、ユーザーフレンドリーな 3DCG 教材の開発のため、モーションキャプチャを用いて 取得した師範の演武のデータ[1]を用いて、太極拳初心者の学習を支援するスマートフォン 向けの CG 教材を作成した。本教材は、市販のビデオ教材では見にくかった手の動き、足 の重心移動、呼吸法などを分かりやすく表示するために、カメラアングル、鏡の配置、重 心と呼吸の視覚化機能などを学習者が自由に選択できるように構成されている。鏡の設置 機能とカメラアングルの変更機能の有用性は先行研究[2]により示されており、ユーザーへ の学習支援効果が期待できる。学習者はカメラアングルを自由に選択することが可能で、 師範の手が見にくいシーンでは見たいと思った角度から演武を見ることができる。また、 ステージに鏡を設置し、隠れて見えない師範の体の部位を見ることが可能である。重心の 視覚化機能では重心が乗っている師範の足に色を付加する事により、学習者に対して正し い重心移動を提示する。呼吸の視覚化機能では画面に吸気と呼気のアイコンを表示し、師 範の呼吸に合わせて表示することにより、学習者に演武中の呼吸法を提示する。また、太 極拳の演武は移動や方向転換を頻繁に行うため、モニターに表示されているビデオ教材を 見ながら練習をする事が難しい。先行研究では、HMD に適したカメラワークの提案とその 有用性が示されている[3]。そこで、スマートフォンの映像を HMD へ出力することによっ て、常にビデオ教材の映像を見ながら練習を行うことを可能とした。以上の基本デザイン をもとに 3DCG 教材の実装を行った。 次いで、高品質な 3D プリント造形物を初心者が手軽に作成出来るような支援技術を開発し た。近年主流となっている溶解樹脂堆積法 3D プリンタは立体物の断面形状を下から上へと 積み重ねて実体モデルを造形する。このため、堆積方向が製作に大きな影響を与える。ま た、実体モデルを積層する際に、空洞部分や下に支えの無い橋構造部分を支えるために、 4 サポートと呼ばれる構造を作成する。サポートは制作後に手で除去を行うが、取り残しや 実体モデルの破損等に注意が必要であり、仕上がりに大きな影響を与える。サポート体積 はモデルの分割と堆積方向の選択により減らすことが可能であるが、非専門家が適切な分 割位置と堆積方向を決定することは容易ではない。そこで本研究では、分割位置と堆積方 向の自動決定法を検討する。コスト関数として、サポート体積と分割断面の領域数の和を 採用し、分割は堆積方向に垂直な平面とする。サポート体積と断面領域数の和は、堆積方 向に関する多層奥行き値画像を depth peeling 法を用いて前計算することで効率的に求め ることができる。平行な複数平面で分割する場合には動的計画法により最適な分割位置を 決定することができる。さらに、断面の領域数に関するコストを導入することで、分割平 面数を自動決定することも可能となった。堆積方向の最適化は、堆積方向をサンプルし、 コストが最小となる方向の探索を行う。提案手法により最適化した実体モデルを作成した ところ、品質の改善とサポート体積の減少が確認され、太極拳ポーズの 3D 造形物が容易に 作成可能となった。 5 2章 二十四式太極拳 楊式太極拳は世界中で練習されており健康運動として人気がある。楊式太極拳には様々 な流派が存在する。入門用の太極拳として教えられる二十四式太極拳、太極拳の国際大会 で競技会種目として制定された四十八式太極拳、難度が高く表演時間も長い八十八式太極 拳、剣を持って演武を行う太極剣などが代表的である。その中で、最も広く普及している ものが二十四式太極拳である。二十四式太極拳は二十四の複雑な動きから構成されている (図 1) 。演武には数多くの方向転換や移動が含まれ、初学者はまずの動きを学習する。表 1 に 24 の型の名称を示す。 表1 : 二十四式太極拳の型の名称 1 起勢(チシ) 2 左右野馬分鬃(ヅオヨウイェマフェンゾン) 3 白鶴亮翅(バイフーリャンチィ) 4 左右摟膝拗歩(ヅオヨウロウシアオブ) 5 手揮琵琶(ショウホイピパ) 6 左右倒巻肱(ヅオヨウタオジュアンゴン) 7 左攬雀尾(ヅオランチェイウェイ) 8 右攬雀尾(ヅオランチェイウェイ) 9 単鞭(タンビエン) 10 雲手(ユンショウ) 11 単鞭(タンビエン) 12 高探馬(カオタンマ) 13 右蹬脚(ヨウドンジャオ) 14 双峰貫耳(シュアンフォングアンアル) 15 転身左蹬脚(ヅュアンシェンヅオドンジャオ) 16 左下勢独立(ズオシャシドーリ) 17 右下勢独立(ヨウシャシドーリ) 18 左右穿梭(ヅオヨウチュアンソウ) 19 海底針(ハイデイジェン) 20 閃通臂(シャントンペイ) 21 転身搬攔捶(ヅュアンシェンバンランツィ) 22 如封似閉(リュフォンスビ) 23 十字手(シーズショウ) 24 収勢(ショウシ) 6 図 1:二十四式太極拳 7 二十四式太極拳の初心者は主にビデオ教材を用いて演武の動きを学ぶ。しかし、市販の ビデオ教材[4]は一方向からのみのカメラアングルで構成されており、シーンによっては師 範の手が体の後ろに完全に隠れてしまい観察する事が難しい。図 2 は市販のビデオ教材の 7 の型、左攬雀尾(ヅオランチェイウェイ)の 1 シーンである。このシーンでは師範の手が 体の後ろに隠れてしまい、ビデオ教材のみを使った独習では習得が難しい。筆者自身も太 極拳の初心者であるが、このような観察が難しい型では実際に師範に質問に行き、道場で レッスンを受けながら学んだ。しかし、師範を持たない太極拳初心者は、このような型の 学習は困難である。 図2:市販の太極拳教材(楊 慧: 『DVD で覚える健康太極拳 楊名時 24 式』) また、太極拳の重要ポイントとして呼吸や重心移動があげられるが動画のみでそれらを 学習することは難しい。更に、太極拳の演武は移動や方向転換を頻繁に行うため、モニタ ーに表示されているビデオ教材を見ながら練習をする事が困難である。そこで、近年安価 になってきた HMD(図3) 、3D プリンタ(図4) 、スマートフォン、PC を利用し、CG 技術を 駆使した統合的な太極拳の学習環境を構築する。太極拳の学習ポイントを分かりやすく伝 えるヘッドマウントディスプレイやスマートフォン用の教材を作成すれば、初心者の学習 支援につながる。また、複雑で分かりにくい太極拳でのポーズを 3D プリンタで立体化し観 察できれば便利ある。このために、初心者が安価な 3D プリンタを使い高品質なモデルを作 成することが重要であり、高品質な造形物を手軽に作成出来る技術の確立が太極拳の学習 支援に繋がる。本研究では、 「ユーザーフレンドリーな 3DCG 教材の開発」と「高品質 3D プ リント造形物の作成支援」という 2 つの研究をもとに、二十四式太極拳の更なる普及を目 指す。 8 図3:ヘッドマウントディスプレイ 図4: 3D プリンタ テレグラス T3-A http://mikimoto-japan.com/beans/products/t3a/index.htm 3章 ユーザーフレンドリーな 3DCG 教材の開発 3.1 モーションデータの取得と修正 太極拳の初心者が座学学習をする際は主にビデオ教材を用いて学習する。しかし、市販 のビデオ教材は 1 方向からのカメラアングルで構成されており、シーンによっては師範の 動きが見にくい。また、太極拳の演武において重要な、足の重心移動や呼吸法を学習する 事も困難である。本研究室ではこの問題を解消するために、3DCG を用いた太極拳独習用 コンテンツの開発を行っている。小川(2011)[1]の研究では、モーションキャプチャを用 いて師範の動きのデータ化を行った。また、中嶋(2012)[2]の研究では取得したモーショ ンデータの修正を行った。 3.1.1 演武のデータ化(2011 小川) 師範の演武をデータ化し、3DCG ソフトの Maya で扱える形式に変換する。まず、演武 を光学式モーションキャプチャで取得し、モーションデータを MotionBuilder[5]に読み込 む。次に、MotionBuilder を用いて、取得したモーションと Autodesk Maya[6]で作成した 3D モデルの対応付けを行い Maya の作業データとしてエクスポートした。 モーションキャプチャとは、人体や物体動作をデジタル情報として記録する技術である。 キャプチャ方式には光学式、機械式、磁気式などがあるが、本研究では光学式モーション キャプチャを使用する。光学式モーションキャプチャは、図5のように人物や物体にマー カーを付けそれを複数のカメラで撮影してマーカーの動きをデータ化する。そのため、マ ーカーの数が多いほどデータの精度が上がる。 本研究では師範の演武を光学式モーションキャプチャの MAC3D[6]で取得した。カメラ には赤外線方式の Raptor-4[7]を 12 台使用する。マーカーは、頭に四つ、両肩、両二の腕、 9 両前腕、手の甲に三つ、胸に二つ、背中に二つ、腰に三つ、両膝、両脛、足に四つの計 37 点を付けた。 図5:撮影風景 取得したモーションデータを MotionBuilder に読み込む。MotionBuilder とは Autodesk が開発した CG アニメーションを編集するソフトウェアであり、3DCG モデルの作成や編集は 行うことはできない。そこで、MotionBuilder でモーションデータをボーンベースのアニメ ーションに変換し Maya で作成した 3DCG モデルに対応付ける。Maya は Autodesk(米)から 発売されている 3DCG 製作ソフトである。モーションデータの Maya へのエクスポート方法 は付録の1章に示す。図6はモーションと対応付けを行ったモデルを Maya で表示した例で ある。Maya でのモデルの作成方法は付録の2章に示す。 図6:Maya のシーンデータ 3.1.2 モーションデータの修正(2012 中嶋) 取得したモーションデータを師範がチェックしたところ、 “モーションにノイズが乗って いる” 、 “指のアニメーションが作られていない”というアニメーションの問題、 “腕が胴体 や頭に干渉する”というモデリングにおける問題点が明らかになった。 これらの問題点は、学習者に誤った演武を習得させる可能性があるので Maya を用いて 修正を行った。以下に問題の解決のために取った手法を述べる。 10 (1)モデルの動きのノイズ 師範の演武のモーションデータにはノイズが乗っており、人物モデルの手や頭が不自然 に震えるシーンが存在する。ノイズの除去には Maya のグラフエディタを使用する。グラ フエディタとは、図7のようにボーンの回転角度を時系列のグラフに表示し編集する Maya のアニメーションツールである。グラフエディタは縦軸が関節の回転角度で、横軸が時間 を表している。グラフ上の黒い点はキーフレームである。 太極拳は緩やかな動きが多く、関節の回転角度のフレームごとの遷移をグラフエディタ に表示するとノイズが乗っているフレームを図7のように一目で確認する事ができる。ノ イズの除去にはノイズの原因となっているキーフレームの削除を行う。ノイズが乗ってい るキーフレームを選択し、削除を行う。これをアニメーションの最後まで行ったところ図 8のようにノイズを除去することに成功した。 図7:ノイズ除去前のグラフエディタ 図8:ノイズ除去後のグラフエディタ (2)指のアニメーション モーションデータの取得に使用したマーカーは合計 37 個存在するが、手のマーカーは手 の甲につけた三つのみであり、指にはマーカーが取り付けられていなかった。そのため、 アニメーションが作られていないという問題がある。また、指のモデルも図9(a)のように 未作成である。そのため、図9(b)のような指のモデルを作成し、図9(c)のようにボーンを 設定した。その後、キーフレームアニメーションで指の動作の作成を行った。キーフレー ムアニメーションとは任意のフレームに、オブジェクトの状態を記録させることによって 「キーフレーム」を作成し、コンピュータにキーフレーム間のアニメーションを生成させ てアニメーションを作成する手法である。 11 図9(a) 図9(b) 図9(c) 指の動作は師範による指南と映像教材を参考にして作成した。ほとんどの型において、 太極拳の演武を行う際の指の形は、図9(b)のように小指、薬指、中指、人差し指を揃え、 親指を開いた姿勢で行い、最初から最後まで大きな動きが少ないのが特徴である。しかし、 16 の型や 11 の型などでは図 10,11 に示すように手を握ったり鍵型にしたりする動作が存在 する。そこで、キーフレームを設定してアニメーションを作成した。キーフレームアニメ ーションの作成方法は付録の6章に示す。 図 10:第 16 の型の右手の様子 図 11:第 11 の型の右手の様子 (3)腕、胴体、頭の干渉 アニメーションの特定のシーンでは人物モデルの腕が胴体や体を突き抜けてしまい、図 12 に示すように不自然なアニメーションになっている。そこで、干渉が起きないように修 正を行う必要がある。これは、人物モデルの腕の長さや胸の厚さなどが、モーションデー タを取得した師範の体型と異なっている事が原因である。 12 図 12:干渉が起きている人物モデル そこで、師範の足の長さや手の大きさなど、図 13 に示す計 9 箇所をメジャーで計測した。 計測結果を元に人物モデルの体格のバランスの修正を行ったところ、図 14 に示すようにめ り込みが解消された。 図 13:測定した箇所 図 14:干渉を修正した人物モデル 3.2 モニター用 CG 教材の試作品の作成(2012 中嶋) 市販の太極拳の映像教材はカメラアングルの制限により、師範の動作が見にくいことが ある。そこで、モニターに表示する太極拳独習用 CG 教材を作成し、評価実験を行った。 モニター用 CG 教材はユーザーが見たいと思った師範の体の部位を自由に見ることが出来 る。 13 3.2.1 コンテンツデザイン (1)カメラアングルの選択 ユーザーが見たいと思った師範の体の部位を自由に見られるように、複数のカメ ラを設置する。見る角度によって見えるモデルの部位が違うので、カメラを前後左 右、斜め 45°の計 8 箇所に設置し(図 15) 、時計回りに Cmaera①~⑧とする。ユ ーザーは図 16 に示す 8 つのカメラアングルから見たいと思った角度を選択すること が可能である。カメラは演武にあわせてモデルを追従し、カメラの高さのパラメー タは固定してある。Maya でのモデルの追従方法を付録の3章に記す。 図 15:カメラの配置 図 16 :8 方向からの画像 (3)半透明のモデル 師範がカメラに対して背中を向けている場合、体に隠れた手の動きを見ることは できない。そこで、図 17 のようにモデルを半透明にすることによって、背中側から でも手の動きを確認できるようにする。Maya での半透明モデルの作成方法を付録の 4 章に示す。 14 図 17 モデルを半透明にした状態 (3)鏡を配置したステージ 多くの太極拳教室には鏡が置いてあり、稽古の際は鏡の前で学習する事が多い。CG 教材 においてもステージに鏡を設置し、隠れて見えない師範の部位を観察できるようにする。図 18 は背景に鏡を設置した様子である。Maya での鏡のマテリアルの設定方法を付録の 5 章に 示す。 図 16:鏡を配置したステージ 以上の機能を盛り込んだ太極拳独習用 CG 教材の試作品を作成する。 3.2.2 実装 Maya を用い、アニメーションのレンダリングを行い、結果を flv ビデオとして出力した。 プログラム言語には ActionScript3.0 を用い、Flash プログラムとして実装した。以下にレ ンダリング、実装の手法と実装結果を示す。 15 (1)レンダリング 使用するレンダラは鏡の質感の表現が可能な mental ray を使用した。レンダリング結果 は連番の Bmp 画像として出力した後 avi に変換し、その後 flv 動画としてエンコードを行 った。通常の動画(図 17) 、半透明の人物モデルを設置した動画(図 18) 、鏡を設置した動 画(図 19)、をそれぞれ 8 方向から、合計 24 本の flv 動画を作成する。 図 17:通常のモデルのレンダリング結果 図 18:半透明の人物モデルを設置したレンダリング結果 図 19:鏡を配置したレンダリング結果 レンダリングは Maya のソフトウェア上で行う方法と、コマンドラインでレンダリング 16 を行うバッチレンダーが存在する。複数のレンダリングを一度に行いたい場合は、バッチ ファイルを作成しバッチレンダーでレンダリングを行う。本研究では描画するフレーム数 が多いため、バッチレンダーを使用しレンダリングを行った。 付録の7章に Maya バッチレンダーの使用方法を示す。 (2)Flash プログラムの作成 教材の実装には Adobe Flash CS4 を用いる。Adobe Flash CS4 は Flash プログラムを開発 するためのツールである。 プログラム言語には ActionScript3.0 を用い Flash 作成した。ActionScript とは Adobe Flash で使用されるクラスベースのオブジェクト指向プログラム言語である。 付録の 9 章にビデオ再生を行う Flash プログラムの作成例を示す CG 教材は図 25 のように①~⑦までのボタンやスライダが存在する。表 2 に各機能の説明 を示す。 図 25 CG 教材の試作品の実行画面 17 表2 :各ボタンとスライダの機能 B1 視点を 180°回転する事ができる B2 視点を 45°回転する事ができる B3 師範の半透明化 B4 鏡の配置の有無を切り替える B5 次の型に飛ぶ B6 現在の型を繰り返す B7 動画の再生と停止を行う S1 任意のフレームから再生を始めることができる CG 教材の試作品の操作例を以下に示す。 回転ボタン(B1)を押すと視点を 45 度ずつ回転させることが出来る 図 26 は回転ボタン(B1)を押した例である。回転ボタンを押すと視点を 45 度ずつ右回転さ せることができる。 図 26 : 画面の回転 師範の半透明化ボタン(B3)を押すと半透明の人物モデルに変更が可能である。 図 27 は師範の半透明化ボタン(B3)を押し、モデルを半透明に変更したあと、回転ボタンを 使い視点を 45 度ずつ右回転させた例である。 図 27 : 半透明モデルの回転 18 鏡 on/off ボタン(B4)を押すと鏡を設置したステージの変更が可能である。図 28 は鏡 on/off ボタン(B4)を押し、鏡をステージに設置したあと、回転ボタンを使い視点を 45 度ずつ右回 転させた例である。 図 28 3.2.3 : 鏡を配置したステージの回転 評価実装1 市販の教材と CG 教材の見やすさを比較するために、ユーザーテストと師範による演武 の採点を行った。被験者には太極拳の学習を全く行った事がない学生を用いた。 被験者 8 名を 2 グループに分け、図 29 のように、十分に広い場所で CG 教材と市販の映 像教材で 6 の型と 7 の型をそれぞれ 30 分間ずつ独習させた。その後、被験者に CG 教材の 見やすさについて4項目質問を行い、5 段階評価で回答をさせた。また、被験者の演武をビ デオ撮影し、師範が 5 点満点で採点した。独習課題には相似性の低い 6 の型と 7 の型を選 択した。グループ分けの方法と実験結果を以下に示す。 図 29 : 実験風景 (1)評価実験のグループ分け 被験者 8 名を無作為に 4 名ずつ、グループ1とグループ2に分ける。表 3 に各グループ の実験課題を示した。 グループ1は CG 教材を使用し 30 分間の独習を行い演武の撮影を行った後、市販の映像 教材を使った独習を 30 分間行い演武の撮影を行う。 19 グループ2は市販の映像教材を使用し 30 分間の独習を行い演武の撮影を行った後、CG 教 材を使った独習を 30 分間行い演武の撮影を行う。 表3 各グループの実験の流れ (A)CG 教材を使用 (B)市販の映像教材を使用 グループ 1 6 の型の独習(A) → 演武撮影 → 7 の型の独習(B) → 演舞撮影 グループ 2 6 の型の独習(B) → 演舞撮影 → 7 の型の独習(A) → 演舞撮影 (2)ユーザーテストの結果 被験者を対象に CG 教材についてユーザーテストを行った。市販の教材と比べて師範の 動きが見やすかったか、本教材のカメラの回転機能、鏡を設置したステージ、半透明モデ ルについての見やすさについて、表 4 の①~③の3項目の質問に対し、被験者に5段階評 価で回答してもらい、数値化を行った。 表 4:質問内容 質問番号 質問内容 ① 本教材は市販の教材に比べて師範の動きが見やすかったか ② カメラの回転機能は見やすかったか ③ 鏡を設置したステージは見やすかったか 点数と回答内容は「とても見やすい(+2 点)」 、 「やや見やすい(+1 点)」、 「どちらともいえな い(0 点) 」 。 「やや見にくい(-1 点)」 、 「とても見にくい(-2 点)」とした。結果の平均と標準偏 差は図 30 のようになり質問①,②,③について「見やすかった」と回答した被験者が多かっ た。また、量的分析として、「平均値が正である」という仮説に関して片側 t 検定を行った ところ、質問②,③においてそれぞれ有意水準 1%で有意差が認められた。各質問の t 値を表 5 に示す。 20 図 30 : アンケート結果の平均点と標準偏差 表5 各質問の t 値 (自由度=7) 質問番号 t値 ①本教材は市販の教材に比べて師範の動きが見やすかったか t(7)= 1.62 ②カメラの回転機能の見やすさ t(7)= 5.35 ③鏡を設置したステージの見やすさ t(7)= 5.40 ④半透明モデルの見やすさ t(7)= 0.05 また、質的分析として質問①、②、③のアンケートの集計結果に順位和検定を行った。 得点は表 6 のように設定した。 表6 採点方法 CG 教材 市販の教材 とても見やすい 4点 0点 やや見やすい 3点 1点 どちらとも言えない 2点 2点 やや見にくかった 1点 3点 とても見にくかった 0点 4点 回答結果 21 その結果、片側 t 検定と同様に質問②、③において有意水準 1%で有意差が認められた。 図 31 に順位和検定の結果を記す。 (順位和) 120 100 80 CG教材 60 市販の教材 40 20 0 ① (質問) ② ③ 図31 : 順位和決定の結果 これらのユーザーテスト結果から、カメラの回転と鏡を設置機能が、見やすさの向上に つながるということが言える。半透明モデルを使った学習においては、どちらを向いてい るかわかりにくいというコメントを被験者から多く得た。 (3)師範による採点結果 表 7 と表 8 にグループ1とグループ2を師範に 5 点満点で採点した結果を示す。 表 7 被験者 グループ 1 単位 6 の型(CG 教材) 点 7 の型(市販の教材) A 3 2.5 B 3 3 C 4 2 D 1 1 表 8 被験者 グループ 2 単位 点 6 の型(市販の教材) 7 の型(CG 教材) E 3 2.5 F 4 4 G 1 2 H 1 1 22 採点結果に分散分析を行い、被験者、教材、型の違いによる有意性を調べた。被験者間で は有意水準 1%で有意差が認められたものの、教材と型では有意差を認められなかった。図 32 は CG 教材と市販の教材を使った学習の採点結果の平均点と標準偏差を示したものであ る。 また図 33 は 6 の型と 7 の型の採点結果の平均点と標準偏差を示したものである。 また、 図 34 は被験者間の採点結果の平均点と標準偏差を示したものである。 図 32 図 34 採点結果の平均点と標準偏差(教材) : 図 33 採点結果の平均点と標準偏差(型) 採点結果の平均点と標準偏差(被験者) CG 教材と市販の映像教材を比較すると、CG 教材の方が平均点が高かった。市販の映像 教材で動きが見にくかった型において、市販の教材を用いて学習した被験者は手の動きが あいまいであったのに対し、CG 教材を用いて学習した被験者はしっかりと演武が行えてい た、というコメントを師範から得た。しかしながら、採点結果の差に関する有意性は検出 できなかった。これは、被験者数が 8 名と少数であったことと、学習時間が 30 分と短時間 23 だったことによるものと考えられる。 3.2.4 評価実験2 評価実験 1 ではカメラの回転機能と鏡の設置機能の有用性が明らかになった。実験 2 で は被験者がこれらの機能を使いどのように学習したかを調べるために、各ボタンの使用頻 度を計測した。被験者には太極拳を学んだことがない 8 名の学生(21~24 歳)を選んだ。 被験者には CG 教材を使い 7 の型を 20 分間独習してもらい各ボタンの使用回数を計測した。 表 9 は各ボタンの使用回数の一覧である。表から分かるように被験者は回転ボタンを最も 使用した。図 35 は各カメラの使用時間である。図から分かるようにカメラ 6 の使用時間が 特に高い。カメラ 6 は師範を斜め後ろから見ることができるカメラアングルである。実験 結果から被験者は師範の姿勢の観察が難しいシーンになると頻繁にカメラを変更し、見や すいアングルを模索していることが分かった。このことから、ユーザーはカメラの回転機 能を積極的に利用しているといえる。 また、各被験者の鏡の使用時間の平均を測定した。その結果を表 10 に示す。その結果、 実験時間の 1200 秒のうち 1024 秒近くの間鏡が使用されており、鏡の設置機能は有用であ るという事が言える。 表9 : 各機能の使用頻度 平均使用回数 標準偏差 視点の 180°回転 0.625 回 0.992 視点の 90°回転 23.75 10.13 鏡の表示/非表示 3.125 2.027 次の型に飛ぶ 0 0 現在の型を繰り返す 1 0 再生 1 0 シークバー 0 0 24 図 35 表 10 : : 各カメラの使用時間 鏡の合計使用時間の平均 平均 標準偏差 鏡有り 1024.75 秒 (85.6%) 140.194 秒 鏡なし 175.25 秒(14.4%) (5)モニターCG 教材の試作品の問題点 実験の後、被験者にモニターCG 教材の使用感の調査を行った。その結果、 1.画面を回転させることによって、見たいと思った師範の体の部分が 観察出来るようになった。 2.鏡を設置することによって師範の姿勢がイメージしやすくなった。 というポジティブな意見を頂いた。その反面、 1.カメラアングルの変更が連続的でない。 2.ファイルサイズが 700MB 近くあり、大きすぎる。 3.タブレットやスマートフォンではフレームレートが著しく低くなる という問題点も明らかになった。これらの問題点の修正については 3 章 5 節「CG プログ ラムでの実装」に記す。 25 3.3 HMD 用 CG 教材の開発(2012 中嶋) 太極拳の演武は移動や方向転換を頻繁に行うため、図 36 のように練習中にモニターから 徐々に遠ざかってしまう。画面を見ながら練習をする際は、練習者は体をひねるたびに画 面の方に向き直り、動画を巻き戻して再度再生を行う必要がある。そのため、モニターに 表示されているビデオ教材を見ながら太極拳の練習をする事は難しい。 図 36 : ビデオ教材を使った太極拳の練習 そこで、近年比較的安価になってきた HMD を利用すれば、常にビデオ教材の映像を見な がら練習を行うことが可能になると考えた。図 37 は HMD を使った学習の例である。HMD を使うことによって練習者は映像を見ながら学習することが可能になる。 図 37 : HMD を使った太極拳の練習 しかし、市販のビデオ教材は固定されたカメラから撮影されることが多い。このため、師 範の姿勢によっては練習者と向き合う形となる。そのため、右手を上げるべき動作で左手 を上げてしまうなど、左右の混乱が生じることがあり、市販のビデオ教材は HMD での表 示には適さない。HMD ビデオ教材用のカメラアングルをデザインする際はユーザーの姿勢 を考慮する必要がある。しかし、ユーザーの姿勢情報を取得する事は難しい。近年、Kinect 26 (図 38)と呼ばれる人間の姿勢情報をリアルタイム取得する比較的安価な機器が発売され ているが、手足が背中に隠れてしまう動き、関節が複雑に絡む動き、後ろを向きながらの 動きの最中では正常に認識することが出来ず、太極拳の姿勢の獲得には不向きである。 図 38 : Kinect http://www.xbox.com/ja-JP/kinect そこで、練習中のユーザーは師範と同じ姿勢をとっていると仮定しカメラアングルをデザ インする。また、道場などで師範から太極拳を学ぶ際は、師範の演武を後方から見るのが 良いとされている。これは師範と学習者の左右が一致し、混乱が生じにくいためである。 そこで、常に師範を後方から見ることが出来るような HMD での教材を作成すれば、初心 者の学習支援につながると考えた。 本研究では、3章 1 節で作成した師範の演武の 3DCG データを用いて、HMD に適した カメラワークの教材を作成した。常に師範を後方から見ることができるカメラワークを 2 種類考案し、ユーザーテストにより最も HMD に適したものを採用した。 HMD を使用した CG 教材の有効性を実験により評価した。実験では、太極拳の学習経験 の無い 5 名を 2 グループに分け、各被験者は HMD とモニターを使用し独習を行った。被 験者が本教材の見やすさについて評価した結果、HMD の利用が太極拳の独習の支援につな がるという有意な結果を得た。 3.3.1. カメラワーク 太極拳を師範から学ぶ際は常に後方から演武を見るのが良いとされている。これは、師 範の左右と練習者の左右が一致し、混乱が生じにくいためである。そこで、常に師範の背 中を表示し続けるようなカメラワーク方式を 2 つ考案し、どちらが HMD での学習に適して いるか、ユーザーテストによって決定した。 方式①:カメラ追従 図 39(a),(b)のように CG モデルの背後にカメラを配置し、モデルの移動に合わせて回転、 追従させることで常にモデルを背後から表示する。カメラの高さのパラメータは固定して ある。方式①のレンダリング結果を図 39(a),(b)に示す。 27 図 39(a) 図 39(b) 図 39(a) 図 39(b) 方式②:複数師範配置 図 40 のようにモデルを 9 体配置し、非表示にした中央のモデルの腰の位置にカメラを配 置する。カメラは中央のモデルの腰の動きに合わせ移動と回転を行う。カメラの高さのパ ラメータは固定してある。こうすることにより、どちらを向いても師範の演武を後方から 見ることが可能になる。方式②のレンダリング結果を図 41 に示す。 図 40:方式②の配置 28 図 41:方式②のレンダリング結果 3.3.2 カメラワーク方式の決定 HMD での表示に適したカメラワークを決定するために、ユーザーによる評価実験を行 った。Maya のシーンデータをレンダリングし、MP4 ファイルとして出力した。動画は iPod classic で再生し、片眼タイプの HMD Teleglass-T3 に表示した(図 42)。被験者には太極拳の 学習経験のある 4 名を選んだ。 図 42:Teleglass-T3(スカラ株式会社) 比較用として、既存の教材のようにカメラワークが固定された映像を方式③とした。方 式①、②、③を HMD で表示し、演武をしやすい順に被験者による得点付けを行った(1位: 3点 2 位:2 点 3 位:1点) 。その結果、平均点と標準偏差は図 43 のようになった。 29 図 43:ユーザー評価の平均点と標準偏差 それぞれのカメラワーク方式の得点平均に有意差があるかどうか t 検定を行ったところ 表 11 に示すように方式①と③、方式②と③の間に有意差が認められた。方式①と②の間に は有意差が認められなかったが、総合得点では方式①が高かった。このため、方式①を HMD 教材用のカメラワーク方式として採用することとした。 表 11:t 検定の結果 (自由度=3) 組み合わせ t値 p値 有意差 ①と② 1.0 0.391 無 ①と③ 7.0 0.002 有 ②と③ 5.0 0.015 有 3.3.3 評価実験 モニターのみを使った学習と、HMD 教材とモニターを併用した場合の学習効果を比較す るためにユーザーテストを行った。被験者には太極拳の学習を全く行った事が無い学生 5 名を選んだ。 被験者 5 名を 2 グループに分け、十分に広い場所で、HMD とモニターを使いそれぞれ 20 分間ずつ独習をさせた。図 44 に HMD を使った学習の様子を、図 45 にモニターを使った学 習の様子を示す。その後、被験者に HMD とモニターを併用した場合の学習のしやすさにつ いて 4 項目質問し、5 段階評価で回答させた。独習課題には相似性の低い 2~4 の型と 7~8 の型を選択した。グループ分けの方法と実験結果を以下に示す。 30 図 44:HMD を使った独習の様子 図 45:モニターを使った独習の様子 (1) グループ分け 被験者 5 名を 2 グループに分ける。図 46 に各グループの実験の手順を示す。 グループ1はモニターのみを使用し 2~4 の型の独習を 20 分間行う。その後、7~8 の型を モニターと HMD を併用して 20 分間の独習を行う。最後に、2 つの独習方法を比較し、5 段 階評価で質問に答える。 グループ 2 は 2~4 の型をモニターと HMD を併用して 20 分間の独習を行う。その後、モ ニターのみを使用し 7~8 の型の 20 分間の独習を行う。最後に、2 つの独習方法を比較し、 5 段階評価で質問に答える。 (A)モニターのみを使用 (B)モニターと HMD を併用 グループ 1 グループ2 2~4 の型の独習(A) 2~4 の型の独習(B) ↓ ↓ 7~8 の型の独習(B) 7~8 の型の独習(A) ↓ ↓ 評価 評価 図 46:各グループの実験の流れ (2) ユーザー評価の結果 被験者を対象に、HMD とモニターを併用した演武の見やすさについてユーザーテストを 行った。被験者は表 12 の①~④の 4 項目の質問に対し、 「HMD 併用の方が良い(+2)」、 「HMD 併用の方がやや良い(+1)」 、 「どちらとも言えない(0)」、「モニターのみの方がやや良い(-1)」 、 「モニターのみが良い(-2)」の 5 段階評価で回答した。 31 表 12:質問の内容 質問番号 質問内容 ① 練習の際、演武の動きを覚えやすかったのはどちらか? ② 練習の際、演武をしながら映像を確認しやすかったのはどちらか? ③ 練習の際、左手を上げるときに右手を上げてしまうなどの左右の混 乱が少なかったのはどちらか? ④ 総じて、モニターのみの学習と、HMD 教材を利用した学習はどちら が学習しやすかったか? 結果の平均と標準偏差は図 47 のようになり、全ての項目について「HMD 教材を併用し たほうが良い」と回答した被験者が多かった。また、「平均値が正である」という仮説に関 して片側 t 検定を行った結果、質問①において有意水準 2%、質問②,③,④においてそれぞれ 有意水準 1%で有意差が認められた。 図 47:アンケート結果の平均点と標準偏差 また、質的分析として質問①、②、③、④のアンケートの集計結果に順位和検定を行っ た。得点は表 13 のように設定した。 表 13 採点方法 CG 教材 市販の教材 HMD 併用がよい 4点 0点 HMD 併用の方がやや良い 3点 1点 どちらとも言えない 2点 2点 モニターのみの方がやや良い 1点 3点 モニターのみが良い 0点 4点 回答結果 32 片側 t 検定と同様に全ての質問において有意水準 1%で有意差が認められた。図 48 はそ の結果を示したものである。 このことから、HMD の使用が太極拳の独習の際に学習効果を向上させるということが言 える。 45 40 35 30 25 HMD併用 20 モニターのみ 15 10 5 0 質問1 質問2 質問3 質問4 図 48:アンケート結果の平均点と標準偏差 (3)HMD 用教材の試作品の問題点 実験の後、被験者に HMD 教材の使用感の調査を行った。その結果、方向転換の多い型 では練習がしやすくなったという意見を頂いた。しかし、モニター用 CG 教材と同様に 1.ファイルサイズが 700MB 近くあり、大きすぎる。 2.タブレットやスマートフォンではフレームレートが著しく低くなる という問題点の指摘も頂いた。これらの問題点の修正について 3 章 5 節(P.32) 「CG プ ログラムでの実装」に記す。 33 3.4 CG プログラムでの実装 3 章 2 節(P.11)では鏡の設置とカメラの回転機能が見やすさを向上させることが示され た。また、3 章 4 節(P.21)においては HMD の利用が太極拳の独習の際に学習効果を向上させ るということが示された。しかし、教材の問題点として以下の 3 つの問題点が明らかにな った。 ・問題1 追加機能が必要 太極拳において呼吸と重心移動は重要な要素であるが、開発したモニター用 CG 教材では 考慮されていなかった。また、太極拳の演武は演者に合ったテンポで学習することが好ま しい。しかし、モニター用 CG 教材と HMD 用教材では、この点も考慮されていない。 ・問題2 カメラアングルの変更が連続的ではない モニター用 CG 教材の試作品のカメラは師範の周囲 8 方向にセットされており、アングル を切り替える際は 45°ずつカメラの回転を行う。そのため、カメラの回転ボタンを押すと 映像が突然切り替わり、角度によってはユーザーはアニメーションのフレームが飛んだよ うな錯覚に陥る。これは演習の際にストレスを感じるという報告を受けたので、リアルタ イムレンダリングを行いカメラを滑らかに回転させるようにする。 ・問題3 システムサイズが 700MB 近くあり大きすぎる モニター用 CG 教材と HMD 用 CG 教材の試作品では、演武の 3DCG アニメーションは動 画ファイルとして提供されている。動画ファイルのコーデックは H.264、ビットレートは 128Kbps で長さは 358 秒となっている。映像は鏡ありと鏡無しの 2 種類をそれぞれ 8 方向ず つ全 16 本用意した。動画は 1 本あたり約 42MB 程のファイルサイズがあり、全方向で 678.4MB 近くになる。Google play のファイルサイズの上限は 50MB となっており、オンラ インでの配信が難しい。リアルタイムレンダリングを行えばシステムサイズを削減するこ とが出来る。 ・問題4 タブレットとスマートフォンではフレームレートが著しく低くなる Flash で実装したモニター用教材を Android タブレットで実行し、フレームレートを計 測したところ、結果は平均 19.3fps であった。計測に使用したタブレット端末は 2011 年 9 月発売の Sony tablet S (Nvidia Tegra2 1GHz デュアルコア、Android 3.2)である(図 49) 。 また Flash ファイルをスマートフォンで実行する際は Google 非公式のファイルブラウザで ファイルを開き、Adobe 非公式の Flash プレイヤーかウェブブラウザ上で動作させる必要が あり、オンラインでの配布には不向きである。 34 図 49 : Sony tablet S http://www.sony.jp/tablet/products/S1/image.html そこで本研究では、これらの 4 点の問題の改善を行い、よりユーザーフレンドリーな太 極拳独習用 CG 教材の開発を行った。さらに、モニター教材と HMD 教材を統合化し、利便 性を高めた。 HMD を利用して太極拳を学習する際は、持ち運び可能なデバイスから映像を出力する必 要がある。そのため、本教材は Android 端末をターゲットプラットフォームとした。 問題点1を改善するため、師範の監修のもと新機能の実装を行い機能の充実を目指した。 重心の視覚化機能では、重心が乗っている師範の足に色を付加することにより、学習者に 対して正しい重心移動を提示する。呼吸の視覚化機能では、画面に吸気と呼気のアイコン を表示し、師範の呼吸に合わせて切り替えることにより、学習者に太極拳の呼吸のリズム を提示する。テンポの変更機能では、ユーザーが演武の速度を自分にあったものに変更で きるようにした。 問題点2および3、4は演武の映像を Flash ビデオベースで供給していることが原因であ る。そこで、3D ゲーム統合開発環境 Unity[8]を用いてリアルタイムレンダリングでの実装 を行い、システムサイズの削減とインタラクティブ性の向上を実現した。実装の結果、シ ステムサイズを 1179MB から 16MB へと大幅に削減した。 以上の 4 つの問題点を解決するために、本研究では Unity を使いリアルタイムレンダリ ングを行う。Unity とは複数のプラットフォームに対応する統合開発環境を内蔵したゲーム エンジンである。対応言語は C 言語、C++、C#、Javascript、Boo である。対応プラットフ ォームは iOS、Android、windows、OS X、Linux、ウェブブラウザ、Flash、Playstation 3、Xbox 360、Wii U となっており、ライセンスを購入すれば幅広いプラットフォームにパブリッシ ュすることが可能である。 3.2 コンテンツデザイン 問題 1~4 を軽減するために以下のように基本デザインを行った。 (1)カメラアングルの変更機能 3章3節においてカメラアングルの変更機能の太極拳学習における有用性が明らかにな 35 った。そのため、CG プログラムを用いた実装においてもカメラアングルの変更機能を搭載 する。モニター用 CG 教材の試作品のカメラアングルの切り替えが連続的ではなかった。そ こで、シームレスにローテーションできるように実装させる。PC 用の実装ではマウスイベ ントを取得して回転機能を実装する。タブレット PC やスマートフォンなど Android 向けの 実装ではタッチイベントを取得して実装する。 (2)鏡の設置機能 (1)同様に3章4節において鏡の設置機能が見やすさを向上させる事が明らかになった。 そのため、CG プログラムを用いた実装においても鏡の変更機能を搭載する。 (3)体重移動の視覚化 太極拳の演武において体重移動は重要であり、最初の型である起勢(チシ)以外では常 にどちらか片方の足に体重が偏っているようになっている。重心の移動を知っていれば演 武中の姿勢の移り変わりを違和感なく演じられるようになる。しかし市販のビデオ教材か ら体重移動を観察するのは難しい。そこで、体重がかかっている足を色で示し、観察でき るようにする。図 50 は左足に体重が乗っているシーンの例である。図 51 は右足に体重が 乗っているシーンの例である。 体重移動のアニメーションは筆者が作成した後、そのアニメーションを太極拳の師範に 見てもらい修正を行うことで実装をおこなった。 図 50:左足に重心 図 51:右足に重心 (4)呼吸の視覚化 太極拳の演武では呼吸が重要である。しかし、ビデオ教材の映像から師範の呼吸を観察 することは難しい。そこで師範の呼吸に合わせて画面にアイコンを表示することで、ユー ザーに呼吸法を提示する。図 52 は呼吸アイコンを表示した操作画面の例である。 36 図 52:呼吸の視覚化 (5)スピードの調節機能 太極拳の演武はダンスなどと異なり、テンポを他人に合わせる必要が無い。また、ユー ザーからは「もっと遅い速度で演武の観察を行いたい」という意見を多数いただいた。そ こで演武の図 53 のようにスピードをスライダで調節する機能を搭載した。 図 53 : スピード調節スライダ 37 (6) 鏡の設置 ステージに鏡を設置することで、隠れて見えない師範の体の部位を観察できるようにす る。図 54 はステージに鏡を設置した様子である。 図 54:鏡を配置したステージ (7)モデルの選択 試作品では師範のモデルはマネキンのような簡略化したモデル(図 55)を使用してい た。これは情報量を絞り込み、画面を見やすくする狙いがある。しかし、試作品の評価実 験では、人間のような親しみやすいモデルの方が良いという意見を多数いただいた。また、 簡略化モデルにはテクスチャが貼られていなかったため、モデルが体をひねる際に体幹の 移動が観察しにくいという指摘をいただいた。そこで師範の老師のモデル(図 56)を作成 し、ユーザーは好きなモデルに切り替えて演武を行えるようにした。 図 55 : 簡略化モデル 図 56 : 老師モデル 38 3.3 実装 演武のモーションデータはモーションキャプチャにより取得した [1]。アニメーションを 適用した師範のモデルを Unity にインポートし、PC、タブレット PC、スマートフォン上で 動作する CG プログラムとして実装した。本教材は、太極拳の学習ポイントを分かりやすく 表示するために、カメラアングルの変更、鏡の配置、重心と呼吸の視覚化、テンポの変更 が可能となっている。図 57 に本教材の実行画面を示す。 実行画面には図 6 のように B1 から B10 までのボタンや S1,S2 のようなスライダを配置し た。また、ユーザーはタッチパネルをドラッグ・ピンチする事によって師範の回転とズー ムが連続的に行える。表 14 に各インターフェースの説明を示す。 実装の結果、本教材のファイルサイズは 16MB となった。これは、Google Play のファイ ルサイズの上限である 50MB を下回るため、アップロードを行うことが出来る。表 15 に従 来の教材のファイルサイズと本教材のファイルサイズを示す。 図 57:教材の実行画面 39 表 14:教材のボタンとスライダ B1 師範を 180°回転させる B2 師範を 45°回転させる B3 鏡の配置の有無を切り替える B4 師範のモデルの切り替え B5 重心移動の可視化 B6 呼吸の可視化 B7 HMD モードの切り替え B8 次の型に移動する B9 現在の型を繰り返す B10 再生と停止を行う S1 演武のテンポの変更 S2 任意のフレームから再生を始める 表 15 : ファイルサイズ 従来の教材(モニター用) 912MB 従来の教材(HMD 用) 267MB 本教材 16MB 師範の道着のアニメーションは Maya に標準搭載されたクロスシミュレータである nCloth を使い、師範の演武のモーションデータから自動生成を行った。nCloth の詳しい設定方法は 巻末の付録***に記す。nCloth は Maya のアプリケーション内で実行され、布地や膨張す る風船などをシミュレートしポリゴンの形状に反映させます。nCloth の演算には高い CPU 性能を持つ、Maya がインストールされた PC が必要で、タブレット PC や携帯端末では動作 しない。本システムのアニメーションのためには事前に windows PC(Corei5 750、メモリ 1GB)で 1 時間程の演算が必要である。Unity にもクロスシミュレータは存在するが、精度 が低く、衝突が少ない単純な図形でしか利用できず、師範の衣服への使用は現実的でない。 本教材の師範は毎回決められた動作を行う。そこで、それに伴って師範の衣服も毎回同 じモーションで動くと仮定した。我々は nCloth のモーションデータを mc 形式のキャッシュ データとして保存して Unity にデフォーマとしてインポートを行った。キャッシュ形式なの でシステムの情報量は増えるが、複雑な物理演算を教材の実行中に行わなくて済むので CPU の負担は極端に少なくなる。通常、Maya にデフォーマのインポートを行うことは出来 ない。そこで、MegaFiers[9]の機能を利用することでインポートを行った。MegaFiers とは Unity のアセットストアで購入可能なメッシュデフォーマシステムである。デフォーマのイ ンポートの方法を付録の 11 に示す。 40 Unity への Maya のデータのインポートは非常に簡単に行える。ユーザーが行うことは Maya の作業データの保存形式である Mb ファイルを Project ウィンドウにドラッグアンドド ロップするだけである(図 58) 。Maya からインポート可能な要素は位置、回転、スケール のあるすべてのノード、回転軸、頂点色のあるメッシュ、法線および 2 つまでの UV セッ トテクスチャとディフューズ色のあるマテリアル、 メッシュごとの複数のマテリアル、ア ニメーション FK & IK ボーンベースのアニメーションである。Unity はインポート時に、 自動的にポリゴン メッシュを三角化するため、Maya 上で三角化を行う必要は無い。 図 58 : Project ウィンドウ 41 4章 高品質 3D プリント造形物の作成支援 太極拳のポーズは複雑であり、モニターや紙媒体からでは師範の姿勢を直感的にイメー ジしにくい。そこで、太極拳でのポーズを 3D プリンタで立体化し手軽に観察できれば二十 四式太極拳の普及につながる。このためには、初心者が安価な 3D プリンタを使い高品質な モデルを作成することが重要であり、高品質な造形物を手軽に作成出来る技術の確立が太 極拳の学習支援に繋がる。本章では、「高品質 3D プリント造形物の作成支援」という研究 から二十四式太極拳の更なる普及を目指す。 4.1 3D プリンタ 3D プリンタとは、幾何モデルで示される立体形状を積層造形法により立体物として作製 する装置である。積層造形法とは、コンピュータ上で設計された立体形状をスライスして 輪切りデータを作り、このデータに基づいて断面形状を一層ごとに積層して実体モデルを 作製する方法である。1996 年にアメリカのストラタシス社や 3D システムズ社や Z Corp.が それぞれ異なる方式の積層造形装置を 3D プリンタとして販売開始した。当時の主なターゲ ット層は企業の製品設計部門で、主に設計者がプロダクトモデル等の形状確認を行うため に使用された。また、企画会議などでも用いられ、製品を説明する際、図面や 3D データを 提示するよりも模型を手渡しするほうが分かりやすく、効果的であった。3D プリンタ登場 以前はデザイナーが粘土や木を使って試作品の作成を行っていたが、3D プリンタの登場で 形状を早期に安価に作成する事が可能になった。 近年、3D プリンタは急速に小型化、低価格化が進み、企業向けの製品だけでなく 10 万円 程度の家庭用向けの製品も増えている。2011 年には MarkerBot 社の「Thing-O-Matic」が$1000 程で、2013 年には RoBo3D 社の「R1 "PLA Model" Fully Assembled 」が$600 程で発売され ており、今後も低価格化が進むと予想されている。 廉価な3D プリンタは溶解樹脂堆積法による装置が主流である。この方法では、立体物の 断面形状を下から上へと積み重ねて実体モデルを作製する。このため、堆積方向が作製に 大きな影響を与える。また、実体モデルを積層する際、空洞部分や下に支えのない橋構造 の部分を支えるために、サポートを同時に積層する(図 59-a) 。このサポートは作製後切り 取るが、サポートの除去時には、取り残しや実体モデルの破損などに注意が必要であり、 仕上がりに大きな影響を与える(図 59-b)。さらに、サポート体積は、作製時間や使用材料 に影響を与える。 42 サポート 不良部 (a) サポート (b)サポート除去後 図 59 実体モデルとサポート (a)分割作成 (b)結合後 図 60 分割作製の例 サポート体積は、幾何モデルを分割して作製することで減少させることができる。例えば 図 60 に示すように、teapot を縦方向中央で分割してそれぞれを製作した後に接合すると、 サポート部分を殆ど無くすことができる。しかし、これを行うためには、適切な分割位置 を決めることが必要である。このように、効果的かつ効率的に3D プリントを行うためには、 モデルの分割や堆積方向を決めることが重要であるが、非専門家が適切に決定することは 容易ではない。そこで本研究では、分割位置と堆積方向の自動決定法を検討する。コスト 関数として、サポート体積と分割断面の領域数の和を採用し、分割は堆積方向に垂直な平 面とする。サポート体積と断面領域数の和は、堆積方向に関する多層奥行き値画像を depth peeling 法を用いて前計算することで効率的に求めることができる。平行な複数平面で分割 する場合には動的計画法により最適な分割位置を決定することができる。さらに、断面の 領域数に関するコストを導入することで、分割平面数を自動決定することも可能となった。 堆積方向の最適化は、堆積方向をサンプルし、コストが最小となる方向の探索を行う。提 案手法により最適化した実体モデルを作成した所、品質の改善とサポート体積の減少が確 認され、太極拳ポーズの 3D 造形物が容易に作成可能となった。 43 積層造形法の 3D プリンタには、光造形法、粉末造形法、溶解樹脂堆積法などがある。以 下にこれらの造形方法の特徴を述べる。 (1)光造形法 光造形法(英:Stereolithography)は、液状の光硬化性樹脂にレーザで断面形状を描画し、 レーザが照射された部分を硬化させ造形物を得る方法である。硬化された面は 0.05mm~ 0.25mm 程液の中に沈められ、その上に新しい断面形状を作成する。これを順次繰り返して 造形物を得る。価格は 700 万円から数千万円ほどであり、主に企業の設計者がプロダクト モデル等の形状確認を行うために使用され。図 61 は現在市販されている光造形法 3D プリ ンタの DigitalWax 029X(1700 万円)である。 図 61 : 光造形法 3D プリンタ DigitalWax 029X http://www.digitalwax.asia/line/029x.html (2)粉末造形法 粉末造形法はナイロン、青銅、鋼、ニッケル、チタン等の粉末樹脂を層状に薄く敷い て、その表面に炭酸ガスレーザや YAG レーザを照射・描画して、粉末同士を固着させ 造形する手法である。光造形法と比べ、強度の強い材質が利用できるので耐久性の高い 造形物が作成可能となっている。光造形法 3D プリンタと同様に大型で高価であるため、 主に企業の設計者がプロダクトモデル等の形状確認を行うために使用される。図 62 は 粉末造形法 3D プリンタの sPro™ 140/230 SLS® Center である。 44 図 62 :粉末造形法 3D プリンタ sPro™ 140/230 SLS® Center http://www.systemcreate-inc.co.jp/products/3d/printer/spro.html (3)溶解樹脂堆積法 溶解樹脂堆積法では、フィラメント状にした ABS 樹脂やポリカーボネート樹脂など の熱可塑性樹脂をノズルより溶かしながら吐出して、造形物を乗せたステージを XY プ ロッターのように動かすことで、順次断面を積層してモデルを作製する。これらのうち 溶解樹脂堆積法は機構が単純なために小型化、低コスト化が可能で、現在最も普及が進 んでいる。溶解樹脂堆積法 3D プリンタは 2014 年現在では、5 万円~50 万円程度で購入 が可能である。本研究では溶解樹脂堆積法を対象とし、オーピーティー社 UP!3D プリ ンタを使用する( 図 63)。 図 63 : Up! 3Dprinter 45 (オーピーティー社) 溶解樹脂堆積法 3D プリンタを利用した造形物製作の流れを図 64 に示す。幾何モデル のスライスデータが 3D プリンタに転送されると、3D プリンタはヘッドを X-Y 方向(水 平方向)に移動させ 1 層分のスライスデータをプリントする(図 65)。1 層目のスライス データのプリントが完了するとステージを Z 方向に 1 層分下げ、次の層のプリントを開 始する。これを繰り返して幾何モデルのスライスデータを下から上へと積み上げていく。 プリント終了後はステージに癒着した実体モデルを引き剥がし、サポートを手で除去す る。サポートと実体モデルの接着面はミシン目の様な構造になっており、人間の手の力 で引き剥がすことができる。 「Up! 3Dprinter」を使った実体モデルの詳しい作成方法に ついては付録の****章に記述する。 図 64 : 3D プリンタの実体モデル作成の流れ 図 65 : ヘッドとステージの動き 4.2 コスト関数 溶解樹脂堆積法では立体物の断面形状を下から上へと積み重ねて実体モデルを作製 する。図1に示す teapot の取手の内側や注ぎ口の下部のように、穴部や凹部などの中 空には、適当な間隔で柱状のサポートを形成し、その上にモデル形状を造形する。造形 後にサポートを手作業で除去する必要があるが、根元まできれいに取り除くことは困難 で、サポートの過多が仕上がりに大きな影響を与える。また、細かい部分のサポートを 取り除くのは困難で退屈な作業である。サポートは幾何モデルを分割し、プリント後に 接着することにより減らすことが可能である。分割数の増加に伴ってサポート体積は減 少するが、製作後に接着する必要がある面数が増加し、作業時間が増大する。したがっ て、断面領域数が少ないことが望ましい。そこで、本研究では以下の 3 点を考慮に入れ コスト関数を決定した。 46 (1)実体モデルの品質 サポート除去の際、実体モデルが傷つくことがある。そのため、本研究では実体モデ ルの品質はサポート体積に比例と比例関係にあると仮定した。 (2)サポート除去時間 サポートの除去はプリント後に手動で行われる。 (3)接着時間 分割数の増加に伴ってサポート体積は減少するが、製作後に接着する必要がある面数 が増加し、作業時間が増大する。本研究では、接着時間は断面領域数に比例すると仮定 した。 (1)、 (2) , (3)を考慮し、本研究ではサポート体積と断面領域数をコスト関数の 要素とした。サポート体積の和は分割平面数に関して単調に減少するが断面領域数は単 調に増加する。このため、ある分割平面数においてコスト関数は最小値をとり分割平面 数を決定することが出来る。 4.3 サポート体積と断面領域数の計算 サポートの体積は、堆積方向を光源方向と見なした時の影領域の体積となり(図 66) 、 物体を堆積方向sに投影し、奥行値を積算することで計算できる。 図 66 サポート 47 図 67 サポート長 堆積方向に垂直な平面で物体を分割することを考える。堆積方向に垂直な平面で物体 を分割することを考える。位置 X における物体表面の奥行値を小さい順に zi (i=1,…,n) とする。上下、2面の奥行値を D1,D0 とし、この2面に挟まれる zi を D0<zl<zl+1<…<zh<D1 とする(図 67)。X におけるサポートの長さは、これら区間のうち、物体の外部にある ものの和で求められる。また、物体最上表面の上にはサポートは不要であるため、式(1) から求められる。 ℎ𝑠 (𝑋) = ∑ 𝐿𝑖 物体外 𝐿0 = 𝑧𝑙 − 𝐷0 𝐿𝑖 = 𝑧𝑙+𝑖+1 − 𝑧𝑙+𝑖 𝐿h = 0 (1) hs(X)の和により、この分割区間でのサポート体積が計算できる。 𝐻′𝑠 (𝑍0 , 𝑍1 ) = ∑ ℎ𝑠 (𝑋) 𝑋 (2) 各画素での奥行値z𝑖 (𝑋)を depth peeling 法[2]により多層奥行マップとして求めてお けば、これを参照することで容易にサポート体積が計算できる。 実体モデルの作成は、モデルを逆向きに作成しても構わないので、s 及び-s 方向のう ちサポート体積が少ない方向を選択する。このことを考え、式(3)とおき、Hs をこの分 割部のサポート体積とする。 48 𝐻𝑠 (𝑍0 , 𝑍1 ) = min(𝐻′ 𝑠 , 𝐻′−𝑠 )) (3) 次に、断面の領域数M(𝑧)を求めるため、多層奥行マップを参照し、z における断層画像 𝐶𝑧 (𝑥, 𝑦)を作成する。この画像に対して、断面の領域数M(𝑧)を得る。 コスト関数 g として、サポート体積 Hs(Z1,Z2)と断面領域数 M(Z1)の線形和、式5を用 いる。 𝑔𝑠 (𝑍𝑖, , 𝑍𝑖+1 ) = 𝐻𝑠 (𝑍𝑖 , 𝑍𝑖+1 ) + 𝛼𝑀(𝑍𝑖 ) 4.4 (4) 最適化 (1)分割位置 N 枚の堆積方向に平行な平面で分割することを考える。平面の奥行値を小さい順に Zi (i=1,…,N)とし,物体の最小・最大奥行値を Zo,Ze=ZN+1 とする(図 68)。このときの評価値 は式(5)となる。 図 68 サポート体積 (5) 𝑁 𝐺 = ∑ 𝑔𝑠 (𝑍𝑖 , 𝑍𝑖+1 ) 𝑖=0 この形から分かるように、G の最小化は動的計画法により O(N2)で行うことができる。 DP テーブルとして 𝐸0 (𝑧) = 𝑔𝑠 (𝑍0 , 𝑧) 𝐸𝑗 (𝑧) = min (𝐸𝑗−1 (𝑧 ′ ) + 𝑔𝑠 (𝑧 ′ , 𝑧)) ′ (6) 𝑧 <𝑧 を求めておけば、これを参照することで、 49 (7) min 𝐺 = min(𝐸𝑁−1 (𝑧) + 𝑔𝑠 (𝑧, 𝑍𝑒 )) 𝑍1 ,..,𝑍𝑛 𝑧 により最小化できる。 (2)分割数 上記の最適化を平面数 1≦N<𝑁𝑚𝑎𝑥 に関して行う。サポート体積の和は N に関して単 調に減少し、0 に近づく。他方、分割面領域数 M は単調に増加する。このため、ある N においてコスト G は最小値をとり、この意味で最適な分割平面数が定まる。 (3)堆積方向 堆積方向に関する評価関数の変化は線形的ではないので、網羅的な探索が必要と考え られる。そこで、堆積方向をサンプルし、各サンプル方向において最適化を行い、最も 評価値が小さかった方向を最適な堆積方向として決定することとした。 4.5 実験 図 69 処理手順 処理手順を図 69 に示す。堆積方向 s をサンプルし、この方向 si に関する多層奥行マ 50 ップ zi[x][y]を depth peeling 法により求める。このマップを用いて、式(2),(3)によ りコスト値 Hs(Z,Z’)を計算する。ただし、分割位置 Z は nz 段階に量子化して、テー ブルとして保持する。また、Z における断層画像 Cz(x,y)を作成する。この画像に対し て、閉領域の塗りつぶし処理と同様な処理により領域分けを行い、領域数 M(Z)として 記憶する。 最大分割平面数を Nmax として、j<Nmax の範囲で DP テーブル Ej(Z)を式(4)を用いて計 算する。また、式(5)により、任意の分割平面数 N<Nmax に対する最小値が求めら、si 方向における最適分割平面数が決まる。 この処理をすべてのサンプル方向 si に関して行い、最小値を与える方向を最適な堆積 方向と決定する。入力された幾何モデルは分割平面でクリップし、切り口の多面体を抽 出して3角形化した後にファイル出力する。3角形化には Delaunay 三角形を用い、CGAL [3]を利用して実装した。 現実装においては、多層奥行マップ zi の解像度を 64×64,分割平面の量子化数 nz=64、 堆積方向のサンプル数は 19 方向としている。サンプル方向を図 70 に示す。 図 70 サンプル堆積方向 最適化 buddha に対して最適化を行った例を示す。まず、堆積方向を y 方向とし、分割平面数 N=1 とする。分割平面の位置 Z に対して、サポート体積 Hs,分割面領域数 M を図9に示 す。ただし、サポート体積は物体の体積で正規化している。式(5)における重み係数α を変化させた場合の評価値 G を図 71 に示す。図のように、中央付近で最小値を持つこ とが分かる。 51 図 71 サポート体積・領域数と分割平面数 分割平面数 N を変化させたときのコスト値の変化を図 72 に示す。図のように、重み αの値が小さいときは、分割平面数 N に対してコスト値が単調に減少するが、αを上 げるに従い、少ない N で最小値が得られることが分かる。α=0.01 に対する分割位置を 図 73 に示す。 図 72 分割平面数とコスト値 52 図 73 分割平面数と分割位置 各堆積方向に関して得られた最小値を図 74 に示す。この例では、y 軸方向(#16)で最 小となり、分割平面数は 2 であった。分割された物体を図 75 に示す。 表 16:処理時間 多 層 奥 行 マ ッ Hs(Z,Z’),領域数 DP テーブル作 プ +hs(z)作成 の計算 成と最小値探 索 0.18 s 0.27 s <0.000 s 処理時間は 19 方向全体で 9.2 秒であった。ただし、処理は Windows PC (Intel Core i7-3770K @3.50GHz, GeForce GTX 690)で行った。最適方向(y 方向)における処理時間 の内訳を表1に示す。最も処理オーダが高いのは Hs(Z,Z’)テーブルの作成であり、奥行 マップの解像度 nx×ny,分割平面の量子化数 nz に対して O(nx×ny×nz2)となる。式(4),(5) の DP テーブル作成は画像を参照しないため比較的軽微で、最大平面分割数を nmax とし たときには O(nz×nmax)である。 53 G G 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 2 4 6 8 10 12 14 16 方向 (a)コストの変化 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1.5 1 0.5 0 -1 0 1 -0.5 -1 (b)サンプル堆積方向 図 74 堆積方向とコスト値 製作例 表 17: 作業時間とサポート体積・領域数(ドラゴン) 分割無し 提案手法 分割平面数 0 1 プリンタ稼働時間 (min) 70 72 サポート除去時間 (min) 19 2 接着時間 0 1 サポート体積 1.211 0.249 処理時間 0 12.88 54 18 表 18: 作業時間とサポート体積・領域数(ブッダ) 分割なし 提案手法 分割平面数 0 2 プリンタ稼働時間 (min) 210 220 サポート除去時間 (min) 19 9 接着時間 0 5 サポート体積 0.981 0.244 処理時間 0 11.79 表 19: 作業時間とサポート体積・領域数(アルマジロ) (a) 分割なし 提案手法 分割平面数 0 3 プリンタ稼働時間 (min) 127 111 サポート除去時間 (min) 3 2 接着時間 0 13 サポート体積 1.906 1.204 処理時間 0 13.30 分割平面数 1 (b)最適分割(平面数2) 図 75 分割された幾何モデル 55 (a)分割なし 図***: (b)2分割(最適分割) 実験結果(ブッダ) (a)分割なし 図***: (b)1分割(最適分割) 実験結果(ドラゴン) (a)分割なし 図 76 (b)3 分割(最適分割) : 実験結果(アルマジロ) 56 表 20 分割平面数 : 製作時間 サポート除去時 接着時間(分) プリント時間 間(分) ブッダ ドラゴン アルマジロ 0 19 0 210 2(最適) 9 5 215 0 19 0 70 1(最適) 1 1 72 0 3 0 127 3(最適) 2 13 111 前節での最適化に基づき、実体モデルを作製した。①分割を行わない場合、②1平面で 分割・最適化した場合、③分割平面数に関しても最適化した場合の3つに対して作製し た。ただし、α=0.01 とし、最適分割平面数は 2 となっている。分割された幾何モデル を図 76 に示す。図のように、分割により実体モデルの表面の仕上がりが向上している ことが分かる。 計算上のサポート体積、断面の領域数、製作時間および接着作業時間を表 20 に示す。 表のように、分割によりサポート体積は減少している。これにより、サポート除去の時 間は減少している。しかしながら、接着を要する断面領域数が増大するため、接着時間 は増大する。このため、分割により作業時間は大幅に減少するものの、分割平面数1と 比べて2では作業時間がやや増加している。重み値αの調整が必要であると考えられる。 3D プリンタの稼働時間は、予想に反して減少せず、むしろ微増している。この原因と しては、サポート部の樹脂密度が低いために、サポート体積減少が大きな効果を持たな いためと考えられる。また樹脂密度はモデル表面で高く、内部ではやや低い。分割によ り表面積が増加したために、使用材料・稼働時間が増加したものと考えられる。 作業者は、①股下などの穴部分、②腕などの細い部分、などのサポート除去作業を負担 に感じたと報告している。これらの点を加味できるように、コスト関数を検討する必要 がある。 57 5章 まとめ 本研究では、 「ユーザーフレンドリーな 3DCG 教材の開発」と「高品質 3D プリント造形 物の作成支援」という 2 つの研究をもとに、二十四式太極拳の更なる普及を目指した。 「ユーザーフレンドリーな 3DCG 教材の開発」では太極拳の学習ポイントを分かりやす く伝える HMD やスマートフォン用の教材を作成した。先行研究ではモーションキャプチ ャを利用して取得した師範の演武のモーションデータを用いて、モニター用教材と HMD 用教材の試作品を作成した。モニター用教材の試作品では、ユーザーテストにより鏡の設 置機能と回転機能の有用性が明らかになった。HMD 用教材の試作品では、ユーザーテスト から HMD を利用した太極拳学習に最適なカメラアングルを明らかにした。これらの結果 を踏まえて、カメラの回転機能、鏡の設置機能、体重移動の表示機能、呼吸の表示機能、 スピードの変更機能を搭載した PC、タブレット PC、スマートフォン、HMD に対応した CG 教材を作成した。 「高品質 3D プリント造形物の作成支援」では、溶解樹脂堆積法を対象とした実体モデル 分割および堆積方向の自動決定法を検討し報告した。コスト関数として、サポート体積と 分割断面の領域数を採用し、分割は堆積方向に垂直な平面とした。サポート体積の計算は、 堆積方向に関する多層奥行値画像を depth peeling 法を用いて前計算することで、効率的に 求めることができる。また、平行な複数平面で分割する場合には動的計画法により最適な 分割位置を決定することができる。さらに、断面の領域数に関するコストを導入すること で、分割平面数を自動決定することも可能となった。この最適化処理は十分高速で、1方 向当たり 0.5 秒で大局的最適化がなされる。また、堆積方向をサンプルし、コスト最小とな る方向を探索することで、堆積方向の最適化も実現される。本手法を用いて実体モデルを 作成したところ、品質の改善と作業時間の短縮が確認できた。しかし、いくつかのモデル では接着時間が原因で製作時間が増加した。そのため、今後の課題として、接着やサポー ト除去が難しい構造に高いコストを割り当てるよう、コスト関数の調整を行う必要がある。 謝辞 本研究を行うにあたり、終始懇切なるご指導とご教鞭を受け賜りました新谷幹夫教授、 桂川秀嗣名誉教授、白石路雄准教授、中島悠講師に心より感謝を申し上げます。また、実 験にご協力いただいた東邦大学の皆様方に心より感謝を申し上げます。 58 参考文献 [1] 小川ゆう子 , 新谷幹夫 , 桂川 秀嗣 , 白石 路雄 , 川島 基展 , 近藤 邦雄 : “太極拳独習用 CG コンテンツの開発”, 映像情報メディア学会技術報告 35(14), 1-4, 2011-03-04 [2] S. Nakajima, M. Shinya, H. Katsuragawa, M. Shiraishi, M. Kawashima, K. Kondo: “Development and evaluation of a CG videotext for Tai Chi Chuan self-study,” IEVC2012, 2B-2, Kuching, 2012 Nov. [3] S. Nakajima, M. Shinya, H. Katsuragawa, M. Shiraishi, M. Kawashima, K. Kondo: “Development and evaluation of CG videotext for Tai Chi Chuan using a Head Mounted Display,” Proceedings of IWAIT 2013, pp.268-272 (January 7-9, 2013). [4] 楊 慧: 『DVD で覚える健康太極拳 楊名時 24 式』 新星出版社, ISBN-13: 978-4405086166 [5] Autodesk MotionBuilder: http://www.autodesk.co.jp/adsk/servlet/pc/index?id=14972950&siteID=1169823 [6] Autodesk Maya: http://www.autodesk.co.jp/adsk/servlet/pc/index?id=14515239&siteID=1169823 [6] MAC3D System: http:///filmdigital.nacinc.jp/products/motion_capture/ [7] Raptor4: http://www.nacinc.jp/filmdigital/products/motion_capture/camera.html [8] Unity http://japan.unity3d.com/ [9] MegaFiers http://www.west-racing.com/mf/ 59 付録 1 章 モーションデータのエクスポート(MotionBuilder) モーションキャプチャの撮影データは trc ファイルとして出力される。trc ファイル とは光学式モーションキャプチャのデータフォーマットで、マーカー数やフレームレー ト、各マーカーのフレームごとの座標が記録されている。しかし、このままの形式では 関節や骨をもっていないので、Maya などの 3DCG ソフトでモデリングした人物モデ ルにモーションデータを対応付けることは出来ない。一般的に Maya などの 3DCG ソ フトでは人物モデルのアニメーションを作成、編集する際には「ボーン」を使用する。 ボーンとは 3D モデルの可動領域をつかさどるもので、骨格のような役割をする。 そこで、3DCG ソフトで作成したモデルにマーカーのモーションデータを適用するため に、MotionBuilder を使用して、3DCG ソフトで作成した人物モデルのボーンと、マーカ ーのモーションデータを対応付けを行う必要がある。まずは、マーカーのモーションデ ータを MotionBuilder 上に読み込む方法を記す。 MotionBuilder とは Autodesk が開発した CG アニメーションを編集するソフトウェ アである。図 77 に MotionBuildr の操作画面を示す。 図 77 MotionBuilder の操作画面 60 モーションキャプチャで取得したマーカーの座標を MotionBuilder に読み込む。 図 78 の水色の点は MotionBuilder に読み込んだ、各マーカーの座標を 3 次元空間上に 表示したものである。 その後、図 79 のように、頭、手のひら、胴体、腰、足は複数のマーカーを使用して いるのでグループ化する。 図 78 グループ化前のマーカー 図 79 グループ化したマーカー グ ル ー プ 化 を 行 っ た マ ー カ ー と Actor の 各 部 位 の 対 応 付 け を 行 う 。 Actor と は 、 MotionBuilder 上で、マーカーとボーンを対応させるために使用するモデルである。図 80 に示した人型のモデルが Actor である。図 81 の Navigator ウィンドウの体の各パーツにマ ーカーをドラック&ドロップします。以上の操作で図 82 のようにマーカーと Actor の対応 付けが行える。 図 80 マーカーと Actor 図 81 MotionBuilder とマーカーの対応付け 61 図 82 マーカー座標に対応づけた Actor 最後に 3DCG モデルと Actor との対応付けを行う。 MotionBuilder はアニメーションの編集に特化したソフトウェアであり、3DCG モデルの 作成や編集は行うことはできない。そこで、3DCG モデルの作成には Maya を使用する Maya は Autodesk(米)から発売されている 3DCG 製作ソフトである。図 83 は Maya の 操作画面である。 図 83 Maya の操作画面 62 まず、Maya で図 84 のような人型のメッシュを作成する。次に図 85 のようにメッシュの 内部にボーンを作成する。ボーンは、図 86 に示すように、腰部分のボーンである「Hips」 をルートに体の末端方向に向かって階層構造を作成していく。最後にボーンとメッシュの 関連付けを行う。こうすれば図 87 のように、ボーンを動かすとメッシュの形状も一緒に動 かす事ができる。 図 84 作成したメッシュ 図 85 ボーンの作成 図 86 ボーンとメッシュの対応 付けを行ったモデル 図 87 ボーンの階層構造 このモデルを MotionBuilder で読み込み、モーションデータと対応させる。 以上で Maya で作成したモデルにモーションキャプチャで取得したモーションデータを適用 することができた。 63 2 章 Maya でのモデル作成方法 Maya の基本操作画面は図 88 のようになっている 図 88:Maya の基本操作画面 ① メインメニュー オブジェクトの作成および編集のためのツールが用意されている。 ② ステータスライン ファイルの保存、オブジェクト選択などの機能が用意されている。 ③ シェルフ 使用頻度の高い機能をクリックだけで瞬時に実行できる。 ④ ツールボックス 選択ツール、移動・回転・スケールを行うツール、ビューの変更などのショート カットが格納されている。 ⑤ タイムスライダ アニメーションの再生やカレントフレームの選択を行う。 以下に Maya で MotionBuilder に読み込む F モデルの作成方法を示す。 Maya で図 89 のような人型のメッシュを作成する。次に図 90 のようにメッシュの内部 にボーンを作成する。ボーンは、図 92 に示すように、腰部分のボーンである「Hips」をル ートに体の末端方向に向かって階層構造を作成していく。最後にボーンとメッシュの関連 64 付けを行う。こうすれば図 91 のように、ボーンを動かすとメッシュの形状も一緒に動かす 事ができる。 図 89:作成したメッシュ 図 90:ボーンの作成 図 91:ボーンとメッシュの対応 付けを行ったモデル 図 92 ボーンの階層構造 3章 Maya でのカメラの追従 図 93 のように人物モデルの周囲にカメラを設置し、追従させる方法を示す。メインメ ニューの「作成」メニューから「カメラ」を選択すると原点にカメラが置かれる。移動ツ ールを使用し、カメラを円形状に配置し、回転ツールを使って人物モデルの方を向くよう に回転させる。 次に、メインメニューからポイントコンストレインを選択する。コンストレインとは、 オブジェクトの位置、方向、スケールなどを他のオブジェクトに対して制約する機能であ る。ここでは x 軸方向にだけ追従させたいので図 94 のようにコンストレイン軸を x 軸だけ 65 選択する。 図 93:カメラの配置 図 94:ポイントコンストレインの設定 4.Maya での半透明のモデルの作成 Maya で図 95 のような半透明のモデルを作成する方法を述べる。 図 95:半透明のモデル 「ウィンドウ」メニューの「レンダリングエディタ」にある「ハイパーシェード」をク リックする。図 96 のようなハイパーシェードウィンドウが表示される。ハイパーシェー ドとはテクスチャやライト、特殊エフェクトなどを作成、編集するウィンドウである。 66 図 96:Maya ハイパーシェード ハイパーシェードの作成メニューから lambert を選択し、マテリアルを作成する。次に、 マテリアルを適用させたいモデルを選択し、ハイパーシェードウィンドウの lambert の アイコンにポインタを重ね、マウス右ボタンを長押しする。図 96 のように表示されたメ ニューから「initialShadingFroup を選択項目に割り当て」を選択する。マテリアルが選 択したオブジェクトに割り当てられる。 図 96 マテリアルをオブジェクトに割り当て メニューから「アトリビュートエディタ」を選択し、lambert タブをクリックすると図 97 のように、カラーや透明度、テクスチャ等の設定を行う事ができるので「透明度」の スライダを左に移動するとメッシュを半透明にすることが出来る。 67 図 97:lambert マテリアルのアトリビュート 5.Maya での鏡の設置 Maya を使用して図 98 のように鏡の質感を設置する方法を示す。 図 98 鏡のマテリアル 鏡は Maya の基本のマテリアルでは表現できないので、mental ray マテリアルを使用す る。Mental ray は鏡や金属の質感などの質感に適したマテリアルである。 まず、 ハイパーシェードから mental ray を選び、 その中から mia_material_x1 を選択し、 アトリビュートエディタを開く。 BRDF の項目を開き、図 99 のように 0°反射の数値を 80% に変更する。また、レンダーを mental ray に変更し、描画すると図 98 のように鏡を表現 することができる。 68 図 99:鏡の質感のアトリビュートエディタ 6.Maya でのキーフレームの設定 ボーンのポーズを決定し、キーフレームを決定する方法を示す。 タイムスライダを移動し、編集を行いたいフレームに合わせる。今回の例では図 100 に示 すように、3810 番目のフレームをカレントフレームに選択している。 図 100:Maya タイムスライダ 次に、ボーンを選択し、ポーズを作成する 人物モデルの姿勢の決定は、主に図 101 に示すツールボックスの「選択ツール」、 「回転ツ ール」を使用する。ボーンを「選択ツール」で選択し、ボーンの X 軸、Y 軸、Z 軸、それ ぞれの回転角度を「回転ツール」で操作して関節を回転させる。図 102 は「選択ツール」 で選択したボーンの左手首を「回転ツール」によって編集している図である。 69 図 101 Maya ツールボックス 図 102 ポーズの編集 次に、 図 103 に示すようにチャンネルボックス/レイヤエディタの”回転 X”,”回転 Y”,”回転 Z” の項目を選択し右クリックメニューから”選択項目のキー設定”を選択する。 70 図 103:チャンネルボックス/レイヤエディタの設定 以上の手順を踏むと、”手順 1”で選択した、3810 フレーム目にキーフレームを作成するこ とができる。 各キーフレーム間のアニメーションの補完は Maya が自動で行なってくれる。 71 7.Maya のライトをカメラに追従させる メインメニューから[ 作成→ライト→ポイントライト ]を選択すると、原点にポイントライ トが置かれる。ポイントライトを選択し図 104 のようにカメラ後方に移動させる。カメラ、 ポイントライトの順に選択し、メインメニューから[コンストレイン→ポイント]を選択する。 以上の手順を踏むとライトは常にカメラ後方を追従するようになる。 図 104:ポイントライトとカメラの位置 8.Maya バッチレンダーを使ったレンダリング方法 レンダリングは Maya のソフトウェア上で行う方法と、コマンドラインでレンダリングを 行うバッチレンダーが存在する。複数のレンダリングを一度に行いたい場合はバッチファ イルを作成しバッチレンダーでレンダリングを行う。 (1)Autodesk Maya 2011 でバッチレンダーを行う場合 2012 以前のバージョンの Maya でバッチレンダーを使う場合ははじめに環境変数の設定を 行う必要がある。 環境変数の設定手順を以下に示す。 1.“システムのプロパティ”を開き、”詳細設定”タブの、”環境変数”をクリックする。 2.“システムの環境変数(S)”の変数”Path”を選択し、”編集(I)”をクリックする。 3.”変数値(V)”の末尾に”C:¥Program Files¥Autodesk¥Maya2011¥bin¥”を追加する。 72 以上の手順を踏むと、windows のコマンドプロンプトの”render”コマンドで Maya のレン ダーを起動することができる。render コマンドの引数は以下のように記述する。 render [オプション] レンダリングしたい Maya データファイルのディレクトリ render コマンドの後ろにはレンダリングオプションと Maya データファイルのディレクト リを入力する。以下に代表的なオプションを述べる。 -s : レンダリング開始フレーム番号 -e : レンダリング終了フレーム番号 -cam : レンダリングを行うカメラの名前 -im -rd : 出力するイメージファイルの名前 : レンダリングしたファイルの出力先ディレクトリ 例えば、”C:¥maya_test¥test.mb”というディレクトリにあるファイルを 1 フレーム目から 1000 フレーム目まで、”C:¥folder”というディレクトリに”result”というファイルネームで 出力する場合、 render -s 1 -e 1000 –rd C:¥folder -im result C:¥maya_test¥test.mb と入力する。 出力するイメージのフォーマットの指定はコマンドラインから行うことはできないので、 Maya でシーンデータファイルを起動し、「レンダー設定」の「共通」タブの「イメージフ ォーマット」でフォーマットを選択して保存を行ったあとにバッチファイルでレンダリン グする必要がある。 (2)Autodesk Maya2012 以降のバージョンの Maya でバッチレンダーを行う場合 「(1)Autodesk Maya 2011 でバッチレンダーを行う場合」の render コマンドの部分を "C:¥Program Files¥Autodesk¥maya****¥bin¥Render"に差し替える。「****」 の部分は現在使用している Maya のバージョンを入れる。例えば Maya2014 を使い、” C:¥maya_test¥test.mb”というディレクトリにあるファイルを 1 フレーム目から 1000 フ レーム目まで、 ”C:¥folder”というディレクトリに”result”というファイルネームで出力 する場合、 73 "C:¥Program Files¥Autodesk¥maya2014¥bin¥Render" -s 1 -e 1000 –rd C:¥folder -im result C:¥maya_test¥test.mb 9.ビデオ再生を行う Flash プログラムの作成 以下に ActionScript3.0 を使用し動画をストリーム再生する手順を示す。 ライブラリウィンドウで右クリックを行い「新規ビデオ」を選択する。ライブラリウィ ンドウに「ビデオ」というオブジェクトが作成されるのでそれをカンバスにドラッグ&ドロ ップする。すると図 105 のように作業エリアに video オブジェクトが作成される。video オ ブジェクトとは Flash プログラム上でビデオ映像が表示されるエリアである。 図 105 video オブジェクトを作成した作業エリア 次に作成した video オブジェクトにインスタンス名をつける。プロパティタブのインスタ ンス名の欄に任意の名前を入力する。図 106 では「vo」という名前をつけている。 74 図 106 Video オブジェクトのプロパティ 次に動画ファイルを読み込み、video オブジェクトと対応付けて再生を行う。ビデオの再 生は Flash ファイル上に動画ファイルを埋め込む手法と、外部ファイルを読み込んでスト リーム再生する方法がある。Flash ファイルに埋め込む場合、動画サイズが非常に大きい場 合ロードに時間がかかる。そこで、本教材では外部ファイルから読み込んでストリーム再 生をする手法をとる。ストリーム再生とは、データをロードが終了してから再生するので はなく、ロードしながら再生することである。 外部ファイルから読みこんだ動画のストリーム再生には NetStream クラスを使用する。 NetStream クラスとは、FlashPlayer 上でストリーム再生を行うためのクラスライブラリ である。NetStream クラスのオブジェクトを宣言する際は NetConnection クラスをコンス トラクタの引数に指定する必要がある。NetConnection クラスとは FlashPlayer とサーバ ー間とのデータ接続を作成するクラスライブラリである。 NetStream クラスを利用した動画のストリーム再生を行う流れを以下に示す。各項目の 詳しい処理は後述する。 1. NetConnection オブジェクトを作成する 2. NetConnection.connect()メソッドを使用して、サーバーに接続を行う 3. NetStream オブジェクトを作成する。コンストラクタには NetConnection オブジェク トを指定し、接続と対応付ける。 4. video.atacchNetStream()メソッドを使用し video オブジェクトと NetStream オブジェ クトとを接続します。 5. NetStream.play()メソッドを使用して引数のアドレスの動画を video オブジェクト上 にストリーム再生します。 1.NetConnection オブジェクトを作成する NetStream クラスを使ってストリーム再生を行うには、まず NetConection クラスの 75 connect()メソッドを使用して動画ファイルが存在するサーバーに接続する必要がある。そ こで NetStream クラス型の変数を宣言する前に、NetConnection 型の変数を宣言する。宣 言の例を以下に示す。ここでは「nc」という名の NetConnection 型の変数を宣言している。 var nc :NetConnection = new NetConnection(); 2.NetConnection.connect()メソッドを使用して、サーバーに接続を行う NetConnection クラスの connect()メソッドは FlashPlayer とサーバーとの接続を作成し ます。本来、引数にはサーバー上のビデオファイルが格納されているアプリケーションの URI を指定するのですが、今回はレンダリングした動画ファイルがローカルフォルダに存 在するので、サーバーとの接続を作成する必要がありません。そこで、引数には null を指 定します。以下に例を示す。 nc.Connection(null); 3.NetStream オブジェクトを作成する。コンストラクタには NetConnection オブジェク トを指定し、接続と対応付ける。 NetStream クラスは NetConnection クラスで作成した接続を利用して FlashPlayer とロー カルファイルシステムの間に単方向のストリーミング接続を開くクラスです。まず、 NetStream オ ブ ジ ェ ク ト を 作 成 し ま す 。 コ ン ス ト ラ ク タ に は 先 ほ ど 作 成 し た NetConnection オブジェクトを指定します。以下に宣言の例を示す。 var ns:NetStream = new NetStream(nc); 4.video.atacchNetStream()メソッドを使用し video オブジェクトと NetStream オブジ ェクトとを接続します。 76 video クラスの attachNetStream()メソッドを使用すると、カンバス上に作成した video オ ブジェクトと先ほど作成した NetStream オブジェクトを対応付けることができる。例を以 下に示す。 vo.attachNetStream(ns); 5. NetStream.play()メソッドを使用して引数のアドレスの動画を video オブジェク ト上にストリーム再生します。 NetStream クラスの play()メソッドを使用して、ビデオを再生する。引数には再生する 動画ファイルのディレクトリを String 型で指定します。以下に例を示す。今回、ディ レクトリには”mov/camera0.flv”というアドレスを指定している。 var videoURL:String = “mov/camera0.flv”; ns.play(videoURL); 以上の処理を行うと、図 107 のように、カンバス上の video オブジェクトに指定した動画 が表示される。 77 図 107 プログラムの実行画面 5. NetStream.play()メソッドを使用して引数のアドレスの動画を video オブジェク ト上にストリーム再生します。 10.Maya での ncloth の設定 Maya でのクロスシミュレータの設定方法をここに示す。まず、クロスを適用したいモデル を用意するここでは図 108「A」の plane を布に設定する。頂点数の多さがシミュレーショ ンの精度に影響するので布に使用する plane は分割数を多めに設定した。また、「B」の sphere を布との衝突のために用意した A B 図 108:オブジェクトの設置 78 図 109 の1のプルダウンメニューから nDynamics を選択する。次に、布のアニメーション を適用したいオブジェクトを選択し、「nMesh」メニュー内の「nCloth の作成」をクリッ クする。 図 109:nCloth の作成 再生ボタンをクリックすると布のモデルが落下する事が確認できる。次に布に干渉するモ デル(例えば、机や人間の手等、布では無いオブジェクト)の設定を行う。 (図 110) 図 110:生成結果 79 設定したいオブジェクトを選択し、nMesh メニューの「パッシブコライダの作成」をクリ ックします。 (図 111) 図 111:パッシブコライダの作成 再度再生ボタンをクリックするとボールと干渉する布のアニメーションが再生されている 事が確認できる。 (図 112) 図 112:アニメーション結果 80 また図 113 のように、布のアニメーションを適用したオブジェクトのアトリビュートエデ ィタには nClothShape というタブが作成される。そのタブから布のアニメーションの細か い設定を行うことが可能となっている。設定項目が多く複雑だが、赤丸部分の「プリセッ ト」をクリックすると麻布やゴム、シルク等の予め用意された質感を適用することが出来 る。 図 113:プリセット 11.Unity へのデフォーマのインポート Maya のクロスシミュレータの結果は通常 Unity へインポートすることは出来ない。しか し、Unity に MegaFiers というプラグインを導入することでインポートが可能になる。た だし、インポートできるのは筆者が知る限りではクロスシミュレータのキャッシュデータ のみであり、太極拳の CG 教材のように常に決まった動きをするデータの場合のみ有効で ある。 81 まず、Maya でクロスシミュレーションのキャッシュデータである mc 形式のファイルを取 得する。キャッシュデータの作成にはまず対象とするオブジェクトを選択してから nCache メニューの「新規キャッシュの作成」をクリックします(図 114) 。 図 114:キャッシュの作成 nCache の作成オプションのダイアログが表示されますのでディレクトリなどを設定して 「作成」をクリックします(図 115) 。作成が終わると指定したディレクトリに mc ファイ ルが作成されます。Maya での作業は以上です。 図 115:nCache の作成オプション 82 Unity を起動します。まずは通常の Unity へのインポート作業と同じように、Unity の Project ウィンドウへ Maya のシーンデータをドラッグアンドドロップします。モデルのイ ンポートが行われますが、クロスアニメーションは再生されません。そこで、先ほど保存 した mc ファイルからアニメーションの適用を行います。 MegaFiers が導入された Unity には Component メニュー一覧に Modifiers という項目 が表示されているはずです(図 116) 。 図 116:MegaFiers を導入した Component メニュー クロスシミュレーションの結果を適用したいオブジェクトに、Modifiers の中にある Modify Object と Point Cache を適用します。適用すると Inspector に図 117 の様なメニューが表 示されるので、Mega Point Cache(Script)メニュー内の「Import MC」(赤丸部分)をクリ ックして Maya で作成した mc 形式のファイルを選択します。そうすることによってクロス シミュレーションの結果を Unity に導入する事が可能となります。 83 図 117:Modify Object と Point Cache 84