UE4和Kinect交互-失败了

目录

一、参考:

1、在虚幻4中使用kinect2.0

1、将Kinect的SDK里面的例子下下来,下面是具体的下载SDK的过程,先下载SDK安装包,然后安装,然后下载相关人体骨骼的例子,看看

二、步骤:

1、使用UE4.18.3创建C++第三人称例子

2、创建gameMode、蓝图、项目设置

1、添加相机和骨骼、运行效果如图

1、C++创建Actor类

1、代码:MyKinectTest.Build.cs

1、 MyKinectTest.h

1、 MyKinectTest.cpp

1、


 


一、参考:

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);
}

1、

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值