Kinect舒适区范围--UE4 的Blueprint测试范例
来源:互联网 发布:淘宝历史版本下载5.80 编辑:程序博客网 时间:2024/04/30 12:29
本文章由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测试范例
- Kinect 摄像头范围介绍和玩家舒适距离实测
- UE4 Blueprint编译过程
- Ue4 BluePrint蓝图实现镜头(视角)切换及摆动范围(一)
- Ue4 BluePrint蓝图实现镜头(视角)切换及摆动范围(二)
- Ue4 BluePrint蓝图实现镜头(视角)切换及摆动范围(三)
- UE4.5.0的Kinect插件(Plugin)<一>
- ue4-Multiplayer Lobby Blueprint教程
- 跳出自己的舒适区
- 【UNREAL ENGINE 游戏开发】开篇之UE4的BLUEPRINT(蓝图)与C++(新童鞋必看)
- 【UE4小白奋斗记录】BluePrint+样条曲线的路径动画(可循环)
- UE4.5.0的Kinect插件(Plugin)---插件使用说明<二>
- UE4 打包测试的笔记
- UE4里的全局变量,全局函数,便于工程里其他模块代码访问,以及Blueprint的访问
- “舒适区”的科学原理:为什么走出舒适区这么难?
- Blueprint的环境管理器
- blueprint的认识
- ue4中的AI和行为树(BluePrint版)
- Storm常见模式------TimeCacheMap
- 黑马程序员---java基础--多线程
- Java基础-05
- Make an interactive website 学习笔记
- 几种常见取石子模型
- Kinect舒适区范围--UE4 的Blueprint测试范例
- MongoDB 常用故障排查工具
- Android实现推送方式解决方案
- Android 插件化 动态升级
- MVC应用程序显示上传的图片
- sqlserver不能直接create table as select ......
- 编写高质量iOS和OS X代码的52个有效方法(笔记一)
- MVC PartialView()与View()的区别
- AsyncHttpClient关于失败响应和网络超时的响应的处理