2017年7月11日 更新

VR解剖アプリを作る その2 ~Unity上でCTデータを扱う~

3DデータをUnityに取り込んで、カメラで観察するアプリを作ります。 非VRとVRを実装します。

6,229 view お気に入り 1
対応オブジェクトを作る

今回は以下の2つのオブジェクトがあればOKです。

  • ジャイロの対象: Gyro
  • カメラ: Camera(デフォルトがあるので作成不要)


 (4116)

親子関係は左の通りです。


対応スクリプトを作る

非VRの時と同じようにスクリプトファイルを作成します。

今回はGyroにだけ設定すれば良いです。

  • 起動時にジャイロ機能を有効にする
  • ジャイロに応じて回転を与える


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Gyro : MonoBehaviour {
        Quaternion gyro;

        void Start () {
                Input.gyro.enabled = true;
        }
        
        void Update () {
                gyro = Input.gyro.attitude;
                transform.rotation = Quaternion.Euler(0, 0, 180) * (new Quaternion(gyro.x, -gyro.y, gyro.z, gyro.w));
        }
}
Gyro.cs

クォータニオンによる回転処理は理解するのに時間がかかりました。

ややこしいのでここでは割愛します。

詳しいことを知りたい方は是非調べてみてください。



実機で挙動を確認する

PCとAndroidを接続して実機で確認します。

Androidの設定からUSBデバッグを有効にしておきましょう。

USBケーブルでPCとつないで、Unity上でBuild & Runを実行します。



VR解剖図 Androidアプリ

分かり辛いですが、Android実機の傾きにカメラが追従しています。


まとめ

初めてのUnity、初めてのC#でしたが、意外となんとかなりました。

VR界隈も機械学習と同じで情報の更新が早いのでソースの鮮度には気をつける必要があります。

とりあえず最低限の閲覧機能をつけることができました。

全体の流れをつかめたのでこれからは洗練化していきます。

次の目標は塊になっている3Dモデルを、骨ごとに切り分けることですね。

それができたら臓器、筋肉、血管、神経も出力して相対位置を固定。

これで最低限の教材として使えるかなという感じです。

画像解析が適用できるのはまだまだ後ですね。



参考

本記事は個人的に開発しているアプリのこれまでの開発日誌をまとめたものです。

下記以外の参考サイトや開発詳細、トライアンドエラーの様子は以下のサイトを参照してください。

ここには載せませんでしたがPS3コントローラでの操作を試みたりもしています。

49 件

関連する記事 こんな記事も人気です♪

VR解剖アプリを作る その1 ~CTスキャンの結果から3Dデータを得る~

VR解剖アプリを作る その1 ~CTスキャンの結果から3Dデータを得る~

VR解剖アプリを作る連載物です。今回はOsiriXというソフトを使ってCTのデータから3Dデータを作成しました。
山田涼太 | 9,374 view
CTの原理①~ラドン変換~

CTの原理①~ラドン変換~

CTの原理に関して詳しく説明します. 今回はRadon変換についてです.
医療×人工知能の最前線を追え‼ 「人工知能エンジニアMeetUp!#4〜AI医療画像診断支援 & RSNA報告会〜 」のまとめ。Part 2

医療×人工知能の最前線を追え‼ 「人工知能エンジニアMeetUp!#4〜AI医療画像診断支援 & RSNA報告会〜 」のまとめ。Part 2

今回の記事は、前回投稿したLPixel主催MeetUp記事のPart2です!医師である龍さんと講演後の懇親会の様子を振り返ってみようと思います。 この記事はLpixelインターンの北村が担当しています。
北村 旭 | 4,271 view
About IMACEL Academy

About IMACEL Academy

人工知能・画像解析スキルが身につく専門サイト-IMACEL Academy-についてです

この記事のキーワード

この記事のキュレーター

山田涼太 山田涼太