SlideShare a Scribd company logo
1 of 53
Download to read offline
1. ゼロから始めるVR開発
2. VRテンプレートの触り方
• 手の実装
• 物をつかむ、はなす
3. おまけ
Agenda
大学生でも・・・
VR開発がしたい!!
(したくない?)
実はUE4でのVR開発・・・
超簡単!!!
ハイエンド型VR(Oculus,VIVE etc…)
PCにVRをつなげて
プレイからVRプレビュー
を押すだけ!!
超簡単!!!
スマホVR
PluginからGoogleVRもしくはSimpleHMD
をチェックを入れるだけ!!
スマホに書き出す前に
超簡単!!!
あれ、ハッカソンではMobileVRSampleなんていう
よくわからないもの使って色々めんどくさかったような…
スマホVR
• 実はあれ…
WindowsだけでIOS開発をしていたから!!
スマホVR
PluginなどのC++ファイルはWindowsでは
IOS向けにビルドされない…
解決策
1.WindowsのプロジェクトをMacでリモートビルド
→https://soramame-games.com/2018/05/ios-win-cpp
2.Mac単体で開発
要するに本格的にIOS開発したいなら…
Macを買え!!!
VR開発は簡単なのは分かった…
でもVR開発するなら
ハイエンドで物をつかんだりしたい!!
(したくない?)
VRTemplate
• UE4には標準でVRのテンプレートがある!!
超便利!!!
VRTemplate
• 今回説明するBP
VRTemplate
• 今回説明するBP
実はこいつらがちょいやっかい…
しかしこれらを理解すると…
• BPインターフェイス
• キャスト時のオーバーヘッドを減らす
• BPの関数化・マクロ化の大切さetc…
→複数人や、大規模な開発をする上で大切な機能が学べる
超大事!!!
これらは…
VRTemplate
• とりあえずこいつらのBP見たらいけるでしょ…!!
ちょっと何言ってるかわからない
VRTemplate
• UE4JP公式でやっていた生放送!おかずさんとロブさんが解説開発!
→https://www.youtube.com/watch?v=lvXkbUAzjwk&t=2207s
動画を見れば全て納得!!!
とりあえず…
ご清聴ありがとうございました
っていうのは嘘で…
手の実装
• 実はこの2つのBPは名前は似てるけど、全く違い&どちらも必要
手の実装
• MotionControllerPawn
→VRの体(手以外の部分を主に実装)
→こいつが司令塔のように動く
→移動するときもこいつを動かしてやればいい!
手の実装
• BP_MotionController
→VRの右手だけ
→標準でものを掴む放すが書いている
→VRならではのテレポートも書かれている!
あれ、これだと右手しかないし
別々のBPに書いてるからどう実装するんだ??
手の実装
• MotionControllerPawn
手の実装
• 簡単に言うと
→BP_MotionControllerを2個スポーン
させ右手と左手をEnumで設定
→それぞれを変数に格納
→MotionControllerPawnに
アタッチ(親子付)
なんでいったん変数に置くのは後程解説
手の握る・放す
• コードはすごく短い
→インプットが取れたら関数を呼び出す
→握るときは「GrabActor」関数
→放すときは「ReleaseActor」関数
手の握る・放す
• GrabActor
→近くにActorがあるかを調べる
→あれば変数に保持して,PickUpのメッセージを送る
→この関数は手の実装なので?
手の握る・放す
• ReleaseActor
→Actorを持っているかを判定
→あればDropのメッセージを送る
手の握る・放す
• BP_PickUpCube
→コードは短い!
→PickUpはメッセージを受け取れば
手にAttach(親子付け)
→Dropはメッセージを受け取れば
手にDetach(親子付解除)
君も立派なVR開発者に!!!
(なれるかもね…)
これらを応用すれば
おまけ
そういえば最初こんなこと言ってたような
• BPインターフェイス
• キャスト時のオーバーヘッドを減らす
• BPの関数化・マクロ化の大切さetc…
→複数人や、大規模な開発をする上で大切な機能が学べる
複数人開発,大規模開発役立つこと(やってほしいこと)
BPインターフェイス
• Castや継承を使わずに必要な情報をクラス間やり取りができる
• Javaのインターフェイスと似ているのは多重継承と,ロジックの追加
• クラスからメッセージを送る
• インターフェイスを実装しているクラスだけにメッセージが送られる
• まあメールとか、PCとマウスみたいな関係
BPインターフェイス
• 重要なのはカプセル化(知らない人はググって)
• Class間ですべての情報を渡していては処理速度の低下,コンパイ
ル速度の低下などなど
• 一対一ではCastでもよいが,一対複数の時に使うべき
• 例えば手と握る物などなど
BPインターフェイス
• 重要なのはカプセル化(知らない人はググって)
• Class間ですべての情報を渡していては処理速度の低下,コンパイ
ル速度の低下などなど
• 一対一ではCastでもよいが,一対複数の時に使うべき
• 例えば手と握る物などなど
メッセージ
キャスト時のオーバーヘッドを減らす
• CastはClassの全情報を持ってくるので重い
→ オーバーヘッドの増加
→Tickにつなげるとかは特にダメ
• ただしCastは便利だからどうしてもつかいたい…
• そういうときはこういうプログラムを書こう!
キャスト時のオーバーヘッドを減らす
• 一旦変数に格納、それ以降は通さないようにする
BPの関数化・マクロ化
• BPは開発が大規模・複数人になればなるほどスパゲッティ化
が進む
• 開発効率の低下、バグの増加につながる
BPの関数化・マクロ化
• 機能をひとまとめにするために関数化・マクロ化を行うべき
• 他のクラスでも参照するときは関数などいろいろ違いがあるの
で、見極めて使うべし
• それもできない人はせめてグラフの折り畳みをやって…
→http://katze.hatenablog.jp/entry/2016/12/18/000000
最後に…
Class運用などでこういった
ことはとても大切です
一人での開発でも確実に
効率がよくなります
だからみんなスタイルガイド
をしっかり読んで開発してね
UE4・Re:ゼロから始めるVR開発

More Related Content

What's hot

活動報告7 d&dなディレクティブを作る-
活動報告7  d&dなディレクティブを作る-活動報告7  d&dなディレクティブを作る-
活動報告7 d&dなディレクティブを作る-vx-pc-club
 
ここまで来た!2017年 Web VRでできること
ここまで来た!2017年 Web VRでできることここまで来た!2017年 Web VRでできること
ここまで来た!2017年 Web VRでできることJun Ito
 
Visual Studio といえば 当然 Visual Studio for Mac だよね!
Visual Studio といえば当然 Visual Studio for Mac だよね!Visual Studio といえば当然 Visual Studio for Mac だよね!
Visual Studio といえば 当然 Visual Studio for Mac だよね!Tomohiro Suzuki
 
Vagrant でお手軽開発環境
Vagrant でお手軽開発環境Vagrant でお手軽開発環境
Vagrant でお手軽開発環境Hideki MACHIDA
 
MOONBlockでプログラミング体験
MOONBlockでプログラミング体験MOONBlockでプログラミング体験
MOONBlockでプログラミング体験Jun Shimura
 
IEとメモ帳でかんたんゲーム開発
IEとメモ帳でかんたんゲーム開発IEとメモ帳でかんたんゲーム開発
IEとメモ帳でかんたんゲーム開発amusementcreators
 
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」Toshio Ehara
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability SeminarVisso株式会社
 
UnityとTVMLはじめました。
UnityとTVMLはじめました。UnityとTVMLはじめました。
UnityとTVMLはじめました。Michiyo Chuman
 
ハッカソンで使い勝手の良さそうな Microsoft の AI 系のサービス紹介
ハッカソンで使い勝手の良さそうな  Microsoft の AI 系のサービス紹介ハッカソンで使い勝手の良さそうな  Microsoft の AI 系のサービス紹介
ハッカソンで使い勝手の良さそうな Microsoft の AI 系のサービス紹介Madoka Chiyoda
 
プログラマのためのPC自動化
プログラマのためのPC自動化プログラマのためのPC自動化
プログラマのためのPC自動化高見 知英
 
StoryboardでUIを使いまわす
StoryboardでUIを使いまわすStoryboardでUIを使いまわす
StoryboardでUIを使いまわすMasaki Fuke
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift PlaygroundsへKinkumaDesign
 
A-Frameコンポーネントを公開しよう
A-Frameコンポーネントを公開しようA-Frameコンポーネントを公開しよう
A-Frameコンポーネントを公開しようJun Ito
 

What's hot (16)

活動報告7 d&dなディレクティブを作る-
活動報告7  d&dなディレクティブを作る-活動報告7  d&dなディレクティブを作る-
活動報告7 d&dなディレクティブを作る-
 
ここまで来た!2017年 Web VRでできること
ここまで来た!2017年 Web VRでできることここまで来た!2017年 Web VRでできること
ここまで来た!2017年 Web VRでできること
 
Visual Studio といえば 当然 Visual Studio for Mac だよね!
Visual Studio といえば当然 Visual Studio for Mac だよね!Visual Studio といえば当然 Visual Studio for Mac だよね!
Visual Studio といえば 当然 Visual Studio for Mac だよね!
 
Vagrant でお手軽開発環境
Vagrant でお手軽開発環境Vagrant でお手軽開発環境
Vagrant でお手軽開発環境
 
MOONBlockでプログラミング体験
MOONBlockでプログラミング体験MOONBlockでプログラミング体験
MOONBlockでプログラミング体験
 
IEとメモ帳でかんたんゲーム開発
IEとメモ帳でかんたんゲーム開発IEとメモ帳でかんたんゲーム開発
IEとメモ帳でかんたんゲーム開発
 
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
iPhone開発者初心者向け資料「XcodeのStoryboardで画面を作ろう!」
 
PHP with Visual Studio
PHP with Visual StudioPHP with Visual Studio
PHP with Visual Studio
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 
UnityとTVMLはじめました。
UnityとTVMLはじめました。UnityとTVMLはじめました。
UnityとTVMLはじめました。
 
ハッカソンで使い勝手の良さそうな Microsoft の AI 系のサービス紹介
ハッカソンで使い勝手の良さそうな  Microsoft の AI 系のサービス紹介ハッカソンで使い勝手の良さそうな  Microsoft の AI 系のサービス紹介
ハッカソンで使い勝手の良さそうな Microsoft の AI 系のサービス紹介
 
プログラマのためのPC自動化
プログラマのためのPC自動化プログラマのためのPC自動化
プログラマのためのPC自動化
 
Xamarin の救世主 Unity !
Xamarin の救世主 Unity !Xamarin の救世主 Unity !
Xamarin の救世主 Unity !
 
StoryboardでUIを使いまわす
StoryboardでUIを使いまわすStoryboardでUIを使いまわす
StoryboardでUIを使いまわす
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへ
 
A-Frameコンポーネントを公開しよう
A-Frameコンポーネントを公開しようA-Frameコンポーネントを公開しよう
A-Frameコンポーネントを公開しよう
 

Similar to UE4・Re:ゼロから始めるVR開発

今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜Kazuya Hiruma
 
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13Hiromichi Yamada
 
CLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリ
CLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリCLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリ
CLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリdecode2016
 
Oculus rift入門
Oculus rift入門Oculus rift入門
Oculus rift入門hima_zinn
 
Unityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツUnityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツinfinite_loop
 
20160902 unity勉強会発表資料
20160902 unity勉強会発表資料20160902 unity勉強会発表資料
20160902 unity勉強会発表資料WheetTweet
 
春の勉強会 2015
春の勉強会 2015 春の勉強会 2015
春の勉強会 2015 Ryo Okuno
 
デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」
デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」
デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」Naoji Taniguchi
 
Unityを使ったVRアプリ作成入門 ABCD2015金沢編
Unityを使ったVRアプリ作成入門 ABCD2015金沢編Unityを使ったVRアプリ作成入門 ABCD2015金沢編
Unityを使ったVRアプリ作成入門 ABCD2015金沢編kinneko
 
プログラムで映像をつくるとは?? ~超入門編~
プログラムで映像をつくるとは?? ~超入門編~プログラムで映像をつくるとは?? ~超入門編~
プログラムで映像をつくるとは?? ~超入門編~Ryo Kanda
 
Google vrからはじめるdaydreamへの道
Google vrからはじめるdaydreamへの道Google vrからはじめるdaydreamへの道
Google vrからはじめるdaydreamへの道shimada tatsuya
 
VRでCGの世界に行ってみる!2017
VRでCGの世界に行ってみる!2017VRでCGの世界に行ってみる!2017
VRでCGの世界に行ってみる!2017Haruto Watanabe
 
内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサーKaoru NAKAMURA
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけようKouji Matsui
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたaxsh co., LTD.
 

Similar to UE4・Re:ゼロから始めるVR開発 (20)

今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
今すぐ始められるモバイルVR〜あなたも今日からVRエンジニア〜
 
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
 
CLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリ
CLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリCLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリ
CLT-014_ゲーム開発だけじゃない! Unity で作る UWP アプリ
 
Oculus rift入門
Oculus rift入門Oculus rift入門
Oculus rift入門
 
Unityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツUnityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツ
 
20160902 unity勉強会発表資料
20160902 unity勉強会発表資料20160902 unity勉強会発表資料
20160902 unity勉強会発表資料
 
春の勉強会 2015
春の勉強会 2015 春の勉強会 2015
春の勉強会 2015
 
デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」
デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」
デブサミ2015版「VRを使った データビジュアライゼーションの 可能性について」
 
Unityを使ったVRアプリ作成入門 ABCD2015金沢編
Unityを使ったVRアプリ作成入門 ABCD2015金沢編Unityを使ったVRアプリ作成入門 ABCD2015金沢編
Unityを使ったVRアプリ作成入門 ABCD2015金沢編
 
プログラムで映像をつくるとは?? ~超入門編~
プログラムで映像をつくるとは?? ~超入門編~プログラムで映像をつくるとは?? ~超入門編~
プログラムで映像をつくるとは?? ~超入門編~
 
200813 fgdc mandai
200813 fgdc mandai200813 fgdc mandai
200813 fgdc mandai
 
Google vrからはじめるdaydreamへの道
Google vrからはじめるdaydreamへの道Google vrからはじめるdaydreamへの道
Google vrからはじめるdaydreamへの道
 
初心者目線でIo t
初心者目線でIo t初心者目線でIo t
初心者目線でIo t
 
VRでCGの世界に行ってみる!2017
VRでCGの世界に行ってみる!2017VRでCGの世界に行ってみる!2017
VRでCGの世界に行ってみる!2017
 
内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー
 
Google Glass XE17版
Google Glass XE17版Google Glass XE17版
Google Glass XE17版
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
UE4モバイルでノンゲームコンテンツ
UE4モバイルでノンゲームコンテンツUE4モバイルでノンゲームコンテンツ
UE4モバイルでノンゲームコンテンツ
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみた
 
Herlockサービス紹介
Herlockサービス紹介Herlockサービス紹介
Herlockサービス紹介
 

UE4・Re:ゼロから始めるVR開発