CN116805344B - 一种数字人动作重定向方法及装置 - Google Patents
一种数字人动作重定向方法及装置 Download PDFInfo
- Publication number
- CN116805344B CN116805344B CN202310748591.XA CN202310748591A CN116805344B CN 116805344 B CN116805344 B CN 116805344B CN 202310748591 A CN202310748591 A CN 202310748591A CN 116805344 B CN116805344 B CN 116805344B
- Authority
- CN
- China
- Prior art keywords
- joint
- transformation matrix
- sub
- coordinate system
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000009471 action Effects 0.000 title claims abstract description 65
- 238000006243 chemical reaction Methods 0.000 claims abstract description 161
- 210000000988 bone and bone Anatomy 0.000 claims abstract description 132
- 230000033001 locomotion Effects 0.000 claims abstract description 69
- 239000011159 matrix material Substances 0.000 claims description 189
- 230000009466 transformation Effects 0.000 claims description 146
- 230000001131 transforming effect Effects 0.000 claims description 29
- 230000000284 resting effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 48
- 230000036544 posture Effects 0.000 description 38
- 210000001503 joint Anatomy 0.000 description 27
- 238000013515 script Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 210000000245 forearm Anatomy 0.000 description 10
- 238000013461 design Methods 0.000 description 3
- 210000001624 hip Anatomy 0.000 description 3
- 210000002414 leg Anatomy 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 210000003857 wrist joint Anatomy 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 229910052799 carbon Inorganic materials 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 210000000689 upper leg Anatomy 0.000 description 2
- 101000665837 Homo sapiens Protein Red Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 210000003423 ankle Anatomy 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 244000309466 calf Species 0.000 description 1
- 210000001145 finger joint Anatomy 0.000 description 1
- 210000002683 foot Anatomy 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 210000004247 hand Anatomy 0.000 description 1
- 210000004394 hip joint Anatomy 0.000 description 1
- 102000054563 human IK Human genes 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本说明书实施例涉及一种数字人动作重定向方法及装置,用于在数字人建模平台中将第一骨骼的动作迁移至第二骨骼,所述第一骨骼和第二骨骼具有对应的多个关节对,所述方法通过将源骨骼和目标骨骼设定为相同的静置姿态,以确定第一骨骼和第二骨骼中每一组对应的关节对之间的转换关系并存储。然后,调用预定接口获取第一骨骼在任一时间点上的运动姿态所对应的动作数据,所述动作数据包括任一关节的旋转角,根据上述转换关系,计算出第二骨骼在相应时间点上任一关节的旋转角,并赋值给第二骨骼对应的关节,以完成动作重定向。
Description
技术领域
本说明书一个或多个实施例涉及虚拟数字人领域,尤其涉及一种数字人动作重定向方法及装置。
背景技术
虚拟数字人的动作重定向技术在影视制作、游戏、虚拟现实、元宇宙等领域中有着广泛的应用。在虚拟场景中,制作者需要为虚拟角色设计各种动作,使他们看起来更加自然和流畅。然而,制作复杂的动作需要大量的时间和精力,因此,需要一种技术来快速、有效地创建复杂的动作。
目前,数字人驱动通常使用动作捕捉技术来获取动作数据,再将这些数据应用到数字人中实现运动,或者依赖设计资源来根据数字人模型来定制动作。然而,不管是哪一种方案,在实际生产中都可能会存在已有的动作无法应用到新的数字人的问题,可能是由于模型变更或者数字人形象差异过大,这时候就可以利用动作重定向技术来实现同一动作在不同模型之间的迁移。现有方案大多由人工手动对数字人进行动作重定向,这种方案自动化程度较低,且对没有经验的人有一定的上手门槛,因此,需要一种自动化的动作重定向方案。
发明内容
本说明书一个或多个实施例描述了一种数字人动作重定向方法及装置,旨在实现对数字人的自动化动作重定向。
第一方面,提供了一种数字人动作重定向方法,用于在数字人建模平台中将第一骨骼的动作迁移至第二骨骼,所述第一骨骼和第二骨骼具有对应的多个关节对;所述方法包括:
确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系,其中包括与目标父子关节组合相关的第一转换关系和第二转换关系,其中,所述目标父子关节组合在第一骨骼中体现为第一父关节和第一子关节,在所述第二骨骼中体现为第二父关节和第二子关节;所述第一转换关系指示所述第一父关节与第二父关节之间的转换关系,所述第二转换关系指示所述第一子关节与第二子关节之间的转换关系;
多次执行动作赋值操作,所述动作赋值操作包括:
调用预定接口,从所述建模平台中获取所述第一子关节在目标运动姿态下的第一旋转角;至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,将其赋值给所述第二子关节。
在一种可能的实施方式中,所述第一转换关系为父变换矩阵,所述父变换矩阵为所述第二父关节的局部坐标系变换为所述第一父关节的局部坐标系的变换矩阵;所述第二转换关系为子变换矩阵,所述子变换矩阵为所述第二子关节的局部坐标系变换为所述第一子关节的局部坐标系的变换矩阵。
在一种可能的实施方式中,确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系,包括:
从所述建模平台获取第一世界变换矩阵和第二世界变换矩阵,所述第一世界变换矩阵为所述建模平台构建的全局的***坐标系变换为所述第一骨骼的世界坐标系的变换矩阵,所述第二世界变换矩阵为所述***坐标系变换为所述第二骨骼的世界坐标系的变换矩阵;
根据所述第一世界变换矩阵、第二世界变换矩阵以及所述第一父关节和第二父关节各自的局部坐标系,确定所述父变换矩阵;
根据所述第一世界变换矩阵、第二世界变换矩阵以及所述第一子关节和第二子关节各自的局部坐标系,确定所述子变换矩阵。
在一种可能的实施方式中,确定所述父变换矩阵,包括:
从所述建模平台上获取第一局部变换矩阵和第二局部变换矩阵,所述第一局部变换矩阵为第一骨骼的世界坐标系变换为所述第一父关节的局部坐标系的变换矩阵,所述第二局部变换矩阵为第二骨骼的世界坐标系变换为所述第二父关节的局部坐标系的变换矩阵;
根据所述第二局部变换矩阵的逆矩阵、所述第二世界变换矩阵的逆矩阵、所述第一世界变换矩阵和所述第一局部变换矩阵的乘积,确定所述父变换矩阵。
在一种可能的实施方式中,确定所述子变换矩阵,包括:
从所述建模平台上获取第三局部变换矩阵和第四局部变换矩阵,所述第三局部变换矩阵为第一骨骼的世界坐标系变换为所述第一子关节的局部坐标系的变换矩阵,所述第四局部变换矩阵为第二骨骼的世界坐标系变换为所述第二子关节的局部坐标系的变换矩阵;
根据所述第四局部变换矩阵的逆矩阵、所述第二世界变换矩阵的逆矩阵、所述第一世界变换矩阵和所述第三局部变换矩阵的乘积,确定所述子变换矩阵。
在一种可能的实施方式中,至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一旋转角确定对应的第一旋转矩阵;
根据所述父变换矩阵、所述第一旋转矩阵与所述子变换矩阵的逆矩阵的乘积,确定第二旋转矩阵;
根据所述第二旋转矩阵确定对应的第二旋转角。
在一种可能的实施方式中,还包括:
从所述建模平台上获取第三转换关系和第四转换关系,其中,所述第三转换关系指示所述第一父关节与第一子关节之间的转换关系,所述第四转换关系指示所述第二父关节与第二子关节之间的转换关系。
在一种可能的实施方式中,至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一转换关系、第二转换关系、第三转换关系、第四转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角。
在一种可能的实施方式中,所述第三转换关系为第一基准变换矩阵,所述第一基准变换矩阵为所述第一父关节的局部坐标系变换为所述第一子关节的基准坐标系的变换矩阵;所述第四转换关系为第二基准变换矩阵,所述第二基准变换矩阵为所述第二父关节的局部坐标系变换为所述第二子关节的基准坐标系的变换矩阵。
在一种可能的实施方式中,根据所述第一转换关系、第二转换关系、第三转换关系、第四转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一旋转角确定对应的第一旋转矩阵;
根据所述第二基准变换矩阵的逆矩阵、所述父变换矩阵、所述第一基准变换矩阵、所述第一旋转矩阵与所述子变换矩阵的逆矩阵的乘积,确定第二旋转矩阵;
根据所述第二旋转矩阵确定对应的第二旋转角。
在一种可能的实施方式中,在所述静置姿态下,所述第一子关节相对于所述第一子关节的基准坐标系的旋转角为0;所述第二子关节相对于所述第二子关节的基准坐标系的旋转角为0。
在一种可能的实施方式中,所述第一旋转角为所述第一子关节相对于所述静置姿态下的旋转角;所述第二旋转角为所述第二子关节相对于所述静置姿态下的旋转角。
在一种可能的实施方式中,在所述静置姿态下,所述第一子关节相对于所述第一父关节的局部坐标系的旋转角为0;所述第二子关节相对于所述第二父关节的局部坐标系的旋转角为0。
在一种可能的实施方式中,所述静置姿态为T-pose或A-pose。
在一种可能的实施方式中,所述第一旋转角和第二旋转角的表示形式为欧拉角、四元数和轴角中的任意一种。
第二方面,提供了一种数字人动作重定向装置,用于在数字人建模平台中将第一骨骼的动作迁移至第二骨骼,所述第一骨骼和第二骨骼具有对应的多个关节对;所述装置包括:
确定单元,配置为,确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系,其中包括与目标父子关节组合相关的第一转换关系和第二转换关系,其中,所述目标父子关节组合在第一骨骼中体现为第一父关节和第一子关节,在所述第二骨骼中体现为第二父关节和第二子关节;所述第一转换关系指示所述第一父关节与第二父关节之间的转换关系,所述第二转换关系指示所述第一子关节与第二子关节之间的转换关系;
动作赋值单元,配置为,多次执行动作赋值操作,所述动作赋值操作包括:
调用预定接口,从所述建模平台中获取所述第一子关节在目标运动姿态下的第一旋转角;至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,将其赋值给所述第二子关节。
在一种可能的实施方式中,还包括:
获取单元,配置为,从所述建模平台上获取第三转换关系和第四转换关系,其中,所述第三转换关系指示所述第一父关节与第一子关节之间的转换关系,所述第四转换关系指示所述第二父关节与第二子关节之间的转换关系。
在一种可能的实施方式中,至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一转换关系、第二转换关系、第三转换关系、第四转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
本说明书实施例提出的一种数字人动作重定向方法及装置,相比较于基于数据驱动的方法,所述方法不需要大量动作数据驱动,对于大多数实际业务场景十分友好。同时,通过自动化的动作重定向方法,减少了手动操作的工作量,适合部署成线上自动化流程。
附图说明
为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的数字人动作重定向方法的实施场景示意图;
图2示出根据一个实施例的数字人动作重定向方法的流程图;
图3示出根据一个实施例的A-pose和T-pose的骨骼姿态示意图;
图4示出根据一个实施例的父关节和子关节的相对关系的示意图;
图5示出根据另一个实施例的父关节和子关节的相对关系的示意图;
图6示出根据一个实施例的静置姿态下源骨骼和目标骨骼的关节转换关系的示意图;
图7示出根据一个实施例的运动姿态下源骨骼和目标骨骼的关节转换关系的示意图;
图8示出根据一个实施例的数字人动作重定向装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
数字人动作重定向(motion retargeting)是一种将数字人角色A的动作数据赋予在数字人角色B上,使得B完成与A一致的动作或姿态的技术。目前,很多专业的动画软件和建模平台都已经针对该问题集成了重定向方案,例如Maya的human IK***,Unity的humanoid,不过这些工具大都需要在建模平台的编辑器内部手动将两个骨骼的一系列关节进行一对一配对,配对完成后进一步将源骨骼各个关节的旋转角度赋值给目标骨骼,从而实现源骨骼动画迁移到目标骨骼上的效果。这种手动的方式尽管难度不高,但是自动化程度较低,若有多个动作需要重定向则需要多次导入源骨骼的动作来进行操作,此外对于编辑器没有使用经验的人也存在一定的上手门槛。
为了降低使用者的上手门槛,并且提高重定向的自动化程度,本说明书实施例提出了一种数字人动作重定向方法及装置,基于前向运动学的动作重定向方法,利用建模平台中内置的接口实现不同骨骼间的关节映射关系计算,从而将源骨骼中的动作数据映射到目标骨骼中,完成跨骨骼的动作迁移。
图1示出根据一个实施例的数字人动作重定向方法的实施场景示意图。如图1所示,有待进行动作重定向的对象包括源骨骼和目标骨骼,所述源骨骼和目标骨骼上分别包含若干关节,且源骨骼和目标骨骼上的关节一一对应,形成若干个关节对。骨骼的每个关节有着对应的旋转角,通过调整骨骼上各个关节的旋转角,便可以使骨骼做出相应的动作。源骨骼上有着一系列的动作数据,包括在不同时间点对应的不同动作,其中,任一时间点的动作由骨骼上的各关节的旋转角所表示。
在典型的情况下,建模平台具有全局的***坐标系,源骨骼和目标骨骼各自拥有着不同的世界坐标系,且源骨骼和目标骨骼中每一组对应的关节具有各自不同的基准坐标系和局部坐标系。因此,在对目标骨骼进行动作重定向时,不能将源骨骼每个关节的旋转角直接赋值给目标骨骼对应的关节。
本说明书实施例通过将源骨骼和目标骨骼设定为相同的静置姿态,以计算出源骨骼和目标骨骼中每一组对应的关节对之间的转换关系。然后,根据源骨骼在任一时间点上的运动姿态所对应的动作数据,根据上述转换关系,计算出目标骨骼在相应时间点上任一关节的旋转角,并赋值给目标骨骼对应的关节。上述操作通过自动化脚本调用建模平台提供的接口完成。通过自动化脚本将源骨骼在一段时间内的动作数据重定向到目标骨骼上,以完成跨骨骼的动作迁移。可以理解的是,图1示出的源世界坐标系和目标世界坐标系仅是一个示例,并非唯一的情况,在实际应用中,在***坐标系下,源世界坐标系和目标世界坐标系可以表现为任意角度的旋转。
以下结合具体的实施例,描述上述动作重定向方法的具体实施步骤。图2示出根据一个实施例的数字人动作重定向方法的流程图,用于在数字人建模平台中将第一骨骼的动作迁移至第二骨骼,所述第一骨骼和第二骨骼具有对应的多个关节对,所述方法的执行主体可以为任何具有计算、处理能力的平台或服务器或设备集群等。所述方法至少包括步骤210和步骤230。
在步骤210,确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系。
具体地,所述第一骨骼可以是源骨骼,所述第二骨骼可以是目标骨骼。
骨骼包含多个关节,其中包括一个根关节(一般是靠近数字人人体中部的关节,例如腰部关节或臀部关节)。多个关节之间相互连接,从根关节开始向外延伸,靠近根关节的关节为远离根关节的关节的父关节,反之,远离根关节的关节为靠近根关节的关节的子关节。在一些实施例中,一对父关节与子关节相互连接。一个父关节与其子关节形成一个父子关节组合。例如,大臂关节是小臂关节的父关节,反之,小臂关节是大臂关节的子关节,则大臂关节和小臂关节形成一个父子关节组合;而小臂关节相对于手腕关节来说又是手腕关节的父关节,小臂关节和手腕关节又形成了另一个父子关节组合。
数字人建模平台拥有自身固定的***坐标系。在一种典型的实施场景中,建模平台中的骨骼拥有自身的全局坐标系(即骨骼的世界坐标系),同时,多个骨骼会分别拥有自身的全局坐标系,且这些全局坐标系相对于***坐标系可能有着不同的旋转角。骨骼中的任一关节都拥有自己的基准坐标系和局部坐标系。关节的局部坐标系与该关节绑定,并随着关节的旋转而旋转,而基准坐标系在关节的旋转过程中保持不变。通过旋转某一关节的局部坐标系,以实现该关节的旋转,旋转的度量则根据该关节的局部坐标系相对于该关节的基准坐标系的偏移确定。
所述数字人建模平台可以是任意对数字人模型具有创建、编辑、操作和保存等功能的平台,例如Autodesk Maya、Autodesk 3ds Max、Blender等平台。
在确定源骨骼和目标骨骼的各个对应关节对之间的转换关系时,首先,将源骨骼和目标骨骼设定为相同的静置姿态。
静置姿态是指在没有进行任何动作或运动的情况下,数字人所处一种稳定的、平衡的基本姿态。在一些实施例中,静置姿态可以是如图3所示的A-pose或T-pose。如图3所示,处于A-pose姿态的骨骼整体呈站立姿态,双腿直立略微分开,双臂略微抬起,上身呈“A”形;处于T-pose姿态的骨骼整体呈站立姿态,双腿直立,双臂抬起至平举,与身体呈直角,全身整体呈“T”形。
在静置姿态下,骨骼的任一关节的局部旋转角为0。关节的局部旋转角是指,该关节相对于自身的基准坐标系的旋转角。
在一些实施例中,在静置姿态下,一些关节与其父关节呈几乎平行的相对位置,例如,小臂和其父关节大臂。如图4所示,此时,该关节的基准坐标系为其父关节的局部坐标系,使得该关节与其父关节在所述静置姿态下的局部旋转角都为0。换言之,该关节相对于其父关节的局部坐标系的旋转角为0。例如,此处请参考图4中的父关节src_joint_P和其子关节src_joint_C_special之间的关系,每个关节由一个菱形与一个三角形组成,并绑定了该关节的局部坐标系。父关节src_joint_P为左侧浅灰色实线关节,子关节src_joint_C_special为右侧浅灰色虚线关节。在静置姿态下,父关节的局部旋转角相对于其基准坐标系为0,在父关节与子关节几乎平行的情况下,子关节相对于父关节的局部坐标系的旋转角也为0。
在另一些实施例中,在静置姿态下,一些关节与其父关节之间存在夹角,例如,脚和其父关节小腿,存在一个约为直角的夹角。如图5所示,此时,该关节的基准坐标系为其父关节的局部坐标系经过一个基准变换矩阵进行变换后的坐标系,使得该关节与其父关节在所述静置姿态下的局部旋转角都为0。例如,此处请参考图5中的父关节src_joint_P和其子关节src_joint_C_special之间的关系,每个关节由一个菱形与一个三角形组成,并绑定了该关节的局部坐标系。父关节src_joint_P为上面的浅灰色实线关节,子关节src_joint_C_special为浅灰色虚线关节。在静置姿态下,父关节的局部旋转角相对于其基准坐标系为0,在父关节与子关节相互垂直的情况下,子关节的基准坐标系需要由父关节的局部坐标系经过一个基准变换矩阵Ms_base_C的变换之后,才能使得在静置姿态下,子关节的局部旋转角也为0。
旋转角的表示方式可以是任意的形式,例如,在三维建模环境中,旋转角可以是欧拉角、四元数或轴角。
在将源骨骼和目标骨骼设定为相同的静置姿态之后,计算并存储源骨骼和目标骨骼中各个对应关节对之间的转换关系。在一些实施例中,所述转换关系可以由变换矩阵表示。计算一对关节对之间的变换矩阵的方法如图6所示。
如图6所示,在建模平台的全局的***坐标系下,源骨骼拥有自己的源世界坐标系,并包含源关节src_joint_i,目标骨骼拥有自己的目标世界坐标系,并包含目标关节tgt_joint_i。源关节src_joint_i和目标关节tgt_joint_i为一对对应的关节对。源世界变换矩阵S_w为***坐标系变换为源世界坐标系的变换矩阵,目标世界变换矩阵T_w为***坐标系变换为目标世界坐标系的变换矩阵。源局部变换矩阵Ms_i为源世界坐标系变换为源关节src_joint_i的局部坐标系的变换矩阵,目标局部变换矩阵Mt_i为目标世界坐标系变换为目标关节tgt_joint_i的局部坐标系的变换矩阵。关节变换矩阵M_trans为目标关节tgt_joint_i的局部坐标系变换为源关节src_joint_i的局部坐标系的变换矩阵。
由于S_w、T_w、Ms_i、Mt_i都是相应的骨骼和关节内在的特征,故它们都可以使用脚本调用建模平台提供的API接口(Application Programming Interface,应用编程接口),从建模平台的数据中直接获取得到。通过S_w、T_w、Ms_i、Mt_i计算关节变换矩阵M_trans的方程如公式(1)所示:
S_w*Ms_i=T_w*Mt_i*M_trans (1)
公式(1)的左侧为***坐标系经过S_w变换为源世界坐标系,再经过Ms_i变换为源关节src_joint_i,公式(1)的右侧为***坐标系经过T_w变换为目标世界坐标系,再经过Mt_i变换为目标关节tgt_joint_i,再经过M_trans变换为源关节src_joint_i。由于公式(1)的左右两侧都是从***坐标系变换为源关节src_joint_i的过程,故左右两侧相等。通过解公式(1)表示的方程,可以得到关节变换矩阵M_trans的值,如公式(2)所示:
M_trans=(Mt_i)-1*(T_w)-1*S_w*Ms_i (2)
对于源骨骼和目标骨骼之间的每一对对应的关节对,根据公式(2)计算其对应的关节变换矩阵M_trans,并存储起来,以便在后续的步骤中使用。
在计算并存储源骨骼和目标骨骼之间的每一对对应的关节对之间的关节变换矩阵M_trans后,还需要根据关节变换矩阵和源骨骼的关节的旋转角,确定目标骨骼对应的关节的旋转角。
如前所述,一个数字人骨骼包含根关节以及多个父子关节组合,数字人在任一时间点的动作由骨骼上的各关节的旋转角所表示。在为数字人配置动作时,可以按照多个父子关节组合中父关节与子关节的关系,从根关节开始逐渐向数字人人体的末端延申设置每个关节的旋转角,即分别配置每一个父子关节组合中的子关节相对于其父关节的旋转角,最终配置到数字人的末端关节,例如手指关节、头部关节等等。例如,对于数字人的右腿来说,从其根关节腰关节开始,首先配置其子关节右大腿关节相对于腰关节的旋转角,然后配置右小腿相对于右大腿关节的旋转角,再配置右脚腕相对于右小腿的旋转角。按照上述方案,在为数字人配置动作时,可以将数字人拆成若干个父子关节组合作为最小操作单元,将对一个父子关节组合的配置方案推及到全身即可。
为了描述的清楚,下面结合一组父子关节组合进行描述。假定某个目标父子关节组合在第一骨骼中体现为第一父关节和第一子关节,在第二骨骼中体现为第二父关节和第二子关节。其中,第一父关节和第二父关节构成一对对应的关节对,将其局部坐标系输入上述公式(2),可以得到第一转换关系,其指示所述第一父关节与第二父关节之间的转换关系。该第一转换关系可体现为父变换矩阵。另外,第一子关节和第二子关节构成一对对应的关节对,将其局部坐标系输入上述公式(2),可以得到第二转换关系,其指示所述第一子关节与第二子关节之间的转换关系。该第二转换关系可体现为子变换矩阵。
然后,在步骤230,多次执行动作赋值操作,所述动作赋值操作至少包括步骤231和步骤232:
在步骤231,调用预定接口,从所述建模平台中获取所述第一子关节在目标运动姿态下的第一旋转角。所述第一旋转角为所述第一子关节相对于所述静置姿态下的旋转角。
源骨骼的动作数据包括在不同时间点对应的不同运动姿态,任一时间点的运动姿态由骨骼上的各关节的旋转角所表示。由于源骨骼的动作数据是事先确定的,故源骨骼在任一时间点的目标运动姿态下的任一关节的旋转角都是确定的,可以使用脚本调用建模平台提供的API接口从建模平台的数据中直接获取得到。
在步骤232,至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,将其赋值给所述第二子关节。所述第二旋转角为所述第二子关节相对于所述静置姿态下的旋转角。
具体地,计算第二旋转角的方法如图7所示。如图7所示,在建模平台的全局的***坐标系下(图中未示出),源骨骼包含第一父关节src_joint_P和第一子关节src_joint_C,目标骨骼包含第二父关节tgt_joint_P和第二子关节tgt_joint_C。第一父关节src_joint_P与第二父关节tgt_joint_P为对应的关节对,对应的变换矩阵为M_trans_P,第一子关节src_joint_C与第二子关节tgt_joint_C为对应的关节对,对应的变换矩阵为M_trans_C。第一子关节src_joint_C相对于其基准坐标系的第一旋转角所对应的第一旋转矩阵为Ms,第二子关节tgt_joint_C相对于其基准坐标系的第二旋转角所对应的第人旋转矩阵为Mt。第一父关节src_joint_P的局部坐标系变换为第一子关节src_joint_C的基准坐标系的第一基准变换矩阵为Ms_base_C,第二父关节tgt_joint_P的局部坐标系变换为第二子关节tgt_joint_C的基准坐标系的第二基准变换矩阵为Mt_base_C。
旋转角与其对应的旋转矩阵之间可以通过调用现有库中的方法进行互相转换。例如,当旋转角的表示形式为欧拉角时,通过python的transforms3d库中的euler.euler2mat()和euler.mat2euler()方法分别实现旋转角到旋转矩阵、旋转矩阵到旋转角之间的转换。
在一些可能的实施方式中,第一父关节src_joint_P与第一子关节src_joint_C在前述的静置姿态下呈几乎平行的相对位置,此时,第一子关节src_joint_C的基准坐标系为第一父关节src_joint_P的局部坐标系,第一基准变换矩阵为Ms_base_C退化为单位矩阵,在矩阵变换操作中可以省略,同理,第二子关节tgt_joint_C的基准坐标系为第二父关节tgt_joint_P的局部坐标系,第二基准变换矩阵为Mt_base_C退化为单位矩阵,在矩阵变换操作中也可以省略。
此时,M_trans_P和M_trans_C已经在步骤210中计算得到,Ms根据第一旋转角转换得到。通过M_trans_P、M_trans_C、Ms计算第二旋转矩阵Mt的方程如公式(3)所示:
M_trans_P*Ms=Mt*M_trans_C (3)
公式(3)的左侧为第二父关节tgt_joint_P的局部坐标系经过M_trans_P变换为第一父关节的src_joint_P的局部坐标系,再经过Ms变换为第一子关节src_joint_C在目标运动姿态下的旋转位置,公式(3)的右侧为第二父关节tgt_joint_P的局部坐标系经过Mt变换为第二子关节tgt_joint_C在目标运动姿态下的旋转位置,再经过M_trans_C变换为第一子关节src_joint_C在目标运动姿态下的旋转位置。由于公式(3)左右两侧都是从第二父关节tgt_joint_P的局部坐标系变换为第一子关节src_joint_C在目标运动姿态下的旋转位置的过程,故左右两侧相等。通过解公式(3)表示的方程,可以得到第二旋转矩阵Mt的值,如公式(4)所示:
Mt=M_trans_P*Ms*(M_trans_C)-1 (4)
在根据公式(4)计算得到第二旋转矩阵Mt的值后,再将第二旋转矩阵Mt转换为对应的第二旋转角,将其赋值给第二子关节tgt_joint_C。自此,便完成了将第一子关节src_joint_C在目标运动姿态下的旋转角重定向到第二子关节tgt_joint_C的过程。
在一些可能的实施方式中,第一父关节src_joint_P与第一子关节src_joint_C之间在前述的静置姿态下存在夹角,此时,第一子关节src_joint_C的基准坐标系为第一父关节src_joint_P的局部坐标系经过第一基准变换矩阵Ms_base_C变换得到,第二子关节tgt_joint_C的基准坐标系为第二父关节tgt_joint_P的局部坐标系经过第二基准变换矩阵Mt_base_C变换得到。
此时,所述方法还包括步骤220:从所述建模平台上获取第三转换关系和第四转换关系,其中,所述第三转换关系指示所述第一父关节与第一子关节之间的转换关系,所述第四转换关系指示所述第二父关节与第二子关节之间的转换关系。前述步骤232包括:根据所述第一转换关系、第二转换关系、第三转换关系、第四转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角。
具体地,第三转换关系为第一基准变换矩阵Ms_base_C,第四转换关系为第二基准变换矩阵Mt_base_C。第一基准变换矩阵Ms_base_C第二基准变换矩阵Mt_base_C可以使用脚本调用建模平台提供的API接口从建模平台的数据中直接获取得到。
此时,M_trans_P和M_trans_C已经在步骤210中计算得到,Ms_base_C、Mt_base_C根据API获得,Ms根据第一旋转角转换得到。通过M_trans_P、M_trans_C、Ms_base_C、Mt_base_C、Ms计算第二旋转矩阵Mt的方程如公式(5)所示:
M_trans_P*Ms_base_C*Ms=Mt_base_C*Mt*M_trans_C (5)
公式(5)的左侧为第二父关节tgt_joint_P的局部坐标系经过M_trans_P变换为第一父关节的src_joint_P的局部坐标系,再经过Ms_base_C变换为第一子关节src_joint_C的基准坐标系,再经过Ms变换为第一子关节src_joint_C在目标运动姿态下的旋转位置,公式(5)的右侧为第二父关节tgt_joint_P的局部坐标系经过Mt_base_C变换为第二子关节tgt_joint_C的基准坐标系,再经过Mt变换为第二子关节tgt_joint_C在目标运动姿态下的旋转位置,再经过M_trans_C变换为第一子关节src_joint_C在目标运动姿态下的旋转位置。由于公式(5)左右两侧都是从第二父关节tgt_joint_P的局部坐标系变换为第一子关节src_joint_C在目标运动姿态下的旋转位置的过程,故左右两侧相等。通过解公式(5)表示的方程,可以得到第二旋转矩阵Mt的值,如公式(6)所示:
Mt=(Mt_gase_C)-1*M_trans_P*Ms_base_C*Ms*(M_trans_C)-1 (6)
在根据公式(6)计算得到第二旋转矩阵Mt的值后,再将第二旋转矩阵Mt转换为对应的第二旋转角,将其赋值给第二子关节tgt_joint_C。自此,便完成了将第一子关节src_joint_C在目标运动姿态下的旋转角重定向到第二子关节tgt_joint_C的过程。
步骤231和步骤232涉及对源骨骼和目标骨骼的一组目标父子关节组合的迁移方案,通过对目标骨骼上的每一个父子关节组合的都进行相似的动作赋值操作,便可以将源骨骼的动作重定向到目标骨骼上。
在使用脚本根据步骤210预先确定并存储了各关节对的变换矩阵后,通过使用脚本在一段时间内的不同的时间点分别执行步骤230,便可以将源骨骼在该时间段内的动作数据重定向到目标骨骼上,完成整个动作重定向的过程。
在另一些情况下,建模平台具有全局的***坐标系,源骨骼和目标骨骼都使用建模平台的***坐标系,而不拥有各自的世界坐标系,源骨骼和目标骨骼中每一组对应的关节具有各自不同的基准坐标系。此时,相对于上面的典型的情况,由于源骨骼和目标骨骼没有了自己的世界坐标系,在进行坐标变换时,会直接从***坐标系变换到任一关节的局部坐标系,此时,前述的父变换矩阵和子变换矩阵的形式和计算方法都会有相应的变化。通过参照前述方法修改相应的公式即可。
同时,前述的关节对之间的转换关系还可以是其它形式,例如可以是旋转角。此时,第一转换关系为父旋转角,指示第二父关节旋转到第一父关节的位置时所需要转过的角度;第二转换关系为子旋转角,指示第二子关节旋转到第一子关节的位置时所需要转过的角度。
本说明书一个或多个实施例中利用了不同骨骼之间关节坐标系的映射变换进行动作重定向,该变换无需基于现有动作集,仅需要源骨骼和目标骨骼的一对相同的静置姿态即可,在实际业务中很容易满足;同时,本说明书实施例不需要划分骨骼拓扑组,只需要提供不同骨骼的对应关节,这一点不需要太多经验和技巧;并且,本说明书实施例所述的建模平台支持多种数据格式,更加适用于实际业务场景。
在一个具体的实施例中,使用的数字人建模平台为Blender。Blender是一款免费、开源的3D建模和动画软件。它可以用于创建3D模型、动画、渲染和后期制作,广泛用于创建动画电影、游戏、建筑可视化和工业设计等。使用的脚本为Blender Scripts,是基于Python的可以在Blender中执行的脚本。使用的API为bpy,即blender python api,是Blender使用Python与***执行数据交换和功能调用的接口模块。
将源骨骼和目标骨骼导入到Blender中,并设置成相同的静置姿态,例如A-pose。设置源骨骼和目标骨骼中关节的对应关系,然后通过执行Blender Scripts脚本,调用bpy从Blender中获取源骨骼和目标骨骼的数据,并计算源骨骼和目标骨骼中每对关节对的转换关系,然后存储起来。然后通过执行Blender Scripts脚本,调用bpy从Blender中获取源骨骼的运动动画数据,计算目标骨骼中的各关节的旋转角并赋值给目标骨骼的相应关节,完成从源骨骼到目标骨骼的动作重定向。
根据另一方面的实施例,还提供一个实施例的数字人动作重定向装置。图8示出根据一个实施例的数字人动作重定向装置的示意性框图,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。如图8所示,该装置800包括:
确定单元801,配置为,确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系,其中包括与目标父子关节组合相关的第一转换关系和第二转换关系,其中,所述目标父子关节组合在第一骨骼中体现为第一父关节和第一子关节,在所述第二骨骼中体现为第二父关节和第二子关节;所述第一转换关系指示所述第一父关节与第二父关节之间的转换关系,所述第二转换关系指示所述第一子关节与第二子关节之间的转换关系;
动作赋值单元803,配置为,多次执行动作赋值操作,所述动作赋值操作包括:
调用预定接口,从所述建模平台中获取所述第一子关节在目标运动姿态下的第一旋转角;至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,将其赋值给所述第二子关节。
在一种可能的实施方式中,该装置800还包括:
获取单元802,配置为,从所述建模平台上获取第三转换关系和第四转换关系,其中,所述第三转换关系指示所述第一父关节与第一子关节之间的转换关系,所述第四转换关系指示所述第二父关节与第二子关节之间的转换关系。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一实施例所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一实施例所描述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种数字人动作重定向方法,用于在数字人建模平台中将第一骨骼的动作迁移至第二骨骼,所述第一骨骼和第二骨骼具有对应的多个关节对;所述方法包括:
确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系,其中包括与目标父子关节组合相关的第一转换关系和第二转换关系,其中,所述目标父子关节组合在第一骨骼中体现为第一父关节和第一子关节,在所述第二骨骼中体现为第二父关节和第二子关节;所述第一转换关系指示所述第一父关节与第二父关节之间的转换关系,所述第二转换关系指示所述第一子关节与第二子关节之间的转换关系;其中,所述第一转换关系为父变换矩阵,所述父变换矩阵为所述第二父关节的局部坐标系变换为所述第一父关节的局部坐标系的变换矩阵;所述第二转换关系为子变换矩阵,所述子变换矩阵为所述第二子关节的局部坐标系变换为所述第一子关节的局部坐标系的变换矩阵;
多次执行动作赋值操作,所述动作赋值操作包括:
调用预定接口,从所述建模平台中获取所述第一子关节在目标运动姿态下的第一旋转角;至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,将其赋值给所述第二子关节。
2.根据权利要求1所述的方法,其中,确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系,包括:
从所述建模平台获取第一世界变换矩阵和第二世界变换矩阵,所述第一世界变换矩阵为所述建模平台构建的全局的***坐标系变换为所述第一骨骼的世界坐标系的变换矩阵,所述第二世界变换矩阵为所述***坐标系变换为所述第二骨骼的世界坐标系的变换矩阵;
根据所述第一世界变换矩阵、第二世界变换矩阵以及所述第一父关节和第二父关节各自的局部坐标系,确定所述父变换矩阵;
根据所述第一世界变换矩阵、第二世界变换矩阵以及所述第一子关节和第二子关节各自的局部坐标系,确定所述子变换矩阵。
3.根据权利要求2所述的方法,其中,确定所述父变换矩阵,包括:
从所述建模平台上获取第一局部变换矩阵和第二局部变换矩阵,所述第一局部变换矩阵为第一骨骼的世界坐标系变换为所述第一父关节的局部坐标系的变换矩阵,所述第二局部变换矩阵为第二骨骼的世界坐标系变换为所述第二父关节的局部坐标系的变换矩阵;
根据所述第二局部变换矩阵的逆矩阵、所述第二世界变换矩阵的逆矩阵、所述第一世界变换矩阵和所述第一局部变换矩阵的乘积,确定所述父变换矩阵。
4.根据权利要求2所述的方法,其中,确定所述子变换矩阵,包括:
从所述建模平台上获取第三局部变换矩阵和第四局部变换矩阵,所述第三局部变换矩阵为第一骨骼的世界坐标系变换为所述第一子关节的局部坐标系的变换矩阵,所述第四局部变换矩阵为第二骨骼的世界坐标系变换为所述第二子关节的局部坐标系的变换矩阵;
根据所述第四局部变换矩阵的逆矩阵、所述第二世界变换矩阵的逆矩阵、所述第一世界变换矩阵和所述第三局部变换矩阵的乘积,确定所述子变换矩阵。
5.根据权利要求1所述的方法,其中,至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一旋转角确定对应的第一旋转矩阵;
根据所述父变换矩阵、所述第一旋转矩阵与所述子变换矩阵的逆矩阵的乘积,确定第二旋转矩阵;
根据所述第二旋转矩阵确定对应的第二旋转角。
6.根据权利要求1所述的方法,还包括:
从所述建模平台上获取第三转换关系和第四转换关系,其中,所述第三转换关系指示所述第一父关节与第一子关节之间的转换关系,所述第四转换关系指示所述第二父关节与第二子关节之间的转换关系。
7.根据权利要求6所述的方法,其中,至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一转换关系、第二转换关系、第三转换关系、第四转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角。
8.根据权利要求7所述的方法,其中,所述第三转换关系为第一基准变换矩阵,所述第一基准变换矩阵为所述第一父关节的局部坐标系变换为所述第一子关节的基准坐标系的变换矩阵;所述第四转换关系为第二基准变换矩阵,所述第二基准变换矩阵为所述第二父关节的局部坐标系变换为所述第二子关节的基准坐标系的变换矩阵。
9.根据权利要求8所述的方法,其中,根据所述第一转换关系、第二转换关系、第三转换关系、第四转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一旋转角确定对应的第一旋转矩阵;
根据所述第二基准变换矩阵的逆矩阵、所述父变换矩阵、所述第一基准变换矩阵、所述第一旋转矩阵与所述子变换矩阵的逆矩阵的乘积,确定第二旋转矩阵;
根据所述第二旋转矩阵确定对应的第二旋转角。
10.根据权利要求8所述的方法,其中,在所述静置姿态下,所述第一子关节相对于所述第一子关节的基准坐标系的旋转角为0;所述第二子关节相对于所述第二子关节的基准坐标系的旋转角为0。
11.根据权利要求1所述的方法,其中,所述第一旋转角为所述第一子关节相对于所述静置姿态下的旋转角;所述第二旋转角为所述第二子关节相对于所述静置姿态下的旋转角。
12.根据权利要求1所述的方法,其中,在所述静置姿态下,所述第一子关节相对于所述第一父关节的局部坐标系的旋转角为0;所述第二子关节相对于所述第二父关节的局部坐标系的旋转角为0。
13.根据权利要求1所述的方法,其中,所述静置姿态为T-pose或A-pose。
14.根据权利要求1所述的方法,其中,所述第一旋转角和第二旋转角的表示形式为欧拉角、四元数和轴角中的任意一种。
15.一种数字人动作重定向装置,用于在数字人建模平台中将第一骨骼的动作迁移至第二骨骼,所述第一骨骼和第二骨骼具有对应的多个关节对;所述装置包括:
确定单元,配置为,确定并存储静置姿态下第一骨骼和第二骨骼中各个对应关节对之间的转换关系,其中包括与目标父子关节组合相关的第一转换关系和第二转换关系,其中,所述目标父子关节组合在第一骨骼中体现为第一父关节和第一子关节,在所述第二骨骼中体现为第二父关节和第二子关节;所述第一转换关系指示所述第一父关节与第二父关节之间的转换关系,所述第二转换关系指示所述第一子关节与第二子关节之间的转换关系;其中,所述第一转换关系为父变换矩阵,所述父变换矩阵为所述第二父关节的局部坐标系变换为所述第一父关节的局部坐标系的变换矩阵;所述第二转换关系为子变换矩阵,所述子变换矩阵为所述第二子关节的局部坐标系变换为所述第一子关节的局部坐标系的变换矩阵;
动作赋值单元,配置为,多次执行动作赋值操作,所述动作赋值操作包括:
调用预定接口,从所述建模平台中获取所述第一子关节在目标运动姿态下的第一旋转角;至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,将其赋值给所述第二子关节。
16.根据权利要求15所述的装置,还包括:
获取单元,配置为,从所述建模平台上获取第三转换关系和第四转换关系,其中,所述第三转换关系指示所述第一父关节与第一子关节之间的转换关系,所述第四转换关系指示所述第二父关节与第二子关节之间的转换关系。
17.根据权利要求16所述的装置,其中,至少根据所述第一转换关系、第二转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角,包括:
根据所述第一转换关系、第二转换关系、第三转换关系、第四转换关系与第一旋转角,确定所述第二子关节在所述目标运动姿态下的第二旋转角。
18.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-14中任一项所述的方法。
19.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310748591.XA CN116805344B (zh) | 2023-06-21 | 2023-06-21 | 一种数字人动作重定向方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310748591.XA CN116805344B (zh) | 2023-06-21 | 2023-06-21 | 一种数字人动作重定向方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116805344A CN116805344A (zh) | 2023-09-26 |
CN116805344B true CN116805344B (zh) | 2024-05-24 |
Family
ID=88079352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310748591.XA Active CN116805344B (zh) | 2023-06-21 | 2023-06-21 | 一种数字人动作重定向方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116805344B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107833271A (zh) * | 2017-09-30 | 2018-03-23 | 中国科学院自动化研究所 | 一种基于Kinect的骨骼重定向方法及装置 |
CN112686976A (zh) * | 2020-12-31 | 2021-04-20 | 咪咕文化科技有限公司 | 骨骼动画数据的处理方法、装置及通信设备 |
CN115222855A (zh) * | 2022-04-25 | 2022-10-21 | 网易(杭州)网络有限公司 | 动画重定向方法、装置、电子设备及可读存储介质 |
CN115601480A (zh) * | 2022-09-27 | 2023-01-13 | 北京达佳互联信息技术有限公司(Cn) | 虚拟对象驱动方法、装置、电子设备和存储介质 |
CN115761074A (zh) * | 2022-11-18 | 2023-03-07 | 北京优酷科技有限公司 | 动画数据处理方法、装置、电子设备及介质 |
-
2023
- 2023-06-21 CN CN202310748591.XA patent/CN116805344B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107833271A (zh) * | 2017-09-30 | 2018-03-23 | 中国科学院自动化研究所 | 一种基于Kinect的骨骼重定向方法及装置 |
CN112686976A (zh) * | 2020-12-31 | 2021-04-20 | 咪咕文化科技有限公司 | 骨骼动画数据的处理方法、装置及通信设备 |
CN115222855A (zh) * | 2022-04-25 | 2022-10-21 | 网易(杭州)网络有限公司 | 动画重定向方法、装置、电子设备及可读存储介质 |
CN115601480A (zh) * | 2022-09-27 | 2023-01-13 | 北京达佳互联信息技术有限公司(Cn) | 虚拟对象驱动方法、装置、电子设备和存储介质 |
CN115761074A (zh) * | 2022-11-18 | 2023-03-07 | 北京优酷科技有限公司 | 动画数据处理方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116805344A (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3454302B1 (en) | Approximating mesh deformation for character rigs | |
US11836843B2 (en) | Enhanced pose generation based on conditional modeling of inverse kinematics | |
US8797328B2 (en) | Automatic generation of 3D character animation from 3D meshes | |
US11992768B2 (en) | Enhanced pose generation based on generative modeling | |
CN112634419B (zh) | 一种运动重定向方法、装置、电子设备及存储介质 | |
CN111223171A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN113785330A (zh) | 使用相异的目标动画数据来训练人物的强化学习 | |
US20210125393A1 (en) | Parameterized animation modifications | |
CN111260764A (zh) | 一种制作动画的方法、装置及存储介质 | |
CN112927331B (zh) | 角色模型的动画生成方法和装置、存储介质及电子设备 | |
CN111292402B (zh) | 数据处理的方法、装置、设备及计算机可读存储介质 | |
WO2006133228A2 (en) | Adaptive contact based skeleton for animation of characters in video games | |
GB2546814A (en) | Animating a virtual object in a virtual world | |
JP4719155B2 (ja) | リグ・ベーキング | |
CN111080755B (zh) | 一种运动解算方法、装置、存储介质及电子设备 | |
CN116805344B (zh) | 一种数字人动作重定向方法及装置 | |
US20230120883A1 (en) | Inferred skeletal structure for practical 3d assets | |
JPH10302085A (ja) | Cgモデルの動作記録システム | |
Lin et al. | PuppetTalk: Conversation between glove puppetry and internet of things | |
CN115984433A (zh) | 骨骼动画生成方法、装置、存储介质及电子设备 | |
US9128516B1 (en) | Computer-generated imagery using hierarchical models and rigging | |
CN116485954A (zh) | 虚拟骨骼的修型方法和装置、存储介质及电子设备 | |
Majeed et al. | Automatic skinning of the simulated manipulator robot arm | |
CN118160008A (zh) | 实用3d资产的推断的骨骼结构 | |
Mastra et al. | Virtual Reality Dance Tracks from Skeletal Animations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |