回覆列表
  • 1 # CoreCode

    Kinect+Unity3D 體感遊戲開發 — Kinect SDK v1.5,給出幾種方案,我做了相應嘗試,現在也進行一下總結:1、Zigfu的ZDK 以前用OpenNI的時候用過,沒想到能夠支援Kinect,於是很高興的下好了trial版本,果然能用,不過發現一下子能開啟Kinect裝置,一下子不能開啟Kinect裝置,很是困惑,後面發現360安全衛士及360防毒把Kinect服務當木馬的提示,果斷設定為信任,也把360安全衛士和360防毒退出,在測試開啟Kinect裝置成功率高的多,但依然會有失敗的。2、CMU的封裝 這套在看這篇文章是先下到,只支援Kinect SDK 1.0,本想修改一下用起來,但是懶的基因沒有馬上動手,而是再Google下,找到了這邊文章,下載替換檔案,看了一下,Kinect SDK 1.5跟Kinect SDK 1.6還是有區別,用了一下果然也是用不起來。3、adevine1618開發的外掛 缺點有說不在維護,所以就沒有去試了。4、根據Zigfu自己寫一套C#類庫 前面說到Zigfu的開啟不穩定,於是想自己寫一套能夠同時支援Kinect和OpenNI的封裝。沒花多長時間,總結了一下需要各抽象層就動手寫了骨骼資料方面,於是放到Unity進行測試。發現MonoDevelop編譯沒有問題,在Editor下確提示編譯出錯。這篇文章有提到:Unity3.5 只支援到.Net 3.5, 而Kinect SDK v1.5 最低要求是.Net 4.0. 所以直接在Unity中使用v1.5的assembly是不行的。不過我嘗試才真正體會到真的是不行,在VS2012中改成.Net 3.5的話,編譯又通不過,改成.Net 4.0編譯透過,在Unity中又通不過,預設是.Net 4.5。很好奇Zigfu是如何做到的,ZDK下有Kinect10.dll及OpenNI.Net的引用,也是用C#寫的一套類庫啊,難道是Kinect SDK 1.5,而且用的是.Net 3.5?用Kinect SDK 1.5的話,為何CMU的封裝(替換檔案了)有如何跑不起來?5、Unity Plugin方式,用C++寫DLL 這個動手寫以前就肯定是可行的,但還是動手寫了一下做了測試,發現Kinect 紅外燈能夠點亮了。這樣比CMU封裝更有好處,按更自然的C++方式來實現,僅匯出需要的介面就好了。 這麼多方案下,最希望是能夠把Zigfu實現能夠把Kinect面部識別等更多功能放進去,當然是需要Unity能夠支援.Net 4.5了,目前方案是Unity Plugin方式了,把需求放到C++中去完成好了。

  • 中秋節和大豐收的關聯?
  • 寫一個經典唯美的生日祝福短文,謝謝?