CN110930483B - 一种角色控制的方法、模型训练的方法以及相关装置 - Google Patents

一种角色控制的方法、模型训练的方法以及相关装置 Download PDF

Info

Publication number
CN110930483B
CN110930483B CN201911142931.4A CN201911142931A CN110930483B CN 110930483 B CN110930483 B CN 110930483B CN 201911142931 A CN201911142931 A CN 201911142931A CN 110930483 B CN110930483 B CN 110930483B
Authority
CN
China
Prior art keywords
information
moment
action
state
target
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
Application number
CN201911142931.4A
Other languages
English (en)
Other versions
CN110930483A (zh
Inventor
张榕
曾子骄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911142931.4A priority Critical patent/CN110930483B/zh
Publication of CN110930483A publication Critical patent/CN110930483A/zh
Application granted granted Critical
Publication of CN110930483B publication Critical patent/CN110930483B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种角色控制的方法,包括:获取目标角色在第一时刻的第一状态信息,其中,目标角色包括M个关节,第一状态信息用于表示M个关节的信息;基于第一状态信息,通过状态预测模型获取目标角色在第二时刻的第一动作信息,第一动作信息用于表示(M‑1)个关节的信息;根据第一动作信息获取第一力矩,其中,第一力矩包括(M‑1)个关节中每个关节在第二时刻下的力矩;基于第一力矩,通过物理引擎控制目标角色执行第一动作。本申请还公开了一种模型训练的方法。本申请能够根据动作信息计算出作用于角色各个关节的力矩,进而在物理引擎中基于力矩对角色进行控制,从而生成逼真的动作序列,提升了角色的动作效果。

Description

一种角色控制的方法、模型训练的方法以及相关装置
技术领域
本申请涉及人工智能领域,尤其涉及一种角色控制的方法、模型训练的方法以及相关装置。
背景技术
随着近几年人工智能的不断发展,强化学习在动作模仿的领域中受到越来越多的关注。将强化学习技术应用于游戏角色的动作生成,将有助于优化游戏开发效率,提升游戏角色的动作效果。
如今,在设计完动画中的角色之后,还需要由动画师给这些角色赋予不同的动作,比如跑步、走路、跳跃以及攻击等动作。动画师需要预先通过动画制作软件设计大量的动画片段。在游戏进行的过程中,可以播放当前场景的动画片段。
然而,动画片段中的角色往往缺乏对真实世界中物理规律的模拟,而且有些动作可能不符合真实情况,比如,命令角色面向墙走,在靠近墙的地方,角色会贴着墙原地踏步。由此导致角色的动作难以达到真实自然的状态,降低了角色的动作效果。
发明内容
本申请实施例提供了一种角色控制的方法、模型训练的方法以及相关装置,能够利用状态预测模型预测得到动作信息,基于逆动力学原理和自动控制方法,根据动作信息计算出作用于角色各个关节的力矩,进而在物理引擎中基于力矩对角色进行控制,从而生成逼真的动作序列,提升了角色的动作效果。
有鉴于此,本申请第一方面提供一种角色控制的方法,包括:
获取目标角色在第一时刻的第一状态信息,其中,所述目标角色包括M个关节,所述第一状态信息用于表示所述M个关节的信息,所述M为大于1的整数;
基于所述第一状态信息,通过状态预测模型获取所述目标角色在第二时刻的第一动作信息,其中,所述第一动作信息用于表示所述(M-1)个关节的信息,所述第二时刻为所述第一时刻的下一个时刻;
根据所述第一动作信息获取第一力矩,其中,所述第一力矩包括所述(M-1)个关节中每个关节在所述第二时刻下的力矩;
基于所述第一力矩,通过物理引擎控制所述目标角色执行第一动作。
本申请第二方面提供一种模型训练的方法,包括:
获取片段集合,其中,所述片段集合包括至少一个片段;
根据所述片段集合获取状态信息集合,其中,所述状态信息集合包括至少一个状态信息;
基于状态信息集合,通过价值评判模型获取状态价值集合,其中,所述状态价值集合包括至少一个状态价值,所述状态价值与所述状态信息具有对应关系;
基于状态信息集合,通过待训练状态预测模型获取动作信息集合,其中,所述动作信息集合包括至少一个动作信息,所述动作信息与所述状态信息具有对应关系;
根据所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到状态预测模型。
本申请第三方面提供一种角色控制装置,包括:
获取模块,用于获取目标角色在第一时刻的第一状态信息,其中,所述目标角色包括M个关节,所述第一状态信息用于表示所述M个关节的信息,所述M为大于1的整数;
所述获取模块,还用于基于所述第一状态信息,通过状态预测模型获取所述目标角色在第二时刻的第一动作信息,其中,所述第一动作信息用于表示所述(M-1)个关节的信息,所述第二时刻为所述第一时刻的下一个时刻;
所述获取模块,还用于根据所述第一动作信息获取第一力矩,其中,所述第一力矩包括所述(M-1)个关节中每个关节在所述第二时刻下的力矩;
所述控制模块,用于基于所述获取模块获取的所述第一力矩,通过物理引擎控制所述目标角色执行第一动作。
在一种可能的设计中,在本申请实施例的第三方面的第一种实现方式中,
所述获取模块,具体用于获取所述M个关节中每个关节的姿态信息以及速度信息,其中,所述姿态信息包括所述第一时刻的位置信息以及所述第一时刻的旋转信息,所述速度信息包括所述第一时刻的线速度信息以及所述第一时刻的角速度信息;
获取所述第一时刻的相位信息;
根据所述姿态信息、所述速度信息以及所述相位信息,获取所述第一状态信息。
在一种可能的设计中,在本申请实施例的第三方面的第二种实现方式中,
所述获取模块,具体用于基于所述第一状态信息,通过所述状态预测模型获取所述目标角色的所述(M-1)个关节在所述第二时刻的旋转信息,其中,所述(M-1)个关节与根关节用于组成所述M个关节;
根据所述(M-1)个关节在所述第二时刻的旋转信息,获取所述第一动作信息。
在一种可能的设计中,在本申请实施例的第三方面的第三种实现方式中,
所述获取模块,具体用于基于比例微分PD控制,根据所述目标角色在所述第一时刻的旋转信息以及在所述第二时刻的旋转信息,确定所述第一力矩。
在一种可能的设计中,在本申请实施例的第三方面的第四种实现方式中,
所述获取模块,具体用于获取所述目标角色的所述(M-1)个关节在所述第一时刻的第n次旋转信息以及在所述第一时刻的第n次角速度信息,其中,所述n表示所述PD控制的调用次数,所述n为大于或等于1的整数;
根据所述目标角色的所述(M-1)个关节在所述第二时刻的第(n+1)次旋转信息,计算得到所述(M-1)个关节在所述第二时刻的第(n+1)次角速度信息;
获取所述目标角色的所述(M-1)个关节在所述第一时刻的第n次角度加速度;
根据所述控制调用次数确定周期时间;
根据所述第一时刻的第n次旋转信息、所述第一时刻的第n次角速度信息、所述第二时刻的第(n+1)次旋转信息、所述第二时刻的第(n+1)次角速度信息、所述第一时刻的第n次角度加速度以及所述周期时间,确定所述第一力矩。
在一种可能的设计中,在本申请实施例的第三方面的第五种实现方式中,
所述获取模块,具体用于采用如下方式计算所述第一力矩:
Figure BDA0002281442810000031
其中,所述τn表示所述第n次的所述第一力矩,所述kp表示比例增益,所述kd表示微分增益,所述qn表示所述第一时刻的第n次旋转信息,所述
Figure BDA0002281442810000032
表示所述第一时刻的第n次角速度信息,所述δt表示所述周期时间,所述
Figure BDA0002281442810000033
表示所述第二时刻的第(n+1)次旋转信息,所述
Figure BDA0002281442810000034
表示所述第一时刻的第n次角度加速度,所述
Figure BDA0002281442810000035
表示所述第二时刻的第(n+1)次角速度信息。
在一种可能的设计中,在本申请实施例的第三方面的第六种实现方式中,所述角色控制装置还包括接收模块以及确定模块;
所述接收模块,用于在所述控制模块基于所述第一力矩,通过物理引擎控制所述目标角色执行第一动作之后,接收动作切换指令,其中,所述动作切换指令携带目标动作标识;
所述确定模块,用于响应于所述接收模块接收的所述动作切换指令,根据所述目标动作标识确定目标向量;
所述获取模块,还用于获取所述目标角色在第三时刻的第二状态信息;
所述获取模块,还用于基于所述确定模块确定的所述第三时刻的第一状态信息以及所述目标向量,通过所述状态预测模型获取所述目标角色在第四时刻的第二动作信息,其中,所述第四时刻为所述第三时刻的下一个时刻;
所述获取模块,还用于根据所第二动作信息获取第二力矩,其中,所述第二力矩包括所述M个关节中每个关节在所述第四时刻下的力矩;
所述控制模块,还用于基于所述获取模块获取的所述第二力矩,通过所述物理引擎控制所述目标角色执行第二动作。
本申请第四方面提供一种模型训练装置,包括:
获取模块,用于获取片段集合,其中,所述片段集合包括至少一个片段;
所述获取模块,还用于根据所述片段集合获取状态信息集合,其中,所述状态信息集合包括至少一个状态信息;
所述获取模块,还用于基于状态信息集合,通过价值评判模型获取状态价值集合,其中,所述状态价值集合包括至少一个状态价值,所述状态价值与所述状态信息具有对应关系;
所述获取模块,还用于基于状态信息集合,通过待训练状态预测模型获取动作信息集合,其中,所述动作信息集合包括至少一个动作信息,所述动作信息与所述状态信息具有对应关系;
训练模块,用于根据所述获取模块获取的所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到状态预测模型。
在一种可能的设计中,在本申请实施例的第四方面的第一种实现方式中,所述模型训练装置还包括确定模块;
所述获取模块,还用于基于状态信息集合,通过待训练状态预测模型获取动作信息集合之后,从所述状态信息集合中获取目标时刻所对应的状态信息;
所述获取模块,还用于基于所述获取模块获取的所述目标时刻所对应的状态信息,控制第一角色执行第一动作,以得到第一模拟信息,其中,所述第一角色不具有物理属性;
所述获取模块,还用于基于所述获取模块获取的所述目标时刻所对应的状态信息,控制第二角色执行第二动作,以得到第二模拟信息,其中,所述第二角色具有物理属性;
所述确定模块,用于根据所述获取模块获取的所述第一模拟信息以及所述第二模拟信息确定目标时刻所对应的奖励信息;
所述获取模块,具体用于基于目标时刻所对应的状态信息以及所述确定模块确定的所述目标时刻所对应的奖励信息,通过所述价值评判模型获取目标时刻所对应的状态价值。
在一种可能的设计中,在本申请实施例的第四方面的第二种实现方式中,所述模型训练装置还包括生成模块;
所述获取模块,还用于获取片段集合之后,根据所述片段集合获取第一图像帧以及第二图像帧,其中,所述第一图像帧对应于第一动作标识,所述第二图像帧对应于第二动作标识,所述第一动作标识与所述第二动作标识用于标识不同的动作;
所述生成模块,用于根据所述获取模块获取的所述第一图像帧所对应的所述第一动作标识,生成第一向量;
所述生成模块,用于根据所述获取模块获取的所述第二图像帧所对应的所述第二动作标识,生成第二向量;
所述训练模块,具体用于根据所述第一向量、所述第二向量、所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到所述状态预测模型。
本申请第五方面提供一种终端设备,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括执行如上述第一方面中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本申请第五方面提供一种服务器,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括执行如上述第二方面中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本申请的第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种角色控制的方法,首先获取目标角色在第一时刻的第一状态信息,目标角色包括M个关节,第一状态信息用于表示M个关节的信息,M为大于1的整数,然后基于第一状态信息,通过状态预测模型获取目标角色在第二时刻的第一动作信息,第一动作信息用于表示(M-1)个关节的信息,第二时刻为第一时刻的下一个时刻,再根据第一动作信息获取第一力矩,第一力矩包括(M-1)个关节中每个关节在第二时刻下的力矩,最后可以基于第一力矩,通过物理引擎控制目标角色执行第一动作。通过上述方式,能够利用状态预测模型预测得到动作信息,基于逆动力学原理和自动控制方法,根据动作信息计算出作用于角色各个关节的力矩,进而在物理引擎中基于力矩对角色进行控制,从而生成逼真的动作序列,提升了角色的动作效果。
附图说明
图1为本申请实施例中角色控制系统的一个架构示意图;
图2为本申请实施例中角色控制方法的一个整体流程示意图;
图3为本申请实施例中角色控制的方法一个实施例示意图;
图4为本申请实施例中人型角色的一个关节位置示意图;
图5为本申请实施例中状态预测模型的一个网络结构示意图;
图6为本申请实施例中角色行走的一个动作序列示意图;
图7为本申请实施例中角色奔跑的一个动作序列示意图;
图8为本申请实施例中微分比例控制器的一个处理流程示意图;
图9为本申请实施例中角色从行走到奔跑的一个动作序列示意图;
图10为本申请实施例中角色从奔跑到行走的一个动作序列示意图;
图11为本申请实施例中模型训练的方法一个实施例示意图;
图12为本申请实施例中基于强化学习的一个模型训练流程示意图;
图13为本申请实施例中使用玩家评判算法框架训练模型的一个实施例示意图;
图14为本申请实施例中近端策略优化框架的一个实施例示意图;
图15为本申请实施例中运动学角色与模拟角色之间的一个对比示意图;
图16为本申请实施例中基于运动学角色与模拟角色生成奖励信息的一个示意图;
图17为本申请实施例中对角色进行动作融合的一个实施例示意图;
图18为本申请实施例中角色控制装置的一个实施例示意图;
图19为本申请实施例中角色控制装置的另一个实施例示意图;
图20为本申请实施例中模型训练装置的一个实施例示意图;
图21为本申请实施例中模型训练装置的另一个实施例示意图;
图22为本申请实施例中模型训练装置的另一个实施例示意图;
图23为本申请实施例中终端设备的一个结构示意图;
图24为本申请实施例中服务器的一个结构示意图。
具体实施方式
本申请实施例提供了一种角色控制的方法、模型训练的方法以及相关装置,能够利用状态预测模型预测得到的动作信息,基于逆动力学原理和自动控制方法,根据动作信息计算出作用于角色各个关节的力矩,在物理引擎中基于力矩对角色进行控制,从而生成逼真的动作序列,提升了角色的动作效果。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请提供的方法可以基于人工智能(Artificial Intelligence,AI)的机器学习(Machine Learning,ML)来实现角色控制以及模型训练。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
应理解,本申请提供的角色控制方法具体可以应用于三维(3Dimensions,3D)游戏、动画电影以及虚拟现实(Virtual Reality,VR)等场景,比如,在3D游戏中包括大量的角色,这些角色可以由玩家进行控制,也可以按照游戏进度自动实现角色的控制。游戏角色的类型多种多样,例如有“战士”、“法师”、“射手”、“刺客”和“辅助”等,不同类型的角色有一部分动作类型是相同的,比如,跑、走、跳以及蹲等,还有一部分动作类型是不同的,比如攻击方式和防御方式等,因此,需要动画师针对不同的角色设计出相应的动画,本申请提供的角色控制方法可基于设计出的动画控制角色执行动作。
3D游戏中的角色动画通常指蒙皮动画,蒙皮动画由骨骼、蒙皮和动画组成。其中,骨骼是指由关节搭建出的且可以活动的骨架,是活动的虚拟主体,驱动整个角色运动,但不会在游戏中被渲染出来。蒙皮是指包裹在骨骼周围的三角形网格,网格的每个顶点被一个或多个骨骼控制。动画是指每个骨骼在一定时间点上所处的位置或方向等变化,所有骨骼的位置坐标点或姿态信息可以采用矩阵表示。在角色设计完成后还需要由动画师赋予走、跑、跳以及攻击等行为,才能在玩家面前产生丰富的动作。具体地,预先通过3D动画制作软件设计制作大量的动画片段,在游戏进行的恰当时间播放当时场景所需的动画片段。也可以在渲染前由程序做动画后期处理,比如使用逆运动学(Inverse Kinematics,IK)的方法,根据当时的实际环境计算出角色手脚的准确位置,对动作进行调整。游戏的交互性需要角色融合不同的动作,通常需要把各个动作分割成较短的片段,然后合适地混合这些片段,并根据情况适当修改。一个动画到另一个动画的过渡有两种常见的过渡方式,一种是冻结过渡,另一种是平滑过渡。冻结过渡是在动画a先结束之后,动画b才开始。而平滑过渡是在动画a还在进行时,就开始向动画b融合。
为了便于理解,本申请提出了一种角色控制的方法,该方法应用于图1所示的角色控制系统,请参阅图1,图1为本申请实施例中角色控制系统的一个架构示意图,如图所示,首先需要训练得到状态预测模型,在角色控制的过程中,可以分为两种实现方式,分别为在线处理和离线处理。下面将分别进行说明:在线处理时,状态预测模型存储于服务器,客户端收集动画片段之后,从该动画片段中提取角色在当前时刻的状态信息,将状态信息发送至服务器,由服务器将该状态信息输入至状态预测模型,从而输出下一个时刻角色的动作信息,服务器可以将动作信息发送至客户端,由客户端根据动作信息计算角色的力矩。或者,服务器可以根据动作信息计算出力矩,将力矩发送至客户端。最后,在物理引擎中基于力矩控制角色执行动作序列。离线处理时,状态预测模型存储于终端设备本地,客户端收集动画片段之后,从该动画片段中提取角色在当前时刻的状态信息,客户端将状态信息输入至状态预测模型,由状态预测模型输出下一个时刻角色的动作信息,客户端再根据动作信息计算角色的力矩,最后在物理引擎中基于力矩控制角色执行动作序列。
需要说明的是,客户端部署于终端设备上,其中,终端设备包含但不仅限于平板电脑、笔记本电脑、掌上电脑、手机、语音交互设备及个人电脑(personal computer,PC),此处不做限定。
下面将采用一个完整的流程图对本申请提供的方案进行介绍。请参阅图2,图2为本申请实施例中角色控制方法的一个整体流程示意图,如图所示,具体地:
在步骤S1中,获取至少一个动作片段,其中,这些动作片段是动画师制作的,动作片段中包括了角色的骨骼结构和关节的动作信息等。
在步骤S2中,从至少一个动作片段中提取角色的状态信息用于训练状态预测模型,该状态预测模型用于实现AI物理动画。
在步骤S3中,获取当前时刻角色的关节动作,即获取角色在t时刻的各个关节的状态信息,关节的状态信息角色的状态描述了关节的姿态和速度等物理量。
在步骤S4中,使用AI物理动画对角色在下一时刻的动作信息进行预测,即调用已经训练完成的状态预测模型,将T时刻的M个关节的状态信息输入至该状态预测模型,其中,M个关节包括角色的根关节。
在步骤S5中,由状态预测模型输出角色在下一时刻的动作信息,即由状态预测模型输出该角色在t+1时刻的(M-1)个关节的动作信息,这里的(M-1)个关节不包含根关节。其中,动作信息可以包括关节位置坐标信息和旋转信息。可以理解的是,连续预测既可实现连续时间段上的动作模仿。
在步骤S6中,基于状态预测模型输出的动作信息,可以通过相关公式计算出速度和加速度,再求解出应该施加在关节上的力矩(torque),力矩也就是扭转的力,在物理学里,作用力促使物体绕着转动轴或支点转动的趋向。
在步骤S7中,物理引擎会根据设置好的旋转轴和锚点,计算角速度和旋转信息,从而控制角色运动。本申请采用力矩控制物理引擎里的角色,而不是直接把角色的身体直接移动到模型预测的点上,这是因为直接移动角色身体的效果比较僵硬,且无法令角色产生真实的速度和角速度,第t+1时刻关节的状态信息用于构造模型下一时刻输入。
在步骤S8中,物理引擎将计算出的力矩施加于对应关节,并根据物理环境配置模拟出真实情况,从而使得角色在物理引擎中模仿出与动作片段一致且逼真的动作序列。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
结合上述介绍,下面将对本申请中角色控制的方法进行介绍,请参阅图3,本申请实施例中角色控制的方法一个实施例包括:
101、获取目标角色在第一时刻的第一状态信息,其中,目标角色包括M个关节,第一状态信息用于表示M个关节的信息,M为大于1的整数;
本实施例中,角色控制装置获取动画片段,通过该动画片段提取目标角色在第一时刻的第一状态信息。可以理解的是,角色控制装置可以部署于终端设备,也可以部署于服务器,此处不做限定。第一时刻可以表示为第t个时刻,第t个时刻所对应的状态(state)信息即为第一状态信息,第一状态信息包括了角色的M个关节所对应的信息。在实际工程中,假设1秒钟调用模型30次,即预测动作信息的频率为30赫兹(Hz)。
为了便于介绍,请参阅图4,图4为本申请实施例中人型角色的一个关节位置示意图,如图所示,假设人型角色有15个关节,其中,A15所指示的关节为根(root)关节,在人型角色的盆骨位置,也是最顶层的父节点。其余的14个关节分别为A1所指示的胸膛、A2所指示的脖子、A3所指示的右腿、A4所指示的左腿、A5所指示的右膝、A6所指示的左膝、A7所指示的右踝、A8所指示的左踝、A9所指示的右大臂、A10所指示的左大臂、A11所指示的右肘、A12所指示的左肘、A13所指示的右手踝以及A14所指示的左手踝。可以理解的是,人型角色还可以包括其他数量的关节,此处仅为一个示意,不应理解为对本申请的限定。
102、基于第一状态信息,通过状态预测模型获取目标角色在第二时刻的第一动作信息,其中,第一动作信息用于表示(M-1)个关节的信息,第二时刻为第一时刻的下一个时刻;
本实施例中,角色控制装置将获取到的第一状态信息输入至状态预测模型,由该状态预测模型输出目标角色在第二时刻的第一动作信息。第二时刻可以表示为第t+1个时刻,第t+1个时刻所对应的动作(action)信息即为第一动作信息,第一动作信息包括了角色的(M-1)个关节所对应的旋转信息,但第一动作信息不包括根节点的动作信息。
为了便于理解,请参阅图5,图5为本申请实施例中状态预测模型的一个网络结构示意图,如图所示,状态预测模型也可以称为动作(actor)模型,状态预测模型可以采用多层感知机和两个全连接层(full connection layer),全连接层1有1024个单元,全连接层2有512个单元。状态预测模型输出为角色各个关节的姿态信息,可以表示为高斯分布的均值,属于连续型动作空间。
103、根据第一动作信息获取第一力矩,其中,第一力矩包括(M-1)个关节中每个关节在第二时刻下的力矩;
本实施例中,角色控制装置可以基于第一动作信息中的旋转信息计算得到(M-1)个关节在第二时刻所对应的第一力矩。以15个关节为例,去掉根节点后即得到14个关节,那么第一力矩包括了这14个关节中每个关节的力矩,即包括14个力矩,每个力矩分别针对一个对应的关节,为了便于介绍,请参阅表1,表1为关节与力矩之间的对应关系示意。
表1
关节 力矩(牛顿每米) 关节 力矩(牛顿每米)
胸膛 1 左踝 1.4
脖子 1.2 右大臂 1.8
右腿 1.1 左大臂 1.7
左腿 1.2 右肘 1.5
右膝 1.5 左肘 1.3
左膝 1.5 右手踝 1.1
右踝 1.3 左手踝 1.1
力矩的定义是距离乘以作用力,经过计算后,每个关节都有一个预测得到的力矩,这些力矩称为第一力矩。可以理解的是,表1所示的关节与力矩之间的对应关系仅为一个示意,且各个关节所对应的力矩大小也为一个示意,不应理解为对本申请的限定。
104、基于第一力矩,通过物理引擎控制目标角色执行第一动作。
本实施例中,角色控制装置根据计算得到的第一力矩,在物理引擎中按照第一力矩控制目标角色执行第一动作,第一动作可以是奔跑、行走、跳跃、蹲下或者攻击等动作,多个连续的动作构成动作序列,即多个第一动作构成第一动作序列。其中,物理引擎是一个计算机程序模拟牛顿力学模型,可以利用质量、速度、摩擦力和空气阻力等变量,用来预测不同情况下的效果,尽量贴近真实世界下的物理状态。在物理引擎中可为每个关节定义相关参数,比如质量、位置、旋转轴和锚点,然后根据目标角色中每个关节的力矩算出角速度(角速度=逆惯性张量*力矩),再根据力矩的作用时间算出各个关节的最终位置,最后让目标角色绕着旋转轴和锚点旋转。
物理引擎的本质作用是模拟真实环境,假设某个关节施加了力矩,应该旋转90度,但是旋转中遇到地形障碍物的遮挡,则该关节将和障碍物发生碰撞,而非继续旋转。
为了便于理解,请参阅图6,图6为本申请实施例中角色行走的一个动作序列示意图,如图所示,如果预测得到的动作为“行走”,那么物理引擎可以模拟出目标角色行走的动作,并展示给用户。请参阅图7,图7为本申请实施例中角色奔跑的一个动作序列示意图,如图所示,如果预测得到的动作为“奔跑,那么物理引擎可以模拟出目标角色奔跑的动作,并展示给用户。
本申请实施例中,提供了一种角色控制的方法,首先获取目标角色在第一时刻的第一状态信息,目标角色包括M个关节,第一状态信息用于表示M个关节的信息,M为大于1的整数,然后基于第一状态信息,通过状态预测模型获取目标角色在第二时刻的第一动作信息,第一动作信息用于表示(M-1)个关节的信息,第二时刻为第一时刻的下一个时刻,再根据第一动作信息获取第一力矩,第一力矩包括(M-1)个关节中每个关节在第二时刻下的力矩,最后可以基于第一力矩,通过物理引擎控制目标角色执行第一动作。通过上述方式,能够利用状态预测模型预测得到动作信息,基于逆动力学原理和自动控制方法,根据动作信息计算出作用于角色各个关节的力矩,进而在物理引擎中基于力矩对角色进行控制,从而生成逼真的动作序列,提升了角色的动作效果。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的角色控制的方法第一个可选实施例中,获取目标角色在第一时刻的第一状态信息,可以包括:
获取M个关节中每个关节的姿态信息以及速度信息,其中,姿态信息包括第一时刻的位置信息以及第一时刻的旋转信息,速度信息包括第一时刻的线速度信息以及第一时刻的角速度信息;
获取第一时刻的相位信息;
根据姿态信息、速度信息以及相位信息,获取第一状态信息。
本实施例中,介绍了一种获取第一状态信息的方式,第一状态信息是用于描述目标角色在第一时刻下每个关节的状态信息,状态信息涵盖了关节的姿态信息以及速度信息,还包括了相位信息,下面将分别进行说明。
具体地,假设M为15,即目标角色包括15个关节。角色控制装置获取M个关节中每个关节的姿态信息,其中,姿态信息包括位置信息和旋转信息,位置信息可以表示为三维坐标,即位置信息包括三个维度的参数,旋转信息可以表示为单位四元数(unitquaternion),即旋转信息包括四个维度的参数,此外,还可以记录目标角色的根关节的纵轴(Y轴)坐标值,通过纵轴与世界坐标系对齐,纵轴坐标值包括一个维度的参数。综上,姿态信息共有(7×M+1)个维度的参数,即若M=15,则姿态信息包括106维的参数。
可以理解的是,位置信息中的三维坐标表示关节的空间坐标。而旋转信息中的单位四元数表示三维空间里的旋转情况,单位四元数与三维正交矩阵和欧拉角的表示方式是等价的,这里以单位四元数为例进行说明,若三维空间里的一个点的笛卡尔坐标为(x,y,z),则该笛卡尔坐标可以用纯四元数(类似于纯虚数,即实部为0的四元数)xi+yj+zk表示。其中i、j和k本身的几何意义可以理解为一种旋转,i旋转表示X轴与Y轴相交平面中X轴正向向Y轴正向的旋转,j旋转表示Z轴与X轴相交平面中Z轴正向向X轴正向的旋转,k旋转表示Y轴与Z轴相交平面中Y轴正向向Z轴正向的旋转,-i旋转表示i旋转的反向旋转,-j旋转表示j旋转的反向旋转,-k旋转表示k旋转的反向旋转。
角色控制装置获取M个关节中每个关节的速度信息,其中,速度信息包括线速度信息以及角速度信息,线速度信息包括三个维度的参数,分别为X轴上的速度、Y轴上的速度以及Z轴上的速度。类似地,角速度信息也包括三个维度的参数,分别为X轴上的速度、Y轴上的速度以及Z轴上的速度。综上,速度信息有(3×M+3×M)个维度的参数,即若M=15,则姿态信息包括90维的参数。
角色控制装置第一时刻所对应的相位信息,该相位信息可以表示为当前时刻在总时间长度的位置,相位信息包括一维的参数,可以采用如下方式进行计算:
Phase=t/T;
其中,Phase表示相位信息,t表示为当前时刻,即第一时刻,T表示总时间长度。
角色控制装置根据姿态信息、速度信息以及相位信息,获取第一状态信息,综上可知,以M=15为例,第一状态信息包括(106+90+1)=197维。
其次,本申请实施例中,提供了一种获取第一状态信息的方式,第一状态信息包括目标角色M个关节中每个关节的姿态信息以及速度信息,还包括目标角色在第一时刻的相位信息。通过上述方式,能够得到更加全面的状态信息,基于姿态信息、速度信息和相位信息共同预测下一个时刻的动作信息,可以获得更加准确的结果,从而提升预测的可靠性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的角色控制的方法第二个可选实施例中,基于第一状态信息,通过状态预测模型获取目标角色在第二时刻的第一动作信息,可以包括:
基于第一状态信息,通过状态预测模型获取目标角色的(M-1)个关节在第二时刻的旋转信息,其中,(M-1)个关节与根关节用于组成M个关节;
根据(M-1)个关节在第二时刻的旋转信息,获取第一动作信息。
本实施例中,介绍了一种获取第一动作信息的方法,角色控制装置将目标角色的第一状态信息输入至状态预测模型,由该状态预测模型输出目标角色的(M-1)个关节在第二时刻的旋转信息,需要说明的是,这里的(M-1)个关节不包括根关节,这是因为其他关节旋转后会影响根节点,从而决定根节点的旋转信息。因此,(M-1)个关节的第一动作信息即为(M-1)个关节在第二时刻的旋转信息,假设M-15,且旋转信息包括四个维度的参数,那么第一动作信息有56个维度的参数,即(15-1)×4=56。
其次,本申请实施例中,提供了一种获取第一动作信息的方法,即基于第一状态信息,通过状态预测模型获取目标角色的(M-1)个关节在第二时刻的旋转信息,然后根据(M-1)个关节在第二时刻的旋转信息,获取第一动作信息。通过上述方式,由状态预测模型预测下一个时刻除了根关节以外其他各个关节的旋转信息,由此得到动作信息,从而能够基于动作信息计算关节所对应的力矩,提升方案的可行性和可操作性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的角色控制的方法第三个可选实施例中,根据第一动作信息获取第一力矩,可以包括:
基于比例微分PD控制,根据目标角色在第一时刻的旋转信息以及在第二时刻的旋转信息,确定第一力矩。
本实施例中,介绍了一种根据第一动作信息获取第一力矩的方法。先基于状态预测模型获取目标角色的(M-1)个关节在第二时刻的旋转信息
Figure BDA0002281442810000111
然后可以通过对时间求导计算出(M-1)个关节在第二时刻的角速度信息
Figure BDA0002281442810000112
在力矩计算微分比例(proportional plusderivative control,PD)控制公式中代入第一时刻(即当前时刻)的旋转信息q,以及第一时刻(即当前时刻)的角速度信息
Figure BDA0002281442810000113
由此求解出(M-1)个关节所对应的力矩,PD控制公式如下:
Figure BDA0002281442810000114
其中,τ表示第一力矩,kp表示第一关节参数(即比例增益参数),kd表示第二关节参数(即微分增益参数),第一关节参数和第二关节参数可根据需求进行设置,q表示(M-1)个关节在第一时刻的旋转信息,
Figure BDA0002281442810000121
表示(M-1)个关节在第二时刻的旋转信息,
Figure BDA0002281442810000122
表示(M-1)个关节在第一时刻的角速度信息,
Figure BDA0002281442810000123
表示(M-1)个关节在第二时刻的角速度信息。需要说明的是,由于q、
Figure BDA0002281442810000124
Figure BDA0002281442810000125
表示(M-1)个关节所对应的矩阵。
PD控制的特点是,在偏差出现或者变化的瞬间,产生一个正比于偏差变化率的控制作用,总是反对偏差向任何方向的变化,偏差变化越快,反对作用越强。故微分作用的加入将有助于减小超调,克服振荡,使系统趋于稳定,加快了系统的动作速度,减小调整时间,从而改善系统的动态性能。可以理解的是,除了PD控制,还可以采用稳定PD(Stable PD,SPD)控制,SPD控制是基于PD控制的优化。
再次,本申请实施例中,提供了一种根据第一动作信息获取第一力矩的方法,即基于PD控制算法,根据目标角色在第一时刻的旋转信息以及在第二时刻的旋转信息,确定第一力矩。通过上述方式,可以采用PD控制器对目标角色的各个关节独立使用PD线性反馈控制,从而可以保证关节活动的稳定性,且该PD控制器容易设计,降低了方案的实现难度。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的角色控制的方法第四个可选实施例中,基于比例微分PD控制,根据目标角色在第一时刻的旋转信息以及在第二时刻的旋转信息,确定第一力矩,可以包括:
获取目标角色的(M-1)个关节在第一时刻的第n次旋转信息以及在第一时刻的第n次角速度信息,其中,n表示PD控制的调用次数,n为大于或等于1的整数;
根据目标角色的(M-1)个关节在第二时刻的第(n+1)次旋转信息,计算得到(M-1)个关节在第二时刻的第(n+1)次角速度信息;
获取目标角色的(M-1)个关节在第一时刻的第n次角度加速度;
根据控制调用次数确定周期时间;
根据第一时刻的第n次旋转信息、第一时刻的第n次角速度信息、第二时刻的第(n+1)次旋转信息、第二时刻的第(n+1)次角速度信息、第一时刻的第n次角度加速度以及周期时间,确定第一力矩。
本实施例中,介绍了一种采用逆动力学的SPD控制确定力矩的方法。在运动动画中,通常可以采用基于反向运动学(Inverse Kinematic)的方法对目标角色进行控制,但在基于物理的目标角色控制中,如果采用运动学方法对目标角色进行实时控制,就不能产生真实物理效果,且无法感知碰撞等相互作用,因此通常采用力矩来控制目标角色进行运动。对目标角色实时控制的方法主要有三种,下面将分别进行介绍:
第一种为基于力矩控制的方法,在该方法中,状态预测模型输出的动作信息为力矩,该力矩可以作用于目标角色的各个关节,然后由物理引擎根据力矩控制目标角色进行运动。虽然该方法的实现方式较为简单,但是由于动态控制不够稳定,因此会导致控制效果较差,容易产生抖动,使得目标角色的动作不够自然。
第二种为基于速度控制的方法,在该方法中,状态预测模型输出的动作信息为角速度信息,然后采用PD控制算法动态控制角速度信息,基于角速度信息计算出作用于目标角色各个关节的力矩,然后由物理引擎根据力矩控制目标角色进行运动。
第三种为基于位置控制的方法,在该方法中,状态预测模型输出的动作信息为旋转信息,然后采用PD控制算法动态控制旋转信息,基于旋转信息计算出作用于目标角色各个关节的力矩,然后由物理引擎根据力矩控制目标角色进行运动。
可以理解的是,基于速度控制的方法和基于位置控制的方法在实现上较为类似,其效果与模型收敛速度与位置控制基本一致。本申请采用的是第三种方法来确定力矩,然而,在实际应用中,还可以采用第一种方法或者第二种方法来确定力矩。下面将以采用基于位置控制的方法为例进行详细介绍。
为了便于理解,请参阅图8,图8为本申请实施例中微分比例控制器的一个处理流程示意图,如图所示,整个闭环控制系统相当于分层控制,将目标角色在当前时刻的第一状态信息St输入至状态预测模型,由该状态预测模型输出下一个时刻的旋转信息,再利用PD控制器动态地将目标角色的旋转信息控制到第一动作信息At,基于第一动作信息At计算得到目标力矩,在物理引擎中采用目标力矩对目标角色进行控制,由此得到下一时刻的第二状态信息St+1,于是将作为状态预测模型的输入,从而预测再下一个时刻的第二动作信息At+1,依次类推,可以实现对目标角色的连续控制。
需要说明的是,PD控制器的控制周期可以设置为20,即每一秒调用30次状态预测模型,每次调用20次PD控制器,将输出的旋转信息控制到一个固定的旋转信息(如30度)。综上,即一秒钟可以进行600次PD控制。
进一步地,本申请实施例中,提供了一种采用逆动力学的SPD控制确定力矩的方法,可以根据第一时刻的第n次旋转信息、第一时刻的第n次角速度信息、第二时刻的第(n+1)次旋转信息、第二时刻的第(n+1)次角速度信息、第一时刻的第n次角度加速度以及周期时间,确定第一力矩。通过上述方式,状态预测模型输出各个关节的旋转信息,再通过PD控制动态的将目标角色控制到对应的旋转信息,相比力矩控制更稳定,且状态预测模型输出每个关节的旋转信息,其分布方差较小,且采样样本小,因此状态预测模型收敛速度快。而传统的PD控制抖动仍然较大。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的角色控制的方法第五个可选实施例中,根据第一时刻的第n次旋转信息、第一时刻的第n次角速度信息、第二时刻的第(n+1)次旋转信息、第二时刻的第(n+1)次角速度信息、第二时刻的第n次角度加速度以及周期时间,确定第一力矩,可以包括:
采用如下方式计算第一力矩:
Figure BDA0002281442810000131
其中,τn表示第n次的第一力矩,kp表示比例增益,kd表示微分增益,qn表示第一时刻的第n次旋转信息,
Figure BDA0002281442810000132
表示第一时刻的第n次角速度信息,δt表示周期时间,
Figure BDA0002281442810000133
表示第二时刻的第(n+1)次旋转信息,
Figure BDA0002281442810000134
表示第一时刻的第n次角度加速度,
Figure BDA0002281442810000135
表示第二时刻的第(n+1)次角速度信息。
本实施例中,介绍了一种计算力矩的具体方式。即采用基于逆动力学的稳定PD控制计算力矩,其中,逆动力学问题是指,已知某一时刻目标角色各个关节的位置,关节速度及关节加速度,求此时施加在目标角色各个杆件上的力矩。
由于采用普通PD控制会导致目标角色的抖动较大,因此,本申请采用了基于逆动力学的稳定PD控制。传统的PD控制器可以表达为:
Figure BDA0002281442810000141
其中,n表示调用第n次PD控制,如PD控制器的控制周期可以设置为20,即n为20,τn表示调用第n次PD控制所得到的第一力矩,kp表示第一关节参数(即比例增益参数),kd表示第二关节参数(即微分增益参数),第一关节参数和第二关节参数可根据需求进行设置,qn表示(M-1)个关节在调用第n次PD控制所得到的第一时刻的旋转信息,
Figure BDA0002281442810000142
表示(M-1)个关节在调用第n次PD控制所得到的第二时刻的旋转信息,
Figure BDA0002281442810000143
表示(M-1)个关节在调用第n次PD控制所得到的第一时刻的角速度信息,
Figure BDA0002281442810000144
表示(M-1)个关节在调用第n次PD控制所得到的第二时刻的角速度信息。需要说明的是,由于qn
Figure BDA0002281442810000145
Figure BDA0002281442810000146
表示(M-1)个关节所对应的矩阵。
在目标角色控制的过程中,PD控制器需要快速减小与旋转信息的偏差,因此,需要将第一关节参数(即比例增益参数)kp设置较大,这样容易导致比例增益稳定性较差,于是采用SPD控制可以解决这个问题。SPD控制利用下一个时间周期δt后的旋转信息计算得到τn。相当于比较与目标之间差异的同时,考虑了初始状态,可采用如下方式计算第一力矩:
Figure BDA0002281442810000147
其中,其中,n表示调用第n次PD控制,τn表示表示调用第n次PD控制所得到的第一力矩,kp表示第一关节参数(即比例增益参数),kd表示第二关节参数(即微分增益参数),qn表示(M-1)个关节在调用第n次PD控制所得到的第一时刻的旋转信息,
Figure BDA0002281442810000148
表示(M-1)个关节在调用第n次PD控制所得到的第一时刻的角速度信息,δt表示周期时间,假设状态预测模型的调用频率为M,SPD控制器调用频率为N,此时,δt为1/(M*N)秒。
Figure BDA0002281442810000149
表示(M-1)个关节在调用第n+1次PD控制所得到的第二时刻的旋转信息,
Figure BDA00022814428100001410
表示调用第n+1次PD控制的角度加速度,角度加速度可以通过当前逆动力学方式计算得到,
Figure BDA00022814428100001411
表示(M-1)个关节在调用第n+1次PD控制所得到的第二时刻的角速度信息。
更进一步地,本申请实施例中,提供了一种计算力矩的具体方式。通过上述方式,能够有效地计算出力矩,从而提升方案的可行性和可操作性。利用逆动力学的SPD控制能够更高效地达到所需的旋转信息,且得到的旋转信息的精度更强,从而提升力矩计算的效率,并且增加力矩的准确度。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的角色控制的方法第六个可选实施例中,基于第一力矩,通过物理引擎控制目标角色执行第一动作之后,还可以包括:
接收动作切换指令,其中,动作切换指令携带目标动作标识;
响应于动作切换指令,根据目标动作标识确定目标向量;
获取目标角色在第三时刻的第二状态信息;
基于第三时刻的第一状态信息以及目标向量,通过状态预测模型获取目标角色在第四时刻的第二动作信息,其中,第四时刻为第三时刻的下一个时刻;
根据所第二动作信息获取第二力矩,其中,第二力矩包括M个关节中每个关节在第四时刻下的力矩;
基于第二力矩,通过物理引擎控制目标角色执行第二动作。
本实施例中,介绍了一种多种动作融合的方法。以游戏场景为例,玩家可以控制游戏中的目标角色,比如,控制目标角色行走、奔跑、攻击、跳跃以及躲避等。在物理引擎控制目标角色执行第一动作之后,玩家还可以触发动作切换指令,该动作切换指令中携带目标动作标识,该动作切换指令就是指,在模型输入的状态信息后拼接一个目标向量用于指示当前动作标识。基于目标动作标识确定目标向量。于是将目标向量和第三时刻的第二状态信息共同输入至状态预测模型,由该状态预测模型输出目标角色在第四时刻的第二动作信息。其中,第三时刻为第一时刻之后的任意时刻,可以等于第二时刻,也可以是其他时刻,此次不做限定。角色控制装置根据所第二动作信息获取第二力矩,最后通过物理引擎控制该目标角色执行不同于第一动作的第二动作,其中,多个第二动作用于构成第二动作序列。
为了便于理解,请参阅图9,图9为本申请实施例中角色从行走到奔跑的一个动作序列示意图,如图所示,假设第一动作的动作标识为1,表示第一动作为行走,从行走到奔跑的动作标识为2,第二动作的动作标识为3,表示第二动作为奔跑,由此实现目标角色从行走到奔跑的加速过程。类似地,请参阅图10,图10为本申请实施例中角色从奔跑到行走的一个动作序列示意图,如图所示,假设第一动作的动作标识为3,表示第一动作为奔跑,从奔跑到行走的动作标识为4,第二动作的动作标识为1,表示第二动作为行走,由此实现目标角色从奔跑到行走的减速过程。
具体地,以目标角色加速为例进行介绍,在状态预测模型后面可以拼接一个独热(one-hot)的目标向量用于指示当前动作标识,假设动作标识为1表示行走,动作标识为2表示从行走到奔跑,动作标识为3表示奔跑,动作标识为4表示从奔跑到行走,向量长度为4,若目标角色正在执行行走这个动作,那么此时的向量为[0,1,0,0],当接收到动作切换指令时,即可切换至目标向量[0,1,0,0],于是在程序操作层面,相当于从goal l=[0,1,0,0]变为goal=[0,0,1,0],从而实现加速。以M=15为例,可以在197维的第一状态信息后面再增加N维的目标(goal)向量,比如4维的goal向量,每个时刻想要目标角色执行动作,就需要输入201维的信息。可以理解的是,如果没有动作的切换,则无需增加goal向量。
其次,本申请实施例中,提供了一种多种动作融合的方法,即在接收动作切换指令之后,可以接收动作切换指令,响应于动作切换指令,根据目标动作标识确定目标向量,获取目标角色在第三时刻的第二状态信息,基于第三时刻的第一状态信息以及目标向量,通过状态预测模型获取目标角色在第四时刻的第二动作信息,根据所第二动作信息获取第二力矩,最后基于第二力矩,通过物理引擎控制目标角色执行第二动作。通过上述方式,能够根据输入的动作切换指令,使得生成的动画可与人交互,动作切换由用户指定。从而提升方案的灵活性和可操作性。此外,在切换动作的时候可以通过状态预测模型实现动作的平滑过渡,防止由于冻结过渡而造成动作不自然的问题。本申请提供的方案可应用于游戏中对角色的动作生成和控制,实现逼真的动作序列。
结合上述介绍,下面将对本申请中模型训练的方法进行介绍,请参阅图11,本申请实施例中模型训练的方法一个实施例包括:
201、获取片段集合,其中,片段集合包括至少一个片段;
本实施例中,模型训练装置获取片段集合,该片段集合包括至少一个片段。可以理解的是,模型训练装置可以部署于终端设备,也可以部署于服务器,本申请以部署于服务器为例进行介绍,但不应理解为对本申请的限定。
其中,角色的动作片段可储存为若干帧动画,每一帧记录当前时刻角色的状态信息。实际播放动作时,由软件对相邻帧动作平滑过渡,则可产生连续流畅的动画。动画师给出的动画片段可能有各种格式,通过软件(如Motion Builder或者3ds Max)转化为电影盒(Film BoX,FBX)格式文件或生物视觉分层数据(Biovision hierarchical data,BVH)格式文件,最终提取所需的状态信息用于模型训练。FBX格式文件是一种通用模型格式,支持所有主要的三维数据元素以及二维、音频和视频媒体元素。BVH格式文件是一种国际通用的人体特征动画文件格式,它包含了两大块内容,一块是角色的骨骼,另一块是肢体关节的旋转数据。
具体地,在片段中记录的是角色关节的姿态信息,根据每个关节的位置信息和旋转信息,即可构建出该角色的当前动作。除顶层根关节的位置信息和旋转信息之外,再记录其他关节对应旋转信息,即可构造出角色当前的完整姿态。通常情况下,角色的骨骼关节有父子层级结构,例如肩膀为父关节,手肘为子关节,手腕为手肘的子关节。从父关节位置进行对应平移,即得到子关节位置。因此,子关节位置坐标无需记录,只需要知道最顶层的父关节(例如跟关节)的位置坐标,通过平移就可得子关节位置坐标。
202、根据片段集合获取状态信息集合,其中,状态信息集合包括至少一个状态信息;
本实施例中,模型训练装置对片段集合的每个片段进行状态信息的提取,从而得到状态信息集合。假设片段集合中有100个片段,可以得到100个状态信息,即每个片段对应一个状态信息,可以理解的是,在实际应用中,一个片段还可以对应多个状态信息。
在训练的时候,需要从片段中提取角色在各个时刻的状态信息,下面将以人型角色的第一帧行走动作为例介绍如何提取状态信息。
{
"Frames":
[
[0.0333333,001389296,0.8033880000000001,0.0036694320000000002,
0.5306733251792894,-0.5324986777087051,-0.4638864011202557,-0.46865807049205305,
0.7517762842400346,0.0012912812309982618,-0.0033740637622359164,0.6594083459744481,…]
结合上述示例,0.0333320000表示当前帧时长,单位为秒,假设每个时刻对应一帧,那么一个时刻的长度为0.0333320000秒。(001389296,0.8033880000000001,0.0036694320000000002)表示第一帧的根关节在三维空间里的坐标(即位置信息),(0.5306733251792894,-0.5324986777087051,-0.4638864011202557,-0.46865807049205305)表示第一帧的根关节所对应的单位四元数(即旋转信息),(0.7517762842400346,0.0012912812309982618,-0.0033740637622359164,0.6594083459744481)表示第一帧的根关节的第一个子关节的旋转信息,最后省略了其余各个子关节的旋转信息,由此,构建出片段中第一帧的状态信息,以此类推,可以得到各个片段中各帧所对应的状态信息。
203、基于状态信息集合,通过价值评判模型获取状态价值集合,其中,状态价值集合包括至少一个状态价值,状态价值与状态信息具有对应关系;
本实施例中,模型训练装置采用基于强化学习的玩家评判((Actor-Critic,AC)算法框架进行训练,AC算法框架包括Actor模型以及Critic模型,可以理解的是,本申请中的状态预测模型即为Actor模型,价值评判模型即为Critic模型。模型训练装置将状态信息集合输入至价值评判模型,进而可以得到状态价值集合,即每个状态信息对应一个状态价值。
其中,AC算法框架是一种集成了值函数估计算法和策略搜索算法的框架,本申请所采用的AC算法包含但不仅限于A3C算法、深层确定性政策梯度(Deep DeterministicPolicy Gradient,DDPG)算法以及近端策略优化(Proximal Policy Optimization,PPO)算法,PPO算法是一种新型的策略优化算法,PPO算法的收敛性和稳定性上更优于传统方法。
为了便于理解,请参阅图12,图12为本申请实施例中基于强化学习的一个模型训练流程示意图,如图所示,强化学习是在一个目标下由智能体(agent)自身与环境(environment)的交互中进行学习,智能体是一个嵌入到环境中的系统,能够通过采取行动来改变状态。环境是一个外部系统,智能体处于这个系统中,能够感知到这个系统并且能够基于感知到的状态做出一定的行动。假设以角色到达某个地点为目标,是否接近或完成目标可以量化为奖励(reward)信息,奖励信息是一个标量,是指环境对当前动作(action)信息或者状态(state)信息的一个奖励,取值范围可以根据实际情况进行设置。其中,状态信息是指当前环境在一个时刻的状态信息,动作信息是指主体做出的行为。通常情况下,基于强化学习的一个模型训练包括如下步骤:
首先在当前时刻(即t时刻)下,智能体输入t时刻的状态信息St后,输出动作信息At。然后执行动作信息At与环境进行交互,根据交互的情况,由环境反馈奖励信息Rt和下一个时刻(即t+1时刻)下智能体的状态信息St+1。智能体再根据奖励调整策略,输出下一个时刻的动作信息At+1,如此循环,不断调整策略(policy)即可训练出完成目标的策略。策略就是一个从当前环境状态到行为的映射,常用π表示,本申请中,策略可以是指行走策略或奔跑策略等,即在某个策略下,得到环境状态后,可以获取相应的行为信息。而模型的训练就是为了获得最大累计奖励的策略。
204、基于状态信息集合,通过待训练状态预测模型获取动作信息集合,其中,动作信息集合包括至少一个动作信息,动作信息与状态信息具有对应关系;
本实施例中,模型训练装置结合步骤203和步骤204,分别通过Critic模型(即价值评判模型)获取状态价值,以及通过Actor模型(即待训练状态预测模型)获取动作信息。类似地,每个时刻对应一个动作信息和一个状态信息。
为了便于介绍,请参阅图13,图13为本申请实施例中使用玩家评判算法框架训练模型的一个实施例示意图,如图所示,AC算法框架包括Actor模型(即待训练状态预测模型)以及Critic模型(即价值评判模型),其中,Actor模型训练的是当前策略,输出动作信息。而Critic模型用于指导Actor模型的学习,训练的时候需要对Actor模型和Critic模型均进行训练,实际应用的时候仅使用Actor模型即可。Critic模型学习的是价值函数(valuefunction),输出当前时刻的状态价值V(s)。奖励信息定义的是立即收益,而价值函数定义的是长期收益,价值函数可以看作是累计的奖励,常用V来表示。
在AC算法框架中,由Critic模型输出的状态价值V(s)来衡量Actor模型输出动作信息的好坏,即执行完当前的动作信息之后,状态信息变化为s,状态价值V(s)评估当前状态的好坏,间接衡量动作信息的好坏,可以理解的是,状态价值V(s)越大表示状态越好。Critic模型输出的状态价值V(s)的学习标准是由环境反馈的一系列奖励信息计算而来的,即得到多个时刻的奖励信息之后,可以通过时间差分学习(temporal-differencelearning)估计出当前状态价值V(s)。
其中,时间差分学习是强化学习中的一个中心思想,类似蒙特卡洛方法,时间差分学习能够直接从经验中学习而不需要对于环境的完整知识。类似动态规划方法,时间差分学习能够在现有的估计结果上进行提升而不需要等待整个事件结束。
205、根据状态价值集合以及动作信息集合,对待训练状态预测模型进行训练,得到状态预测模型。
本实施例中,模型训练装置根据Actor模型(即待训练状态预测模型)输出的动作信息,以及Critic模型(即价值评判模型)输出的状态价值,对该Actor模型进行训练。由此Actor模型和Critic模型都有各自的学习标准,因此可以根据损失函数计算误差和梯度,并对Actor模型和Critic模型进行训练,最终将训练得到的Actor模型作为状态预测模型。
在实际训练中可以采用PPO算法,为了便于理解,请参阅图14,图14为本申请实施例中近端策略优化框架的一个实施例示意图,如图所示,采用PPO算法可以将Actor模型更新的部分进行优化。Actor模型输入的是当前时刻的状态信息,然后输出下一个时刻的动作信息,即该Actor模型用于提供策略。Critic模型输入的也是当前时刻的状态信息,然后输出下一时刻的价值信息,即该Critic模型用于提供价值函数。
本申请实施例中,提供了一种模型训练的方法,获取片段集合,其中,片段集合包括至少一个片段,先根据所述片段集合获取状态信息集合,然后基于状态信息集合,通过价值评判模型获取状态价值集合,基于状态信息集合,通过待训练状态预测模型获取动作信息集合,最后根据状态价值集合以及动作信息集合,对待训练状态预测模型进行训练,得到状态预测模型。通过上述方式,能够利用强化学习得到状态预测模型,且强调该状态预测模型是如何基于环境而行动的,以取得最大化的收益,并且以制作好的动画片段进行训练,最终使得状态预测模型输出角色关节的动作信息,使角色做基于物理引擎的实时动画,达到更佳的效果。
可选地,在上述图11对应的各个实施例的基础上,本申请实施例提供的模型训练的方法第一个可选实施例中,基于状态信息集合,通过待训练状态预测模型获取动作信息集合之后,还可以包括:
从状态信息集合中获取目标时刻所对应的状态信息;
基于目标时刻所对应的状态信息,控制第一角色执行第一动作,以得到第一模拟信息,其中,第一角色不具有物理属性;
基于目标时刻所对应的状态信息,控制第二角色执行第二动作,以得到第二模拟信息,其中,第二角色具有物理属性;
根据第一模拟信息以及第二模拟信息确定目标时刻所对应的奖励信息;
基于状态信息集合,通过价值评判模型获取状态价值集合,可以包括:
基于目标时刻所对应的状态信息以及目标时刻所对应的奖励信息,通过价值评判模型获取目标时刻所对应的状态价值。
本实施例中,介绍了一种利用AC算法框架训练得到状态预测模型的方法。在模型训练装置得到状态信息集合之后,可以从中选择某一个时刻(例如当前时刻)的状态信息,假设该时刻为目标时刻,即获取目标时刻所对应的状态信息。在模型训练的过程中,物理引擎中有两个角色,分别为第一角色和第二角色,其中,第一角色不具有物理属性,即为运动学角色,第二角色具有物理属性,即为模拟角色。采用目标时刻所对应的状态信息,分别对第一角色和第二角色进行控制,从而得到第一模拟信息和第二模拟信息,基于第一模拟信息和第二模拟信息的差别,得到目标时刻所对应的奖励信息,由此生成相应的状态价值。类似地,对所有待训练的片段均执行上述操作,从而得到每个片段对应的状态价值。此处以一个片段在目标时刻下生成的状态价值为例进行介绍,对于其他片段以及其他时刻的状态价值生成过程不再赘述。
Critic模型(即价值评判模型)输出的状态价值V(s)的学习标准是由环境反馈的一系列奖励信息计算而来的。得到多个时刻的奖励信息后,通过时间差分学习方法可估计出目标时刻的状态价值,状态价值用于指导Critic模型学习。下面将介绍如何计算目标时刻所对应的奖励信息。
为了便于介绍,请参阅图15,图15为本申请实施例中运动学角色与模拟角色之间的一个对比示意图,如图所示,在物理引擎中有两个角色,分别为运动学角色(即第一角色)和模拟角色(即第二角色),运动学角色不具有物理属性,仅用于执行动作,通过运动学的方法使其关节达到动画给定的模拟信息(包括姿态信息和速度信息)即可。同时,另一个具有物理属性的模拟角色利用模型输出的模拟信息(包括姿态信息和速度信息)计算出每一个关节的力矩,在物理引擎里进行动作模仿,由物理引擎执行每一个动作后模拟环境的情况,产生真实效果。Unity能够模拟客户端,主要负责场景的构建、物理模拟、角色控制以及一些运动学和动力学算法的实现,Unity是一款跨平台游戏引擎,Unity还是被广泛用于建筑可视化以及实时三维动画等类型互动内容的综合型创作工具。
需要说明的是,模拟信息包括姿态信息和速度信息,其中,姿态信息包括位置信息和旋转信息,速度信息包括线速度信息以及角速度信息。为了便于理解,请参阅图16,图16为本申请实施例中基于运动学角色与模拟角色生成奖励信息的一个示意图,如图所示,在每个时刻下,奖励信息的计算即衡量运动学角色与模拟角色当前模拟信息之间的差别,差别越小,奖励越大,最终将模型信息中各个信息分量的奖励加权求和,得到奖励信息。
具体地,以计算姿态信息分量的奖励为例,采用如下方式进行计算:
Figure BDA0002281442810000201
其中,rewardpose表示姿态信息分量的奖励,scalepose表示姿态系数,q1j表示运动学角色(即第一角色)第j个关节的姿态信息,q2j表示模拟角色(即第二角色)第j个关节的姿态信息。
以计算线速度信息分量的奖励为例,采用如下方式进行计算:
Figure BDA0002281442810000202
其中,rewardvel表示线速度信息分量的奖励,scalevel表示空间速度系数,v1j表示运动学角色(即第一角色)第j个关节的线速度信息,v2j表示模拟角色(即第二角色)第j个关节的线速度信息。
以计算角速度信息分量的奖励为例,采用如下方式进行计算:
Figure BDA0002281442810000203
其中,rewardangVel表示角速度信息分量的奖励,scaleangVel表示角速度信息系数,w1j表示运动学角色(即第一角色)第j个关节的角速度信息,w2j表示模拟角色(即第二角色)第j个关节的角速度信息。
奖励信息根据姿态模仿的好坏给出奖励,激励角色姿态与参考动作的姿态保持一致,两者越接近,则奖励越高,反之越低。上述公式涉及运动学上的相似度,在实际应用中,还可以加入模仿奖励信息rt I,奖励信息rt I主要包括五个部分,分别为姿态奖励rt p、速度奖励rt v、末端关节姿态奖励rt e、根关节姿态奖励rt r以及质心姿态奖励rt c。其中,与运动学角色相关的信息携带标记“*”,以姿态信息分量为例,请参阅如下公式:
rt I=wprt p+wvrt v+wert e+wrrt r+wcrt c
其中,(wp,wv,we,wr,wc)=(0.5,0.05,0.15,0.2,0.1),在实际情况下,wp、wv、we、wr和wc还可以设置为其他值。rt p描述姿态的相似度,以各个关节位置信息、旋转信息与目标值之间的差异来表示,可以采用如下公式计算:
Figure BDA0002281442810000204
其中,rt p表示姿态奖励,
Figure BDA0002281442810000205
表示运动学角色(即第一角色)第j个关节的姿态信息,qj表示模拟角色(即第二角色)第j个关节的姿态信息。
rt v描述速度的相似度,以各个关节的线速度与目标值之间的差异来表示,可以采用如下公式计算:
Figure BDA0002281442810000206
其中,rt v表示速度奖励,
Figure BDA0002281442810000207
表示运动学角色(即第一角色)第j个关节的速度信息,vj表示模拟角色(即第二角色)第j个关节的速度信息。
rt e描述末端关节姿态的相似度,以手和足关节位置之间的差异来表示,可以采用如下公式计算:
Figure BDA0002281442810000211
其中,rt e表示末端关节姿态奖励,
Figure BDA0002281442810000212
表示运动学角色(即第一角色)第j个关节的关节位置,
Figure BDA0002281442810000213
表示模拟角色(即第二角色)第j个关节的关节位置。
rt r描述根关节的相似度,可以采用如下公式计算:
Figure BDA0002281442810000214
其中,rt r表示根关节姿态奖励,
Figure BDA0002281442810000215
表示运动学角色(即第一角色)根关节的关节位置,
Figure BDA0002281442810000216
表示模拟角色(即第二角色)根关节的关节位置。
rt c描述根质心速度相似度,可以采用如下公式计算:
Figure BDA0002281442810000217
其中,rt r表示质心姿态奖励,
Figure BDA0002281442810000218
表示运动学角色(即第一角色)根关节的质心速度,
Figure BDA0002281442810000219
表示模拟角色(即第二角色)根关节的质心速度。
需要说明的是,线速度信息分量和角速度信息分量的模仿奖励信息计算方式,与姿态信息分量的模仿奖励信息的计算方式类似,此次不做赘述。
其次,本申请实施例中,提供了一种利用AC算法框架训练得到状态预测模型的方法,即从状态信息集合中获取目标时刻所对应的状态信息,基于目标时刻所对应的状态信息,控制第一角色执行第一动作,以得到第一模拟信息,且基于目标时刻所对应的状态信息,控制第二角色执行第二动作,以得到第二模拟信息,根据第一模拟信息以及第二模拟信息确定目标时刻所对应的奖励信息,最后利用目标时刻所对应的状态信息以及目标时刻所对应的奖励信息,通过价值评判模型获取目标时刻所对应的状态价值。通过上述方式,利用奖励机制指导价值评判模型的学习,从而能够基于价值评判模型训练得到状态预测模型,由此提升方案的可行性和可操作性。
可选地,在上述图11对应的各个实施例的基础上,本申请实施例提供的模型训练的方法第二个可选实施例中,获取片段集合之后,还可以包括:
根据片段集合获取第一图像帧以及第二图像帧,其中,第一图像帧对应于第一动作标识,第二图像帧对应于第二动作标识,第一动作标识与第二动作标识用于标识不同的动作;
根据第一图像帧所对应的第一动作标识,生成第一向量;
根据第二图像帧所对应的第二动作标识,生成第二向量;
根据状态价值集合以及动作信息集合,对待训练状态预测模型进行训练,得到状态预测模型,包括:
根据第一向量、第二向量、状态价值集合以及动作信息集合,对待训练状态预测模型进行训练,得到状态预测模型。
本实施例中,介绍了一种训练多种动作融合模型的方法。基于不同的片段需要先从中获取第一图像帧以及第二图像帧,这里的第一图像帧和第二图像帧分别对应不同的动作,然后基于第一图像帧生成第一向量,并且基于第二图像帧生成第二向量,结合第一向量和第二向量,以及通过AC算法框架输出的状态价值和动作信息,对待训练状态预测模型进行训练,得到状态预测模型。
具体地,为了便于介绍,请参阅图17,图17为本申请实施例中对角色进行动作融合的一个实施例示意图,如图所示,以行走和奔跑两个动作为例介绍动作融合的过程,若需要扩展到更多动作(比如跳跃、攻击以及蹲下等动作),原理类似,故此处不进行赘述。动作融合主要解决以下两个问题,一个为使动作过渡自然,另一个为使角色动作切换受控。
为了使动作过渡自然,下面将以一个示例进行介绍,请继续参阅图17,若要实现从动作a(motion_a)到动作b(motion_b)的自然过渡,起始姿态应为motion_a中的某一姿态,终止姿态应为motion_b中的某一姿态,由此,从motion_a所对应的片段中抽取第一图像帧作为起始动作,从motion_b所对应的片段中抽取第二图像帧作为终止动作,对两个图像帧直接进行插值过渡。由于一开始难以确定抽取哪两帧,故对两个片段所有图像帧进行两两球面线性插值(Spherical linear interpolation,Slerp),球面线性插值是四元数的一种线性插值运算,主要用于在两个表示旋转的四元数之间平滑差值。若抽取的两个图像帧合适,则动作可能自然,可以理解的是,插值结果也可能出现细微的僵硬或不自然,然而在本申请中,插值的片段只用于对运动学角色(即第一角色)执行动作,不影响模拟角色(即第二角色)对动作的模仿,因此,只可能对奖励信息的计算产生一些细微影响,但在物理引擎里的模拟角色(即第二角色)不会学习僵硬或不符合物理规律的动作。
为了使角色动作切换受控,在训练过程中不仅仅采用一个片段,也可以采用多个不同的片段,通过插值得到从行走到奔跑以及从奔跑到行走两个相对自然的过渡片段,从行走到奔跑需要插值过渡到奔跑的姿势,从奔跑到行走需要插值过渡到行走的姿势,在运动学角色上连续播放行走、从行走到奔跑、奔跑以及从奔跑到行走的片段,使得片段有连续加速以及连续减速的过程。在动作执行可自然过渡的适当时机,切换运动学角色的动作即可令模拟角色模仿整个动作过渡,也学会行走、从行走到奔跑、奔跑以及从奔跑到行走的整个过程。同时,在状态预测模型输入的状态信息后拼接一个one-hot的目标向量用于指示当前动作标识。以上述四个动作片段为例,动作标识为1表示行走,动作标识为2表示从行走到奔跑,动作标识为3表示奔跑,动作标识为4表示从奔跑到行走,于是向量长度为4。若运动学角色正在执行走这个动作,该向量为[1,0,0,0],若执行从行走到奔跑这个动作,则该向量为[0,1,0,0]。在模型运行的恰当时刻,用户切换目标向量,模拟角色可进行自然的动作切换,即完成交互。
由于两个片段插值后片段数量以平方量级增长,因此,在选择片段中的图像帧时,需要对大量片段进行过滤,筛选出动作自然的插值片段。主要有脚本自动播放和人工检查两种方式,基于如下的筛选原则可大大减少待筛选工作量。
原则一为基于动作执行位置合理性筛选片段,以由行走到奔跑的情况为例,角色的动作是由远及近的,因此,在两个插值片段的时间序列上,角色的位置都是由远及近的,则可过滤到大量由近及远的插值结果,由此可确定一小片合理筛选区域。
原则二为基于-动作的过渡合理性筛选片段,以由行走到奔跑的情况为例,角色可能走出左腿,然后以跑步的动作抬起右腿。在两个插值片段的时间序列上,角色左右腿的顺序都有明显的区域,则可过滤掉一些同时同腿的插值结果。相邻帧相似的情况下,可间隔几帧进行抽查,确定相对合理结果,再进行细粒度的查阅。
更具体地,假设需要训练一个加速的过程,即从行走到奔跑的动作,最终目的是让角色在动作切换指令下进行加速。首先需要先插值得到合适的过渡动作,得到第一图像帧(假设为行走片段的第3帧)以及第二图像帧(假设为奔跑片段的第8帧),即第一图像帧和第二图像帧之间可以自然过渡,于是将这两帧作为动画的首尾,将中间帧插值出来。训练时可以先输入行走的片段,在时间运行到第2帧的最后时刻之前,都采用行走的动画作为参考动作,即运动学角色的动作,并且此过程中的目标向量不变,即输入[1,0,0,0]。快到第3帧时将参考动作切换为从行走到奔跑。这样模拟角色所参考的动作是自然过渡的,不会突然出现断层(即从行走的第3帧能自然连接到从行走到奔跑的第1帧)。继续训练可以让模拟角色学会从行走到奔跑的动作。此过程中,目标向量不变,且为[0,1,0,0]。学到从行走到奔跑的最后一帧时(此时参考动作的姿态是奔跑片段的第8帧),再将参考动作切换为奔跑,从奔跑的第8帧开始,目标向量为[0,0,1,0]。
再次,本申请实施例中,提供了一种训练多种动作融合模型的方法,利用片段可训练得到模仿该动画动作的状态预测模型,在状态预测模型的基础上利用多个独立的动作对状态预测模型进行进一步训练,从而使得模型能够对多动作融合。传统的冻结过渡的动作不自然,例如,让一个走路的人物加速奔跑,此时需先停下走路动作再起跑。而传统的平滑过渡需要进行额外融合和人工修改,例如,若动画师已制作出走、跑、跳和站立这四种动作,则需要再额外制作16种动作,即从走到跑、从跑到走、从走到站、从站到走,从站到跑等动作,导致工作量大,而且如果融合结果存在过渡不自然,则需精细修改。本申请利用训练好的状态预测模型就能够直接模拟出效果较好的动作,既节省了人力物力,又提升了动画效果。
下面对本申请中的角色控制装置进行详细描述,请参阅图18,图18为本申请实施例中角色控制装置一个实施例示意图,角色控制装置30包括:
获取模块301,用于获取目标角色在第一时刻的第一状态信息,其中,所述目标角色包括M个关节,所述第一状态信息用于表示所述M个关节的信息,所述M为大于1的整数;
所述获取模块301,还用于基于所述第一状态信息,通过状态预测模型获取所述目标角色在第二时刻的第一动作信息,其中,所述第一动作信息用于表示所述(M-1)个关节的信息,所述第二时刻为所述第一时刻的下一个时刻;
所述获取模块301,还用于根据所述第一动作信息获取第一力矩,其中,所述第一力矩包括所述(M-1)个关节中每个关节在所述第二时刻下的力矩;
所述控制模块302,用于基于所述获取模块301获取的所述第一力矩,通过物理引擎控制所述目标角色执行第一动作。
可选地,在上述图18的实施例的基础上,本申请实施例提供的角色控制装置30的另一实施例中,
所述获取模块301,具体用于获取所述M个关节中每个关节的姿态信息以及速度信息,其中,所述姿态信息包括所述第一时刻的位置信息以及所述第一时刻的旋转信息,所述速度信息包括所述第一时刻的线速度信息以及所述第一时刻的角速度信息;
获取所述第一时刻的相位信息;
根据所述姿态信息、所述速度信息以及所述相位信息,获取所述第一状态信息。
可选地,在上述图18的实施例的基础上,本申请实施例提供的角色控制装置30的另一实施例中,
所述获取模块301,具体用于基于所述第一状态信息,通过所述状态预测模型获取所述目标角色的所述(M-1)个关节在所述第二时刻的旋转信息,其中,所述(M-1)个关节与根关节用于组成所述M个关节;
根据所述(M-1)个关节在所述第二时刻的旋转信息,获取所述第一动作信息。
可选地,在上述图18的实施例的基础上,本申请实施例提供的角色控制装置30的另一实施例中,
所述获取模块301,具体用于基于比例微分PD控制,根据所述目标角色在所述第一时刻的旋转信息以及在所述第二时刻的旋转信息,确定所述第一力矩。
可选地,在上述图18的实施例的基础上,本申请实施例提供的角色控制装置30的另一实施例中,
所述获取模块301,具体用于获取所述目标角色的所述(M-1)个关节在所述第一时刻的第n次旋转信息以及在所述第一时刻的第n次角速度信息,其中,所述n表示所述PD控制的调用次数,所述n为大于或等于1的整数;
根据所述目标角色的所述(M-1)个关节在所述第二时刻的第(n+1)次旋转信息,计算得到所述(M-1)个关节在所述第二时刻的第(n+1)次角速度信息;
获取所述目标角色的所述(M-1)个关节在所述第一时刻的第n次角度加速度;
根据所述控制调用次数确定周期时间;
根据所述第一时刻的第n次旋转信息、所述第一时刻的第n次角速度信息、所述第二时刻的第(n+1)次旋转信息、所述第二时刻的第(n+1)次角速度信息、所述第一时刻的第n次角度加速度以及所述周期时间,确定所述第一力矩。
可选地,在上述图18的实施例的基础上,本申请实施例提供的角色控制装置30的另一实施例中,
所述获取模块301,具体用于采用如下方式计算所述第一力矩:
Figure BDA0002281442810000241
其中,所述τn表示所述第n次的所述第一力矩,所述kp表示比例增益,所述kd表示微分增益,所述qn表示所述第一时刻的第n次旋转信息,所述
Figure BDA0002281442810000242
表示所述第一时刻的第n次角速度信息,所述δt表示所述周期时间,所述
Figure BDA0002281442810000243
表示所述第二时刻的第(n+1)次旋转信息,所述
Figure BDA0002281442810000244
表示所述第一时刻的第n次角度加速度,所述
Figure BDA0002281442810000245
表示所述第二时刻的第(n+1)次角速度信息。
可选地,在上述图18的实施例的基础上,请参阅图19,本申请实施例提供的角色控制装置30的另一实施例中,所述角色控制装置30还包括接收模块303以及确定模块304;
所述接收模块303,用于在所述控制模块302基于所述第一力矩,通过物理引擎控制所述目标角色执行第一动作之后,接收动作切换指令,其中,所述动作切换指令携带目标动作标识;
所述确定模块304,用于响应于所述接收模块303接收的所述动作切换指令,根据所述目标动作标识确定目标向量;
所述获取模块301,还用于获取所述目标角色在第三时刻的第二状态信息;
所述获取模块301,还用于基于所述确定模块304确定的所述第三时刻的第一状态信息以及所述目标向量,通过所述状态预测模型获取所述目标角色在第四时刻的第二动作信息,其中,所述第四时刻为所述第三时刻的下一个时刻;
所述获取模块301,还用于根据所第二动作信息获取第二力矩,其中,所述第二力矩包括所述M个关节中每个关节在所述第四时刻下的力矩;
所述控制模块302,还用于基于所述获取模块301获取的所述第二力矩,通过所述物理引擎控制所述目标角色执行第二动作。
下面对本申请中的模型训练装置进行详细描述,请参阅图20,图20为本申请实施例中模型训练装置一个实施例示意图,模型训练装置40包括:
获取模块401,用于获取片段集合,其中,所述片段集合包括至少一个片段;
所述获取模块401,还用于根据所述片段集合获取状态信息集合,其中,所述状态信息集合包括至少一个状态信息;
所述获取模块401,还用于基于状态信息集合,通过价值评判模型获取状态价值集合,其中,所述状态价值集合包括至少一个状态价值,所述状态价值与所述状态信息具有对应关系;
所述获取模块401,还用于基于状态信息集合,通过待训练状态预测模型获取动作信息集合,其中,所述动作信息集合包括至少一个动作信息,所述动作信息与所述状态信息具有对应关系;
训练模块402,用于根据所述获取模块401获取的所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到状态预测模型。
可选地,在上述图20的实施例的基础上,请参阅图21,本申请实施例提供的模型训练装置40的另一实施例中,所述模型训练装置40还包括确定模块403;
所述获取模块401,还用于基于状态信息集合,通过待训练状态预测模型获取动作信息集合之后,从所述状态信息集合中获取目标时刻所对应的状态信息;
所述获取模块401,还用于基于所述目标时刻所对应的状态信息,控制第一角色执行第一动作,以得到第一模拟信息,其中,所述第一角色不具有物理属性;
所述获取模块401,还用于所述目标时刻所对应的状态信息,控制第二角色执行第二动作,以得到第二模拟信息,其中,所述第二角色具有物理属性;
所述确定模块403,用于根据所述获取模块获取的所述第一模拟信息以及所述第二模拟信息确定目标时刻所对应的奖励信息;
所述获取模块401,具体用于基于目标时刻所对应的状态信息以及所述确定模块403确定的所述目标时刻所对应的奖励信息,通过所述价值评判模型获取目标时刻所对应的状态价值。
可选地,在上述图20或图21的实施例的基础上,请参阅图22,本申请实施例提供的模型训练装置40的另一实施例中,所述模型训练装置40还包括生成模块404;
所述获取模块401,还用于获取片段集合之后,根据所述片段集合获取第一图像帧以及第二图像帧,其中,所述第一图像帧对应于第一动作标识,所述第二图像帧对应于第二动作标识,所述第一动作标识与所述第二动作标识用于标识不同的动作;
所述生成模块404,用于根据所述获取模块401获取的所述第一图像帧所对应的所述第一动作标识,生成第一向量;
所述生成模块404,用于根据所述获取模块401获取的所述第二图像帧所对应的所述第二动作标识,生成第二向量;
所述训练模块402,具体用于根据所述第一向量、所述第二向量、所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到所述状态预测模型。
本申请实施例还提供了另一种角色控制装置,如图23所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、销售终端设备(Point of Sales,POS)、车载电脑等任意终端设备,以终端设备为手机为例:
图23示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图23,手机包括:射频(Radio Frequency,RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,WiFi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图23中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图23对手机的各个构成部件进行具体的介绍:
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图23中,触控面板531与显示面板541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一手机,或者将音频数据输出至存储器520以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图23示出了WiFi模块570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理单元;可选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
手机还包括给各个部件供电的电源590(比如电池),可选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该终端设备所包括的处理器580还具有以下功能:
获取目标角色在第一时刻的第一状态信息,其中,所述目标角色包括M个关节,所述第一状态信息用于表示所述M个关节的信息,所述M为大于1的整数;
基于所述第一状态信息,通过状态预测模型获取所述目标角色在第二时刻的第一动作信息,其中,所述第一动作信息用于表示所述(M-1)个关节的信息,所述第二时刻为所述第一时刻的下一个时刻;
根据所述第一动作信息获取第一力矩,其中,所述第一力矩包括所述(M-1)个关节中每个关节在所述第二时刻下的力矩;
基于所述第一力矩,通过物理引擎控制所述目标角色执行第一动作。
本申请实施例还提供了另一种模型训练装置,如图24所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。
图24是本发明实施例提供的一种服务器结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图24所示的服务器结构。
在本申请实施例中,该服务器所包括的CPU 622还具有以下功能:
获取片段集合,其中,所述片段集合包括至少一个片段;
根据所述片段集合获取状态信息集合,其中,所述状态信息集合包括至少一个状态信息;
基于状态信息集合,通过价值评判模型获取状态价值集合,其中,所述状态价值集合包括至少一个状态价值,所述状态价值与所述状态信息具有对应关系;
基于状态信息集合,通过待训练状态预测模型获取动作信息集合,其中,所述动作信息集合包括至少一个动作信息,所述动作信息与所述状态信息具有对应关系;
根据所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到状态预测模型。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-oMly memory,ROM)、随机存取存储器(raMdom access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (13)

1.一种角色控制的方法,其特征在于,包括:
获取目标角色在第一时刻的第一状态信息,其中,所述目标角色包括M个关节,所述第一状态信息用于表示所述M个关节的信息,所述M为大于1的整数;
基于所述第一状态信息,通过状态预测模型获取所述目标角色的(M-1)个关节在第二时刻的旋转信息,根据所述(M-1)个关节在所述第二时刻的旋转信息,获取所述目标角色在第二时刻的第一动作信息,其中,所述第一动作信息用于表示(M-1)个关节的信息,其中,所述(M-1)个关节与根关节用于组成所述M个关节,所述第二时刻为所述第一时刻的下一个时刻;
根据所述第一动作信息获取第一力矩,其中,所述第一力矩包括所述(M-1)个关节中每个关节在所述第二时刻下的力矩;
基于所述第一力矩,通过物理引擎控制所述目标角色执行第一动作。
2.根据权利要求1所述的方法,其特征在于,所述获取目标角色在第一时刻的第一状态信息,包括:
获取所述M个关节中每个关节的姿态信息以及速度信息,其中,所述姿态信息包括所述第一时刻的位置信息以及所述第一时刻的旋转信息,所述速度信息包括所述第一时刻的线速度信息以及所述第一时刻的角速度信息;
获取所述第一时刻的相位信息;
根据所述姿态信息、所述速度信息以及所述相位信息,获取所述第一状态信息。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述根据所述第一动作信息获取第一力矩,包括:
基于比例微分PD控制,根据所述目标角色在所述第一时刻的旋转信息以及在所述第二时刻的旋转信息,确定所述第一力矩。
4.根据权利要求3所述的方法,其特征在于,所述基于比例微分PD控制,根据所述目标角色在所述第一时刻的旋转信息以及在所述第二时刻的旋转信息,确定所述第一力矩,包括:
获取所述目标角色的所述(M-1)个关节在所述第一时刻的第n次旋转信息以及在所述第一时刻的第n次角速度信息,其中,所述n表示所述PD控制的调用次数,所述n为大于或等于1的整数;
根据所述目标角色的所述(M-1)个关节在所述第二时刻的第(n+1)次旋转信息,计算得到所述(M-1)个关节在所述第二时刻的第(n+1)次角速度信息;
获取所述目标角色的所述(M-1)个关节在所述第一时刻的第n次角度加速度;
根据所述控制调用次数确定周期时间;
根据所述第一时刻的第n次旋转信息、所述第一时刻的第n次角速度信息、所述第二时刻的第(n+1)次旋转信息、所述第二时刻的第(n+1)次角速度信息、所述第一时刻的第n次角度加速度以及所述周期时间,确定所述第一力矩。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一力矩,通过物理引擎控制所述目标角色执行第一动作之后,所述方法还包括:
接收动作切换指令,其中,所述动作切换指令携带目标动作标识;
响应于所述动作切换指令,根据所述目标动作标识确定目标向量;
获取所述目标角色在第三时刻的第二状态信息;
基于所述第三时刻的第二状态信息以及所述目标向量,通过所述状态预测模型获取所述目标角色在第四时刻的第二动作信息,其中,所述第四时刻为所述第三时刻的下一个时刻;
根据所第二动作信息获取第二力矩,其中,所述第二力矩包括所述M个关节中每个关节在所述第四时刻下的力矩;
基于所述第二力矩,通过所述物理引擎控制所述目标角色执行第二动作。
6.一种模型训练的方法,其特征在于,包括:
获取片段集合,其中,所述片段集合包括至少一个片段;
根据所述片段集合获取状态信息集合,其中,所述状态信息集合包括至少一个状态信息;
基于状态信息集合,通过价值评判模型获取状态价值集合,其中,所述状态价值集合包括至少一个状态价值,所述状态价值与所述状态信息具有对应关系;
基于状态信息集合,通过待训练状态预测模型获取动作信息集合,其中,所述动作信息集合包括至少一个动作信息,所述动作信息与所述状态信息具有对应关系;
根据所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到状态预测模型。
7.根据权利要求6所述的方法,其特征在于,所述基于状态信息集合,通过待训练状态预测模型获取动作信息集合之后,所述方法还包括:
从所述状态信息集合中获取目标时刻所对应的状态信息;
基于所述目标时刻所对应的状态信息,控制第一角色执行第一动作,以得到第一模拟信息,其中,所述第一角色不具有物理属性;
基于所述目标时刻所对应的状态信息,控制第二角色执行第二动作,以得到第二模拟信息,其中,所述第二角色具有物理属性;
根据所述第一模拟信息以及所述第二模拟信息确定目标时刻所对应的奖励信息;
所述基于状态信息集合,通过价值评判模型获取状态价值集合,包括:
基于目标时刻所对应的状态信息以及所述目标时刻所对应的奖励信息,通过所述价值评判模型获取目标时刻所对应的状态价值。
8.根据权利要求6或7所述的方法,其特征在于,所述获取片段集合之后,所述方法还包括:
根据所述片段集合获取第一图像帧以及第二图像帧,其中,所述第一图像帧对应于第一动作标识,所述第二图像帧对应于第二动作标识,所述第一动作标识与所述第二动作标识用于标识不同的动作;
根据所述第一图像帧所对应的所述第一动作标识,生成第一向量;
根据所述第二图像帧所对应的所述第二动作标识,生成第二向量;
所述根据所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到状态预测模型,包括:
根据所述第一向量、所述第二向量、所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到所述状态预测模型。
9.一种角色控制装置,其特征在于,包括:
获取模块,用于获取目标角色在第一时刻的第一状态信息,其中,所述目标角色包括M个关节,所述第一状态信息用于表示所述M个关节的信息,所述M为大于1的整数;
所述获取模块,还用于基于所述第一状态信息,通过状态预测模型获取所述目标角色的(M-1)个关节在第二时刻的旋转信息,根据所述(M-1)个关节在所述第二时刻的旋转信息,获取所述目标角色在第二时刻的第一动作信息,其中,所述第一动作信息用于表示(M-1)个关节的信息,其中,所述(M-1)个关节与根关节用于组成所述M个关节,所述第二时刻为所述第一时刻的下一个时刻;
所述获取模块,还用于根据所述第一动作信息获取第一力矩,其中,所述第一力矩包括所述(M-1)个关节中每个关节在所述第二时刻下的力矩;
控制模块,用于基于所述获取模块获取的所述第一力矩,通过物理引擎控制所述目标角色执行第一动作。
10.一种模型训练装置,其特征在于,包括:
获取模块,用于获取片段集合,其中,所述片段集合包括至少一个片段;
所述获取模块,还用于根据所述片段集合获取状态信息集合,其中,所述状态信息集合包括至少一个状态信息;
所述获取模块,还用于基于状态信息集合,通过价值评判模型获取状态价值集合,其中,所述状态价值集合包括至少一个状态价值,所述状态价值与所述状态信息具有对应关系;
所述获取模块,还用于基于状态信息集合,通过待训练状态预测模型获取动作信息集合,其中,所述动作信息集合包括至少一个动作信息,所述动作信息与所述状态信息具有对应关系;
训练模块,用于根据所述获取模块获取的所述状态价值集合以及所述动作信息集合,对所述待训练状态预测模型进行训练,得到状态预测模型。
11.一种终端设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括执行如上述权利要求1至5中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
12.一种服务器,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括执行如上述权利要求6至8中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
13.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至5中任一项所述的方法,或,执行如权利要求6至8中任一项所述的方法。
CN201911142931.4A 2019-11-20 2019-11-20 一种角色控制的方法、模型训练的方法以及相关装置 Active CN110930483B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911142931.4A CN110930483B (zh) 2019-11-20 2019-11-20 一种角色控制的方法、模型训练的方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911142931.4A CN110930483B (zh) 2019-11-20 2019-11-20 一种角色控制的方法、模型训练的方法以及相关装置

Publications (2)

Publication Number Publication Date
CN110930483A CN110930483A (zh) 2020-03-27
CN110930483B true CN110930483B (zh) 2020-11-24

Family

ID=69851337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911142931.4A Active CN110930483B (zh) 2019-11-20 2019-11-20 一种角色控制的方法、模型训练的方法以及相关装置

Country Status (1)

Country Link
CN (1) CN110930483B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111583364A (zh) * 2020-05-07 2020-08-25 江苏原力数字科技股份有限公司 一种基于神经网络的群组动画生成方法
CN111580385A (zh) * 2020-05-11 2020-08-25 深圳阿米嘎嘎科技有限公司 基于深度强化学习的机器人行走控制方法、系统及介质
CN111504682B (zh) * 2020-05-15 2022-05-24 深圳国信泰富科技有限公司 一种机器人关节扭矩可行性检测方法及系统
CN111968204B (zh) * 2020-07-28 2024-03-22 完美世界(北京)软件科技发展有限公司 一种骨骼模型的运动展示方法和装置
CN112001989B (zh) * 2020-07-28 2022-08-05 完美世界(北京)软件科技发展有限公司 虚拟对象的控制方法及装置、存储介质、电子装置
CN112221149B (zh) * 2020-09-29 2022-07-19 中北大学 一种基于深度强化学习的炮兵连智能作战演练系统
CN112435316B (zh) * 2020-11-30 2023-05-12 上海米哈游天命科技有限公司 一种游戏中的防穿模方法、装置、电子设备及存储介质
CN112596611A (zh) * 2020-12-25 2021-04-02 南方电网深圳数字电网研究院有限公司 基于体感定位的虚拟现实角色同步控制方法和控制装置
CN113592986B (zh) * 2021-01-14 2023-05-23 腾讯科技(深圳)有限公司 基于神经网络的动作生成方法、装置及计算设备
CN113559500B (zh) * 2021-01-18 2023-07-21 腾讯科技(深圳)有限公司 动作数据的生成方法、装置、电子设备及存储介质
CN113318439B (zh) * 2021-06-17 2024-05-28 网易(杭州)网络有限公司 起步动画的处理方法、装置、处理器和电子装置
CN113391556B (zh) * 2021-08-12 2021-12-07 中国科学院自动化研究所 基于角色分配的群体分布式控制方法及装置
CN113952723A (zh) * 2021-10-29 2022-01-21 北京市商汤科技开发有限公司 一种游戏中的交互方法、装置、计算机设备及存储介质
WO2023168653A1 (zh) * 2022-03-10 2023-09-14 上海莉莉丝科技股份有限公司 用于虚拟环境的模型训练方法、介质、电子设备
CN115861500B (zh) * 2022-12-09 2023-08-18 上海哔哩哔哩科技有限公司 2d模型碰撞体生成方法及装置
CN117472190A (zh) * 2023-12-28 2024-01-30 北京天平地成信息技术服务有限公司 基于神经网络的vr物理引擎调配系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104867171A (zh) * 2015-05-05 2015-08-26 中国科学院自动化研究所 一种三维角色的过渡动画生成方法
CN106600668A (zh) * 2016-12-12 2017-04-26 中国科学院自动化研究所 一种与虚拟角色进行互动的动画生成方法、装置及电子设备
CN108762495A (zh) * 2018-05-18 2018-11-06 深圳大学 基于手臂动作捕捉的虚拟现实驱动方法及虚拟现实系统
CN110115840A (zh) * 2019-05-16 2019-08-13 腾讯科技(深圳)有限公司 虚拟场景中的物体移动控制方法、装置、终端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004047009A2 (en) * 2002-11-15 2004-06-03 Esc Entertainment, A California Corporation Method for digitally rendering skin or like materials
CN101840586B (zh) * 2010-04-02 2012-04-11 中国科学院计算技术研究所 虚拟人运动规划的方法及其系统
CN109543627B (zh) * 2018-11-27 2023-08-01 西安电子科技大学 一种判断驾驶行为类别的方法、装置、及计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104867171A (zh) * 2015-05-05 2015-08-26 中国科学院自动化研究所 一种三维角色的过渡动画生成方法
CN106600668A (zh) * 2016-12-12 2017-04-26 中国科学院自动化研究所 一种与虚拟角色进行互动的动画生成方法、装置及电子设备
CN108762495A (zh) * 2018-05-18 2018-11-06 深圳大学 基于手臂动作捕捉的虚拟现实驱动方法及虚拟现实系统
CN110115840A (zh) * 2019-05-16 2019-08-13 腾讯科技(深圳)有限公司 虚拟场景中的物体移动控制方法、装置、终端及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Correlative joint definition for motion analysis and animation;Pronost N,Sandholm A,Thalmann D;《 Computer Animation and Virtual Worlds》;20101215;第1758-1771页 *
虚拟运动生成与控制技术综述;李石磊,梁加红,吴冰,陈凌,胡志伟;《系统仿真学报》;20110915;第1-10页 *

Also Published As

Publication number Publication date
CN110930483A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
CN110930483B (zh) 一种角色控制的方法、模型训练的方法以及相关装置
CN111260762B (zh) 一种动画实现方法、装置、电子设备和存储介质
JP7407919B2 (ja) 動画処理方法、動画処理装置、コンピュータプログラム及び電子機器
KR20210123399A (ko) 인공 지능에 기초한 애니메이션 이미지 구동 방법, 및 관련 디바이스
CN111340211B (zh) 一种动作控制模型的训练方法、相关装置及存储介质
Lamberti et al. Virtual character animation based on affordable motion capture and reconfigurable tangible interfaces
JP4848515B2 (ja) アバター動作制御システム、そのプログラム及び方法
CN100557639C (zh) 基于关键帧和时空约束的三维虚拟人体运动生成方法
CN111028317B (zh) 虚拟对象的动画生成方法、装置、设备及存储介质
CN110517340B (zh) 一种基于人工智能的脸部模型确定方法和装置
CN103207667A (zh) 一种人机互动的控制方法及其运用
US20180144531A1 (en) Animating a virtual object in a virtual world
CN115222847A (zh) 一种基于神经网络的动画数据生成方法、装置及相关产品
CN106910233B (zh) 一种虚拟昆虫动画角色的运动仿真方法
CN116485953A (zh) 数据处理方法、装置、设备和可读存储介质
Dang et al. Imitation learning-based algorithm for drone cinematography system
Zeng et al. Motion capture and reconstruction based on depth information using Kinect
CN115617429A (zh) 一种数据处理方法及相关设备
Emering et al. Conferring human action recognition skills to life-like agents
CN114519779B (zh) 动作生成模型训练方法、装置、设备和存储介质
Wan et al. Interactive shadow play animation system
CN113559500B (zh) 动作数据的生成方法、装置、电子设备及存储介质
Guo et al. [Retracted] Scene Construction and Application of Panoramic Virtual Simulation in Interactive Dance Teaching Based on Artificial Intelligence Technology
Liang et al. A motion-based user interface for the control of virtual humans performing sports
Wu Multimodal Communication for Embodied Human-Robot Interaction with Natural Gestures

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021117

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant