CN112001989B - 虚拟对象的控制方法及装置、存储介质、电子装置 - Google Patents
虚拟对象的控制方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN112001989B CN112001989B CN202010736955.9A CN202010736955A CN112001989B CN 112001989 B CN112001989 B CN 112001989B CN 202010736955 A CN202010736955 A CN 202010736955A CN 112001989 B CN112001989 B CN 112001989B
- Authority
- CN
- China
- Prior art keywords
- animation
- rigid body
- data
- skeleton
- physical
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- 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
本发明提供了一种虚拟对象的控制方法及装置、存储介质、电子装置,该方法包括:骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时骨骼刚体对应骨骼的动画帧数据;依据动画帧数据计算骨骼刚体的当前状态时的状态数据和对应的关节数据;计算设置骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;采用骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。通过本发明,解决了相关技术中因美术制作无法对虚拟对象进行直接的控制,难以预期虚拟对象的物理模拟结果,且难以表现虚拟对象的美术效果等技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种虚拟对象的控制方法及装置、存储介质、电子装置。
背景技术
在相关技术的游戏渲染系统中,使用骨骼动画系统,能够取得良好的表现效果。但是在使用过程中,逐渐出现了一些问题:一方面动画效果表现单一,以受击动画为例,无论击打什么部位,受击效果都是同样的,若想表现出不同的受击效果,需要通过美术制作出相应的动作,使得整体表现严重依赖美术的工作量;另一方面,预制作的动画难以与实际的周围环境互动。以击飞动画为例,在实际应用中,击飞过程有可能穿透了场景物体,图1是根据相关技术中动画系统模拟击飞操作的效果图。因此,面对复杂的应用环境,自然的会想到引入物理系统。物理系统确实能够解决复杂环境下的碰撞穿透问题,也能够解决表现效果单一的问题,在不显著增加美术工作量的情况下,打击不同部位会产生不同效果,图2是根据相关技术中物理系统模拟击飞操作的效果图。
然后,相关技术中的物理系统也引入了一些新的问题:美术对动作表现失去了直接的控制,物理模拟的结果难以预期,也不好调较。原本美术可以按照时间顺序的视觉效果直接控制调教骨骼位置和朝向,是很直观的,而物理系统的质量、力、速度等概念是比较抽象的,需要运行起来才能得到效果的。某一时刻的某一数据,对于整体表现其实是不好理解的;而且物理参数众多,互相关联牵一发而动全身。整体上难以表现美术效果。在美术制作的动作中常常会有艺术夸张的效果,这些效果不一定符合物理规律,在物理系统中无法展现或者很难展现。因此,纯物理表现很可能达不到美术的预期。在上面的击飞示例中,在击飞后的空中姿态表现上,骨骼动画与纯物理有明显的不同,图3是根据相关技术提供的骨骼动画与纯物理效果之间的对照图。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种虚拟对象的控制方法及装置、存储介质、电子装置,以至少解决相关技术中因美术制作无法对虚拟对象进行直接的控制,难以预期虚拟对象的物理模拟结果,且难以表现虚拟对象的美术效果等技术问题。
根据本发明的一个实施例,提供了一种虚拟对象的控制方法,其中,虚拟对象的骨骼模型设置有动画系统,并且所述虚拟对象骨骼模型设置有物理系统,该物理系统包括:骨骼刚体和对应的关节信息;其特征在于,所述控制方法包括:骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据;依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据;计算设置所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选的,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据包括:获取动画系统在当前时间加载的动画帧,其中,所述动画帧中的对象包括所述虚拟对象;在所述动画帧中解析所述虚拟对象的骨骼刚体对应骨骼在世界坐标系下的姿态信息。
可选的,依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据包括:在动画引擎中依据所述动画帧数据计算所述骨骼刚体的当前状态时的以下状态数据至少之一:骨骼刚体的位置、骨骼刚体的朝向、骨骼刚体的线速度、骨骼刚体的角速度;在所述动画引擎中确定与所述骨骼刚体关联的关节,并获取所述关节在所述当前状态时的关节数据。
可选的,依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据包括:获得第一刚体所对应的骨骼的动画世界坐标系下的姿态数据,其中,所述虚拟对象的骨骼模型至少包括第一刚体、第二刚体,以及连接在第一刚体和第二刚体之间的连接第一刚体的第一关节,以及与第二刚体连接的第二关节;根据所述第一刚体相对骨骼的姿态计算第一刚体的物理世界坐标系下的姿态数据;根据第一关节相对所述第一刚体的姿态计算出第一关节的姿态数据;获得第二刚体所对应的骨骼的动画世界坐标系下的姿态数据;根据第二刚体相对骨骼的姿态计算出第二刚体的世界坐标系下的姿态数据;根据第二关节相对第二刚体的姿态计算出第二关节的姿态数据;计算第二关节的相对第一关节的姿态数据。
可选的,在动画引擎中依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据包括:在动画引擎中依据第一动画帧数据解析所述虚拟对象在世界坐标系中第一姿态信息;基于所述第一姿态信息确定所述骨骼刚体的当前状态时的第一状态数据,其中,所述第一状态数据包括:骨骼刚体的位置、骨骼刚体的朝向;在动画引擎中依据第二动画帧数据解析所述虚拟对象在世界坐标系中第二姿态信息,其中,所述动画帧数据包括所述第一动画帧数据和所述第二动画帧数据,所述第二动画帧数据的加载时间早于所述第一动画帧数据的加载时间;基于所述第二姿态信息与所述第一姿态信息计算所述虚拟对象的移动距离,并根据所述移动距离计算所述骨骼刚体的线速度和所述骨骼刚体的角速度。
可选的,采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,包括:在所述骨骼模型的物理系统中基于预设参照刚体构建三轴正交坐标系统,其中,所述骨骼刚体和关节的六自由度关节分别对应所述三轴正交坐标系统三个坐标轴的轴向位移方向和旋转方向;在所述物理系统中通过物理驱动依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体在所述三轴正交坐标系统沿轴向位移方向和/或旋转方向从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,其中,物理驱动包括以下之一:线性驱动、角度驱动、球面插值驱动,所述驱动参数包括沿轴向位移和绕轴旋转位移。
可选的,采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,包括:提取所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据中的关节参数和驱动参数,其中,所述关节参数和所述驱动参数相互关联;抽象并封装所述关节参数和驱动参数,得到引擎参数;将所述引擎参数作为驱动目标输入到所述物理系统的物理引擎中,驱动所述物理引擎以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选的,将所述引擎参数作为驱动目标输入到所述物理系统的物理引擎中包括:计算所述引擎参数针对骨骼刚体的第一力矩,以及计算所述骨骼刚体的限制力矩;根据所述第一力矩和所述限制力矩计算所述骨骼刚体受到的合力矩,并将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中。
可选的,所述时间间隔为1/60秒,所述动画系统的动画帧时间间隔为1/30秒。
可选的,所述方法还包括:在预定数量的动画帧时间段中,通过一控制器根据所述虚拟对象的角色行为执行以下操作:驱动参数平滑处理、驱动状态管理、驱动应用策略管理;其中,所述驱动参数平滑处理用于流畅显示所述虚拟对象的动画效果;所述驱动状态管理包括管理所述骨骼刚体的状态变化;所述驱动应用策略管理用于指示所使用的控制器,以控制骨骼刚体产生对应的动画效果。
可选的,所述方法还包括:所述骨骼模型动画过程中所述骨骼刚体触发碰撞时,使用一合成器,将所述物理系统计算的趋近结果与当前动画帧的状态数据和对应的关节数据进行融合处理。
可选的,所述方法还包括:在检测到所述骨骼模型上新的触发事件时,将所述骨骼模型的运动切换到纯物理系统计算的运动;其中在进行所述切换时,使用一合成器,将所述物理系统计算的所述趋近结果与要切换到的纯物理系统在当前时刻计算的状态数据和对应的关节数据进行融合处理。
可选的,在采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载之后,所述方法还包括:在所述物理系统中判断碰撞过程是否完成;若所述碰撞过程未完成,将当前周期加载的下一动画帧数据更新为下一周期在起始状态时的动画帧数据。
根据本发明的又一个实施例,还提供了一种虚拟对象的控制装置,其中,虚拟对象的骨骼模型设置有动画系统,并且所述虚拟对象骨骼模型设置有物理系统,该物理系统包括:骨骼刚体和对应的关节信息;所述控制装置包括:获取模块,用于骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据;第一计算模块,用于依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据;第二计算模块,用于计算设置所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;模拟模块,用于采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选的,所述获取模块包括:获取单元,用于获取动画系统在当前时间加载的动画帧,其中,所述动画帧中的对象包括所述虚拟对象;解析单元,用于在所述动画帧中解析所述虚拟对象的骨骼刚体对应骨骼在世界坐标系下的姿态信息。
可选的,所述第一计算模块包括:计算单元,用于在动画引擎中依据所述动画帧数据计算所述骨骼刚体的当前状态时的以下状态数据至少之一:骨骼刚体的位置、骨骼刚体的朝向、骨骼刚体的线速度、骨骼刚体的角速度;处理单元,用于在所述动画引擎中确定与所述骨骼刚体关联的关节,并获取所述关节在所述当前状态时的关节数据。
可选的,所述第一计算模块包括:第一获取单元,用于获得第一刚体所对应的骨骼的动画世界坐标系下的姿态数据,其中,所述虚拟对象的骨骼模型至少包括第一刚体、第二刚体,以及连接在第一刚体和第二刚体之间的连接第一刚体的第一关节,以及与第二刚体连接的第二关节;第一计算单元,用于根据所述第一刚体相对骨骼的姿态计算第一刚体的物理世界坐标系下的姿态数据;第二计算单元,用于根据第一关节相对所述第一刚体的姿态计算出第一关节的姿态数据;第二获取单元,用于获得第二刚体所对应的骨骼的动画世界坐标系下的姿态数据;第三计算单元,用于根据第二刚体相对骨骼的姿态计算出第二刚体的世界坐标系下的姿态数据;第四计算单元,用于根据第二关节相对第二刚体的姿态计算出第二关节的姿态数据;第五计算单元,用于计算第二关节的相对第一关节的姿态数据。
可选的,所述计算单元包括:第一解析子单元,用于在动画引擎中依据第一动画帧数据解析所述虚拟对象在世界坐标系中第一姿态信息;确定子单元,用于基于所述第一姿态信息确定所述骨骼刚体的当前状态时的第一状态数据,其中,所述第一状态数据包括:骨骼刚体的位置、骨骼刚体的朝向;第二解析子单元,用于在动画引擎中依据第二动画帧数据解析所述虚拟对象在世界坐标系中第二姿态信息,其中,所述动画帧数据包括所述第一动画帧数据和所述第二动画帧数据,所述第二动画帧数据的加载时间早于所述第一动画帧数据的加载时间;计算子单元,用于基于所述第二姿态信息与所述第一姿态信息计算所述虚拟对象的移动距离,并根据所述移动距离计算所述骨骼刚体的线速度和所述骨骼刚体的角速度。
可选的,所述模拟模块包括:构建单元,用于在所述骨骼模型的物理系统中基于预设参照刚体构建三轴正交坐标系统,其中,所述骨骼刚体和关节的六自由度关节分别对应所述三轴正交坐标系统三个坐标轴的轴向位移方向和旋转方向;模拟单元,用于在所述物理系统中通过物理驱动依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体在所述三轴正交坐标系统沿轴向位移方向和/或旋转方向从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,其中,物理驱动包括以下之一:线性驱动、角度驱动、球面插值驱动,所述驱动参数包括沿轴向位移和绕轴旋转位移。
可选的,所述模拟模块包括:提取单元,用于提取所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据中的关节参数和驱动参数,其中,所述关节参数和所述驱动参数相互关联;封装单元,用于抽象并封装所述关节参数和驱动参数,得到引擎参数;驱动单元,用于将所述引擎参数作为驱动目标输入到所述物理系统的物理引擎中,驱动所述物理引擎以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选的,所述驱动单元包括:计算子单元,用于计算所述引擎参数针对骨骼刚体的第一力矩,以及计算所述骨骼刚体的限制力矩;输入子单元,用于根据所述第一力矩和所述限制力矩计算所述骨骼刚体受到的合力矩,并将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中。
可选的,所述时间间隔为1/60秒,所述动画系统的动画帧时间间隔为1/30秒。
可选的,所述装置还包括:控制模块,用于在预定数量的动画帧时间段中,通过一控制器根据所述虚拟对象的角色行为执行以下操作:驱动参数平滑处理、驱动状态管理、驱动应用策略管理;其中,所述驱动参数平滑处理用于流畅显示所述虚拟对象的动画效果;所述驱动状态管理包括管理所述骨骼刚体的状态变化;所述驱动应用策略管理用于指示所使用的控制器,以控制骨骼刚体产生对应的动画效果。
可选的,所述装置还包括:合成模块,用于所述骨骼模型动画过程中所述骨骼刚体触发碰撞时,使用一合成器,将所述物理系统计算的趋近结果与当前动画帧的状态数据和对应的关节数据进行融合处理。
可选的,所述装置还包括:在检测到所述骨骼模型上新的触发事件时,将所述骨骼模型的运动切换到纯物理系统计算的运动;其中在进行所述切换时,使用一合成器,将所述物理系统计算的所述趋近结果与要切换到的纯物理系统在当前时刻计算的状态数据和对应的关节数据进行融合处理。
可选的,所述装置还包括:判断模块,用于在所述模拟模块采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载之后,在所述物理系统中判断碰撞过程是否完成;更新模块,用于若所述碰撞过程未完成,将当前周期加载的下一动画帧数据更新为下一周期在起始状态时的动画帧数据。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时骨骼刚体对应骨骼的动画帧数据,然后计算骨骼刚体的当前状态时的状态数据和对应的关节数据,以及骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据,采用骨骼模型的物理系统,以一时间间隔模拟骨骼刚体从当前状态向下一动画帧目标状态的趋近,从而实现了采用物理系统和动画系统共同作用于虚拟对象,以呈现虚拟对象在碰撞过程中的动画特效,解决了相关技术中因美术制作无法对虚拟对象进行直接的控制,难以预期虚拟对象的物理模拟结果,且难以表现虚拟对象的美术效果等技术问题,实现了骨骼模型在真实世界中的物理碰撞效果,提高了虚拟对象动作表现的逼真度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术中动画系统模拟击飞操作的效果图;
图2是根据相关技术中物理系统模拟击飞操作的效果图;
图3是根据相关技术提供的骨骼动画与纯物理效果之间的对照图;
图4是本发明实施例提供的一种虚拟对象的控制方法应用于移动终端的硬件结构框图;
图5是根据本发明实施例的一种虚拟对象的控制方法的流程图;
图6是根据本发明实施例提供的布娃娃物理的示意图;
图7是根据本发明实施例提供的刚体的示意图;
图8是根据本发明实施例提供的几种不同类型的关节的示意图;
图9是根据本发明实施例提供的一种基于六自由度的正交轴系;
图10是根据本发明实施例提供的虚拟对象的当前状态的动画帧示意图;
图11根据本发明实施例提供的虚拟对象收到外力驱动的动画帧示意图;
图12是根据本发明实施例提供的纯物理场景下每帧的流程图;
图13是根据本发明实施例提供的物理动画场景下每帧的流程图;
图14是根据本发明实施例的一种虚拟对象的控制装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本发明实施例一所提供的方法实施例可以在计算机、终端或者类似的运算装置中执行。以运行在终端上为例,图4是本发明实施例提供的一种虚拟对象的控制方法应用于移动终端的硬件结构框图。如图4所示,终端可以包括一个或多个(图4中仅示出一个)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器404,可选地,上述终端还可以包括用于通信功能的传输设备406以及输入输出设备408。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,移动终端还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
存储器404可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种虚拟对象的控制方法对应的计算机程序,处理器402通过运行存储在存储器404内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种虚拟对象的控制方法,游戏制作环节,虚拟对象的骨骼模型设置有动画系统,动画系统包括骨骼、蒙皮,游戏引擎为动画引擎;并且虚拟对象骨骼模型设置有物理系统,游戏引擎为物理引擎,该物理系统包括:骨骼刚体和对应的关节信息。图5是根据本发明实施例的一种虚拟对象的控制方法的流程图,如图5所示,该流程包括:
步骤S502,骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时骨骼刚体对应骨骼的动画帧数据;
本实施例中,在上述虚拟对象为游戏中的一个角色(如NPC(Non-Player-Controlled Character,非玩家控制角色),PCC(玩家控制角色,Player-ControlledCharacter)),通过绘图工具制作一个角色模型,在合适的位置给角色安装骨骼,通过游戏引擎中的骨骼控制模板,控制这些骨骼刚体的移动,而角色的表层随着骨骼刚体的移动而发生相应的变化。比如布娃娃物理(Ragdoll),布娃娃物理的骨骼由刚体和关节组成,刚体之间采用关节连接并形成体系的结构(通常是人形),关节锁定位移并配置适当的约束角度,参见图6所示,图6是根据本发明实施例提供的布娃娃物理的示意图,其中,左边示意了布娃娃物理的躯干,中间示意了躯干中的关节和刚体,刚体通过关节连接,右边示意了关节带动刚体限制运动时的轨迹范围。
其中,刚体(Rigid Body),是指在运动过程中不可形变的刚性物体。刚体具有质量、速度、位置、朝向等若干物理属性。刚体通常由[0,n]个基本形体(Shape(外形)、Collider(碰撞体))组成。基本形体包括立方体、球形体、胶囊体、凸包等类型。一个刚体可以不包含任何基本形体,表示质点的概念。一个刚体也可以包含若干基本形体,用以模塑复杂的不规则物体。如图7所示,图7是根据本发明实施例提供的刚体的示意图。关节(Joint),是指将两个刚体连接在一起形成整体的物体。关节可以限制连接刚体的运动范围。根据限制范围不同,关节可以分为很多类型。如图8所示,图8是根据本发明实施例提供的几种不同类型的关节的示意图。
步骤S504,依据动画帧数据计算骨骼刚体的当前状态时的状态数据和对应的关节数据;
本实施例中骨骼刚体的状态数据至少包括骨骼刚体的位置、朝向、角速度及线速度等数据,但不限于此;关节数据包括关节的朝向和位置,以及关节自身参数。
步骤S506,计算设置骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;
步骤S508,采用骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选的,在步骤S508之后,本实施例的控制方法还包括:在物理系统中判断碰撞过程是否完成;若碰撞过程未完成,将当前周期加载的下一动画帧数据更新为下一周期在起始状态时的动画帧数据。在下一周期,继续执行S502~S508的操作,直到完成碰撞过程,系统采用动画系统驱动虚拟对象的骨骼模型。
通过本发明实施例,骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时骨骼刚体对应骨骼的动画帧数据,然后计算骨骼刚体的当前状态时的状态数据和对应的关节数据,以及骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据,采用骨骼模型的物理系统,以一时间间隔模拟骨骼刚体从当前状态向下一动画帧目标状态的趋近,从而实现了采用物理系统和动画系统共同作用于虚拟对象,以呈现虚拟对象在碰撞过程中的动画特效,解决了相关技术中因美术制作无法对虚拟对象进行直接的控制,难以预期虚拟对象的物理模拟结果,且难以表现虚拟对象的美术效果等技术问题,实现了骨骼模型在真实世界中的物理碰撞效果,提高了虚拟对象动作表现的逼真度。
可选的,获取动画系统中当前状态时骨骼刚体对应骨骼的动画帧数据包括:获取动画系统在当前时间加载的动画帧,其中,动画帧中的对象包括虚拟对象;在动画帧中解析虚拟对象的骨骼刚体对应骨骼在世界坐标系下的姿态信息。
在本实施例中,姿态信息骨骼在每个时刻的位置、朝向等信息。在本实施例的另一方面,依据动画帧数据计算骨骼刚体的当前状态时的状态数据和对应的关节数据包括:在动画引擎中依据动画帧数据计算骨骼刚体的当前状态时的以下状态数据至少之一:骨骼刚体的位置、骨骼刚体的朝向、骨骼刚体的线速度、骨骼刚体的角速度;在动画引擎中确定与骨骼刚体关联的关节,并获取关节在当前状态时的关节数据。
在本实施例的一个实施方式中,在动画引擎中依据动画帧数据计算骨骼刚体的当前状态时的状态数据包括:在动画引擎中依据第一动画帧数据解析虚拟对象在世界坐标系中第一姿态信息;基于第一姿态信息确定骨骼刚体的当前状态时的第一状态数据,其中,第一状态数据包括:骨骼刚体的位置、骨骼刚体的朝向;在动画引擎中依据第二动画帧数据解析虚拟对象在世界坐标系中第二姿态信息,其中,动画帧数据包括第一动画帧数据和第二动画帧数据,第二动画帧数据的加载时间早于第一动画帧数据的加载时间;基于第二姿态信息与第一姿态信息计算虚拟对象的移动距离,并根据移动距离计算骨骼刚体的线速度和骨骼刚体的角速度。
在本实施例中,动画系统和物理系统都是实时进行计算。动画系统从动画文件中读取骨骼刚体对应骨骼的动画帧数据,根据动画帧数据计算当前帧(即上述当前状态)时虚拟对象的骨骼刚体对应动画系统中骨骼的状态数据(包括骨骼的朝向和位置),然后输出给物理系统。
可选地,动画引擎用来控制虚拟角色的动画过程,动画帧数据的加载、管理、查询是动画系统实现的主要功能。动画引擎获取虚拟对象移动过程中的动画帧数据(即时间帧),比如1秒钟包括30帧,相当于30张动画图片,进而能够在1秒内连续展示以形成虚拟对象的动画。
动画引擎可以计算每个骨骼在每个时刻(每个时刻对应一个时间帧)的位置、朝向,因此通过动画引擎,用户可以在任何时刻获得任一骨骼的当前姿态信息(即上述位置、朝向)。
在一个示例中,动画引擎实现任一骨骼代码如下:
A3DBone*pBone=pSkeleton->GetBone(index);//从骨架中根据骨骼索引获得某个骨骼
A3DMatrix4pose=pBone->GetAbsTM();//获得这个骨骼的当前世界坐标系下的姿态信息(位置,朝向),且上述姿态信息是保存在一个4x4的矩阵中。
在另一个示例中,在其它的引擎中,骨骼姿态信息可能是以一个3维向量和一个四元数保存的;也可能是以一个3维向量和一个3x3矩阵保存的。
在游戏角色制作的实例中,需要实现根据动画系统中骨骼的动画帧数据事先编辑(采用骨骼编辑器)好物理系统中骨骼刚体的大小和对应的关节信息。本实施例中的骨骼刚体的状态数据和对应的关节数据由动画引擎计算得到,并输出给物理引擎,然后参与物理系统中应用的,其中,骨骼刚体的状态数据至少包括:骨骼刚体的位置,骨骼刚体的朝向,骨骼刚体的线速度,骨骼刚体的角速度。
可选地,刚体的朝向、位置可以直接由动画帧数据计算得出;刚体的线速度、角速度等不能由当前帧数据直接计算得出,还需要参考上一动画帧数据间接计算出。在一个可选地示例中,动画引擎采集目标骨骼在多个时刻的关键帧(包括位置和朝向),根据若干个帧计算骨骼的线速度和角速度。例如,目标骨骼在t0时刻是位置S1,在t1时刻是位置S2,那么线速度就为(S2-S1)/(t1-t0)。
在本案的一个可选的实施例中,采用骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,包括:在骨骼模型的物理系统中基于预设参照刚体构建三轴正交坐标系统,其中,骨骼刚体和关节的六自由度关节分别对应三轴正交坐标系统三个坐标轴的轴向位移方向和旋转方向;在物理系统中通过物理驱动依据碰撞时产生的驱动参数以一时间间隔模拟骨骼刚体在三轴正交坐标系统沿轴向位移方向和/或旋转方向从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,其中,物理驱动包括以下之一:线性驱动(LinearDrive)、角度驱动(AngularDrive)、球面插值驱动(SlerpDrive),驱动参数包括沿轴向位移和绕轴旋转位移。
在本实施例中,Joint Drive(关节驱动)有多种不同的类型,至少包括6种,线性驱动,角度驱动和球面线性插值驱动,且每一种驱动类型包括:位置驱动(positiondrive)和速度驱动(VelocityDrive);根据不同的类型,设置具体不同的关节参数,针对6自由度关节,具体的不同参数所影响的归纳总结起来就是轴向位移(即x轴,y轴,Z轴)和分别绕xyz轴旋转位移,共6种关节参数。
本实施例中,虚拟对象的骨骼刚体可以通过六自由度关节(D6Joint、Configurable Joint(可配置关节))连接的,六自由度关节是一种通用的高级关节。六自由度是指在三个任意指向的正交轴系中,沿轴向的3种位移运动和围绕轴向的3种旋转运动。D6Joint可以灵活配置,实现任意约束。D6Joint还有强大的Drive(驱动)特性。这是实现物理动画的底层基础。如图9所示,图9是根据本发明实施例提供的一种基于六自由度的正交轴系,分别包括沿着XYZ轴的轴向,以及围绕轴向的旋转方向,包括与X轴对应的沿自身轴的旋转方向,与Y轴对应的沿局部法线的摆动方向,与Z轴对应的沿X轴与Y轴垂直的摆动方向。
根据上述实施例,在一个实施例中,以SLERP Drive(球面线性插值驱动)为例,假设虚拟对象上的两个刚体Actor0(角色0)(即上述上一骨骼刚体)和刚体Actor1(角色1)(即上述骨骼刚体),其中,数据均为Actor0坐标系下,实线Actor1表示Actor1的当前状态,虚线Actor1表示Actor1的目标状态,如图10所示,图10是根据本发明实施例提供的骨骼刚体当前状态的动画帧示意图。
虚拟对象的每一动画帧开始时,Actor1处于当前状态,需要设定Actor1的目标状态以及设定与Actor1的Joint相关参数;再经过物理模拟,获得Actor1的新状态,其中,新状态是Actor1从当前状态“尽力”趋向目标状态的结果。
在一个示例中,按照一个关节连接的两个刚体为例。依据动画帧数据计算骨骼刚体的当前状态时的状态数据和对应的关节数据包括:
S11,获得第一刚体所对应的骨骼的动画世界坐标系下的姿态数据,其中,虚拟对象的骨骼模型至少包括第一刚体、第二刚体,以及连接在第一刚体和第二刚体之间的连接第一刚体的第一关节,以及与第二刚体连接的第二关节;
S12,根据第一刚体相对骨骼的姿态计算第一刚体的物理世界坐标系下的姿态数据;
S13,根据第一关节相对第一刚体的姿态计算出第一关节的姿态数据;
S14,获得第二刚体所对应的骨骼的动画世界坐标系下的姿态数据;
S15,根据第二刚体相对骨骼的姿态计算出第二刚体的世界坐标系下的姿态数据;
S16,根据第二关节相对第二刚体的姿态计算出第二关节的姿态数据;
S17,计算第二关节的相对第一关节的姿态数据。
根据上述实施例,确定虚拟对象的当前状态至少包括:目标刚体Actor1的当前朝向,当前位置,当前线速度,当前角度。Joint Drive(关节驱动)有多种不同的类型,根据不同的类型,虚拟对象的目标状态至少包括:位置、朝向、线速度、角速度等不同数据。
在本实施例中,物理系统根据数学模型计算骨骼刚体的驱动参数,以及趋向目标状态输出物理动画的时间间隔,例如,一秒30帧,则当前帧到下一帧的时间间隔为;将计算出的驱动参数作为驱动目标输入物理引擎,并作用在骨骼刚体上,通过模拟并计算骨骼刚体从当前动画帧趋向下一动画帧的过程,直到下一动画帧数据加载结束。
正常情况下,比如原始动画的1秒有24帧或30帧,则每两帧之间的时间间隔为秒或秒(即上述时间间隔),将骨骼姿态数据存储在这一帧中,最后通过渲染引擎将这一帧的动画渲染出来即可;而在本方案提供得物理动画中,选择1秒60帧(或60帧以上,比如120帧),达到每秒的粒度更细,则每两帧之间时间间隔秒,实现了通过物理引擎控制时间间隔更小的时刻的骨骼刚体的模拟状态,使得物理动画更加流畅。
在本案的一个实施例中,驱动参数至少包括刚体受到的合力矩,但不限于此。以力矩为例,物理底层(即上述物理引擎)会根据根据输入的动画帧数据,计算下一帧动画输出时间间隔,以及根据下面的公式(即物理引擎中的数学模型)计算出Actor1所受的合力矩并应用在Actor1(即上述骨骼刚体),其中,力矩计算公式如下:
Torque=spring*(tarOri-curOri)+damping*(tarAVel-curAVel):
其中,tarOri:相对Actor0的Actor1的目标朝向;
curOri:相对Actor0的Actor1的当前朝向;
tarAVel:相对Actor0的Actor1的目标角速度;
curAVel:相对Actor0的Actor1的当前角速度;
spring:本次驱动力矩系数。其中,spring越大越趋向目标,代表了朝向权重;
damping:已经应用的驱动力矩系数。其中,damping越大越趋向目标,代表了角速度权重。
物理引擎通过骨骼刚体的合力矩控制骨骼刚体和对应关节的移动,至少包括旋转、平移、缩放等操作,让骨骼刚体“尽力”趋向目标状态,并形成了让骨骼摆出各种姿势的物理动画。
采用骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,包括:提取骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据中的关节参数和驱动参数,其中,关节参数和驱动参数相互关联;抽象并封装关节参数和驱动参数,得到引擎参数;将引擎参数作为驱动目标输入到物理系统的物理引擎中,驱动物理引擎以一时间间隔模拟骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。通过对Joint(关节)参数、Drive参数等数据进行抽象和封装,以提供良好的对外接口,既方便用户使用,又能提供调教灵活性。
在一个示例中,时间间隔为1/60秒,动画系统的动画帧时间间隔为1/30秒。
在本实施例的一些实施场景中,将引擎参数作为驱动目标输入到物理系统的物理引擎中包括:计算引擎参数针对骨骼刚体的第一力矩,以及计算骨骼刚体的限制力矩;根据第一力矩和限制力矩计算骨骼刚体受到的合力矩,并将合力矩作为驱动目标输入到物理系统的物理引擎中。刚体Actor1在运动过程中可能会发生碰撞阻挡;还可能外部用户施加了力;Actor1还受到Joint limit(关节限制)的限制,Joint(关节)最大力(力矩)的限制;Joint各种flag(标志)的影响,flag用于控制joint驱动的不同工作方式(即上述驱动类型);以及Joint连接链的迭代影响等等,物理引擎会综合计算出Actor1的最终结果(即合力矩)。
在本实施例的一个实施方式中,系统还包括控制器,方案还包括:在预定数量的动画帧时间段中,通过一控制器根据虚拟对象的角色行为执行以下操作:驱动参数平滑处理、驱动状态管理、驱动应用策略管理;其中,驱动参数平滑处理用于流畅显示虚拟对象的动画效果;驱动状态管理包括管理骨骼刚体的状态变化;驱动应用策略管理用于指示所使用的控制器,以控制骨骼刚体产生对应的动画效果。
在本实施例中,物理引擎从当前状态进行dt时间片(即上述时间间隔)的模拟得到物理模拟结果。本方案还包括控制器和合成器的操作,其中,控制器(控制器管理趋向相对长时间的行为,通常是数秒或以上的级别,每个动画控制器通常负责一个类型的角色行为,即和谐地安排角色各方面动画相关行为)主要负责参数平滑处理(以使角色的动画效果更加流畅)、Drive状态的管理(刚体的状态变化管理)、Drive应用策略(应用策略表示采用何种控制器控制刚体的何种动画效果,比如使用旋转控制器控制关节转动,再例如使用位置控制器控制虚拟对象的位置),从而实现多种控制器分别达到不同效果。
在本实施例的一个实施方式中,系统还包括合成器,合成器负责处理物理动画的结果与动画、纯物理之间的平滑处理。合成器在执行物理动画的结果与动画的平滑处理时,方案还包括:骨骼模型动画过程中骨骼刚体触发碰撞时,使用一合成器,将物理系统计算的趋近结果与当前动画帧的状态数据和对应的关节数据进行融合处理。
合成器在执行物理动画的结果与纯物理的平滑处理时,还包括:在检测到骨骼模型上新的触发事件时,将骨骼模型的运动切换到纯物理系统计算的运动;其中在进行切换时,使用一合成器,将物理系统计算的趋近结果与要切换到的纯物理系统在当前时刻计算的状态数据和对应的关节数据进行融合处理。
在一个实例中,在游戏项目中实现过这样的效果:原先主角在行走中与其它NPC或者玩家相撞后,就直接穿过去没有任何反应。加入物理动画后的流程是这样:在没有相撞时,主角是动画驱动状态。在系统判定相撞时,切换为物理动画状态,并对主角躯干刚体施加一个与相撞方向相反的力。一定时间后恢复动画驱动状态。在这个过程中,施加力之后物理引擎计算出的物理动画身体弯曲程度往往比较大。因此,我们使用合成器将物理引擎计算出的结果与原始动画再进行了融合形成最终结果。
在本实施例的一个示例中,假设上面的逻辑层在某一帧确定由松散的物理动画效果切换到紧绷的物理动画效果,需要调整spring参数,比如需要将spring参数从200调到800,但是如果突然切换(即直接将spring参数从200调整成800)往往会造成画面跳变,使人感觉生硬,导致视觉效果不好,通过本示例,将spring参数进行逐步调整,比如,在0.3秒时间内spring参数需要从200调到800,这0.3秒内跑了20多帧,则控制器负责将每帧增大一些spring参数值,来达到最终的目标值,从而实现了参数平滑处理的操作。
在另一个示例中,以上文的击飞效果为例,在击飞前,人物是活着状态是纯动画控制,物理以kinematic(运动学上的)刚体的形式受动画控制。在击飞时刻切换为物理动画,在整个腾空的过程中身体是逐渐放松的;人物落地时认为是死亡状态,保持较松散的效果;落地一段时间后(也就是死亡一段时间后)身体形成较紧绷僵硬的状态,认为是僵尸。在击飞的过程中,物理动画的驱动状态和应用策略是不同的,需要控制器控制管理实施,控制器根据击飞时刻的受力参数,确定虚拟对象的驱动参数,进而为目标刚体和/或目标关节赋予物理属性。
在一个示例中,在复杂环境下,碰撞穿透是由底层物理引擎负责的,通过物理引擎事先设置好各种物理参数,物理引擎拿到动画数据后,转换为物理系统中的数据,设置不同的参数,执行一个dt(时间切片),得到最终一个模拟结果,从而得到物理动画,实现了控制目标刚体或目标关节进行旋转、平移,甚至缩放等操作,形成了让骨骼摆出各种姿势的物理动画。
下面以纯物理与物理动画总体流程对本方案做进一步地说明:
图12是根据本发明实施例提供的纯物理场景下每帧的流程图,如图12所示,以布娃娃系统的骨骼模型为例,若游戏角色的手臂(例如上述骨骼刚体)撞墙,物理系统(物理引擎)设定刚体撞墙后受到物理参数,比如重力,手臂出现下垂,受到重力加速度的约束,然后模拟刚体做自由落体运动,获得的最终结果,不符合现实场景中手臂撞墙呈现的状态。
为了达到动作表现效果多样化且不显著增加美术工作量、动作表现能够受周围环境影响以及动作表现能够展现整体的美术效果,本实施例提供一种使用动画驱动物理的方案(简称物理动画),即以动画为框架,用物理手段去实现,参见图13,图13是根据本发明实施例提供的物理动画场景下每帧的流程图,仍以游戏角色的手臂撞墙为例,在手臂撞到墙之前是由动画系统控制的,动画系统根据动画文件中的动画帧数据(骨骼的姿态数据);计算动画系统中骨骼的状态数据和关节数据,计算物理系统中对应的骨骼刚体以及关节的参数,以及下一帧的骨骼刚体的状态数据,物理引擎根据关节的驱动类型设置下一帧的骨骼刚体对应关节数据(即设定目标状态);在手臂碰撞墙后,从动画状态切换成物理动画的状态,并由物理引擎控制,物理课引擎中的每个动画控制器通常负责一个类型的角色行为,针对指定的控制器设置不同的参数,比如spring和damping等物理参数,以对物理参数进行平滑处理,对当前帧趋向下一帧驱动进行参数平滑处理;物理引擎中的数据模型根据动画帧数据计算输出时间间隔,以该时间间隔(比如60分之1秒)模拟刚体从当前帧趋向下一帧的物理动画,并输出;在骨骼刚体从动画系统进入物理动画系统,或者从物理动画系统进行动画系统,由合成器进行状态平滑处理,使得当前帧“尽力”趋向下一目标帧,得到最终结果。本方案中,物理动画充分结合了动画的可控性和物理的可交互性,具有相比纯物理场景或纯动画场景有更好的动作表现效果;而如果配合IK、动画融合等技术的话,可进一步提升游戏的动作表现力和真实感。因此,在一些注重动作表现的游戏中可考虑使用此方案。从而解决了相关技术中存在的美术制作无法控制虚拟对象动作,进而影响美术效果的技术问题。
本方案提供每一帧中的虚拟对象的所有骨骼的状态数据,并输出给物理系统,物理系统中的物理引擎根据骨骼的状态数据计算驱动参数(比如合力矩),物理系统根据驱动参数以一时间间隔模拟虚拟对象从当前状态向目标状态的趋近过程,最后通过渲染引擎渲染虚拟对象的美术动画,从而实现了物理和动画共同决定最终游戏角色的美术效果。
实施例2
在本实施例中还提供了一种虚拟对象的控制装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供了一种虚拟对象的控制装置,其中,虚拟对象的骨骼模型设置有动画系统,并且所述虚拟对象骨骼模型设置有物理系统,该物理系统包括:骨骼刚体和对应的关节信息;图14是根据本发明实施例的一种虚拟对象的控制装置的结构框图,该装置包括:获取模块1402,用于骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据;
第一计算模块1404,连接至上述获取模块1402,用于依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据;
第二计算模块1406,连接至上述第一计算模块1404,用于计算设置所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;
模拟模块1408,连接至上述第二计算模块1406,用于采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选的,所述获取模块包括:获取单元,用于获取动画系统在当前时间加载的动画帧,其中,所述动画帧中的对象包括所述虚拟对象;解析单元,用于在所述动画帧中解析所述虚拟对象的骨骼刚体对应骨骼在世界坐标系下的姿态信息。
可选的,所述第一计算模块包括:计算单元,用于在动画引擎中依据所述动画帧数据计算所述骨骼刚体的当前状态时的以下状态数据至少之一:骨骼刚体的位置、骨骼刚体的朝向、骨骼刚体的线速度、骨骼刚体的角速度;处理单元,用于在所述动画引擎中确定与所述骨骼刚体关联的关节,并获取所述关节在所述当前状态时的关节数据。
可选的,所述第一计算模块包括:第一获取单元,用于获得第一刚体所对应的骨骼的动画世界坐标系下的姿态数据,其中,所述虚拟对象的骨骼模型至少包括第一刚体、第二刚体,以及连接在第一刚体和第二刚体之间的连接第一刚体的第一关节,以及与第二刚体连接的第二关节;第一计算单元,用于根据所述第一刚体相对骨骼的姿态计算第一刚体的物理世界坐标系下的姿态数据;第二计算单元,用于根据第一关节相对所述第一刚体的姿态计算出第一关节的姿态数据;第二获取单元,用于获得第二刚体所对应的骨骼的动画世界坐标系下的姿态数据;第三计算单元,用于根据第二刚体相对骨骼的姿态计算出第二刚体的世界坐标系下的姿态数据;第四计算单元,用于根据第二关节相对第二刚体的姿态计算出第二关节的姿态数据;第五计算单元,用于计算第二关节的相对第一关节的姿态数据。
可选的,所述计算单元包括:第一解析子单元,用于在动画引擎中依据第一动画帧数据解析所述虚拟对象在世界坐标系中第一姿态信息;确定子单元,用于基于所述第一姿态信息确定所述骨骼刚体的当前状态时的第一状态数据,其中,所述第一状态数据包括:骨骼刚体的位置、骨骼刚体的朝向;第二解析子单元,用于在动画引擎中依据第二动画帧数据解析所述虚拟对象在世界坐标系中第二姿态信息,其中,所述动画帧数据包括所述第一动画帧数据和所述第二动画帧数据,所述第二动画帧数据的加载时间早于所述第一动画帧数据的加载时间;计算子单元,用于基于所述第二姿态信息与所述第一姿态信息计算所述虚拟对象的移动距离,并根据所述移动距离计算所述骨骼刚体的线速度和所述骨骼刚体的角速度。
可选的,所述模拟模块包括:构建单元,用于在所述骨骼模型的物理系统中基于预设参照刚体构建三轴正交坐标系统,其中,所述骨骼刚体和关节的六自由度关节分别对应所述三轴正交坐标系统三个坐标轴的轴向位移方向和旋转方向;模拟单元,用于在所述物理系统中通过物理驱动依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体在所述三轴正交坐标系统沿轴向位移方向和/或旋转方向从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,其中,物理驱动包括以下之一:线性驱动、角度驱动、球面插值驱动,所述驱动参数包括沿轴向位移和绕轴旋转位移。
可选的,所述模拟模块包括:提取单元,用于提取所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据中的关节参数和驱动参数,其中,所述关节参数和所述驱动参数相互关联;封装单元,用于抽象并封装所述关节参数和驱动参数,得到引擎参数;驱动单元,用于将所述引擎参数作为驱动目标输入到所述物理系统的物理引擎中,驱动所述物理引擎以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选的,所述驱动单元包括:计算子单元,用于计算所述引擎参数针对骨骼刚体的第一力矩,以及计算所述骨骼刚体的限制力矩;输入子单元,用于根据所述第一力矩和所述限制力矩计算所述骨骼刚体受到的合力矩,并将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中。
可选的,所述时间间隔为1/60秒,所述动画系统的动画帧时间间隔为1/30秒。
可选的,所述装置还包括:控制模块,用于在预定数量的动画帧时间段中,通过一控制器根据所述虚拟对象的角色行为执行以下操作:驱动参数平滑处理、驱动状态管理、驱动应用策略管理;其中,所述驱动参数平滑处理用于流畅显示所述虚拟对象的动画效果;所述驱动状态管理包括管理所述骨骼刚体的状态变化;所述驱动应用策略管理用于指示所使用的控制器,以控制骨骼刚体产生对应的动画效果。
可选的,所述装置还包括:合成模块,用于所述骨骼模型动画过程中所述骨骼刚体触发碰撞时,使用一合成器,将所述物理系统计算的趋近结果与当前动画帧的状态数据和对应的关节数据进行融合处理。
可选的,所述装置还包括:在检测到所述骨骼模型上新的触发事件时,将所述骨骼模型的运动切换到纯物理系统计算的运动;其中在进行所述切换时,使用一合成器,将所述物理系统计算的所述趋近结果与要切换到的纯物理系统在当前时刻计算的状态数据和对应的关节数据进行融合处理。
可选的,所述装置还包括:判断模块,用于在所述模拟模块采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载之后,在所述物理系统中判断碰撞过程是否完成;更新模块,用于若所述碰撞过程未完成,将当前周期加载的下一动画帧数据更新为下一周期在起始状态时的动画帧数据。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据;
S2,依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据;
S3,计算设置所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;
S4,采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据;
S2,依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据;
S3,计算设置所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;
S4,采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种虚拟对象的控制方法,其中,虚拟对象的骨骼模型设置有动画系统,动画系统包括骨骼、蒙皮,所述动画系统的游戏引擎为动画引擎,所述动画引擎用来控制虚拟角色的动画过程;并且所述虚拟对象骨骼模型设置有物理系统,该物理系统包括:骨骼刚体和对应的关节信息;所述虚拟对象所在的系统中包括合成器,合成器负责处理物理动画的结果与动画、纯物理之间的平滑处理;在预定数量的动画帧时间段中,通过一控制器根据所述虚拟对象的角色行为执行以下操作:驱动参数平滑处理、驱动状态管理、驱动应用策略管理;其中,所述驱动参数平滑处理用于流畅显示所述虚拟对象的动画效果;所述驱动状态管理包括管理所述骨骼刚体的状态变化;所述驱动应用策略管理用于指示所使用的控制器,以控制骨骼刚体产生对应的动画效果,其特征在于,所述控制方法包括:
骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据;
提取所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据中的关节参数和驱动参数,其中,所述关节参数和所述驱动参数相互关联;
抽象并封装所述关节参数和驱动参数,得到引擎参数;
根据所述引擎参数计算所述骨骼刚体受到的合力矩,将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中,驱动所述物理引擎以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载;
其中,所述动画系统和所述物理系统均是实时进行计算,所述动画系统从动画文件中读取骨骼刚体对应骨骼的动画帧数据,根据动画帧数据计算所述当前状态时虚拟对象的骨骼刚体对应所述动画系统中骨骼的状态数据,以及输出给所述物理系统,以使所述物理系统的物理引擎通过所述骨骼刚体的合力矩控制所述骨骼刚体和对应关节的移动,让所述骨骼刚体趋向所述目标状态,进而形成让骨骼摆出多种姿势的物理动画,以及由所述合成器将所述物理引擎计算出的所述物理动画与原始动画进行融合形成最终结果;所述骨骼模型动画过程中所述骨骼刚体触发碰撞时,使用一合成器,将所述物理系统计算的趋近结果与当前动画帧的状态数据和对应的关节数据进行融合处理,且在检测到所述骨骼模型上新的触发事件时,使用一合成器,将所述物理系统计算的所述趋近结果与要切换到的纯物理系统在当前时刻计算的状态数据和对应的关节数据进行融合处理,将所述骨骼模型的运动切换到纯物理系统计算的运动。
2.根据权利要求1所述的方法,其特征在于,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据包括:
获取动画系统在当前时间加载的动画帧,其中,所述动画帧中的对象包括所述虚拟对象;
在所述动画帧中解析所述虚拟对象的骨骼刚体对应骨骼在世界坐标系下的姿态信息。
3.根据权利要求1所述的方法,其特征在于,依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据包括:
在动画引擎中依据所述动画帧数据计算所述骨骼刚体的当前状态时的以下状态数据至少之一:骨骼刚体的位置、骨骼刚体的朝向、骨骼刚体的线速度、骨骼刚体的角速度;
在所述动画引擎中确定与所述骨骼刚体关联的关节,并获取所述关节在所述当前状态时的关节数据。
4.根据权利要求1所述的方法,其特征在于,依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据包括:
获得第一刚体所对应的骨骼的动画世界坐标系下的姿态数据,其中,所述虚拟对象的骨骼模型至少包括第一刚体、第二刚体,以及连接在第一刚体和第二刚体之间的连接第一刚体的第一关节,以及与第二刚体连接的第二关节;
根据所述第一刚体相对骨骼的姿态计算第一刚体的物理世界坐标系下的姿态数据;
根据第一关节相对所述第一刚体的姿态计算出第一关节的姿态数据;
获得第二刚体所对应的骨骼的动画世界坐标系下的姿态数据;
根据第二刚体相对骨骼的姿态计算出第二刚体的世界坐标系下的姿态数据;
根据第二关节相对第二刚体的姿态计算出第二关节的姿态数据;
计算第二关节的相对第一关节的姿态数据。
5.根据权利要求3所述的方法,其特征在于,在动画引擎中依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据包括:
在动画引擎中依据第一动画帧数据解析所述虚拟对象在世界坐标系中第一姿态信息;
基于所述第一姿态信息确定所述骨骼刚体的当前状态时的第一状态数据,其中,所述第一状态数据包括:骨骼刚体的位置、骨骼刚体的朝向;
在动画引擎中依据第二动画帧数据解析所述虚拟对象在世界坐标系中第二姿态信息,其中,所述动画帧数据包括所述第一动画帧数据和所述第二动画帧数据,所述第二动画帧数据的加载时间早于所述第一动画帧数据的加载时间;
基于所述第二姿态信息与所述第一姿态信息计算所述虚拟对象的移动距离,并根据所述移动距离计算所述骨骼刚体的线速度和所述骨骼刚体的角速度。
6.根据权利要求1所述的方法,其特征在于,采用所述骨骼模型的物理系统,依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,包括:
在所述骨骼模型的物理系统中基于预设参照刚体构建三轴正交坐标系统,其中,所述骨骼刚体和关节的六自由度关节分别对应所述三轴正交坐标系统三个坐标轴的轴向位移方向和旋转方向;
在所述物理系统中通过物理驱动依据碰撞时产生的驱动参数以一时间间隔模拟所述骨骼刚体在所述三轴正交坐标系统沿轴向位移方向和/或旋转方向从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载,其中,物理驱动包括以下之一:线性驱动、角度驱动、球面插值驱动,所述驱动参数包括沿轴向位移和绕轴旋转位移。
7.根据权利要求1所述的方法,其特征在于,根据所述引擎参数计算所述骨骼刚体受到的合力矩,将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中包括:
计算所述引擎参数针对骨骼刚体的第一力矩,以及计算所述骨骼刚体的限制力矩;
根据所述第一力矩和所述限制力矩计算所述骨骼刚体受到的合力矩,并将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中。
8.根据权利要求1所述的方法,其特征在于,在根据所述引擎参数计算所述骨骼刚体受到的合力矩,将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中,驱动所述物理引擎以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载之后,所述方法还包括:
在所述物理系统中判断碰撞过程是否完成;
若所述碰撞过程未完成,将当前周期加载的下一动画帧数据更新为下一周期在起始状态时的动画帧数据。
9.一种虚拟对象的控制装置,其中,虚拟对象的骨骼模型设置有动画系统,动画系统包括骨骼、蒙皮,所述动画系统的游戏引擎为动画引擎,所述动画引擎用来控制虚拟角色的动画过程;并且所述虚拟对象骨骼模型设置有物理系统,该物理系统包括:骨骼刚体和对应的关节信息;所述虚拟对象所在的系统中包括合成器,合成器负责处理物理动画的结果与动画、纯物理之间的平滑处理;在预定数量的动画帧时间段中,通过一控制器根据所述虚拟对象的角色行为执行以下操作:驱动参数平滑处理、驱动状态管理、驱动应用策略管理;其中,所述驱动参数平滑处理用于流畅显示所述虚拟对象的动画效果;所述驱动状态管理包括管理所述骨骼刚体的状态变化;所述驱动应用策略管理用于指示所使用的控制器,以控制骨骼刚体产生对应的动画效果,其特征在于,所述控制装置包括:
获取模块,用于骨骼模型动画过程中在其骨骼刚体触发碰撞时,获取动画系统中当前状态时所述骨骼刚体对应骨骼的动画帧数据;
第一计算模块,用于依据所述动画帧数据计算所述骨骼刚体的当前状态时的状态数据和对应的关节数据;
第二计算模块,用于计算设置所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据;
模拟模块,用于提取所述骨骼刚体在下一动画帧目标状态的状态数据和对应的关节数据中的关节参数和驱动参数,其中,所述关节参数和所述驱动参数相互关联;
所述模拟模块,还用于抽象并封装所述关节参数和驱动参数,得到引擎参数;
所述模拟模块,还用于根据所述引擎参数计算所述骨骼刚体受到的合力矩,将所述合力矩作为驱动目标输入到所述物理系统的物理引擎中,驱动所述物理引擎以一时间间隔模拟所述骨骼刚体从当前状态向下一动画帧目标状态的趋近,一直到下一动画帧数据的加载;
其中,所述动画系统和所述物理系统均是实时进行计算,所述动画系统从动画文件中读取骨骼刚体对应骨骼的动画帧数据,根据动画帧数据计算所述当前状态时虚拟对象的骨骼刚体对应所述动画系统中骨骼的状态数据,以及输出给所述物理系统,以使所述物理系统的物理引擎通过所述骨骼刚体的合力矩控制所述骨骼刚体和对应关节的移动,让所述骨骼刚体趋向所述目标状态,进而形成让骨骼摆出多种姿势的物理动画,以及由所述合成器将所述物理引擎计算出的所述物理动画与原始动画进行融合形成最终结果;所述骨骼模型动画过程中所述骨骼刚体触发碰撞时,使用一合成器,将所述物理系统计算的趋近结果与当前动画帧的状态数据和对应的关节数据进行融合处理,且在检测到所述骨骼模型上新的触发事件时,使用一合成器,将所述物理系统计算的所述趋近结果与要切换到的纯物理系统在当前时刻计算的状态数据和对应的关节数据进行融合处理,将所述骨骼模型的运动切换到纯物理系统计算的运动。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至8任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至8任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010736955.9A CN112001989B (zh) | 2020-07-28 | 2020-07-28 | 虚拟对象的控制方法及装置、存储介质、电子装置 |
PCT/CN2020/130413 WO2022021686A1 (zh) | 2020-07-28 | 2020-11-20 | 虚拟对象的控制方法及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010736955.9A CN112001989B (zh) | 2020-07-28 | 2020-07-28 | 虚拟对象的控制方法及装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112001989A CN112001989A (zh) | 2020-11-27 |
CN112001989B true CN112001989B (zh) | 2022-08-05 |
Family
ID=73466612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010736955.9A Active CN112001989B (zh) | 2020-07-28 | 2020-07-28 | 虚拟对象的控制方法及装置、存储介质、电子装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112001989B (zh) |
WO (1) | WO2022021686A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560959A (zh) * | 2020-12-17 | 2021-03-26 | 咪咕文化科技有限公司 | 骨骼动画的姿态匹配方法、装置、电子设备及存储介质 |
CN115222854A (zh) * | 2021-04-15 | 2022-10-21 | 北京字跳网络技术有限公司 | 虚拟形象的碰撞处理方法、装置、电子设备和存储介质 |
CN113546415B (zh) * | 2021-08-11 | 2024-03-29 | 北京字跳网络技术有限公司 | 剧情动画播放方法、生成方法、终端、装置及设备 |
CN113680063A (zh) * | 2021-08-17 | 2021-11-23 | 网易(杭州)网络有限公司 | 一种虚拟对象的动作处理方法及装置 |
CN113610949B (zh) * | 2021-08-25 | 2023-06-16 | 腾讯科技(深圳)有限公司 | 虚拟手臂骨骼的蒙皮方法、装置、设备以及存储介质 |
CN114529640B (zh) * | 2022-02-17 | 2024-01-26 | 北京字跳网络技术有限公司 | 一种运动画面生成方法、装置、计算机设备和存储介质 |
CN114882153A (zh) * | 2022-04-01 | 2022-08-09 | 网易(杭州)网络有限公司 | 一种动画生成的方法及装置 |
CN117011498A (zh) * | 2022-04-27 | 2023-11-07 | 腾讯科技(上海)有限公司 | 动画数据修复方法、装置、设备、存储介质及程序产品 |
CN114911406B (zh) * | 2022-06-01 | 2023-10-17 | 北京字节跳动网络技术有限公司 | 一种动效生成方法、装置、介质及设备 |
CN115035218B (zh) * | 2022-08-11 | 2022-11-01 | 湖南湘生网络信息有限公司 | 交互动画制作方法、装置、计算机设备和存储介质 |
CN115641375B (zh) * | 2022-12-07 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 虚拟对象的毛发处理方法、装置、设备及存储介质 |
CN115937373B (zh) * | 2022-12-23 | 2023-10-03 | 北京百度网讯科技有限公司 | 虚拟形象驱动方法、装置、设备以及存储介质 |
CN116228942B (zh) * | 2023-03-17 | 2024-02-06 | 北京优酷科技有限公司 | 角色动作提取方法、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111161427A (zh) * | 2019-12-04 | 2020-05-15 | 北京代码乾坤科技有限公司 | 虚拟骨骼模型的自适应调节方法、装置及电子装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9177409B2 (en) * | 2010-04-29 | 2015-11-03 | Naturalmotion Ltd | Animating a virtual object within a virtual world |
CN107578461B (zh) * | 2017-09-06 | 2021-05-04 | 合肥工业大学 | 一种基于子空间筛选的三维虚拟人体物理运动生成方法 |
CN109758765A (zh) * | 2018-12-21 | 2019-05-17 | 网易(杭州)网络有限公司 | 移动端虚拟对象控制方法及设备 |
CN111028317B (zh) * | 2019-11-14 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 虚拟对象的动画生成方法、装置、设备及存储介质 |
CN110930483B (zh) * | 2019-11-20 | 2020-11-24 | 腾讯科技(深圳)有限公司 | 一种角色控制的方法、模型训练的方法以及相关装置 |
CN111292403B (zh) * | 2020-03-10 | 2023-08-22 | 黄海波 | 一种创建活动布娃娃的方法 |
-
2020
- 2020-07-28 CN CN202010736955.9A patent/CN112001989B/zh active Active
- 2020-11-20 WO PCT/CN2020/130413 patent/WO2022021686A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111161427A (zh) * | 2019-12-04 | 2020-05-15 | 北京代码乾坤科技有限公司 | 虚拟骨骼模型的自适应调节方法、装置及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022021686A1 (zh) | 2022-02-03 |
CN112001989A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112001989B (zh) | 虚拟对象的控制方法及装置、存储介质、电子装置 | |
US10657696B2 (en) | Virtual reality system using multiple force arrays for a solver | |
US11928765B2 (en) | Animation implementation method and apparatus, electronic device, and storage medium | |
US10022628B1 (en) | System for feature-based motion adaptation | |
US9449416B2 (en) | Animation processing of linked object parts | |
US7403202B1 (en) | Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models | |
US8648864B2 (en) | System and method for blended animation enabling an animated character to aim at any arbitrary point in a virtual space | |
CN111968204B (zh) | 一种骨骼模型的运动展示方法和装置 | |
CN111714880B (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
WO2023088041A1 (zh) | 虚拟角色的行走动画生成方法、装置、设备及存储介质 | |
US7999812B2 (en) | Locality based morphing between less and more deformed models in a computer graphics system | |
CN111028317B (zh) | 虚拟对象的动画生成方法、装置、设备及存储介质 | |
US20180144531A1 (en) | Animating a virtual object in a virtual world | |
Ho et al. | A finite state machine based on topology coordinates for wrestling games | |
Kenwright | Real-time physics-based fight characters | |
US8531466B2 (en) | Methods for providing realistic animation of autonomous objects through improved animation control signal processing | |
CN107050848B (zh) | 基于体域网的体感游戏实现方法以及装置 | |
Westenhofer et al. | Using kinematic clones to control the dynamic simulation of articulated figures | |
Lee et al. | Realistic character motion response in computer fighting game | |
Jenkins et al. | Dynamic humanoid balance through inertial control | |
Doyle | Real-Time Physics-Based Goalkeeper Animations | |
Cooper | Analysis and synthesis of bipedal humanoid movement: a physical simulation approach | |
Bae et al. | Design and implementation of real-time physics simulation engine for e-Entertainment | |
Nusman | Real-time full-body motion capture in virtual worlds | |
Guggiari | Making Simulated Characters Accessible in Unity |
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 |