連載
» 2012年04月03日 00時00分 公開

Retinaに映える! iOS美麗アプリ制作入門(2):PerfumeのモーションデータをiPhoneアプリにして動かしてみた (2/3)

[蜜葉優,@IT]

“踊り”をデータ化「モーションデータ」とは

 BVHファイルとは、Biovision社が開発したボーンの階層構造を含むモーション定義ファイル(Biovision Hierarchy)です。

 「ボーン」とは3Dモデルの“骨”に当たるもので、3Dモデルが“肉”になります。3Dモデルにボーンを合わせてアニメーションします。

“肉”となる3Dデータの例(筆者がMetasequoiaで作成) “肉”となる3Dデータの例(筆者がMetasequoiaで作成)

 「ボーン」について詳細を知りたい方は、以下の記事も参照してください。


 BVHファイルの1行目に「HIERARCHY」と書かれています。これは、いまから「ボーンを定義する」という宣言です。

HIERARCHY

 次行からが、ボーンの定義です。今回のサンプルデータでは、「Hip」が起点となっています。Hipの子要素には、Chestが定義されています。ボーンファイルはこのように、親子関係で成り立っています。実際に人の動きも親子関係でできており、腕を上げると肩も動くようになっていますね。

ROOT Hips
{
 OFFSET 0.000000 0.000000 0.000000
 CHANNELS 6 Xposition Yposition Zposition Yrotation Xrotation Zrotation
 JOINT Chest
 {
  OFFSET 0.000000 10.678932 0.006280
  CHANNELS 3 Yrotation Xrotation Zrotation
  JOINT Chest2
  {
   OFFSET 0.000000 10.491159 -0.011408
   CHANNELS 3 Yrotation Xrotation Zrotation
   JOINT Chest3
   {
    OFFSET 0.000000 9.479342 0.000000
    CHANNELS 3 Yrotation Xrotation Zrotation
    JOINT Chest4
    {
……

 ボーンを定義した後に、モーションの定義があります。「MOTION」は、「いまからモーションを定義する」という宣言です。次にフレーム数と1フレーム当たりの時間が宣言されています。その後、ボーンに合わせてモーションがベクトルで定義されています。

MOTION
Frames: 2820
Frame Time: 0.025000
-0.207611 83.315683 -17.340600 0.000000 -5.826342 0.000000 0.000000 11.116423 0.000000 0.000000 -5.290081 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 12.665069 0.000000 0.000000 0.575450 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.337306 0.000000 0.000000 -2.337306 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -2.337306 0.000000 0.000000 2.337306 0.000000 0.000000 0.000000 8.578828 0.000000 0.000000 1.905768 0.000000 0.000000 -4.658254 0.000000 0.000000 0.000000 0.000000 0.000000 8.578828 0.000000 0.000000 1.905768 0.000000 0.000000 -4.658254 0.000000 0.000000 0.000000 0.000000……

 このようなデータの定義は、「3ds Max」「MAYA」「Poser」「Blender」などといった代表的な3Dモデリングツールでモーションを作成して出力します。

openFrameworksのサンプルをダウンロード

 サンプルプログラムは、先ほどのダウンロードページに表示されている「SAMPLE CODE:github」からダウンロードできます。

 サンプルプログラムは、「openFrameworks」「Processing」「Max」「Flash」の4種類が用意されています。本稿では「openFrameworks」を選択します。

 「openFrameworks」をクリックすると、GitHubに遷移します。画面左上にあるZIPボタンをクリックすると、サンプルプログラムがzipファイルでダウンロードできます。

サンプルをiPhoneアプリにして動かそう!

 このモーションデータとサンプルプログラムを使って、早速iPhoneでダンスさせましょう!

 前回準備した環境にある、「of_preRelease_v007_iphone/apps iPhoneExamples/emptyExample」を利用しましょう。Xcodeで「emptyExample.xcodeproj」を開きます。

Xcode Xcode

サンプルプログラムをXcodeで開く

 次に、先ほどダウンロードしたサンプルプログラムを開きます。「perfume-dev-example-openFrameworks-45010ce/ofxBvh/src」フォルダをXcodeの「addons」にコピー&ペーストします。この「src」の中にある「ofxBvh.cpp」「ofxBvh.h」がopenFrameworksのライブラリです。

「ofxBvh」を「addons」に追加 「ofxBvh」を「addons」に追加

次ページでは、ソースコードをマージして、アプリを動かしてみます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。