原文**:
最近需要學習unity3d和kinect互動進行開發。查閱網上的資料,一直沒有找到詳盡而又簡單的方案。今天終於摸索出來在unity3d中使用kinect的方法,特此做個筆記。
我所使用的unity3d的版本是unity3.5,使用的kinect sdk版本是sdk1.6,令kinect和unity互動的方法是使用cmu的封裝,但是這個方法支援的kinect sdk版本是sdk1.0,要想使用1.5或1.6版本的kinect sdk,就要做一些相應的修改。完整的方案如下:
開啟示例工程後,在hierarchy面板中,可以看到這些內容:
如果你覺得每次匯入資源包,然後再修改兩個檔案實在麻煩,我已經將修改後的資源包匯出。以後在每次開發工程時,只需要匯入這個修改之後的資源包就行了。
匯入包之後,所有我們需要的資源都會出現在project面板中,具體來說是以下的一些資源:
scenes
prefabs
kinect
models and materials
這是示例模型。你需要將kinectmodelcontrollerv2這個指令碼拖放在這個模型上,並將組成模型的骨骼與指令碼中暴漏的骨骼部位變數繫結在一塊。然後就開始測試吧。
在unity中,將project面板中的kinect_prefab直接拖拽到hierarchy面板就可以了。
為了控制場景中的角色的移動,你需要將kinectmodelcontrollerv2這個指令碼拖拽到場景中的模型上,並繫結骨骼;或者你為了控制一系列的遊戲物體,你需要將kinectpointcontroller拖拽這些物體上。下面分別說明這個指令碼的使用。
模型控制器:kinectmodelcontrollerv2
為使用模型控制器,請按照以下步驟:
拖拽指令碼資源kinectmodelcontrollerv2到場景中的模型中。
詳細展開你的模型,讓模型的每一塊骨骼在hierarchy面板中可見。
乙個接乙個地把模型中的骨骼拖拽到指令碼中暴漏的對應的變數中.確保每乙個骨骼都對應到了正確的變數上。
當模型中所有的骨骼都放置好了之後,改變暴漏的player變數的值,這個變數表明該模型是受哪個玩家控制, 0代表第乙個玩家,1 代表第二個玩家。
接下來要設定暴漏的mask變數的值。設定合適的值,以決定是所有的骨骼都受kinect控制,還是僅僅一部分骨骼受kinect控制.如果這些受kinect控制的骨骼都不是你想要的,你可以自己寫乙個控制模型的指令碼來代替kinectmodelcontrollerv2。
例如示例程式中骨骼和變數的對應關係如下:
一系列點的控制器:kinectpointcontroller
為了使用該控制器控制一系列的點,請遵從下面幾步:
在場景中建立乙個空物體物件,作為你想要控制的一系列點的容器。
將其他的物體拖拽到剛剛建立的空物體中,並放置到相同的位置。使剛才建立的空物體成為這些物體的父節點。
拖拽kinectpointcontroller指令碼到這些物體的父節點上。
拖拽你想利用kinect控制的每乙個物體到inspector面板對應的合適的變數中。
設定player變數(代表玩家)和mask變數(代表哪些骨骼收到監控).
示例程式中,不同的物體和變數的對應關係如下:
仔細研究包中自帶的例子,很容易就明白如何在unity中結合kinect開發了。
*********************************************
參考資料:
《unity3d kinect sdk v1.5+unity3d 體感遊戲開發》
《配置unity3d 3.5 with kinect sdk1.6》
《cmu wiki:microsoft kinect - microsoft sdk》
unity 3d學習筆記
1.日誌輸出 如果需要觀測webplayer執行時輸出的log,則可以在初始化start中加上下面這樣一段 但是此日誌檔案太大,過於冗餘 playersettings.useplayerlog true 2.場景切換 3.資源載入 所有通過resources類載入的資源必須放在名為resources...
Unity3D 座標學習
1 常用的必然事件 在 unity 的指令碼中,可以定義一些特定的函式,這些函式會在滿足某些條件時由 unity 自動呼叫,它們被稱為必然事件 certain events 而start 和update 正是最常用的兩個事件,因此 unity 預設為新建的指令碼新增了這兩個事件。a awake 喚醒...
Kinect結合Unity3D引擎開發體感遊戲
kinect結合unity3d引擎開發體感遊戲 2.openni官方提供的openni unity toolkit 0.9.7.4.unitypackage 現在官方不提供更新與支援了,支援的版本unity3.4,在往上版本會出現很多問題,需要修改很多地方,比較麻煩 3.自己寫的互動的中介軟體,我在...