本文章由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。

我本有意画个图,奈何画的比较烂,不贴了。

初始化图:

说明:MinZ为舒适区的最近距离,MaxZ为舒适区设置的最大距离。这个根据Kinect摄像头的高度和角度来调节。

接下来就是画线了:画了红绿两种线段来表示区域。

红色交汇处为左上角点,绿色交汇点为右下角点。

Basic position是kinect的位置,也可以叫做相对位置点。

然后就是玩家位置了,BP如下:

四、主BP调用

这些函数搞定以后,就是在关卡的BP中进行调用了。这个就简单多了。

初始化调用:

位置实时判断表示:

五、测试结果

若都写完了,编译也没有错误,就Play来运行检测一下。

看你的Kinect是否可以找到玩家位置,我这里用来一个小木块来代替了玩家,做了个小gif.

THE  END!

---------------------------

若有问题,请随时联系!

非常感谢!

Kinect舒适区范围--UE4 的Blueprint测试范例的更多相关文章

  1. 刻意练习,逃离舒适区——怎么样成为一个高手[罗辑思维]No.183_知识笔记

    2016/10/30 14:31:32   一.对事物的见解分为两类:         1.评论性的见解               说的内容都是对的,符合常理的,但是却是不解决问题的.       ...

  2. 从web到游戏,走出舒适区

    最近很久没有更新博客了,实在太忙.因为在这段时间里我做了一个改变了我现在职业生涯的一个决定,而我现在正在为这个决定而加倍的努力付出. 我认为我还是有必要把这个比较重要的节点记录下来,我也是第一次在自己 ...

  3. ue4 character 物理测试

    charactor里 CapsuleComponnet Mesh CharacterMovement 3个组件里有有物理开关 目前看Mesh的Simulate Physics+Enable Gravi ...

  4. redis集群配置及运行命令(windows和centos)附Python测试范例代码

    表示配置主服务器器的IP和端口 slaveof <masterip> <masterport> # 设置slave是否是只读的.从2.6版起,slave默认是只读的. slav ...

  5. ASP.NET MVC4 Jquer 日期控件 测试范例

    <!doctype html>   <html lang="en"> <head> <meta charset="utf-8&q ...

  6. 【jmeter测试范例】001——TCP测试

    1.打开Jmeter(或者运行NewDriver.java启动Jmeter) 2.新建一个测试计划 ······ 3.新建线程组 4.设置线程组的参数 1.线程的数量 2.要在多久内完成,即每个请求发 ...

  7. Kinect 摄像头范围介绍和玩家舒适距离实测

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/44588097 作者:ca ...

  8. 【测试工程师面试】 记录XX银行面试

    LZ在一个18线小城市做测试,近来想走出自己的舒适区,去做一点不一样的测试工作. 18线地区,测试工作并不多.最好的差不多就是LZ目前待着的公司了.遂决定去魔都闯荡几年,对一个在魔都无房无车无户口的人 ...

  9. 月薪15k的测试员需要学习什么技术?

    想了很久,决定还是要写一篇这样的文章出来,月薪15k的测试员需要学习什么技术?我觉得测试想要月薪15k并不难,只要做到我说的这几点肯定是可以的! 克服懒惰 我觉得,越是聪明的人越是觉得自己“懒惰”.大 ...

随机推荐

  1. 基于Linux系统WINE虚拟机技术的研究

    650) this.width=650;" onclick="window.open("http://blog.51cto.com/viewpic.php?refimg= ...

  2. go timer

    go timer package main import ( "fmt" "time" ) func debounce(interval time.Durati ...

  3. 洛谷 P1032 字符变换

    洛谷 P1032 字符变换 题目描述 已知有两个字串 A,B 及一组字串变换的规则(至多 6 个规则): A1​ -> B1​ A2​ -> B2​ 规则的含义为:在 A 中的子串 A1​ ...

  4. 【习题 7-2 UVA-225】Golygons

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 暴力枚举每次走哪里就好. 用一个二维数组来判重.(数据里,要求不能经过一个点两次->但路径可以相交 然后再用一个flag数组, ...

  5. 《Java实战开发经典》第五章5.3

    package xiti5; public class Third { public static void main(String[] args) { T t=new T("want yo ...

  6. 发送 email 过程

    发送 email 过程 SMTP基本命令集: 命令 描述 ---------- HELO 向服务器标识用户身份发送者能欺骗,说谎,但一般情况下服务器都能检测到. MAIL 初始化邮件传输 mail f ...

  7. Linux下读写寄存器

    arm裸机下读写寄存器很容易,各个寄存器和内存的地址是单一地址空间,他们是用相同的指令进行读写操作的.而在linux下就要复杂很多,因为linux支持多个体系架构的CPU.比如arm和x86就不一样, ...

  8. docker网络访问

    一 docker网络访问 描述: 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或者-p ...

  9. DataTable +chart控件

    //这是仿你的DataTable //-----开始--------- DataTable dataTable1 = new System.Data.DataTable(); dataTable1.C ...

  10. 展示C代码覆盖率的gcovr工具简单介绍及相关命令使用演示样例

    (本人正在參加2015博客之星评选,诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candida ...