【技术实现步骤摘要】
虚拟骨骼的修型方法和装置、存储介质及电子设备
[0001]本申请涉及计算机领域,具体而言,涉及一种虚拟骨骼的修型方法和装置、存储介质及电子设备。
技术介绍
[0002]目前,现有技术方案一般将动作捕捉数据直接输入虚幻引擎中,以驱动角色骨骼运动,骨骼变形的效果完全取决于动作捕捉软件输出的数据质量。一些光学动作捕捉的系统输出的骨骼姿态在空间位置上相对精确,但对于旋转姿态上可能出现较大的误差,导致骨骼变形效果不理想,另外动作捕捉软件输出的姿态,在例如肩、肘、腕关节处常常出现变形过度和变形不连续等现象。
[0003]针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
[0004]本申请实施例提供了一种虚拟骨骼的修型方法和装置、存储介质及电子设备,以至少解决虚拟骨骼的显示不自然,导致虚拟骨骼的变形效果较差的技术问题。
[0005]根据本申请实施例的一个方面,提供了一种虚拟骨骼的修型方法,包括:获取虚拟骨骼的运动过程中产生的原始姿态数据,其中,所述虚拟骨骼包括依次连接的初始骨骼、第一主骨骼、第二主 ...
【技术保护点】
【技术特征摘要】
1.一种虚拟骨骼的修型方法,其特征在于,包括:获取虚拟骨骼的运动过程中产生的原始姿态数据,其中,所述虚拟骨骼包括依次连接的初始骨骼、第一主骨骼、第二主骨骼和第三主骨骼,所述第一主骨骼与所述第二主骨骼之间还包括依次连接的第一组子骨骼,所述第二主骨骼和所述第三主骨骼之间还包括依次连接的第二组子骨骼,所述第一主骨骼是所述第一组子骨骼的父骨骼,所述第二主骨骼是所述第二组子骨骼的父骨骼;根据所述原始姿态数据确定第一姿态数据和第二姿态数据,其中,所述第一姿态数据用于根据所述初始骨骼、所述第一主骨骼以及所述第二主骨骼共同确定所述第一主骨骼的姿态数据,所述第二姿态数据用于根据所述第一主骨骼、所述第二主骨骼以及所述第三主骨骼共同确定所述第一主骨骼和所述第二主骨骼的姿态数据;对所述第一姿态数据和所述第二姿态数据执行第一线性插值操作,确定所述第一组子骨骼对应的第一组姿态数据,其中,所述第一组姿态数据用于对所述第一组子骨骼进行修型;根据所述第二主骨骼和所述第三主骨骼确定第二组姿态数据,其中,所述第二组姿态数据用于对所述第二组子骨骼进行修型;根据所述第一姿态数据、所述第二姿态数据、所述第一组姿态数据以及所述第二组姿态数据生成目标姿态数据,其中,所述目标姿态数据表示对所述原始姿态数据修型后的姿态数据。2.根据权利要求1所述的方法,其特征在于,所述根据所述原始姿态数据确定第一姿态数据,包括:根据所述原始姿态数据确定第一重算姿态数据和第二重算姿态数据,其中,所述第一重算姿态数据是以所述初始骨骼的第一朝上向量作为约束计算得到的姿态数据,所述第二重算姿态数据是以所述初始骨骼的第一朝前向量作为约束计算得到的姿态数据,所述第一朝上向量的方向为所述初始骨骼对应的局部坐标系中指向上的坐标轴方向,所述第一朝前向量的方向为所述初始骨骼对应的局部坐标系中指向前的坐标轴方向;对所述第一重算姿态数据和所述第二重算姿态数据执行第二插值操作,得到目标重算姿态数据集合,其中,所述第一重算姿态数据和所述第二重算姿态数据是所述目标重算姿态数据集合的边界值;根据所述第一主骨骼的主轴方向与所述第一朝上向量之间的夹角从所述目标重算姿态数据集合中确定出所述第一姿态数据,其中,所述主轴方向表示对应主骨骼的朝向。3.根据权利要求2所述的方法,其特征在于,所述根据所述原始姿态数据确定第一重算姿态数据和第二重算姿态数据,包括:从所述原始姿态数据中获取所述第一主骨骼的第一位置和所述第二主骨骼的第二位置,其中,所述第一位置和所述第二位置用于确定所述第一位置指向所述第二位置的姿态数据集合;从所述原始姿态数据中获取第二朝上向量和第二朝前向量,其中,所述第二朝上向量的方向为所述第一主骨骼对应的局部坐标系中指向上的坐标轴方向,所述第二朝前向量的方向为所述第一主骨骼对应的局部坐标系中指向前的坐标轴方向;将所述第一位置、所述第二位置、所述第一朝上向量以及所述第二朝上向量输入第一
预设函数确定所述第一重算姿态数据,并将所述第一位置、所述第二位置、所述第一朝前向量以及所述第二朝前向量输入所述第一预设函数确定所述第二重算姿态数据,其中,所述第一重算姿态数据是所述姿态数据集合中所述第一朝上向量和所述第二朝上向量的夹角最小的姿态数据,所述第二重算姿态数据是所述姿态数据集合中所述第一朝前向量和所述第二朝前向量的夹角最小的姿态数据。4.根据权利要求2所述的方法,其特征在于,所述根据所述第一主骨骼的主轴方向与所述第一朝上向量之间的夹角从所述目标重算姿态数据集合中确定出所述第一姿态数据,包括:获取所述主轴方向与所述第一朝上向量之间的夹角的目标夹角度数;根据所述目标夹角度数确定目标参数,其中,所述目标参数的取值为预设度数和所述目标夹角度数之差的绝对值;在所述目标参数位于第一度数区间的情况下,将所述第一重算姿态数据确定为所述第一姿态数据,其中,所述第一度数区间的下限为0,上限为预先设置的第一参考度数;在所述目标参数位于第二度数区间的情况下,将执行所述第二插值操作得到的姿态数据确定为所述第一姿态数据,其中,所述第二度数区间的下限为所述第一参考度数,上限为预先设置的第二参考度数;在所述目标参数位于第三度数区间的情况下,将所述第二重算姿态数据确定为所述第一姿态数据,其中,所述第三度数区间的下限为所述第二参考度数,上限为所述预设度数。5.根据权利要求4所述的方法,其特征在于,所述对所述第一重算姿态数据和所述第二重算姿态数据执行第二插值操作,得到目标重算姿态数据集合,包括:获取目标插值系数,其中,所述目标插值系数的取值和所述目标参数相关;根据所述目标插值系数对所述第一重算姿态数据和所述第二重算姿态数据执行所述第二插值操作,得到目标重算姿态数据集合,其中,所述目标重算姿态数据集合包括所述第一重算姿态数据、所述第二重算姿态数据以及取值处于所述第一重算姿态数据和所述第二重算姿态数据之间的姿态数据。6.根据权利要求1所述的方法,其特征在于,所述根据所述原始姿态数据确定第二姿态数据,包括:从所述原始姿态数据中获取所述第一主骨骼的第一位置、第二主骨骼的第二位置以及第三主骨骼的第三位置;确定所述第一主骨骼和所述第二主骨骼的弯曲程度,其中,所述弯曲程度由所述第一主骨骼的主轴方向和所述第二主骨骼的主轴方向之间的夹角度数确定,所述主轴方向表示对应主骨骼的朝向;在所述弯曲程度指示当前所述第一主骨骼和所述第二主骨骼处于弯曲状态的情况下,根据所述第一位置、所述第二位置以及所述第三位置确定第一重建姿态数据,其中,所述第一重建姿态数据包括所述第一主骨骼在所述弯曲状态下的重建姿态数据和所述第二主骨骼在所述弯曲状态下的重建姿态数据;在所述弯曲程度指示当前所述第一主骨骼和所述第二主骨骼处于伸直状态的情况下,获取之前确定的所述第一重建姿态数据,并根据所述第一重建姿态数据重新构造第二重建姿态数据,其中,所述第二重建姿态数据包括所述第一主骨骼在所述伸直状态下的重建姿
态数据和所述第二主骨骼在所述伸直状态下的重建姿态数据;对所述第一重建姿态数据和所述第二重建姿态数据执行第三插值操作,得到目标重建姿态数据集合;根据所述弯曲程度从所述目标重建姿态数据集合中确定出所述第二姿态数据。7.根据权利要求6所述的方法,其特征在于,确定所述第一主骨骼和所述第二主骨骼的弯曲程度,包括:获取所述第一主骨骼的主轴方向和所述第二主骨骼的主轴方向之间的夹角度数;在所述夹角度数大于或等于第一预设弯曲阈值的情况下,确定所述弯曲程度指示当前所述第一主骨骼和所述第二主骨骼处于...
【专利技术属性】
技术研发人员:李博,韩蕾,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。