Microsoft Word - tyukan

Similar documents
MMC Unity講座

第26回_プレゼン資料_菅原(Unityはじめるよ~NavMesh基礎~)

Unity講座①

しずおかアプリ部 Unity はじめるよ すごいよサウンド機能 実践編 統合開発環境を内蔵したゲームエンジン いろんな職業の が る資料なので説明を簡単にしてある部分があります 正確には本来の意味と違いますが上記理由のためです ご了承ください この

C#の基本

スライド 1

第33回_プレゼン資料_菅原(~IKを使ってアニメーションをコントロール~)

3.2. Unity Unity の画面構成 Unity を起動すると以下の図 1 のような画面が表示される 図 1 Unity のインターフェース Unity の画面は主に以下のように分けられる ① Scene View Game View Scene View には作成するゲーム内

PowerPoint プレゼンテーション

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

Twinmoon

Microsoft Word - VB.doc

本 勉強する内容 基礎 3:Prefab コライダー応 1:uGUI 概要

ARCHI Box Windows版 ヘルプ(お施主様向け)

変更履歴 版数変更日変更内容 /11/1 初版設定 /9/1 名称変更

目次 1. ログイン ログアウト デスクトップ ( 例 :Word Excel 起動中 ) Dock( 例 :Word Excel 起動中 ) Finder ウィンドウ メニューバー ( 例 :Word 起動中 )...

Microsoft Word - macマニュアル【 】.doc

Microsoft Word - zoom-it-man.doc

ARCHI Box Windows版 ヘルプ

水島宏一の器械運動アプリ 簡易マニュアル

作業環境カスタマイズ 機能ガイド(応用編)

目次 1. アニメーションの仕組み 3 2. ワードアートでムービーのタイトルを作成 7 3. まとめ 課題にチャレンジ 19 [ アニメーション ] 機能 PowerPoint に搭載されている [ アニメーション ] 機能を使用すると 文字や図形にアニメーション ( さまざまな動きや

第32回_プレゼン資料_菅原(Unityはじめるよ~上半身だけ動かす2~)

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

産能大式フローチャート作成アドインマニュアル

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

Microsoft Word - SyngoFastView_VX57G27.doc

クラス図とシーケンス図の整合性確保 マニュアル

Field Logic, Inc. 標準モード 3D モデル作成 配置編 Field Logic, Inc. 第 1 版

PowerPoint プレゼンテーション

ARCHI Box iOS版 ヘルプ(お施主様向け)

モニタリング画面を開く にチェックを入れる またはメニュー画面か らモニタリングアイコンをクリックします 全画面表示 設定画面 録画再生画面表示ページサーバー カメラツリ左からシングル / 4/ 6/ 8/ 9/ 10/ 12 分割画面です ここをクリックすると 16/ 20( )/ 2

2/17 目次 I. はじめに... 3 II. 操作手順 (Controlの場合) 断面の作成 寸法測定 異なる断面間の寸法測定 繰り返し処理...11 III. 操作手順 (Verifyの場合) 断面の作成... 1

第2章 Macintoshの基本操作

プログラミング基礎I(再)

MMD4Mecanim の登録 解凍したフォルダにある MMD4Mecanim.unitypackage をダブルクリックして Unity への登録 ( インポート ) を実行します MMD4Mecanim.unitypackage をダブルクリック または ドラッグ & ドロップでも登録可能 Im

2016 VOCALOID Group, Yamaha Corporation 2

3Dプリンタ用CADソフト Autodesk Meshmixer入門編[日本語版]

多機種のAndroid(TM)端末でテストシナリオを流用可能に - Androidアプリケーション自動テストツール QCWing for Android Ver.2.7 -

XNA Framework

EnSight 10.1の新機能

目次 クイックスタート ( 無料版の Unity で利用する場合 )... 3 クイックスタート (Unity Pro で利用する場合 )...6 Chroma Key Compositing( クロマキー合成 )... 9 MascotMakerFree クラスリファレンス Masco

PowerPoint プレゼンテーション

NCVIEW / NCVIEW Neo 2017 リリースノート A) 新機能概要 B) 主な改善 修正内容 (NCVIEW / NCVIEW Neo 2016 以降の改善 修正内容が記載されています ) C) 対応済みサポート受付番号一覧 D) 動作環境 以下文中の () に記載された番号はサポー

スライド 1

Limedio 書誌を登録 コンテンツ関連付け制御システム 収録スケジュールを登録 カメラで収録 自動収録手動収録 授業 映像変換用端末 編集システムに映像取込 AIC に変換 ハイビジョン (H.264) に変換 RealMedia に変換 スライドを登録 (MPMeisterRocket) コン

VioStor-Pro+シリーズ 操作マニュアル

情報システム設計論II ユーザインタフェース(1)

StarBoard Software ユーザーズガイド 目次 1. 教育用端末 (imac) の起動と,StarBoard Software の起動 電子黒板の起動 電子黒板の終了 StarBoard Software の使い方..

SysMLに関する操作方法について

C#の基本2 ~プログラムの制御構造~

Rational Roseモデルの移行 マニュアル

<4D F736F F D E7382CC944D8AC28BAB91CE8DF4955D89BF B838B91808DEC B A B D8D A2E646F63>

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

情報システム工学特論 Web アプリの作成により 次のことを学んでもらいます 1 無料ソフトウェアの活用 2 無料のソフトウェア開発ツール Runstant Lite 3 Web ブラウザのゲームライブラリ phina.js 4 Web アプリとは 無料ソフトウェアの活用 無料ソフトウェアとは イン


QLabセットアップガイド for CL/QL/TFシリーズ

簡単ラベル作成 印刷マニュアル

3. 文字の入力 文字 ボタンをクリックします 文字入力したい範囲をドラックし 文字枠を作成します 文字を入力します この作業を繰り返します マウスポインタの形 4. 文字枠のサイズ変更 拡大 ボタンをクリックします 大きさを変えたい文字枠をクリックします マウスポインタを文字枠の右下のハンドル (

Java言語 第1回

イ 一太郎 1 JS 数式作成ツールを起動する 数式を挿入したい位置にカーソルを合わせる [ 挿入 -オブジェクト枠- 作成 ] の [ 新規作成 ] シートを選択する [ オブジェクトの種類 ] から JS 数式作成ツールを選択して [OK] する ( 表示 - ツールボックス - 表示切替 -

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

JavaプログラミングⅠ

基本作図・編集

3/7 マイグレーション開発方針 顧客名 0 作成者 根岸正 < プログラム移行方針 > システム名称 A-VX システムマイグレーション作成日 2015/09/01 < COBOL 資産のプログラム移行 > COBOLソース ( メインとCOPYLIB) を入力としてSCC 言語変換ツールにてVB

Javaの作成の前に

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

目次 1. はじめに : 高次脳機能障害と仮想現実 遂行機能障害とその評価法 BADS 遂行機能障害 遂行機能評価法 BADS 動物園地図検査 目的 使用技術 Unity.

Transcription:

平成 28 年度卒業研究中間レポート 遂行機能障害者リハビリ用 VR アプリケーションの制作 近畿大学工学部情報学科 学籍番号 1310990042 片山大飛

目次 1. 研究の背景と目的 1.1. 背景と目的 1.2.VR について 1.2.1.VR とは 1.2.2.VR と AR の違い 1.3.Unity とは 2. 研究計画 2.1. 役割分担 3. 現状 3.1. 基本操作を理解するため作成したゲームアプリ 3.1.1.Unity 画面構成 3.1.2. ステージの作成 3.1.3. プレイヤーの移動 3.1.4. ランダム移動と衝突判定 3.1.5. 使用した主なイベント関数 3.2. マウスによるオブジェクトのドラッグ移動 3.3. オブジェクトの自動位置調整 4. 今後の課題 5. 参考, 引用 1

1. 研究の背景と目的 1.1. 背景と目的現在 VR は, 医療, 自動車, 教育, 宇宙産業など様々な業界で活用されている. 例えば, 医療では,VR を診療療法で用いる [1]. ルイスヴィル大学の精神科医は, 社会不安や飛行恐怖症などを持つ患者の認知行動療法に VR を利用する. その一つに演説のシミュレーションがあり, これは患者がさまざまな規模の聴衆にさまざまな仮想会場で, まず気が散る要因は加えず話し, 段階的に携帯電話の音や, 聴衆からの野次などの注意をそらす潜在的要因を追加していき克服するものである. 自動車では,VR を試作車の確認で用いる [2]. 半導体メーカーの NVIDIA は, 試作車の確認を VR で行えば, 場所の制約から解放されると謳っている. 現在自動車メーカーは, 試作車をコンピューター上で作っており, その試作車の品質を確認するため大型のディスプレイを導入し評価を行っているが, そうしたディスプレイは一部のオフィスにしか導入されていないので, そこに行かなければならない. そこで, それを VR ヘッドマウントディスプレイ (HMD) に置き換えれば, 没入感は大型のディスプレイと変わらないので, 場所を選ばず試作車の評価ができるわけである. 宇宙産業では,VR をトレーニングで用いる [3]. 米航空宇宙局 (NASA) では宇宙飛行士育成プログラムにおいて,VR を利用している. このトレーニングは, 無重力状態の国際宇宙ステーションで働く難しさを体験するもので, 現実世界とヴァーチャルの世界を同期させ, 壁のネジを締める動作や, 人から荷物を受け取ることも可能になっている. さらに,NASA は現在 OnSight という火星表面をシミュレートするソフトウェアを開発し, 実用化を目指している. これは, 探査機が火星でどのように振る舞うかをシミュレーションし, 探査機の遠隔操作でメリットを生むものである. 英国の投資銀行 Digi-Capital の調査によると,2016 年における,VR と AR を合わせた世界ビジネス規模は, 約 50 億ドルとなる見通しで,2020 年には 1500 億ドル規模に拡大する. また Digi- Capital によると, ここ最近はテクノロジー企業が VR,AR の分野に積極的に投資を行っている [4]. 例えば, 米 Facebook は,2014 年に VR のヘッドマウントディスプレイを手掛ける米 OculusVR を買収したことや, 米 Google は AR 技術を使った Google Glass を手掛けているほか,VR,AR の新興企業米 Magic Leap に出資していることがあげられる. 本研究では, 近年注目を集めている VR 向けアプリを Unity というエンジンで開発することを目的とする. 1.2.VR について 1.2.1.VR とは VR は virtual reality( バーチャルリアリティ ) の略で, 仮想現実や, 人工現実感とも言われている.virtual とは, 日本語では 仮想, 現実ではない別の空間 という意味で,reality とは, 日本語では 現実, 私たちが経験するもの という意味である. VR は, 人間の感覚器官に働きかけ, 現実のように感じられる環境を人工的に創り出す技術である. 1.2.2.VR と AR の違い VR が目の前にある実際の場面から離れ, 完全にデジタル世界の中に身を置くという技術であるのに対し AR(Augmented Reality) は, 目の前の現実の場面にデジタル情報を重ね合わせ表示する点である. 1.3.Unity とは Unity とは, 総合開発環境 を内蔵し, 複数のプラットフォームに対応したゲームエンジンである. ゲームエンジンというのは, コンピュータゲームのソフトウェアの主要な処理を代行するソフトウェアの総称である.Unity はオブジェクトに物理演算を付加し, プレイしながらリアルタイムで編集できる. スクリプトを書く際のプログラミング言語には C#,UnityScript,Boo を使用することができる.UnityScript は JavaScript を元にモデル化された Unity 独自設計の言語になっている. 本研究は C# を学習するために C# を使用しプログラミングする. 2

2.研究計画 5月 Unity でのアプリ作成の流れを Unity5入門 を読み理解 6月 Metasequoia を使用し 3D モデル作成 7月 Unity でアプリを作成し C#のイベント関数を学習 8月5日 卒業研究中間レポートの提出 8月20日 21日 大阪キャンパスのオープンキャンパスで使用する AR アプリの完成 9月 遂行機能障害の調査と BADS の動物園地図検査のアプリケーション開発開始 1月 卒論制作 2月 卒業研究発表会 2.1.役割分担 Unity の開発を藤井と協力し研究を進めている 私は VR 向けアプリケーション 藤井は AR 向 けのアプリケーションの開発を目指している 週一回のミーティングで技術や情報を発表するこ とで 直面している問題をアドバイスし合い課題を解決している 例としては 私は Unity でシ ーン移動した際のオブジェクトの位置情報の保持 継承に悩んでいたが 藤井の研究課程で得た 知識を基にアドバイスしてくれ 無事シーン移動した際でも位置情報が失われないスクリプトを 完成 また 藤井が AR で表示させたモデルの移動のスクリプトに悩んでいたが 私のアドバイ スで無事解決し AR で表示させたモデルが移動するスクリプトを完成させた 3.現状 はじめに Unity の基本機能で簡単なゲームを作りながら unity エディタの簡単な使い方を理解し 目 標とするアプリを開発するため 知識を徐々につけている [5] 3.1.基本操作を理解するため作成したゲームアプリ Unity の基本機能 使い方 スクリプトについて理解することを目的とし ボールを転がして 黒い球から逃げながら赤い球を捕まえるゲームアプリを作成した 3.1.1Unity 画面構成 Unity を起動すると以下の図1のような画面が表示される 図1 Unity のインターフェース Unity の画面は図1の番号のように5つに分けられる ① シーンビューといい 制作中のゲーム世界が表示され 自由な位置 角度から眺めることができる 3

2 ゲームビューといい, カメラを通して見えるゲーム画面が映っている. 実際にゲームを作成して出力した際にゲームがどう見えるのかをこのビューから確認することができる. 3 インスペクタービューといい, シーン内で選択中のオブジェクトが持つ属性を表示し, 編集することができる. 属性には座標やメッシュといった見た目上のものから, 衝突判定や物理制御に関するパラメータなどもある. 4 ヒエラルキービューといい, 現在選択されているシーン内に配置されているすべてのオブジェクトが格納されている. 各オブジェクトの階層構造を確認, 編集することができる. モデルや図形などの素材をヒエラルキービュー内に追加することでシーン内にオブジェクトとして配置することもできる. 5 プロジェクトブラウザといい, 制作中のプロジェクトに含まれるシーン, スクリプト, グラフィック, サウンドなどのデータがファイル単位で表示される. 3.1.2. ステージの作成まず, 地面を作成する.Hierarchy View の Create から 3D Object > Plane を作成する. 作成した Plane の Position を (0,0,0) に,Scale を (2,1,2) にする. 次に, 壁を作成する.Hierarchy View の Create から 3D Object > Cube を作成し, 作成した Cube の Position を (-0.5,0.5,-9.5) に,Scale を (19,1,1) にする. 作成した Cube をコピーし,Position と,Rotation を変え壁として配置する. 図 2 Plane と Cube の作成 3.1.3. プレイヤーの移動まず操作するプレイヤーを作成する. 今回はボールを操作するので,Hierarchy View の Create から 3D Object > Sphere を作成する. 次に物理演算のコンポーネントを追加する. コンポーネントとはオブジェクトを構成する部品のことであり, コンポーネントにより稼働させ, 他のオブジェクトに影響をあたえることができる. まず,Sphere を選択し,Inspector View の Add Component から Physics > Rigidbody を追加する. これにより物理演算の機能が追加され,Sphere オブジェクトが落下する. 最後にプレイヤーである Sphere を操作するためのコンポーネントを作成する.Unity の標準で用意されていないものは自身で作成する必要があり,C# や UnityScript で記述できる. まず,Sphere を選択し,Inspector View の Add Component から New Script を選択する. 本研究では C# を学習するため,New Script から CSharp を選択し Create する. 以下 Sphere にアタッチしたスクリプト using UnityEngine; using System.Collections; public class PlayerMove : MonoBehaviour 4

//物理演算で動く度に呼ばれる処理 void FixedUpdate() // 入力をxとzに代入 float x = Input.GetAxis("Horizontal"); //Horizontalは左右矢印キー float z = Input.GetAxis("Vertical"); //上下矢印キー Rigidbody rigidbody = GetComponent<Rigidbody>(); //押す力を上昇 7倍 x = x * 7; z = z * 7; // rigidbodyのx軸 横 とz軸 奥 に力を加える rigidbody.addforce(x, 0, z); これにより Sphere はキーボードの上下左右キーを押すことで その方向へ力が加わり操作が可能とな る 3.1.4.ランダム移動と衝突判定 前述したプレイヤー以外の黒と赤の球はランダムで移動し 衝突したときにイベントを起こすことにした 以下ランダム移動のスクリプト void FixedUpdate() float x = Random.value; //x軸 ランダム 0 1.0の値 float z = Random.value; //z軸 Rigidbody rigidbody = GetComponent<Rigidbody>(); x = (x * 10-5) * 3; z = (z * 10-5) * 3; rigidbody.addforce(x, 0, z); Random.value で返されるのは0から1.0の値なので(x * 10-5) の計算で-5から5の範囲にしている 以下衝突判定のスクリプト void OnCollisionEnter(Collision hit) if (hit.gameobject.comparetag("player")) イベント; これは Player という名前のタグがついたオブジェクトと衝突したときにイベントを起こすスク リプトである 3.1.5.使用した主なイベント関数 現在までに使用した Unity のイベント関数は Start Update FixedUpdate Awake OnMouse OnColliosionEnter OnDestroy である Start は Update が呼び出される前の フレームで呼び出される関数であり スクリプト内で1回のみ呼び出される Update は1frame 画像の描画単位 ごとに呼ばれる ただし 描画の間隔は処理能力に依存するため一定ではな い FixedUpdate は 固定のインターバルで呼ばれる関数で デフォルトでは0.02秒毎に呼ば れる Awake は スクリプトがロードされたときに呼ばれる OnMouse はマウスによって 5

呼び出される. 現時点では OnMouseDown, OnMouseDrag, OnMouseUp を使用したことがあり, 順に, マウスの左ボタンが押されているとき, マウスをドラッグしたとき, マウスの左ボタンが押され戻るとき呼ばれる. OnColliosionEnter は,3.1.4 の衝突判定のスクリプトのように,OnColliosionEnter をアタッチしたオブジェクトが指定したあたり判定を持つオブジェクトに衝突したときに呼び出される. 図 3 はイベント関数の呼び出し順をフローチャートにしたもので, このフローチャートから, 使用した 7 つのイベント関数を呼び出される順に並べると,Awake Start FixedUpdate OnColliosionEnter OnMouse Update OnDestroy となる. 図 3 関数呼び出し順フローチャート [6] 6

3.2. マウスによるオブジェクトのドラッグ移動下記アタッチしたスクリプト using UnityEngine; using System.Collections; public class MouseDrag : MonoBehaviour //Vector3 は, 与えられた x,y,z 成分で新規のベクトルを作成する private Vector3 screenpoint; private Vector3 offset; void OnMouseDown() // カメラから見たオブジェクトの現在位置を画面位置座標に変換 screenpoint = Camera.main.WorldToScreenPoint(transform.position); void OnMouseDrag() // ドラッグ時のマウス位置をシーン上の 3D 空間の座標に変換する Vector3 currentscreenpoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenpoint.z); Vector3 currentposition = Camera.main.ScreenToWorldPoint(currentScreenPoint); // オブジェクトの位置を変更する transform.position = currentposition; オブジェクトをクリックしたときのスクリーン上のマウスの座標を,Unity の世界座標に変換し, ドラッグしたときにマウスにオブジェクトがついていくように移動させている. つまり WorldToScreenPoint は, ワールド座標をスクリーン座標に変換している.Unity のワールド座標とは,3D 空間内の座標のことであり, スクリーン座標とは, 解像度と一致し, 画面左上が0である. このスクリプトにある transform.position は,transform.position =; の形で, 代入した位置座標へアタッチしたオブジェクトを移動させる. 3.3. オブジェクトの自動位置調整マウスのドラッグでモデルを移動させるものを, 指定の範囲内にモデルが移動すると自動で位置を修正するようにする.3.2 のスクリプトに private static Vector3 pos; と,void OnMouseUp() を追加し,OnMouseDrop() 内に pos = currentposition; を追加する. そして void OnMouseUp() に pos の座標はオブジェクトを置いた位置の座標となるので,if 文で範囲内の座標にオブジェクトを置いた場合, 指定した場所へ移動させるとする. 下記 if 文の例 if (-0.5 <= pos.x && pos.x < 0.5) if (-0.5 <= pos.z && pos.z < 0.5) transform.position = new Vector3(0, 0, 0); if (0.5 <= pos.z && pos.z < 1.5) transform.position = new Vector3(0, 0, 1); if (1.5 <= pos.z && pos.z < 2.5) transform.position = new Vector3(0, 0, 2); 4. 今後の課題現在,BADS 遂行機能障害症候群の行動評価のうちの動物園地図検査を VR アプリにしようと考えている. 動物園地図検査は紙とペンで行っており評価することしかできない.VR すること 7

で現実に近い状態になり, 遂行機能障害の方のリハビリテーションにも効果が期待できるのではないかと考えているが, 現状分からないため, 今後, 遂行機能障害及び高次脳機能障害について調査することが必要である. 5. 参考, 引用 [1] The Wall Street Journal 治療ツールとしての仮想現実 < http://jp.wsj.com/articles/sb12416273766489574789704581260381354176842 > (2016/8/03 アクセス ) [2] Car Watch プロ向け VR が, 自動車の試作や自動車ディーラーの展示を変える <http://car.watch.impress.co.jp/docs/event_repo/gtc2016/752489.html > (2016/8/03 アクセス ) [3] mogura VR ハイブリッド リアリティによる NASA の宇宙飛行士育成プログラム.VR で宇宙の作業環境を再現. <http://www.moguravr.com/nasa-hybridreality/ > (2016/8/03 アクセス ) [4] Digi-Capital Augmented/Virtual Reality revenue forecast revised to hit $120 billion by 2020 <http://www.digi-capital.com/news/2016/01/augmentedvirtual-reality-revenue-forecast-revised-tohit-120-billion-by-2020/#.v53tamzsi0t> (2016/7/27 アクセス ) [5] 荒川巧也 浅野祐一 Unity5 入門 - 最新開発環境による簡単 3D&2D ゲーム制作 SB クリエイティブ出版 (2015) [6] Unity Unity マニュアル <http://docs.unity3d.com/ja/current/manual/index.html> (2016/8/2 アクセス ) 8