view midterm/midterm.tex @ 1:ecb5281ed1a9

2nd commit
author hamase
date Thu, 08 Nov 2018 16:47:47 +0900
parents c9b5432397b7
children 6e2f940dcb5a
line wrap: on
line source

\documentclass[twocolumn,twoside,9.5pt]{jarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{picins}
\usepackage{fancyhdr}
%\pagestyle{fancy}
%\usepackage{abstract}
\usepackage{url}
\usepackage{bussproofs}
\usepackage{listings,jlisting}
\lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{../pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 中間発表予稿}
\rhead{}
\cfoot{}

\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
\setlength{\headheight}{0mm}
\setlength{\headsep}{5mm}
\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
\setlength{\textwidth}{181mm}
\setlength{\textheight}{261mm}
\setlength{\footskip}{0mm}
\pagestyle{empty}

\lstset{
  frame=single,
  keepspaces=true,
  breaklines=true,
  xleftmargin=0zw,
  xrightmargin=0zw,
  framerule=.2pt,
  columns=[l]{fullflexible},
  language={},
  tabsize=4,
  lineskip=-0.5zw,
  escapechar={@},
}


\input{dummy.tex}
%\renewcommand{\abstractname}{Abstract}
\begin{document}
\title{VRを用いた総合楽器シミュレーションシステム}
\author{155718B 氏名 {浜瀬}{裕暉} 指導教員 : 河野 真治}
\date{}
\maketitle
\thispagestyle{fancy}

\section{研究目的}

3D空間上に物体を用意することは簡単である。
それに対し、現実に物体を作成することはしばしば大きな困難を伴う。

現在、様々な音楽家が伝統ある楽器ではなく、全く新しい楽器や演奏システムを使用したパフォーマンスを行なっているが、これらの開発には莫大なコストがかかり、小規模なアーディストがこれらの新しい楽器や演奏システムを開発することは難しい。

そこで、新しい楽器を開発する際、実際に楽器を用意する前に簡便にその使用感、外見、その他の特徴を把握し、構想した楽器を製造するかどうかの指標を定められるようなソフトウェアを開発する。

\section{VR(仮想現実)}
VR(仮想現実)とは、コンピュータグラフィクスで作られた世界を、あたかも現実であるかのように体験することができるシステムである。現在、多くのVRデバイスが開発中であるが、それらの多くは「視覚」「聴覚」「触覚」に作用するものである。本研究では、「視覚」「聴覚」に注目してシステムを開発する。

VRコンテンツはその没入感が非常に重要であり、これを欠いたVRコンテンツは不快感、疲労、体調不良を引き起こす原因となりうる。


\section{LeapMotion}
LeapMotion\cite{oculus}とはVR向けに開発されたデバイスの一つで、使用者の手の相対位置、開き具合等を取得することができる装置である。LeapMotionを使用することにより、コントローラー、その他の入力デバイスを手に所持することなくVRシステムの操作を行うことが可能にとなる。

\section{シミュレーションシステムの概要}
本シミュレーションシステムはVR空間上に楽器を構築していくソフトウェアで、オブジェクトの直交座標配置、および極座標配置をサポートする。
また、VR空間上での動作をすることにより、演奏者の背後に配置されるオブジェクトへの作用を簡単に行うことが可能となるなど、VR空間上でなければなしえない動作を可能とする。

打楽器、弦楽器等、複数の奏法を複合するような楽器へのシミュレーションを没入感を損なうことなく可能にすることは、コントローラー等の「手を握った状態から開くことが不可能」である入力デバイスでは困難であるが、LeapMotionを組み込むことによりこれを可能とする。

楽器の構築をする「エディットモード」、構築した楽器を試奏する「プレイモード」、演奏の様子を観客視点から見る「オーディエンスモード」を切り替えながら操作していく。
\subsection{エディットモード}
あらかじめ定められた楽器パーツ、およびシミュレーター使用者が独自に作成したパーツをインポートしたものを、直交座標、または極座標にしたがって配置していく。配置される座標は、数値での座標入力で決定する。

配置された楽器パーツは、手で触れることで選択状態になり、再配置することが可能となる。
\subsection{プレイモード}
エディットモードで配置された各パーツに触れることにより、規定の音が再生される。シミュレーター使用者は、このモードにより無理なく各パーツが配置されているかどうかを確認することができる。
\subsection{オーディエンスモード}
プレイモードでは演奏者の視点で楽器を観察することができたが、オーディエンスモードでは演奏の様子を観客視点で見ることができる。このモードにより、シミュレーター使用者は想定した通りの演奏の様子となっているかどうかを確認することができる。

%\begin{figure}[htpb]
%   \begin{center}
%       \includegraphics[width=50mm]{../pic/rbtree.pdf}
%   \end{center}
%   \caption{RedBlackTreeの例}
%   \label{fig:rbtree}
%\end{figure}


\section{課題(腕の長さ問題)}
エディットモード中、楽器パーツを手の届く範囲外に配置してしまった場合、手で触れることができなくなり再選択が不可能となる問題がある。
これを解決するためには、いくつかの方法が考えられる。
\subsection{範囲外設置の禁止}
演奏者から一定距離以上離れた位置へのオブジェクト配置を禁止する方法は、最も簡単にこの問題を解決する。

しかし、この方法は演奏者の創造性を阻害する可能性がある。
\subsection{演奏者の移動を可能とする}
シミュレーター利用者の現在位置を変更可能にすることは、この問題を解決する。

しかし、本シミュレーターはLeapMotion操作を基本としており、正確な移動操作が難しいため、視点操作を搭載するとシミュレーター利用者とVR映像との間に齟齬が発生してしまう場合がある。
その場合、シミュレーター利用者に不快感を与える原因となりうる。
\subsection{手の延長線上を選択可能とする}
本シミュレーターでは、手が直接触れていなくても、画面上で手と重なっている楽器パーツを選択可能にすることで、この問題を解決する。
\subsubsection{具体的な手法}
厳密に手の中心延長線上のオブジェクトを選択する場合、遠方にある小さなオブジェクトを選択することは困難である。これは、ユーザーとオブジェクトの距離が離れることにより、わずかな手の位置の誤差が遠方では大きな位置の誤差となるからである。よって、選択するオブジェクトは手の延長線上との誤差が一定値以下の集合の中で、その誤差が最小値であるオブジェクトである。
\subsubsection{利き目の位置の測定}
VRのうち視覚に関する立体視は左右の目にそれぞれ異なる位置からのカメラ映像情報を与えることで実現している。よって、「どちらの目からの延長線をとるか」「顔の中心から目までの距離」を決定する必要がある。

カメラ中心の位置ベクトル$\vec{O}$および方向ベクトル$\vec{D}$をそれぞれ
\begin{eqnarray}
\vec{O}&=&(0,0,0)\\
\vec{D}&=&(0,1,0)
\end{eqnarray}
とし(これは、ある一点の方向に顔を向けることで実現できる)、利き目測定用オブジェクト$W_1$、$W_2$の位置ベクトルをそれぞれ
\begin{eqnarray}
\vec{w_1}&=&(1,1,0)\\
\vec{w_2}&=&(-1,1,0)
\end{eqnarray}
とした時に、シミュレーター使用者がそれぞれ決定した手の位置ベクトル$\vec{h_1}$、$\vec{h_2}$が
\begin{eqnarray}
\vec{h_1}&=&(x_1,y_1,z_1)\\
\vec{h_2}&=&(x_2,y_2,z_2)
\end{eqnarray}
であった時、2直線
\begin{eqnarray}
\vec{l_1}&=&\vec{w_1}+a(\vec{h_1}-\vec{w_1})(a:実数)\\
\vec{l_2}&=&\vec{w_2}+b(\vec{h_2}-\vec{w_2})(b:実数)
\end{eqnarray}
間の距離が最小となる点Eの座標を求めれば、これがカメラ中心に対する利き目の相対位置となる。

$l_1$、及び$l_2$上の任意の点P、Qの位置ベクトルはそれぞれ
\begin{eqnarray}
\vec{p}&=&(1,1,0)+a(x_1-1,y_1-1,z_1)\\&=&(a(x_1-1)+1,a(y_1-1)+1,az_1)\\
\vec{q}&=&(-1,1,0)+b(x_2+1,y_2-1,z_2)\\&=&(b(x_2+1)-1,b(y_2-1)+1,bz_2)\\
\end{eqnarray}
であるから、
\begin{eqnarray}
PQ^2&=&[a(x_1-1)+1-\{b(x_2+1)-1\}]^2\\&+&\{a(y_1-1)-b(y_2-1)\}^2+(az_1-bz_2)^2
\end{eqnarray}
となり、$\vec{h_1}$及び$\vec{h_2}$は既知であることから式(14)はa,bの2変数式であり、この$PQ^2$を最小とする$(a,b)$の組を求めることで$PQ$間を最小とする点P,Qの座標がわかるため、この位置ベクトルをそれぞれ$\vec{P_{min}}$,$\vec{Q_{min}}$とすると、求める利き目の位置ベクトル$\vec{E}$は
\begin{eqnarray}
\vec{E}&=&\frac{\vec{P_{min}}+\vec{Q_{min}}}{2}
\end{eqnarray}
とわかる。
また、そのような$(a,b)$の組は、それぞれ
\begin{eqnarray}
PQ^2\frac{\partial}{\partial a}&=&0\\
PQ^2\frac{\partial}{\partial b}&=&0
\end{eqnarray}
を解けば求まる。
\section{今後の課題}
現段階では本シミュレーターの概要のみ考案した。
今後、これらの構想の実装に着手していく。

\nocite{*}
\bibliographystyle{junsrt}
\bibliography{reference}
%\begin{thebibliography}{9}
%\bibitem{Oculus}OculusRiftDK2Setup \url{https://developer.leapmotion.com/vr-setup/dk2}
%\end{thebibliography}
\end{document}