【筆記】unity 用Helios3D製作全景VR視頻

1、導入Helios插件
2、在場景中加入Helios-prefabs-Helios3D預製體到Hierarchy面板
3、設置文件保存位置WorkingFloder,勾選Camera Armed,運行可錄製場景視頻,其他參數按需設置

部分參數解釋: 

——General Settings(基本設置):

Quality:錄製出來的全景照片的各像素選項

Antialiasing:抗鋸齒(如有需要可選擇)

Disable Other Cameras:禁用其他攝像機(錄製時除了Helios自帶的攝像機外,其他都不需要,默認勾選)

Sync Camera Rotation:同步攝像機旋轉(默認不勾選,此處有坑!當需要自己操控轉向,或者使用Animator運行Helios時,單勾選此項是沒有效果的,需要把Helios3D的子對象StitcherL中的HeliosStitcher腳本的UseNewStitchingEngine給去掉勾選)

CaptureFormat:圖片格式

FrameRate:幀照片數量(此處是一秒產生多少張照片。對視頻來說即一秒播放的照片數量,一般視頻選25幀即可)

Working Folder:存儲照片的地址

——Output Settings(輸出設置):

Flip Image:反轉照片


4、點擊Helios按鈕,那麼去掉以上一些選項的勾選,點擊按鈕合成視頻(當然這要你能在Unity中直接安裝FFMPEG的話,如果安裝不了,那麼就另外下載FFMPEG,操作如下)


4、利用FFMPEG轉換工具合成視頻。控制檯運行

E:\FFMPEG\bin\ffmpeg -r 25 -i E:\U3D\TextImage/img%05d.jpg -vcodec h264 -pix_fmt yuv420p U3dVR.mp4
註釋: 

E:\FFMPEG\bin\ffmpeg 是ffmpeg解壓路徑

是由Helios生成的圖片地址
-r 每秒播放的幀率
-i 是Helios插件生成的圖片地址
%d 中間數字爲位數
-vcodec 編碼形式
-pix_fmt 像素格式
**.mp4 輸出文件

(合成的全景視頻可直接在vr眼鏡上播放了,如需要其他操作功能,則繼續往下)

(合成視頻參數可自行按要求設定。視頻合成後需要在QuickTime Player播放一遍,據說是爲了轉成unity能識別的格式,不過導進去看到的還是mp4,但是你不轉就用不了咯!)


5、將視頻拖入unity,轉換爲MovieTexture。如果沒有自動轉換,可手動在屬性Importer Version 設置後Apply
6、新建一個材質球,設置爲Particles/Alpha/Blended,將視頻拖到材質ParticleTexture上
7、新建一個空場景,給場景中創建一個Sphere,賦予剛建的材質
8、給Sphere添加一個腳本用於播放視頻:
    void Start () {
        MovieTexture mov = (MovieTexture)GetComponent<MeshRenderer>().material.mainTexture;

        mov.Play();
    }
9、設置攝像機到球體中心,比如,Sphere和MainCamera位置均設爲0點
10、運行即可。VR全景,進行VR攝像機置換就行


小技巧:

1、前幾幀由黑漸亮的效果是由於Helios3D子對象StitcherL/StitcherR對象上的FadeBlack腳本的效果,如果不需要禁用此腳本即可。

2、當需要攝像機視角爲全景圖片正中時(默認爲左半邊),需要將StitcherL攝像機Rotation的Y軸設置爲-90。

3、Helios3D自帶第一人稱操縱錄製,如果要用Animator控制移動,在Helios3D對象上添加Animator組件,加入動畫即可自動播放錄製,但需要將以下第一人稱操控的有關四個組件移除

4、錄製高質量視頻或比較長的視頻,採集圖片往往需要好幾個小時,不可能一直盯着或者等着它,所以我添加了一些代碼,讓unity採集到足夠的照片之後就自動停止運行。這裏需要自己計算一下,通過眼觀心算或者用手機秒錶計算也行,最精確的就用實際運行時間除以採集的照片數量則能夠得到採集一張照片的時間,然後這個時間乘以照片幀數再乘以動畫運行時間(均以秒爲單位)。下圖的時間非以下例子的時間,在此僅用於教授方法。

例如:我採集一張高質量照片需要3秒,幀照片數爲25,我的動畫總長度爲2分47秒(即167秒),總耗時:3*25*167= 12525秒(約爲3.47個小時),然後在Helios3D裏的PreviewCamera腳本中如圖那個位置加入以下代碼。我寫的是12650,是因爲寧可採集多點照片也不要採集少了,等幾個小時後或者第二天,把多餘的照片刪除就行啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章