Animation 从三维关节位置创建动画视频

Animation 从三维关节位置创建动画视频,animation,blender,maya,mo-cap,Animation,Blender,Maya,Mo Cap,很抱歉,如果问题的某些部分或我的后续请求看起来很愚蠢,但我在这一领域毫无经验,不幸的是,我正处于最后期限 这个想法很容易解释,我有(一帧一帧)人体25个关节的精确3D坐标。我需要的是它周围的人物的相应动画视频。这个想法与此类似- 不同之处在于我有逐帧的3d关节值,而不是mocap数据。另外,我想对大量视频重复这个过程,所以我想我不能对每一个视频都手动操作(同样是我的假设,如果我错了,请让我知道) 我在这个领域没有任何经验。在提出这个问题之前,我似乎没有做任何研究,但我确实做了。只是我真的很困惑

很抱歉,如果问题的某些部分或我的后续请求看起来很愚蠢,但我在这一领域毫无经验,不幸的是,我正处于最后期限

这个想法很容易解释,我有(一帧一帧)人体25个关节的精确3D坐标。我需要的是它周围的人物的相应动画视频。这个想法与此类似-

不同之处在于我有逐帧的3d关节值,而不是mocap数据。另外,我想对大量视频重复这个过程,所以我想我不能对每一个视频都手动操作(同样是我的假设,如果我错了,请让我知道)

我在这个领域没有任何经验。在提出这个问题之前,我似乎没有做任何研究,但我确实做了。只是我真的很困惑我的选择是什么,它是否可行

我不期望得到详细的答案(尽管如果我得到了一个答案,那就太棒了)。我只是在找人给我指出正确的教程。多谢各位


编辑:讨论继续-

Mocap数据只是时间上移动的点的集合,来自Mocap系统的数据的格式可能比您现有的数据更好,因此可以更容易地说这些点是左肘部,这些点是右脚踝。如果不能指定此点序列是电枢中的此关节,则可能会出现故障

让我们首先说,您有一系列的位置,每个跟踪标记都通过名称清楚地标识出来。首先创建一个空标记,重新创建每个标记

import bpy

scn = bpy.context.scene
objs = bpy.data.objects
rig = objs['myrig']

mocap_data = {
                    # each item in list is (x,y,z) at each frame
        'elbow.l': [(0,-.5,0),(0,-1,0),(0,-.5,0)],
        'elbow.r': [(0,.5,0), (0,1,0), (0,.5,0)],
        }

for m in mocap_data.keys():
    o = objs.new(m, None)
    scn.objects.link(o)
应命名装备中的每个骨骼,以匹配标记的命名。在同一循环中,还可以为每个骨骼创建ChildOf约束,这将使骨骼跟随其标记

c = rig.pose.bones[m].constraints.new('CHILD_OF')
c.target = o
现在,您需要设置每个标记的动画以跟随其运动

for f in range(len(mocap_data['elbow.l'])):
    for m in mocap_data.keys():
        objs[m].location = mocap_data[m][f]
        objs[m].keyframe_insert('location', frame=f+1)
如果你想的话,你可以把它放进电枢里,这样你就可以把空的东西拿出来


Blender包括插件,它提供了在某些阶段可能有帮助的工具。您可能还想查看该插件,该插件下载mocap数据并将其分配给钻机,它包括一种将mocap数据传输到MakeHuman钻机的方法,因此可能有一些您可以使用或调整的内容。

感谢您的指导。我有几个后续问题。1.你说创建一个“空的”。空什么?我不理解第二学期的内容。在mocap_数据字典中,键的名称是否需要匹配一些预定义的术语,或者我可以简单地将它们命名为l_弯头、r_弯头等。?3.关于骨骼部分的命名,我不清楚我该怎么做。在搅拌机中,一个没有几何图形的部件。mocap数据中的关键点可以按照您的意愿命名,如果它们与相应的骨骼名称匹配,则更容易,因为您可以使用关键点引用骨骼并匹配空的骨骼。电枢中的每根骨头都有一个名字,最初它们是骨头,骨头.001。。。您可以命名骨骼,以便轻松识别每个骨骼,并通过以下步骤引用相应的骨骼。
bpy
模块是blender应用程序的一部分。运行blender时,您可以使用其打开和运行脚本。是的,第一个循环创建标记,您可以将下两行添加到同一个循环中,以同时创建约束,然后第二个循环执行动画。创建标记和约束的循环将每个标记与同名骨骼相关联。如果需要在骨骼中循环,可以使用
在装备中使用骨骼。姿势。骨骼:
如果需要有关blender的更多帮助,请访问