Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Unreal Engine VR template 解体新書
Search
NameChung
July 10, 2021
93
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unreal Engine VR template 解体新書
slide内のNotionリンク
https://www.notion.so/Unreal-Engine-Wiki-fd61f93e863e4736a10212c480c5a778
NameChung
July 10, 2021
More Decks by NameChung
See All by NameChung
Toon ShaderでShader入門してみた
namerou7716
0
110
Easy make AR with UnityMARS
namerou7716
0
71
Featured
See All Featured
A Soul's Torment
seathinner
8
3.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
Docker and Python
trallard
47
4.2k
GraphQLとの向き合い方2022年版
quramy
50
15k
Paper Plane
katiecoart
PRO
5
54k
GitHub's CSS Performance
jonrohan
1033
470k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Transcript
UE VR template 解体新書 @sketch_namerou
自己紹介 なめろう です ゲーム制作頑張ってます 今年UnityからUnreal Engineに移行しました
このLTをやるにあたった経緯 - UnityではVR開発も少ししてたからUE上での開発方法も少し気になってた - 大学でVR開発してる人は大部分がUnityなのでUEでの開発の道を拓きたかった
このLTで解説する機能 - PlayerPawn と ControllerBPの最低限の設定 - 物を掴む、放す - テレポート -
VRでのUIの設置方法 なおルームセットアップは立位のみを想定しています
重要!! ブループリントを全部載せたり変数を全部載せたりするのは絶対にぐちゃぐちゃになる ので以下のNotionにまとめました もし興味が出た場合はそちらをみていただけると少し詳しく書いてあるので Templateと併用してください https://www.notion.so/Unreal-Engine-Wiki-fd61f93e863e4736a10212c480c5a778
PlayerPawnと ControllerBPの 最低限の設定
PlayerPawn Component Parent Class: Pawn DefaultSceneRoot (Scene component) VRCameraRoot (Scene
component) VRCamera(Camera component) 特にコンポーネントの値をいじる必要はない
PlayerPawn Event Graph - Event Begin Play (UnityでいうAwake) につなぐ -
立位の場合Originを EyeLevelにする (ルームスケールの時は Floor Level)
ControllerBP Component Parent Class : Actor DefaultSceneRoot(Scene component) MotionController(MotionController component)
HandMesh(Skeletal Mesh Component) (コントローラーそのもののモデルを使う場合不要)
ControllerBP Construction Script Spawn時に設定したHandTypeを MotionSourceに設定してそれぞれの コントローラーに連動するようにする
ControllerBPの生成 - Controller BP上で EController Hand Typeの変数 HandTypeを作っておく - PlayerPawnのEvent
Graphで生成す る この時に必ずHandTypeを指定する - AttachedActorToComponentで VRCameraRootにAttachしておく
ControllerBP EventGraph Event Begin Play Spawn時に設定したHandTypeに合 わせてZスケールを-1にして モデルを反転させる
物を掴む、放す
GrabとRelease 以下の四つをいじる必要があります。 - PlayerPawn InputActionの実装 - ControllerBP 掴む物との衝突判定と関数呼び出し - Interface(new!)
掴めるか否かの判定用に作る - GrabableObjectBP(new!) Interfaceが実装されたオブジェクト
GrabとRelease実装概略 1. コントローラーのコリジョン内でインターフェイスを実装している オブジェクトを見つける 2. それぞれとの距離を求め一番近い物を取得する 3. ボタンを押したときにInputEventからコントローラーにそのオブジェクトをAttachする (一時的に子の状態にする) 4.
ボタンを放したときにInputEventからオブジェクトをDetachする
ControllerBP Component - 触れているオブジェクトを判定したいので HandMesh下にSphereCollisionを追加します。 - コントローラー用に大きさは小さくします。
GrabableObjectBP Component Parent Class: Static Mesh Actor 投げた後バウンスさせたいので static mesh
componentの設定は右のよ うにします
GrabableObjectにInterfaceを実装する - ClassSettingsから実装したい Interfaceを追加する - MyBluePrintsのInterfaceに Interfaceに登録してある関数が追 加されているので Implement eventからEvent
Graph に追加して実装する
Teleport
TemplateのTeleport - 多数の変数と関数が使用されているのでぱっと見分かりづらい しかし分離してみると以下の二つに分けることが出来る - テレポートする地点の計算とテレポートの実行 - テレポートする地点の可視化とそれっぽい軌道の可視化 またTemplateのTeleportは少し特殊な仕様なのにも注意
Teleport地点の計算 1. コントローラーの先から投擲シミュレーションをして落ちる地点を計算します 2. NavMeshBolume上の地点を取得します 3. 既存で用意されているTeleport関数でその地点へテレポートします またテレポートする際にコントローラーのトラックパッドの押している位置から テレポート後の方向も変えることが出来る計算が実装されています。
テレポート軌道と地点の可視化 軌道 1. テレポート地点の導出で使用した軌跡上にSpline pointを設置してカーブを作りま す。 2. 1で作ったカーブに良い感じのメッシュを取り付ける テレポート地点 1.
テレポート地点の導出で求めた地点を良い感じの地点のメッシュにセットします
おまけ VRでのUI設置方法
VRでのUI設置方法 - Add viewportだと上手くいかない - WidgetとそのWidgetをコンポーネントに持つブループリントを作る - ブループリントを設置する またカメラに常時表示させたいUIはPlayerPawnに直接Widgetコンポーネントを付けて 場所を良い感じにする
Widget上での位置の編集はあまり意味をなさなそう (Anchorとかは重要かも)
参考になれば幸いです!