view final_hamase/chapter3.tex @ 8:689beb855b62 default tip

update
author hamase
date Wed, 20 Feb 2019 10:49:19 +0900
parents 07e6811b4764
children
line wrap: on
line source

\chapter{\name の概要}
\label{chap:poordirection}


\section{\name が解決する問題}


\subsection{既存システムの問題点}
既存のVR音楽ゲームでは、本論1.1で述べたようにコントローラーを手に持っておく必要がある。これは一部を除きVRに対する没入感を阻害する可能性がある。また、VRゲームはHMDやトラッキング能力を有したコントローラーを用いない通常のゲームと比較して手腕のダイナミックな動作を求めることがある。これによりプレイヤーはゲームプレイ中にコントローラーを上下左右に素早く移動させる必要がある。これは腕・肩の疲労をもたらし、連続するゲームプレイを阻害する。

VR音楽ゲームには、単にVRハードウェアでのプレイが可能であるのみで、コンテンツ内容としては通常のモニタ・コントローラーを用意すればVR機器を用意せずともプレイ可能なものが複数存在する。また、HMDを装着せずともトラッキング能力を有したコントローラーを使用することによってプレイ可能なVRゲームも存在する。しかし、コントローラーのモーションセンサやコントローラーの角度を取得する技術はVRに特有の技術ではない(図\ref{wii}及び図\ref{guncon})。そのため、これらのコンテンツはVR技術を十分に活用しているとはいえない。図\ref{wii}に示すハードウェアのコントローラーはCMOSセンサー(赤外線センサー)によるテレビ画面からの位置取得及び三軸加速度センサーにより直感的な操作を行うことを可能にした。また、図\ref{guncon}に示すコントローラーは走査線タイミング方式と呼ばれる技術によりコントローラーの照準を検出することを可能にした。このように、コントローラーの位置や照準を検出する技術は20世紀にはすでに開発されていた。

\begin{figure}[htbp]
\begin{minipage}{0.5\hsize}
	\begin{center}
		\includegraphics[height=5cm]{fig/wii.png}
	\end{center}
	\caption{Wii(任天堂2006)}
\label{wii}
\end{minipage}
\begin{minipage}{0.5\hsize}
	\begin{center}
		\includegraphics[height=5cm]{fig/guncon.jpg}
	\end{center}
	\caption{GUNCON(namco1997)}
\label{guncon}
\end{minipage}
\end{figure}

\subsection{その解決方法}
\name では上記問題を解決するため、以下の対策を講じる。

第一に、\name はLeapMotionによる操作を採用することにより、コントローラーを把持する必要のない操作体系を構築した。VRゲーム中、プレイヤーは常にHMDを装着する必要があり、これは現実世界の視界を奪うことになる。このため操作者がフリーハンドの状態からなんらかのハードウェアを操作する際にはHMDの脱着を要し、これは操作者のストレスとなる可能性がある。そのため\name 内ではあらゆる操作をLeapMotionにより行う。これはあらゆる操作をフリーハンドで行うことを意味する。

この特性を大きく生かすため、\name ではフリーハンド操作に特有のアクションである「手の開閉」を主体に置いた操作体系を構築した。

第二に、\name はVR上での疑似ガンシューティング方式を実装することによりVRの特性を有効に活用する。通常のガンシューティング方式は、銃器やその他武器を模した入力装置から任意の方法で照準入力を取り、それに対応した処理を行なっていく。それに対して今回実装した疑似ガンシューティング方式は、把持するべき入力装置を必要とせず、操作者の頭部の角度や手の位置を検出し、これを入力装置に見立てて処理を行う。

\section{\name の用語・概要}

\subsection{ターゲット}
\name において、プレイヤーが破壊すると点数を得られる円形のオブジェクト(図\ref{target})。ターゲットはレベル設計時にVR空間上の任意の折れ線上に任意の速度で配置することができる。タイミングよく破壊することでより多くの点数を得ることができる。
\begin{figure}[htbp]
	\begin{center}
		\includegraphics[height=8cm]{fig/target.png}
	\end{center}
	\caption{ターゲット}
\label{target}
\end{figure}

\subsection{ターゲットの破壊}
プレイヤーがターゲットに手をかざし、かざした手を開く、または閉じることによりターゲットを破壊することができる。ただし、あまりにも開閉タイミングが異なる場合には混乱を防ぐため、ターゲットは破壊されない。この際、プレイヤーはターゲットに手をかざす必要があるが、ターゲットに直接触れる必要はないため、理論上は任意の距離にあるターゲットを破壊することができる。

\subsection{ロングターゲット}
\name において、プレイヤーがアクションする時間が長いほど多くの点数が得られる帯状のオブジェクト(図\ref{targetL})。ロングターゲットは、ターゲットと同様レベル設計時にVR空間上の任意の折れ線上に任意の速度で配置することができる。

\begin{figure}[htbp]
	\begin{center}
		\includegraphics[height=7cm]{fig/targetL.png}
	\end{center}
	\caption{ロングターゲット}
\label{targetL}
\end{figure}

\subsection{ロングターゲットに対するアクション}
プレイヤーがロングターゲットの先端に手をかざし、タイミングよく手を開くことでアクションスタートとなり、点数が加算される。手を先端に正しくかざし続けることにより、継続的に点数を得ることができる。ロングターゲットの終端が先端に到達したタイミングでかざしていた手を閉じることにより、さらに点数を得ることができる。


\section{使用する既存のフレームワーク}
\subsection{UnrealEngine4}
UnrealEngine4(UE4)はEpicGamesが開発・公開しているオープンソースなゲームエンジンである。UE4は他の無償公開されたゲームエンジンと比較して、華麗なグラフィックを瞬時にレンダリングすることに優れている(図\ref{ue4})。UE4はC++または独自言語のBluePrints(BP)を使用して動作を記述する。BPはノードベースのビジュアルプログラミング言語であり、イベントの流れや値をノードで接続することでプログラミングする。イベントの流れはリアルタイムにテストプレイと連動させて観察することができる(図\ref{bp})。BPはUE4の内部処理でC++に変換されて実行される。

\begin{figure}[htbp]
	\begin{center}
		\includegraphics[height=8cm]{fig/UE4.png}
	\end{center}
	\caption{UE4により実装されたゲームの例}
\label{ue4}
\end{figure}

\begin{figure}[htbp]
	\begin{center}
		\includegraphics[height=8cm]{fig/bpsample.png}
	\end{center}
	\caption{BluePrintsによるプログラミングの例}
\label{bp}
\end{figure}

BPにおいて型の異なる値ノードを接続しようとする時には、型変換ノードが自動で代入される又は型変換が不可である旨のメッセージが出現しノード間の接続を拒否するなど、不正なノード間接続が行われないため、コンパイルエラーが非常に起こりにくいという利点がある。

なお、ビジュアルプログラミング言語の使用に抵抗のある開発者はBPを使用せずC++で直接記述することも可能である。

UE4は華麗なグラフィックを簡単に実現できる反面、強力なマシンパワーを要求するという欠点があるが、十分な機材を用意すれば十分商用に耐えるビジュアルを瞬時に作成することが可能である。

本論文ではVR音楽ゲームを実現する上で、プロジェクトをVRに応用する際の簡易さや、ゲームとしてのグラフィックの質、デバッグの容易さ等を考慮した上で、UE4を採用した。



\section{使用する既存のデバイス}
\subsection{Oculus}
OculusはVR機器の開発、販売を行う会社である。同時に、同社の発売するVR機器のことを指す。Oculusには様々な種類があり、VR操作に特化したトラッキング機能を搭載したコントローラーが付属したものもある。今回実装に使用したものはOculusDK2と呼ばれる開発者向けHMDであり、コントローラーは付属していない(図\ref{DK2})。

OculusDK2は使用者の視界を外界と遮断し、左右の目に適切な差のある映像を映し出すことによりあたかも現実であるかのような立体映像を実現する。また、このHMDはトラッキング機能を有しており、使用者の頭部の角度・位置を取得することができる。この機能により、通常のモニタでは実現することが困難(高度に複雑化する等)な様々なアクション(体の向きを変えずに後ろを振り向く等)を実現することができる。

\begin{figure}[htbp]
	\begin{center}
		\includegraphics[height=7cm]{fig/DK2.jpg}
	\end{center}
	\caption{Oculus DK2}
\label{DK2}
\end{figure}

\subsection{LeapMotion}
LeapMotionは小型のハンドトラッキングシステムである。これを使用することにより操作者の左右の手の位置、手の開閉具合および指・関節の位置を取得することが可能となる(図\ref{leap})。

トラッキング精度にある程度の難点はあるが、他のハンドトラッキングシステムと比較してLeapMotionは非常に小型・安価であるため、本論文ではこれを採用した。

\begin{figure}[htbp]
	\begin{center}
		\includegraphics[height=7cm]{fig/LeapMotion.jpg}
	\end{center}
	\caption{LeapMotion(中央下部のデバイス)}
\label{leap}
\end{figure}