PerfumeのモーションデータをiPhoneアプリにして動かしてみた:Retinaに映える! iOS美麗アプリ制作入門(2)(2/3 ページ)
デザイン/アート用のC++フレームワーク「openFrameworks」でパーティクルやプリミティブを使ったRetinaに映える美麗なiPhone/iPadアプリの制作方法を紹介します
“踊り”をデータ化「モーションデータ」とは
BVHファイルとは、Biovision社が開発したボーンの階層構造を含むモーション定義ファイル(Biovision Hierarchy)です。
「ボーン」とは3Dモデルの“骨”に当たるもので、3Dモデルが“肉”になります。3Dモデルにボーンを合わせてアニメーションします。
「ボーン」について詳細を知りたい方は、以下の記事も参照してください。
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で開く
次に、先ほどダウンロードしたサンプルプログラムを開きます。「perfume-dev-example-openFrameworks-45010ce/ofxBvh/src」フォルダをXcodeの「addons」にコピー&ペーストします。この「src」の中にある「ofxBvh.cpp」「ofxBvh.h」がopenFrameworksのライブラリです。
次ページでは、ソースコードをマージして、アプリを動かしてみます。
Copyright © ITmedia, Inc. All Rights Reserved.