CN115222855A - 动画重定向方法、装置、电子设备及可读存储介质 - Google Patents
动画重定向方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115222855A CN115222855A CN202210442138.1A CN202210442138A CN115222855A CN 115222855 A CN115222855 A CN 115222855A CN 202210442138 A CN202210442138 A CN 202210442138A CN 115222855 A CN115222855 A CN 115222855A
- Authority
- CN
- China
- Prior art keywords
- bone
- skeleton
- target
- transformation parameter
- global
- 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.)
- Pending
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种动画重定向方法、装置、电子设备及计算机可读存储介质,方法包括:获取原动画数据,针对重定向的目标骨架模型中的第j条重定向骨骼,执行以下操作:根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应,确定第一全局变换参数,确定第二全局变换参数,根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数。本申请可以通过计算机执行重定向的各个步骤,无需用户前期在三维动画软件上进行模型调整,简化了用户进行动画重定向的操作过程、重定向的效率更高。
Description
技术领域
本申请涉及计算机动画技术领域,具体涉及一种动画数据重定向方法、装置、电子设备及可读存储介质。
背景技术
动画重定向技术指的是将一个骨架模型的动画数据复用到其他骨架模型上,从而实现动画复用,动画重定向能够大幅度减少设计人员的工作量。当需要重定向的目标骨架模型与原动画的骨架模型结构不同时,例如,骨架姿态不同、骨骼层次结构不同等,若直接复用原动画的动画数据,容易出现扭曲变形、动作失调等错误情况。
为了使目标骨架模型更好地复用原动画的动画数据,相关技术中,通常需要设计人员从模型设计界面中手动将目标骨架模型的初始姿态调整为与原动画的原骨架模型姿态相同,再从设计界面中手动输入目标骨架模型的各骨骼与原骨架模型的各骨骼之间的对应关系,并对各个骨骼进行旋转调整,以更好地复用原动画的动画数据。
由于骨架模型的骨骼数量较多,骨骼层次结构较复杂,使得设计人员手动调整目标骨架模型的姿态的过程以及手动各骨骼对应关系的过程都十分繁琐,需要花费较长时间,从而导致进行动画重定向的过程较复杂、效率较低。
发明内容
本申请提供了一种动画数据重定向方法、装置及电子设备,能够简化用户进行动画重定向的操作过程、提高重定向的效率。具体方案如下:
第一方面,本申请实施例提供了一种动画重定向方法,所述方法包括:
获取原动画数据,所述原动画数据中包括原骨架模型对应的动作数据;
针对重定向的目标骨架模型中的第j条重定向骨骼,执行以下操作:
根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应;
确定第一全局变换参数,所述第一全局变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼对应的全局变换参数;
确定第二全局变换参数,所述第二全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼对应的全局变换参数;
根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,其中,j 遍历1~n,n为所述目标骨架模型中进行重定向的骨骼的数量。
可选地,所述动作数据中包括:所述原骨架模型的各条骨骼在其父骨骼坐标系下的相对变换参数;
所述根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下的全局变换参数,包括:
根据第i条骨骼对应的相对变换参数以及所述第i条骨骼的父骨骼对应的全局变换参数,确定所述第i条骨骼对应的全局变换参数。
可选地,所述动作数据中还包括:在所述原骨架模型处于所述预设姿态时各条骨骼在其父骨骼坐标系下的相对变换参数;
在所述确定第一全局变换参数之前,所述方法还包括:
获取第一相对变换参数,所述第一相对变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼在其父骨骼坐标系下的相对变换参数;
获取第三全局变换参数,所述第三全局变换参数为:在所述原骨架模型处于所述预设姿态下时所述第i条骨骼的父骨骼对应的全局变换参数;
所述确定第一全局变换参数,包括:
根据所述第一相对变换参数和所述第三全局变换参数,确定第一全局变换参数。
可选地,在所述确定第二全局变换参数之前,所述方法还包括:
获取第二相对变换参数,所述第二相对变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼在其父骨骼坐标系下的相对变换参数;
获取第四全局变换参数,所述第四全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼的父骨骼对应的全局变换参数;
所述确定第二全局变换参数,包括:
根据所述第二相对变换参数与所述第四全局变换参数确定第二全局变换参数。
可选地,所述全局变换参数包括:全局位移值、全局旋转值、全局缩放值中的至少一种。
可选地,所述全局变换参数为全局旋转值或全局位移值;
所述根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,包括:
根据以下公式确定所述第j条重定向骨骼在当前帧的全局变换参数,以得到所述第j条重定向骨骼在各帧的全局变换参数:
其中,Global Transformcurrent目标模型j表示当前帧第j条重定向骨骼对应的全局变换参数,Global Transformcurrent原模型i表示原骨架模型中第i条骨骼对应的全局变换参数,Global TransformT目标模型i表示第一全局变换参数, Global TransformT原模型j表示第二全局变换参数。
可选地,若所述全局变换参数为全局位移值,则所述第j条重定向骨骼为所述目标骨架模型中的根骨骼,所述n为1;
若所述全局变换参数为全局旋转值,则所述第j条重定向骨骼为所述目标骨架模型中重定向的根骨骼或非根骨骼,所述n为所述目标骨架模型中重定向的根骨骼和非根骨骼的数量。
可选地,所述预设姿态为T-pose姿态、A-pose姿态或0-pose姿态。
可选地,所述方法还包括:
确定所述目标骨架模型中用于与外部环境交互的目标骨骼对应的目标位置,所述目标位置为所述目标骨骼与所述外部环境按第一交互方式进行交互时的位置信息,所述第一交互方式为所述原骨架模型中对应于所述目标骨骼的骨骼与外部环境交互的方式;
基于第一限制条件,确定所述目标骨骼与所述目标骨骼的父骨骼分别对应的调整后的全局变换参数,所述第一限制条件包括:使所述目标骨骼位于所述目标位置;
将所述目标骨骼对应的全局变换参数、所述目标骨骼的父骨骼对应的全局变换参数分别更新为所述目标骨骼对应的调整后的全局变换参数、所述目标骨骼的父骨骼对应的调整后的全局变换参数。
可选地,所述第一限制条件还包括:第一向量与第二向量的方向一致,所述第一向量为:所述目标骨骼的前端与所述目标骨骼的父骨骼的后端形成的向量,所述第二向量为:所述原骨架模型中与所述目标骨骼对应的第一骨骼的前端与所述第一骨骼的父骨骼的后端形成的向量。
可选地,所述第一限制条件还包括:所述第一向量的长度与所述第二向量的长度之比等于所述目标骨骼与所述第一骨骼的长度比。
可选地,所述基于第一限制条件,确定所述目标骨骼与所述目标骨骼的父骨骼分别对应的调整后的全局变换参数,包括:
确定第一骨链对应的调整后的坐标系,所述第一骨链包括所述目标骨架模型中用于与外部环境交互的目标骨骼以及所述目标骨骼的父骨骼,所述调整后的坐标系为所述目标骨骼位于所述目标位置时所述第一骨链对应的坐标系;
根据所述调整后的坐标系以及所述目标骨骼的全局变换参数确定所述目标骨骼对应的调整后的全局变换参数;
根据所述调整后的坐标系以及所述目标骨骼的父骨骼的全局变换参数确定所述目标骨骼的父骨骼对应的调整后的全局变换参数。
可选地,所述确定第一骨链对应的调整后的坐标系,包括:
将所述第一向量的单位向量确定为第一骨链对应的调整后的坐标系的Z轴;
通过以下公式确定所述调整后的坐标系的Y轴:
其中,a、b、c分别为标准Y轴向量[0、1、0]对应的三个向量值,a'、b'、 c'分别为所述调整后的坐标系的Y轴向量对应的三个向量值,x、y、z、w分别为所述目标骨骼的父骨骼对应的全局旋转值的逆旋转向量中的各个向量值;
根据所述调整后的坐标系的Z轴、所述调整后的坐标系的Y轴确定所述调整后的坐标系的X轴。
可选地,所述根据所述调整后的坐标系以及所述目标骨骼的全局变换参数确定所述目标骨骼对应的调整后的全局变换参数,包括:
通过以下公式确定所述目标骨骼对应的调整后的全局旋转值:
目标骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat* angleAxis[-cos(calf,thigh),X轴]as quat;
其中,[Z轴Y轴X轴[0,0,1]]表示所述调整后的坐标系的Z轴、Y轴、X 轴对应的1×3的向量与矩阵[0,0,1]组合成4×3的矩阵,(calf,thigh)表示目标骨骼与目标骨骼的父骨骼之间的夹角;
所述根据所述调整后的坐标系以及所述目标骨骼的父骨骼的全局变换参数确定所述目标骨骼的父骨骼对应的调整后的全局变换参数,包括:
通过以下公式确定所述目标骨骼的父骨骼对应的调整后的全局旋转值:
目标骨骼的父骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat *angleAxis[-cos(thigh,limb),X轴]as quat;
其中,(thigh,limb)表示目标骨骼父骨骼与所述第一向量之间的夹角。
第二方面,本申请实施例提供了一种动画重定向方法装置,所述装置包括:
数据获取单元,用于获取原动画数据,所述原动画数据中包括原骨架模型对应的动作数据;
参数确定单元,用于针对重定向的目标骨架模型中的第j条重定向骨骼,根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应;确定第一全局变换参数,所述第一全局变换参数为:在所述原骨架模型处于预设姿态时所述第i 条骨骼对应的全局变换参数;确定第二全局变换参数,所述第二全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼对应的全局变换参数;根据所述第一全局变换参数、所述第二全局变换参数以及所述第i 条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,其中,j遍历1~n,n为所述目标骨架模型中进行重定向的骨骼的数量。
可选地,所述动作数据中包括:所述原骨架模型的各条骨骼在其父骨骼坐标系下的相对变换参数;
参数确定单元,具体用于根据第i条骨骼对应的相对变换参数以及所述第i 条骨骼的父骨骼对应的全局变换参数,确定所述第i条骨骼对应的全局变换参数。
可选地,所述动作数据中还包括:在所述原骨架模型处于所述预设姿态时各条骨骼在其父骨骼坐标系下的相对变换参数;
所述装置还包括:
参数获取单元,用于获取第一相对变换参数,所述第一相对变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼在其父骨骼坐标系下的相对变换参数;获取第三全局变换参数,所述第三全局变换参数为:在所述原骨架模型处于所述预设姿态下时所述第i条骨骼的父骨骼对应的全局变换参数;
所述参数确定单元,具体用于:根据所述参数获取单元获取的第一相对变换参数和所述第三全局变换参数,确定第一全局变换参数。
可选地,所述参数获取单元还用于:获取第二相对变换参数,所述第二相对变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼在其父骨骼坐标系下的相对变换参数;获取第四全局变换参数,所述第四全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼的父骨骼对应的全局变换参数;
所述参数确定单元具体用于:根据所述第二相对变换参数与所述第四全局变换参数确定第二全局变换参数。
可选地,所述全局变换参数包括:全局位移值、全局旋转值、全局缩放值中的至少一种。
可选地,所述全局变换参数为全局旋转值或全局位移值;
所述参数确定单元具体用于根据以下公式确定所述第j条重定向骨骼在当前帧的全局变换参数,以得到所述第j条重定向骨骼在各帧的全局变换参数:
其中,Global Transformcurrent目标模型j表示当前帧第j条重定向骨骼对应的全局变换参数,,Global Transformcurrent原模型i表示原骨架模型中第i条骨骼对应的全局变换参数,Global TransformT目标模型j表示第一全局变换参数, Global TransformT原模型j表示第二全局变换参数。
可选地,若所述全局变换参数为全局位移值,则所述第j条重定向骨骼为所述目标骨架模型中的根骨骼,所述n为1;
若所述全局变换参数为全局旋转值,则所述第j条重定向骨骼为所述目标骨架模型中重定向的根骨骼或非根骨骼,所述n为所述目标骨架模型中重定向的根骨骼和非根骨骼的数量。
可选地,所述预设姿态为T-pose姿态、A-pose姿态或0-pose姿态。
可选地,所述装置还包括:
位置确定单元,用于确定所述目标骨架模型中用于与外部环境交互的目标骨骼对应的目标位置,所述目标位置为所述目标骨骼与所述外部环境按第一交互方式进行交互时的位置信息,所述第一交互方式为所述原骨架模型中对应于所述目标骨骼的骨骼与外部环境交互的方式;
参数更新单元,用于基于第一限制条件,确定所述目标骨骼与所述目标骨骼的父骨骼分别对应的调整后的全局变换参数,所述第一限制条件包括:使所述目标骨骼位于所述目标位置;将所述目标骨骼对应的全局变换参数、所述目标骨骼的父骨骼对应的全局变换参数分别更新为所述目标骨骼对应的调整后的全局变换参数、所述目标骨骼的父骨骼对应的调整后的全局变换参数。
可选地,所述第一限制条件还包括:第一向量与第二向量的方向一致,所述第一向量为:所述目标骨骼的前端与所述目标骨骼的父骨骼的后端形成的向量,所述第二向量为:所述原骨架模型中与所述目标骨骼对应的第一骨骼的前端与所述第一骨骼的父骨骼的后端形成的向量。
可选地,所述第一限制条件还包括:所述第一向量的长度与所述第二向量的长度之比等于第一骨链与第二骨链的长度比,所述第一骨链包括:所述目标骨骼与所述目标骨骼的父骨骼,所述第二骨链包括:所述第一骨骼与所述第一骨骼的父骨骼。
可选地,所述参数更新单元,具体用于确定第一骨链对应的调整后的坐标系,所述第一骨链包括所述目标骨架模型中用于与外部环境交互的目标骨骼以及所述目标骨骼的父骨骼,所述调整后的坐标系为所述目标骨骼位于所述目标位置时所述第一骨链对应的坐标系;根据所述调整后的坐标系以及所述目标骨骼的全局变换参数确定所述目标骨骼对应的调整后的全局变换参数;根据所述调整后的坐标系以及所述目标骨骼的父骨骼的全局变换参数确定所述目标骨骼的父骨骼对应的调整后的全局变换参数。
可选地,所述参数更新单元,具体用于:
将所述第一向量的单位向量确定为第一骨链对应的调整后的坐标系的Z轴;
通过以下公式确定所述调整后的坐标系的Y轴:
其中,a、b、c分别为标准Y轴向量[0、1、0]对应的三个向量值,a'、b'、 c'分别为所述调整后的坐标系的Y轴向量对应的三个向量值,x、y、z、w分别为所述目标骨骼的父骨骼对应的全局旋转值的逆旋转向量中的各个向量值;
根据所述调整后的坐标系的Z轴、所述调整后的坐标系的Y轴确定所述调整后的坐标系的X轴。
可选地,所述根据所述调整后的坐标系以及所述目标骨骼的全局变换参数确定所述目标骨骼对应的调整后的全局变换参数,包括:
通过以下公式确定所述目标骨骼对应的调整后的全局旋转值:
目标骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat* angleAxis[-cos(calf,thigh),X轴]as quat;
其中,[Z轴Y轴X轴[0,0,1]]表示所述调整后的坐标系的Z轴、Y轴、X 轴对应的1×3的向量与矩阵[0,0,1]组合成4×3的矩阵,(calf,thigh)表示目标骨骼与目标骨骼的父骨骼之间的夹角;
所述根据所述调整后的坐标系以及所述目标骨骼的父骨骼的全局变换参数确定所述目标骨骼的父骨骼对应的调整后的全局变换参数,包括:
通过以下公式确定所述目标骨骼的父骨骼对应的调整后的全局旋转值:
目标骨骼的父骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat *angleAxis[-cos(thigh,limb),X轴]as quat;
其中,(thigh,limb)表示目标骨骼父骨骼与所述第一向量之间的夹角。
第三方面,本申请实施例还提供了一种电子设备,包括:
处理器;以及
存储器,用于存储数据处理程序,该电子设备通电并通过所述处理器运行该程序后,执行如第一方面中任一项所述的动画重定向方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,存储有数据处理程序,该程序被处理器运行,执行如第一方面中任一项所述的动画重定向方法。
与现有技术相比,本申请具有以下优点:
本申请实施例提供的动画重定向方法,针对重定向的目标骨架模型中的第j 条重定向骨骼,先根据原骨架模型对应的动作数据确定出原骨架模型中对应于第j条重定向骨骼的第i条骨骼在世界坐标系下的全局变换参数,再确定在原骨架模型处于预设姿态时第i条骨骼对应的第一全局变换参数以及在目标骨架模型处于预设姿态时第j条重定向骨骼对应的第二全局变换参数,由于骨骼模型处于预设姿态时的全局变换参数能够从骨骼模型的参数信息中确定出,所以第一全局变换参数和第二全局变换参数能够分别从原骨架模型的参数信息、目标骨架模型的参数信息中确定出,另外,通过第一全局变换参数与第二全局变换参数能够反映出第i条骨骼与第j条重定向骨骼的全局变换参数之间的映射关系,因此,在确定出第i条骨骼对应的全局变换参数的前提下,能够根据基于第一全局变换参数、第二全局变换参数确定出第j条重定向骨骼的全局变换参数,根据第j条重定向骨骼的全局变换参数即可确定出第j条重定向骨骼的位姿,当j从 1遍历到n后,可以将目标骨骼模型中进行重定向的各条骨骼的全局变换参数都计算出来,从而确定出各条需要获取动作数据的骨骼的位姿,得到目标骨架模型的位姿。
可见,本申请实施例提供的动画重定向方法,可以通过计算机执行重定向的各个步骤,无需用户前期在三维动画软件上进行模型调整,简化了用户进行动画重定向的操作过程、重定向的效率更高。
附图说明
图1是在两个不同三维动画软件中创建的骨架模型对比图,其中,图1中左侧的图为重定向的骨架模型,右侧为原动画中的骨架模型;
图2是将图1中左侧的骨架模型手动调整后的骨架模型;
图3是本申请第一实施例提供的动画重定向方法的流程图;
图4是图3所示的流程图中步骤S120的执行流程图;
图5是使用本申请实施例提供的动画重定向方法进行重定向的效果对照图。
图6是本申请第一实施例提供的动画重定向方法另一实施方式的流程图;
图7是使用图3所示的方法进行重定向后目标骨架模型的腿部骨骼的效果图;
图8是使用图6所示的方法进行重定向后目标骨架模型的腿部骨骼的效果图;
图9是使用图3所示的方法与使用图6所示的方法进行重定向的效果对照图;
图10~图12是使用本申请实施例提供的动画重定向方法对目标骨架模型进行重定向的效果图;
图13是本申请实施例提供的动画重定向装置的结构示意图;
图14是本申请实施例提供的用于实现动画重定向方法的电子设备的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
动画重定向技术指的是将一个骨架模型的动画数据复用到其他骨架模型上,从而实现动画复用,动画重定向能够大幅度减少设计人员的工作量。当重定向是在不同三维动画软件所创建的骨骼模型之间进行时,由于不同三维动画软件创建的骨架模型的骨骼层次、骨骼数量是不同的,例如,如图1所示,图1中左边的骨架模型与右边的骨架模型是在不同三维动画软件中创建的,二者的大小、骨骼数量、骨骼层次均不同,若直接将右边的骨架模型的动画数据复用到左边的骨架模型上,容易出现扭曲变形、穿模、动作失调、比例失调、模型打散等错误情况。
为了使需要重定向的目标骨架模型更好地复用原动画的动画数据,相关技术中,设计人员可以从模型设计界面中手动将目标骨架模型的初始姿态调整为与原动画的原骨架模型姿态相同,例如,如图1、图2所示,设计人员需要参考图1中右边的原骨架模型手动将图1左边的目标骨架模型调整为图2所示的姿态,再从设计界面中手动输入目标骨架模型的各骨骼与原骨架模型的各骨骼之间的对应关系。
另外,使用上述相关技术中的方法还需要预先计算原骨架模型中的各个骨骼对应的调整角度(α,β,γ),并使各个骨骼绕其父骨骼按调整角度进行转动,以保证重定向的正确性。
以左上臂L_UpperArm为例,需要让L_UpperArm绕着其父骨骼L_Clavicle 旋转(α,β,γ)。可以通过下方的公式(1)计算(α,β,γ),
R'=Rx(α)Ry(β)Rz(γ) (1)
R'是骨骼在调整之后的旋转矩阵,R(α)、Ry(β)、Rz(γ)分别是骨骼在调整之前绕三个不同坐标轴的旋转矩阵。
R'通过以下公式计算得出:
R′L_UpperArm=
RHipRPlevisRSpineRSpine1RSpine2RNeckRL_ClavicleRL_UpperArm(RHipRPlevisRSpineRSpine1RSpine2RNec kRL_ClavicleRL_UpperArm)-1 (2)
RHip、RPlevis、RSpine、RSpine1、RSpine2、RNeck、RL_Clavicle、RL_UpperArm分别是从根骨骼到L_UpperArm的各个骨骼对应的在调整之前的调整矩阵。
由于骨架模型的骨骼数量较多,骨骼层次结构较复杂,使得设计人员手动调整目标骨架模型的姿态的过程以及手动各骨骼对应关系的过程都十分繁琐,计算各个骨骼对应的调整角度也十分复杂,因此需要花费较长时间,导致进行动画重定向的过程较复杂、效率较低。
为了解决以上问题,本申请第一实施例提供了一种动画重定向方法,能够简化用户进行动画重定向的操作过程、提高重定向的效率。
本申请实施例提供的动画重定向方法的执行主体可以是电子设备,该电子设备可以是服务器、台式电脑、笔记本电脑等,但不限于此。
如图3所示,本申请提供的动画重定向方法包括以下步骤S110~S120。
步骤S110:获取原动画数据。
所述原动画数据中包括原骨架模型对应的动作数据。
具体的,原动画数据中可以包括原骨架模型的各个骨骼对应的变换参数,该变换参数可以包括旋转值、缩放值和位移值。
步骤S120:根据上述原动画数据确定重定向的目标骨架模型中第j条重定向骨骼在世界坐标系下各帧的全局变换参数。
上述j遍历1~n,n为目标骨架模型中进行重定向的骨骼的数量。
第j条重定向骨骼为进行重定向的骨骼中的任意一条。
目标骨架模型的类型可以为Adv类型、HumanIK类型、Biped类型中的任意一种,也可以是其他类型的动画模型,本申请不具体限定。
目标骨架模型中进行重定向的骨骼可以是目标骨架模型中的全部骨骼,也可以是目标骨架模型中的部分骨骼。例如,目标骨架模型中进行重定向的骨骼可以是核心骨骼,其中,非核心骨骼可以理解为对骨架模型的位姿影响较小的骨骼,例如,脚趾骨骼、手指骨骼等,核心骨骼可以理解为能够影响骨架模型的主体位姿的骨骼,例如,大腿骨骼、小腿骨骼、上手臂骨骼、脊椎骨骼等。
由于非核心骨骼对骨骼模型的位姿影响很小,所以,仅通过核心骨骼即可较准确地确定出骨架模型的位姿,因此,当进行重定向的骨骼为各核心骨骼时,仅需对各核心骨骼进行重定向,既可以较准确地确定出目标骨架模型的位姿,也可以减少需要重定向的骨骼的数量,使得计算过程更简单、速度更快,从而使得重定向效率更高。
本申请实施例中,可以由用户选择哪些骨骼为重定向的骨骼,电子设备根据用户的选择确定哪些骨骼为重定向的骨骼,或者,电子设备也可以自动确定重定向的骨骼,本申请不限定如何确定重定向的骨骼。
上述全局变换参数(Local Transform)可以包括全局旋转值(Global Rotation)、全局位移值(Global Translation)、全局缩放值(Global Scale)中的至少一种。
具体的,上述全局旋转值可以包括重定向骨骼分别绕世界坐标系的X轴、 Y轴、Z轴旋转的角度,上述全局位移值可以包括重定向骨骼分别沿世界坐标系的X轴、Y轴、Z轴移动的距离,上述全局缩放值可以为目标骨架模型与原骨架模型的模型高度之间的比值。
在本申请的一种实施方式中,电子设备可以针对原骨架模型中的每条核心骨骼,判断目标骨架模型中是否存在与该核心骨骼对应的骨骼,若不存在,则按照以下公式将该核心骨骼的运动数据复制到该核心骨骼的子骨骼上:
Rchild'=Rparent*Rchild
其中,Rchild'是指核心骨骼的子骨骼复制核心骨骼的运动数据后得到的运动数据,Rparent、Rchild分别是核心骨骼的运动数据、核心骨骼的子骨骼的运动数据。
通过以上实施方式能够使得原骨架模型中的各条核心骨骼的数据均更好地在目标骨架模型中得到重定向,使得重定向更准确。
如图4所示,上述步骤S120具体按以下步骤S121~S124实现。
步骤S121:根据上述原骨架模型对应的动作数据确定原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数。
其中,第i条骨骼与上述第j条重定向骨骼相对应。例如,当第j条重定向骨骼为目标骨架模型中的左大腿骨骼时,第i条骨骼为原骨架模型中的左大腿骨骼,当第j条重定向骨骼为目标骨架模型中的盆骨骨骼时,第i条骨骼为原骨架模型中的盆骨骨骼。
步骤S121中,可以根据骨骼名称确定原骨架模型中与第j条重定向骨骼相对应的第i条骨骼。例如,可以将原骨架模型中与第j条重定向骨骼名称相同或相似的骨骼确定第i条骨骼。当将原骨架模型中不存在与第j条重定向骨骼名称相同或相似的骨骼时,可以从原骨架模型中确定与第j条重定向骨骼的父骨骼相对应的第一骨骼,将该第一骨骼的子骨骼确定为与第j条重定向骨骼相对应的第 i条骨骼。本领域技术人员也可以通过其他方式从原骨架模型中确定与第j条重定向骨骼对应的第i条骨骼。
本申请实施例中,可以是原骨架模型对应的动作数据中包含各条骨骼对应的全局变换参数,这种情况下,步骤S121中,电子设备可以直接从上述动作数据中获取到第i条骨骼在世界坐标系下各帧的全局变换参数。
步骤S122:确定第一全局变换参数。
所述第一全局变换参数为:在原骨架模型处于预设姿态时第i条骨骼对应的全局变换参数。
具体的,原骨架模型对应的动作数据中可以包含原骨架模型处于预设姿态时各条骨骼对应的全局变换参数,这种情况下,电子设备可以直接从上述动作数据中获取第i条骨骼对应的全局变换参数。
三维动画软件中通常存储有在预设姿态下骨架模型的各条骨骼对应的信息,以便于用户查看三维动画软件的建模特性,不同三维动画软件对应的预设姿态通常是相同的。
三维动画软件中可以存储有在T-pose姿态、A-pose姿态、0-pose姿态中至少一种预设姿态下骨架模型的各条骨骼对应的信息。其中,T-pose姿态是三维动画软件使用较广泛的预设姿态,因此,第一全局变换参数可以为在原骨架模型处于T-pose姿态时第i条骨骼对应的全局变换参数。第一全局变换参数也可以为在原骨架模型处于A-pose姿态、0-pose姿态或者其他预设姿态时第i条骨骼对应的全局变换参数。
步骤S123:确定第二全局变换参数。
第二全局变换参数为:在目标骨架模型处于预设姿态时第j条重定向骨骼对应的全局变换参数。
具体的,创建目标骨架模型的软件中可以存储有目标骨架模型处于预设姿态时各骨骼分别对应的全局变换参数,或者,目标骨架模型对应的模型数据中可以包括目标骨架模型处于预设姿态时各骨骼分别对应的全局变换参数。电子设备可以通过创建目标骨架模型的软件目标骨架模型对应的模型数据获取到目标骨架模型处于预设姿态时第j条重定向骨骼对应的全局变换参数。
骨架模型处于预设姿态也可以为骨架模型在初始状态时所处的姿态,即骨架模型在创建完成后还未添加动画时的姿态。
步骤S124:根据第一全局变换参数、第二全局变换参数以及第i条骨骼对应的全局变换参数确定第j条重定向骨骼的全局变换参数。
在预设姿态下不同骨架模型位姿之间的差别与在其他姿态下位姿之间的差别通常是一致的,也可以理解为,不同骨架模型在预设姿态下全局变换参数之间的差别与在其他姿态下全局变换参数之间的差别是一致的,即不同骨架模型在预设姿态下全局变换参数之间对应关系通常与在其他姿态下对应全局变换参数之间的对应关系是一致的。因此,根据在预设姿态下不同骨骼模型的全局变换参数之间的对应关系通常能够反映出在其他姿态下不同骨骼模型的全局变换参数之间的对应关系。
本申请中,由于第一全局变换参数为在原骨架模型处于预设姿态时第i条骨骼对应的全局变换参数,第二全局变换参数为在目标骨架模型处于预设姿态时第j条重定向骨骼对应的全局变换参数,通过第一全局变换参数与第二全局变换参数能够反映出第i条骨骼与第j条重定向骨骼的全局变换参数之间的映射关系,再基于第i条骨骼对应的全局变换参数,即可确定出第j条重定向骨骼的全局变换参数。
在一种实施方式中,当全局变换参数为全局旋转值或全局位移值时,步骤 S124中,可以根据以下公式(3)确定第j条重定向骨骼在当前帧的全局变换参数。
其中,Global Transformcurrent目标模型j表示当前帧第j条重定向骨骼对应的全局变换参数,Global Transformcurrent原模型i表示原骨架模型中第i条骨骼对应的全局变换参数,Global TransformT目标模型j表示第一全局变换参数, Global TransformT原模型j表示第二全局变换参数。
具体的,以全局变换参数为全局旋转值、预设姿态为T-pose为例,存在如下公式(4)、公式(5)所示的对应关系。
Global RotationT目标模型j=Global RotationT原模型i×映射关系 (4)
公式(4)中,Global RotationT目标模型j表示目标骨架模型处于T-pose姿态时第j条重定向骨骼对应的全局变换参数(第二全局变换参数), Global RotationT原模型i表示原骨架模型处于T-pose姿态时第i条骨骼对应的全局变换参数(第一全局变换参数)。
Global Rotationcurrent目标模型j=Global Rotationcurrent原模型i×映射关系 (5)
公式(5)中,Global Rotationcurrent目标模型j表示目标骨架模型在当前帧第j条重定向骨骼对应的全局变换参数,Global Rotationcurrent原模型i表示原骨架模型在当前帧第i条骨骼对应的全局变换参数。
当前帧指的是目前所处理的帧,本申请实施例中,可以逐帧对目标骨架模型的各条重定向骨骼进行参数计算。
由公式(4)可得映射关系为:
由公式(5)、公式(6)可得当前帧第j条重定向骨骼对应的全局变换参数为:
可见,通过公式(7)可以得到第j条重定向骨骼对应的全局变换参数。
或者,也可以通过以下公式(8)得到第j条重定向骨骼对应的全局变换参数。
或者,也可以根据其他公式确定所述第j条重定向骨骼在各帧的全局变换参数,本申请不具体限定。
本申请实施例中,可以逐帧进行步骤S121~步骤S124,从而确定出各帧中各条重定向骨骼对应的全局变量参数,从而得到目标骨架模型对应的动作数据,即得到所需的动画数据。
本申请实施例提供的动画重定向方法,针对重定向的目标骨架模型中的第j 条重定向骨骼,先根据原骨架模型对应的动作数据确定出原骨架模型中对应于第j条重定向骨骼的第i条骨骼在世界坐标系下的全局变换参数,再确定在原骨架模型处于预设姿态时第i条骨骼对应的第一全局变换参数以及在目标骨架模型处于预设姿态时第j条重定向骨骼对应的第二全局变换参数,由于骨骼模型处于预设姿态时的全局变换参数能够从骨骼模型的参数信息中确定出,所以第一全局变换参数和第二全局变换参数能够分别从原骨架模型的参数信息、目标骨架模型的参数信息中确定出,另外,通过第一全局变换参数与第二全局变换参数能够反映出第i条骨骼与第j条重定向骨骼的全局变换参数之间的映射关系,也可以理解为,不同的动画类型都有各自固定的预设姿态的初始值,根据不同的动画类型各自固定的预设姿态的初始值能够反映不同动画类型之间的映射关系,因此,在确定出第i条骨骼对应的全局变换参数的前提下,能够根据基于第一全局变换参数、第二全局变换参数确定出第j条重定向骨骼的全局变换参数,根据第j条重定向骨骼的全局变换参数即可确定出第j条重定向骨骼的位姿,当 j从1遍历到n后,可以将目标骨骼模型中进行重定向的各条骨骼的全局变换参数都计算出来,从而确定出各条需要获取动作数据的骨骼的位姿,得到目标骨架模型的位姿。
可见,本申请实施例提供的动画重定向方法,可以通过计算机执行重定向的各个步骤,无需用户前期在三维动画软件上进行模型调整,简化了用户进行动画重定向的操作过程、重定向的效率更高。且能够适配任何类型的骨架模型,适用性更高。
本申请提供的重定向方法,能够使动画重定向变为单独的数据流进入游戏的开发流程中,提高动画的轻便度、易用性及流通性。例如,当游戏项目由基于Max转为基于Maya开发时,无需基于Maya重新制作动画,使用本申请提供的动画重定向方法可在美术转换技术栈时,直接将原基于Max的动画资源用于 Maya,使数据快速互通成为可能,节约了更多的游戏开发时间。
另外,使用本申请提供的方法还可以使设计人员迅速看到动画应用在不同模型上的效果,生成新动画,提高美术动画制作效率。美术在设计制作一套复杂动作时,需要好几个小时摆关键帧姿态,才能得到一套动画。而使用本申请的方案,由于不同动画类型,有各自特有的一套预设姿态,因此在后续重定向时,只需要根据不同动画类型对应的预设姿态即可方便地对目标骨架模型进行重定向,只需几分钟即可将几个动作叠加复用为一套动画,大大提高了动画制作的效率。且使用本申请提供的方法还可以加快前期动画小样(Demo)的制作,间接为策划、程序、编导等提供便利,进一步加快了游戏开发进程。当策划或程序需要几段简单的动画用于测试或者前期开发验证时,往往需要专门提单排期,让美术设计人员制作,使用本申请提供的方案可以使得设计人员通过简单操作直接快速利用现有动画资源制作出简单的Demo。
通过本申请提供的方案,能够实现动画数据的快速复用,可使得动画数据不再受美术文件类型的限制,让原有大量动画资源得到再利用,同时缩小美术开发新动画的时间周期,使动画制作前期得到快速验证,提高动画美术的制作开发效率,降低动画制作成本。后续可接入其他自研引擎的骨骼动画及各种自定义骨骼动画,使动画数据直接在整个游戏开发流程中流动,提高游戏开发效率。
图5是使用本申请实施例提供的动画重定向方法进行重定向的效果对照图图。其中图5中的(a)是原骨架模型的效果图,图5中的(b)是直接将原骨骼模型对应的动作数据复用到目标骨骼时的效果图,图5中的(c)是使用本申请实施例提供的动画重定向方法进行重定向的效果图。从图5中可见,使用本申请实施例提供的动画重定向方法进行重定向能够很好地将原动画的动作数据复用到目标骨架模型上,动画重定向效果更好。
在一种实施方式中,上述动作数据中可以包括:原骨架模型的各条骨骼在其父骨骼坐标系下的相对变换参数。
步骤S121具体可以按以下步骤S121a实现:
步骤S121a:根据第i条骨骼对应的相对变换参数以及第i条骨骼的父骨骼对应的全局变换参数,确定第i条骨骼对应的全局变换参数。
本实施方式中,由于计算第i条骨骼对应的全局变换参数会用到其父骨骼对应的全局变换参数,因此,可以按照从根骨骼到子骨骼的顺序,依次计算出原骨架模型中各条骨骼的全局变换参数,其中,原骨架模型对应的动作数据中可以包括根节点对应的全局变换参数,所以,原骨架模型中根骨骼的全局变换参数能够从上述动作数据中获取。
具体的,可以参考以下公式(9)计算第i条骨骼对应的全局变换参数。
Global Transform=Global Transform(Parent)×Local Transform (9)
其中,Global Transform表示任一骨骼对应的全局变换参数,Global Transform(Parent)表示该骨骼的父骨骼对应的全局变换参数,Local Transform表示该骨骼在其父骨骼坐标系下的相对变换参数。
公式(9)可以基于正向动力学(Forward Kinematics,简称FK)得出。
由于从创建原动画数据的软件中能够很容易得到各条骨骼在其父骨骼坐标系下的相对变换参数以及根节点的全局变换参数,本实施方式通过第i条骨骼对应的相对变换参数以及第i条骨骼的父骨骼对应的全局变换参数,能够很容易确定出所述第i条骨骼对应的全局变换参数,使得动画重定向的过程更容易实现。
在一种实施方式中,上述动作数据中还可以包括:在原骨架模型处于预设姿态时各条骨骼在其父骨骼坐标系下的相对变换参数。
在步骤S122之前,所述方法还可以包括以下步骤S125~S126。
步骤S125:获取第一相对变换参数。
上述第一相对变换参数为:在原骨架模型处于预设姿态时第i条骨骼在其父骨骼坐标系下对应的相对变换参数。
上述相对变换参数可以包括相对旋转值(Local Rotation),也还可以包括相对位移值(Local Translation)与相对缩放值(Local Scale)。由于通常情况下子骨骼相对于其父骨骼只发生旋转,所以,相对变换参数通常为相对旋转值。
步骤S126:获取第三全局变换参数。
上述第三全局变换参数为:在原骨架模型处于预设姿态下时第i条骨骼的父骨骼对应的全局变换参数。
步骤S122可以按以下步骤S122a实现。
步骤S122a:根据上述第一相对变换参数和上述第三全局变换参数确定第一全局变换参数。
步骤S122a中,也可以根据上述公式(8)确定第一全局变换参数。具体的,可以将第一相对变换参数作为公式(8)中的Local Transform,将第三全局变换参数作为公式(8)中的Global Transform(Parent),从而确定出第一全局变换参数。
本实施方式中,在原骨架模型处于预设姿态时第i条骨骼对应的全局变换参数是基于在原骨架模型处于预设姿态时第i条骨骼的父骨骼对应的全局变换参数确定的,因此,可以按照从根骨骼到子骨骼的顺序,依次计算出原骨架模型处于预设姿态时各条骨骼对应的全局变换参数,其中,原骨架模型对应的动作数据中可以包括原骨架模型处于预设姿态时根骨骼对应的全局变换参数,所以,原骨架模型处于预设姿态时根骨骼的全局变换参数能够从上述动作数据中获取。
由于从创建原动画数据的软件中能够很容易得到原骨架模型处于预设姿态时各条骨骼在其父骨骼坐标系下的相对变换参数以及根节点的全局变换参数,本实施方式通过在原骨架模型处于预设姿态时第i条骨骼对应的相对变换参数以及第i条骨骼的父骨骼对应的全局变换参数,能够很容易确定出在原骨架模型处于预设姿态时第i条骨骼对应的全局变换参数,使得动画重定向的过程更容易实现。
在一种实施方式中,在步骤S123之前,还可以包括以下步骤S127~S128。
步骤S127:获取第二相对变换参数。
其中,第二相对变换参数为:在目标骨架模型处于预设姿态时第j条重定向骨骼在其父骨骼坐标系下的相对变换参数。
创建目标骨架模型的软件中通常存储有目标骨架模型处于预设姿态时各条骨骼在其父骨骼坐标系下的相对变换参数,因此,电子设备能够从很容易地获取到上述第二相对变换参数。
步骤S128:获取第四全局变换参数。
上述第四全局变换参数为:在目标骨架模型处于预设姿态时第j条重定向骨骼的父骨骼对应的全局变换参数。
步骤S123可以按以下步骤S123a实现:
步骤S123a:根据第二相对变换参数与第四全局变换参数确定第二全局变换参数。
步骤S123a的具体执行过程可以参考步骤S122a和步骤S121a,从根骨骼到子骨骼依次计算在目标骨架模型处于预设姿态时各条重定向骨骼对应的全局变换参数,具体操作过程不再赘述。
在一种实施方式中,上述动画重定向方法还可以包括以下步骤:计算目标骨架模型与原骨骼模型之间的长度比例r,并根据长度比例r确定重定向骨骼在各帧的全局缩放值。具体的,可以按以下公式(10)确定长度比例r。
r=Itargex/Isource (10)
其中,r表示目标骨架模型与原骨骼模型之间的长度比例,Itarget表示目标骨架模型的长度,Isource表示目标骨架模型的长度。
当骨架模型为二足生物骨架时,骨架模型的长度可以是从头到脚的高度,当骨架模型为四足生物骨架时,骨架模型的长度可以是从头到臀部的长度。
上述r即可以作为重定向骨骼在各帧的全局缩放值。
本申请实施例中,由于非根骨骼的位移是基于根骨骼确定的,因此,当根骨骼的位移确定后,非根骨骼只需计算旋转值即可。
本申请实施例中,当全局变换参数为全局位移值时,可以根据步骤S110、步骤S121~步骤S124确定目标骨架模型中根骨骼的全局位移值,而非根骨骼的全局位移值可以根据根骨骼的全局位移值计算出,因此无需根据步骤S110、步骤S121~步骤S124确定目标骨架模型中非根骨骼的全局位移值。
当全局变换参数为全局旋转值时,可以根据上述步骤S110、步骤S121~步骤S124确定目标骨架模型中根骨骼及非根骨骼的全局旋转值。
因此,本申请实施例中,当全局变换参数为全局旋转值时,上述n具体可以为目标骨架模型中进行重定向的根骨骼以及非根骨骼的数量,第j条重定向骨骼为目标骨架模型中重定向的根骨骼或非根骨骼。
当全局变换参数为全局位移值时,上述n为1,即n为目标骨架模型中重定向的根骨骼的数量,第j条重定向骨骼为目标骨架模型中的根骨骼。当全局变换参数为全局位移值时,目标骨架模型中根骨骼的全局位移值可以参考公式(6) 计算,此处不再赘述。
在一种实施方式中,如图6所示,上述动画重定向方法还可以包括以下步骤S130~S150。
步骤S130:确定目标骨架模型中用于与外部环境交互的目标骨骼对应的目标位置。
上述目标位置为目标骨骼与外部环境按第一交互方式进行交互时的位置信息,第一交互方式为原骨架模型中对应于目标骨骼的骨骼与外部环境交互的方式。
上述目标骨骼可以为小腿骨骼、脚骨骼、脚趾骨骼、小臂骨骼、手骨骼、手指骨骼、臀骨骼中的至少一种,也可以为其他用于与外部环境交互的骨骼,本申请不具体限定。
目标骨骼对应的目标位置,可以是目标骨骼的末端对应的目标位置,例如,当目标骨骼为小腿骨骼时,目标位置可以是小腿骨骼的末端(即脚踝关节)对应的目标位置。由于目标骨骼与外部环境交互时通常是其末端与外部环境交互,所以,确定目标骨骼末端的目标位置,能够更准确地对与外部环境交互的骨骼进行调整,防止目标骨骼与外部环境错误交互而产生穿模现象。目标骨骼对应的目标位置也可以是目标骨骼的前端或中间对应的目标位置,本领域技术人员可以根据目标模型的动画特性进行设置,本申请不具体限定。
上述目标位置可以根据原骨架模型中与上述目标骨骼相对应的骨骼的全局位移值、目标骨骼的全局位移值确定。具体的,可以将原骨架模型中与目标骨骼相对应的骨骼的全局位移值加上目标骨骼对应的全局位移值,从而得到上述目标位置。
步骤S140:基于第一限制条件,确定目标骨骼对应的调整变换参数以及目标骨骼的父骨骼对应的调整变换参数。
上述第一限制条件包括:使目标骨骼位于上述目标位置。
步骤S140可以理解为,当目标骨骼对应的全局变换参数为其对应的调整后的全局变换参数、目标骨骼的父骨骼对应的全局变换参数为其对应的调整后的变换参数时,能够使目标骨骼位于上述目标位置。
上述调整后的全局变换参数可以包括调整全局位移值或者调整全局旋转值,也可以包括调整全局位移值和调整全局旋转值。
本实施方式中,可以根据目标骨骼对应的目标位置与目标骨骼对应的全局位移值之间的差别确定目标骨骼对应的调整变换参数以及目标骨骼的父骨骼对应的调整变换参数,本申请不限定如何确定上述调整变换参数
步骤S150:将目标骨骼对应的全局变换参数、目标骨骼的父骨骼对应的全局变换参数分别更新为目标骨骼对应的调整后的全局变换参数、目标骨骼的父骨骼对应的调整后的全局变换参数。
当目标骨骼与其父骨骼的长度比不同于原骨架模型中对应于目标骨骼的骨骼与其父骨骼的长度比时,目标骨骼容易与外部环境发生交互错误的情况。例如,如图7所示,当目标骨架模型中的小腿骨骼(目标骨骼)与大腿骨骼(父骨骼)的长度比不同于原骨架模型中的小腿骨骼与大腿骨骼的长度比时,容易使小腿末端相对地面位置偏差较大,从而导致滑步问题。上述实施方式以使目标骨骼位于目标位置为限制条件而对目标骨骼及其父骨骼对应的全局变换参数进行调整,能够很好地避免目标骨骼与外部环境发生交互错误的情况,从而可以避免滑步、穿模的现象。
步骤S130~步骤S150可以理解为通过反向动力学(Inverse Kinematics,简称IK)方式调整目标骨骼及其父骨骼对应的全局变换参数的过程,目标骨骼与其父骨骼形成了反向动力学的IK链。
在一个具体实施例中,上述第一限制条件还可以包括:第一向量与第二向量的方向一致,上述第一向量为:目标骨骼的前端与目标骨骼的父骨骼的后端形成的向量,第二向量为:原骨架模型中与目标骨骼对应的第一骨骼的前端与第一骨骼的父骨骼的后端形成的向量。
骨骼的前端可以理解为骨骼的末端,也可以理解为骨骼的远离其父骨骼的一端,骨骼的后端可以理解为骨骼的靠近其父骨骼的一端。
如图8所示,以目标骨骼为小腿骨骼为例,上述第一向量为目标骨架模型的脚踝与大腿根部所形成的向量,上述第二向量为原骨架模型的脚踝与大腿根部所形成的向量。
本实施例当以第一向量与第二向量的方向一致为限制条件去确定目标骨骼与其父骨骼对应的调整后的全局变换参数时,能够使得按照该调整后的全局变换参数所确定的目标骨架模型的位姿与原骨架模型的位姿相似度更高,从而使得重定向准确度更好。
在一个具体实施例中,步骤S140可以按以下步骤S141~步骤S143实现。
步骤S141:确定第一骨链对应的调整后的坐标系。
上述第一骨链包括所述目标骨架模型中用于与外部环境交互的目标骨骼以及所述目标骨骼的父骨骼,调整后的坐标系为目标骨骼位于上述目标位置时第一骨链对应的坐标系。
具体的,可以按以下步骤S141a~S141c确定步骤S141中的调整后的坐标系。
步骤S141a:将上述第一向量的单位向量确定为第一骨链对应的调整后的坐标系的Z轴;
步骤S141b:通过以下公式(11)确定调整后的坐标系的Y轴:
其中,a、b、c分别为标准Y轴向量[0、1、0]对应的三个向量值,a'、b'、 c'分别为所述调整后的坐标系的Y轴向量对应的三个向量值,x、y、z、w分别为所述目标骨骼的父骨骼对应的全局旋转值的逆旋转向量中的各个向量值。
步骤S141b可以理解成初始向量绕四元数进行了一定的旋转之后,得到了新的向量。步骤S141c:根据调整后的坐标系的Z轴、调整后的坐标系的Y轴确定调整后的坐标系的X轴。
步骤S141c中,可以根据调整后的坐标系的X轴分别与调整后的坐标系的 Y轴、调整后的坐标系的Z轴垂直,确定出调整后的坐标系的X轴的具体向量值,此处不再赘述。
步骤S141a~步骤S141c的过程中可以通过代码解决万向锁问题,此处不再详述。
本申请实施例中,在通过IK的方式进行方向调整时,通常是通过对目标骨骼以及目标骨骼的父骨骼进行旋转实现的,因此,上述调整后的坐标系也可以理解为对第一骨链旋转后的坐标系。
通过本实施例提供的确定第一骨链调整后的坐标系的方法,可以方便、准确地确定出第一骨链的调整后的坐标系。
本申请实施例中,也可以通过其他方式确定第一骨链对应的调整后的坐标系,本申请不具体限定。例如,可以根据原骨架模型中与第一骨链对应的骨链的坐标系、目标骨骼对应的全局变换参数、目标骨骼的父骨骼对应的全局变换参数确定上述调整后的坐标系。
本申请实施例中,计算出的调整后的坐标系中的X、Y、Z轴均为1×3的向量。
步骤S142:根据上述调整后的坐标系以及目标骨骼的全局变换参数确定目标骨骼对应的调整后的全局变换参数。
步骤S142具体可以按以下步骤S142a~S142b实现。
步骤S142a:确定目标骨骼绕目标向量的旋转值。
其中,目标向量是目标骨骼、目标骨骼的父骨骼所形成的平面的法向量。
具体的,可以先确定出目标骨骼和目标骨骼的父骨骼之间的夹角,计算该夹角的补角的cos值,记为calf_rad,然后将第一骨链绕调整后的坐标系中的X 轴旋转负calf_rad角度之后,再转换成四元数,从而得到目标骨骼绕目标向量的旋转值。
具体的,在步骤S142执行之前,可以将调整后的坐标系中的X、Y、Z轴与[0,0,1]组合成4×3的矩阵,然后将该4×3的矩阵转换成四元数,从而得到第一骨链向量的旋转值。
步骤S142b:将第一骨链向量的旋转值乘以目标骨骼绕目标向量的旋转值确定为目标骨骼对应的调整后的全局旋转值。
步骤S142b确定出目标骨骼对应的调整后的全局旋转值,即确定出目标骨骼对应的调整后的全局变换参数。
具体的,步骤S142可以按以下公式确定目标骨骼对应的调整后的全局旋转值:
目标骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat×angleAxis[-cos(calf,thigh),X轴]as quat;
其中,Z轴、Y轴、X轴分别表示所述调整后的坐标系的Z轴、Y轴、X轴的对应的向量,[Z轴Y轴X轴[0,0,1]]表示调整后的坐标系的Z轴、Y轴、X 轴对应的1×3的向量与矩阵[0,0,1]组合成4×3的矩阵,(calf,thigh)表示目标骨骼与目标骨骼的父骨骼之间的夹角。
上述Matrix3[]函数表示将[]内的不同矩阵组合成一个矩阵,[]as quat函数表示将[]内的数据转为四元自然数,angleAxis[a,X轴]函数表示绕X轴转a角度。
步骤S143:根据上述调整后的坐标系以及目标骨骼的父骨骼的全局变换参数确定目标骨骼的父骨骼对应的调整后的全局变换参数。
步骤S143的实现过程可以参考步骤S142,具体的,步骤S143具体可以按以下步骤S143a~S143b实现。
步骤S143a:确定目标骨骼的父骨骼绕上述目标向量的旋转值。
具体的,可以先确定出目标骨骼的父骨骼与第一向量之间的夹角,计算该夹角的cos值,记为thigh_rad,然后将第一骨链绕调整后的坐标系中的X轴旋转负thigh_rad角度之后,再转换成四元数,从而得到目标骨骼的父骨骼绕目标向量的旋转值。
步骤S143b:将上述第一骨链向量的旋转值乘以目标骨骼的父骨骼绕目标向量的旋转值确定为目标骨骼的父骨骼对应的调整后的全局旋转值。
具体的,步骤S143中可以通过以下公式确定所述目标骨骼的父骨骼对应的调整后的全局旋转值:
目标骨骼的父骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat ×angleAxis[-cos(thigh,limb),X轴]as quat;
其中,(thigh,limb)表示目标骨骼父骨骼与所述第一向量之间的夹角。
步骤S142b确定出目标骨骼的父骨骼对应的调整后的全局旋转值,即确定出目标骨骼的父骨骼对应的调整后的全局变换参数。
通过步骤S141~步骤S143所确定出的目标骨骼对应的调整后的全局变换参数以及目标骨骼的父骨骼对应的调整后的全局变换参数,可以很好地满足上述第一限制条件。
本申请实施例中,也可以通过其他的IK方式计算目标骨骼以及目标骨骼的父骨骼分别对应的修改后的全局变换参数,以上计算方式仅作示例,不构成对本申请的具体限制。
在一个具体实施例中,上述第一限制条件还可以包括:上述第一向量的长度与上述第二向量的长度比等于第一骨链的长度与第二骨链的长度比,第一骨链为目标骨骼与该目标骨骼的父骨骼组成的骨链,第二骨链为第一骨骼与第一骨骼的父骨骼组成的骨链。这样,能够使得按调整后的全局变换参数所确定的目标骨架模型的位姿与原骨架模型的位姿相似度更高,从而使得重定向准确度更好。
如图9所示,图9(a)是原骨架模型的姿态,图9(b)是未通过上述步骤 S130~步骤S150进行调整后目标骨架模型的姿态,图9(c)是通过上述步骤S130~步骤S150进行调整后目标骨架模型的姿态。可见,通过步骤S130~步骤S150 对目标骨架模型进行调整后,能够更合理地使脚骨骼与地面进行交互,重定向效果更好。
以目标骨骼是小腿骨骼为例,第一骨链的长度用lenmodelIK表示,第二骨链的长度用lenanimIK表示,第一向量用Vmodel表示,第二向量用Vanim表示,若 m=lenmodelIK/lenanimIK,则Vmodel=n×Vanim。
如图8所示,以目标骨骼为小腿骨骼为例,由于脚踝的位置是已经确定了的,根据上述第一限制条件包括的内容可以基于简单的几何关系计算出大腿骨骼与小腿骨骼的全局旋转值和全局位移值。具体的,如图8所示,第一向量与大腿骨骼、小腿骨骼形成一个三角形,已知三角形各边长,可求出大腿骨骼与第一向量的夹角及小腿骨骼相对于大腿骨骼的旋转角度,从而进一步得到小腿骨骼(目标骨骼)、大腿骨骼分别对应的全局旋转值与全局位移值。
如图10~图12所示,图10中的(a)为原骨架模型的姿态,图10中的b为按照图10中的(a)对Adv格式的骨架模型进行重定向后的效果图,图11中的 (a)为原骨架模型的姿态,图11中的b为按照图11中的(a)对Humanik格式的骨架模型进行重定向后的效果图,图12中的(a)为原骨架模型的姿态,图12中的b为按照图12中的(a)对Biped格式的骨架模型进行重定向后的效果图,可见,使用本申请实施例提供的动画重定向方法,能够使重定向的目标骨架模型与原动画对应的原骨架模型的姿态一致性更好,重定向效果更好。
本申请第二实施例还提供了一种动画重定向方法装置,所述装置包括:
数据获取单元210,用于获取原动画数据,所述原动画数据中包括原骨架模型对应的动作数据;
参数确定单元220,用于针对重定向的目标骨架模型中的第j条重定向骨骼,根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应;确定第一全局变换参数,所述第一全局变换参数为:在所述原骨架模型处于预设姿态时所述第i 条骨骼对应的全局变换参数;确定第二全局变换参数,所述第二全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼对应的全局变换参数;根据所述第一全局变换参数、所述第二全局变换参数以及所述第i 条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,其中,j遍历1~n,n为所述目标骨架模型中进行重定向的骨骼的数量。
可选地,所述动作数据中包括:所述原骨架模型的各条骨骼在其父骨骼坐标系下的相对变换参数;
参数确定单元220,具体用于根据第i条骨骼对应的相对变换参数以及所述第i条骨骼的父骨骼对应的全局变换参数,确定所述第i条骨骼对应的全局变换参数。
可选地,所述动作数据中还包括:在所述原骨架模型处于所述预设姿态时各条骨骼在其父骨骼坐标系下的相对变换参数;
所述装置还包括:
参数获取单元,用于获取第一相对变换参数,所述第一相对变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼在其父骨骼坐标系下的相对变换参数;获取第三全局变换参数,所述第三全局变换参数为:在所述原骨架模型处于所述预设姿态下时所述第i条骨骼的父骨骼对应的全局变换参数;
所述参数确定单元220,具体用于:根据所述参数获取单元获取的第一相对变换参数和所述第三全局变换参数,确定第一全局变换参数。
可选地,所述参数获取单元还用于:获取第二相对变换参数,所述第二相对变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼在其父骨骼坐标系下的相对变换参数;获取第四全局变换参数,所述第四全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼的父骨骼对应的全局变换参数;
所述参数确定单元220具体用于:根据所述第二相对变换参数与所述第四全局变换参数确定第二全局变换参数。
可选地,所述全局变换参数包括:全局位移值、全局旋转值、全局缩放值中的至少一种。
可选地,所述全局变换参数为全局旋转值或全局位移值;
所述参数确定单元220具体用于根据以下公式确定所述第j条重定向骨骼在当前帧的全局变换参数,以得到所述第j条重定向骨骼在各帧的全局变换参数:
其中,Global Transformcurrent目标模型j表示当前帧第j条重定向骨骼对应的全局变换参数,Global Transformcurrent原模型i表示原骨架模型中第i条骨骼对应的全局变换参数,Global TransformT目标模型j表示第一全局变换参数, Global TransformT原模型j表示第二全局变换参数。
可选地,若所述全局变换参数为全局位移值,则所述第j条重定向骨骼为所述目标骨架模型中的根骨骼,所述n为1;
若所述全局变换参数为全局旋转值,则所述第j条重定向骨骼为所述目标骨架模型中重定向的根骨骼或非根骨骼,所述n为所述目标骨架模型中重定向的根骨骼和非根骨骼的数量。
可选地,所述预设姿态为T-pose姿态、A-pose姿态或0-pose姿态。
可选地,所述在这里还包括:
位置确定单元,用于确定所述目标骨架模型中用于与外部环境交互的目标骨骼对应的目标位置,所述目标位置为所述目标骨骼与所述外部环境按第一交互方式进行交互时的位置信息,所述第一交互方式为所述原骨架模型中对应于所述目标骨骼的骨骼与外部环境交互的方式;
参数更新单元,用于基于第一限制条件,确定所述目标骨骼与所述目标骨骼的父骨骼分别对应的调整后的全局变换参数,所述第一限制条件包括:使所述目标骨骼位于所述目标位置;将所述目标骨骼对应的全局变换参数、所述目标骨骼的父骨骼对应的全局变换参数分别更新为所述目标骨骼对应的调整后的全局变换参数、所述目标骨骼的父骨骼对应的调整后的全局变换参数。
可选地,所述第一限制条件还包括:第一向量与第二向量的方向一致,所述第一向量为:所述目标骨骼的前端与所述目标骨骼的父骨骼的后端形成的向量,所述第二向量为:所述原骨架模型中与所述目标骨骼对应的第一骨骼的前端与所述第一骨骼的父骨骼的后端形成的向量。
可选地,所述第一限制条件还包括:所述第一向量的长度与所述第二向量的长度之比等于第一骨链与第二骨链的长度比,所述第一骨链包括:所述目标骨骼与所述目标骨骼的父骨骼,所述第二骨链包括:所述第一骨骼与所述第一骨骼的父骨骼。
可选地,所述参数更新单元,具体用于确定第一骨链对应的调整后的坐标系,所述第一骨链包括所述目标骨架模型中用于与外部环境交互的目标骨骼以及所述目标骨骼的父骨骼,所述调整后的坐标系为所述目标骨骼位于所述目标位置时所述第一骨链对应的坐标系;根据所述调整后的坐标系以及所述目标骨骼的全局变换参数确定所述目标骨骼对应的调整后的全局变换参数;根据所述调整后的坐标系以及所述目标骨骼的父骨骼的全局变换参数确定所述目标骨骼的父骨骼对应的调整后的全局变换参数。
可选地,所述参数更新单元,具体用于:
将所述第一向量的单位向量确定为第一骨链对应的调整后的坐标系的Z轴;
通过以下公式确定所述调整后的坐标系的Y轴:
其中,a、b、c分别为标准Y轴向量[0、1、0]对应的三个向量值,a'、b'、 c'分别为所述调整后的坐标系的Y轴向量对应的三个向量值,x、y、z、w分别为所述目标骨骼的父骨骼对应的全局旋转值的逆旋转向量中的各个向量值;
根据所述调整后的坐标系的Z轴、所述调整后的坐标系的Y轴确定所述调整后的坐标系的X轴。
与本申请第一实施例提供的动画重定向方法相对应的,本申请第三实施例还提供了一种用于动画重定向的电子设备。如图14所示,所述电子设备包括:处理器301;以及存储器302,用于存储动画重定向方法的程序,该设备通电并通过所述处理器运行该数据变更响应方法的程序后,执行如下步骤:
获取原动画数据,所述原动画数据中包括原骨架模型对应的动作数据;
针对重定向的目标骨架模型中的第j条重定向骨骼,执行以下操作:
根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应;
确定第一全局变换参数,所述第一全局变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼对应的全局变换参数;
确定第二全局变换参数,所述第二全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼对应的全局变换参数;
根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,其中,j 遍历1~n,n为所述目标骨架模型中进行重定向的骨骼的数量。
与本申请第一实施例提供的动画重定向方法相对应的,本申请第四实施例提供一种计算机可读存储介质,存储有动画重定向方法的程序,该程序被处理器运行,执行下述步骤:
获取原动画数据,所述原动画数据中包括原骨架模型对应的动作数据;
针对重定向的目标骨架模型中的第j条重定向骨骼,执行以下操作:
根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应;
确定第一全局变换参数,所述第一全局变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼对应的全局变换参数;
确定第二全局变换参数,所述第二全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼对应的全局变换参数;
根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,其中,j 遍历1~n,n为所述目标骨架模型中进行重定向的骨骼的数量。
需要说明的是,对于本申请第二实施例至第四实施例中提供的装置、电子设备及计算机可读存储介质实施例,详细描述可以参考对本申请第一实施例至第三实施例的相关描述,这里不再赘述。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他属性的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储介质或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (17)
1.一种动画重定向方法,其特征在于,所述方法包括:
获取原动画数据,所述原动画数据中包括原骨架模型对应的动作数据;
针对重定向的目标骨架模型中的第j条重定向骨骼,执行以下操作:
根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应;
确定第一全局变换参数,所述第一全局变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼对应的全局变换参数;
确定第二全局变换参数,所述第二全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼对应的全局变换参数;
根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,其中,j遍历1~n,n为所述目标骨架模型中进行重定向的骨骼的数量。
2.根据权利要求1所述的动画重定向方法,其特征在于,所述动作数据中包括:所述原骨架模型的各条骨骼在其父骨骼坐标系下的相对变换参数;
所述根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下的全局变换参数,包括:
根据第i条骨骼对应的相对变换参数以及所述第i条骨骼的父骨骼对应的全局变换参数,确定所述第i条骨骼对应的全局变换参数。
3.根据权利要求1所述的动画重定向方法,其特征在于,所述动作数据中还包括:在所述原骨架模型处于所述预设姿态时各条骨骼在其父骨骼坐标系下的相对变换参数;
在所述确定第一全局变换参数之前,所述方法还包括:
获取第一相对变换参数,所述第一相对变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼在其父骨骼坐标系下的相对变换参数;
获取第三全局变换参数,所述第三全局变换参数为:在所述原骨架模型处于所述预设姿态下时所述第i条骨骼的父骨骼对应的全局变换参数;
所述确定第一全局变换参数,包括:
根据所述第一相对变换参数和所述第三全局变换参数,确定第一全局变换参数。
4.根据权利要求1所述的动画重定向方法,其特征在于,在所述确定第二全局变换参数之前,所述方法还包括:
获取第二相对变换参数,所述第二相对变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼在其父骨骼坐标系下的相对变换参数;
获取第四全局变换参数,所述第四全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼的父骨骼对应的全局变换参数;
所述确定第二全局变换参数,包括:
根据所述第二相对变换参数与所述第四全局变换参数确定第二全局变换参数。
5.根据权利要求1所述的动画重定向方法,其特征在于,所述全局变换参数包括:全局位移值、全局旋转值、全局缩放值中的至少一种。
6.根据权利要求1所述的动画重定向方法,其特征在于,所述全局变换参数为全局旋转值或全局位移值;
所述根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,包括:
根据以下公式确定所述第j条重定向骨骼在当前帧的全局变换参数,以得到所述第j条重定向骨骼在各帧的全局变换参数:
Global Transformcurrent目标模型j
其中,Global Transformcurrent目标模型j表示当前帧第j条重定向骨骼对应的全局变换参数,Global Transformcurrent原模型i表示原骨架模型中第i条骨骼对应的全局变换参数,GlobalTransformT目标模型i表示第一全局变换参数,Global TransformT原模型j表示第二全局变换参数。
7.根据权利要求1所述的动画重定向方法,其特征在于,若所述全局变换参数为全局位移值,则所述第j条重定向骨骼为所述目标骨架模型中的根骨骼,所述n为1;
若所述全局变换参数为全局旋转值,则所述第j条重定向骨骼为所述目标骨架模型中重定向的根骨骼或非根骨骼,所述n为所述目标骨架模型中重定向的根骨骼和非根骨骼的数量。
8.根据权利要求3所述的动画重定向方法,其特征在于,所述预设姿态为T-pose姿态、A-pose姿态或0-pose姿态。
9.根据权利要求1至8任一项所述的动画重定向方法,其特征在于,所述方法还包括:
确定所述目标骨架模型中用于与外部环境交互的目标骨骼对应的目标位置,所述目标位置为所述目标骨骼与所述外部环境按第一交互方式进行交互时的位置信息,所述第一交互方式为所述原骨架模型中对应于所述目标骨骼的骨骼与外部环境交互的方式;
基于第一限制条件,确定所述目标骨骼与所述目标骨骼的父骨骼分别对应的调整后的全局变换参数,所述第一限制条件包括:使所述目标骨骼位于所述目标位置;
将所述目标骨骼对应的全局变换参数、所述目标骨骼的父骨骼对应的全局变换参数分别更新为所述目标骨骼对应的调整后的全局变换参数、所述目标骨骼的父骨骼对应的调整后的全局变换参数。
10.根据权利要求9所述的动画重定向方法,其特征在于,所述第一限制条件还包括:第一向量与第二向量的方向一致,所述第一向量为:所述目标骨骼的前端与所述目标骨骼的父骨骼的后端形成的向量,所述第二向量为:所述原骨架模型中与所述目标骨骼对应的第一骨骼的前端与所述第一骨骼的父骨骼的后端形成的向量。
11.根据权利要求10所述的动画重定向方法,其特征在于,所述第一限制条件还包括:所述第一向量的长度与所述第二向量的长度之比等于所述目标骨骼与所述第一骨骼的长度比。
12.根据权利要求10所述的动画重定向方法,其特征在于,所述基于第一限制条件,确定所述目标骨骼与所述目标骨骼的父骨骼分别对应的调整后的全局变换参数,包括:
确定第一骨链对应的调整后的坐标系,所述第一骨链包括所述目标骨架模型中用于与外部环境交互的目标骨骼以及所述目标骨骼的父骨骼,所述调整后的坐标系为所述目标骨骼位于所述目标位置时所述第一骨链对应的坐标系;
根据所述调整后的坐标系以及所述目标骨骼的全局变换参数确定所述目标骨骼对应的调整后的全局变换参数;
根据所述调整后的坐标系以及所述目标骨骼的父骨骼的全局变换参数确定所述目标骨骼的父骨骼对应的调整后的全局变换参数。
14.根据权利要求12所述的动画重定向方法,其特征在于,所述根据所述调整后的坐标系以及所述目标骨骼的全局变换参数确定所述目标骨骼对应的调整后的全局变换参数,包括:
通过以下公式确定所述目标骨骼对应的调整后的全局旋转值:
目标骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat×angleAxis[-cos(calf,thigh),X轴]as quat;
其中,[Z轴Y轴X轴[0,0,1]]表示所述调整后的坐标系的Z轴、Y轴、X轴对应的1×3的向量与矩阵[0,0,1]组合成4×3的矩阵,(calf,thigh)表示目标骨骼与目标骨骼的父骨骼之间的夹角;
所述根据所述调整后的坐标系以及所述目标骨骼的父骨骼的全局变换参数确定所述目标骨骼的父骨骼对应的调整后的全局变换参数,包括:
通过以下公式确定所述目标骨骼的父骨骼对应的调整后的全局旋转值:
目标骨骼的父骨骼的全局旋转值=Matrix3[Z轴Y轴X轴[0,0,1]]as quat×angleAxis[-cos(thigh,limb),X轴]as quat;
其中,(thigh,limb)表示目标骨骼父骨骼与所述第一向量之间的夹角。
15.一种动画重定向方法装置,其特征在于,所述装置包括:
数据获取单元,用于获取原动画数据,所述原动画数据中包括原骨架模型对应的动作数据;
参数确定单元,用于针对重定向的目标骨架模型中的第j条重定向骨骼,根据所述动作数据确定所述原骨架模型中第i条骨骼在世界坐标系下各帧的全局变换参数,所述第i条骨骼与所述第j条重定向骨骼相对应;确定第一全局变换参数,所述第一全局变换参数为:在所述原骨架模型处于预设姿态时所述第i条骨骼对应的全局变换参数;确定第二全局变换参数,所述第二全局变换参数为:在所述目标骨架模型处于所述预设姿态时所述第j条重定向骨骼对应的全局变换参数;根据所述第一全局变换参数、所述第二全局变换参数以及所述第i条骨骼对应的全局变换参数确定所述第j条重定向骨骼在各帧的全局变换参数,其中,j遍历1~n,n为所述目标骨架模型中进行重定向的骨骼的数量。
16.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储数据处理程序,该电子设备通电并通过所述处理器运行该程序后,执行如权利要求1-14中任一项所述的动画重定向方法。
17.一种计算机可读存储介质,其特征在于,存储有数据处理程序,该程序被处理器运行,执行如权利要求1-14中任一项所述的动画重定向方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210442138.1A CN115222855A (zh) | 2022-04-25 | 2022-04-25 | 动画重定向方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210442138.1A CN115222855A (zh) | 2022-04-25 | 2022-04-25 | 动画重定向方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115222855A true CN115222855A (zh) | 2022-10-21 |
Family
ID=83607113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210442138.1A Pending CN115222855A (zh) | 2022-04-25 | 2022-04-25 | 动画重定向方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115222855A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116805344A (zh) * | 2023-06-21 | 2023-09-26 | 支付宝(杭州)信息技术有限公司 | 一种数字人动作重定向方法及装置 |
-
2022
- 2022-04-25 CN CN202210442138.1A patent/CN115222855A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116805344A (zh) * | 2023-06-21 | 2023-09-26 | 支付宝(杭州)信息技术有限公司 | 一种数字人动作重定向方法及装置 |
CN116805344B (zh) * | 2023-06-21 | 2024-05-24 | 支付宝(杭州)信息技术有限公司 | 一种数字人动作重定向方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gao et al. | Sparse data driven mesh deformation | |
KR101998059B1 (ko) | 캐릭터 애니메이션용 모션 리타겟팅 방법 및 장치 | |
US10789754B2 (en) | Generating target-character-animation sequences based on style-aware puppets patterned after source-character-animation sequences | |
EP3454302B1 (en) | Approximating mesh deformation for character rigs | |
Baran et al. | Semantic deformation transfer | |
US20190295305A1 (en) | Retargeting skeleton motion sequences through cycle consistency adversarial training of a motion synthesis neural network with a forward kinematics layer | |
KR101102778B1 (ko) | 리깅 복제를 통한 캐릭터 리깅 자동화 방법 및 장치 | |
WO2020108304A1 (zh) | 人脸网格模型的重建方法、装置、设备和存储介质 | |
WO2000041139A1 (fr) | Dispositif de compression de donnees squelette a base tridimensionnelle | |
JP2014235756A (ja) | 2dビューを用いた3dモデル化オブジェクトの設計 | |
US20180046167A1 (en) | 3D Printing Using 3D Video Data | |
CN115222855A (zh) | 动画重定向方法、装置、电子设备及可读存储介质 | |
JP4719155B2 (ja) | リグ・ベーキング | |
Romero et al. | Modeling and estimation of nonlinear skin mechanics for animated avatars | |
Casti et al. | Skeleton based cage generation guided by harmonic fields | |
Engell-Nørregård et al. | A joint-constraint model for human joints using signed distance-fields | |
JP2002207777A (ja) | 中立面モデルの生成方法 | |
CN113705379A (zh) | 一种手势估计方法、装置、存储介质及设备 | |
US20230196678A1 (en) | Transforming three-dimensional model by using correlation to template model with template skeleton | |
Zhao et al. | Facial Auto Rigging from 4D Expressions via Skinning Decomposition | |
CN114445530A (zh) | 一种修型方法、装置及存储介质 | |
Lin | 3d character animation synthesis from 2d sketches | |
CN116805344B (zh) | 一种数字人动作重定向方法及装置 | |
CN113805532B (zh) | 一种制作实体机器人动作的方法及终端 | |
CN115457189B (zh) | 一种基于团着色的pbd骨骼驱动软体仿真系统及方法 |
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 |