Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
Untiy VR
愛迪斯科技 技術工程師 紀潔嵐 Kuma [email protected]
Vive 介紹
Vive 介紹
Vive 介紹
Vive 介紹
Steam VR
• 透過Steam偵測Vive,所以透過Steam VR Plugin套件製作 • 可透過Asset Store即可下載Steam VR Plugin
Steam VR
• 匯入Steam VR Plugin後,會自動跳出建議設定的選項,選擇『Accept All』即可
Steam VR
• 透過套件中的測試場景,可測試Unity是否已經與Vive做連結
測試成功: 1.可看見VR的視野 2.可看見雙手的手把
Steam VR
• 在Steam VR Plugin中有三個重要的Prefab,分別是[CameraRig]、[Status]、[SteamVR]
Steam VR
• [CameraRig] – Vive的房間設定
VR攝影機
雙手把手(含模型)
在Unity中模擬Vive在真實環境中的空間
Steam VR
• [Status]– Vive的各種狀態設定
可直接以文字告知
各種狀態
Steam VR
• [SteamVR]– Vive的整體設定
追蹤空間 – 可設定站、坐姿
VRTK
• 由第三方所開發的免費操作套件 • 可透過Asset Store即可下載VRTK - SteamVR Unity Toolkit
VRTK
• VRTK 中提供了各種不同的基礎功能 – 可在Examples資料夾看到個功能的範例場景。
VRTK
• 001_CameraRig_VR_PlayArea 環境 – 基本設定
房間環境 大小
VRTK
• 002_Controller_Events 手把 – 控制事件
按鈕事件 對應按鈕
VRTK
• 003_Controller_SimplePointer 手把 – 簡易的射線觸碰
針對射線產生、辨識
按鈕的對應事件
取用 移動距離的設定
VRTK
• 004_CameraRig_BasicTeleport 環境 – 平行射線的瞬間移動
環境移動的資訊
※手把 – 簡易的射線資訊(003)
VRTK
• 005_Controller_BasicObjectGrabbing 手把 – 觸碰、抓取物件
手把上的觸碰資訊
VRTK
• 005_Controller_BasicObjectGrabbing 手把 – 觸碰、抓取物件
觸碰物的資訊
含有碰撞體
VRTK
• 006_Controller_UsingADoor 手把 – 開關門(門朝內、朝外)
手把上的觸碰資訊
VRTK
• 007_CameraRig_HeightAdjustTeleport 環境 – 有高度的瞬間移動
有高度的移動資訊
※手把 – 簡易的射線資訊(003)
VRTK
• 008_Controller_UsingAGrabbedObject 手把 – 啟動操作
手把上的觸碰資訊
VRTK
• 008_Controller_UsingAGrabbedObject 手把 – 啟動操作
互動物件身上的互動腳本,均取用VRTK_InteractableObject 的功能
VRTK
• 009_Controller_BezierPointer 環境 – 貝茲曲線移動
有高度的移動資訊
貝茲曲線的移動,可朝高處移動
VRTK
• 009_Controller_BezierPointer 環境 – 貝茲曲線移動
設定貝茲曲線的計算
移動距離的設定
VRTK
• 010_CameraRig_TerrainTeleporting 環境 – 針對地形起伏的移動
• 可在Terrain上做移動,同【007_CameraRig_HeightAdjustTeleport】的設定
VRTK
• 011_Camera_HeadSetCollisionFading 攝影機 – 針對攝影機觸碰物件時的視野
VRTK
• 012_Controller_PointerWithAreaCollision 貝茲曲線移動(環境的範圍)
同【009】的腳本,僅差異在設定
VRTK
• 013_Controller_UsingAndGrabbingMultipleObjects 使用跟拿取 多樣物件
同【008】的手把腳本
手把上的觸碰資訊
VRTK
• 013_Controller_UsingAndGrabbingMultipleObjects 使用跟拿取 多樣物件
同【008】的腳本,只有設定不同
啟動使用的條件
VRTK
• 014_Controller_SnappingObjectsOnGrab 把手 – 取物方式
同【008】的腳本,只有設定不同
限制物件在手把上的位置
VRTK
• 015_Controller_TouchpadAxisControl 把手 – 碰觸面板的操作
記錄面板的座標
控制物件移動
VRTK
• 016_Controller_HapticRumble 把手 – 碰撞分解物件
拿取的物件
VRTK
• 016_Controller_HapticRumble 把手 – 碰撞分解物件
被分解的物件 腳本設定
VRTK
• 017_CameraRig_TouchpadWalking 把手 – 透過觸控面板移動
由移動面板控制移動
VRTK
• 018_CameraRig_FramesPerSecondCounter 環境 – 偵測環境的FPS
VRTK
• 019_Controller_InteractingWithPointer 把手 – 射線與物件互動
透過射線做基本物件互動
VRTK
• 020_CameraRig_MeshTeleporting 環境 – 針對網狀物的觸碰
• 可在Mesh Collider上做移動,同【 009_Controller_BezierPointer 】的設定
VRTK
• 021_Controller_GrabbingObjectsWithJoints 把手 – 對關節物件的控制
• 手把上的腳本同【008】 • 不同互動物件,除了額外的控制之外,均要加上VRTK_Interactable
Object腳本
VRTK
• 022_Controller_CustomBezierPointer 把手 – 自訂貝茲曲線 • 手把上的腳本同【009】
VRTK
• 023_Controller_ChildOfControllerOnGrab 把手 – 弓箭設定
VRTK
• 024_CameraRig_ExcludeTeleportLocations 環境 –限定不能移動的區域
不能移動的物件 – Tag : ExcludeTeleport
VRTK
• 025_Controls_Overview 把手 – 各種不同的控制器及回傳數值
物件上除了控制器腳本之外,還必須有VRTK_InteractableObject 的功能
VRTK
• 026_Controller_ForceHoldObject 把手 – 自開始就自動抓取物件在把手上
腳本上設定抓取物件
VRTK
• 027_CameraRig_TeleportByModelVillage 環境 – 透過特定模型移動
特定模型
VRTK
• 028_CameraRig_RoomExtender 環境 – 房間擴展
延伸房間的可移動範圍
VRTK
• 028_CameraRig_RoomExtender 環境 – 房間擴展
延伸房間的可移動範圍
VRTK
• 029_Controller_Tooltips 手把 – 物件UI標籤
標籤與物件的父子關係
VRTK
• 030_Controls_RadialTouchpadMenu 手把 – 觸控面板的選單製作
選單做在手把上
VRTK
• 030_Controls_RadialTouchpadMenu 手把 – 觸控面板的選單製作
選單做在手把上
VRTK
• 基礎功能整理 – [CameraRig]
基本互動: 1. 把手 – 物件拿取 2. 環境 – 貝茲曲線移動 3. 攝影機 – 穿透物件黑畫面設定
VRTK
• 基礎功能整理 – 互動物件
要互動的物件,需要的三個元件
VRTK
• 基礎功能整理 – 互動物件
拿取物件的按鈕設定
VRTK
• 基礎功能整理 – 互動物件(門)
要互動的物件,需要的三個元件
Thanks!!