3Dモデルを作りたくなったことはありませんか?
筆者は最近、3Dモデルを作りたくなるシーンが増えてきたと感じています。
例えばPCやスマートデバイス向けのゲームを作る場合、UnityやOpenGL ESを用いれば簡単に3Dゲームを作ることができます。モダンブラウザで実装されているWebGLを利用すれば、Webブラウザ上で動作する3Dゲームを作ることも可能でしょう。ほかにも、KDDIが提供するSATCHやmetaioが提供するJunaioなど、AR(Augmented Reality拡張現実)プラットフォームサービスも一般的になり、3Dモデルを利用するアプリが簡単に作れるようになってきました。
TISでも、JunaioのARエンジンを単独利用して3DモデルをiPad上にAR表示する検証をしています。詳細は下記のページを参照してください。
また、最近は3Dプリンタも脚光を浴びつつあり、FabLabShibuyaなどの3Dプリンタやカッティングマシンが個人利用できるスペースもオープンしています。このように3Dモデルを利用する機会は、これからも増えていくことが予想されます。しかし、個人レベルでも簡単に3Dモデルを取り扱えるようになってきた半面、3Dモデル作成には造形や3Dモデリングツールの知識も必要になります。美しい3Dモデルを作ろうと思うと、まだまだ敷居が高いのが現状です。
そこで、TISでは3Dモデルを「誰でも」「簡単に」、しかも「安価に」作成するべく、Kinectを使った3Dスキャンを検証してみました。詳細は以下のリンク「Tech-Sketch」の記事をご確認ください。
- KScan3D:kinectで物体の3Dスキャンを試してみたよ1
- Artec Studio:kinectで物体の3Dスキャンを試してみたよ2
上記2つのアプリケーションを検証した結果、データサイズの調整などのデータ修正は必要ですが、厳密なデータが必要でない場合(WebブラウザやARなどで表示する程度)など、趣味レベルで使用する品質の3Dモデルであれば十分に作成できるようになっていることが確認できました。
本稿では2013年3月18日に公開された「Kinect for Windows SDK 1.7」に新しく実装された3Dスキャン機能「Kinect Fusion」を使い、3Dモデルを作成してみます。また、WebGLをラップしたJavaScriptライブラリである「Three.js」を使い、Kinect Fusionで作成した3DモデルをWebブラウザに表示してみたいと思います。
実際に試してみる
必要なもの
Kinect Fusionを使って3Dモデルを作成するために今回使用したものは、以下のとおりです。
- ハードウェア:Kinect for Xbox 360
-
ソフトウェア/ライブラリなど
- Kinect for Windows SDK:v1.7
- Kinect for Windows Developer Toolkit:v1.7.0
- Meshlab:v1.3.2
- Blender:v2.6.7
- Three.js:r58
今回は作成した3Dモデルを加工するために「Meshlab」と「Blender」を、Webブラウザ上で3Dモデルを表示するために、「Three.js」を使いました。各アプリケーションのインストール方法については、各々の公式サイトを参照してください。
性能要件
Kinect Fusionを使うために必要な推奨構成と最小構成は、以下のサイトに記載されています。
本検証における構成との比較を以下に示します。
構成 | 最小構成 | 推奨構成 | 検証構成 |
---|---|---|---|
CPU |
Desktop PC with 3GHz(or better) multi-core processor |
- | Core i7 2.93 GHz |
グラフィック カード |
DirectX11に対応している グラフィックカード |
NVidia GeForce GTX680か AMD Radeon HD 7850 |
NVidia GeForce GTS450 |
今回は推奨要件を満たすようなグラフィックボードは用意できませんでしたが、サンプルアプリケーションを動かすことはできました(後述のKinect Fusionのサンプルアプリケーションでのプレビューは、15FPS程度で動作していました)。