狠狠撸

狠狠撸Share a Scribd company logo
Vuforia
AR影片程式設計
Revised on April 24, 2021
? Unity AR專案設定
? 建立Vuforia AR Camera
? 滙入Vuforia特徵資料庫
? 加入AR辨識圖片
? 使用平面物件顯示AR影片
? 使用立體物件顯示AR影片
素材
2
? 辨識圖
? 影片檔
? https://www.youtube.com/watch?v=8IdMPpKMdcc
? 新增3D專案,AR video
? 選單命令File> Build Settings
? 使用筆電或PC搭配Web Cam,可先選擇「PC, Mac & Linux Standalone」
方便測試;要使用手機實機測試,則選擇對應的手機平台
設定Unity AR專案 1/3
3
? 點擊Build Settings對話視窗左下角「Player Settings…」按鈕
? 勾選XR Settings項目中的Vuforia Augmented Reality Support,
安裝Vuforia Engine AR套件
如有警告訊息(大多是相容性問題),參照訊息內容修正設定即可
設定Unity AR專案 2/3
4
? Android平台設定
? 確認修正Player Settings設定中的Other Settings>
Identification> Package Name
? 設定Player Settings設定中的Other Settings> Identification>
Minimum API Level
? Vuforia Engine 8.X只支援Android 4.4之後版本;Vuforia Engine 9.X
只支援Android 7之後版本
? 取消勾選Player設定中的Other Settings> Configuration>
Android TV Compatibility
設定Unity AR專案 3/3
5
? 刪除場景中的Main Camera
? 選單命令GameObject> Vuforia Engine> AR Camera
? 點擊Open Vuforia Engine configuration按鈕
建立Vuforia AR Camera 1/3
6
? 將Vuforia License Key貼入Global項目的App License Key欄
建立Vuforia AR Camera 2/3
7
? 確定Play Mode項目中的Camera Device欄是目前使用的攝影機
建立Vuforia AR Camera 3/3
8
? 選單命令Assets> Import Package> Custom Package…滙入從
Vuforia封裝下載的特徵資料庫package
滙入Vuforia特徵資料庫 1/2
9
? 檢視ARCamera之Vuforia Engine Cofiguration設定,在
Databases項目中應看到您剛才滙入的辨識特徵資料庫名稱
滙入Vuforia特徵資料庫 2/2
10
? 在場景加入AR辨識圖片
? 選單命令GameObject> Vuforia Engine> Image
? Type = Predefined
? Database = unityAR (滙入的特徵資料庫名稱)
? Image Target = tv (由特徵資料庫中選取辨識圖)
加入AR辨識圖片
11
? 在Assets下建立Videos資料夾
? 將big_hero_6.mp4影片檔滙入到Videos資料夾
滙入AR影片檔到專案
12
? 選單命令GameObject> 3D Object> Plane加入Plane物件,更名為
videoPlane
? 重置Transform
? 拖曳videoPlane成為ImageTarget的子物件
? 調整Scale到合適大小
使用平面物件顯示AR影片 1/7
13
? 在videoPlane加入Video Player元件
? Video Clip = big_hero_6.mp4
? Render Mode = "Material Override"
? 執行測試
? 影片上下顛倒
? 影片色調偏灰白
? 還沒觸發圖片AR,影片就自動撥放
使用平面物件顯示AR影片 2/7
14
? 修正影片上下顛倒
? 選取videoPlane,Rotation(X, Y, Z) = (0, 180, 0)
使用平面物件顯示AR影片 3/7
15
? 修正影片色調
? 在Assets下建立Materials資料夾
? 選單命令Assets> Create> Materials新增
?個材質,更名為videoMaterial
? Shader = Unlit/Texture (不受光照影響)
? 套用videoMaterial到videoPlane
使用平面物件顯示AR影片 4/7
16
? 影片撥放控制
? 修改ImageTarget物件的DefaultTrackableEventHandler程式腳本
using UnityEngine.Video;
public class DefaultTrackableEventHandler : MonoBehaviour
{
...
protected virtual void OnTrackingFound()
{
if (mTrackableBehaviour)
{
...
var videoComponents = GetComponentsInChildren<VideoPlayer>(true);
foreach (var component in videoComponents)
component.enabled = true;
}
}
使用平面物件顯示AR影片 5/7
17
protected virtual void OnTrackingLost()
{
if (mTrackableBehaviour)
{
...
var videoComponents = GetComponentsInChildren<VideoPlayer>(true);
foreach (var component in videoComponents)
component.enabled = false;
}
}
使用平面物件顯示AR影片 6/7
18
? 執行測試
使用平面物件顯示AR影片 7/7
19
? 個別物件加入Video Player元件,每個物件為各自使用Video
Player撥放影片。Render Texture則是先將影片內容渲染為材質,
如此?來,套用Render Texture的所有物件都會同步撥放影片
? 在Assets下建立Textures資料夾
? 選單命令Assets> Create> Render Texture在Textures資料夾下建
立Render Texture物件,更名為videoScreen
? 暫時將videoPlane物件設為隱藏,停用videoPlane
使用Render Texture顯示AR影片 1/6
20
? 選單命令Game Object> 3D Object> Cube加入方體
? 重置Transform
? 拖曳Cube成為ImageTarget的子物件
? 調整Cube到欲顯現的相對位置和大小
使用Render Texture顯示AR影片 2/6
21
? 在Cube物件加入Video Player元件
? Video Clip = big_hero_6.mp4
? Render Mode = Render Texture
? Aspect Ratio = Fit Inside
? 拖曳videoScreen到Video Player之Target Texture欄
使用Render Texture顯示AR影片 3/6
22
? 拖曳videoScreen到Cube物件上
? videoScreen之Shader設定為Unlit/Texture
使用Render Texture顯示AR影片 4/6
23
? 執行測試
使用Render Texture顯示AR影片 5/6
24
? 啟用videoPlane
? 移除videoPlane中的Video Player元件
? 套用videoScreen到videoPlane物件上
? 執行測試
? Cube和videPlane會同步撥放影片
使用Render Texture顯示AR影片 6/6
25

More Related Content

Vuforia AR影片程式設計