首先,其實在openvr庫裏,是包含controller模型的,可以通過openvr庫裏的LoadRenderModel_Async及LoadTextureXXX系列函數來動態的請求到模型,並繪製到引擎中。不過這個方法我還沒使用過,不太熟,有時間研究一下再說。
另一種方式,是直接導入現成的controller模型。如果安裝了Steam軟件,在C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\rendermodels\目錄下能找到你本機steam平臺支持的模型。這是我本地的路徑,具體視自己的機器來定。這個目錄下的模型大都是mtl和obj格式的。其中,obj格式的模型,可以用windows 10系統自帶的[View 3D]或[3D Builder]程序來打開。我用[View 3D]打開了vr_controller_vive_1_5目錄下的vr_controller_vive_1_5.obj文件,如下:
將這個文件拖拽到unreal窗口,會彈出Import Options窗口:
如上紅框設置後,點擊Import All即可完成導入。
同樣操作可以導入HTC Vive Tracker模型。該模型在我本地路徑是:
"C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\htc\resources\rendermodels\vr_tracker_vive_1_0\vr_tracker_vive_1_0.obj"
額外記錄:
controller模型沒有貼圖,導入unreal後會生成並使用一個灰白材質,但模型目錄下有個onepointfive_spec.png和onepointfive_texture.png兩個文件,將其導入到unreal後,可以設置那個灰白材質如下:
這樣,Controller模型看起來就正常了: