本申请涉及通信,尤其是指一种物理仿真方法、设备、计算机可读存储介质及产品。
背景技术:
1、随着元宇宙3d虚拟人物及其动画制作表现的应用越来越广泛,用户对3d虚拟人物的真实度要求越来越高,3d虚拟人物的物理表现也越来越重要。在布料仿真中,如果人物角色出现跑步、高抬腿等幅度大速度快的动作,布料经常穿透人物肢体,出现“穿模”的情况。在移动端等硬件有限的终端上,为了平衡性能与效果通常对服装采用外骨骼蒙皮的方式进行绑定在基于骨骼进行物理仿真,在精度下降的同时,“穿模”情况更加明显。
2、现有技术中,为了解决肢体与衣服模型的穿模现象,经常使用加载离线物理预计算为动画或者美术预先制作好的动画的方式,避免实时物理演算。但是,预计算动画或美术制作动画的方案需要大量人力制作资源且内存压力大、管理不方便的问题。
技术实现思路
1、本申请的目的在于提供一种物理仿真方法、设备、计算机可读存储介质及产品,以解决现有动画穿模解决方案需要大量人力制作资源且内存压力大、管理不方便的问题。
2、为了解决上述问题,本申请提供一种骨骼驱动动画的物理仿真方法,所述方法包括:
3、在物理仿真运行之前,对碰撞体数据和骨骼数据进行预计算,得到碰撞体和骨骼的绑定数据;
4、在物理仿真运行过程中,根据所述碰撞体数据和所述骨骼数据进行动力学计算,对骨骼位置进行初步模拟,得到骨骼位置;根据所述绑定数据进行防穿模计算,更新骨骼位置;根据更新后的骨骼位置以及所述碰撞体数据进行碰撞检测计算,再次更新骨骼位置,得到物理仿真结果。
5、其中,所述对碰撞体数据和骨骼数据进行预计算,得到碰撞体和骨骼的绑定数据,包括:
6、对一个骨骼,检测与所述骨骼的表面距离最近的碰撞体,记录绑定数据;所述绑定数据包括:所述碰撞体的轴上最近点到骨骼位置的单位推出向量、骨骼序号、碰撞体序号。
7、其中,对一个骨骼,检测与所述骨骼的表面距离最近的碰撞体,记录绑定数据,包括:
8、根据所述碰撞体数据,计算碰撞体的最远两端位置;
9、根据所述碰撞体的最远两端位置以及骨骼位置,计算骨骼位置与碰撞体内部轴上最近点的轴上距离和碰撞体的轴上最近点到骨骼位置的单位推出向量;所述碰撞体的轴上最近点为碰撞体轴线上距离所述骨骼位置的最近点;
10、根据所述轴上距离以及碰撞体轴上最近点对应半径,计算骨骼与碰撞体的表面距离;
11、根据所述表面距离,确定与骨骼的表面距离最近的碰撞体,将骨骼序号、碰撞体序号以及所述碰撞体的轴上最近点到骨骼位置的单位推出向量记录为所述绑定数据。
12、其中,根据所述绑定数据进行防穿模计算,更新骨骼位置,包括:
13、遍历所述绑定数据,根据预先设置的限制参数控制绑定的骨骼和碰撞体进行一次沿轴的预碰撞,更新骨骼位置。
14、其中,所述限制参数包括限制最大角度、限制最大距离、额外保持距离中的至少一项;
15、所述遍历所述绑定数据,根据预先设置的限制参数控制绑定的骨骼和碰撞体进行一次沿轴的预碰撞,更新骨骼位置,包括:
16、根据所述绑定数据、所述限制最大角度以及所述限制最大距离,将碰撞体的轴上最近点到骨骼位置之间的向量向当前单位推出向量方向旋转目标值,并更新骨骼位置为碰撞体轴上最近点位置加上旋转后的向量;
17、根据所述额外保持距离、骨骼半径、碰撞体的轴上最近点对应的半径,计算骨骼位置距离碰撞体轴内的最小距离;
18、根据所述碰撞体的轴上最近点与骨骼位置的距离,以及所述最小距离,更新所述骨骼位置。
19、其中,所述方法还包括:
20、计算骨骼位置和当前单位推出向量在经过碰撞体的轴上最近点且垂直碰撞体轴向的面上的骨骼位置投影和推出向量投影;其中,当前单位推出向量为单位推出向量在碰撞体当前旋转矩阵下的世界坐标向量;
21、根据所述骨骼位置投影和所述推出向量投影的实际夹角,以及所述限制最大角度,计算旋转恢复强度;
22、根据碰撞体的轴上最近点与骨骼位置的距离,以及所述限制最大距离,计算距离恢复强度;
23、根据所述旋转恢复强度和所述距离恢复强度,确定最终恢复强度;
24、计算碰撞体的轴上最近点到骨骼位置的向量与当前单位推出向量方向的偏离角度;
25、确定所述目标值为偏离角度与最终恢复强度的乘积。
26、其中,根据所述碰撞体的轴上最近点与骨骼位置的距离,以及所述最小距离,更新所述骨骼位置,包括:
27、在所述轴上最近点与所述骨骼位置的距离小于所述最小距离的情况下,将所述骨骼位置移出,使得所述轴上最近点与所述骨骼位置的距离等于所述最小距离;
28、或者,
29、在所述轴上最近点与所述骨骼位置的距离大于或者等于所述最小距离的情况下,保持所述骨骼位置不动。
30、本申请实施例还提供一种仿真设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如上所述的骨骼驱动动画的物理仿真方法。
31、本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的骨骼驱动动画的物理仿真方法中的步骤。
32、本申请实施例还提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上所述的骨骼驱动动画的物理仿真方法的步骤。
33、本申请的上述技术方案至少具有如下有益效果:
34、本申请实施例的物理仿真方法、设备、计算机可读存储介质及产品,在获取碰撞体数据和骨骼数据后通过物理仿真运行之前的预计算来准备用于防穿模计算的数据;并在物理仿真运行过程中通过物理运动计算、防穿模计算、碰撞检测计算的流程,来进行物理仿真计算,从而通过实时计算在长裙、拖地裙等场景中更好的限制外部骨骼的运动,且不需要预计算动画或美术制作动画,节省动画美术制作需要的大量人力、节省动画储存的内存空间及管理消耗。
1.一种骨骼驱动动画的物理仿真方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对碰撞体数据和骨骼数据进行预计算,得到碰撞体和骨骼的绑定数据,包括:
3.根据权利要求2所述的方法,其特征在于,对一个骨骼,检测与所述骨骼的表面距离最近的碰撞体,记录绑定数据,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,根据所述绑定数据进行防穿模计算,更新骨骼位置,包括:
5.根据权利要求4所述的方法,其特征在于,所述限制参数包括限制最大角度、限制最大距离、额外保持距离中的至少一项;
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的方法,其特征在于,根据所述碰撞体的轴上最近点与骨骼位置的距离,以及所述最小距离,更新所述骨骼位置,包括:
8.一种仿真设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的骨骼驱动动画的物理仿真方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的骨骼驱动动画的物理仿真方法中的步骤。
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的骨骼驱动动画的物理仿真方法的步骤。