Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 当一个人统一行走时,获取其三维点坐标_Unity3d - Fatal编程技术网

Unity3d 当一个人统一行走时,获取其三维点坐标

Unity3d 当一个人统一行走时,获取其三维点坐标,unity3d,Unity3d,对于一个研究项目,我需要找到当一个人笔直行走时,他身体表面上3D点的坐标。我知道unity使用基于3D点坐标的网格渲染对象 我对团结知之甚少。我想知道我是否有可能使用unity创建一个人角色,让他行走,以每50毫秒或1秒的速度获取该人的3D点,并将其保存到文件中?这样我就可以稍后使用C#或python读取点坐标并执行模拟了?这有多容易?是否有任何示例代码、示例或就绪字符可以在相对较短的时间内使用 如果有任何建议,任何工具或软件,我可以实现这将是伟大的 谢谢在我看来,最简单的方法是使用Kinect

对于一个研究项目,我需要找到当一个人笔直行走时,他身体表面上3D点的坐标。我知道unity使用基于3D点坐标的网格渲染对象

我对团结知之甚少。我想知道我是否有可能使用unity创建一个人角色,让他行走,以每50毫秒或1秒的速度获取该人的3D点,并将其保存到文件中?这样我就可以稍后使用C#或python读取点坐标并执行模拟了?这有多容易?是否有任何示例代码、示例或就绪字符可以在相对较短的时间内使用

如果有任何建议,任何工具或软件,我可以实现这将是伟大的


谢谢

在我看来,最简单的方法是使用Kinect或摄影测量将您的模型创建为仅在曲面上具有顶点的点云。这就是我建议使用点云的原因之一,因为您不必以这种方式在曲面上查找网格的顶点

然后使用将其导入Unity。
最后,在Unity中,您可以使用
transform.TransformPoint(meshVert)
轻松记录模型的所有全局位置。

在我看来,最简单的方法是使用Kinect或摄影测量将您的模型创建为仅在曲面上具有顶点的点云。这就是我建议使用点云的原因之一,因为您不必以这种方式在曲面上查找网格的顶点

然后使用将其导入Unity。
最后,在Unity中,您可以使用
transform.TransformPoint(meshVert)
随时间轻松记录模型的所有全局位置。

我不得不说,这个问题太宽泛了,不能这么做,但您肯定可以。顺便说一句,对于Unity初学者来说,这不是一件容易的事情。给出一个快速的答案,第一步(最简单的)是从资产库下载一个带有动画的人体模型。然后可以在Unity中导入该对象,并可以在要监视的点(如关节)中将一些虚拟对象指定为子对象。您可以定期检查并保存它们的坐标。我希望这可以成为一个起点。您是否正在尝试使用unity步行动画模拟运动捕捉?或者您正在尝试使用unity动画播放外部mocap数据?多亏了你们两位。我所做的模拟是计算出一个人穿过激光传感器光束的三维点的时间和坐标。我可以将激光束在空间中建模为三维直线或三维圆锥体。当这个人穿过光束时,如果我知道这个人在每个时间点都覆盖了哪些3d点,那么通过编写一些代码,可以通过一些模拟找到交叉点。这其实很简单,它只是一组
物理。光线投射
,每个激光一个。光线投射返回的命中数据将告诉您光线击中的对象的位置。我不得不说,这个问题太宽泛了,不能这么说,但你肯定可以。顺便说一句,对于Unity初学者来说,这不是一件容易的事情。给出一个快速的答案,第一步(最简单的)是从资产库下载一个带有动画的人体模型。然后可以在Unity中导入该对象,并可以在要监视的点(如关节)中将一些虚拟对象指定为子对象。您可以定期检查并保存它们的坐标。我希望这可以成为一个起点。您是否正在尝试使用unity步行动画模拟运动捕捉?或者您正在尝试使用unity动画播放外部mocap数据?多亏了你们两位。我所做的模拟是计算出一个人穿过激光传感器光束的三维点的时间和坐标。我可以将激光束在空间中建模为三维直线或三维圆锥体。当这个人穿过光束时,如果我知道这个人在每个时间点都覆盖了哪些3d点,那么通过编写一些代码,可以通过一些模拟找到交叉点。这其实很简单,它只是一组
物理。光线投射
,每个激光一个。光线投射返回的命中数据将告诉您光线击中的对象的位置。谢谢你,阿里。您提到的变换是模拟点云的行走场景,还是只是时间上的线性变换?我需要一个行走场景。
transform.TransformPoint(meshVert)
将为您提供顶点的全局位置。假设你的人类在原点,当人类移动到x的1个单位时,你的顶点在
(0,0.1,0)
,就像这样
(1,0,0)
你的顶点在全球范围内将在
(1,0.1,0)处。您必须使用
TransformPoint`在每个间隔(50毫秒或1秒)记录顶点的位置,并且每个时隙的记录都会有所不同。谢谢。您提到的变换是模拟点云的行走场景,还是只是时间上的线性变换?我需要一个行走场景。
transform.TransformPoint(meshVert)
将为您提供顶点的全局位置。假设你的人类在原点,当人类移动到x的1个单位时,你的顶点在
(0,0.1,0)
,就像这样
(1,0,0)
你的顶点在全球范围内将在
(1,0.1,0)处。您必须使用
TransformPoint`以每个间隔(50毫秒或1秒)记录顶点的位置,并且每个时隙的记录都会有所不同。