CN116524076A - 动力学仿真姿态的控制方法、训练方法、装置及设备 - Google Patents

动力学仿真姿态的控制方法、训练方法、装置及设备 Download PDF

Info

Publication number
CN116524076A
CN116524076A CN202210067156.6A CN202210067156A CN116524076A CN 116524076 A CN116524076 A CN 116524076A CN 202210067156 A CN202210067156 A CN 202210067156A CN 116524076 A CN116524076 A CN 116524076A
Authority
CN
China
Prior art keywords
gesture
input vector
target
client
tag
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
Application number
CN202210067156.6A
Other languages
English (en)
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 CN202210067156.6A priority Critical patent/CN116524076A/zh
Publication of CN116524076A publication Critical patent/CN116524076A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本申请公开了一种动力学仿真姿态的控制方法及装置、一种策略网络的训练方法及装置、一种动力学仿真姿态的控制系统、介质、设备及程序产品。可应用于人物、动物、怪兽等所有骨骼体系的动力学模拟。该方法包括:在接收到客户端角色当前的角色信息和目标姿态后,对角色信息进行处理以得到输入向量,角色信息包括当前角色状态和当前动力学模拟时间;将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息;将动作控制信息发送至客户端,以使得客户端根据动作控制信息控制客户端角色展示相应的动力学仿真姿态。本申请的方法可使得游戏角色具有动力学模拟的动画效果,从而生成高质量的逼真动画。

Description

动力学仿真姿态的控制方法、训练方法、装置及设备
技术领域
本申请涉及计算机技术领域,具体涉及一种动力学仿真姿态的控制方法及装置、一种策略网络的训练方法及装置、一种动力学仿真姿态的控制系统、介质、设备及程序产品。
背景技术
在为虚拟角色实时生成动画时,往往通过在内存中读取一个动画素材库,再根据角色状态以及用户指令从素材库中实时匹配出最接近的动画进行播放。而这种方法所需的内存空间以及运算量会随着动画素材的增多而线性增长。另外,这类方法只考虑人物骨骼模型与环境的运动学关系,没有考虑动力学关系,而使得所生成的动画逼真程度欠佳,用户体验较差。
发明内容
本申请实施例提供一种动力学仿真姿态的控制方法及装置、一种策略网络的训练方法及装置、一种动力学仿真姿态的控制系统、介质、设备及程序产品。可实时地为游戏角色生成流畅、逼真、且与环境碰撞交互的高质量动画。
一方面,提供一种动力学仿真姿态的控制方法,所述方法包括:
在接收到客户端角色当前的角色信息和目标姿态后,对所述角色信息进行处理以得到输入向量,所述角色信息包括当前角色状态和当前动力学模拟时间;
将所述输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息;
将所述动作控制信息发送至所述客户端,以使得所述客户端根据所述动作控制信息控制所述客户端角色展示相应的动力学仿真姿态。
另一方面,提供一种策略网络的训练方法,所述方法包括:
在预设时间周期内接收模拟客户端发送的标签角色信息和标签姿态,对所述标签角色信息进行处理以得到标签输入向量,所述标签角色信息包括标签角色状态和标签动力学模拟时间;
将所述标签输入向量和所述标签姿态输入基础神经网络进行计算,以生成与所述目标姿态对应的预测转角;
根据所述预测转角生成预测控制信息,并将所述预测控制信息发送至所述模拟客户端,以使得所述模拟客户端根据所述预测控制信息生成相应的预测姿态;
根据所述预测姿态、所述标签姿态、所述标签输入向量、及所述生成的预测转角确定训练数据,并将所述训练数据存入数据库;
在所述数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据所述计算结果更新所述基础神经网络的网络参数;
在满足预设训练条件的情况下,将所述基础神经网络确定为训练好的策略网络。
另一方面,提供一种动力学仿真姿态的控制系统,所述控制系统包括客户端及服务器,所述服务器包括训练好的策略网络,所述控制系统包括:
在预设时间周期内,所述客户端将角色当前的角色信息和目标姿态打包并通过预设通信方式发送至所述服务器,所述角色信息包括当前角色状态和当前动力学模拟时间;
所述服务器对所述角色信息进行处理以得到输入向量,并将所述以得到输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息;及
将所述控制信息通过预设通信方式发送至所述客户端;
所述客户端根据所述控制信息控制所述客户端角色展示相应的动力学仿真姿态。
另一方面,提供一种动力学仿真姿态的控制装置,所述控制装置包括:
处理单元,用于在接收到客户端角色当前的角色信息和目标姿态后,对所述角色信息进行处理以得到输入向量,所述角色信息包括当前角色状态和当前动力学模拟时间;
计算单元,用于将所述输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息;
发送单元,用于将所述动作控制信息发送至所述客户端,以使得所述客户端根据所述动作控制信息控制所述客户端角色展示相应的动力学仿真姿态。
另一方面,提供一种策略网络的训练装置,所述训练装置包括:
发送单元,用于在预设时间周期内接收模拟客户端发送的标签角色信息和标签姿态,对所述标签角色信息进行处理以得到标签输入向量,所述标签角色信息包括标签角色状态和标签动力学模拟时间;
输入单元,用于将所述标签输入向量和所述标签姿态输入基础神经网络进行计算,以生成与所述目标姿态对应的预测转角;
生成单元,用于根据所述预测转角生成预测控制信息,并将所述预测控制信息发送至所述模拟客户端,以使得所述模拟客户端根据所述预测控制信息生成相应的预测姿态;
存储单元,用于根据所述预测姿态、所述标签姿态、所述标签输入向量、及所述生成的预测转角确定训练数据,并将所述训练数据存入数据库;
计算单元,用于在所述数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据所述计算结果更新所述基础神经网络的网络参数;
确定单元,用于在满足预设训练条件的情况下,将所述基础神经网络确定为训练好的策略网络。
另一方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序适于处理器进行加载,以执行如上任一实施例的方法中的步骤。
另一方面,提供一种计算机设备,计算机设备包括处理器和存储器,存储器中存储有计算机程序,处理器通过调用存储器中存储的计算机程序,用于执行如上任一实施例的方法中的步骤。
另一方面,提供一种计算机程序产品,包括计算机指令,计算机指令被处理器执行时实现如上任一实施例的方法中的步骤。
本申请通过在接收到客户端角色当前的角色信息和目标姿态后,对角色信息进行处理以得到输入向量,角色信息包括当前角色状态和当前动力学模拟时间;将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息;将动作控制信息发送至客户端,以使得客户端根据动作控制信息控制客户端角色展示相应的动力学仿真姿态。能够稳定地为动画角色应用场景如UE4中带有动力学仿真的角色生成动作控制命令,引导其完成既定的动作,生成高质量动画。将得到的控制命令输入动力学模拟器生成具有动力学模拟的动画效果,可实时地为游戏角色生成流畅、逼真、且与环境碰撞交互的高质量动画。同时,通过独立训练好的策略网络对客户端的输入向量进行计算处理,相对传统方法,可以较低的成本生成无限量、逼真、与环境碰撞交互的高质量动画。这不仅有效减轻了游戏开发工作,缩短开发流程,还可减小游戏占用的存储和内存。
附图说明
为了更清楚地说明本申请实施例中的技术方法,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的控制方法的示例图;
图2为本申请实施例提供的控制方法的另一示例图;
图3为本申请实施例提供的控制方法的流程示意图;
图4为本申请实施例提供的控制方法的示例图;
图5为本申请实施例提供的训练方法的流程示意图;
图6为本申请实施例提供的控制系统的系统结构图;
图7为本申请实施例提供的控制装置的结构示意图;
图8为本申请实施例提供的训练装置的结构示意图;
图9为本申请实施例提供的计算机设备的示意性结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方法进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语作如下解释:
人工智能(Artificial Intelligence,AI):是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
机器学习(Machine Learning,ML):是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
深度强化学习是机器学习的一个分支。深度强化学习的本质是一种以环境反馈作为输入的、适应环境的机器学习方法。它模仿了自然界中人类或动物学习的基本途径,通过与环境不断交互和试错的过程,利用评价性的反馈信号来优化所采取的行为决策。本申请通过深度强化学习的近端策略优化算法对策略网络进行训练。
区块链系统:可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议,在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
UE4:虚幻4引擎UE4是一款游戏开发引擎,相比其他引擎,UE4不仅高效、全能,还能直接预览开发效果,赋予了开发商更强的能力。UE4支持骨骼动画系统,支持每顶点可达4骨骼同时影响的效果以及复杂的骨骼结构。同时支持物理学碰撞,刚性物体碰撞系统可以让操作的玩家充分利用游戏里的物体碰撞,角色动画碰撞,复杂真实的交通工具和物体爆炸进行娱乐。所有的渲染物体和模型都可以进行动力学属性的设置,包括摩擦力。
Socket:套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。若HTTP是轿车,提供了封装或者显示数据的具体形式,Socket则是发动机,提供了网络通信的能力。
近些年来,为虚拟角色实时生成动画一直以来都是具有挑战性的任务,一类方法是在内存中读取一个动画素材库,再根据角色状态以及玩家指令从素材库中实时匹配出最接近的动画进行播放,然而这种方法所需的内存空间以及运算量会随着动画素材的增多而线性增长。
随着AI技术的发展,深度学习和神经网络技术的发展为此任务提供了一种新的解决思路,即数据驱动的动画生成技术。请参阅图1,首先由专业动作演员身穿带有特制传感器的服装,做出需要采集的动作,例如走、跑、跳等。由于演员身高、体型、关节数目等要素与虚拟世界中角色存在差异,需要将采集到的动作序列映射到虚拟人物中,映射后的动作序列即可用于模型训练,模型训练完成便可部署应用。请参阅图2,在实时动画生成的过程中,给定当前角色状态,包括角色关节位置和速度、目标轨迹的位置和方向、周围地形数据等,同时由玩家输入控制指令,深度学习模型会根据当前状态和玩家指令,预测出下一帧角色的状态,并实时更新游戏人物状态。
然而,这几类动画生成技术往往仅考虑人物骨骼模型与环境的运动学关系,没有考虑动力学关系。这就造成了所生成的动画逼真程度欠佳。且因没有开启动力学模拟,需要额外的手段来处理人物角色与环境物体之间的碰撞关系。
目前,UE4支持在人物动画生成中开启动力学模拟,还能模拟与环境的碰撞,使动画有更加逼真的效果。但是,开启动力学模拟的话,开发者就不能直接实时编辑人物骨骼在任意时刻达到任意的位置。若使用UE4提供的简单PD控制接口来生成带有动力学模拟的动画,连保持人物站立或者正常走跑都是几乎无法完成的。
本申请实施例提供了一种动力学仿真姿态的控制方法及装置、一种策略网络的训练方法及装置、一种动力学仿真姿态的控制系统、介质、设备及程序产品。在一定程度上解决了虚拟角色动画中只考虑人物骨骼模型与环境的运动学关系,没有考虑动力学关系,而使得所生成的动画逼真程度欠佳的问题。本申请实施例可应用于人物、动物、怪兽等所有骨骼体系的动力学模拟场景。在游戏应用中,可用于使用UE4游戏开发时,为带有动力学仿真的骨骼体生成控制策略。在开启物理仿真与碰撞仿真的情况下,利用本申请的控制方法,可使得游戏角色具有动力学模拟的动画效果,从而生成高质量的逼真动画。
具体的,本申请实施例的方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。
为更好地理解本申请实施例提供的技术方法,下面对本申请实施例提供的技术方法适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。以控制方法由计算机设备执行为例,其中,该计算机设备可以为终端或者服务器等设备。
本申请实施例可结合云技术或区块链网络技术实现。如本申请实施例所公开的控制方法,其中这些数据可保存于区块链上,例如:角色信息、当前角色状态、目标姿态、当前动力学模拟时间、输入向量、动作控制信息及动力学仿真姿态,均可保存于区块链上。
为了便于实现对角色信息、当前角色状态、目标姿态、当前动力学模拟时间、输入向量、动作控制信息及动力学仿真姿态的存储和查询,可选的,该控制方法还包括:将角色信息、当前角色状态、目标姿态、当前动力学模拟时间、输入向量、动作控制信息及动力学仿真姿态发送至区块链网络中,以使区块链网络的节点将角色信息、当前角色状态、目标姿态、当前动力学模拟时间、输入向量、动作控制信息及动力学仿真姿态填充至新区块,且当对新区块取得共识一致时,将新区块追加至区块链的尾部。本申请实施例可以将角色信息、当前角色状态、目标姿态、当前动力学模拟时间、输入向量、动作控制信息及动力学仿真姿态上链存储,实现记录的备份,当需要获取动作控制信息时,可直接、快速地从区块链上获取相应的动作控制信息,从而提高控制方法的效率。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
本申请各实施例提供了一种动力学仿真角色的控制方法,本申请实施例以控制方法由计算机设备为例来进行说明。
请参阅图3,图3为本申请实施例提供的动力学仿真角色的控制方法的流程示意图,该方法包括:
步骤310,在接收到客户端角色当前的角色信息和目标姿态后,对角色信息进行处理以得到输入向量,角色信息包括当前角色状态和当前动力学模拟时间。
具体的,客户端角色可包括单个客户端的多个角色,或多个客户端的单个角色等。客户端的角色具有多个骨骼关节体系,包括3D人物、动物、怪兽等,例如双足人物模型,请参阅图4,图4中的双足人物模型包括重心关节(pelvis)、左上手臂关节(Upperarm_l)等多个骨骼关节。
可以理解,每一个客户端角色在任一时刻有当前时刻的角色信息。角色信息包括当前角色状态和当前动力学模拟时间。其中,当前角色状态包括当前时刻角色的位置、姿态、角色的各骨骼关节的位姿等信息客户端中包含的可反映当前角色所呈现的状态的信息。目标姿态是角色在下一个时刻的姿态。当前动力学模拟时间是在动力学模拟中用于积分的时间,每一时刻的角色信息与当前动力学模拟时间是对应的。
对角色信息进行处理以得到输入向量包括对角色信息按照训练好的策略网络的输入格式进行整理排序。
可选的,当前角色状态包括骨骼关节位姿,及重心关节位姿,对角色信息进行处理以得到输入向量的步骤,包括:
根据骨骼关节位姿计算得到与骨骼关节对应的骨骼关节转角;
根据骨骼关节对应的骨骼关节转角,及重心关节位姿确定输入向量。
具体的,骨骼关节位姿包括角色中所有参与物理学模拟的骨骼关节相对于角色的位置与姿态,如所有参与物理学模拟的骨骼关节相对于角色的姿态四元数。
例如,在我们作为示例的双足人骨骼模型中,除了pelvis关节以外,还有18个可转动骨骼关节,如下表所示。
其中,每个骨骼关节可转动的自由度从1维到3维不等。18个骨骼关节按照转换旋转角度的方法可得到54个自由度,去掉永远为0的22个角度,可产生32个自由度。故当接收到客户端角色发送的当前角色状态的数据包后,根据当前角色状态中的18组表示骨骼旋转的骨骼关节的位姿,可得到32个与骨骼关节对应的骨骼关节转角的角度值。
另外,客户端角色发送的当前角色状态的数据包含重心关节位姿,其中,重心关节可包括髋关节、或骨盆关节pelvis。重心关节位置在世界坐标系中为3维的位置坐标,重心关节姿态可包括6维向量的姿态表示。
根据骨骼关节对应的骨骼关节转角,及重心关节位姿确定输入向量。则输入向量可包括:32维骨骼关节转角、3维重心关节位置、及6维向量的重心关节姿态,一共41维向量可较为完整表征客户端角色的当前角色状态。
步骤320,将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息。
其中,训练好的策略网络可包括利用深度强化学习算法如deep mimic算法基于基础神经网络如一个三层全连接网络multi-layer perceptron(MLP)进行前期训练得到。例如让UE4中带有动力学模拟的角色尽量追踪一段目标片段。然后根据目标片段训练策略网络对输入的状态和目标姿态进行前向计算,以得到与目标姿态对应的动作控制信息。目标动作片段可以是动作捕捉采集的,也可以是美术手工设计的,也可以各种动作生成算法生成的。
可选的,将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息的步骤,包括:
将输入向量和目标姿态输入训练好的策略网络进行计算,以生成与目标姿态对应的目标转角;
根据目标转角及相应的控制参数确定动作控制信息。其中,控制参数包括用于计算转矩的控制系统系统,如spring和damping系数。
可选的,输入向量包括当前周期输入向量、及目标周期输入向量,将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息的步骤,还包括:
根据当前动力学模拟时间确定当前周期、及当前周期之后第一预设数量个目标周期;
根据目标姿态确定与目标周期对应的目标周期输入向量,目标周期输入向量包括目标周期对应的骨骼关节转角、重心关节位置、及重心关节姿态。
将当前周期输入向量、及目标周期输入向量输入训练好的策略网络进行计算,以生成与目标姿态对应的目标转角。
具体的,客户端角色当前发送的角色信息带有当前动力学模拟时间,则当前动力学模拟时间为当前周期。当前周期之后第一预设数量个目标周期可包括当前周期之后的一个或多个目标周期等,具体个数根据第一预设数量确定,例如预设数量确定为1、2、5,则目标周期包括自当前周期的下一个周期、下二个周期、及下五个周期。
根据接收到的目标姿态确定与预设的目标周期对应的目标周期输入向量,如下一周期输入向量。每一个目标周期均包括目标周期对应的骨骼关节转角、重心关节位置、及重心关节姿态。其中,重心关节位置、及重心关节姿态可从客户端发送的目标姿态中获取,而骨骼关节转角为目标周期的前一个周期的策略网络输出的结果。
将当前周期输入向量、及目标周期输入向量输入训练好的策略网络进行计算,以生成与目标姿态对应的目标转角。
例如,重心关节为pelvis,当前时间周期i的输入向量observation如下,包括当前周期输入向量,及目标周期输入向量:
41维当前周期状态:pelvis位置pi,pelvis姿态oi,关节转角qi
41维目标姿态下一周期状态:pg i+1,og i+1,qg i+1
其中,当前周期输入向量如上当前周期状态,包括32维骨骼关节转角qi、3维pelvis位置pi、及6维pelvis姿态oi,一共41维当前周期输入向量。
目标周期包括i+1,目标周期输入向量包括41维目标姿态下一周期状态。目标周期输入向量包括:32维目标转角、3维目标pelvis位置pi、及6维目标pelvis姿态oi,一共41维目标周期输入向量。
再例如,重心关节为pelvis,当前时间周期i的输入向量observation如下,包括当前周期输入向量,及目标周期输入向量:
41维当前周期状态:pelvis位置pi,pelvis姿态oi,骨骼关节转角qi
41维目标姿态下一周期状态:pg i+1,og i+1,qg i+1
41维目标姿态下二周期状态:pg i+2,og i+2,qg i+2
41维目标姿态下五周期状态:pg i+5,og i+5,qg i+5
41维目标姿态下十周期状态:pg i+10,og i+10,qg i+10
其中,当前周期输入向量如上当前周期状态,包括32维骨骼关节转角qi、3维pelvis位置pi、及6维pelvis姿态oi,一共41维当前周期输入向量。
目标周期包括i+1、i+2、i+5及i+10,目标周期输入向量包括41维目标姿态下一周期状态、41维目标姿态下二周期状态、41维目标姿态下五周期状态、及41维目标姿态下十周期状态。每个目标周期输入向量包括:32维目标转角、3维目标pelvis位置pi、及6维目标pelvis姿态oi,一共41维目标周期输入向量。
如此,相较于仅有下一个周期的输入向量,根据多个目标周期的输入向量输入策略网络,可使得计算得到的目标转角准确度更高。
将上述输入向量输入训练好的策略网络MLP进行前向计算,得到32维的输出action目标转角ag i+1
可选的,输入向量包括当前周期输入向量、历史周期输入向量及目标周期输入向量,将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息的步骤,还包括:
根据当前动力学模拟时间确定当前周期之前第二预设数量个历史周期;根据当前周期之前第二预设数量个历史周期得到的历史转角、重心关节位置、历史重心关节姿态确定历史周期输入向量,历史转角包括根据前一个历史周期得到的目标转角;
将当前周期输入向量、历史周期输入向量及目标周期输入向量输入训练好的策略网络进行计算,以生成与目标姿态对应的目标转角。
具体的,客户端角色当前发送的角色信息带有当前动力学模拟时间,则当前动力学模拟时间为当前周期。当前周期之前第二预设数量个历史周期可包括当前周期之前的一个或多个历史周期,具体个数根据第一预设数量确定,例如预设数量确定为1、2,则历史周期包括自当前周期的上一个周期、级上二个周期。
其中,历史转角包括根据前一个历史周期得到的目标转角。例如,当前周期为i,历史周期为i-2,则历史转角为在历史周期i-3时经过训练好的策略网络计算得到的输出目标转角。
将当前周期输入向量、历史周期输入向量及目标周期输入向量输入训练好的策略网络MLP进行前向计算,得到32维的输出action目标转角ag i+1
例如,重心关节为pelvis,当前时间周期i的输入向量observation如下,包括当前周期输入向量,历史周期输入向量及目标周期输入向量:
41维当前周期状态:pelvis位置pi,pelvis姿态oi,骨骼关节转角qi
41维上一周期状态:pi-1,oi-1,qi-1
41维上二周期状态:pi-2,oi-2,qi-2
41维目标姿态下一周期状态:pg i+1,og i+1,qg i+1
41维目标姿态下二周期状态:pg i+2,og i+2,qg i+2
41维目标姿态下五周期状态:pg i+5,og i+5,qg i+5
41维目标姿态下十周期状态:pg i+10,og i+10,qg i+10
其中,当前周期输入向量如上当前周期状态,包括32维骨骼关节转角qi、3维pelvis位置pi、及6维pelvis姿态oi,一共41维当前周期输入向量。
历史周期包括i-1、i-2,历史周期输入向量包括41维目标姿态上一周期状态、及41维目标姿态上二周期状态。其中,oi-1为在周期i-2得到的目标转角,oi-2为在周期i-1得到的目标转角。
目标周期包括i+1、i+2、i+5及i+10,目标周期输入向量包括41维目标姿态下一周期状态、41维目标姿态下二周期状态、41维目标姿态下五周期状态、及41维目标姿态下十周期状态。每个目标周期输入向量包括:32维目标转角、3维目标pelvis位置pi、及6维目标pelvis姿态oi,一共41维目标周期输入向量。
如此,相较于输入向量包括当前周期输入向量,及目标周期输入向量,增加历史周期输入向量可使得策略网络输入更多状态信息,以提高输出的目标转角的准确率。
步骤330,将动作控制信息发送至客户端,以使得客户端根据动作控制信息控制客户端角色展示相应的动力学仿真姿态。
具体的,动作控制信息可包括目标转角及相应的控制参数,也可包括目标转角及转矩,也可包括目标转角、相应的控制参数及转矩。其中,转矩用于客户端的动力学模拟,可根据目标转角及相应的控制参数得到转矩Torque,如公式(1):
其中,表示经过策略网络后输出的目标转角,spring和damping表示控制参数,可选的可默认为常数10000和2000。可选的,具有控制学知识功底的用户也可以自行调整使用变化的数值spring和damping,可达到更理想的控制效果。qt表示当前骨骼关节转角,vt表示骨骼关节转角的角速度,vt可对qt进行简单差分得到,如公式(2):
其中,T表示接收客户端角色发送数据的时间周期间隔,如0.1秒。
将动作控制信息发送至客户端,以使得客户端根据动作控制信息控制客户端角色展示相应的动力学仿真姿态。客户端可根据动作控制信息中包含的目标转角及相应的控制参数计算得到转矩,或根据目标转角及用户输入的控制参数,计算得到转矩,进而根据动力学模拟器控制该角色在动力学模拟中生成相应的动力学仿真姿态或动画。
如此,本申请通过在接收到客户端角色当前的角色信息和目标姿态后,对角色信息进行处理以得到输入向量,角色信息包括当前角色状态和当前动力学模拟时间;将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息;将动作控制信息发送至客户端,以使得客户端根据动作控制信息控制客户端角色展示相应的动力学仿真姿态。能够稳定地为动画角色应用场景如UE4中带有动力学仿真的角色生成动作控制命令,引导其完成既定的动作,生成高质量动画。将得到的控制命令输入动力学模拟器生成具有动力学模拟的动画效果,可实时地为游戏角色生成流畅、逼真、且与环境碰撞交互的高质量动画。同时,通过独立训练好的策略网络对客户端的输入向量进行计算处理,相对传统方法,可以较低的成本生成无限量、逼真、与环境碰撞交互的高质量动画。这不仅有效减轻了游戏开发工作,缩短开发流程,还可减小游戏占用的存储和内存。
本申请各实施例还提供了一种策略网络的训练方法,本申请实施例以训练方法由计算机设备为例来进行说明。
请参阅图5,图5为本申请实施例提供的策略网络的训练方法的流程示意图,该方法包括:
步骤510,在预设时间周期内接收模拟客户端发送的标签角色信息和标签姿态,对标签角色信息进行处理以得到标签输入向量,标签角色信息包括标签角色状态和标签动力学模拟时间。
具体的,模拟客户端可通过让UE4中带有动力学模拟的角色尽量追踪一段目标片段。其中,目标动作片段可以是动作捕捉采集的,也可以是美术手工设计的,也可以各种动作生成算法生成的。
在预设时间周期,如0.1秒,接收模拟客户端发送的用于训练的标签角色的标签角色信息。其中,标签角色信息包括标签角色状态和标签动力学模拟时间。上述实施例中的角色信息为客户端在实际应用场景中返回的角色信息,而训练方法中的标签角色信息为历史角色信息,可包含大量已经实现的角色状态,即标签角色状态。角色信息在实际应用后,可进行存储以作为本申请训练方法的标签角色信息。
其中,标签角色状态包括当前时刻标签角色的位置、姿态、角色的各骨骼关节的位姿等信息客户端中包含的可反映当前标签角色所呈现的状态的信息。标签姿态是标签角色在下一个时刻的姿态,包含的内容同上述实施例中的目标姿态,但目标姿态为客户端在实际应用场景中返回的实时信息,标签姿态为历史信息,与标签角色状态对应的下一个时刻的姿态。目标姿态在实际应用后,可进行存储以作为本申请训练方法的标签姿态。
标签动力学模拟时间是在动力学模拟中用于积分的时间,每一时刻的标签角色信息与标签动力学模拟时间是对应的。
对标签角色信息进行处理以得到标签输入向量同上述控制方法。
可选的,标签角色状态包括骨骼关节位姿,及重心关节位姿,对标签角色信息进行处理以得到标签输入向量的步骤,包括:
根据骨骼关节位姿计算得到与骨骼关节对应的骨骼关节转角;
根据骨骼关节对应的骨骼关节转角,及重心关节位姿确定标签输入向量。
具体的实现方法同上述控制方法,此处不再展开一一赘述。
步骤520,将标签输入向量和标签姿态输入基础神经网络进行计算,以生成与标签姿态对应的预测转角。
具体的,基础神经网络可采用一个三层全连接网络MLP,网络表达式如下公式(3):
mean=W2*tanh(W1*tanh(W0*observation+b0)+b1)+b2 (3);
其中,矩阵W0,W1,W2和偏置向量b0,b1,b2为策略网络的权重,即网络参数。Observation表示基础神经网络的标签输入向量,mean表示基础神经网络的输出向量。当得到网络的输出向量mean后,可经过一个高斯分布采样,进而得到预测转角。
可选的,标签输入向量包括当前周期标签输入向量、及目标周期标签输入向量,将标签输入向量和标签姿态输入基础神经网络进行计算,以生成与标签姿态对应的预测转角的步骤,还包括:
根据当前动力学模拟时间确定当前周期、及当前周期之后第一预设数量个目标周期;
根据标签姿态确定与目标周期对应的目标周期标签输入向量,目标周期标签输入向量包括目标周期对应的骨骼关节转角、重心关节位置、及重心关节姿态;
将当前周期标签输入向量、及目标周期标签输入向量输入训练好的策略网络进行计算,以生成与标签姿态对应的预测转角。
具体的实现方法同上述控制方法,此处不再展开一一赘述。
可选的,标签输入向量包括当前周期标签输入向量、历史周期标签输入向量及目标周期标签输入向量,将标签输入向量和标签姿态输入基础神经网络进行计算,以生成与标签姿态对应的预测转角的步骤,还包括:
根据当前动力学模拟时间确定当前周期之前第二预设数量个历史周期;
根据当前周期之前第二预设数量个历史周期得到的历史转角、重心关节位置、历史重心关节姿态确定历史周期标签输入向量,历史转角包括根据前一个历史周期得到的预测转角;
将当前周期标签输入向量、历史周期标签输入向量及目标周期标签输入向量输入训练好的策略网络进行计算,以生成与标签姿态对应的预测转角。
具体的实现方法同上述控制方法,此处不再展开一一赘述。
步骤530,根据预测转角生成预测控制信息,并将预测控制信息发送至模拟客户端,以使得模拟客户端根据预测控制信息生成相应的预测姿态。
具体的,根据目标转角及相应的控制参数确定动作控制信息。其中,控制参数包括用于计算转矩的控制系统系统,如spring和damping系数。
步骤540,根据预测姿态、标签姿态、标签输入向量、及生成的预测转角确定训练数据。
可选的,根据预测姿态、标签姿态、标签输入向量、及生成的预测转角确定训练数据的步骤,包括:
根据预测姿态和标签姿态生成奖励;
根据动力学模拟时间将奖励、当前时间周期的标签输入向量和相应生成的预测转角、及下一个时间周期的标签输入向量作为训练数据存入数据库。
例如,重心关节为pelvis,当前时间周期i的输入向量observation如下,包括当前周期标签输入向量,历史周期标签输入向量及目标周期标签输入向量:
41维当前周期状态:pelvis位置pi,pelvis姿态oi,骨骼关节转角qi
41维上一周期状态:pi-1,oi-1,qi-1
41维上二周期状态:pi-2,oi-2,qi-2
41维标签姿态下一周期状态:pg i+1,og i+1,qg i+1
41维标签姿态下二周期状态:pg i+2,og i+2,qg i+2
41维标签姿态下五周期状态:pg i+5,og i+5,qg i+5
41维标签姿态下十周期状态:pg i+10,og i+10,qg i+10
经过基础神经网络进行前向计算后得到输出action预测转角为ag i+1
根据预测姿态和标签姿态生成奖励可通过如下奖励函数reward实现:
其中,qi表示当前周期i的标签姿态的骨骼关节转角,表示接收到的客户端发送的根据上一个周期i-1经过基础神经网络进行前向计算后得到的输出action预测转角ag i得到的预测姿态。每个时间周期经过基础神经网络前向计算得到输出后,根据上一个时间周期生成的与标签姿态对应的预测姿态及当前周期的标签姿态之间的损失或距离得到奖励ri作为当次计算的奖励。
根据动力学模拟时间确定时间周期的基准时间,并将奖励、当前时间周期的历史输入向量和相应生成的预测转角、及下一个时间周期的历史输入向量作为训练数据存入数据库。
同时存入数据库的还有采样概率,其中,对于采样概率,基础神经网络的输出mean向量,需经过一个高斯分布采样才会得到输出action,进而通过高斯分布的概率密度函数,可以得到在当前的mean下采样到该action的采样概率。具体可以策略网络输出mean为均值,以某个标准差进行高斯分布的采样之后得到的值,作为被传递给客户端的预测转角,将此预测转角代入高斯分布概率密度函数,可得到采样概率。
例如,当前时间周期为i,将当前时间周期的标签输入向量observation,及当前时间周期的标签输入向量observation经过基础神经网络进行前向计算得到的输出action预测转角ag i+1,及第i+1个时间周期的标签输入向量observation,以及当前时间周期的奖励作为一条训练数据存入数据库。
步骤550,在数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据计算结果更新基础神经网络的网络参数;
步骤560,在满足预设训练条件的情况下,将基础神经网络确定为训练好的策略网络。
具体的,近端策略优化PPO算法(Proximal Policy Optimization,PPO)为一种深度强化学习算法,包括根据随机梯度下降的原则从数据库中随机抽取若干组训练数据进行策略梯度计算,并使用计算得到的梯度通过PPO算法来更新基础神经网络,例如,更新上述公式(3)中的策略网络的权重:矩阵W0、W1、W2和偏置向量b0、b1、b2
当数据库中的训练数据达到预设数值时,自数据库中随机抽取多个训练数据利用PPO算法进行计算。例如,当数据库中收集到的数据达到一定量如216组时,随机在数据库中抽取若干次,如26次数据形成batch数据集,每个batch数据集中含有210组数据。这些数据集即为训练数据,可用来进行深度强化学习训练,以更新基础神经网络。
经过一段时间的强化学习训练,当满足预设训练条件时,我们就能获得一个性能完好的基础神经网络,能够稳定地为UE4中带有动力学仿真的角色生成控制命令,引导其完成既定的动作,并生成高质量动画。则该基础神经网络可为训练好的策略网络,本申请实施例的动力学仿真姿态的控制方法中可使用该训练好的策略网络。
在深度强化学习训练结束后,策略网络可一定时间内固定不变。然后利用该策略网络去为一个或多个客户端中的游戏角色生成控制策略。
如此,本申请通过在预设时间周期内接收模拟客户端发送的标签角色信息和标签姿态,对标签角色信息进行处理以得到标签输入向量,标签角色信息包括标签角色状态和标签动力学模拟时间;将标签输入向量和标签姿态输入基础神经网络进行计算,以生成与目标姿态对应的预测转角;根据预测转角生成预测控制信息,并将预测控制信息发送至模拟客户端,以使得模拟客户端根据预测控制信息生成相应的预测姿态;根据预测姿态、标签姿态、标签输入向量、及生成的预测转角确定训练数据,并将训练数据存入数据库;利用近端策略优化算法对训练数据进行策略梯度计算,并根据计算结果更新基础神经网络的网络参数;在满足预设训练条件的情况下,将基础神经网络确定为训练好的策略网络。实现了利用强大的深度强化学习算法为角色动画如UE4中带有动力学仿真的角色计算控制策略,以生成高质量动画。
上述所有的技术方法,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例还提供一种动力学仿真姿态的控制系统600。请参阅图6,图6为控制系统600的系统结构图。
控制系统600包括客户端610及服务器620,服务器620包括训练好的策略网络621,控制系统600包括:
在预设时间周期内,客户端将角色当前的角色信息和目标姿态打包并通过预设通信方式发送至服务器,角色信息包括当前角色状态和当前动力学模拟时间;
服务器对角色信息进行处理以得到输入向量,并将以得到输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息;及
将控制信息通过预设通信方式发送至客户端;
客户端根据控制信息控制客户端角色生成相应的动力学仿真姿态。
具体的,客户端610具有动力学模拟器,动力学模拟器计算出每个时间周期的角色状态,客户端610将角色信息打包成数据包通过预设通信方式发送至服务器620。其中,预设通信方式可用于客户端610与服务器620之间的数据传递。可以理解,目前,基于pybullet动力学模拟器,有诸如DReCon或者deep mimic的强化学习方法可以用来为双足人物骨骼训练控制策略。然而,无论是pybullet模拟器、或是目前通用的强化学习算法代码库、还是分布式集群训练框架,都是基于python语言进行编程。而UE4及其动力学模拟器都是基于C++语言进行编程。因此,想通过强化学习算法来获得角色的控制策略,则必须有某种传递机制以实现数据的高效采集与处理。本申请的预设通信方式可包括socket、pybind11、ROSmessage、共享内存等通信机制,以实现数据在C++与python语言之间传递。
可选的,预设通信方式包括套接字通信,即Socket通信。可利用socket通信的方法来实现数据在基于不同开发语言的客户端610如UE4基于C++语言,与服务器620如基于python语言之间的传递。而采用socket通信,可以更好地兼容分布式强化学习集群训练框架,结合分布式集群训练,能够使强化学习效率得到较大的提升,从而能够为UE4中的游戏角色生成更多类型的动作动画。
在任意时刻,UE4的客户端610会将带有动力学模拟的这个角色的角色信息向服务器620发送。经过策略网络前向计算处理之后,服务器620将得到的目标转角与控制参数发送回对应的客户端610,控制该角色在动力学模拟中生成相应的动画。
可选的,客户端610还包括时间同步等待单元,时间同步等待单元用于按照预设等待时间延迟播放角色动画,角色动画根据动力学仿真姿态生成。
具体的,客户端610如UE4,带有图形渲染与图形界面。在接收到控制信息以进行动力学模拟时,要把生成的角色动作进行渲染与蒙皮之后播放出来,可预设时间同步等待机制以延迟播放角色动画。例如,渲染帧率为120帧的动画,UE4可能只需要远小于1/120秒的时间就完成了下一帧画面的计算,但为了让画面看起来与真实时间的速率接近,于是强行等待到了1/120秒后才把画面播放出来。
需要说明的是,在对策略网络621的训练方法中,模拟客户端610为了加快数据收集的速度,提高训练的效率,可取消图形界面,则无需预设时间同步等待单元,一旦动力学模拟器计算出每个时间周期的角色状态,就立刻打包发送到服务器620上。
可选的,客户端610还用于根据动作控制信息生成转矩,并根据转矩控制客户端角色生成相应的动力学仿真姿态。
具体的,客户端610还包括动力学模拟器,动力学模拟器可根据动作控制信息中包含的目标转角及相应的控制参数计算得到转矩,或根据目标转角及用户输入的控制参数,计算得到转矩,进而根据动力学模拟器控制该角色在动力学模拟中生成相应的动力学仿真姿态或动画。
其中,转矩用于客户端610的动力学模拟,可根据目标转角及相应的控制参数得到转矩Torque,同上述公式(1):
其中,表示经过策略网络621后输出的目标转角,spring和damping表示控制参数,可选的可默认为常数10000和2000。可选的,具有控制学知识功底的用户也可以自行调整使用变化的数值spring和damping,可达到更理想的控制效果。qt表示当前骨骼关节转角,vt表示骨骼关节转角的角速度,vt可对qt进行简单差分得到,同上述公式(2)。
可选的,服务器620还包括数据库622及深度强化学习智能体623,服务器620还用于在预设时间周期内接收客户端发送的标签角色信息,对标签角色信息进行处理以得到标签输入向量,标签角色信息包括标签角色状态和标签动力学模拟时间;及
将标签输入向量和标签姿态输入策略网络进行计算,以生成与目标姿态对应的预测转角;及
根据预测转角生成预测控制信息,并将预测控制信息发送至客户端;
客户端610用于根据预测控制信息生成相应的预测姿态;
服务器620还用于根据预测姿态、标签姿态、标签输入向量、及生成的预测转角确定训练数据,并将训练数据存入数据库;
深度强化学习智能体623用于在数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据计算结果更新基础神经网络的网络参数;及
在满足预设训练条件的情况下,将策略网络确定为训练好的策略网络。
请再次参阅图6,服务器620端的深度强化学习智能体623包括基于python语言的近端策略优化算法。多个客户端610,客户端1、……客户端N-1、客户端N,例如N=1000,多个客户端610分别启动UE4的带有动力学模拟的引擎,这些引擎可启动在不同的CPU内核上。在每个模拟器模拟的时间周期,例如0.1秒,每一个客户端610会将当前的标签角色信息整理成一个数据包通过Socket通信机制发送至服务器620。服务器620收到数据包后,会将数据包中的数据按照深度强化学习算法中定义的策略网络输入向量的格式进行处理以生成标签输入向量。然后经过策略网络前向计算,得到的预测转角,服务器620根据预测转角生成预测控制信息,并发回客户端610上。同时,服务器620会根据客户端610上传的标签角色状态和标签姿态去计算强化学习所需的奖励,并将策略网络的输入输出对、采样概率、奖励等信息作为训练数据存入数据库622中。每当数据库622中的数据条数达到216时,深度强化学习智能体623便会根据随机梯度下降的原则从数据库中随机抽取26组训练数据进行策略梯度计算,并使用计算得到的梯度通过PPO算法来更新策略网络621。经过一段时间的强化学习训练,当满足预设训练条件时,策略网络621训练完成,可为UE4中带有动力学仿真的角色生成目标转角,以引导其完成既定的动作,生成高质量动画。
如此,本申请的控制系统在预设时间周期内,控制客户端将角色当前的角色信息和目标姿态打包并通过预设通信方式发送至服务器,角色信息包括当前角色状态和当前动力学模拟时间;控制服务器对角色信息进行处理以得到输入向量,并将以得到输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息;及将控制信息通过预设通信方式发送至客户端;控制客户端根据控制信息控制客户端角色生成相应的动力学仿真姿态。提出了一种在动力学模拟器与控制服务器之间基于预设通信方式的数据传递机制,实现了利用强化学习算法为游戏引擎中带有动力学仿真的角色训练控制策略的方法。
可选的,服务器还用于根据预测姿态和标签姿态生成奖励;及
根据动力学模拟时间将奖励、当前时间周期的历史输入向量和相应生成的预测转角、及下一个时间周期的历史输入向量作为训练数据存入数据库。
具体实施方式同上述训练方法,此处不再展开一一赘述。
上述所有的技术方法,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
为便于更好的实施本申请实施例的动力学仿真姿态的控制方法,本申请实施例还提供一种动力学仿真姿态的控制装置。请参阅图7,图7为本申请实施例提供的动力学仿真姿态的控制装置的结构示意图。其中,该控制装置700可以包括:
处理单元710,用于在接收到客户端角色当前的角色信息和目标姿态后,对角色信息进行处理以得到输入向量,角色信息包括当前角色状态和当前动力学模拟时间;
计算单元720,用于将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息;
发送单元730,用于将动作控制信息发送至客户端,以使得客户端根据动作控制信息控制客户端角色展示相应的动力学仿真姿态。
可选的,处理单元710,可以用于根据骨骼关节位姿计算得到与骨骼关节对应的骨骼关节转角;根据骨骼关节对应的骨骼关节转角,及重心关节位姿确定输入向量。
可选的,计算单元720,可以用于将输入向量和目标姿态输入训练好的策略网络进行计算,以生成与目标姿态对应的目标骨骼关节转角;根据目标骨骼关节转角及相应的控制参数确定动作控制信息。
可选的,计算单元720,还可以用于根据当前动力学模拟时间确定当前周期、及当前周期之后第一预设数量个目标周期;根据目标姿态确定与目标周期对应的目标周期输入向量,目标周期输入向量包括目标周期对应的骨骼关节转角、重心关节位置、及重心关节姿态;将当前周期输入向量、及目标周期输入向量输入训练好的策略网络进行计算,以生成与目标姿态对应的目标转角。
可选的,计算单元720,还可以用于根据当前动力学模拟时间确定当前周期之前第二预设数量个历史周期;根据当前周期之前第二预设数量个历史周期得到的历史转角、重心关节位置、历史重心关节姿态确定历史周期输入向量,历史转角包括根据前一个历史周期得到的目标转角;将当前周期输入向量、历史周期输入向量及目标周期输入向量输入训练好的策略网络进行计算,以生成与目标姿态对应的目标转角。
本申请实施例还提供一种策略网络的训练装置。请参阅图8,图8为本申请实施例提供的策略网络的训练装置的结构示意图。其中,该训练装置800可以包括:
发送单元810,用于在预设时间周期内接收模拟客户端发送的标签角色信息和标签姿态,对标签角色信息进行处理以得到标签输入向量,标签角色信息包括标签角色状态和标签动力学模拟时间;
输入单元820,用于将标签输入向量和标签姿态输入基础神经网络进行计算,以生成与目标姿态对应的预测转角;
生成单元830,用于根据预测转角生成预测控制信息,并将预测控制信息发送至模拟客户端,以使得模拟客户端根据预测控制信息生成相应的预测姿态;
存储单元840,用于根据预测姿态、标签姿态、标签输入向量、及生成的预测转角确定训练数据,并将训练数据存入数据库;
计算单元850,用于在数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据计算结果更新基础神经网络的网络参数;
确定单元860,用于在满足预设训练条件的情况下,将基础神经网络确定为训练好的策略网络。
可选的,存储单元840,可以用于根据预测姿态和标签姿态生成奖励;根据动力学模拟时间将奖励、当前时间周期的标签输入向量和相应生成的预测转角、及下一个时间周期的标签输入向量作为训练数据存入数据库。
需要说明的是,本申请实施例中的控制装置700和训练装置800中各模块的功能可对应参考上述各方法实施例中任意实施例的具体实现方式,这里不再赘述。
上述控制装置700和训练装置800中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
控制装置700和训练装置800例如可以集成在具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该控制装置700和训练装置800为该终端或服务器。该终端可以为智能手机、平板电脑、笔记本电脑、智能电视、智能音箱、穿戴式智能设备、个人计算机(Personal Computer,PC)等设备,终端还可以包括客户端,该客户端可以是视频客户端、浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
图9为本申请实施例提供的计算机设备的示意性结构图,如图9所示,计算机设备可以包括:通信接口901,存储器902,处理器903和通信总线904。通信接口901,存储器902,处理器903通过通信总线904实现相互间的通信。通信接口901用于装置900与外部设备进行数据通信。存储器902可用于存储软件程序以及模块,处理器903通过运行存储在存储器902的软件程序以及模块,例如前述方法实施例中的相应操作的软件程序。
可选的,该处理器903可以调用存储在存储器902的软件程序以及模块执行如下操作:
在接收到客户端角色当前的角色信息和目标姿态后,对角色信息进行处理以得到输入向量,角色信息包括当前角色状态和当前动力学模拟时间;
将输入向量和目标姿态输入训练好的策略网络进行计算,以得到与目标姿态对应的动作控制信息;
将动作控制信息发送至客户端,以使得客户端根据动作控制信息控制客户端角色展示相应的动力学仿真姿态。
可选的,该处理器903还可以调用存储在存储器902的软件程序以及模块执行如下操作:
在预设时间周期内接收模拟客户端发送的标签角色信息和标签姿态,对标签角色信息进行处理以得到标签输入向量,标签角色信息包括标签角色状态和标签动力学模拟时间;
将标签输入向量和标签姿态输入基础神经网络进行计算,以生成与目标姿态对应的预测转角;
根据预测转角生成预测控制信息,并将预测控制信息发送至模拟客户端,以使得模拟客户端根据预测控制信息生成相应的预测姿态;
根据预测姿态、标签姿态、标签输入向量、及生成的预测转角确定训练数据,并将训练数据存入数据库;
在数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据计算结果更新基础神经网络的网络参数;
在满足预设训练条件的情况下,将基础神经网络确定为训练好的策略网络。
可选的,计算机设备为该终端或服务器。该终端可以为智能手机、平板电脑、笔记本电脑、智能电视、智能音箱、穿戴式智能设备、个人计算机、游戏机、车载终端、智能电视等设备。该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,并且该计算机程序使得计算机设备执行本申请实施例中的动力学仿真姿态的控制方法中的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的动力学仿真姿态的控制方法中的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种计算机程序,该计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的动力学仿真姿态的控制方法中的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方法的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方法的目的。
另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方法本质上或者说对现有技术做出贡献的部分或者该技术方法的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (17)

1.一种动力学仿真姿态的控制方法,其特征在于,所述方法包括:
在接收到客户端角色当前的角色信息和目标姿态后,对所述角色信息进行处理以得到输入向量,所述角色信息包括当前角色状态和当前动力学模拟时间;
将所述输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息;
将所述动作控制信息发送至所述客户端,以使得所述客户端根据所述动作控制信息控制所述客户端角色展示相应的动力学仿真姿态。
2.根据权利要求1所述的控制方法,其特征在于,所述当前角色状态包括骨骼关节位姿,及重心关节位姿,所述对所述角色信息进行处理以得到输入向量包括:
根据所述骨骼关节位姿计算得到与所述骨骼关节对应的骨骼关节转角;
根据所述骨骼关节对应的骨骼关节转角,及所述重心关节位姿确定所述输入向量。
3.根据权利要求1所述的控制方法,其特征在于,所述将所述输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息包括:
将所述输入向量和所述目标姿态输入所述训练好的策略网络进行计算,以生成与所述目标姿态对应的目标骨骼关节转角;
根据所述目标骨骼关节转角及相应的控制参数确定所述动作控制信息。
4.根据权利要求3所述的控制方法,其特征在于,所述输入向量包括当前周期输入向量、及目标周期输入向量,所述将所述输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息包括:
根据所述当前动力学模拟时间确定当前周期、及当前周期之后第一预设数量个目标周期;
根据所述目标姿态确定与所述目标周期对应的目标周期输入向量,所述目标周期输入向量包括所述目标周期对应的骨骼关节转角、重心关节位置、及重心关节姿态;
将所述当前周期输入向量、及所述目标周期输入向量输入所述训练好的策略网络进行计算,以生成与所述目标姿态对应的所述目标转角。
5.根据权利要求4所述的控制方法,其特征在于,所述输入向量包括历史周期输入向量,所述将所述输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息包括:
根据所述当前动力学模拟时间确定当前周期之前第二预设数量个历史周期;
根据所述当前周期之前第二预设数量个历史周期得到的历史转角、重心关节位置、历史重心关节姿态确定历史周期输入向量,所述历史转角包括根据前一个历史周期得到的目标转角;
将所述当前周期输入向量、所述历史周期输入向量及所述目标周期输入向量输入所述训练好的策略网络进行计算,以生成与所述目标姿态对应的所述目标转角。
6.一种策略网络的训练方法,其特征在于,所述方法包括:
在预设时间周期内接收模拟客户端发送的标签角色信息和标签姿态,对所述标签角色信息进行处理以得到标签输入向量,所述标签角色信息包括标签角色状态和标签动力学模拟时间;
将所述标签输入向量和所述标签姿态输入基础神经网络进行计算,以生成与所述标签姿态对应的预测转角;
根据所述预测转角生成预测控制信息,并将所述预测控制信息发送至所述模拟客户端,以使得所述模拟客户端根据所述预测控制信息生成相应的预测姿态;
根据所述预测姿态、所述标签姿态、所述标签输入向量、及所述生成的预测转角确定训练数据,并将所述训练数据存入数据库;
在所述数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据所述计算结果更新所述基础神经网络的网络参数;
在满足预设训练条件的情况下,将所述基础神经网络确定为训练好的策略网络。
7.根据权利要求6所述的训练方法,其特征在于,所述根据所述预测姿态、所述标签姿态、所述标签输入向量、及所述生成的预测转角确定训练数据,并将所述训练数据存入数据库包括:
根据所述预测姿态和所述标签姿态生成奖励;
根据所述动力学模拟时间将所述奖励、当前时间周期的标签输入向量和相应生成的预测转角、及下一个时间周期的标签输入向量作为所述训练数据存入所述数据库。
8.一种动力学仿真姿态的控制系统,其特征在于,所述控制系统包括客户端及服务器,所述服务器包括训练好的策略网络,所述控制系统包括:
在预设时间周期内,所述客户端将角色当前的角色信息和目标姿态打包并通过预设通信方式发送至所述服务器,所述角色信息包括当前角色状态和当前动力学模拟时间;
所述服务器对所述角色信息进行处理以得到输入向量,并将所述以得到输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息;及
将所述控制信息通过预设通信方式发送至所述客户端;
所述客户端根据所述控制信息控制所述客户端角色展示相应的动力学仿真姿态。
9.根据权利要求8所述的控制系统,其特征在于,所述预设通信方式包括套接字通信。
10.根据权利要求9所述的控制系统,其特征在于,所述客户端还包括时间同步等待单元,所述时间同步等待单元用于按照预设等待时间延迟播放角色动画,所述角色动画根据所述动力学仿真姿态生成。
11.根据权利要求9所述的控制系统,其特征在于,所述客户端还包括动力学模拟器,所述客户端还用于将所述动作控制信息输入所述动力学模拟器;
所述动力学模拟器用于根据所述动作控制信息生成转矩,并根据所述转矩控制所述客户端角色展示相应的动力学仿真姿态。
12.根据权利要求9所述的控制系统,其特征在于,所述服务器还包括数据库及深度强化学习智能体,所述服务器还用于在预设时间周期内接收客户端发送的标签角色信息和标签姿态,对所述标签角色信息进行处理以得到标签输入向量,所述标签角色信息包括标签角色状态和标签动力学模拟时间;及
将所述标签输入向量和所述标签姿态输入策略网络进行计算,以生成与所述目标姿态对应的预测转角;及
根据所述预测转角生成预测控制信息,并将所述预测控制信息发送至所述客户端;
所述客户端用于根据所述预测控制信息生成相应的预测姿态;
所述服务器还用于根据所述预测姿态、所述标签姿态、所述标签输入向量、及所述生成的预测转角确定训练数据,并将所述训练数据存入所述数据库;
所述深度强化学习智能体用于在所述数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对所述训练数据进行策略梯度计算,并根据所述计算结果更新所述基础神经网络的网络参数;及
在满足预设训练条件的情况下,将所述策略网络确定为训练好的策略网络。
13.一种动力学仿真姿态的控制装置,其特征在于,所述控制装置包括:
处理单元,用于在接收到客户端角色当前的角色信息和目标姿态后,对所述角色信息进行处理以得到输入向量,所述角色信息包括当前角色状态和当前动力学模拟时间;
计算单元,用于将所述输入向量和所述目标姿态输入训练好的策略网络进行计算,以得到与所述目标姿态对应的动作控制信息;
发送单元,用于将所述动作控制信息发送至所述客户端,以使得所述客户端根据所述动作控制信息控制所述客户端角色展示相应的动力学仿真姿态。
14.一种策略网络的训练装置,其特征在于,所述训练装置包括:
发送单元,用于在预设时间周期内接收模拟客户端发送的标签角色信息和标签状态,对所述标签角色信息进行处理以得到标签输入向量,所述标签角色信息包括标签角色状态和标签动力学模拟时间;
输入单元,用于将所述标签输入向量和所述标签姿态输入基础神经网络进行计算,以生成与所述目标姿态对应的预测转角;
生成单元,用于根据所述预测转角生成预测控制信息,并将所述预测控制信息发送至所述模拟客户端,以使得所述模拟客户端根据所述预测控制信息生成相应的预测姿态;
存储单元,用于根据所述预测姿态、所述标签姿态、所述标签输入向量、及所述生成的预测转角确定训练数据,并将所述训练数据存入数据库;
计算单元,用于在所述数据库中的训练数据达到预设数值的情况下,利用近端策略优化算法对训练数据进行策略梯度计算,并根据所述计算结果更新所述基础神经网络的网络参数;
确定单元,用于在满足预设训练条件的情况下,将所述基础神经网络确定为训练好的策略网络。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-7任一项所述的方法中的步骤。
16.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-7任一项所述的方法中的步骤。
17.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1-7任一项所述的方法中的步骤。
CN202210067156.6A 2022-01-20 2022-01-20 动力学仿真姿态的控制方法、训练方法、装置及设备 Pending CN116524076A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210067156.6A CN116524076A (zh) 2022-01-20 2022-01-20 动力学仿真姿态的控制方法、训练方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210067156.6A CN116524076A (zh) 2022-01-20 2022-01-20 动力学仿真姿态的控制方法、训练方法、装置及设备

Publications (1)

Publication Number Publication Date
CN116524076A true CN116524076A (zh) 2023-08-01

Family

ID=87403429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210067156.6A Pending CN116524076A (zh) 2022-01-20 2022-01-20 动力学仿真姿态的控制方法、训练方法、装置及设备

Country Status (1)

Country Link
CN (1) CN116524076A (zh)

Similar Documents

Publication Publication Date Title
CN111260762B (zh) 一种动画实现方法、装置、电子设备和存储介质
WO2022021686A1 (zh) 虚拟对象的控制方法及装置、存储介质、电子装置
KR102645536B1 (ko) 애니메이션 처리 방법 및 장치, 컴퓨터 저장 매체 그리고 전자 디바이스
KR102103939B1 (ko) 머리 회전을 갖는 아바타 얼굴 표정 애니메이션
CN108335345B (zh) 面部动画模型的控制方法及装置、计算设备
US11514638B2 (en) 3D asset generation from 2D images
CN111714880B (zh) 画面的显示方法和装置、存储介质、电子装置
CN111028317B (zh) 虚拟对象的动画生成方法、装置、设备及存储介质
WO2023088041A1 (zh) 虚拟角色的行走动画生成方法、装置、设备及存储介质
CN111223170A (zh) 动画生成方法、装置、电子设备和存储介质
CN108771866A (zh) 虚拟现实中的虚拟对象控制方法及装置
CN111968204B (zh) 一种骨骼模型的运动展示方法和装置
Al Borno et al. Robust Physics‐based Motion Retargeting with Realistic Body Shapes
KR20230148239A (ko) 신경망을 사용하는 비디오로부터의 로버스트 얼굴 애니메이션
US20230177755A1 (en) Predicting facial expressions using character motion states
Zhou et al. Image2GIF: Generating cinemagraphs using recurrent deep q-networks
CN115115752A (zh) 虚拟服装的形变预测方法和装置、存储介质及电子设备
CN115797517B (zh) 虚拟模型的数据处理方法、装置、设备和介质
CN114359469B (zh) 生成主控对象投影的方法、装置、设备及介质
CN116524076A (zh) 动力学仿真姿态的控制方法、训练方法、装置及设备
CN116196611A (zh) 基于挥手动作的体感游戏方法
WO2023284634A1 (zh) 一种数据处理方法及相关设备
US20230267668A1 (en) Joint twist generation for animation
Jones et al. Dynamic sprites: artistic authoring of interactive animations
CN116468827A (zh) 数据处理方法及相关产品

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: 40091946

Country of ref document: HK