Upgrade to Pro — share decks privately, control downloads, hide ads and more …

UE4でのSteamVRを使ったVRゲーム開発

 UE4でのSteamVRを使ったVRゲーム開発

UE4でSteamVRを使う際のノウハウあれこれです。LTで発表した資料の公開版です。

Fresnel

May 17, 2020
Tweet

More Decks by Fresnel

Other Decks in Programming

Transcript

  1. Who are you? HN: フレネル で活動してます (情報系M2) 最近はほとんどNeosVRにいます VRChatのワールドとか Neosの小物・ワールド作ってます

    ホントはプログラマーです 最近InDesignでDTPとかAeで動画とかの雑用ばっかだけど… ガチで職が見つからない ヤバい VR系の研究・開発で働きたい…‼ SteamVR with UE4 2 1-1 ↑最近よく使ってる有坂みとさんのメープルちゃん! かわいいからみんなも買おうね
  2. Introduction 最近は多くのAAAタイトルで採用されています  ACE COMBAT 7, Dragon Quest XI, Fortniteなどなど…

    UE4に乗り換える積極的な理由って?  ノードベースのビジュアルスクリプティング  プログラマ:挙動が可視化されるので激烈にデバッグがしやすくてうれしい  デザイナー:プログラマに頼らなくても簡単なスクリプトを自分でテストできる  C++によるプログラミングももちろん可能  UObjectを起点としたオブジェクト指向  運営(Epic)がとってもユーザフレンドリー  サブスクとかはなく、一定売上額まで全機能が無料で使える!! SteamVR with UE4 6 1-2
  3. コントローラを動かす  ビジュアリゼーション  コントローラのモデルの表示を設定できます  Display Device Modelにチェックを入れる 

    Display Model SourceをSteamVRに  Rightのコンポーネントも同様に設定しましょう UE4 with SteamVR 35 2-1
  4. SteamVR Input System  簡単にまとめると? UE4 with SteamVR 41 2-2

    Action Manifest Valve Index Oculus Rift S VIVE Pro … ゲームで使用される Interact, Cancelといったボタンや スティックのXY軸といった アクションの一覧リスト
  5. SteamVR Input System  簡単にまとめると? UE4 with SteamVR 42 2-2

    Action Manifest Valve Index Oculus Rift S VIVE Pro … Action Manifestのアクションに対して 対応するボタンを記録した コントローラバインディング
  6. SteamVR Input System  でも自分でJSONなんか書きたくないよ!!  UE4からどうやって触ればいい?  プロジェクトのインプット設定をするだけ 

    勝手にSteamVR Pluginがそこから自動生成してくれる!  試しにL/Rトリガーを割り当ててみよう! UE4 with SteamVR 44 2-2
  7. SteamVR Input System  アクションマッピングの + を押して追加  名前はとりあえずTriggerとしておきます 

    自分のVR機器に対応するトリガーのボタンを設定してください UE4 with SteamVR 47 2-2
  8. その他いろいろTips • SteamVR Inputの設定をツールバーに表示 • 二軸への対応 • Haptic Feedback •

    Skeleton Inputの取得 • デバイスIDからのデータ取得 UE4 with SteamVR 56 3
  9. 二軸への対応  少し厄介なのが、X/Yの2D値を持つスティックの扱いです  SteamVR  Vector1, 2, 3と3次元までの入力に対応 

    UE4のインプット  軸マッピングは1次元入力のみ  対応させる方法があります UE4 with SteamVR 59 3-2
  10. Haptic Feedback  コントローラを振動させたい場合…  Play Steam VR Haptic Feedback関数を呼び出す

     下図の例:トリガーを押したときにコントローラを振動 UE4 with SteamVR 61 3-3
  11. Skeleton Inputの取得  SteamVRには指の曲がり具合を取得できるSkeleton Inputが APIに用意されています  https://valvesoftware.github.io/steamvr_unity_plugin/articles/Skeleton-Input.html  記事がUnity版しかないのですが、仕組みとしてはSteamVR自体のものなので同じです

     指が取れないコントローラではボタンなどの押し具合からの推 測値、指が取れるIndexのようなコントローラでは実測値(?)  これによりコントローラの種類に依存せず、キャラクターの指 を動かすことができます UE4 with SteamVR 62 3-4
  12. 参考文献 SteamVR 用 スタンディング式カメラの設定方法 | Unreal Engine Documentation https://docs.unrealengine.com/ja/Platforms/VR/SteamVR/HowTo/StandingCamera/index.html モーション

    コントローラー コンポーネントの設定 | Unreal Engine Documentation https://docs.unrealengine.com/ja/Platforms/VR/DevelopVR/MotionController/index.html Steam VR Input System(OpenVR Action Input)についてのメモ – Qiita https://qiita.com/gpsnmeajp/items/e423c699dde7aecb25cc SteamVR Input · ValveSoftware/openvr Wiki https://github.com/ValveSoftware/openvr/wiki/SteamVR-Input SteamVR Input System の設定方法 | Unreal Engine Documentation https://docs.unrealengine.com/ja/Platforms/VR/SteamVR/HowTo/SteamVRInput/index.html Skeleton Input | SteamVR Unity Plugin https://valvesoftware.github.io/steamvr_unity_plugin/articles/Skeleton-Input.html UE4 with SteamVR 66