<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                本文章由cartzhang編寫,轉載請注明出處。?所有權利保留。? 文章鏈接:?http://blog.csdn.net/cartzhang/article/details/44748475 作者:cartzhang 說明:kinect使用的是一代版本,SDK為1.8版本 ### 一、概述 根據上篇博客,可大致知道Kinect舒適區范圍。下面就借助Ue4平臺來表現一下。 ? 建立工程,加載Kinect庫。當然,我并沒有直接使用Kinect庫,而是自己封裝了一個自己的庫。 使用方法與添加UE4的各種庫類似,具體可以UE4的wiki上自行搜索,當然自己也有尚未解決的問題。 ### 二、BP代碼部分 在我的Character的頭文件上加入調用Kinect玩家位置的函數 ~~~ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay) bool BGetPostionSucess; UFUNCTION(BlueprintCallable, Category = KINECTUE) FVector4 GetPlayerPositon(); ~~~ CPP中代碼如下: ~~~ FVector4 AU4UE4TestCharacter::GetPlayerPositon() { FVector4 VPosition = FVector::ZeroVector; BGetPostionSucess = false; UDKinect::UDKVector pPosition; int iFlag = KinectGetUserPosition(USER_INDEX, pPosition); if (iFlag == 0) { BGetPostionSucess = false; //GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, "can get player position for the moment"); } else{ VPosition = FVector(pPosition.x, pPosition.y, pPosition.z); BGetPostionSucess = true; } return VPosition; } ~~~ ? 這樣就基本搞定了代碼部分。 ? ### 三、Blueprint的函數實現 ? 首先是初始化舒服區的位置,在BP中寫一個函數即可。 根據之前博客范圍,我想把左右范圍控制在角度為60度,這樣做有就跟為90-60=?30度,這樣根據正切函數就可以得到舒適距離與左右范圍的為dist/tan60;因此在下圖中有個變量叫做根號三,就是約等于1.732。 我本有意畫個圖,奈何畫的比較爛,不貼了。 初始化圖: > ![](https://box.kancloud.cn/2016-05-05_572b007c6ea0a.jpg) ? 說明:MinZ為舒適區的最近距離,MaxZ為舒適區設置的最大距離。這個根據Kinect攝像頭的高度和角度來調節。 接下來就是畫線了:畫了紅綠兩種線段來表示區域。 > ![](https://box.kancloud.cn/2016-05-05_572b007ca79a7.jpg) 紅色交匯處為左上角點,綠色交匯點為右下角點。 Basic?position是kinect的位置,也可以叫做相對位置點。 然后就是玩家位置了,BP如下: > ?![](https://box.kancloud.cn/2016-05-05_572b007ce2f4e.jpg) ### 四、主BP調用 這些函數搞定以后,就是在關卡的BP中進行調用了。這個就簡單多了。 初始化調用: > ?![](https://box.kancloud.cn/2016-05-05_572b007d2d3b9.jpg) 位置實時判斷表示: > ?![](https://box.kancloud.cn/2016-05-05_572b007d5b50d.jpg) ? ### 五、測試結果 ? ? ? 若都寫完了,編譯也沒有錯誤,就Play來運行檢測一下。 ? ?看你的Kinect是否可以找到玩家位置,我這里用來一個小木塊來代替了玩家,做了個小gif. ![](https://box.kancloud.cn/2016-05-05_572b007d878bd.jpg) THE ?END! --------------------------- 若有問題,請隨時聯系! 非常感謝!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看