目录
1、将Kinect的SDK里面的例子下下来,下面是具体的下载SDK的过程,先下载SDK安装包,然后安装,然后下载相关人体骨骼的例子,看看
一、参考:
1、在虚幻4中使用kinect2.0
https://blog.csdn.net/qq_22033759/article/details/50132911
1、将Kinect的SDK里面的例子下下来,下面是具体的下载SDK的过程,先下载SDK安装包,然后安装,然后下载相关人体骨骼的例子,看看
二、步骤:
1、使用UE4.18.3创建C++第三人称例子
2、创建gameMode、蓝图、项目设置
1、添加相机和骨骼、运行效果如图
1、C++创建Actor类
1、代码:MyKinectTest.Build.cs
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.IO;
public class MyKinectTest : ModuleRules
{
private string ModulePath
{
get { return ModuleDirectory; }//ModuleDirectory表示当前模块的目录
}
public MyKinectTest(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" });
//TKinect2.0
PublicIncludePaths.Add(Path.Combine(ModulePath, "../../ThirdParty/Kinect2"));
PublicAdditionalLibraries.Add(Path.Combine(ModulePath, "../../ThirdParty/Kinect2/K2.lib"));
}
}
1、 MyKinectTest.h
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "AllowWindowsPlatformTypes.h"
#include <windows.h>
#include "HideWindowsPlatformTypes.h"
//Fast
#include "../../ThirdParty/Fast/include/Fast_Config.h"
#include "../../ThirdParty/Fast/include/Fast_Flash.h"
#include "../../ThirdParty/Fast/include/FastFaceDetect.h"
//Kinect2
#include "../../ThirdParty/Kinect2/K2.h"
#include "../../ThirdParty/Kinect2/K2Matting.h"
#include "../../ThirdParty/Kinect2/K2Bone.h"
#include "../../ThirdParty/Kinect2/K2Face.h"
#define K2Vec32FVector(v) FVector((v).x, (v).y, (v).z)
#define FVector2K2Vec3(v) K2Vec3((v).X, (v).Y, (v).Z)
#define K2Quat2FQuat(q) FQuat((q).x, (q).y, (q).z, (q).w)
#define FQuat2K2Quat(q) K2Quat((q).X, (q).Y, (q).Z, (q).W)
#define K2Quat2FRotator(q) FRotator(K2Quat2FQuat(q))
#define FRotator2K2Quat(r) FQuat2K2Quat(FQuat(r))
// UE与Kinect2坐标系转换
FVector WINAPI K2Coordinate2UECoordinate(FVector k2v);
FQuat WINAPI K2Coordinate2UECoordinate(FQuat k2q);
FVector WINAPI UECoordinate2K2Coordinate(FVector uev);
FQuat WINAPI UECoordinate2K2Coordinate(FQuat ueq);
1、 MyKinectTest.cpp
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "MyKinectTest.h"
#include "Modules/ModuleManager.h"
IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, MyKinectTest, "MyKinectTest" );
FVector WINAPI K2Coordinate2UECoordinate(FVector k2v)
{
return FVector(k2v.X, -k2v.Z, k2v.Y);
}
FQuat WINAPI K2Coordinate2UECoordinate(FQuat k2q)
{
float angle;
FVector axis;
k2q.ToAxisAndAngle(axis, angle);
axis = K2Coordinate2UECoordinate(axis);
return FQuat(axis, angle);
}
FVector WINAPI UECoordinate2K2Coordinate(FVector uev)
{
return FVector(uev.X, uev.Z, -uev.Y);
}
FQuat WINAPI UECoordinate2K2Coordinate(FQuat ueq)
{
float angle;
FVector axis;
ueq.ToAxisAndAngle(axis, angle);
axis = UECoordinate2K2Coordinate(axis);
return FQuat(axis, angle);
}