CN116570921A - 虚拟对象的姿态控制方法、装置、计算机设备、存储介质 - Google Patents

虚拟对象的姿态控制方法、装置、计算机设备、存储介质 Download PDF

Info

Publication number
CN116570921A
CN116570921A CN202310857418.3A CN202310857418A CN116570921A CN 116570921 A CN116570921 A CN 116570921A CN 202310857418 A CN202310857418 A CN 202310857418A CN 116570921 A CN116570921 A CN 116570921A
Authority
CN
China
Prior art keywords
virtual object
action
joint
ankle
amplitude
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.)
Granted
Application number
CN202310857418.3A
Other languages
English (en)
Other versions
CN116570921B (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 CN202310857418.3A priority Critical patent/CN116570921B/zh
Publication of CN116570921A publication Critical patent/CN116570921A/zh
Application granted granted Critical
Publication of CN116570921B publication Critical patent/CN116570921B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
    • 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/63Generating 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 by the player, e.g. authoring using a level editor
    • 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/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • 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/65Methods for processing data by generating or executing the game program for computing the condition of a game character

Landscapes

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

Abstract

本申请涉及一种虚拟对象的姿态控制方法、装置、计算机设备、存储介质和计算机程序产品。该方法可应用于人工智能、游戏应用等领域,游戏应用运行于车载终端或其它设备,包括:对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;初始动作序列是基于动作生成模型所生成的;根据虚拟对象所处地形的地形信息,确定虚拟对象的脚部关节的旋转矩阵;基于处理后动作序列确定虚拟对象的全局动作姿态;依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使脚部关节的局部动作姿态适配于地形。采用本方法能够改善虚拟对象的动作效果,减少穿模率的同时,又能够有效提高不同虚拟对象动作的拟人化效果。

Description

虚拟对象的姿态控制方法、装置、计算机设备、存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种虚拟对象的姿态控制方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术以及互联网技术的发展,引擎的开发和使用在计算机视觉等领域发挥着重要的作用,使得各种类型的制作工具广受大众关注。其中,虚拟对象是指一种模拟人类思维或行为的计算机程序,通常被用于人机交互、虚拟现实、游戏等领域,一般可充当智能客服、虚拟教师、虚拟演员等。
目前的虚拟对象的姿态控制方式中,通常是通过实时人工智能(AI,ArtificialIntelligence)的动作生成模型在游戏的每一帧画面中为虚拟对象生成此帧的动作,如走、跑、跳等动作,游戏预制动画或动作生成模型产生的动作虽然高度拟人化,但因动作都来自同一模型,因此在游戏表现中,所有虚拟对象的动作都一模一样、千篇一律,同时,由于游戏中有多种多样的地形,如:楼梯、斜坡、凹凸不平的地面等,而游戏预制动画或动作生成模型生成的动作并不能时时刻刻100%地匹配各种各样的地形,容易导致虚拟对象在运动的过程中和地面穿模,进而使得得到的虚拟对象的动作效果较差。
发明内容
基于此,有必要针对上述技术问题,提供一种虚拟对象的姿态控制方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,能够在改善虚拟对象的动作效果,减少穿模率的同时,又能够有效地提高不同虚拟对象动作的拟人化效果。
第一方面,本申请提供了一种虚拟对象的姿态控制方法。所述方法包括:对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的;根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;基于所述处理后动作序列确定所述虚拟对象的全局动作姿态;依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
第二方面,本申请还提供了一种虚拟对象的姿态控制装置。所述装置包括:编辑模块,用于对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的;确定模块,用于根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;基于所述处理后动作序列确定所述虚拟对象的全局动作姿态;旋转模块,用于依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的;根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;基于所述处理后动作序列确定所述虚拟对象的全局动作姿态;依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的;根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;基于所述处理后动作序列确定所述虚拟对象的全局动作姿态;依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的;根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;基于所述处理后动作序列确定所述虚拟对象的全局动作姿态;依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
上述虚拟对象的姿态控制方法、装置、计算机设备、存储介质和计算机程序产品,通过对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;初始动作序列是基于动作生成模型所生成的;根据虚拟对象所处的地形对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵;基于处理后动作序列确定虚拟对象的全局动作姿态;依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使脚部关节的局部动作姿态适配于地形。由于处理后动作序列是对动作生成模型所生成的初始动作序列进行动作频率或动作幅度中的至少一种维度的多样化编辑处理所得到的,故基于处理后动作序列可以得到不同虚拟对象所对应的全局动作姿态,即对动作生成模型实时生成的动作进行实时后编辑,使得虚拟对象的动作从“千篇一律”到“千人千面”,并且虚拟对象的脚部关节的旋转矩阵是基于虚拟对象每时每刻所处的地形信息来确定的,故能够动态调整虚拟对象的脚部关节的局部动作姿态,使虚拟对象在运动的过程中的脚面与地面贴合,适配复杂的地形,在改善虚拟对象的动作效果,减少穿模率的同时,又能够有效地提高不同虚拟对象动作的拟人化效果。
附图说明
图1为一个实施例中虚拟对象的姿态控制方法的应用环境图;
图2为一个实施例中虚拟对象的姿态控制方法的流程示意图;
图3为一个实施例中基于原始动作实现动作的多样化的示意图;
图4为一个实施例中传统方式中的实际应用效果示意图;
图5为一个实施例中实际应用场景中的示意图;
图6为一个实施例中动作多样化编辑模块的整体结构示意图;
图7为一个实施例中利用地形高度构造旋转矩阵的示意图;
图8为一个实施例中虚拟对象脚部左右存在高度差的处理过程的示意图;
图9为一个实施例中传统方式中Two Bones IK 过程示意图;
图10为一个实施例中用于动作生成后处理阶段并实时匹配地形的多样化姿态编辑方法的线上整体方案架构的示意图;
图11为一个实施例中频率、幅度组合图;
图12为一个实施例中适配地形的理想状态的示意图;
图13为一个实施例中脚部与地面穿模程度的量化衡量指标的示意图;
图14为一个实施例中虚拟对象的姿态控制装置的结构框图;
图15为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧交通等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
计算机视觉技术(Computer Vision, CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
需要说明的是,在以下的描述中,所涉及的术语“第一、第二和第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一、第二和第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例提供的虚拟对象的姿态控制方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;初始动作序列是基于动作生成模型所生成的;终端102根据虚拟对象所处的地形对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵;终端102基于处理后动作序列确定虚拟对象的全局动作姿态,并依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使脚部关节的局部动作姿态适配于地形,并生成包含虚拟对象脚部关节的局部动作姿态的画面。进一步的,终端102可以将所生成的包含虚拟对象脚部关节的局部动作姿态的画面上传至服务器104,以使服务器104对该画面进行二次利用,比如,服务器104可以对该画面进行处理后再进行二次展示。
其中,终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调和智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
服务器104可以是独立的物理服务器,也可以是区块链系统中的服务节点,该区块链系统中的各服务节点之间形成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。
此外,服务器104还可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery NetworkCDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端102与服务器104之间可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者网络等通讯连接方式进行连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种虚拟对象的姿态控制方法,该方法可以由服务器或终端单独执行,也可以由服务器和终端共同执行,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;初始动作序列是基于动作生成模型所生成的。
其中,虚拟对象是指虚拟场景中的各个对象,比如,本申请中的虚拟对象可以是虚拟场景中的虚拟人,虚拟人是指一种模拟人类思维或行为的计算机程序,通常被用于人机交互、虚拟现实、游戏等领域,一般可充当智能客服、虚拟教师、虚拟演员等。再比如,本申请中的虚拟对象可以是虚拟场景中的非玩家角色(NPC,Non-Player Character),非玩家角色指的是一种在计算机游戏、虚拟现实等虚拟环境中出现的非玩家角色,由计算机程序控制,非玩家角色可以理解为虚拟人中的一种。
虚拟场景是指用计算机生成的一种虚拟的场景环境,它能够提供一个多媒体的虚拟世界,用户可通过操作设备或操作界面对虚拟场景中可操作的虚拟对象进行控制,以虚拟对象的视角观察虚拟场景中的物体、动物、人物、风景等虚拟物,或通过虚拟对象和虚拟场景中的物体、动物、人物、风景等虚拟物或者其它虚拟对象等进行互动。虚拟场景通常由终端等计算机设备中的应用程序生成基于终端中的硬件(比如屏幕)进行展示。
初始动作序列是指设计的原始动作所对应的动作序列,比如,本申请中的初始动作序列可以是任意实时AI动作生成模型生成的原始动作所对应的动作序列;再比如,本申请中的初始动作序列还可以是预制动画中预先设计好的原始动画所对应的动作序列。可以理解,预制动画或AI动作生成模型所产生的动作虽然高度拟人化,但因动作都来自同一模型,因此在虚拟场景的表现中,容易导致所有的虚拟人的动作都一模一样、千篇一律,即采用AI动作生成模型所产生的初始动作序列所呈现出的虚拟人的动作姿态可能都是一模一样、千篇一律的。
动作频率是指虚拟对象的动作所对应的其中一种动作维度,动作幅度是指虚拟对象的动作所对应的另一种动作维度,即动作频率和动作幅度可以理解为虚拟对象的动作所对应的两个不同维度。比如,本申请中虚拟对象的动作所对应的动作频率维度可以用:虚拟对象髋关节Z方向的速度 + 动作循环周期的大小来表征;再比如,本申请中虚拟对象的动作所对应的动作幅度维度可以用:虚拟对象髋关节Z方向的速度 + 所有关节Z方向的位置来表征。
可以理解,本申请中用来表征虚拟对象的动作所对应的动作频率维度和动作幅度维度的参数包括但不限于是上述参数,还可以是自定义或者定制化的参数,比如,预先设定用“虚拟对象髋关节Z方向的速度 + 手臂关节Z方向的位置”来表征虚拟对象的动作所对应的动作幅度维度。
编辑处理是指对虚拟对象的初始动作序列进行至少一种动作维度的多样化编辑处理,比如,本申请中的编辑处理可以包括:先对虚拟对象的初始动作序列进行动作频率维度的多样化编辑处理后,再对多样化编辑处理后动作序列进行动作幅度维度的多样化编辑处理。
可以理解,本申请中对虚拟对象的初始动作序列进行编辑处理的方式包括但不限于是单独对初始动作序列的动作频率或动作幅度进行编辑,也可两种维度叠加编辑,多样化编辑的同时带来速度的变化。
处理后动作序列是指对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种维度的多样化编辑处理后所得的动作序列,比如,假设动作生成模型输出虚拟人A在第一帧游戏画面中动作姿态所对应的动作序列为动作序列A,终端对该动作序列A进行动作频率或动作幅度中的至少一种维度的多样化编辑处理后,得到动作序列A1,该动作序列A1即为处理后动作序列。
动作生成模型是指用于生成虚拟对象的动作的模型,比如,本申请中的动作生成模型可以是任意实时AI动作生成模型,模型输出的动作序列可以用来表征虚拟对象在每一帧游戏画面中所对应的动作姿态。比如,动作生成模型可以输出虚拟对象在第一帧游戏画面中动作姿态所对应的动作序列A,该动作序列A可以是由浮点数构成的。
具体地,在用户启动终端中的某个游戏应用之后,当终端需要生成当前时刻的游戏画面时,终端可以获取虚拟对象的初始动作序列,并对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种动作维度的编辑处理,以得到处理后动作序列。比如,终端可以基于虚拟对象的配置信息中的人设信息,确定对不同虚拟对象的初始动作序列进行何种维度的多样化编辑处理,假设某个虚拟对象的配置信息中的人设为老人,则终端可以基于该虚拟对象的配置信息中的人设:老人,确定对该虚拟对象的初始动作序列进行动作幅度和动作频率两个维度叠加的多样化编辑处理,目的是将初始动作序列的动作幅度调小(或调大),同时将初始动作序列的动作频率也调小(或调大),以使最终生成的该虚拟对象的动作姿态更加符合该虚拟对象的人设(角色)。
举个例子,以虚拟对象为非玩家角色为例进行说明。在用户启动终端中的某个游戏应用A之后,终端可以获取实时动作生成模型所生成的初始动作序列A和该游戏应用A中的虚拟对象A的人设信息,进一步的,终端可以基于该虚拟对象A的人设信息,对初始动作序列A进行动作频率的编辑处理,得到动作频率编辑处理后的动作序列A1;进一步的,终端可以对动作序列A1进行动作幅度的编辑处理,得到动作幅度编辑处理后的动作序列A2,并将动作序列A2作为最终所得的处理后动作序列。比如,如图3所示,为基于原始动作实现动作的多样化的示意图。假设初始动作序列A用于表征图3中所示的原始动作,终端对初始动作序列A进行动作频率编辑处理,得到的动作序列A1可以用于表征图3中所示的动作1;终端对动作序列A1进行动作幅度的编辑处理,得到的动作序列A2可以用于表征图3中所示的动作2,即编辑处理后所得的动作2与原始动作之间存在动作频率和动作幅度两个维度的变化。
步骤204,根据虚拟对象所处的地形对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵。
其中,地形信息是指虚拟对象当前时刻(或者当前帧所对应的时间戳)所处地形的地形信息,比如,本申请中的地形信息包括地形类型、虚拟对象所处的地形位置对应的地形高度等。可以理解,本申请中的地形高度是指虚拟对象的脚踝关节和脚趾关节处的地形高度,比如,地形高度为:当虚拟对象的脚踝关节和脚趾关节触地时脚部应该到达的高度,即脚踝关节和脚趾关节所处的实际位置距离地面的高度。
脚部关节是指虚拟对象的脚部关节,比如,本申请中的脚部关节可以包括脚踝关节和脚趾关节,脚踝关节的坐标点可以用脚踝关节的中心点来表征,脚趾关节的坐标点可以用第一个脚趾和第五个脚趾连线的中点来表征。
旋转矩阵是指用于表征虚拟对象关节旋转方向的矩阵,也可以称为关节旋转矩阵。比如,本申请旋转矩阵可以由(rightward, upward, forward)三个向量构成,其中,rightward向量可以为x轴方向的向量,upward向量可以为y轴方向的向量,forward向量可以为z轴方向的向量。
具体地,终端对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列之后,终端可以根据当前时刻虚拟对象所处的地形所对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵,即终端可以根据当前时刻虚拟对象所处的地形所对应的地形高度和预设算法,计算出虚拟对象的脚部关节的旋转矩阵。由于本申请中虚拟对象的脚部关节包括脚踝关节和脚趾关节,故终端可以根据当前时刻虚拟对象所处的地形所对应的地形高度和预设算法,分别计算出虚拟对象的脚踝关节所对应的踝关节旋转矩阵、以及虚拟对象的脚趾关节所对应的趾关节旋转矩阵。
举个例子,以虚拟对象为非玩家角色为例进行说明。假设终端虚拟对象A的初始动作序列A进行动作频率或动作幅度中的至少一种编辑处理后得到的处理后动作序列为:动作序列A2,进一步的,终端可以通过游戏引擎实时获取该虚拟对象A的脚踝关节和脚趾关节处的地形高度,并基于预设算法和该虚拟对象A的脚踝关节和脚趾关节处的地形高度,分别计算出该虚拟对象A的脚踝关节所对应的踝关节旋转矩阵R1、以及虚拟对象的脚趾关节所对应的趾关节旋转矩阵R2,以使得后续终端可以基于计算所得的关节旋转矩阵对虚拟对象的脚部关节进行旋转,以适配于虚拟对象当前时刻所处的地形。
步骤206,基于处理后动作序列确定虚拟对象的全局动作姿态。
其中,全局动作姿态是指虚拟对象在当前时刻(或者当前帧)所对应的全身动作的动作姿态。比如,如图3中所示的动作2可以用来表征某个虚拟对象在当前时刻(或者当前帧)所对应的全身动作的动作姿态。
步骤208,依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使脚部关节的局部动作姿态适配于地形。
其中,局部动作姿态是指虚拟对象在当前时刻(或者当前帧)所对应的身体局部区域(或局部关节)的动作姿态。比如,本申请中的局部动作姿态可以是虚拟对象在当前时刻(或者当前帧)所对应的脚部关节的动作姿态。
脚部关节的局部动作姿态适配于地形是指脚部关节的局部动作姿态不会与地形之间出现穿模的情况,比如,本申请中的脚部关节的局部动作姿态适配于地形可以是指虚拟对象的整个脚部区域完全处于地面之上,不再发生穿模。比如,如图4所示,为传统方式中的实际应用效果示意图,如图4中所示的虚拟对象的脚尖部分依旧和斜面是穿模的,即图4中所示的虚拟对象的脚部关节的局部动作姿态未适配于地形(斜面)。
具体地,终端根据当前时刻虚拟对象所处的地形所对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵之后,终端可以基于处理后动作序列确定虚拟对象的全局动作姿态,并依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使虚拟对象的脚部关节的局部动作姿态适配于当前地形,即本申请提供的方法,在终端基于处理后动作序列确定虚拟对象在当前时刻所对应的全局动作姿态之后,终端还可以对全局动作姿态下的虚拟对象的脚部关节进行调整,即动态调整虚拟对象的脚踝关节和脚趾关节,使虚拟对象的整个脚面与地面不再发生穿模,尽可能地减少和地面的穿模,从而实时贴近起伏多变的地面。
举个例子,以虚拟对象为非玩家角色为例进行说明。假设终端基于预设算法和虚拟对象A的脚踝关节和脚趾关节处的地形高度,分别计算出该虚拟对象A的脚踝关节所对应的踝关节旋转矩阵R1、以及虚拟对象的脚趾关节所对应的趾关节旋转矩阵R2,进一步的,终端可以基于处理后动作序列A2确定该虚拟对象的全局动作姿态如图3中所示的动作2,终端可以依据脚踝关节所对应的踝关节旋转矩阵R1对该虚拟对象A的脚踝关节进行旋转,即可得到旋转后的该虚拟对象A的脚部关节;进一步的,终端可以依据脚趾关节所对应的趾关节旋转矩阵R2对该虚拟对象A的脚趾关节进行旋转,即可得到二次旋转后的该虚拟对象A的脚部关节,以使二次旋转后的该虚拟对象A的脚部关节的局部动作姿态适配于当前地形。即本申请中的终端可以依据旋转矩阵,对全局动作姿态下的该虚拟对象A的踝关节和趾关节分别进行旋转,得到包括踝关节动作姿态和趾关节动作姿态的调整后全局动作姿态。
此外,终端在得到包括踝关节动作姿态和趾关节动作姿态的调整后全局动作姿态之后,终端可以在游戏画面中显示调整后全局动作姿态下的该虚拟对象A。比如,如图5所示,为实际应用场景中的示意图,终端可以在如图5所示的游戏画面(当前帧)中显示调整后全局动作姿态下的该虚拟对象A,图5中所示的虚拟对象A的踝关节动作姿态和趾关节动作姿态均适配于当前地形,即图5中所示的虚拟对象A的踝关节动作姿态和趾关节动作姿态均处于地面之上(实时贴合起伏多变的地面),未与地面发生穿模。
上述虚拟对象的姿态控制方法中,通过对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;初始动作序列是基于动作生成模型所生成的;根据虚拟对象所处的地形对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵,并基于处理后动作序列确定虚拟对象的全局动作姿态;依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使脚部关节的局部动作姿态适配于地形。由于处理后动作序列是对动作生成模型所生成的初始动作序列进行动作频率或动作幅度中的至少一种维度的多样化编辑处理所得到的,故基于处理后动作序列可以得到不同虚拟对象所对应的全局动作姿态,即对动作生成模型实时生成的动作进行实时后编辑,使得虚拟对象的动作从“千篇一律”到“千人千面”,并且虚拟对象的脚部关节的旋转矩阵是基于虚拟对象每时每刻所处的地形信息来确定的,故能够动态调整虚拟对象的脚部关节的局部动作姿态,使虚拟对象在运动的过程中的脚面与地面贴合,适配复杂的地形,在改善虚拟对象的动作效果,减少穿模率的同时,又能够有效地提高不同虚拟对象动作的拟人化效果。
在一个实施例中,对虚拟对象的初始动作序列进行动作频率或动作幅度中至少一种编辑处理,得到处理后动作序列的步骤,包括:
对初始动作序列进行动作频率编辑处理,得到频率动作序列;
对频率动作序列进行动作幅度编辑处理,得到第一幅度动作序列;或者,对初始动作序列进行动作幅度编辑处理,得到第二幅度动作序列;
其中,处理后动作序列包括频率动作序列、第一幅度动作序列或第二幅度动作序列。
其中,动作频率编辑处理是指对初始动作序列进行动作频率维度的多样化编辑处理,即对初始动作序列所对应的初始动作的动作频率进行调整,以区别于初始动作原有的动作频率。
动作幅度编辑处理是指对初始动作序列进行动作幅度维度的多样化编辑处理,比如,对初始动作序列所对应的初始动作的动作幅度进行调整,以区别于初始动作原有的动作幅度。
可以理解,本申请中的频率动作序列、第一幅度动作序列和第二幅度动作序列只是用于区分经过不同动作维度的多样化编辑处理后的动作序列,即本申请中的终端可以对初始动作所对应的初始动作序列的频率、幅度等相关维度的属性进行放大和缩小,即可实现对初始动作的频率和幅度进行控制。
具体地,在用户启动终端中的某个游戏应用之后,当终端需要生成当前时刻的游戏画面时,终端可以获取虚拟对象的初始动作序列,并对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种动作维度的编辑处理,以得到处理后动作序列。即终端可以基于虚拟对象的配置信息中的人设信息,确定对不同虚拟对象的初始动作序列进行何种维度的多样化编辑处理。比如,本申请中的终端可以对虚拟对象的初始动作序列进行动作频率编辑处理,得到频率动作序列;进一步的,终端可以对处理后的频率动作序列进行动作幅度编辑处理,即可得到经过两个维度多样化编辑处理后的第一幅度动作序列,并将所得的第一幅度动作序列作为最终的处理后动作序列。
或者,在某些情况下,比如,在一些对动作多样化要求不是特别高的应用场景中,终端可以基于虚拟对象的配置信息中的人设信息,仅对虚拟对象的初始动作序列进行动作幅度编辑处理,即可得到第二幅度动作序列,并将所得到的第二幅度动作序列作为最终的处理后动作序列;或者,终端也可以基于虚拟对象的配置信息中的人设信息,仅对虚拟对象的初始动作序列进行动作频率编辑处理,即可得到频率动作序列,并将所得的频率动作序列作为最终的处理后动作序列。
举个例子,以虚拟对象为非玩家角色为例进行说明。在用户启动终端中的某个游戏应用A之后,终端可以获取实时动作生成模型所生成的初始动作序列A和该游戏应用A中的虚拟对象A的人设信息,进一步的,终端可以基于该虚拟对象A的人设信息,对初始动作序列A进行动作频率的编辑处理,得到动作频率编辑处理后的动作序列A1;进一步的,终端可以对动作序列A1进行动作幅度的编辑处理,得到动作幅度编辑处理后的动作序列A2,并将动作序列A2作为最终所得的处理后动作序列。比如,如图3所示,为基于原始动作实现动作的多样化的示意图。假设初始动作序列A用于表征图3中所示的原始动作,终端对初始动作序列A进行动作频率编辑处理,得到的动作序列A1可以用于表征图3中所示的动作1;终端对动作序列A1进行动作幅度的编辑处理,得到的动作序列A2可以用于表征图3中所示的动作2,即编辑处理后所得的动作2与原始动作之间存在动作频率和动作幅度两个维度的变化,编辑处理后所得的动作1与原始动作之间存在动作频率一个维度的变化。由此使得,通过对动作生成模型所生成的初始动作进行多样化编辑处理,使虚拟对象的动作从“千篇一律”到“千人千样”,即本申请实施例中通过引入动作多样化姿态编辑模块,首先对多样化的属性进行抽象和定义,并将其和动作的具体维度进行关联,通过对这些维度进行实时的多样化编辑,以快速准确的实现不同虚拟对象的动作多样化。
在其中一个实施例中,对初始动作序列进行动作频率编辑处理,得到频率动作序列,包括:
获取预配置的虚拟对象的频率等级;不同的虚拟对象预配置不同大小的频率等级;
基于初始动作序列、虚拟对象的频率等级和预设频率等级,确定频率动作序列。
其中,预配置的虚拟对象的频率等级是指输入配置信息中的频率等级,比如,针对虚拟对象1(人设为小孩)的输入配置频率等级为1,针对虚拟对象2(人设为士兵)的输入配置频率等级为4,即不同的虚拟对象预配置的频率等级可能是相同的,也可能是不同的。可以理解,为了方便策划进行控制,本申请中可以预先将频率和幅度的控制进行分级设置,设置范围为[-5,5],然后通过频率权重解算单元、幅度权重解算单元将等级解算为具体数值权重,最后作用于动作序列上。
预设频率等级是指预先设置的频率等级的最大值,比如,本申请中频率等级的范围设置为[-5,5],则预设的频率等级的最大值为5,即预设频率等级为5。
具体地,当终端需要生成当前时刻的游戏画面时,终端可以获取虚拟对象的初始动作序列,并获取预配置的各个虚拟对象的频率等级,由于不同的虚拟对象预配置频率等级的大小可能不同,进一步的,终端可以基于预设算法、初始动作序列、虚拟对象的频率等级和预设的频率等级的最大值,计算得到频率动作序列。比如,本申请中计算得到频率动作序列的方式,可以如下公式(1)所示:
其中,为可设置的频率等级的最大值,/>为输入配置信息中的虚拟对象的频率等级,/>为频率权重解算单元,Y为当前帧的动作序列(初始动作序列),/>为频率扰动模型,/>为施加频率编辑之后所得的动作序列,即频率动作序列。
可以理解,本申请中的频率权重解算单元和频率扰动模型可以是预先设置的某种函数,频率扰动模型也可以是预先训练好的神经网络模型。
本实施例中,通过对动作生成模型所生成的初始动作进行多样化编辑处理,使虚拟对象的动作从“千篇一律”到“千人千样”,动作多样化的处理变得实时、快速、泛化性高,通过直接对动作的具体维度进行实时编辑,不依赖引擎处理,随着虚拟对象的数量增加,本申请中采用的多样化编辑处理的速度不会大幅度降低,并且对于新人物泛化性高,不需要特殊处理。
在其中一个实施例中,频率权重解算单元如下公式所示:
其中,Rmin=0.2,Rmax=0.4。频率扰动模型如下公式所示:
是一个和Y维度相同的向量,其中第i维数值为:
在其中一个实施例中,基于初始动作序列、虚拟对象的频率等级和预设频率等级,确定频率动作序列的步骤,包括:
将初始动作序列和虚拟对象的频率等级输入至频率扰动模型;
通过频率扰动模型,对虚拟对象的频率等级和预设频率等级进行权重运算,得到频率权重;
根据频率权重和初始动作序列确定频率动作序列;
其中,频率动作序列的频率维度,是通过虚拟对象的髋关节在目标方向的速度和动作循环周期表征的。
具体地,终端基于初始动作序列、虚拟对象的频率等级和预设的频率等级的最大值,确定频率动作序列的具体流程包括:终端可以获取配置文件中预设的频率等级的最大值、以及获取策划输入的各个虚拟对象的频率等级,终端可以通过前述的频率权重解算单元对预设的频率等级的最大值和虚拟对象的频率等级进行权重解算处理,即将虚拟对象的频率等级解算为具体数值权重,得到解算后的频率权重数值,进一步的,终端可以根据频率权重数值和初始动作序列确定频率动作序列,即终端可以通过前述的频率扰动模型/>对初始动作序列和解算后的频率权重数值进行处理,输出的动作序列即为频率动作序列。其中,本申请中的频率动作序列的频率维度,是通过虚拟对象的髋关节在z轴方向的速度和动作循环周期表征的,即终端可以对虚拟对象的髋关节在z轴方向的速度和动作循环周期进行调整,得到的调整后的虚拟对象的髋关节在z轴方向的速度和动作循环周期是由频率动作序列来表征的。由此,通过对动作生成模型所生成的初始动作进行多样化编辑处理,使虚拟对象的动作从“千篇一律”到“千人千样”,动作多样化的处理变得实时、快速、泛化性高,通过直接对动作的具体维度进行实时编辑,不依赖引擎处理,随着虚拟对象的数量增加,本申请中采用的多样化编辑处理的速度不会大幅度降低,并且对于新人物泛化性高,不需要特殊处理。
在一个实施例中,对频率动作序列进行动作幅度编辑处理,得到第一幅度动作序列;或者,对初始动作序列进行动作幅度编辑处理,得到第二幅度动作序列,包括:
获取预配置的虚拟对象的幅度等级;不同的虚拟对象预配置不同大小的幅度等级;
基于频率动作序列、虚拟对象的幅度等级和预设幅度等级,确定第一幅度动作序列;或者,基于初始动作序列、虚拟对象的幅度等级和预设幅度等级,确定第二幅度动作序列。
其中,预配置的虚拟对象的幅度等级是指输入配置信息中的幅度等级,比如,针对虚拟对象1(人设为小孩)的输入配置幅度等级为1,针对虚拟对象2(人设为士兵)的输入配置幅度等级为4,即不同的虚拟对象预配置的幅度等级可能是相同的,也可能是不同的。可以理解,为了方便策划进行控制,本申请中可以预先将频率和幅度的控制进行分级设置,设置范围为[-5,5],然后通过频率权重解算单元、幅度权重解算单元将等级解算为具体数值权重,最后作用于动作序列上。
预设幅度等级是指预先设置的幅度等级的最大值,比如,本申请中幅度等级的范围设置为[-5,5],则预设的幅度等级的最大值为5,即预设幅度等级为5。
具体地,当终端需要生成当前时刻的游戏画面时,终端可以获取虚拟对象的初始动作序列,并获取预配置的各个虚拟对象的幅度等级,由于不同的虚拟对象预配置频率等级、幅度等级的大小可能不同,进一步的,终端可以基于预设算法、频率动作序列、虚拟对象的幅度等级和预设的幅度等级的最大值,计算得到第一幅度动作序列。比如,本申请中计算得到第一幅度动作序列的方式,可以如下公式(2)所示:
其中,为可设置的幅度等级的最大值,/>为输入配置的虚拟对象的幅度等级,/>为幅度权重解算单元,/>为幅度扰动模型,/>为施加频率编辑之后所得的动作序列,即频率动作序列;/>为施加幅度、频率编辑之后的动作序列,即第一幅度动作序列。
可以理解,本申请中的幅度权重解算单元和幅度扰动模型可以是预先设置的某种函数,幅度扰动模型也可以是预先训练好的神经网络模型。
此外,终端还可以基于预设算法、初始动作序列、虚拟对象的幅度等级和预设的幅度等级的最大值,计算得到幅度动作序列,即第二幅度动作序列。比如,本申请中计算得到第二幅度动作序列的方式,可以如下公式(3)所示:
(3)
其中,为可设置的幅度等级的最大值,/>为输入配置的虚拟对象的幅度等级,/>为幅度权重解算单元,/>为幅度扰动模型,Y为当前帧的动作序列(初始动作序列);为施加幅度编辑之后的动作序列,即第二幅度动作序列。
本实施例中,通过对动作生成模型所生成的初始动作进行多样化编辑处理,使NPC动作从“千篇一律”到“千人千样”,即通过引入动作多样化姿态编辑模块,首先对多样化的属性进行抽象和定义,并将其和动作的具体维度进行关联,再通过对这些维度进行实时的多样化编辑处理,以达到虚拟对象动作的多样化。
在其中一个实施例中,幅度权重解算单元可以如下公式所示:
其中,Rmin=0.2,Rmax=0.4。
幅度扰动模型可以如下公式所示:
是一个和/>维度相同的向量,其中第i维数值为:
在其中一个实施例中,基于频率动作序列、虚拟对象的幅度等级和预设幅度等级,确定第一幅度动作序列,包括:
将频率动作序列和虚拟对象的幅度等级输入至幅度扰动模型;
通过幅度扰动模型,对虚拟对象的幅度等级和预设幅度等级进行权重运算,得到幅度权重;
根据幅度权重和频率动作序列确定第一幅度动作序列;
其中,第一幅度动作序列的幅度维度,是通过虚拟对象的髋关节在目标方向的速度和位置表征的。
具体地,终端基于初始动作序列、虚拟对象的频率等级和预设的频率等级的最大值,确定频率动作序列之后,终端可以获取配置文件中预设的幅度等级的最大值、以及获取策划输入的各个虚拟对象的幅度等级,终端可以通过前述的幅度权重解算单元对预设的幅度等级的最大值和虚拟对象的幅度等级进行权重解算处理,即将虚拟对象的幅度等级解算为具体数值权重,得到解算后的幅度权重数值,进一步的,终端可以根据幅度权重数值和频率动作序列确定第一幅度动作序列,即终端可以通过前述的幅度扰动模型/>对频率动作序列和解算后的幅度权重数值进行处理,输出的动作序列即为第一幅度动作序列。其中,本申请中的第一幅度动作序列的频率维度,是通过虚拟对象的髋关节在z轴方向的速度和动作循环周期表征的,第一幅度动作序列的幅度维度,是通过虚拟对象的髋关节在z轴方向的速度和和z轴方向的位置表征的。即终端可以对虚拟对象的髋关节在z轴方向的速度和z轴方向的位置进行调整,得到的调整后的虚拟对象的髋关节在z轴方向的速度和z轴方向的位置是由第一幅度动作序列来表征的。
举个例子,如图6所示,为动作多样化编辑模块的整体结构示意图。比如,终端基于当前帧的初始动作序列Y、虚拟对象的频率等级和预设的频率等级的最大值/>,确定频率动作序列/>之后,终端可以获取配置文件中预设的幅度等级的最大值/>、以及获取策划输入的虚拟对象的幅度等级/>,终端可以通过幅度权重解算单元/>对预设的幅度等级的最大值/>和虚拟对象的幅度等级/>进行权重解算处理,即将虚拟对象的幅度等级/>解算为具体数值权重,得到解算后的幅度权重数值,进一步的,终端可以根据幅度权重数值和频率动作序列/>确定多样化动作序列/>,即终端可以通过幅度扰动模型对频率动作序列/>和解算后的幅度权重数值进行处理,输出的动作序列/>即为多样化动作序列。
本实施例中,通过对动作生成模型所生成的初始动作进行多样化编辑处理,使虚拟对象的动作从“千篇一律”到“千人千样”,动作多样化的处理变得实时、快速、泛化性高,通过直接对动作的具体维度进行实时编辑,不依赖引擎处理,随着虚拟对象的数量增加,本申请中采用的多样化编辑处理的速度不会大幅度降低,并且对于新人物泛化性高,不需要特殊处理。
在其中一个实施例中,基于初始动作序列、虚拟对象的幅度等级和预设幅度等级,确定第二幅度动作序列的步骤,包括:
将初始动作序列和虚拟对象的幅度等级输入至幅度扰动模型;
通过幅度扰动模型,对虚拟对象的幅度等级和预设幅度等级进行权重运算,得到幅度权重;
根据幅度权重和初始动作序列确定第二幅度动作序列;
其中,第二幅度动作序列的幅度维度,是通过虚拟对象的髋关节在目标方向的速度和位置表征的。
具体地,终端基于初始动作序列、虚拟对象的幅度等级和预设的幅度等级的最大值,确定第二幅度动作序列的具体流程包括:终端可以获取配置文件中预设的幅度等级的最大值、以及获取策划输入的各个虚拟对象的幅度等级/>,终端可以通过前述的幅度权重解算单元/>对预设的幅度等级的最大值/>和虚拟对象的幅度等级/>进行权重解算处理,即将虚拟对象的幅度等级解算为具体数值权重,得到解算后的幅度权重数值,进一步的,终端可以根据幅度权重数值和初始动作序列Y确定第二幅度动作序列,即终端可以通过前述的幅度扰动模型/>对初始动作序列Y和解算后的幅度权重数值进行处理,输出的动作序列即为第二幅度动作序列。其中,本申请中的第二幅度动作序列的幅度维度,是通过虚拟对象的髋关节在z轴方向的速度和和z轴方向的位置表征的。即终端可以对虚拟对象的髋关节在z轴方向的速度和z轴方向的位置进行调整,得到的调整后的虚拟对象的髋关节在z轴方向的速度和z轴方向的位置是由第二幅度动作序列来表征的。
本实施例中提出的动作多样化编辑方案可以实时运行,计算量小、计算速度快,并且泛化性高,不需要随着人物的改变而进行针对性调整,进而有效提高了动作多样化编辑处理的效率。
在一个实施例中,旋转矩阵包括踝关节旋转矩阵和趾关节旋转矩阵;根据虚拟对象所处的地形对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵的步骤,包括:
获取虚拟对象在所处地形中的预测落脚点;
根据预测落脚点处的地形信息,确定虚拟对象的踝关节旋转矩阵;
根据预测落脚点处的地形信息,确定虚拟对象的趾关节旋转矩阵。
其中,踝关节旋转矩阵是指用于表征虚拟对象踝关节旋转方向的矩阵,比如,踝关节旋转矩阵可以由(rightward, upward, forward)三个向量构成,其中,rightward向量可以为x轴方向的向量,upward向量可以为y轴方向的向量,forward向量可以为z轴方向的向量。
趾关节旋转矩阵是指用于表征虚拟对象趾关节旋转方向的矩阵,比如,趾关节旋转矩阵也可以由(rightward, upward, forward)三个向量构成,其中,rightward向量可以为x轴方向的向量,upward向量可以为y轴方向的向量,forward向量可以为z轴方向的向量。
预测落脚点是指虚拟对象的脚踝关节和脚趾关节处的地形高度,即虚拟对象的脚踝关节和脚趾关节实际所在位置投影到地面的高度。比如,如图7所示,为利用地形高度构造旋转矩阵的示意图,图7中虚拟对象的脚踝关节所在位置为f点,图7中虚拟对象的脚趾关节所在位置为r点,虚拟对象的脚踝关节和脚趾关节所在位置投影到地面的高度为:f点投影到地面的高度和r点投影到地面的高度。比如,预测落脚点是指:图7中所示的f点投影到地面的点(f点)和r点投影到地面的点(t点)。
具体地,终端对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列之后,终端可以获取虚拟对象在所处地形中的预测落脚点(f点和t点),并根据预测落脚点处的地形信息,确定虚拟对象的踝关节旋转矩阵;同时,终端也可以根据预测落脚点处的地形信息,确定虚拟对象的趾关节旋转矩阵。
举个例子,如图7所示,为利用地形高度构造旋转矩阵的示意图,图7中虚拟对象A的脚踝关节所在位置为f点,图7中虚拟对象A的脚趾关节所在位置为r点,虚拟对象A的脚踝关节和脚趾关节所在位置投影到地面的高度为:f点投影到地面的高度和r点投影到地面的高度,如图7中所示的虚拟对象A在所处地形中的预测落脚点是指:图7中所示的f点投影到地面的点(f点)和r点投影到地面的点(t点),即假设虚拟对象A的脚踝关节所在位置为f点,脚踝关节所在位置(f点)在地面的投影为f点;脚尖(脚趾关节)所在位置为r点,脚尖(脚趾关节)所在位置(r点)在地面的投影为t点,终端可以基于虚拟对象A的脚踝关节所在位置为f点、脚尖(脚趾关节)所在位置(r点)在地面的投影为t点,分别构造踝关节旋转矩阵和趾关节旋转矩阵,并将构造所得的踝关节旋转矩阵作为该虚拟对象A脚踝关节的旋转矩阵,将构造所得的趾关节旋转矩阵作为该虚拟对象A脚趾关节的旋转矩阵。由此,通过分别对虚拟对象A脚趾关节和脚踝关节进行旋转,使得NPC人物脚部适配多变地形,即通过对脚面整体情况进行调整,通过实时获取游戏地图中的地形高度情况,动态调整脚踝关节和脚尖关节,减少脚面与地面穿模,从而使得游戏画面中所呈现的虚拟人物的真个脚部实时贴近起伏多变的地面。
在一个实施例中,预测落脚点包括虚拟对象的踝关节的坐标点和虚拟对象的趾关节的坐标点;根据预测落脚点处的地形信息,确定虚拟对象的踝关节旋转矩阵的步骤,包括:
根据预测落脚点,确定虚拟对象的踝关节在地形上的脚踝投影点;脚踝投影点包括左侧踝关节投影点和右侧踝关节投影点;
确定趾关节的坐标点在地形上的趾关节投影点;
基于踝关节的坐标点和趾关节投影点,确定第一踝关节向量;
基于左侧踝关节投影点和右侧踝关节投影点,确定第二踝关节向量;
基于第一踝关节向量和第二踝关节向量,确定虚拟对象的踝关节旋转矩阵。
其中,虚拟对象的踝关节的坐标点是指虚拟对象的踝关节接触地面时的坐标点,即为虚拟对象的踝关节实际所在位置投影到地面的点。
虚拟对象的趾关节的坐标点是指虚拟对象的趾关节接触地面时的坐标点,即为虚拟对象的趾关节实际所在位置投影到地面的点。
在地形上的脚踝投影点是指脚踝关节在地面上的投影点,在地形上的趾关节投影点是指脚趾关节在地面上的投影点。
左侧踝关节投影点是指脚踝关节在左侧地面上的投影点,比如,如图7中所示的脚踝关节为f点,f点在左侧地面上的投影为点。
右侧踝关节投影点是指脚踝关节在右侧地面上的投影点,比如,如图7中所示的脚踝关节为f点,f点在右侧地面上的投影为点。
具体地,终端对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列之后,如图7所示,为利用地形高度构造旋转矩阵的示意图,图7中虚拟对象A的脚踝关节所在位置为f点,图7中虚拟对象A的脚趾关节所在位置为r点,如图7中所示的虚拟对象A在所处地形中的预测落脚点是指:图7中所示的f点投影到地面的点(f点)和r点投影到地面的点(t点),即假设虚拟对象A的脚踝关节所在位置为f点,脚踝关节所在位置(f点)在地面的投影为f点;脚尖(脚趾关节)所在位置为r点,脚尖(脚趾关节)所在位置(r点)在地面的投影为t点,终端可以基于虚拟对象A的预测落脚点,即终端基于虚拟对象A的脚踝关节接触地面时的f点,确定该虚拟对象A的踝关节在当前地形的地面上的左侧踝关节投影点为点,同时,终端基于虚拟对象A的脚踝关节接触地面时的f点,确定该虚拟对象A的踝关节在当前地形的地面上的右侧踝关节投影点为/>点,则终端构造该虚拟对象A的踝关节旋转矩阵的过程包括:
1、终端以f点和t点构建向量,并将向量/>作为forward向量(x轴方向);
2、终端以点和/>点构建向量/>,并将向量/>作为 rightward向量(y轴方向);/>
3、终端将以上两个向量(和/>)叉乘得到的结果作为upward向量(z轴方向),最终可以得到用于表征该虚拟对象A的踝关节旋转矩阵为(rightward, upward,forward)。
可以理解,本申请中在构建该虚拟对象A的踝关节旋转矩阵的过程中,由于构建的踝关节旋转矩阵用于对脚踝关节进行旋转,故只关心向量方向,不关心向量长度,即向量长度不会影响对脚踝关节进行旋转的结果。
本实施例中,通过利用游戏地形高度实时调整脚面整体旋转,使脚面整体实时适配多变地形,有效提升了游戏中人物的动作表现。
在其中一个实施例中,基于第一踝关节向量和第二踝关节向量,确定虚拟对象的踝关节旋转矩阵,包括:
基于第一踝关节向量和第二踝关节向量,确定第三踝关节向量;
将第一踝关节向量、第二踝关节向量和第三踝关节向量,组合成虚拟对象的踝关节旋转矩阵。
其中,本申请中的第一踝关节向量、第二踝关节向量和第三踝关节向量只是用于区分不同方向的向量,比如,本申请中的第一踝关节向量可以是forward向量(x轴方向)、第二踝关节向量可以是rightward向量(y轴方向)、第三踝关节向量可以是upward向量(z轴方向)。
具体地,如图7所示,为利用地形高度构造旋转矩阵的示意图,终端构造虚拟对象的踝关节旋转矩阵的过程包括:终端以图7中所示的f点和t点构建第一踝关节向量,并将第一踝关节向量/>作为forward向量(x轴方向);进一步的,终端以/>点和/>点构建第二踝关节向量/>,并将第二踝关节向量/>作为 rightward向量(y轴方向),终端根据预设算法,对第一踝关节向量和第二踝关节向量(/>和/>)进行相关运算后得到运算结果R,并将运算结果R作为upward向量(z轴方向),最终可以得到用于表征该虚拟对象的踝关节旋转矩阵为(/>, />, R)。由此使得,通过实时利用地形信息构造脚踝、脚尖的旋转矩阵,将脚踝、脚尖旋转到贴合地面的位置,使得虚拟对象的整个脚部的动作姿态适应多变的地形,有效减少了虚拟人物动作姿态的穿模率。
在其中一个实施例中,基于第一踝关节向量和第二踝关节向量,确定第三踝关节向量的步骤,包括:
确定第一脚踝向量和第二脚踝向量之间的叉乘结果;
将叉乘结果作为第三踝关节向量。
具体地,如图7所示,为利用地形高度构造旋转矩阵的示意图,终端构造虚拟对象的踝关节旋转矩阵的过程包括:终端以图7中所示的f点和t点构建第一踝关节向量,并将第一踝关节向量/>作为forward向量(x轴方向);进一步的,终端以/>点和/>点构建第二踝关节向量/>,并将第二踝关节向量/>作为 rightward向量(y轴方向),终端将第一踝关节向量和第二踝关节向量(/>和/>)叉乘得到的结果(/>*/>)作为upward向量(z轴方向),即最终可以得到用于表征虚拟对象的踝关节旋转矩阵为(/>,/>,/>*/>)。由此使得,通过实时利用地形信息构造脚踝、脚尖的旋转矩阵,将脚踝、脚尖旋转到贴合地面的位置,使得虚拟对象的整个脚部的动作姿态适应多变的地形,有效减少了虚拟人物动作姿态的穿模率。
在一个实施例中,根据预测落脚点处的地形信息,确定虚拟对象的趾关节旋转矩阵的步骤,包括:
根据预测落脚点,确定虚拟对象的踝关节在地形上的脚踝投影点;脚踝投影点包括左侧踝关节投影点和右侧踝关节投影点;
确定趾关节的坐标点在地形上的趾关节投影点;
基于踝关节的坐标点和趾关节投影点,确定第一趾关节向量;
基于左侧踝关节投影点和右侧踝关节投影点,确定第二趾关节向量;
基于第一趾关节向量和第二趾关节向量,确定虚拟对象的趾关节旋转矩阵。
具体地,终端对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列之后,如图8所示,为虚拟对象脚部左右存在高度差的处理过程的示意图,图8中虚拟对象的脚踝关节所在位置为f点,如图8中所示的虚拟对象在所处地形中的预测落脚点是指:图8中所示的f点投影到地面的点(f点)和虚拟对象的脚趾关节所在位置投影到地面的点(t点),即假设虚拟对象A的脚踝关节所在位置为f点,脚踝关节所在位置(f点)在地面的投影为f点;脚尖(脚趾关节)所在位置在地面的投影为t点,终端可以基于虚拟对象A的预测落脚点,即终端基于虚拟对象A的脚趾关节接触地面时的f点,确定该虚拟对象A的踝关节在当前地形的地面上的左侧踝关节投影点为点,同时,终端基于虚拟对象A的脚踝关节接触地面时的f点,确定该虚拟对象A的踝关节在当前地形的地面上的右侧踝关节投影点为/>点,则终端构造该虚拟对象A的趾关节旋转矩阵的过程包括:
1、终端以f点和t点构建向量,并将向量/>作为forward向量(x轴方向);
2、终端以点和/>点构建向量/>,并将向量/>作为 rightward向量(y轴方向);
3、终端将以上两个向量(和/>)叉乘得到的结果作为upward向量(z轴方向),最终可以得到用于表征该虚拟对象A的踝关节旋转矩阵为(rightward, upward,forward)。
可以理解,本申请中在构建该虚拟对象A的趾关节旋转矩阵的过程中,由于构建的趾关节旋转矩阵用于对脚趾关节进行旋转,故只关心向量方向,不关心向量长度,即向量长度不会影响对脚趾关节进行旋转的结果。
本实施例中,通过实时利用地形信息构造脚踝、脚尖的旋转矩阵,将脚踝、脚尖旋转到贴合地面的位置,使得虚拟对象的整个脚部的动作姿态适应多变的地形,有效减少了虚拟人物动作姿态的穿模率。
在一个实施例中,基于第一趾关节向量和第二趾关节向量,确定虚拟对象的趾关节旋转矩阵的步骤,包括:
基于第一趾关节向量和第二趾关节向量,确定第三趾关节向量;
将第一趾关节向量、第二趾关节向量和第三趾关节向量,组合成虚拟对象的趾关节旋转矩阵。
其中,本申请中的第一趾关节向量、第二趾关节向量和第三趾关节向量只是用于区分不同方向的向量,比如,本申请中的第一趾关节向量可以是forward向量(x轴方向)、第二趾关节向量可以是rightward向量(y轴方向)、第三趾关节向量可以是upward向量(z轴方向)。
具体地,如图8所示,为虚拟对象脚部左右存在高度差的处理过程的示意图,终端构造虚拟对象的趾关节旋转矩阵的过程包括:终端以图8中所示的f点和t点构建第一趾关节向量,并将第一趾关节向量/>作为forward向量(x轴方向);进一步的,终端以/>点和点构建第二趾关节向量/>,并将第二趾关节向量/>作为 rightward向量(y轴方向),终端根据预设算法,对第一趾关节向量和第二趾关节向量(/>和/>)进行相关运算后得到运算结果R,并将运算结果R作为upward向量(z轴方向),比如,终端将第一趾关节向量和第二趾关节向量(/>和/>)叉乘得到的结果(/>*/>)作为第三趾关节向量即upward向量(z轴方向),最终可以得到用于表征虚拟对象的趾关节旋转矩阵为(/>,/>*/>)。由此使得,通过实时利用地形信息构造脚踝、脚尖的旋转矩阵,将脚踝、脚尖旋转到贴合地面的位置,使得虚拟对象的整个脚部的动作姿态适应多变的地形,有效减少了虚拟人物动作姿态的穿模率。
在一个实施例中,脚部关节的局部动作姿态包括踝关节动作姿态和趾关节动作姿态;依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使脚部关节的局部动作姿态适配于地形的步骤,包括:
依据旋转矩阵,对全局动作姿态下的虚拟对象的踝关节和趾关节进行旋转,得到包括踝关节动作姿态和趾关节动作姿态的调整后全局动作姿态;踝关节动作姿态和趾关节动作姿态适配于地形;
所述方法还包括:在视频画面中显示调整后全局动作姿态下的虚拟对象。
具体地,终端根据当前时刻虚拟对象所处的地形所对应的地形信息,确定虚拟对象的脚部关节的旋转矩阵之后,终端可以基于处理后动作序列确定虚拟对象的全局动作姿态,并依据旋转矩阵对全局动作姿态下的虚拟对象的脚部关节进行旋转,以使虚拟对象的脚部关节的局部动作姿态适配于当前地形,即本申请提供的方法,在终端基于处理后动作序列确定虚拟对象在当前时刻所对应的全局动作姿态之后,终端还可以对全局动作姿态下的虚拟对象的脚部关节进行调整,即动态调整虚拟对象的脚踝关节和脚趾关节,使虚拟对象的整个脚面与地面不再发生穿模,尽可能地减少和地面的穿模,从而实现虚拟对象的整个脚部实时贴近起伏多变的地面。
举个例子,以虚拟对象为非玩家角色为例进行说明。假设终端基于虚拟对象A的脚踝关节和脚趾关节处的地形高度,分别计算出该虚拟对象A的脚踝关节所对应的踝关节旋转矩阵R1、以及虚拟对象的脚趾关节所对应的趾关节旋转矩阵R2,进一步的,终端可以基于处理后动作序列A2确定该虚拟对象的全局动作姿态如图3中所示的动作2,终端可以依据脚踝关节所对应的踝关节旋转矩阵R1对该虚拟对象A的脚踝关节进行旋转,即可得到旋转后的该虚拟对象A的脚部关节;进一步的,终端可以依据脚趾关节所对应的趾关节旋转矩阵R2对该虚拟对象A的脚趾关节进行旋转,即可得到二次旋转后的该虚拟对象A的脚部关节,以使二次旋转后的该虚拟对象A的脚部关节的局部动作姿态适配于当前地形。即本申请中的终端可以依据旋转矩阵,对全局动作姿态下的该虚拟对象A的踝关节和趾关节分别进行旋转,得到包括踝关节动作姿态和趾关节动作姿态的调整后全局动作姿态。
进一步的,终端在得到包括踝关节动作姿态和趾关节动作姿态的调整后全局动作姿态之后,终端可以在游戏画面(游戏视频画面)中显示调整后全局动作姿态下的该虚拟对象A。比如,如图5所示,为实际应用场景中的示意图,终端可以在如图所示的游戏画面(当前帧)中显示调整后全局动作姿态下的该虚拟对象A(长发女士),图5中所示的虚拟对象A的踝关节动作姿态和趾关节动作姿态均适配于当前地形,即图5中所示的虚拟对象A的踝关节动作姿态和趾关节动作姿态均处于地面之上(实时贴合起伏多变的地面),未与地面发生穿模。由此使得,能够实时利用地形信息,编辑脚部以适应多变地形,本申请实施例中针对脚部编辑的后处理方法巧妙地实时利用游戏场景的地形高度信息,对脚部的旋转矩阵做修正,以适应多变的地形,在改善虚拟对象的动作效果,减少穿模率的同时,又能够有效地提高不同虚拟对象动作的拟人化效果。
本申请还提供一种应用场景,该应用场景应用上述的虚拟对象的姿态控制方法。具体地,该虚拟对象的姿态控制方法在该应用场景的应用如下:
在用户与游戏应用进行交互的过程中,可以采用上述的虚拟对象的姿态控制方法,比如,在某个游戏应用的游戏场景中,每个用户可选择自己在本场游戏中的虚拟角色,并通过控制一个或多个虚拟角色与对方(如其它用户或计算机程序)控制的虚拟角色进行互动,例如用户控制一个游戏角色与游戏场景中的NPC交互,以达到升级的目的,即在用户与游戏应用交互的过程中,终端可以对虚拟人的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;初始动作序列是基于动作生成模型所生成的;终端可以根据虚拟人所处的地形对应的地形信息,确定虚拟人的脚部关节的旋转矩阵,并基于处理后动作序列确定虚拟人的全局动作姿态;进一步的,终端可以依据旋转矩阵对全局动作姿态下的虚拟人的脚部关节进行旋转,以使虚拟人的脚部关节的局部动作姿态适配于地形,由此使得,在用户使用不同的移动端设备启动游戏应用时,提供了一种用于动作生成后处理阶段并实时匹配地形的多样化姿态编辑的方案,此方法包含两个模块,第一个模块为动作多样化编辑模块,其首先对动作的多样化维度进行了定义,然后对多样化维度进行属性表征,即将定义的多样化维度和动作的具体维度进行了抽取和绑定,最后通过对动作序列的特定维度进行编辑从而达到“多样化”动作的目的,此模块使用到的多样化维度包含动作的频率和幅度两个维度。第二个模块是实时匹配地形的脚部姿态编辑模块,因游戏预制动画或AI动作生成模型生成的脚部动作都无法完美适配游戏场景中各种各样的地面,导致和地面穿模,因此我们引入此模块,其首先通过实时获取脚踝关节和脚趾关节处的地形高度(此高度为当脚踝关节和脚趾关节触地时脚部应该到达的高度),然后通过将脚部关节匹配到此高度,并通过旋转脚部关节从而使脚部完全处于地面之上,不再发生穿模,有效改善了虚拟人的动作效果,使得得到的虚拟人的动作效果更好,进而有效提升了游戏画面的显示效果。
本申请实施例提供的方法,可以应用于用户与各种游戏应用交互的场景中。以下以用户与包含三维立体虚拟对象的游戏应用进行交互的场景为例,对本申请实施例提供的虚拟对象的姿态控制方法进行说明。
其中,姿态多样化:游戏预制动画或AI动作生成模型产生的动作虽然高度拟人化,但因动作都来自同一模型,因此在游戏表现中,所有人的动作都一模一样、千篇一律,因此需要将模型产生的动作进行多样化编辑,具体过程为预先抽取动作的不同维度,并对这些维度进行定向编辑,从而达到姿态多样化。
匹配地形:游戏中有多种多样的地形,如:楼梯、斜坡、凹凸不平的地面等等,而动画或AI动作生成模型生成的动作并不能时时刻刻100%地匹配到未见的、各种各样的地形,因此需要引入姿态编辑模块对动作姿态进行调整,使脚面匹配到游戏中多样的地形,减少穿模率。
虚拟人:一种模拟人类思维或行为的计算机程序,通常被用于人机交互、虚拟现实、游戏等领域,一般可充当智能客服、虚拟教师、虚拟演员等。
非玩家角色(NPC,Non-Player Character):指的是一种在计算机游戏、虚拟现实等虚拟环境中出现的非玩家角色,由计算机程序控制。
传统方式中,游戏玩家对游戏的沉浸感不断提出新要求,其中一个重要的方面就是要求游戏中NPC(Non-Player Character)动作越来越拟人化。因此实时AI动作生成模型应运而生,其技术在游戏的每一帧为NPC生成此帧的动作,如走、跑、跳等动作,因其训练数据使用了大量的、真实的人类动捕数据,因此其生成的动作可以满足拟人化的需求。但上述技术在落地实践过程中遇到了一些新挑战,其中两个比较重要的挑战是:生成动作千篇一律和人物脚步无法实时贴近起伏多变的地面。
游戏中生成的虚拟对象存在以下几个问题:
(1)生成动作千篇一律;(2)人物脚步无法实时贴近起伏多变的地面;
针对问题1:传统方式中采用的处理方式为:动作多样化的技术方案为动画重定向(retargeting) + IK(反向动力学)的方法,即首先将原始动画利用游戏引擎的动画重定向模块将动作以不同的速率、不同的幅度赋值(retargeting)给其他人物,再利用IK方法消除此过程中出现的穿模、变形等不合理现象。如图3中,将原始人物的原始动画(原始动作)利用retarget技术以不同的跨步幅度赋值给其他人物,因此五个人物的抬腿幅度不同,再利用IK技术修复因此带来的穿模。
针对问题2:人物脚步无法实时贴近起伏多变的地面,传统方式中通常的解决方案为Two Bones IK方法,如图9所示,为传统方式中Two Bones IK 过程示意图。IK方法的简单描述:如图9中所示传统方式中需要将末端关节 c 移动到目标位置 t,通过移动和旋转全身关节达成这一目标: 首先通过旋转髋关节a和膝关节b,改变ac的距离使ac=at,然后通过旋转髋关节a,使c与t重合。通过Two Bones IK方法将人物脚部的位置改变,如抬高脚的位置,以尽可能地减少和地面的穿模。
即传统方式中存在的缺点包括:
针对问题1:动作多样化,传统技术方案的缺点:
(1)IK表现的稳定性低,表现方差大:在所有的游戏引擎中,IK方案并不是完美无缺的,其具体表现好坏的方差较大,不稳定。
(2)处理速度慢:现有方案依赖于游戏引擎的动画重定向和IK模块,当处理的NPC人物数量一旦增大之后,需要逐个处理,处理速度会大幅降低,影响游戏的帧率和动画效果。
(3)当泛化到不同人物上时,需要针对性处理:现有方案中的IK技术应用在不同人物(高、矮、胖、瘦)上的表现效果不同,当目标人物为未见过的新人物时,需要美术人工去逐个校验此方案的具体表现,耗费人工和时间,不具有智能性。
针对问题2:人物脚步无法实时贴近起伏多变的地面,传统技术方案的缺点:
(4)只关注到了脚踝关节的位置,没有关注整个脚面的旋转:如图9中所示,通过Two Bones IK方法,将脚踝关节抬高至地面之上,但是脚面整体,尤其是脚尖部分依旧和斜面是穿模的,因为此方案只关注到了脚踝关节的位置,而没有关注脚面整体的旋转。
因此,为了解决上述问题,本申请提出了一种用于动作生成后处理阶段并实时匹配地形的多样化姿态编辑方法,此方法包含两个模块,第一个模块为动作多样化编辑模块,其首先对动作的多样化维度进行了定义,然后对多样化维度进行属性表征,即将定义的多样化维度和动作的具体维度进行了抽取和绑定,最后通过对“单一”动作序列的特定维度进行编辑从而达到“多样”,此模块使用到的多样化维度包含动作的频率和幅度两个维度。第二个模块是实时匹配地形的脚部姿态编辑模块,因游戏预制动画或AI动作生成模型生成的脚部动作都无法完美适配游戏场景中各种各样的地面,导致和地面穿模,因此我们引入此模块,其首先通过实时获取脚踝关节和脚趾关节处的地形高度(此高度为当触地时脚部应该到达的高度),然后通过将脚部关节匹配到此高度,并通过旋转脚部关节从而使脚部完全处于地面之上,不再发生穿模,改善动作效果。
可以理解,本申请提出的两个姿态编辑技术方案可以应用到游戏的预制动画或任何实时AI动作生成模型之后,用于改善生成的动作质量,并提高动作的拟人化效果。
本申请中提供的方法能解决的问题包括:
(1)使NPC动作从“千篇一律”到“千人千样”,通过引入动作多样化姿态编辑模块,首先对多样化的属性进行抽象和定义,并将其和动作的具体维度进行关联,通过对这些维度进行实时编辑,以达到动作多样化;
(2)动作多样化的方案变得实时、快速、泛化性高:本技术方案直接对动作的具体维度进行实时编辑,不依赖引擎处理,随着NPC数量增加处理速度不会大幅度增大,并且对于新人物泛化性高,不需要特殊处理;
(3)使NPC人物脚部适配多变地形:对脚面整体情况进行编辑,通过实时获取游戏地图中的地形高度情况,动态调整脚踝关节和脚尖关节,使脚面与地面减少穿模,从而实时贴近起伏多变的地面。
在产品侧,本申请提供的技术方案的最终的产品呈现形式分为两个层面包括:
应用产品:真人类开放世界类游戏。本申请提出的技术方案是应用在实时动作生成技术后处理阶段的姿态编辑方法,而实时动作生成技术可应用于真人类开放世界游戏,如某种动作类手游等,用于实时驱动NPC生成适配地形的各种动作,如locomotion(移动)、坐、快走、慢走、快跑、慢跑等动作,提升NPC动作的表现和拟人性。
应用场景:为开放世界游戏NPC生成locomotion动作。使用实时动作生成技术训练得到的模型和本申请提出的姿态后编辑技术,可为开放世界游戏的NPC生成高质量的、千人千面、适配地形的locomotion动作。
功能特性:通过指定路径和运动速度,为NPC实时生成对应动作,并对生成的动作进行实时后编辑,使得“千人千面”,并且实时适配复杂的游戏地形。以图5为例,图中走动的两个NPC的动作都是实时生成并进行姿态后编辑处理的,可以看到他们走路的频率、幅度都不相同,并且脚步可以适配复杂的、凹凸不平的地面。
在技术侧,如图10所示,为本申请实施例中提供的用于动作生成后处理阶段并实时匹配地形的多样化姿态编辑方法的线上整体方案架构的示意图。即图10展示了本申请在实际应用时的整体方案架构,本申请提供的创新技术包括图6中所示的其中的两个姿态后编辑模块:动作多样化编辑模块和脚部适配地形编辑模块,需要指出的是,本申请的创新点主要在于:1.提出了一种通用化的动作多样化编辑模块,使得人物动作从“千篇一律”到“千人千面”;2.提出了一种脚部适配地形的编辑模块,通过利用游戏地形高度实时调整脚面整体旋转,使脚面整体实时适配多变地形,提升游戏中人物动作表现。
A.动作多样化编辑:动作多样化编辑模块的整体结构如图6所示。即本申请中首先对动作多样化的属性进行抽象和定义:行走的频率f、摆臂跨步的幅度s,然后对多样化属性进行表征:频率控制、幅度控制的相关维度(如表 1),最后,终端利用图6中的流程对频率、幅度相关维度的属性进行放大和缩小,即可对动作的频率和幅度进行控制。
表1 多样化属性的相关维度抽取
为了方便策划进行控制,将频率和幅度的控制进行分级设置,设置范围为[-5,5],然后通过频率权重解算、幅度权重解算单元将等级解算为具体数值权重,最后作用于动作序列上。整体计算流程为:
步骤1:动作频率编辑 Frequency Editing如前述公式(1)所示的计算方式;
步骤2:动作幅度编辑 Stride Editing如前述公式(2)所示的计算方式;
经过以上两个步骤之后,如图11所示,为频率、幅度组合图。如图11中所示共可获得至少121种多样化组合配置(只考虑整数值),并且幅度、频率可单独控制,也可叠加控制,控制的同时带来速度的变化。
B.脚部适配地形编辑:减少现有方案中脚部整体和地面的穿模(传统方案只考虑了脚踝的位置),理想编辑状态应如图12所示,为适配地形的理想状态的示意图。为了达到图12的理想状态,除了需要考虑将脚踝位置移动到贴合地面的位置,还需要对脚踝、甚至是脚尖进行旋转,以适配复杂的地形。但在游戏实时运行的情况下,可以根据什么信息去简单、快速地调整以适配多变的地形,故本申请中提出了实时利用地形信息构造脚踝、脚尖的旋转矩阵,将脚踝、脚尖旋转到贴合地面的位置。
已知:关节旋转矩阵由(rightward, upward, forward)三个向量构成。如图7所示:设虚拟人的脚踝为f点,脚尖在地面的投影为t点,脚踝左侧10cm在地面的投影为点,脚踝右侧10cm在地面的投影为/>点,则终端构造旋转矩阵的过程为:
1、以为forward向量;
2、以为rightward向量;
3、以上两向量叉乘得到upward向量;
将此旋转矩阵作为脚踝新的local旋转矩阵,即为目标状态的旋转矩阵。以上演示了人物脚部前后存在高度差时构造旋转矩阵的过程,如果人物脚部左右存在高度差,也是一样的过程,如图8中所示,脚部左右存在高度差时,比如,虚拟对象的脚尖大拇指踩在了小石子上,上述解决方案依旧正确。以上处理过程对脚尖关节同样适用,通过利用脚尖(是指脚部大拇指与小拇指连线的中点位置)前后、左右高度差对脚尖进行旋转,使得脚尖适配到凹凸不平的地面(比如,脚尖大拇指踩在了小石子上)。
为了量化上述脚部适配地形编辑模块的解决效果,本申请实施例中构建了一个量化指标,通过每次脚部触地时,脚尖和地面距离的平均值,以衡量脚部和地面的穿模程度。如图13所示,为脚部与地面穿模程度的量化衡量指标的示意图。本申请提供的方法得到的指标数值为0.53cm,远小于传统技术的2.21cm,较大程度地、实时地减少了穿插、穿模情况。
此外,对于动作多样化编辑模块,可以通过从动作捕捉数据中对动作具体的多样性进行抽取,得到动作多样化的隐式向量表达后,再结合多样化编辑模块对动作序列进行编辑。
本申请技术方案所产生的有益效果包括:
1.创新性地对动作的多样化进行了属性抽象和定义、表征,并提出一种动作多样性后编辑模块对动作进行编辑,形成上百种多样化动作,使动作效果不再“千篇一律”,而是“千人千面”;
2.提出的动作多样化编辑模块可以实时运行,计算量小、计算速度快,并且泛化性高,不需要随着人物的改变而进行针对性调整;
3.提出了一种能够实时利用地形信息,编辑脚部以适应多变地形的脚部编辑的后处理方法,此方法巧妙地实时利用游戏场景的地形高度信息对脚部的旋转矩阵做修正,以适应多变的地形,减少穿模率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的虚拟对象的姿态控制方法的虚拟对象的姿态控制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个虚拟对象的姿态控制装置实施例中的具体限定可以参见上文中对于虚拟对象的姿态控制方法的限定,在此不再赘述。
在一个实施例中,如图14所示,提供了一种虚拟对象的姿态控制装置,包括:编辑模块1402、确定模块1404和旋转模块1406,其中:
编辑模块1402,用于对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的。
确定模块1404,用于根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;基于所述处理后动作序列确定所述虚拟对象的全局动作姿态。
旋转模块1406,用于依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
在一个实施例中,编辑模块还用于对所述初始动作序列进行动作频率编辑处理,得到频率动作序列;对所述频率动作序列进行动作幅度编辑处理,得到第一幅度动作序列;或者,对所述初始动作序列进行动作幅度编辑处理,得到第二幅度动作序列;其中,所述处理后动作序列包括所述频率动作序列、所述第一幅度动作序列或所述第二幅度动作序列。
在一个实施例中,所述装置还包括:获取模块,用于获取预配置的所述虚拟对象的频率等级;不同的所述虚拟对象预配置不同大小的频率等级;确定模块还用于基于所述初始动作序列、所述虚拟对象的频率等级和预设频率等级,确定所述频率动作序列。
在一个实施例中,所述装置还包括:输入模块,用于将所述初始动作序列和所述虚拟对象的频率等级输入至频率扰动模型;运算模块,用于通过所述频率扰动模型,对所述虚拟对象的频率等级和预设频率等级进行权重运算,得到频率权重;确定模块还用于根据所述频率权重和所述初始动作序列确定所述频率动作序列;其中,所述频率动作序列的频率维度,是通过所述虚拟对象的髋关节在目标方向的速度和动作循环周期表征的。
在一个实施例中,获取模块还用于获取预配置的所述虚拟对象的幅度等级;不同的所述虚拟对象预配置不同大小的幅度等级;确定模块还用于基于所述频率动作序列、所述虚拟对象的幅度等级和预设幅度等级,确定所述第一幅度动作序列;或者,基于所述初始动作序列、所述虚拟对象的幅度等级和所述预设幅度等级,确定所述第二幅度动作序列。
在一个实施例中,输入模块还用于将所述频率动作序列和所述虚拟对象的幅度等级输入至幅度扰动模型;运算模块还用于通过所述幅度扰动模型,对所述虚拟对象的幅度等级和预设幅度等级进行权重运算,得到幅度权重;确定模块还用于根据所述幅度权重和所述频率动作序列确定所述第一幅度动作序列;其中,所述第一幅度动作序列的幅度维度,是通过所述虚拟对象的髋关节在目标方向的速度和位置表征的。
在一个实施例中,所述旋转矩阵包括踝关节旋转矩阵和趾关节旋转矩阵;获取模块还用于获取所述虚拟对象在所处地形中的预测落脚点;确定模块还用于根据所述预测落脚点处的地形信息,确定所述虚拟对象的踝关节旋转矩阵;根据所述预测落脚点处的地形信息,确定所述虚拟对象的趾关节旋转矩阵。
在一个实施例中,所述预测落脚点包括所述虚拟对象的踝关节的坐标点和所述虚拟对象的趾关节的坐标点;确定模块还用于根据所述预测落脚点,确定所述虚拟对象的踝关节在所述地形上的脚踝投影点;所述脚踝投影点包括左侧踝关节投影点和右侧踝关节投影点;确定所述趾关节的坐标点在所述地形上的趾关节投影点;基于所述踝关节的坐标点和所述趾关节投影点,确定第一踝关节向量;基于所述左侧踝关节投影点和所述右侧踝关节投影点,确定第二踝关节向量;基于所述第一踝关节向量和所述第二踝关节向量,确定所述虚拟对象的踝关节旋转矩阵。
在一个实施例中,所述装置还包括:组合模块,确定模块还用于基于所述第一踝关节向量和所述第二踝关节向量,确定第三踝关节向量;组合模块用于将所述第一踝关节向量、所述第二踝关节向量和所述第三踝关节向量,组合成所述虚拟对象的踝关节旋转矩阵。
在一个实施例中,确定模块还用于确定所述第一脚踝向量和所述第二脚踝向量之间的叉乘结果;将所述叉乘结果作为所述第三踝关节向量。
在一个实施例中,所述预测落脚点包括所述虚拟对象的踝关节的坐标点和所述虚拟对象的趾关节的坐标点;确定模块还用于根据所述预测落脚点,确定所述虚拟对象的踝关节在所述地形上的脚踝投影点;所述脚踝投影点包括左侧踝关节投影点和右侧踝关节投影点;确定所述趾关节的坐标点在所述地形上的趾关节投影点;基于所述踝关节的坐标点和所述趾关节投影点,确定第一趾关节向量;基于所述左侧踝关节投影点和所述右侧踝关节投影点,确定第二趾关节向量;基于所述第一趾关节向量和所述第二趾关节向量,确定所述虚拟对象的趾关节旋转矩阵。
在一个实施例中,确定模块还用于基于所述第一趾关节向量和所述第二趾关节向量,确定第三趾关节向量;组合模块还用于将所述第一趾关节向量、所述第二趾关节向量和所述第三趾关节向量,组合成所述虚拟对象的趾关节旋转矩阵。
在一个实施例中,所述脚部关节的局部动作姿态包括踝关节动作姿态和趾关节动作姿态;所述装置还包括:显示模块,旋转模块还用于依据所述旋转矩阵,对所述全局动作姿态下的所述虚拟对象的踝关节和趾关节进行旋转,得到包括所述踝关节动作姿态和所述趾关节动作姿态的调整后全局动作姿态;所述踝关节动作姿态和所述趾关节动作姿态适配于所述地形;显示模块,用于在视频画面中显示所述调整后全局动作姿态下的所述虚拟对象。
上述虚拟对象的姿态控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端或服务器,在本实施例中,以该计算机设备是终端为例进行说明,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种虚拟对象的姿态控制方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (16)

1.一种虚拟对象的姿态控制方法,其特征在于,所述方法包括:
对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的;
根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;
基于所述处理后动作序列确定所述虚拟对象的全局动作姿态;
依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
2.根据权利要求1所述的方法,其特征在于,所述对虚拟对象的初始动作序列进行动作频率或动作幅度中至少一种编辑处理,得到处理后动作序列,包括:
对所述初始动作序列进行动作频率编辑处理,得到频率动作序列;
对所述频率动作序列进行动作幅度编辑处理,得到第一幅度动作序列;或者,对所述初始动作序列进行动作幅度编辑处理,得到第二幅度动作序列;
其中,所述处理后动作序列包括所述频率动作序列、所述第一幅度动作序列或所述第二幅度动作序列。
3.根据权利要求2所述的方法,其特征在于,所述对所述初始动作序列进行动作频率编辑处理,得到频率动作序列,包括:
获取预配置的所述虚拟对象的频率等级;不同的所述虚拟对象预配置不同大小的频率等级;
基于所述初始动作序列、所述虚拟对象的频率等级和预设频率等级,确定所述频率动作序列。
4.根据权利要求3所述的方法,其特征在于,所述基于所述初始动作序列、所述虚拟对象的频率等级和预设频率等级,确定所述频率动作序列,包括:
将所述初始动作序列和所述虚拟对象的频率等级输入至频率扰动模型;
通过所述频率扰动模型,对所述虚拟对象的频率等级和预设频率等级进行权重运算,得到频率权重;
根据所述频率权重和所述初始动作序列确定所述频率动作序列;
其中,所述频率动作序列的频率维度,是通过所述虚拟对象的髋关节在目标方向的速度和动作循环周期表征的。
5.根据权利要求2所述的方法,其特征在于,所述对所述频率动作序列进行动作幅度编辑处理,得到第一幅度动作序列;或者,对所述初始动作序列进行动作幅度编辑处理,得到第二幅度动作序列,包括:
获取预配置的所述虚拟对象的幅度等级;不同的所述虚拟对象预配置不同大小的幅度等级;
基于所述频率动作序列、所述虚拟对象的幅度等级和预设幅度等级,确定所述第一幅度动作序列;或者,基于所述初始动作序列、所述虚拟对象的幅度等级和所述预设幅度等级,确定所述第二幅度动作序列。
6.根据权利要求5所述的方法,其特征在于,所述基于所述频率动作序列、所述虚拟对象的幅度等级和预设幅度等级,确定所述第一幅度动作序列,包括:
将所述频率动作序列和所述虚拟对象的幅度等级输入至幅度扰动模型;
通过所述幅度扰动模型,对所述虚拟对象的幅度等级和预设幅度等级进行权重运算,得到幅度权重;
根据所述幅度权重和所述频率动作序列确定所述第一幅度动作序列;
其中,所述第一幅度动作序列的幅度维度,是通过所述虚拟对象的髋关节在目标方向的速度和位置表征的。
7.根据权利要求1所述的方法,其特征在于,所述旋转矩阵包括踝关节旋转矩阵和趾关节旋转矩阵;
所述根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵,包括:
获取所述虚拟对象在所处地形中的预测落脚点;
根据所述预测落脚点处的地形信息,确定所述虚拟对象的踝关节旋转矩阵;
根据所述预测落脚点处的地形信息,确定所述虚拟对象的趾关节旋转矩阵。
8.根据权利要求7所述的方法,其特征在于,所述预测落脚点包括所述虚拟对象的踝关节的坐标点和所述虚拟对象的趾关节的坐标点;
所述根据所述预测落脚点处的地形信息,确定所述虚拟对象的踝关节旋转矩阵,包括:
根据所述预测落脚点,确定所述虚拟对象的踝关节在所述地形上的脚踝投影点;所述脚踝投影点包括左侧踝关节投影点和右侧踝关节投影点;
确定所述趾关节的坐标点在所述地形上的趾关节投影点;
基于所述踝关节的坐标点和所述趾关节投影点,确定第一踝关节向量;
基于所述左侧踝关节投影点和所述右侧踝关节投影点,确定第二踝关节向量;
基于所述第一踝关节向量和所述第二踝关节向量,确定所述虚拟对象的踝关节旋转矩阵。
9.根据权利要求8所述的方法,其特征在于,所述基于所述第一踝关节向量和所述第二踝关节向量,确定所述虚拟对象的踝关节旋转矩阵,包括:
基于所述第一踝关节向量和所述第二踝关节向量,确定第三踝关节向量;
将所述第一踝关节向量、所述第二踝关节向量和所述第三踝关节向量,组合成所述虚拟对象的踝关节旋转矩阵。
10.根据权利要求9所述的方法,其特征在于,所述基于所述第一踝关节向量和所述第二踝关节向量,确定第三踝关节向量,包括:
确定所述第一脚踝向量和所述第二脚踝向量之间的叉乘结果;
将所述叉乘结果作为所述第三踝关节向量。
11.根据权利要求7所述的方法,其特征在于,所述预测落脚点包括所述虚拟对象的踝关节的坐标点和所述虚拟对象的趾关节的坐标点;所述根据所述预测落脚点处的地形信息,确定所述虚拟对象的趾关节旋转矩阵,包括:
根据所述预测落脚点,确定所述虚拟对象的踝关节在所述地形上的脚踝投影点;所述脚踝投影点包括左侧踝关节投影点和右侧踝关节投影点;
确定所述趾关节的坐标点在所述地形上的趾关节投影点;
基于所述踝关节的坐标点和所述趾关节投影点,确定第一趾关节向量;
基于所述左侧踝关节投影点和所述右侧踝关节投影点,确定第二趾关节向量;
基于所述第一趾关节向量和所述第二趾关节向量,确定所述虚拟对象的趾关节旋转矩阵。
12.根据权利要求11所述的方法,其特征在于,所述基于所述第一趾关节向量和所述第二趾关节向量,确定所述虚拟对象的趾关节旋转矩阵,包括:
基于所述第一趾关节向量和所述第二趾关节向量,确定第三趾关节向量;
将所述第一趾关节向量、所述第二趾关节向量和所述第三趾关节向量,组合成所述虚拟对象的趾关节旋转矩阵。
13.根据权利要求1至12任一项所述的方法,其特征在于,所述脚部关节的局部动作姿态包括踝关节动作姿态和趾关节动作姿态;
所述依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形,包括:
依据所述旋转矩阵,对所述全局动作姿态下的所述虚拟对象的踝关节和趾关节进行旋转,得到包括所述踝关节动作姿态和所述趾关节动作姿态的调整后全局动作姿态;所述踝关节动作姿态和所述趾关节动作姿态适配于所述地形;
所述方法还包括:在视频画面中显示所述调整后全局动作姿态下的所述虚拟对象。
14.一种虚拟对象的姿态控制装置,其特征在于,所述装置包括:
编辑模块,用于对虚拟对象的初始动作序列进行动作频率或动作幅度中的至少一种编辑处理,得到处理后动作序列;所述初始动作序列是基于动作生成模型所生成的;
确定模块,用于根据所述虚拟对象所处的地形对应的地形信息,确定所述虚拟对象的脚部关节的旋转矩阵;基于所述处理后动作序列确定所述虚拟对象的全局动作姿态;
旋转模块,用于依据所述旋转矩阵对所述全局动作姿态下的所述虚拟对象的脚部关节进行旋转,以使所述脚部关节的局部动作姿态适配于所述地形。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
CN202310857418.3A 2023-07-13 2023-07-13 虚拟对象的姿态控制方法、装置、计算机设备、存储介质 Active CN116570921B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310857418.3A CN116570921B (zh) 2023-07-13 2023-07-13 虚拟对象的姿态控制方法、装置、计算机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310857418.3A CN116570921B (zh) 2023-07-13 2023-07-13 虚拟对象的姿态控制方法、装置、计算机设备、存储介质

Publications (2)

Publication Number Publication Date
CN116570921A true CN116570921A (zh) 2023-08-11
CN116570921B CN116570921B (zh) 2023-09-22

Family

ID=87534611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310857418.3A Active CN116570921B (zh) 2023-07-13 2023-07-13 虚拟对象的姿态控制方法、装置、计算机设备、存储介质

Country Status (1)

Country Link
CN (1) CN116570921B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111223170A (zh) * 2020-01-07 2020-06-02 腾讯科技(深圳)有限公司 动画生成方法、装置、电子设备和存储介质
CN111583364A (zh) * 2020-05-07 2020-08-25 江苏原力数字科技股份有限公司 一种基于神经网络的群组动画生成方法
CN113763532A (zh) * 2021-04-19 2021-12-07 腾讯科技(深圳)有限公司 基于三维虚拟对象的人机交互方法、装置、设备及介质
CN116208623A (zh) * 2023-05-04 2023-06-02 腾讯科技(深圳)有限公司 信息同步方法、装置、引擎服务器及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111223170A (zh) * 2020-01-07 2020-06-02 腾讯科技(深圳)有限公司 动画生成方法、装置、电子设备和存储介质
CN111583364A (zh) * 2020-05-07 2020-08-25 江苏原力数字科技股份有限公司 一种基于神经网络的群组动画生成方法
CN113763532A (zh) * 2021-04-19 2021-12-07 腾讯科技(深圳)有限公司 基于三维虚拟对象的人机交互方法、装置、设备及介质
CN116208623A (zh) * 2023-05-04 2023-06-02 腾讯科技(深圳)有限公司 信息同步方法、装置、引擎服务器及存储介质

Also Published As

Publication number Publication date
CN116570921B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
KR102645536B1 (ko) 애니메이션 처리 방법 및 장치, 컴퓨터 저장 매체 그리고 전자 디바이스
US20230351663A1 (en) System and method for generating an avatar that expresses a state of a user
Rempe et al. Contact and human dynamics from monocular video
US11928765B2 (en) Animation implementation method and apparatus, electronic device, and storage medium
CN111626218B (zh) 基于人工智能的图像生成方法、装置、设备及存储介质
Durupinar et al. Perform: Perceptual approach for adding ocean personality to human motion using laban movement analysis
US11514638B2 (en) 3D asset generation from 2D images
US20230177755A1 (en) Predicting facial expressions using character motion states
US20180361579A1 (en) Motion model synthesizer methods and systems
JP2024513001A (ja) 顔の表情を取り込んでメッシュデータを生成するための人工知能
CN117635897B (zh) 三维对象的姿态补全方法、装置、设备、存储介质及产品
CN116570921B (zh) 虚拟对象的姿态控制方法、装置、计算机设备、存储介质
CN117557699B (zh) 动画数据生成方法、装置、计算机设备和存储介质
Zou et al. Optimization of User Interaction Experience of Traditional Craft Pattern Design Based on CAD and Virtual Reality
CN117218279A (zh) 生成服装数据的方法及装置
KR20240085731A (ko) 모션 스타일링 서비스 제공 방법 및 시스템
CN117504296A (zh) 动作生成方法、动作显示方法、装置、设备、介质及产品
Bhan et al. Interactive Gaming Experience in VR Integrated with Machine Learning
Zhao et al. Implementation of Computer Aided Dance Teaching Integrating Human Model Reconstruction Technology
Wang A Framework for Realistic Clothed Avatar Reconstruction and Animation
Wang CAD Modeling Process in Animation Design Using Data Mining Methods
CN117037262A (zh) 一种数据处理方法及相关设备
Zeng et al. DTP: learning to estimate full-body pose in real-time from sparse VR sensor measurements
Zhang et al. Motion Avatar: Generate Human and Animal Avatars with Arbitrary Motion
Rajendran Understanding the Desired Approach for Animating Procedurally

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40095729

Country of ref document: HK