読者です 読者をやめる 読者になる 読者になる

元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

WindowsMobileで拡張現実その② Uma2Mobile

NyARToolkit C# ARToolKit WindowsMobile

Uma2Mobileは、WindowsMobile機でミクをウマウマさせるプログラムです。
WindowsMobile機を通してHiroマーカーを見ると、ウマウマするミクさんを見ることができます。
S21HTWS011SHWS004SH等の、比較的高性能なWindowsMobile機で動作します。描画速度は4〜10fps程度ですが、どうにかウマウマしてるように見えます。


S21HTで動作させる場合、致命的な不具合があります。必ず不具合情報を読んでください。
回避方法が見つかりました→Uma2MobileをS21HTで安全に実行する方法 - nyatla@Hatena::Diary

動作には.Net Compact Framework 3.5が必要です。あらかじめインストールしておいて下さい。


ダウンロードページ
NyARToolkit project website is moved.

マーカーには、ARToolKit定番のHiroマーカーを使います。印刷して使ってください。

モデルデータについて

ミクのモデルデータとモーションデータは、ファイル保管庫@七葉から、以下のもの使用しています。

http://nanoha.kirara.st/3dcg/file/
モデルデータ nh0163.zip
モーションデータ nh0198.zip

素敵なモデルとモーションをありがとうございます。

インストール方法

cabファイルをダウンロードして実行すればインストールできます。

展開されるファイルは以下の通りです。
NyWMCapture.dllカメラキャプチャ用のDLLで、インストール時にレジストリに登録されます。

 \Windows
   NyWMCapture.dll
 \Program Files
   実行ファイルや説明書
   dataディレクトリの下にマーカーとカメラパラメタファイル
   mikuディレクトリ下にメッシュデータとテクスチャデータ

インストール直後はS21HT向けの設定になっているため、他の機種では動作しません。他機種で動作させる場合は、機種にあわせた設定に変更してください。

アンインストール方法

プログラムの削除から削除してください。

使い方
  1. プログラムから、Uma2Mobileを起動します。
  2. 計算テーブルを作るので、起動まで暫く時間が掛かります。(30秒くらい?)気長にお待ち下さい。
  3. 準備が出来ると、カメラ画像が映し出されます。Hiroマーカーを撮影して、ミクがウマウマするのをお楽しみ下さい。
設定変更方法

S21HT以外の機種で動かすときには、設定ファイルの差し替えを行ってください。設定ファイルは、setting.xmlです。

WS007SH(willcom),WS004SH(willcom)等の、先発WM機(XScale)
 setting-WS007SH.xml →setting.xmlに上書き

S01SH(emobile),WS011SH(willcom) 等の、後発WM機(XScale)
 setting-WS011SH.xml →setting.xmlに上書き

S21HT(emobile)等の、後発WM機(MSM7201A)
 setting-S21HT.xml →setting.xmlに上書き
不具合
  1. OSごと落ちる。
    S21HTで、1分間以上連続で動作させると、OSごと応答しなくなる現象が発生することがあります。ミクが動かなくなった瞬間に×ボタンを押せば助かる場合もありますが、助からないことの方が多いです。Touch FLO 3Dを使用している状態でUma2Mobileを起動すると、干渉を起こしてOSがハングアップします。一時的にTouchFLO 3Dを無効にして実行してください。お亡くなりになった場合は、リセットボタンを押してデバイスをリセットしない限り復帰しません。(S21HTのリセットボタンは、スタイラスを収納する穴のところにある赤いぽっちです)
  2. WS007SHで映像が映らないことがある。
    強制終了後に再度起動したときに、映像が映らないことがあります。その場合、バーコードリーダー等の他のキャプチャアプリを起動→終了した後でもう一度動かすと、うまく行くことがあります。
  3. モデルが飛ぶ
    速度を優先した設計の為、若干認識率が悪くなっています。
  4. 画面が乱れる
    S21HTで動作中にスリープすると、背景が乱れます。再起動して下さい。
おまけ箇条書き
  • Uma2Mobileは、ARライブラリ NyARToolkitCSを使用しています。ARToolKit派生のライブラリですが、ARToolkitではありませんので、本家さんに問い合わせはしないで下さい。
  • Uma2Mobileが搭載しているNyARToolkitCSは、Version2.1(次期バージョン)のものです。まだちゃんとリリースしてませんが、Subversionには残骸が上がってますので、興味がある方はそちらを見てみてください。
  • モデルはmd3dmファイルさえ作れば差し替えられますが、全てのモデルでテクスチャのインデックス番号が同一である必要があります。
  • 今回の目的は、モバイルCPU用の高速化効果の検証と、誤差修正精度の調整による高速化効果の検証です。結果、かなりの効果が得られたので、ウマウマを作ってみたんですけどね。でも、unsafeなしの100%Managedコードだと、高速化はそろそろ頭打ちかも。出来てもあと20%程度くらいかな。
  • 折角持ち出し出来るんだし、撮影機能欲しいですよね。時間が出来たら付けよう。
  • 某電脳ふぃぎゅあさんも携帯でのARをやろうとしているらしいですが、少なくともこれで、「ウチのアイデア!特許とります!」とかはいえないだろう。ARToolKit本家はiPhoneでやってたし、ARToolkit plusもWindowsMobileでやってるから、NyARToolKitで3番目。つまり、携帯でARは誰でも使えるフツーの技術ということに。
  • 気に入って頂けたら、動画を作ってニコ動などにUPしてください。お願いします。
  • お仕事の納期が迫ってきたので、今日から数週間はNyARtoolkitの開発はお休みの予定です。