エイチアイ社の組み込み機器向け3D描画エンジン「MascotCapsule」を利用した3Dグラフィックスプログラミングについて詳しく解説する。
前回までで一通り「OpenGL ES」による3Dプログラミングを解説してきました。今回からは、3Dグラフィックスをより活用するための一例として、エイチアイ社が提供する3Dのミドルウェア「MascotCapsule®」を利用した3Dグラフィックスプログラミングについて紹介したいと思います。
MascotCapsuleは、組み込み機器向けの3D描画エンジンです。携帯電話の世界ではデファクトスタンダード的な3Dエンジンで、日本ではNTTドコモ、KDDI、SoftBankなどの端末に標準の3Dエンジンとして搭載されており、海外ではSony Ericsson、Motorola、SAMSUNG、LGなどの携帯電話に採用されています(恐らくいま皆さんがお持ちの携帯電話にも入っているでしょう)。現在の3Dを利用した携帯ゲームコンテンツの多くが、このMascotCapsuleシリーズを利用して作られており、皆さんがよくご存じの有名ゲームタイトルにも利用されています。また、最近ではカーオーディオやカラオケなどの機器にも採用され、携帯電話以外の機器にも搭載されるようになりました。
このMascotCapsuleには大きく分けて2つのタイプがあり、ピクセルレンダラ機能も搭載した「フルソフトウェア(CPUのみの演算)実装タイプ」と、OpenGL ES対応のハードウェアを利用した「ハードウェア利用タイプ」に分けることができます。
フルソフトウェアタイプは「MascotCapsule V3」という製品で、OpenGL ESなどのハードウェアがなくても3Dを描画できる機能を持ちます。それに対して、OpenGL ESのハードウェアを利用するタイプが「MascotCapsule V4」や最新のエンジンである「MascotCapsule eruption」です。これらはOpenGL ESのハードウェアをより簡易に、かつ有効に使うための製品で、組み込み機器でクオリティの高い3Dグラフィックスを実現することが可能になっています。いずれもBREW環境上で「BREW Extension」として標準的に利用可能なエンジンで、BREWアプリケーションの開発者は誰でも無償で利用可能となっています。
また、図1の下位レイヤにある「MascotCapsule Renderion」は、通常ハードウェアで実装されるOpenGL ESの仕様をフルソフトウェアで実装したもので、OpenGL ESのハードウェアがなくてもOpenGL ESのAPIを利用して3D描画が可能になるエンジンです(注1)。
今回は、この中でもハードウェアを利用するタイプである最新のMascotCapsule eruptionを利用して、BREW環境でクオリティの高い3Dグラフィックスを実現する方法を見ていきたいと思います。
MascotCapsule eruption(以下、eruption)は、OpenGL ESのハードウェアを利用して、携帯電話などの組み込み機器でハイクオリティな3Dコンテンツを低コストで作成するためのミドルウェアです。BREW環境上では、KDDIのExtensionとしてリリースされており、OpenGL ESの描画機能を持つ端末であれば利用可能です。
基本的な3D描画機能はもちろん、ハイクオリティな3Dコンテンツを作成するうえで重要な要素とされる機能が多く提供されていますので、OpenGL ESを直接使う場合、自身で実装しなければならないような機能を手軽に利用できます。例えば、代表的な機能として「モーションブレンド」「プロジェクションシャドウ」「アバター補助機能」「モーフィング」「バンプマッピング」「パーティクルエフェクト」などがサポートされています。
こういった3Dの機能は当然あるのですが、特にeruptionの特徴として挙げられるのが「高速化」と「移植性」の2点です。
まず、高速化についてですが、3Dのハードウェアを使うエンジンなので当然と思われるかもしれませんが、PCの3D性能と異なり組み込みの3D性能は単純に3Dハードウェアのスペックシートだけでは判断できません。ハードウェアやソフトウェア構成により、似たようなスペックであったとしても描画結果としての性能に違いが出ることがあります。代表的なものが「VFP(Vector Floating Point)」の有無です。BREW端末には、VFPが搭載されていないため、浮動小数点演算が遅い問題があります。このような組み込み3Dならではの問題を解決し、リッチな演出を高速に実現可能なエンジンであることが1つ目の特徴です。次の「移植性」に関してですが、eruptionはマルチプラットフォーム間での動作を想定しているため、BREW以外のプラットフォーム(Doja(Star含む)、iPhone、Androidなど)にも対応しており、同一のAPIセットを提供しています。このため、プラットフォーム間の移植の作業効率を上げることができ、開発工数削減が可能になります。
eruptionでは、動作環境であるエンジン以外にも開発ツールのサポートも行っており、よりクオリティの高い3Dコンテンツ作成をサポートするために、以下のツールが提供されています。
eruptionは、基本的に描画対象である3Dモデル、2Dテクスチャを代表的な市販ツールで作成し、そのデータをeruption用のデータにエクスポート、コンバートします(プログラムからのプリミティブ描画も可能です)。このため、コンテンツ作成で代表的な3ds Maxなどの3DツールやPhotoshopなどの2Dツールからデータをエクスポートできるように各ツールに対応したプラグインが提供されており、使用しているツールのプラグインをダウンロードして利用することになります。
開発ツールに関しては、ViewerとEffect Toolがあり、Viewerを利用することで作成した3Dモデルをeruption上で描画するとどのような結果になるかを確認できます。また、Effect Toolは主にパーティクル(火、煙などの粒子表現の演出)を作成するためのツールで、3Dモデルデータを利用して、パーティクルの効果を簡単に設定することが可能です。
基本的に上記のツール群は、3Dデザイナー向けのツールであり、コンテンツ開発を効率化させるためにデザイナーのみでデータ作成、確認までが行えるツールとなっています。このため、プログラマが積極的に利用するツールではありませんが、ビューアは場合によって、モデルデータの確認のために利用することがあるかもしれません。
以上のツールを使ったデータ作成手順についてはエイチアイ社の開発者サイトに詳細がありますので、そちらをご参照ください(以下、URL参照)。
関連リンク: | |
---|---|
⇒ | MascotCapsule Developer Network |
Copyright © ITmedia, Inc. All Rights Reserved.