キー操作なしでモデルさんをくすぐってみる

 今年になってから当サイトで開発を進めております「VR空間にMMDモデルを召喚してくすぐる事ができるOculusRift用VR体験ツールMikuMikuTickle」について、先日、その時点での最新版でありますV02の動作状況を動画で紹介させて頂いたわけですが、あれから2ヶ月半ほど経った現在までに、世の中ではOculusRiftをめぐる様々な動きがありました。
 予定どおり出荷が開始されたDK2は、解像度アップやポジショントラッキング機能の追加等、DK1に比べていろいろと改善されているようですが、私としては、今DK2を買うか、製品版を待つか、悩ましい所です。
「ミクさんと添い寝できるアプリ」が突然開発中止になってしまうなど、残念な出来事もありましたが、その一方で、「ユニティちゃん イチャまくら」など新たな安眠系アプリが作られたりもしました。
 そして、当サイトとして特に興味深いのは、OculusRiftやLeapMotionを使ってミクさんをくすぐるという、私と同じような事をされている他の方が現れた事です。
【ニコニコ動画】Oculus+Leap+Kinectでミクさんにいたずら
 見て頂ければお分かりのとおり、まさしく「仲間誕生っ!」といったような内容です。
 なお、MikuMikuTickleとの主な違いとしては
・Oculus、Leapの他に、Kinectも使用している
・LeapMotionを定位置に置くのではなくOculusに貼り付けている
・背景物や音声がある
・開発環境はUnity
などが挙げられます。

 一方、MikuMikuTickleに関しては、投稿した動画に「はだしの足の裏くすぐられるバージョンほしいな」というコメントを頂いておりましたので、早速改善を図る事にしました。
 また、移動操作の為にキーボードを探らなければならない問題について、今回はVR空間に操作パネルを表示し、それをLeapMotion又はマウスで操作できるようにする事により改善を図りました。
 ボーンモーフやグループモーフを実装した事により、召喚できるモデルさんも若干増えたと思います(G-Tuneちゃんとか)。

 改善したMikuMikuTickleの今回のバージョンは、以下のリンクからダウンロードできます。

MikuMikuTickleV03 ダウンロード

 前回と同様に、実行するには以下の機材が必要です。

・DirectX11対応Windows PC (動作確認はWindows8.0で実施)
・Oculus Rift (DK1)
・Leap Motion

 また、これも前回と同様ですが、このダウンロードファイルに実行形式は含まれておりません。
 開発環境やライブラリとして、以下の物が必要ですので、前回までの手順に従ってインストールしておきましょう。バージョンもなるべく合わせておいた方が無難です。

・Microsoft Visual Studio Express 2012 for Windows Desktop
・OculusSDK(バージョン 0.2.5c)
・Leap Motion Developer SDK(バージョン 1.0.9)
・DirectXTex
・Bullet(バージョン2.82)

 実行する為の手順は、以下のようになります。
1、MikuMikuTickleV03プロジェクトの作成
 VisualStudioのファイルメニュー→新しいプロジェクト を選択します。
 テンプレートからVisual C++ を選択し、Win32プロジェクトを選択して、名前欄にプロジェクト名(例えばMikuMikuTickleV03)を入力し、「ソルーションのディレクトリを作成」にチェックが入っている事を確認し、OKボタン→次へボタン→追加のオプションの「空のプロジェクト」をチェック→完了ボタン の順に押します。
3、ソースの準備
 MikuMikuTickleV03のダウンロード圧縮ファイル(mmt_v03.zip)に含まれている、readme.txt 以外の全ファイルを、プロジェクトフォルダ(MikuMikuTickleV03.sln)の存在するフォルダの中にある、MikuMikuTickleV03というフォルダにコピーします。
4、インクルードディレクトリの設定
 VisualStudioの画面の右の方にあるソリューションエクスプローラという枠の中の、一番上に表示されているプロジェクト名(MikuMikuTickleV03)をクリックして選択状態にし、プロジェクトメニュー→プロパティでプロジェクトのプロパティを表示させます。
 「構成プロパティ」の中の「C/C++」をクリックし、プロパティページの右側の枠の「追加のインクルードディレクトリ」をクリックします。枠の右端に現れる下向きの矢印のようなマークをクリックし、「編集」を選択して表示されるダイアログボックスの上の枠に、以下の4行の内容を入力します。

C:\LeapDeveloperKit\LeapSDK\include
C:\OculusSDK\LibOVR\Include
C:\DirectXTex\DirectXTex
C:\bullet-2.82-r2704\src
 入力が終わったら、OKをクリックします。
5、ライブラリディレクトリの設定
 「構成プロパティ」の中の「リンカー」をクリックし、プロパティページの右側の枠の「追加のライブラリディレクトリ」をクリックする。枠の右端に現れる下向きの矢印のようなマークをクリックし、「編集」を選択して表示されるダイアログボックスの上の枠に以下の4行の内容を入力します。
C:\LeapDeveloperKit\LeapSDK\lib\x86
C:\OculusSDK\LibOVR\Lib\Win32
C:\DirectXTex\DirectXTex\Bin\Desktop_2012\Win32\Debug
C:\bullet-2.82-r2704\lib
 入力が終わったら、OKをクリックします。
 その後、プロパティページのOKボタンをクリックします。
6、ソースをプロジェクトに追加
 プロジェクトディレクトリに置いたMikuMikuTickleV03のファイルのうち、以下のファイルを プロジェクトメニュー→既存項目の追加 でプロジェクトに追加します。
DXCommon.h
LMCHand.cpp
LMCHand.h
MikuMikuTickle.cpp
pmd.cpp
pmd.h
PMDXBullet.cpp
PMDXBullet.h
PMDXWork.cpp
PMDXWork.h
pmx.cpp
pmx.h
UIPanels.cpp
UIPanels.h
7、実行
 デバッグメニュー→デバッグなしで実行 で実行します。
 最初は「leapd.dllがない」等のエラーが出ますので、その場合は C:\LeapDeveloperKit\LeapSDK\lib\x86 から以下のファイルを実行形式と同じフォルダにコピーします。
Leapd.dll
msvcp100d.dll
msvcr100d.dll
 コピーが終わったら、再度、デバッグメニュー→デバッグなしで実行 で実行します。
 ファイル選択ダイアログボックスが出てくるので、Oculus Rift の電源を入れ、Leap Motion をPCに接続した後で、召喚したいモデルさんを選択します。

 キーボードによる操作方法は前回と同様ですが、今回は前方方向を[Q][E]キーで左右に回転させる操作を追加しました。
 また、足の裏をくすぐれるようにした事により、それに関連する操作も追加となっています。
 [→][←]で足の開閉、[↑][↓]で足の上げ下げができます。
 くすぐりマシーンの操作も前回と同様スペースキーでできますが、前回はON/OFFの切り替えのみだったのが、今回は腋と足裏のON/OFFの組み合わせの切り替えに変更となっています。
 くすぐりマシーンを起動し、再び停止させるには、スペースキーを4回押す必要があります。

 LeapMotionを使うと、自分の手でモデルさんの脇腹や腋の下、そして足の裏をくすぐる事ができます。
 また、手が認識されている状態で人差し指だけを伸ばし、その人差し指にOculusRiftを向けると、「操作パネル表示」と書かれたパネルが出現し、それをその人差し指で押すと、操作用のパネルが表示されます。
 操作パネルはマウスの右ボタンでも出現させる事ができ、マウスの左ボタンで押す事もできます。
 (詳細はreadme.txtを見て頂ければと思います)

 動画のコメントによる要望は「はだしの足の裏くすぐられる」という事でしたが、はだしかどうかは実行時に選択するモデルさんによります。
 また、選択したモデルさんがはだしかどうかを判別する事はできないので、靴の上からくすぐってもはだしと同じように反応します。

 Oculus DK2/製品版や各ライブラリの最新版への対応等を含め、まだまだ改善点すべき点が多く残るソフトではありますが、OculusRift(DK1)とLeapMotionをお持ちのWindowsユーザーの方は、ぜひ試してみて頂ければと思います。


戻る