概要
前回はCTスキャンで得られたDICOMファイルをOsiriXで編集し、OBJファイルとして出力しました。
将来的にはもっと細かく部位ごとに個別のOBJファイルとするつもりですが、ひとまずこのまとまりファイルを使ってアプリを作っていきます。
以下の2つのもののプロトタイプを作ります。
- ドラッグなどで画面操作できる非VRアプリ(MRアプリを想定して)
- 首振りで操作するVRアプリ
ちなみに、前回までヒト頭部を使っていましたが、東京大学附属動物医療センターからイヌのCTデータを提供していただいたので以降はこちらを使わせていただきます。
*CTデータは東京大学所属の供血犬のものであり、データの公開は許可を得ています。
3Dモデルを取り込む
非VRアプリ: カメラ回転、移動、ズーム機能
非VRアプリはスマホやタブレットのタッチパネル操作を想定して作っていきます。
将来的にはイベントのトリガーをHoloLensの操作に置き換えてあげればMRアプリになるという算段です。
対象を観察する方法として、カメラを動かす方法と対象自体を動かす方法が考えられます。
今回はカメラを動かすことにしました。
直交座標より極座標の方が理解しやすいので三次元極座標で空間を捉えます。
まず、原点に3Dモデルの中心をセットします。
前述のように3Dモデルは不動です。
基準点(後述)は原点を中心とした半径rの球表面を移動することになります。(r可変)
球の半径はr変化がズームを表現します。
角度θ、φが球表面上での位置を表現します。
肝心のカメラは基準点を原点とするxy二字平面上を移動します。
デフォルトでは(x, y) = (0, 0)の位置、すなわち基準点と同じ位置から原点を観察します。
対応オブジェクトを作る
ここまで出てきた、原点、基準点、カメラに対応するオブジェクトを作成し、関連づけます。
- 原点: Origin
- 基準点: ReferencePoint
- カメラ: Camera(デフォルトがあるので作成不要)