Mercurial > hg > Papers > 2019 > hamase-thesis
changeset 0:07e6811b4764
firstcommit
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/appendix.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,292 @@ +\appendix + +\chapter{BP簡易解説} + +\section{各ワイヤについて} +\subsection{イベント} +白色の矢印アイコンから始まる白いワイヤ(図\ref{01})を辿っていくことで、BP上のイベントの流れを確認することができる。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/01.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{値} +以下の丸型アイコンから始まる各色のワイヤは値の流れを示す(図\ref{02})。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/02.png} + \end{center} + \caption{値ワイヤ} +\label{02} +\end{figure} + +\subsection{配列} +以下のアイコンから始まる各色のワイヤは色に対応した値を要素とする配列の流れを示す(図\ref{03})。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/03.png} + \end{center} + \caption{配列ワイヤ} +\label{03} +\end{figure} + +\subsection{ワイヤの指向性} +ワイヤに値を流す時には、任意のノード右側の接続点からワイヤを引く。 +ワイヤから値を受け取る際には、ノード左側の接続点にワイヤを接続する。 + +ノード右側の接続点からノードが値を受け取ったり、ノード左側からワイヤに値を渡すことはない。 + +以上により、BPのイベントの流れは一般に「左から右へ」進んでいく(図\ref{04})。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=6cm]{fig/04.png} + \end{center} + \caption{簡易なBPの例} +\label{04} +\end{figure} + +\section{ワイヤの色について} +\subsection{白} +白色のワイヤはイベントの流れを表す。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/05.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{深青} +深青色のワイヤはUE4で定義され、またはプログラマが定義した構造体のデータの流れを表す。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/06.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{赤} +赤色のワイヤはTRUEまたはFALSEの2値のうちどちらかを表すBoolean型のデータの流れを表す。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/07.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{シアン} +シアンのワイヤは整数型のデータの流れを表す。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/08.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{緑} +緑色のワイヤは浮動小数点数、Float型のデータの流れを表す。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/09.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{金} +金色のワイヤはVector型、3個の浮動小数点数からなるベクトル様データの流れを示す。これはオブジェクトの座標位置を表すだけでなく、オブジェクトの拡大縮小率、RGB情報などを格納することもできる。 +\begin{figure}[H] + \begin{center} + \includegraphics[width=12cm]{fig/10.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{紫} +紫色のワイヤはRotator型、3D空間の回転を定義するデータの流れを表す。 +\begin{figure}[H] + \begin{center} + \includegraphics[width=12cm]{fig/11.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{オレンジ} +オレンジ色のワイヤはTransform型のデータの流れを示す。この型は3D空間の位置を定義するVector型の値、3D空間の回転を定義するRotator型、3D空間の拡大縮小率を定義するVector型によって構成される、9値のfloat型により構成された構造体である。 +\begin{figure}[H] + \begin{center} + \includegraphics[width=15cm]{fig/12.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{青} +青色のワイヤはObject型のデータの流れを示す。ゲーム内オブジェクトを検索、取得すれば青色ワイヤによって他のノードにオブジェクトの情報を渡すことができる。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/13.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} + +\section{異なる色の接続点間の接続} +\subsection{型変換が行われる場合} +型変換が自動で行われる色同士の場合(シアン-緑等)は、接続点同士を繋げた瞬間に型変換ノードが挿入される。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=5cm]{fig/14.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{型変換が行われない場合} +型変換が行われない色同士の場合(シアン-青、金-白等)は、接続点同士を繋げようとした時に警告文が表示され、接続がキャンセルされる。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=5cm]{fig/15.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} + +\section{基本的な変数ノード} +\subsection{四則演算} +\begin{figure}[H] + \begin{center} + \includegraphics[height=5cm]{fig/16.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{GET} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/17.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{GetActorLocation} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/18.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{GetActorRotation} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/19.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{GetActorTransform} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/20.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} + +\section{基本的なイベントノード} +\subsection{Event Tick} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/21.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{Event Begin Play} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/22.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{Apply Damage} +\begin{figure}[H] + \begin{center} + \includegraphics[height=6cm]{fig/23.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{Event Any Damage} +\begin{figure}[H] + \begin{center} + \includegraphics[height=5cm]{fig/24.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{カスタムイベント} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/25.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{Sequence} +\begin{figure}[H] + \begin{center} + \includegraphics[height=5cm]{fig/26.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{SET} +\begin{figure}[H] + \begin{center} + \includegraphics[height=3cm]{fig/27.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{Branch} +\begin{figure}[H] + \begin{center} + \includegraphics[height=4cm]{fig/28.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{ForEachLoop} +\begin{figure}[H] + \begin{center} + \includegraphics[height=4cm]{fig/29.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{MultiLineTraceForObjects} +\begin{figure}[H] + \begin{center} + \includegraphics[height=8cm]{fig/30.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{SetActorTransform} +\begin{figure}[H] + \begin{center} + \includegraphics[height=5cm]{fig/31.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +\subsection{AddActorWorldOffset} +\begin{figure}[H] + \begin{center} + \includegraphics[height=5cm]{fig/32.png} + \end{center} + \caption{イベントワイヤ} +\label{01} +\end{figure} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/bibliography.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,14 @@ +% 参考文献 +\def\line{−\hspace*{-.7zw}−} + +\begin{thebibliography}{99} +%\bibitem{*}内の * は各自わかりやすい名前などをつけて、 +%論文中には \cite{*} のように使用する。 +%これをベースに書き換えた方が楽かも。 +%書籍、論文、URLによって若干書き方が異なる。 +%URLを載せる人は参考にした年月日を最後に記入すること。 + + +\bibitem{hoge} +hoge +\end{thebibliography}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/chapter1.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,19 @@ +\chapter{序論} +\label{chap:introduction} +\pagenumbering{arabic} + +%序論の目安としては1枚半ぐらい. +%英語発表者は,最終予稿の「はじめに」の英訳などを載せてもいいかも. + +\section{背景と目的} +現代の社会は娯楽に満ち溢れている。スポーツ、絵画、音楽など古来から楽しまれてきたものはもちろん、近年では電子回路やコンピュータグラフィクスを用いたコンピュータゲームが広く遊ばれるようになった。そのコンピュータゲームにも様々な形態が存在する。例えば画面上に次々に現れる敵を撃ち落しながらその撃破数や技術を競うSTG(ShootingGame)というジャンルはよく知られているが、これとは別に、音楽に合わせて楽器の演奏技術やリズム感の良さを競う音楽ゲームというジャンルがある。音楽やそのリズムは人類の歴史と切っても切れない関係にあるが、実際に楽器を自由に演奏できるようになるには短くない訓練期間を要する場合が多い。そのため、より気軽に音楽と触れ合えるような娯楽として、音楽ゲームは広く遊ばれている。 + +現代のゲームと切り離して考えることができない技術にVR(VertualReality:仮想現実)というものがある。VRは、HMD(HeadMountDisplay)という装置を使用し、装着者の視界を外界と遮断することによりHMD内部のディスプレイが映し出す映像があたかも現実であるかのような体験をすることができる技術である。この技術はゲームとの親和性が非常に高く、発表当初からVRに対応する様々なゲームが開発されてきた。 + +VR技術を使用した音楽ゲームは複数存在するが、現在これらのゲームは何らかの入力装置をプレイヤーが把持している必要がある。しかし、VRゲームにおいてコントローラーを手に持っておくという現実における作業は、ゲーム内で武器や何らかの装備を所持している等の特殊な場合では有効に作用することがあるが、そうでない場合には仮想空間への没入感を損なう可能性がある。 + +本論文ではこの問題を解決するため、入力装置を把持する必要のない入力方法を提案し、これを使用したVR音楽ゲームを実現する。 + +\section{論文の構成} +ほげほげ +%\section{Introduction}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/chapter2.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,57 @@ +\chapter{既存の音楽ゲーム} +\label{chap:concept} + +\section{レーン固定方式} +レーン固定方式では、ターゲットがレーン(ターゲットの移動経路を示すオブジェクト)に従って移動してくる。レーンは通常画面に対して静止している。ターゲットが判定ラインに重なったタイミング、または、その他タイミングを示すオブジェクトに従ったタイミングでプレイヤーがアクションを起こすことにより、点数を得るものである。 + +レーンは一般に直線状であり、複数のレーンが並行に配置される。ゲーム内容が非常にシンプルでわかりやすい上、入力装置の設計にもほとんど制約がないため、様々な種類のレーン固定方式を採用した音楽ゲームが存在している(図\ref{gitadora})。 +\begin{figure}[htbp] + \begin{center} + \includegraphics[height=7cm]{fig/gitadora.jpg} + \end{center} + \caption{ギターやベース、ドラムを演奏することができる音楽ゲーム} +\label{gitadora} +\end{figure} + +\section{カメラ進行方式} +カメラ進行方式では、ターゲットはあらかじめレーンに対して固定されている。カメラ(プレイヤー)が判定ラインと共にレーン上を進行し、ターゲットが判定ラインに重なったタイミング、または、その他タイミングを示すオブジェクトに従ったタイミングでプレイヤーがアクションを起こすことにより、点数を得るものである。プレイヤー自身がゲーム空間を進行するため、スピード感を重視したゲーム演出が可能である。 + +この方式ではゲームの設計上でカメラの移動速度やカメラの角度が自由に調整可能となるため、あえてプレイヤーがターゲットを認識しづらくするような演出が可能となるなど、ゲームプレイ上の演出の幅をひろげることができる。 + +\begin{figure}[htbp] + \begin{center} + \includegraphics[height=7cm]{fig/sv.jpg} + \end{center} + \caption{カメラがレーン上を走行することにより強い疾走感を得られる音楽ゲーム} +\label{sv} +\end{figure} + +\section{ガンシューティング方式} +ガンシューティング方式ではレーンの概念はない。画面上の任意の点に撃ち抜くべきターゲットと撃ち抜くべきタイミングを示すオブジェクトが生成される。プレイヤーは銃型コントローラーでターゲットに狙いを定め、タイミングよくターゲットを撃ち抜くことで点数を得ることができる。 + +この方式を採用したアーケード音楽ゲームはかつては人気を誇っていたが、現在ではそのほとんどが稼働を停止している。 + +\begin{figure}[htbp] + \begin{center} + \includegraphics[height=7cm]{fig/mgg.jpg} + \end{center} + \caption{銃型コントローラーでリズムよくオブジェクトを撃ち抜く音楽ゲーム} +\label{mgg} +\end{figure} + +\section{タッチパネル方式} +タッチパネル方式はガンシューティング方式同様、レーンの概念がない。画面上にターゲットとタイミングアイコンが生成されるので、プレイヤーはこの指示に従いタイミングよくターゲットをタッチすることで点数を得ることができる。 +この方式はスマートフォンとの相性が良いため、複数のスマートフォン向け音楽ゲームがこの方式を採用している。 +この方式の派生として、タッチではなくマウスクリックでプレイすることにより、タッチパネルではなく通常のモニタでプレイ可能な音楽ゲームも存在する。 + +\begin{figure}[htbp] + \begin{center} + \includegraphics[height=7cm]{fig/synchronica.png} + \end{center} + \caption{タッチパネルを操作することによりプレイが可能なゲーム} +\label{synchronica} +\end{figure} + + +\section{etc.} +ここに紹介した以外にも、多数の音楽ゲームの形態が存在する。 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/chapter3.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,124 @@ +\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}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/chapter4.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,44 @@ +\chapter{\name の実装} +\label{chap:poordirection} + +\section{ソフトウェアの実装} +\subsection{LeapFloatingHandsCharacter} +UE4上でプラグイン「Leap Motion Plugin」を適用するとLeapFloatingHandsCharacterが使用可能となる。LeapFloatingHandsCharacterは実体がなく、LeapMotionを使用して得られた手の位置をVR上に再現するものである。LeapFloatingHandsCharacter単体では何もアクションを起こせないが、手の形を生成することや手のモデリングを省略することができるので、本論文ではLeapFloatingHandsCharacterに手を加えていく形で\name を実装する。 +以下に、実際に\name で実装されたLeapFloatingHandsCharacterのBPを示す(図\ref{player})。 +\begin{figure}[htbp] + \begin{center} + \includegraphics[height=8cm]{fig/player.png} + \end{center} + \caption{実際のPlayerActor} +\label{player} +\end{figure} + +これを、本論文用に整理・整頓したものを示す(図\ref{player1})。本論文ではこれを使用して実装を解説する。 + +\begin{figure}[htbp] + \begin{center} + \includegraphics[height=8cm]{fig/player1.png} + \end{center} + \caption{整理されたもの} +\label{player1} +\end{figure} + +\subsection{手の位置の検出} + + + +\subsection{入力方法とその実装} + +\subsection{ターゲットの実装} + +\subsection{ロングターゲットの実装} + +\subsection{手の相対位置の検出} + +\section{音楽ゲームの実装} + +\subsection{曲と譜面タイミングの同期} + +\subsection{遅延の原因とその解決方法} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/future.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,3 @@ +\chapter{結論} +\section{まとめ} +\section{今後の発展の余地}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/main.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,68 @@ +\documentclass[a4j,12pt]{jreport} +%\usepackage[dvips]{graphicx} +\usepackage[dvipdfmx]{graphicx} +\usepackage{bmpsize} +\usepackage{mythesis} +\usepackage{hamase} +\usepackage{multirow} +\usepackage{here} +\setlength{\itemsep}{-1zh} +\title{VRフリーハンド音楽ゲーム\\「\name」の実装} +\icon{ + \includegraphics[width=80mm,bb=0 0 595 842]{fig/ryukyu.pdf} + } +\year{平成Y年度 卒業論文} +\belongto{琉球大学工学部情報工学科} +\author{0957 \\ 指導教員 {} } +%% +%% プリアンブルに記述 +%% Figure 環境中で Table 環境の見出しを表示・カウンタの操作に必要 +%% +\makeatletter +\newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}} +\newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}} +\makeatother +\setlength\abovecaptionskip{0pt} + +\begin{document} + +% タイトル +\maketitle +\baselineskip 17pt plus 1pt minus 1pt + +\pagenumbering{roman} +\setcounter{page}{0} + +\tableofcontents % 目次 +\listoffigures % 図目次 +\listoftables % 表目次 + +%以下のように、章ごとに個別の tex ファイルを作成して、 +% main.tex をコンパイルして確認する。 +%章分けは個人で違うので下のフォーマットを参考にして下さい。 + +% はじめに +\input{chapter1.tex} + +% 基礎概念 +\input{chapter2.tex} + +% 実験 +\input{chapter3.tex} + +% 他の論文との比較 +\input{chapter4.tex} + +% 今後の課題 +\input{future.tex} + +% 参考文献 +\input{bibliography.tex} + +% 謝辞 +\input{thanks.tex} + +% 付録 +\input{appendix.tex} + +\end{document}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_hamase/thanks.tex Fri Feb 15 21:21:12 2019 +0900 @@ -0,0 +1,23 @@ +\chapter*{謝辞} +\thispagestyle{empty} + +%基本的な内容は以下の通り.参考にしてみて下さい. +%厳密な決まりは無いので,個々人の文体でも構わない. +%GISゼミや英語ゼミに参加した人はその分も入れておく. +%順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.) + +\hspace{1zw}本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりましたhoge助教授に深く感謝したします。 + +また、本研究の遂行及び本論文の作成にあたり、日頃より終始懇切なる御教授と御指導を賜わりましたhoge教授に心より深く感謝致します。 + +数々の貴重な御助言と細かな御配慮を戴いたhoge研究室のhoge氏に深く感謝致します。 + +また一年間共に研究を行い、暖かな気遣いと励ましをもって支えてくれたhoge研究室のhoge君、hoge君、hogeさん並びにhoge研究室のhoge、hoge君、hoge君、hoge君、hoge君に感謝致します。 + +最後に、有意義な時間を共に過ごした情報工学科の学友、並びに物心両面で支えてくれた両親に深く感謝致します。 + +\begin{flushright} + 2010年 3月 \\ hoge +\end{flushright} + +