CN111292401B - 动画处理方法、装置、计算机存储介质及电子设备 - Google Patents

动画处理方法、装置、计算机存储介质及电子设备 Download PDF

Info

Publication number
CN111292401B
CN111292401B CN202010043321.5A CN202010043321A CN111292401B CN 111292401 B CN111292401 B CN 111292401B CN 202010043321 A CN202010043321 A CN 202010043321A CN 111292401 B CN111292401 B CN 111292401B
Authority
CN
China
Prior art keywords
information
animation
joint
control network
trained
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
CN202010043321.5A
Other languages
English (en)
Other versions
CN111292401A (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 CN202010043321.5A priority Critical patent/CN111292401B/zh
Publication of CN111292401A publication Critical patent/CN111292401A/zh
Priority to KR1020227002917A priority patent/KR102645536B1/ko
Priority to EP20913359.4A priority patent/EP4009282A4/en
Priority to PCT/CN2020/125938 priority patent/WO2021143289A1/zh
Priority to JP2022521969A priority patent/JP7407919B2/ja
Priority to US17/578,345 priority patent/US11790587B2/en
Application granted granted Critical
Publication of CN111292401B publication Critical patent/CN111292401B/zh
Priority to US18/367,913 priority patent/US20240005582A1/en
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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • 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
    • A63F13/67Generating 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 adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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
    • A63F13/65Generating 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 automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • A63F13/655Generating 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 automatically by game devices or servers from real world data, e.g. measurement in live racing competition by importing photos, e.g. of the player
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/69Involving elements of the real world in the game world, e.g. measurement in live races, real video
    • A63F2300/695Imported photos, e.g. of the player
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开提供了动画处理方法、装置,涉及人工智能领域。方法包括:获取当前时刻图形用户界面中的地形特征,并获取当前时刻与动画片段中的虚拟角色对应的状态信息和任务信息;将地形特征、状态信息和与任务信息输入至动画处理模型,通过动画处理模型对地形特征、状态信息和任务信息进行特征提取,以获取下一时刻与虚拟角色对应的关节动作信息;根据关节动作信息确定关节力矩,基于关节力矩进行渲染,以获取当前时刻与虚拟角色对应的姿态调整信息,并根据姿态调整信息对动画片段进行处理。本公开在对动画片段模仿时,根据不同的地形特征和任务信息调整虚拟角色的动作姿态,提升了动画逼真度,实现了用户与虚拟角色的交互,提高了虚拟角色的自适应力。

Description

动画处理方法、装置、计算机存储介质及电子设备
技术领域
本公开涉及人工智能技术领域,具体而言,涉及一种动画处理方法、动画处理装置、计算机存储介质及电子设备。
背景技术
随着人工智能的不断发展,越来越多的领域开始应用人工智能技术,例如医疗领域、金融领域、图像设计领域等等。以游戏设计为例,从最初的2D游戏设计逐渐发展到现在的3D游戏设计。
目前,在游戏制作中,通常会通过动画师设计多个动画片段,然后再经过游戏引擎将多个动画片段进行混合与切换,最后实现游戏中的效果。其中动画就是角色行为的一种表现方式,将一个角色对象在一段时间内的动作记录并播放就是一个完整的动画片段。但是动画师制作的动画播放效果不如在物理引擎中实时渲染的动画自然真实,并且无法与玩家交互,如无法实现变化的目标任务、无法适配动态地形等等,这使得角色的动作效果较差,大大降低了用户在游戏中的体验。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的实施例提供了一种动画处理方法、动画处理装置、计算机存储介质及电子设备,进而至少在一定程度上可以提高虚拟角色的动作效果,提升动画开发效率和用户体验。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一个方面,提供了一种动画处理方法,包括:获取当前时刻图形用户界面中的地形特征,并获取所述当前时刻与动画片段中的虚拟角色对应的状态信息和任务信息;将所述地形特征、所述状态信息和与所述任务信息输入至动画处理模型,通过所述动画处理模型对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取下一时刻与所述虚拟角色对应的关节动作信息;根据所述关节动作信息确定关节力矩,基于所述关节力矩获取所述当前时刻与所述虚拟角色对应的姿态调整信息,并根据所述姿态调整信息对所述动画片段进行处理。
根据本公开实施例的一个方面,提供了一种动画处理装置,包括:信息获取模块,用于获取当前时刻图形用户界面中的地形特征,并获取所述当前时刻与动画片段中的虚拟角色对应的状态信息和任务信息;模型处理模块,用于将所述地形特征、所述状态信息和与所述任务信息输入至动画处理模型,通过所述动画处理模型对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取下一时刻与所述虚拟角色对应的关节动作信息;姿态调整模块,用于根据所述关节动作信息确定关节力矩,基于所述关节力矩获取所述当前时刻与所述虚拟角色对应的姿态调整信息,并根据所述姿态调整信息对所述动画片段进行处理。
在本公开的一些实施例中,基于前述方案,所述动画处理装置还配置为:当所述当前时刻为所述动画片段的起始时刻时,根据所述虚拟角色在所述动画片段起始时刻的姿态信息确定所述状态信息;当所述当前时刻为所述动画片段的非起始时刻时,根据上一时刻与所述虚拟角色对应的关节动作信息确定所述状态信息。
在本公开的一些实施例中,基于前述方案,所述动画处理装置还配置为:基于所述动画片段,获取与所述虚拟角色对应的多个时刻的姿态调整信息;根据所述多个时刻的姿态调整信息确定目标动作序列。
在本公开的一些实施例中,基于前述方案,所述地形特征为自定义地形的特征或现实地形的特征;所述状态信息包括所述虚拟角色各关节的姿态、速度和相位;所述任务信息包括与所述虚拟角色对应的目标速度方向或目标点坐标。
在本公开的一些实施例中,所述动画处理模型包括第一控制网络和第二控制网络;基于前述方案,所述模型处理模块包括:第一特征提取单元,用于通过所述第一控制网络对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取与关键关节对应的目标状态信息;第二特征提取单元,用于将所述目标状态信息作为目标任务信息,并将所述状态信息和所述目标任务信息输入至所述第二控制网络,通过所述第二控制网络对所述状态信息和所述目标任务信息进行特征提取,以获取所述关节动作信息。
在本公开的一些实施例中,所述第一控制网络包括卷积单元、第一全连接层、第二全连接层和第三全连接层;基于前述方案,所述第一特征提取单元配置为:通过所述卷积单元对所述地形特征进行特征提取,以获取与地形对应的第一特征信息;通过所述第一全连接层对所述第一特征信息进行特征组合,以获取第二特征信息;通过所述第二全连接层对所述第二特征信息、所述状态信息和所述任务信息进行特征组合,以获取第三特征信息;通过所述第三全连接层对所述第三特征信息进行特征组合,以获取所述目标状态信息。
在本公开的一些实施例中,所述第二控制网络包括第四全连接层和第五全连接层;基于前述方案,所述第二特征提取单元配置为:通过所述第四全连接层对所述状态信息和所述目标任务信息进行特征组合,以获取第四特征信息;通过所述第五全连接层对所述第四特征信息进行特征组合,以获取所述关节动作信息。
在本公开的一些实施例中,基于前述方案,所述姿态调整模块配置为:根据所述关节动作信息确定关节的当前位置和目标位置;根据所述当前位置确定所述关节的当前速度和当前加速度,并根据所述目标位置确定所述关节的目标速度;根据所述当前速度和所述当前加速度确定下一控制周期后与所述关节对应的第一位置和第一速度;根据比例系数、微分增益系数、所述当前位置、所述目标位置、所述目标速度、所述第一位置和所述第一速度计算所述关节力矩。
在本公开的一些实施例中,基于前述方案,所述姿态调整模块配置为:将所述关节力矩输入至物理引擎,通过所述物理引擎将所述关节力矩施加到对应的关节上并进行渲染,以生成所述姿态调整信息。
在本公开的一些实施例中,基于前述方案,所述动画处理装置还包括:训练模块,用于在通过所述动画处理模型根据所述地形特征、所述状态信息和所述任务信息进行特征提取之前,对待训练动画处理模型进行训练,以获取所述动画处理模型。
在本公开的一些实施例中,所述待训练动画处理模型包括待训练第一控制网络和待训练第二控制网络;基于前述方案,所述训练模块包括:第一训练单元,用于获取地形特征样本、角色状态样本和任务信息样本,根据所述地形特征样本、所述角色状态样本和所述任务信息样本对所述待训练第一控制网络进行训练,以获取所述第一控制网络;第二训练单元,用于根据动画片段样本中与所述虚拟角色的所述关键关节对应的状态信息样本和与所有关节对应的关节动作信息样本对所述第二控制网络进行训练,以获取所述第二控制网络;其中,所述待训练第一控制网络和所述待训练第二控制网络分别单独训练;在训练所述待训练第一控制网络时,所述待训练第一控制网络连接有具有固定参数的第二控制网络。
在本公开的一些实施例中,基于前述方案,所述第二训练单元配置为:获取多个动画片段样本,根据所述虚拟角色的起始姿态从所述多个动画片段样本中确定目标动画片段样本;获取所述目标动画片段样本中与所述关键关节对应的状态信息样本,并将所述状态信息样本作为目标任务信息;获取与所述虚拟角色的所有关节对应的关节动作信息样本;根据所述目标任务信息和所述关节动作信息样本对所述待训练第二控制网络进行训练。
在本公开的一些实施例中,基于前述方案,所述待训练第一控制网络包括第一待训练执行子网络和第一待训练评估子网络,所述待训练第二控制网络包括第二待训练执行子网络和第二待训练评估子网络,其中所述第一待训练执行子网络和所述第一待训练评估子网络的结构相同,所述第二待训练执行子网络和所述第二待训练评估子网络的结构相同。
根据本公开实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例所述的动画处理方法。
根据本公开实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上述实施例所述的动画处理方法。
在本公开的实施例所提供的技术方案中,首先获取当前时刻图形用户界面中的地形特征和动画片段中与虚拟角色对应的状态信息、任务信息;然后通过动画处理模型对地形特征、状态信息和任务信息进行特征提取,以获取下一时刻与虚拟角色对应的关节动作信息;最后根据关节动作信息确定关节力矩,基于关节力矩获取当前时刻与虚拟角色对应的姿态调整信息,并根据姿态调整信息对动画片段进行处理。本公开的技术方案能够在对动画片段进行模仿的同时,还能够根据不同的地形特征和任务信息对虚拟角色的动作姿态进行调整,一方面提升了动画的逼真度,另一方面实现了用户与虚拟角色的交互,并提高了虚拟角色的自适应力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的技术方案的示例性系统架构的示意图;
图2示意性示出了相关技术中蒙皮动画中的虚拟角色的组成结构;
图3示意性示出了根据本公开的一个实施例的动画处理方法的流程示意图;
图4示意性示出了根据本公开的一个实施例的游戏场景与现实场景融合后的场景示意图;
图5示意性示出了根据本公开的一个实施例的稠密缺口地形的界面示意图;
图6示意性示出了根据本公开的一个实施例的混合障碍物地形的界面示意图;
图7示意性示出了根据本公开的一个实施例的人形角色行走动作第一帧的动作信息;
图8示意性示出了根据本公开的一个实施例的地形的界面示意图;
图9示意性示出了根据本公开的一个实施例的动画处理模型的结构示意图;
图10示意性示出了根据本公开的一个实施例的第一控制网络的结构示意图;
图11示意性示出了根据本公开的一个实施例的第二控制网络的结构示意图;
图12示意性示出了根据本公开的一个实施例的强化学习的流程示意图;
图13示意性示出了根据本公开的一个实施例的动画处理模型的算法框架架构图;
图14A-14J示意性示出了根据本公开的一个实施例的动画处理模型控制的虚拟角色在平地上奔跑的动作序列;
图15A-15E示意性示出了根据本公开的一个实施例的人形虚拟角色在稠密缺口地形上奔跑的动作序列;
图16A-16L示意性示出了根据本公开的一个实施例的人形虚拟角色在混合障碍物地形上奔跑的动作序列;
图17示意性示出了根据本公开的一个实施例的动画处理装置的框图;
图18示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本公开实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、网络102和服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线通信链路、无线通信链路等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备、网络和服务器。比如服务器103可以是多个服务器组成的服务器集群等。终端设备101可以是诸如笔记本、便携式电脑、台式电脑等具有显示屏幕的终端设备。
在本公开的一个实施例中,终端设备101中搭载有游戏,该游戏中包含动画片段,在游戏运行的过程中,可以通过游戏中的相关控件为虚拟角色设置障碍物,也可以通过终端设备101中的摄像单元对现实场景进行拍摄,并将现实场景融入游戏画面中以为虚拟角色设置障碍物。同时用户也可以根据动画片段中的场景为虚拟角色设置任务,例如让虚拟角色往目标方向或目标点移动等等。终端设备101可以通过网络102将当前时刻图形用户界面中的地形特征、当前时刻动画片段中与虚拟角色对应的任务信息以及状态信息发送至服务器103,通过服务器103对地形特征、任务信息和状态信息进行处理,以获取当前时刻与虚拟角色对应的姿态调整信息,在实现对动画片段进行模仿的同时还能使虚拟角色具有自适应性,并能完成设置的任务。具体地,可以通过动画处理模型对地形特征、状态信息和任务信息进行特征提取,以获取下一时刻与虚拟角色对应的关节动作信息,基于该关节动作信息可以确定关节力矩,并通过物理引擎将关节力矩施加于对应的关节上进行渲染,以获取当前时刻与虚拟角色对应的姿态调整信息。其中与虚拟角色对应的状态信息可以是动画片段起始时刻与虚拟角色对应的姿态信息,也可以是根据上一时刻的关节动作信息确定的状态信息。动画片段具有一定时长,通过重复上述步骤可以获取与虚拟角色对应的多个时刻的姿态调整信息,根据该多个时刻的姿态调整信息可以确定目标动作序列,该目标动作序列可构成一动画片段,该动画片段与正在运行的游戏中的动画片段相似,且逼真度更高,区别就在于动画片段中的虚拟角色可以自适应用户设置的地形并完成用户设置的任务,也就是说,本公开实施例的技术方案能够增强用户与虚拟角色的互动,提升虚拟角色的自适应性,进一步提升用户体验。
需要说明的是,本公开实施例所提供的动画处理方法可由服务器执行,相应地,动画处理装置可设置于服务器中。但是,在本公开的其它实施例中,也可以由终端设备执行本公开实施例所提供的动画处理方法。
在本领域的相关技术中,以3D游戏为例,3D游戏中的角色动画通常指蒙皮动画,图2示出了蒙皮动画中虚拟角色的组成结构,如图2所示,蒙皮动画中的虚拟角色由骨骼、蒙皮和动画组成,其中骨骼为由关节搭建出的、可以活动的骨架,是活动的虚拟主体,驱动整个角色运动,但不会在游戏中被渲染出来;蒙皮为包裹在骨骼周围的三角形网格,网格的每个顶点,被一个或多个骨骼控制;动画为每个骨骼在一定时间点上所处的位置或方向等变化,三维空间一般采用矩阵表示。通常动画师预先通过3D动画制作软件设计制作大量的动画片段,在游戏进行的过程中,程序在合适的时间播放场景所需的动画片段。如果特别必要,也可以在渲染前由程序做动画后期处理,比如使用逆运动学(Inverse Kinematics,IK)的方法,根据当时的实际环境计算出虚拟角色手脚的准确位置,对动作进行调整。但后期处理的效果有限,总体上,动画的品质差不多完全取决于动画师的功力。由动画师直接制作动画,实际上是在游戏里直接播放动画,缺少物理引擎对真实世界物理规律的模拟,人物动作不够自然真实。现在业界也有一些机器学习方案,训练物理动画AI,但往往学习效果不佳,且一个模型只能习得一种动作,表现单一。
另外,在现代游戏制作中,动画实现的主要方法是播放动画师制作的动画片段,基本上只适用于预先定义好的可枚举的场景,不具备自适应环境的能力。角色自适应环境,是指角色动画能够在未知环境下展现出与环境相匹配的姿态。这里的“未知”是相对于预先制作动画时所设想的环境而言的:在使用动画片段时,实际环境有或大或小的变化。此外,也可以在外来干扰物下感知碰撞,表现出动作偏离和修正,有很强的真实感。要实现对环境的自适应,至少需要使用IK技术,让角色的肢体末端能与环境或目标在位置上对齐;若要使角色对环境的反馈很逼真,还需要引入“物理”(即刚体动力学的模拟),计算出角色动作合理的速度和平滑的过渡过程。通常固定地形,将角色在地形上移动的动作过程制作成动画,对不自然之处进行合适的修改,本质上还是播放动画,并且角色在地形上的移动不自然。
鉴于相关技术中存在的问题,本公开实施例提供了一种动画处理方法,该方法是基于人工智能实现的,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本公开实施例提供的方案涉及人工智能的图像处理技术,具体通过如下实施例进行说明:
本公开实施例首先提供了一种动画处理方法,图3示意性示出了根据本公开的一个实施例的动画处理方法的流程图,该动画处理方法可以由服务器来执行,该服务器可以是图1中所示的服务器103。以对游戏动画的处理为例,参照图3所示,该动画处理方法至少包括步骤S310至步骤S330,详细介绍如下:
在步骤S310中,获取当前时刻图形用户界面中的地形特征,并获取所述当前时刻与动画片段中的虚拟角色对应的状态信息和任务信息。
在本公开的一个实施例中,为了提高游戏的趣味性,增强用户与游戏中虚拟角色的互动,在游戏进程中,用户可以人为的为虚拟角色设置障碍,以在图形用户界面中形成新的地形,例如在原始的动画片段中,虚拟角色是沿着平路一直往前走的,那么用户可以在虚拟角色的移动路劲上设置路障,如石块、台阶、凹坑等障碍物,也可以设置空中的障碍物,如在虚拟角色的移动路径上设置屋檐、飞鸟等障碍物,虚拟角色需要躲避掉这些障碍物才能继续前进。为了使本公开的技术方案清晰,下面以路障为例进行说明,该路障具体可以是路面上的缺口、凸起、台阶等障碍物。
在本公开的一个实施例中,用户设置的路障可以通过游戏内置的控件进行设置,也可以根据现实场景进行设置,具体地,可以在游戏交互界面中设置路障设置按钮,当用户触发该路障设置按钮时,能够弹出一列表,用户从列表中选择想要为虚拟角色设置的路障,当用户确定后,即可在游戏界面中出现相应的路障;在增强现实类游戏中,可以通过用户使用的终端设备所带的摄像单元对现实场景进行拍摄,游戏引擎能够将现实场景与游戏场景进行融合,图4示出了游戏场景与现实场景融合后的场景示意图,如图4所示,游戏场景中存在一个妖灵V,现实场景中有多级台阶S,并且在最高的台阶的平台上放有多辆电动车M,通过将游戏场景与现实场景进行融合,可以将妖灵V置于现实场景的台阶S上。
在本公开的一个实施例中,在游戏中设置障碍物通常是设置路面障碍物,使用较多的障碍物随机生成的地形有稠密缺口和混合障碍物,图5示出了稠密缺口地形的界面示意图,如图5所示,稠密缺口地形设计为在地面G上有连续的多个缺口C,缺口宽度不同,每段之间有一定间距。图6示出了混合障碍物地形的界面示意图,如图6所示,混合障碍物地形在一段长度的地面G上包含缺口C、台阶D、凸起E等障碍物,各障碍物高度宽度不同,且有一定间距。
在本公开的一个实施例中,除了为虚拟角色设置路障,还可以在虚拟角色移动的过程中,为虚拟角色设置任务,例如在虚拟角色的前方有一个足球,那么可以设置任务为“踢中足球”,并将足球的坐标位置作为目标点,以根据该目标点确定任务信息;还可以为虚拟角色设置目标速度方向,以驱动虚拟角色向某一方向移动,根据该目标速度方向可确定任务信息。
在本公开的一个实施例中,虚拟角色的姿态、动作在连续的时间空间中是相互关联的,例如迈步的人形虚拟角色,当前时刻人形虚拟角色的右脚抬起,那么下一时刻右脚就会有落地的趋势,等等,因此想要确定下一时刻虚拟角色的关节动作信息,就需要基于当前时刻虚拟角色的状态信息进行处理,该状态信息用于描述虚拟角色各关节的状态,具体包括关节的姿态、速度和相位。因而,为了确定当前时刻虚拟角色如何改变其姿态以躲避障碍及完成任务,可以获取当前时刻图形用户界面中的地形特征、与虚拟角色对应的状态信息和任务信息,通过对该些信息进行处理,以获取相应地姿态调整信息。
在本公开的一个实施例中,动画师在制作动画片段时,可能将动画片段设置为不同的格式,在提取动画片段中虚拟角色的状态信息时,可以先通过某些软件(如,MotionBuilder,3ds Max)将动画片段的格式转换为FBX或BVH格式的文件,然后再提取状态信息。
在本公开的一个实施例中,以人形虚拟角色为例,人形虚拟角色共有15个关节,分别为:根关节,胸膛,脖子,右腿,左腿,右膝,左膝,右踝,左踝,右肩,左肩,右肘,左肘,右手,左手,其中根关节通常指盆骨位置,记为root。通常而言,人物虚拟角色的骨骼关节有父子层级结构,例如肩膀为父关节,手肘为肩膀的子关节,手腕为手肘的子关节,等等。从父关节位置进行对应平移,即是子关节位置。所以,子关节位置坐标无需记录,只需要知道最顶层的根关节位置坐标,然后根据动画师设计动画时设置的骨骼大小进行平移就可得到子关节位置坐标。对于动作而言,动画片段记录的是人物关节的姿态信息,只要知道每个关节的位置和旋转,就可构建出虚拟角色当前的动作。除根关节位置和旋转外,再记录其它关节对应的旋转,即可构造出虚拟角色当前完整的姿态。图7示出了人形角色行走动作第一帧的动作信息,如图7所示,第一帧中的动作信息分为三行,第一行中的第一个数0.0333333表示第一帧的时长,单位为秒,后续三个值(001389296,0.8033880000000001,0.0036694320000000002)是第一帧根关节在三维空间的坐标;第二行的四个数(0.5306733251792894,-0.5324986777087051,-0.4638864011202557,-0.46865807049205305)是第一帧根关节的旋转信息;第三行的四个数(0.7517762842400346,0.0012912812309982618,-0.0033 740637622359164,0.6594083459744481)是根关节对应的第一个子关节的旋转,图中省略了其余子关节的旋转信息。其中,旋转信息由单位四元数表示,单位四元数(Unit quaternion)可以用于表示三维空间里的旋转,它与常用的三维正交矩阵和欧拉角是等价的,但是避免了欧拉角表示法中的万向锁问题。若三维空间里的一个点的笛卡尔坐标为(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、-j、-k分别代表i、j、k旋转的反向旋转。
在本公开的一个实施例中,输入至动画处理模型中的状态信息具体为197维向量,其中包含的姿态为106维、速度为90维、相位为1维,具体地,姿态记录了人形角色15个关节的位置和旋转信息,其中,位置用三维坐标表示,旋转信息用单位四元数表示,共15×7=105维,另外还要记录当前时刻虚拟角色根关节坐标的y轴值,1维,用于与世界坐标系的对齐;速度记录了每个关节的线速度和角速度,分别用长度为3的向量表示,对应x、y、z轴的速度,共15×(3+3)=90维;相位记录了当前时刻是动画片段总时间长度的哪个位置,共1维。
在本公开的一个实施例中,地形特征可以是一个二维矩阵,矩阵中的每一个元素为对应点地形高度与虚拟角色当前所在位置高度的相对高度差,覆盖虚拟角色前方预设范围内的区域的高度。该矩阵的大小及覆盖地形的面积,可以根据实际应用场景调整,例如可以将二维矩阵的大小设置为100×100,覆盖地形的面积设置为10m×10m,等等,本公开实施例对此不做具体限定。图8示出了一种地形的界面示意图,如图8所示,地形为一方形区域,虚拟角色位于左侧边线的中点,箭头表示虚拟角色A的移动方向,由于虚拟角色A的移动不涉及转弯,仅沿水平方向前进,且与障碍物B相互平行,在竖直方向上高度一致,因此可以将地形特征确定为100×1的矩阵,覆盖虚拟角色前方10m的地形特征。
在步骤S320中,将所述地形特征、所述状态信息和与所述任务信息输入至动画处理模型,通过所述动画处理模型对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取下一时刻与所述虚拟角色对应的关节动作信息。
在本公开的一个实施例中,在获取当前时刻的地形特征、状态信息和任务信息后,可以将该些信息输入至动画处理模型,通过该动画处理模型对地形特征、状态信息和任务信息进行特征提取,以获取下一时刻与虚拟角色对应的关节动作信息。其中关节动作信息为虚拟角色在面对当前时刻的地形特征和任务特征时各关节下一时刻可能做出的动作信息,关节动作信息具体为关节的旋转信息,用4维长度表示,包含除根关节之外其它关节的旋转信息,共(15-1)×4=56维。根关节的姿态可以根据其它关节在力矩在用下进行移动旋转后,由物理引擎模拟得到,例如人形虚拟角色在平地上向前行走,物理引擎根据由腿部、膝部等关节的旋转信息确定的力矩进行移动旋转后,脚部受到的向后的静摩擦力能够依次传到小腿、膝部、大腿,直至根关节处,根关节在力的作用下会被推着向前,因此关节动作信息中可以缺省根关节的动作信息。
在本公开的一个实施例中,可以通过基于强化学习的动画处理模型对获取的地形特征、状态信息和任务信息进行特征提取,以获取下一时刻与虚拟角色对应的关节动作信息。图9示出了动画处理模型的结构示意图,如图9所示,动画处理模型900包括第一控制网络901和第二控制网络902,第一控制网络901具体为一高层控制器(HLC,High-LevelController),用于对虚拟角色的关键关节的动作进行指导,该关键关节是与地形特征和虚拟角色的状态信息、任务信息所对应的部分关节,例如人形虚拟角色在奔跑时,主要是腿部动作的变化,通过大腿带动小腿以及脚部进行运动,那么关键关节就是大腿关节,同样地,人形虚拟角色在投掷时,主要是手臂和手部动作的变化,通过手肘带动手腕和手进行运动,那么关键关节就是肘部;第二控制网络902具体为一低层控制层(LLC,Low-LevelController),用于输出与所有关节对应的关节动作信息。通过分别设置第一控制网络和第二控制网络能够更好地适应复杂的动画场景和任务,另外,第一控制网络主要用于指导特定的动作,第二控制网络主要用于控制角色的移动,针对训练好的第二控制网络可以在其上连接多个针对不同特定动作的第一控制网络,例如训练好的第二控制网络能够根据足部的目标状态信息输出虚拟角色足部运动的关节动作信息,而对应足部的目标状态的动作可以是虚拟角色踢球的动作或者虚拟角色跳跃的动作,那么同一第二控制网络既可以与指导虚拟角色踢球的第一控制网络连接,又可以与指导虚拟角色跳跃的第一控制网络连接。通过由第一控制网络和第二控制网络组成的动画处理模型对动画片段进行处理,能够提升动作效果,提高动作的逼真度,并且能够适配各种地形,提高环境自适应性。
具体地,第一控制网络901对当前时刻的地形特征、与虚拟角色对应的状态信息和任务信息进行特征提取,以获取与关键关节对应的目标状态信息;然后将目标状态信息作为目标任务信息,将状态信息和目标任务信息输入至第二控制网络902,通过第二控制网络902对与虚拟角色对应的状态信息和目标任务信息进行特征提取,以获取与虚拟角色的所有关节对应的关节动作信息。以人形虚拟角色跨越障碍物为例,在高低不同的障碍物前,为使人形虚拟角色顺利跨越,人形虚拟角色抬腿角度不同、跨步大小也不同,第一控制网络901根据地形特征、任务信息和状态信息可以输出角色两大腿关节旋转和根关节在平面上的速度方向,角色两大腿关节旋转和根关节在平面上的速度方向即为关键关节对应的目标状态信息,并将该输出作为第二控制网络902的目标任务,指导人形虚拟角色进行抬腿。相应地,第一控制网络901的输出可以是10维的向量,即衡量两大腿旋转的单位四元数和一个长度为2的单位向量。当然,目标状态信息除了是角色两大腿关节旋转和跟关节在平面上的速度方向之外,还可以是两个手关节的旋转、两个肩关节的旋转等等,根据不同的障碍物类型和任务信息,目标状态信息有所不同。
进一步的,图10示出了第一控制网络的结构示意图,如图10所示,第一控制网络901包括卷积单元1001、第一全连接层1002、第二全连接层1003和第三全连接层1004,其中卷积单元1001可以包含多个大小不同的卷积层,如图中所示的第一组卷积层大小为8×8,第二组卷积层和第三组卷积层的大小均为4×4,并且第一全连接层1002、第二全连接层1003和第三全连接层1004的大小互不相同,其中第一全连接层1002、第二全连接层1003和第三全连接层1004中包含的神经元的数量分别为64、1024、512。在将地形特征T、任务信息gH和状态信息sH输入至第一控制网络后,首先通过卷积单元1001对地形特征T进行特征提取,以获取与地形对应的第一特征信息;接着通过第一全连接层1002对第一特征信息进行特征组合,以获取第二特征信息;然后通过第二全连接层1003对第二特征信息、状态信息sH和任务信息gH进行特征组合,以获取第三特征信息;最后通过第三全连接层对第三特征信息进行特征组合,以获取目标状态信息aH
图11示出了第二控制网络的结构示意图,如图11所示,第二控制网络902包括第四全连接层1101和第五全连接层1102,第四全连接层1101和第五全连接层的大小不同,具体地,第四全连接层1101可包含1024个神经元,第五全连接层1102可包含512个神经元。在第一控制网络901输出目标状态信息aH后,可将其作为第二控制网络902的目标任务信息gL,并与状态信息sL同时输入至第二控制网络902,通过第四全连接层1101对状态信息sL和目标任务信息gL进行特征组合,以获取第四特征信息,接着通过第五全连接层1102对第四特征信息进行特征组合,以获取关节动作信息aL
在本公开的一个实施例中,由于第一控制网络901是对虚拟角色的关键关节的动作进行指导,即指导特定的动作,而第二控制网络902是输出虚拟角色所有关节的关节动作信息,形成连续的动作,即控制角色的移动,因此第一控制网络901和第二控制网络902的调用周期不同,也就是说,只有当角色动作或关键关节的状态发生变化时才需要调用第一控制网络901,而虚拟角色只要在运动,其每个关节都会对应相应的关节动作信息,那么就需要时时调用第二控制网络902。以虚拟角色跨越路面障碍物为例,第一控制网络901只有在虚拟角色迈步时需要调用,而第二控制网络902则是时时调用的,控制虚拟角色做连续动作。通过对第一控制网络901和第二控制网络902设置不同的调用周期,可以节省时间和资源,提高动画处理模型的处理效率,进而提高动作生成效率。在本公开的实施例中,第一控制网络901的调用频率为2Hz,第二控制网络902的调用频率为30Hz,对于PD控制器而言,物理模拟频率为3000Hz。在实际使用时,会根据当前时刻的地形特征、任务信息和状态信息判断是否需要调用第一控制网络901,但每一时刻都需要调用第二控制网络902预测下一时刻时虚拟角色的关节动作信息。在不调用第一控制网络901的时候,第二控制网络902的输入不变。
在本公开的一个实施例中,在使用动画处理模型对地形特征、状态信息和任务信息进行特征提取之前,需要对待训练的动画处理模型进行训练,以获取稳定的动画处理模型。在训练动画处理模型时,通常采用的方法是将地形特征输入到模型中,但是该方法的效果一般,容易训练失败,角色动作略为僵硬,只适应比较简单的地形,因此在本公开实施例中,将模型输入中的地形特征拆分处理,采用分层强化学习,加强动画处理模型对地形和动作的敏感度,实现更复杂地形的迁移。强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期收益。运动控制问题已经成为强化学习的标准基准,深度强化学习方法被证明适用于包括操纵和移动的多种任务。
在本公开的一个实施例中,强化学习包括多个基本概念,分别为:环境、智能体、状态、动作、奖励、值函数和策略,其中,环境是一个外部系统,智能体处于这个系统中,能够感知到这个系统并且能够基于感知到的状态做出一定的行动;智能体是一个嵌入到环境中的系统,能够通过采取行动来改变状态;状态是指当前环境一个时刻的状态信息;动作是指主体做出的行为;奖励是一个标量,指环境对当前动作或者状态的一个奖励;值函数,奖励定义的是立即的收益,而值函数定义的是长期的收益,它可以看作是累计的奖励,常用V来表示;策略就是一个从当环境状态到行为的映射,常用π表示,即输入状态,模型输出该状态下应该执行的动作。图12示出了强化学习的流程示意图,如图12所示,在某一时刻t时,智能体输入当前状态St,根据当前策略,智能体能够输出动作At;执行动作At与环境交互,根据完成目标的情况,环境反馈奖励Rt和下一时刻t+1下智能体的状态St+1;智能体根据奖励调整策略输出下一时刻的动作At+1;如此循环,不断调整策略,最终能够训练出能完成目标的策略π。
在本公开的一个实施例中,在训练动画处理模型时,是基于AC框架进行训练的,AC框架是一种集成了值函数估计算法和策略搜索算法的框架,包含两个网络:行动网络(Actor Network)和评估网络(Critic Network),其中行动网络训练的是当前策略,用于输出动作,评估网络学习的是价值函数,用于输出当前状态价值V(s),此价值用于评估状态的好坏。图13示出了动画处理模型的算法框架架构图,如图13所示,该框架包含行动网络1301、评估网络1302和环境1303,行动网络1301根据当前的状态和策略输出动作,环境1303根据行动网络1301输出的动作以奖励的形式进行反馈,评估网络1302根据执行动作后生成的状态和环境1303反馈的奖励进行评估,确定当前状态价值,并反馈给行动网络1301,以使行动网络1301对策略进行调整。重复上述流程,不断进行训练,直到动画处理模型达到稳定。评估网络1302输出的当前状态价值的学习标准是利用时间差分法对环境1303反馈的一系列奖励计算而来的,用于指导评估网络的学习,具体地,以路径模拟为例,可以获取路径上各节点对应的奖励R1~Ri,i为路径上节点的数量,想要获取路径上某一节点t对应的状态价值V(St),t为介于1和i之间的值,那么可以根据获得的奖励R和后继状态的状态价值估计值,更新St的价值V(St),在多次迭代更新后,将得到稳定的价值函数,并且在经过一条路径采样后,可对价值函数进行多次更新,所采用的评估算法具体为V(St)=V(St)+α(Rt+1+V(St+1)-V(St)),α为系数。时间差分法是强化学习中的一个中心思想,类似蒙特卡洛方法,其结合了蒙特卡罗的采样方法(即做试验)和动态规划方法的bootstrapping(利用后继状态的值函数估计当前值函数),能够直接从经验中学习而不需要对于环境的完整知识,类似动态规划方法,能够在现有的估计结果上进行提升而不需要等待整个事件结束,提高了学习效率。
在本公开的一个实施例中,在模型训练时,物理引擎中有两个角色,分别为运动学角色和物理角色,运动学角色不具有物理属性,仅用于执行动画设计师所设计的动作片段中的动作,通过运动学的方法使其关节执行动画片段中的参考动作即可,而物理角色是以运动学角色为标准和模板进行学习的,其具有物理属性,可根据力矩进行控制,该物理属性具体为力矩、速度、重力、碰撞效果等。同时,具有物理属性的物理角色利用模型输出的姿态计算出每一关节的力矩,在物理引擎里进行动作模仿。由物理引擎执行每一个动作后模拟环境的情况,产生真实效果。每个时刻,奖励的计算即衡量两个角色当前姿态、速度、角速度等的差别,差别越小,奖励越大。最终奖励将多个奖励分量加权求和,权重可根据需要调整。环境根据姿态模仿的好坏给出奖励,激励角色姿态与参考动作的姿态保持一致,两者越接近,则奖励越高,反之越低。
在本公开的一个实施例中,奖励根据公式(1)确定,公式(1)具体如下:
Figure BDA0002368503220000191
其中,rt I为t时刻模仿的奖励值,rt G为t时刻完成任务目标的奖励值,权重
Figure BDA0002368503220000192
代表了模仿动作的比重,权重
Figure BDA0002368503220000193
代表了完成任务的比重,在工程中可以设置,
Figure BDA0002368503220000194
为了使物理角色和运动学角色的动作一致,可以设置一些标准对物理角色和运动学角色进行拟合,rt I公式涉及运动学上的相似度,包括五部分:姿态奖励rt p、速度奖励rt v、末端关节奖励rt e、根关节姿态奖励rt r、质心姿态奖励rt c。其中,姿态和速度为各个关节的姿态和速度,两角色的动作要一致,姿态和速度必然要一致,因此可以设置姿态奖励和速度奖励;末端关节指手部和足部,为了让物理角色的末端关节与运动学角色的末端关节对齐,所以对末端关节设置末端关节奖励;根关节是所有关节的顶层关节,两个角色动作要一致,根关节也应当一致,因此可以设置根关节姿态奖励;另外,为了保证物理角色走路稳一点,不颤抖,就需要保证物理角色的质心与运动学角色的质心一致,因此可以设置质心姿态奖励,通过设置上述奖励,可以保证物理角色与运动学角色的动作最大程度的一致。各个奖励对应的权重为(wp,wv,we,wr,wc)=(0.5,0.05,0.15,0.2,0.1)。其中运动学角色的项目右上角标记*。以姿态分量为例,其中
Figure BDA0002368503220000201
是运动学角色第j个关节的姿态,qj是模拟角色第j个关节的姿态。公式(1)可转换为公式(2),具体如下所示:
Figure BDA0002368503220000202
其中,rt p描述姿态的相似度,以各个关节位置、旋转与目标值之间的差异来表示,
Figure BDA0002368503220000203
rt v描述速度的相似度,以各个关节的线速度与目标值之间的差异来表示,
Figure BDA0002368503220000204
rt e描述末端关节姿态的相似度,以手、足关节位置之间的差异来表示,
Figure BDA0002368503220000205
rt r描述根关节相似度,
Figure BDA0002368503220000206
rt c描述质心速度相似度,
Figure BDA0002368503220000207
rt G描述角色达成目标的好坏,一般衡量角色运动实际情况和目标之间的差距。例如,当目标为移动方向gt,那么rt G可计算在地面前进方向vt与目标gt之间的角度差θ的大小,如公式(3)所示:
Figure BDA0002368503220000208
值得注意的是,如果虚拟角色没有学会动作摔倒,则当前训练路径结束,奖励值为0。
在本公开的一个实施例中,待训练的动画处理模型包括待训练第一控制网络和待训练第二控制网络,在训练前,可以获取多个动画片段样本,该些动画片段样本中具有不同的地形特征和与虚拟角色对应的任务信息,对应不同的地形特征和任务信息,虚拟角色的姿态、动作不同。由于本公开实施例的动画处理模型中第一控制网络根据地形特征、任务信息和状态信息输出关键关节对应的目标状态信息,然后将目标状态信息作为目标任务信息输入至第二控制网络进行处理输出关节动作信息,可以用于处理复杂的任务,如果将第一控制网络和第二控制网络同时训练,在第一控制网络输出目标状态信息存在误差时,将存在误差的目标状态信息输入到第二控制网络,并根据第二控制网络输出的关节动作信息反向训练动画处理模型,会导致动画处理模型不稳定,进而无法有效处理复杂的任务,因此为了保证动画处理模型能够处理复杂任务,需要在训练时,将待训练第一控制网络和待训练第二控制网络分别单独训练,当待训练第一控制网络训练完成后,再对带有固定参数的第二控制网络的待训练第一控制网络进行训练,以获取第一控制网络。
在本公开的一个实施例中,动画处理模型是基于AC算法框架训练的,且动画处理模型中的待训练第一控制网络和待训练第二控制网络分别单独训练,因此可以设置待训练第一控制网络和待训练第二控制网络分别包含一对AC网络,即待训练第一控制网络包括第一待训练行动子网络和第一待训练评估子网络,待训练第二控制网络包括第二待训练行动子网络和第二待训练评估子网络,进一步地,还可以设置第一待训练行动子网络和第一待训练评估子网络的结构相同,第二待训练行动子网络和第二待训练评估子网络的结构相同,第一待训练行动子网络和第一待训练评估子网络的结构可参见图10,待训练第二行动子网络和第二待训练评估子网络的结构可参见图11,区别仅在于输入和输出的信息不同。值得注意的是,在待训练第一控制网络和待训练第二控制网络完成训练后,只需调用其中的第一行动子网络和第二行动子网络即可,以通过第一行动子网络根据输入的地形特征、任务信息和状态信息输出与关键关节对应的目标状态信息aH,进而通过第二行动子网络根据目标状态信息和状态信息输出虚拟角色所有关节的关节动作信息aL
以人形虚拟角色躲避路障为例,在训练待训练第二控制网络时,可以使用动画片段集在平地上训练。该动画片段集包含多个动画片段样本,涵盖了虚拟角色在不同高度障碍物前不同抬腿和迈步姿态,起始动作相近,且只有一步,例如动画片段集中共有15个动画片段样本,每个动画片段样本长0.5s。训练时,可以从多个动画片段样本中选择最合适的动画进行训练。
在获取动画片段集后,可以对各个动画片段样本进行镜像处理,即角色迈右腿变化为迈左腿,角色迈左腿变化为迈右腿,以实现数据增强,然后对每个动作片段中的角色起始姿态和脚部落地的姿态进行统计。由于第二控制网络是将第一控制网络的输出作为目标任务的,因此在训练待训练第二控制网络时,可以预先设置虚拟角色的起始姿态,根据该起始姿态可以从动画片段集中确定目标动画片段样本,并根据目标动画片段样本确定目标任务,以使待训练第二控制网络根据目标动画片段样本进行学习。在虚拟角色完成一次迈步准备开始下一次迈步时,可以重复上述步骤,获取与起始姿态相同或相近的目标动画片段样本,对待训练第二控制网络进行训练。在确定目标动画片段样本时,可以将起始姿态与动画片段集中的各个动画片段样本进行比对,获取该起始姿态与各个动画片段样本中虚拟角色姿态的相似度,然后将多个相似度按照由大到小的顺序排序形成序列,最后可以将对应最大相似度的动画片段样本作为目标动画片段样本,也可以从序列中依次获取预设数量的相似度,将该些相似度对应的动画片段样本中的任意一个作为目标动画片段样本,该预设数量可以根据实际需要进行设定,例如可以是3个、5个等等。在确定目标动画片段样本后,提取其中与关键关节对应的状态信息样本,并将状态信息样本作为目标任务信息,同时获取与虚拟角色所有关节对应的关节动作信息样本;接着将目标任务信息输入至待训练第二控制网络中进行训练,当待训练第二控制网络输出的关节动作信息与关节动作信息样本相同或相近时,说明待训练第二控制网络的训练完成。其中动作信息样本具体为脚部落地时运动学角色两大腿的旋转
Figure BDA0002368503220000221
Figure BDA0002368503220000222
以及根关节在平面上的速度方向
Figure BDA0002368503220000223
Figure BDA0002368503220000224
描述落地脚对应大腿关节的旋转,
Figure BDA0002368503220000225
描述非落地脚即将离地/落地脚对应大腿关节的旋转,根据两大腿的旋转
Figure BDA0002368503220000226
Figure BDA0002368503220000227
以及根关节在平面上的速度方向
Figure BDA0002368503220000228
可以确定当前目标任务信息
Figure BDA0002368503220000229
并将其输入至待训练第二控制网络中进行训练。
为了保证第二控制网络的稳定性,可以根据多条角色奔跑路径进行训练,并且可以将角色奔跑路径的最大值设置为200s等数值,基于强化学习的待训练第二控制网络在虚拟角色完成奔跑路径后便可对虚拟角色的动作或状态进行评估,确定状态价值,并根据状态价值调整动作,直至获取最大的状态价值。通过训练,第二控制网络可以在输入不同的目标任务信息时,执行对应的迈步动作。
在本公开的一个实施例中,训练完第二控制网络后,可以对待训练第一控制网络进行训练,用于训练的奔跑动画片段样本只有一个,每条路径最长限制也可以是200s。每条路径开始时,可以输入当前时刻的地形特征样本、角色状态样本和任务信息样本,通过待训练第一控制模型对当前时刻的地形特征样本、角色状态样本和任务信息样本进行特征提取,输出一动作信息,该动作信息可以作为目标任务输入至训练好的第二控制网络,由第二控制网络输出对应地关节动作信息,实现对角色动作的控制。同样地,基于强化学习的待训练第一控制网络在虚拟角色完成奔跑路径后,可以根据环境反馈的奖励确定与虚拟角色的状态对应的状态价值,当状态价值达到预设值或者最大值时,说明待训练第一控制网络完成训练。
在步骤S330中,根据所述关节动作信息确定关节力矩,基于所述关节力矩进行渲染,以获取与所述虚拟角色对应的姿态调整信息,并根据所述姿态调整信息对所述动画片段进行处理。
在本公开的一个实施例中,在获取动画处理模型输出的关节动作信息后,可以根据其确定关节力矩,进而可以通过物理引擎将关节力矩施加到刚体结构对应的关节上进行渲染,以获取与虚拟角色对应的姿态调整信息,并根据姿态调整信息对动画片段进行处理。
在本公开的一个实施例中,在运动动画中,一般采用基于反向运动学(InverseKinematic)的方法对进行角色姿态控制,但在基于物理的角色姿态控制中,如果采用运动学方法对角色进行实时控制,其不能产生真实物理效果,且无法感知碰撞等相互作用,因此通常采用力矩来控制角色运动。业界对物理角色实时控制的方法主要有三种:(1)力矩控制:模型直接输出力矩,作用到每个关节上,该方法实现简单,但控制效果较差,动态控制不稳定,容易产生抖动,动作不够自然。(2)位置控制;模型给出各个关节的目标位置,然后再通过PD控制器(比例-微分控制器)动态的将角色控制到对应的位置。相比力矩控制,其更稳定,且模型输出每个关节的姿态,其分布方差较小,采样样本小,模型收敛速度快,但传统的PD控制,其抖动仍然较大。(3)速度控制;模型直接给出各关节目标速度,再采用PD控制算法去动态控制到目标速度,其效果与模型收敛速度与位置控制基本一致。
但是,通常采用的是位置控制器,其相当于一个分层控制,决策网络获取到当前的角色状态,输出下一个时刻的目标位置,然后再利用PD控制器动态的将角色控制到目标的姿态,在实际工程中设置PD的控制周期为100。该方法在模型收敛速度,鲁棒性方面取得了不错的效果,但采用普通的PD控制器,效果抖动较大,姿态并不非常标准。
为了克服现有姿态控制方法的缺陷,本公开的实施例提出了一种基于逆动力学的稳定PD控制。采用传统的PD控制器确定力矩的计算公式如公式(4)所示,具体为:
Figure BDA0002368503220000241
其中,τn为力矩输出,q为当前时刻虚拟角色关节的当前位置,
Figure BDA0002368503220000242
为虚拟角色关节的目标位置,
Figure BDA0002368503220000243
为当前时刻关节的速度,kp为比例系数,kd为微分增益系数,n为PD控制的控制周期次数。
在物理角色控制过程中,控制器需要快速减小与目标姿态的偏差,因此kp需设置的较大,这时容易出现高比例增益的稳定性问题。而稳定PD控制可以较好的解决这个问题,它利用下一个时间周期δt后的位置来计算得到τn,相当于比较与目标之间差异的同时,考虑了初始状态,提高了物理角色的稳定性。具体地,根据关节动作信息确定关节的当前位置和目标位置;根据当前位置确定关节的当前速度和当前加速度,并根据目标位置确定关节的目标速度;根据当前速度和当前加速度确定下一控制周期后与关节对应的第一位置和第一速度;根据比例系数、微分增益系数、当前位置、目标位置、目标速度、第一位置和第一速度计算关节力矩。具体的计算公式参见公式(5):
Figure BDA0002368503220000244
其中,τn为力矩输出,kp为比例系数,kd为微分增益系数,qn为当前位置,
Figure BDA0002368503220000245
为关节以当前速度经过一个时间周期后的第一位置,
Figure BDA0002368503220000246
为关节的目标位置,
Figure BDA0002368503220000247
为关节的当前速度,
Figure BDA0002368503220000248
为关节以当前加速度经过一个时间周期后的第一速度,
Figure BDA0002368503220000249
为关节的目标速度,n为控制器的控制周期次数。
在本公开的一个实施例中,通过基于逆动力学的稳定PD控制能够确定对应一关节动作信息的多个力矩,进而通过物理引擎将多个力矩分别施加到对应的关节上,根据关节的旋转轴和锚点,计算出角速度和最终姿态,模拟出关节旋转的真实情况,即能够获取与当前时刻的虚拟角色对应的姿态调整信息,该姿态调整信息具体可以是一动作序列。基于逆动力学的稳定PD控制能够提高计算精准度,减少抖动,提升虚拟角色的动作效果。
在本公开的一个实施例中,在连续的时间段上重复执行上述方案,直至完成对动画片段中最后一帧图像的模仿,可以得到与各个时刻的虚拟角色对应的姿态调整信息,即与各图像帧中的虚拟角色对应的姿态调整信息,该姿态调整信息是根据图形用户界面中新添加的地形特征及设定的与虚拟角色对应的任务特征所确定的虚拟角色的姿态。根据与各个时刻的虚拟角色对应的姿态调整信息可以确定一目标动作序列,在用户看来,该目标动作序列所呈现出的动画效果相较于原来的动画片段的效果更逼真,其中的虚拟角色能够躲避新设置的障碍物并且能够完成相应的任务,动画效果更真实,用户体验更好。
图14A-14J示出了动画处理模型控制的虚拟角色在平地上奔跑的动作序列,如图14A-14J所示,虚拟角色从抬腿、迈步到落脚以及摆臂的动作更自然、更真实。
图15A-15E示出了人形虚拟角色在稠密缺口地形上奔跑的动作序列,如图所示,其中包含两个人形虚拟角色:白色人形虚拟角色W和黑色人形虚拟角色B,白色人形虚拟角色W为原始的动画片段中的人形虚拟角色,黑色人形虚拟角色B为通过动画处理模型控制的人形虚拟角色,从图15A-15E中可以发现,白色人形虚拟角色W和黑色人形虚拟角色B每一步的动作一样,只是在缺口C处,白色人形虚拟角色W和黑色人形虚拟角色B的迈步有所差别,动画处理模型控制的黑色人形虚拟角色B能够顺利跑完整条稠密缺口地形G,如图15A-15B、15D-15E所示。
图16A-16L示出了人形虚拟角色在混合障碍物地形上奔跑的动作序列,如图所示,混合障碍物地形的地面G中包含缺口C、凸起E和台阶D,与图15类似,图中也包含原始的动画片段中的白色人形虚拟角色W和通过动画处理模型控制的黑色人形虚拟角色B,图16A-16E为人形虚拟角色跨越缺口的动作序列,图16F-16K为人形虚拟角色跨越凸起的动作序列,图16L为人形虚拟角色跨越台阶的动作序列,从中可发现,黑色人形虚拟角色B能够较好地跨越缺口、凸起和台阶,而白色人形虚拟角色W奔跑的效果较差,例如白色人形虚拟角色W的脚可能在缺口的上方、在凸起或台阶的下方,动画效果不真实。
本公开实施例中的动画处理方法可以应用于任何需要物理动画的游戏或动画设计中,根据本公开实施例中的动画处理方法可以对动画师设计的动画片段进行模仿,在模仿的过程中还可以给虚拟角色设置障碍物以及设置任务,通过动画处理模型根据当前时刻的地形特征、与虚拟角色对应的任务信息和状态信息确定下一时刻与虚拟角色对应的关节动作信息,例如当前时刻虚拟用户左脚着地右脚抬起,地形特征为在虚拟用户的移动路径上存在凸起,任务信息为速度方向向前,那么动画处理模型根据该些信息能够输出虚拟角色下一时刻的关节动作信息,以保证虚拟角色在执行多个时刻动作后,能够顺利跨过凸起,最后根据该关节动作信息确定关节力矩,并通过物理引擎将关节力矩施加到大腿、脚部,渲染得到虚拟角色跨过凸起的动作。
本公开实施例中的动画处理方法可以应用于任意类型的游戏动画中,以增强现实类游戏为例,基于图4所示的游戏场景与现实场景融合后的场景示意图,妖灵V为游戏动画中的虚拟角色,而其所处的环境是现实场景中的台阶S,在其身后还有一排的电动车M,根据本公开实施例中的动画处理方法,用户可以为妖灵V设定任务,比如下台阶、绕过电动车M等,根据妖灵V的状态信息、任务信息及图形用户界面中的地形特征,可以获取与妖灵对应的逼真动作序列,从视觉效果而言,妖灵V能够从当前台阶跳至下一台阶或者可以顺利的绕过电动车M,而不会出现脚在台阶S下方或身体与电动车M交叠等情况,其动作更逼真、环境自适应能力更强。
本公开实施例中的动画处理方法通过动画处理模型根据各时刻的地形特征、虚拟角色的状态信息和任务信息输出与各时刻相邻的下一时刻的关节动作信息,并通过物理引擎将根据关节动作信息确定的关节力矩施加到对应的关节上进行渲染,能够得到逼真的动作序列,根据该逼真的动作序列生成的动画相较于动画师设计的动画,动画效果更自然更真实;另外在处理过程中,加入了不同的地形、任务,实现了用户与游戏中虚拟角色的交互,使得虚拟角色具有自适应性,提高了虚拟角色感知地形的能力,可以将平地上虚拟角色执行的动作迁移到复杂的地形上,提高了游戏的趣味性,进一步提升了用户体验,同时降低了游戏动画的制作成本。
以下介绍本公开的装置实施例,可以用于执行本公开上述实施例中的动画处理方法。对于本公开装置实施例中未披露的细节,请参照本公开上述的动画处理方法。
图17示意性示出了根据本公开的一个实施例的动画处理装置的框图。
参照图17所示,根据本公开的一个实施例的动画处理装置1700,包括:信息获取模块1701、模型处理模块1702和姿态调整模块1703。
其中,信息获取模块1701,用于获取当前时刻图形用户界面中的地形特征,并获取所述当前时刻与动画片段中的虚拟角色对应的状态信息和任务信息;模型处理模块1702,用于将所述地形特征、所述状态信息和与所述任务信息输入至动画处理模型,通过所述动画处理模型对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取下一时刻与所述虚拟角色对应的关节动作信息;姿态调整模块1703,用于根据所述关节动作信息确定关节力矩,基于所述关节力矩进行渲染,以获取所述当前时刻与所述虚拟角色对应的姿态调整信息,并根据所述姿态调整信息对所述动画片段进行处理。
在本公开的一个实施例中,所述动画处理装置1700还配置为:当所述当前时刻为所述动画片段的起始时刻时,根据所述虚拟角色在所述动画片段起始时刻的姿态信息确定所述状态信息;当所述当前时刻为所述动画片段的非起始时刻时,根据上一时刻与所述虚拟角色对应的关节动作信息确定所述状态信息。
在本公开的一个实施例中,所述动画处理装置1700还配置为:基于所述动画片段,获取与所述虚拟角色对应的多个时刻的姿态调整信息;根据所述多个时刻的姿态调整信息确定目标动作序列。
在本公开的一个实施例中,所述地形特征为自定义地形的特征或现实地形的特征;所述状态信息包括所述虚拟角色各关节的姿态、速度和相位;所述任务信息包括与所述虚拟角色对应的目标速度方向或目标点坐标。
在本公开的一个实施例中,所述动画处理模型包括第一控制网络和第二控制网络;所述模型处理模块1702包括:第一特征提取单元,用于通过所述第一控制网络对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取与关键关节对应的目标状态信息;第二特征提取单元,用于将所述目标状态信息作为目标任务信息,并将所述状态信息和所述目标任务信息输入至所述第二控制网络,通过所述第二控制网络对所述状态信息和所述目标任务信息进行特征提取,以获取所述关节动作信息。
在本公开的一个实施例中,所述第一控制网络包括卷积单元、第一全连接层、第二全连接层和第三全连接层;所述第一特征提取单元配置为:通过所述卷积单元对所述地形特征进行特征提取,以获取与地形对应的第一特征信息;通过所述第一全连接层对所述第一特征信息进行特征组合,以获取第二特征信息;通过所述第二全连接层对所述第二特征信息、所述状态信息和所述任务信息进行特征组合,以获取第三特征信息;通过所述第三全连接层对所述第三特征信息进行特征组合,以获取所述目标状态信息。
在本公开的一个实施例中,所述第二控制网络包括第四全连接层和第五全连接层;所述第二特征提取单元配置为:通过所述第四全连接层对所述状态信息和所述目标任务信息进行特征组合,以获取第四特征信息;通过所述第五全连接层对所述第四特征信息进行特征组合,以获取所述关节动作信息。
在本公开的一个实施例中,所述姿态调整模块1703配置为:根据所述关节动作信息确定关节的当前位置和目标位置;根据所述当前位置确定所述关节的当前速度和当前加速度,并根据所述目标位置确定所述关节的目标速度;根据所述当前速度和所述当前加速度确定下一控制周期后与所述关节对应的第一位置和第一速度;根据比例系数、微分增益系数、所述当前位置、所述目标位置、所述目标速度、所述第一位置和所述第一速度计算所述关节力矩。
在本公开的一个实施例中,所述姿态调整模块1703配置为:将所述关节力矩输入至物理引擎,通过所述物理引擎将所述关节力矩施加到对应的关节上并进行渲染,以生成所述姿态调整信息。
在本公开的一个实施例中,所述动画处理装置1700还包括:训练模块,用于在通过所述动画处理模型根据所述地形特征、所述状态信息和所述任务信息进行特征提取之前,对待训练动画处理模型进行训练,以获取所述动画处理模型。
在本公开的一个实施例中,所述待训练动画处理模型包括待训练第一控制网络和待训练第二控制网络;所述训练模块包括:第一训练单元,用于获取地形特征样本、角色状态样本和任务信息样本,根据所述地形特征样本、所述角色状态样本和所述任务信息样本对所述待训练第一控制网络进行训练,以获取所述第一控制网络;第二训练单元,用于根据动画片段样本中与所述虚拟角色的所述关键关节对应的状态信息样本和与所有关节对应的关节动作信息样本对所述第二控制网络进行训练,以获取所述第二控制网络;其中,所述待训练第一控制网络和所述待训练第二控制网络分别单独训练;在训练所述待训练第一控制网络时,所述待训练第一控制网络连接有具有固定参数的第二控制网络。
在本公开的一个实施例中,所述第二训练单元配置为:获取多个动画片段样本,根据所述虚拟角色的起始姿态从所述多个动画片段样本中确定目标动画片段样本;获取所述目标动画片段样本中与所述关键关节对应的状态信息样本,并将所述状态信息样本作为目标任务信息;获取与所述虚拟角色的所有关节对应的关节动作信息样本;根据所述目标任务信息和所述关节动作信息样本对所述待训练第二控制网络进行训练。
在本公开的一个实施例中,所述待训练第一控制网络包括第一待训练执行子网络和第一待训练评估子网络,所述待训练第二控制网络包括第二待训练执行子网络和第二待训练评估子网络,其中所述第一待训练执行子网络和所述第一待训练评估子网络的结构相同,所述第二待训练执行子网络和所述第二待训练评估子网络的结构相同。
图18示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图18示出的电子设备的计算机系统1800仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图18所示,计算机系统1800包括中央处理单元(Central Processing Unit,CPU)1801,其可以根据存储在只读存储器(Read-Only Memory,ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(Random Access Memory,RAM)1803中的程序而执行各种适当的动作和处理,实现上述实施例中所述的图像标注方法。在RAM 1803中,还存储有系统操作所需的各种程序和数据。CPU 1801、ROM 1802以及RAM1803通过总线1804彼此相连。输入/输出(Input/Output,I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(LiquidCrystal Display,LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本公开的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的动画处理装置中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种动画处理方法,其特征在于,包括:
获取当前时刻图形用户界面中的地形特征,并获取所述当前时刻与动画片段中虚拟角色对应的状态信息和任务信息;
通过动画处理模型的第一控制网络对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取与关键关节对应的目标状态信息;
将所述目标状态信息作为目标任务信息,并将所述状态信息和所述目标任务信息输入至所述动画处理模型的第二控制网络,通过所述第二控制网络对所述状态信息和所述目标任务信息进行特征提取,以获取下一时刻与所述虚拟角色对应的关节动作信息;
根据所述关节动作信息确定关节力矩,基于所述关节力矩获取所述当前时刻与所述虚拟角色对应的姿态调整信息,并根据所述姿态调整信息对所述动画片段进行处理。
2.根据权利要求1所述的动画处理方法,其特征在于,所述方法还包括:
当所述当前时刻为所述动画片段的起始时刻时,根据所述虚拟角色在所述动画片段起始时刻的姿态信息确定所述状态信息;
当所述当前时刻为所述动画片段的非起始时刻时,根据上一时刻与所述虚拟角色对应的关节动作信息确定所述状态信息。
3.根据权利要求2所述的动画处理方法,其特征在于,所述方法还包括:
基于所述动画片段,获取与所述虚拟角色对应的多个时刻的姿态调整信息;
根据所述多个时刻的姿态调整信息确定目标动作序列。
4.根据权利要求1所述的动画处理方法,其特征在于,所述地形特征为自定义地形的特征或现实地形的特征;所述状态信息包括所述虚拟角色各关节的姿态、速度和相位;所述任务信息包括与所述虚拟角色对应的目标速度方向或目标点坐标。
5.根据权利要求1所述的动画处理方法,其特征在于,所述第一控制网络包括卷积单元、第一全连接层、第二全连接层和第三全连接层;
所述通过所述第一控制网络对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取与关键关节对应的目标状态信息,包括:
通过所述卷积单元对所述地形特征进行特征提取,以获取与地形对应的第一特征信息;
通过所述第一全连接层对所述第一特征信息进行特征组合,以获取第二特征信息;
通过所述第二全连接层对所述第二特征信息、所述状态信息和所述任务信息进行特征组合,以获取第三特征信息;
通过所述第三全连接层对所述第三特征信息进行特征组合,以获取所述目标状态信息。
6.根据权利要求1所述的动画处理方法,其特征在于,所述第二控制网络包括第四全连接层和第五全连接层;
所述通过所述第二控制网络对所述状态信息和所述目标任务信息进行特征提取,以获取所述关节动作信息,包括:
通过所述第四全连接层对所述状态信息和所述目标任务信息进行特征组合,以获取第四特征信息;
通过所述第五全连接层对所述第四特征信息进行特征组合,以获取所述关节动作信息。
7.根据权利要求1所述的动画处理方法,其特征在于,所述根据所述关节动作信息确定关节力矩,包括:
根据所述关节动作信息确定关节的当前位置和目标位置;
根据所述当前位置确定所述关节的当前速度和当前加速度,并根据所述目标位置确定所述关节的目标速度;
根据所述当前速度和所述当前加速度确定下一控制周期后与所述关节对应的第一位置和第一速度;
根据比例系数、微分增益系数、所述当前位置、所述目标位置、所述目标速度、所述第一位置和所述第一速度计算所述关节力矩。
8.根据权利要求1所述的动画处理方法,其特征在于,所述基于所述关节力矩获取所述当前时刻与所述虚拟角色对应的姿态调整信息,包括:
将所述关节力矩输入至物理引擎,通过所述物理引擎将所述关节力矩施加到对应的关节上并进行渲染,以生成所述姿态调整信息。
9.根据权利要求1所述的动画处理方法,其特征在于,所述方法还包括:
在通过所述动画处理模型的第一控制网络对所述地形特征、所述状态信息和所述任务信息进行特征提取之前,对待训练动画处理模型进行训练,以获取所述动画处理模型。
10.根据权利要求9所述的动画处理方法,其特征在于,所述待训练动画处理模型包括待训练第一控制网络和待训练第二控制网络;
所述对待训练动画处理模型进行训练,以获取所述动画处理模型,包括:
获取地形特征样本、角色状态样本和任务信息样本,根据所述地形特征样本、所述角色状态样本和所述任务信息样本对所述待训练第一控制网络进行训练,以获取所述第一控制网络;
根据动画片段样本中与所述虚拟角色的所述关键关节对应的状态信息样本和与所有关节对应的关节动作信息样本对所述第二控制网络进行训练,以获取所述第二控制网络;
其中,所述待训练第一控制网络和所述待训练第二控制网络分别单独训练;在训练所述待训练第一控制网络时,所述待训练第一控制网络连接有具有固定参数的第二控制网络。
11.根据权利要求10所述的动画处理方法,其特征在于,所述根据动画片段样本中与所述虚拟角色的所述关键关节对应的状态信息样本和与所有关节对应的关节动作信息样本对所述第二控制网络进行训练,以获取所述第二控制网络,包括:
获取多个动画片段样本,根据所述虚拟角色的起始姿态从所述多个动画片段样本中确定目标动画片段样本;
获取所述目标动画片段样本中与所述关键关节对应的状态信息样本,并将所述状态信息样本作为目标任务信息;
获取与所述虚拟角色的所有关节对应的关节动作信息样本;
根据所述目标任务信息和所述关节动作信息样本对所述待训练第二控制网络进行训练。
12.根据权利要求10所述的动画处理方法,其特征在于,所述待训练第一控制网络包括第一待训练执行子网络和第一待训练评估子网络,所述待训练第二控制网络包括第二待训练执行子网络和第二待训练评估子网络,其中所述第一待训练执行子网络和所述第一待训练评估子网络的结构相同,所述第二待训练执行子网络和所述第二待训练评估子网络的结构相同。
13.一种动画处理装置,其特征在于,包括:
信息获取模块,用于获取当前时刻图形用户界面中的地形特征,并获取所述当前时刻与动画片段中的虚拟角色对应的状态信息和任务信息;
模型处理模块,用于通过动画处理模型的第一控制网络对所述地形特征、所述状态信息和所述任务信息进行特征提取,以获取与关键关节对应的目标状态信息;将所述目标状态信息作为目标任务信息,并将所述状态信息和所述目标任务信息输入至所述动画处理模型的第二控制网络,通过所述第二控制网络对所述状态信息和所述目标任务信息进行特征提取,以获取下一时刻与所述虚拟角色对应的关节动作信息;
姿态调整模块,用于根据所述关节动作信息确定关节力矩,基于所述关节力矩获取所述当前时刻与所述虚拟角色对应的姿态调整信息,并根据所述姿态调整信息对所述动画片段进行处理。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至12中任一项所述的动画处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至12中任一项所述的动画处理方法。
CN202010043321.5A 2020-01-15 2020-01-15 动画处理方法、装置、计算机存储介质及电子设备 Active CN111292401B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN202010043321.5A CN111292401B (zh) 2020-01-15 2020-01-15 动画处理方法、装置、计算机存储介质及电子设备
KR1020227002917A KR102645536B1 (ko) 2020-01-15 2020-11-02 애니메이션 처리 방법 및 장치, 컴퓨터 저장 매체 그리고 전자 디바이스
EP20913359.4A EP4009282A4 (en) 2020-01-15 2020-11-02 ANIMATION PROCESSING METHOD AND APPARATUS, AND COMPUTER STORAGE MEDIA AND ELECTRONIC DEVICE
PCT/CN2020/125938 WO2021143289A1 (zh) 2020-01-15 2020-11-02 动画处理方法、装置、计算机存储介质及电子设备
JP2022521969A JP7407919B2 (ja) 2020-01-15 2020-11-02 動画処理方法、動画処理装置、コンピュータプログラム及び電子機器
US17/578,345 US11790587B2 (en) 2020-01-15 2022-01-18 Animation processing method and apparatus, computer storage medium, and electronic device
US18/367,913 US20240005582A1 (en) 2020-01-15 2023-09-13 Animation processing method and apparatus, computer storage medium, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010043321.5A CN111292401B (zh) 2020-01-15 2020-01-15 动画处理方法、装置、计算机存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111292401A CN111292401A (zh) 2020-06-16
CN111292401B true CN111292401B (zh) 2022-05-03

Family

ID=71024230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010043321.5A Active CN111292401B (zh) 2020-01-15 2020-01-15 动画处理方法、装置、计算机存储介质及电子设备

Country Status (6)

Country Link
US (2) US11790587B2 (zh)
EP (1) EP4009282A4 (zh)
JP (1) JP7407919B2 (zh)
KR (1) KR102645536B1 (zh)
CN (1) CN111292401B (zh)
WO (1) WO2021143289A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111292401B (zh) 2020-01-15 2022-05-03 腾讯科技(深圳)有限公司 动画处理方法、装置、计算机存储介质及电子设备
CN112348931B (zh) * 2020-11-06 2024-01-30 网易(杭州)网络有限公司 脚部反向运动控制方法、装置、设备及存储介质
CN112560962B (zh) * 2020-12-17 2024-03-22 咪咕文化科技有限公司 骨骼动画的姿态匹配方法、装置、电子设备及存储介质
CN112905006B (zh) * 2021-01-21 2022-12-02 清华大学 基于物理仿真的虚拟现实人手交互方法和装置
CN113050859B (zh) * 2021-04-19 2023-10-24 北京市商汤科技开发有限公司 交互对象的驱动方法、装置、设备以及存储介质
CN113771081B (zh) * 2021-07-06 2024-04-30 清华大学 一种基于物理的虚拟人手自动抓取方法及装置
CN115617429A (zh) * 2021-07-14 2023-01-17 华为技术有限公司 一种数据处理方法及相关设备
CN114489408B (zh) * 2022-02-11 2023-11-24 百果园技术(新加坡)有限公司 动画处理系统、方法、设备及存储介质
CN114998491B (zh) * 2022-08-01 2022-11-18 阿里巴巴(中国)有限公司 数字人驱动方法、装置、设备及存储介质
CN117808936A (zh) * 2022-09-23 2024-04-02 华为技术有限公司 一种图像处理方法
CN115731375B (zh) * 2022-12-09 2024-05-10 支付宝(杭州)信息技术有限公司 虚拟形象的更新方法及装置
CN116228942B (zh) * 2023-03-17 2024-02-06 北京优酷科技有限公司 角色动作提取方法、设备和存储介质
CN116824010B (zh) * 2023-07-04 2024-03-26 安徽建筑大学 一种反馈式多端动画设计在线交互方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426709A (zh) * 2011-08-19 2012-04-25 北京航空航天大学 一种基于快速逆向运动学的实时运动合成方法
CN103514622A (zh) * 2012-06-29 2014-01-15 甲尚股份有限公司 虚拟角色的步态自动适应地形的系统及方法
CN106600668A (zh) * 2016-12-12 2017-04-26 中国科学院自动化研究所 一种与虚拟角色进行互动的动画生成方法、装置及电子设备
CN108182719A (zh) * 2017-12-28 2018-06-19 北京聚力维度科技有限公司 人工智能自适应障碍地形的行进动画生成方法和装置
CN108803615A (zh) * 2018-07-03 2018-11-13 东南大学 一种基于深度强化学习的虚拟人未知环境导航算法
CN110516389A (zh) * 2019-08-29 2019-11-29 腾讯科技(深圳)有限公司 行为控制策略的学习方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000508804A (ja) 1996-04-04 2000-07-11 カトリックス,インク. 混合運動データを含む関節を持つキャラクターの会話型コンピュータ・アニメーションのための四肢調整システム
JP2004030502A (ja) 2002-06-28 2004-01-29 Sangaku Renkei Kiko Kyushu:Kk シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
GB0416445D0 (en) * 2004-07-23 2004-08-25 Univ Abertay Computer generated images
US8860732B2 (en) * 2010-09-27 2014-10-14 Adobe Systems Incorporated System and method for robust physically-plausible character animation
US10929743B2 (en) * 2016-09-27 2021-02-23 Disney Enterprises, Inc. Learning to schedule control fragments for physics-based character simulation and robots using deep Q-learning
US10096125B1 (en) * 2017-04-07 2018-10-09 Adobe Systems Incorporated Forecasting multiple poses based on a graphical image
JP2019175266A (ja) 2018-03-29 2019-10-10 株式会社Preferred Networks 動作生成装置、モデル生成装置、動作生成方法及びプログラム
EP3807846A1 (en) * 2018-06-18 2021-04-21 Unity IPR APS Method and system for real-time animation generation using machine learning
DE112020002425T5 (de) * 2019-05-17 2022-01-27 Nvidia Corporation Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
CN111292401B (zh) * 2020-01-15 2022-05-03 腾讯科技(深圳)有限公司 动画处理方法、装置、计算机存储介质及电子设备
US11321895B2 (en) * 2020-05-29 2022-05-03 Adobe Inc. Neural state machine digital character animation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426709A (zh) * 2011-08-19 2012-04-25 北京航空航天大学 一种基于快速逆向运动学的实时运动合成方法
CN103514622A (zh) * 2012-06-29 2014-01-15 甲尚股份有限公司 虚拟角色的步态自动适应地形的系统及方法
CN106600668A (zh) * 2016-12-12 2017-04-26 中国科学院自动化研究所 一种与虚拟角色进行互动的动画生成方法、装置及电子设备
CN108182719A (zh) * 2017-12-28 2018-06-19 北京聚力维度科技有限公司 人工智能自适应障碍地形的行进动画生成方法和装置
CN108803615A (zh) * 2018-07-03 2018-11-13 东南大学 一种基于深度强化学习的虚拟人未知环境导航算法
CN110516389A (zh) * 2019-08-29 2019-11-29 腾讯科技(深圳)有限公司 行为控制策略的学习方法、装置、设备及存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Learnt inverse kinematics for animation synthesis;Ong E J , Hilton A .;《Graphical Models》;20061231;第472-483页 *
Tamer M Wasfy ; Ahmed K Noor ; 戈新生 ; 张奇志 ; 赵维加.柔性多体系统的计算策略.《力学进展》.2006, *
彭淑娟 ; 周兵 ; 柳欣 ; 钟必能.人体运动生成中的深度学习模型综述.《计算机辅助设计与图形学学报》.2018, *
谢文军 ; 刘晓平.物理与运动约束驱动的摆腿动作求解.《合肥工业大学学报(自然科学版)》.2018, *
赵建军 ; 魏毅 ; 夏时洪 ; 王兆其.基于物理的角色动画合成方法综述.《计算机研究与发展》.2015, *

Also Published As

Publication number Publication date
CN111292401A (zh) 2020-06-16
EP4009282A4 (en) 2022-12-21
US11790587B2 (en) 2023-10-17
JP2022553167A (ja) 2022-12-22
JP7407919B2 (ja) 2024-01-04
WO2021143289A1 (zh) 2021-07-22
US20240005582A1 (en) 2024-01-04
KR102645536B1 (ko) 2024-03-07
KR20220025023A (ko) 2022-03-03
EP4009282A1 (en) 2022-06-08
US20220139020A1 (en) 2022-05-05

Similar Documents

Publication Publication Date Title
CN111292401B (zh) 动画处理方法、装置、计算机存储介质及电子设备
US11928765B2 (en) Animation implementation method and apparatus, electronic device, and storage medium
Peng et al. Deeploco: Dynamic locomotion skills using hierarchical deep reinforcement learning
Hämäläinen et al. Online motion synthesis using sequential monte carlo
CN111028317B (zh) 虚拟对象的动画生成方法、装置、设备及存储介质
CN104867171A (zh) 一种三维角色的过渡动画生成方法
CN107578461A (zh) 一种基于子空间筛选的三维虚拟人体物理运动生成方法
US11721056B2 (en) Motion model refinement based on contact analysis and optimization
Xie et al. Hierarchical planning and control for box loco-manipulation
Çimen Animation models for interactive AR characters
Reda et al. Physics-based Motion Retargeting from Sparse Inputs
Wang et al. A Generative Human-Robot Motion Retargeting Approach Using a Single RGBD Sensor.
CN113592986B (zh) 基于神经网络的动作生成方法、装置及计算设备
Dang et al. Imitation learning-based algorithm for drone cinematography system
Guo et al. Locomotion skills for insects with sample‐based controller
Cai et al. Immersive interactive virtual fish swarm simulation based on infrared sensors
Lee et al. Performance‐Based Biped Control using a Consumer Depth Camera
CN116570921B (zh) 虚拟对象的姿态控制方法、装置、计算机设备、存储介质
Wang et al. PACER+: On-Demand Pedestrian Animation Controller in Driving Scenarios
Pitts The Use Automated Centre of Mass Nodes for Dynamic Grounded and Airborne Key Frame Animation
Ling Techniques in learning-based approaches for character animation
Ismail et al. Editing Virtual Human Motion Techniques With Dynamic Motion Simulator And Controller
Lew Bipedal locomotion in humans, robots and avatars: a survey
Sun et al. A language‐directed virtual human motion generation approach based on musculoskeletal models
Huzaifa Control and hardware design for a bipedal robot via planar modeling with empirical perception studies leveraging embodied movement analysis

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

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant