CN113313796A - 场景生成方法、装置、计算机设备和存储介质 - Google Patents
场景生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113313796A CN113313796A CN202110640391.3A CN202110640391A CN113313796A CN 113313796 A CN113313796 A CN 113313796A CN 202110640391 A CN202110640391 A CN 202110640391A CN 113313796 A CN113313796 A CN 113313796A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual object
- camera
- scene
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 230000009471 action Effects 0.000 claims abstract description 193
- 230000000007 visual effect Effects 0.000 claims abstract description 52
- 230000008569 process Effects 0.000 claims abstract description 51
- 230000033001 locomotion Effects 0.000 claims description 104
- 230000002452 interceptive effect Effects 0.000 claims description 93
- 210000000988 bone and bone Anatomy 0.000 claims description 51
- 238000004590 computer program Methods 0.000 claims description 17
- 230000000875 corresponding effect Effects 0.000 description 335
- 238000010586 diagram Methods 0.000 description 35
- 230000001276 controlling effect Effects 0.000 description 30
- 238000005516 engineering process Methods 0.000 description 21
- 239000000463 material Substances 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 238000010276 construction Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 210000003128 head Anatomy 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009417 prefabrication Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/60—Methods for processing data by generating or executing the game program
- A63F2300/6009—Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8082—Virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种场景生成方法、装置、计算机设备和存储介质。所述方法包括:获取针对虚拟场景中的目标虚拟对象的动作指令;确定与所述目标虚拟对象对应的相机挂点;所述相机挂点,是针对所述目标虚拟对象预先绑定的附加节点;在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面。能够有效节省生成场景画面过程中的资源消耗,从而有效提高生成场景画面的效率。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及一种场景生成方法、装置、计算机设备和存储介质。
背景技术
随着计算机图像技术的发展,通过创建虚拟场景能够实现各种想象的虚幻场景、仿真环境等,例如虚拟场景可以应用于游戏、影视特效等各种应用场景。虚拟场景中通常包括虚拟对象,每个虚拟对象包括对应的动作动画,以及对应的相机动画,相机动画也就是虚拟相机的视角下的画面。
在相关技术中,在展示虚拟对象之前,通常需要预先制作出每个虚拟对象在多个预设视角下对应的相机动画,以在展示虚拟场景的过程中展示虚拟对象的各种动作。然而,这种通过预先制作各个预设视角下的相机动画来生成场景画面的方式,需要消耗大量的资源成本。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效节省生成场景画面过程中的资源消耗,从而有效提高生成场景画面的效率的场景生成方法、装置、计算机设备和存储介质。
一种场景生成方法,所述方法包括:
获取针对虚拟场景中的目标虚拟对象的动作指令;
确定与所述目标虚拟对象对应的相机挂点;所述相机挂点,是针对所述目标虚拟对象预先绑定的附加节点;
在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面。
一种场景生成装置,所述装置包括:
指令获取模块,用于获取针对虚拟场景中的目标虚拟对象的动作指令;
挂点确定模块,用于确定与所述目标虚拟对象对应的相机挂点;所述相机挂点,是针对所述目标虚拟对象预先绑定的附加节点;
场景生成模块,用于在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面。
在一个实施例中,所述目标虚拟对象包括所述虚拟场景中由本端操控的第一虚拟对象;所述场景生成模块还用于以所述相机挂点作为本端在所述虚拟场景中对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述第一虚拟对象移动,生成所述虚拟相机对应于本端的视角下的场景画面。
在一个实施例中,所述虚拟场景中还包括与所述目标虚拟对象具有交互关系的、且非本端操控的第二虚拟对象;所述场景生成模块还用于当获取所述第二虚拟对象作用于所述第一虚拟对象的交互动作指令时,则将所述第二虚拟对象对应的相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述第二虚拟对象移动,生成所述虚拟相机的视角下的场景画面。
在一个实施例中,所述场景生成模块还用于当所述动作指令为交互动作指令时,将所述目标虚拟对象对应的相机挂点,以及交互虚拟对象对应的相机挂点,确定为所述虚拟场景所对应的虚拟相机的目标追踪点;所述交互虚拟对象,是所述虚拟场景中除所述目标虚拟对象外的、且所述交互动作指令所指向的虚拟对象;控制所述虚拟相机追踪所述目标追踪点,并采集所述虚拟场景中的所述目标虚拟对象和所述交互虚拟对象对应的画面,生成所述虚拟相机的视角下的、包括所述目标虚拟对象和所述交互虚拟对象的场景画面。
在一个实施例中,所述场景生成模块还用于获取与所述动作指令对应的所述目标虚拟对象的动作动画;在所述虚拟场景中,播放所述动作动画;所述动作动画中的所述目标虚拟对象是按照所述动作指令的指示移动的。
在一个实施例中,所述场景生成模块还用于获取所述目标虚拟对象在所述虚拟场景中的当前位置;在所述虚拟场景中,播放所述动作动画;所述动作动画中的所述目标虚拟对象是从所述当前位置开始按照所述动作指令的指示移动的。
在一个实施例中,所述场景生成模块还用于在根据所述动作指令控制所述目标虚拟对象移动的过程中,将所述目标虚拟对象对应的相机挂点,确定为所述虚拟场景所对应的虚拟相机的目标追踪点;在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,控制所述虚拟相机追踪所述目标追踪点,并采集在所述虚拟场景中移动的目标虚拟对象所对应的画面,生成所述虚拟相机的视角下的场景画面。
在一个实施例中,所述场景生成模块还用于根据所述动作指令确定所述目标虚拟对象的对象移动信息:根据所述对象移动信息,确定所述虚拟相机对应的相机移动信息;按照所述相机移动信息,控制所述虚拟相机移动以对所述目标追踪点进行追踪,并采集在所述虚拟场景中移动的目标虚拟对象所对应的画面,生成所述虚拟相机的视角下的场景画面。
在一个实施例中,所述装置还包括虚拟对象构建模块,用于针对所述虚拟场景中的每个虚拟对象,构建所述虚拟对象的骨骼节点;基于所述虚拟对象的骨骼节点,构建附属于所述骨骼节点的相机挂点;所述相机挂点,用于作为所述虚拟场景所对应的虚拟相机的目标追踪点,使得所述相机挂点跟随所述虚拟对象移动而移动。
在一个实施例中,所述虚拟对象构建模块还用于根据所述虚拟对象的骨骼节点,确定所述虚拟对象的尺寸信息;按照与所述尺寸信息对应的距离,在与所述骨骼节点对应的预设方位,确定所述虚拟对象的相机挂点所对应的挂点位置;在所述挂点位置生成附属于所述骨骼节点的相机挂点,得到所述虚拟对象对应的相机挂点。
在一个实施例中,所述虚拟对象构建模块还用于在所述挂点位置生成附属于所述骨骼节点的附加节点;将所述附加节点配置为相机挂点,并建立所述相机挂点与所述骨骼节点之间的连接关系;所述连接关系用于将所述相机挂点与所述骨骼节点绑定,使得所述相机挂点跟随所述虚拟对象的骨骼节点的移动而移动。
在一个实施例中,所述装置还包括动画构建模块,用于对所述虚拟对象的骨骼节点进行蒙皮处理,得到三维的虚拟对象;对所述虚拟对象添加与所述虚拟对象对应的表面属性信息,得到具有相机挂点的虚拟对象;根据所述具有相机挂点的虚拟对象,生成与针对所述虚拟对象的动作指令对应的动作动画。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请各实施例的场景生成方法中的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请各实施例的场景生成方法中的步骤。
一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令时实现本申请各实施例的场景生成方法中的步骤。
上述场景生成方法、装置、计算机设备和存储介质,获取针对虚拟场景中的目标虚拟对象的动作指令后,则确定与目标虚拟对象对应的相机挂点,并在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,以生成虚拟相机的视角下的场景画面。由于相机挂点是与目标虚拟对象的骨骼节点绑定的附加节点,因此目标虚拟对象对应的相机挂点会随目标虚拟对象的移动而移动。在根据动作指令控制目标虚拟对象移动的过程中,通过以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,能够使得虚拟相机对移动的目标虚拟对象进行追踪拍摄,从而自动生成虚拟相机的视角下的场景画面。由此无需预先制作固定视角下的场景画面,有效提高了生成场景画面的效率。
附图说明
图1为一个实施例中场景生成方法的应用环境图;
图2为一个实施例中场景生成方法的流程示意图;
图3为一个实施例中虚拟相机对应于本端的视角下的场景画面的示意图;
图4为另一个实施例中虚拟相机对应于本端的视角下的场景画面的示意图;
图5为一个实施例中虚拟对象发起交互动作指令时虚拟相机的视角下的场景画面的示意图;
图6为另一个实施例中虚拟对象发起交互动作指令时虚拟相机的视角下的场景画面的示意图;
图7为一个实施例中制作虚拟对象的相机挂点和动作动画的流程示意图;
图8为一个实施例中制作虚拟对象的相机挂点以及动作动画的流程图;
图9为一个实施例中虚拟对象的骨骼节点以及附加节点之间关系的示意图;
图10为一个实施例中虚拟对象的骨骼节点以及附加节点对应的示意图;
图11为一个实施例中自定义的相机挂点自动化插件的界面示意图;
图12为一个实施例中基于虚拟对象的骨骼节点绑定相机挂点后的示意图;
图13为一个实施例中对虚拟对象进行蒙皮绑定的示意图;
图14为一个实施例中蒙皮绑定后的虚拟对象对应的示意图;
图15为一个实施例中蒙皮绑定后的无材质的虚拟对象对应的示意图;
图16为一个实施例中添加材质信息后的虚拟对象的示意图;
图17为一个实施例中添加材质后的虚拟对象对应的相机挂点的示意图;
图18为一个实施例中虚拟对象一种动作状态下的动作关键帧的示意图;
图19为一个实施例中场景生成装置的结构框图;
图20为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的场景生成方法,可应用于计算机设备中。计算机设备可以为终端或服务器。可以理解的是,本申请提供的场景生成方法,可以应用于终端,也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。
本申请提供的场景生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102对虚拟场景的场景画面进行展示时,可以从服务器104中获取虚拟场景对应的场景数据。然后终端102获取针对虚拟场景中的目标虚拟对象的动作指令;确定与目标虚拟对象对应的相机挂点;相机挂点,是针对目标虚拟对象预先绑定的附加节点;在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机的视角下的场景画面。
其中,服务器104服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、大数据、人工智能平台以及基于区块链的业务系统等基础云计算服务的云服务器。终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block Chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每个数据块中包含一批次网络信息,用于验证其有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。平台产品服务层提供典型应用的基本能力和实现框架,可以基于这些基本能力叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
本申请各实施例中的场景生成方法可以采用区块链技术来实现,比如,本申请各实施例中的虚拟对象对应的动作动画、场景画面等场景数据可以预先存储于区块链节点中,从区块链节点中获取场景数据来实现本申请各实施例中的场景生成方法。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。可以理解,本申请的场景生成方法,就是基于计算机视觉技术,对待展示的场景画面进行处理,以有效节省展示场景画面过程中的资源消耗,从而能够有效提高展示场景画面的效率。
在一个实施例中,如图2所示,提供了一种场景生成方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤S202,获取针对虚拟场景中的目标虚拟对象的动作指令。
其中,虚拟场景,是指计算机通过数字通讯技术勾勒出的数字化场景,可以用虚拟化技术手段来真实模拟出现世界的各种物质形态、空间关系等信息,能够更加直观地展示虚拟场景中物体的形态。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或三维虚拟场景中的任意一种,本申请对此不作限定。随着虚拟场景的应用越来越广泛,例如游戏开发、视频制作、影视特效等。
可以理解,虚拟场景可以用于模拟一个三维虚拟空间,可以用于模拟现实世界中的真实环境,例如,该虚拟场景中可以包括天空、陆地、海洋、道路、建筑以及虚拟物品等环境元素。虚拟场景中还包括虚拟对象。
其中,虚拟对象,是指虚拟场景中的可活动对象,例如可以是虚拟场景中的虚拟人物、虚拟动物等。虚拟对象可以是虚拟场景中用于代表用户的虚拟形象,用户可以控制对应的虚拟对象在虚拟场景中进行移动。虚拟场景中包括至少一个虚拟对象,每个虚拟对象具有对应的形状和体积。
可以理解,目标虚拟对象,可以是通过当前的终端进行控制的虚拟对象,当前运行的终端即本端。目标虚拟对象也可以是通过非本端进行控制的虚拟对象。进一步的,也可以是虚拟场景中发起动作的虚拟对象,还可以是设置在虚拟场景中进行互动的非用户角色(NPC,Non-Player Character)。例如,虚拟对象可以是在虚拟场景中进行竞技的虚拟人物。
动作指令,是指用于控制虚拟对象在虚拟场景中执行相应动作的指令。例如,动作指令可以包括但不限于前进、后退、转向、跑、跳以及攻击等。
具体地,当终端检测到针对虚拟场景中的目标虚拟对象的动作指令时,在虚拟场景中控制目标虚拟对象操作与动作指令对应的动作。
例如,当目标虚拟对象为与本端所表征的用户对应的虚拟对象时,用户可以通过在终端操作相应的控件以触发相应的动作指令,以控制目标虚拟对象在虚拟场景中进行移动。
步骤S204,确定与目标虚拟对象对应的相机挂点。
其中,相机挂点,是针对目标虚拟对象预先绑定的附加节点,是指与虚拟对象的骨骼节点绑定的挂接点,用于作为虚拟场景所对应的虚拟相机的追踪点。可以理解,绑定在虚拟对象的骨骼节点上的挂点,会随虚拟对象的骨骼节点的移动而移动。虚拟对象的骨骼节点,
可以理解,每个虚拟对象具有对应的骨骼节点,骨骼节点可以用于控制虚拟对象执行各种动作。虚拟对象的骨骼节点,可以是指包括构成该虚拟对象的三维立体模型的关键点,如以虚拟对象为虚拟人物为例,骨骼节点可以包括头部、颈部、肩膀、手臂、腿部等节点。
其中,虚拟相机,是用于采集虚拟场景中的场景画面的一种虚拟摄像装置。终端可以通过屏幕展示虚拟相机的视角下拍摄的场景画面。虚拟场景中包括至少一个虚拟相机。例如,当虚拟场景中包括一个虚拟相机时,终端可以通过一个虚拟相机的视角来展示场景画面。当虚拟场景中包括多个虚拟相机时,终端可以通过多个虚拟相机的视角来展示场景画面。其中,多个是指至少两个。
具体地,终端获取针对虚拟场景中的目标虚拟对象的动作指令后,则确定与该目标虚拟对象对应的相机挂点,以将目标虚拟对象对应的相机挂点,作为虚拟场景所对应的虚拟相机的目标追踪点。
步骤S206,在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机的视角下的场景画面。
其中,目标追踪点,是指虚拟相机在拍摄场景画面时对应的追踪点,也就是虚拟相机在拍摄时进行跟踪和对焦的目标点,具体可以是虚拟相机在拍摄时的对焦点。可以理解,虚拟场景所对应的虚拟相机,可以随目标虚拟对象的移动而移动。
其中,虚拟相机的视角,是指通过虚拟相机可以观察到的视野范围。虚拟相机的相机角度发生变化,或虚拟相机的相机位置发生变化,都会导致虚拟相机的视角变化。可以理解的是,虚拟场景所对应的虚拟相机,可以根据对应的目标追踪点的移动而进行实时移动。
可以理解,场景画面,也可以是指相机动画,是通过虚拟相机拍摄虚拟场景中的画面所生成的连续的场景画面,也就是在终端所展示的最终的场景画面。
终端获取针对虚拟场景中的目标虚拟对象的动作指令后,则根据动作指令控制目标虚拟对象移动,并确定与该目标虚拟对象的骨骼节点绑定相机挂点,并将目标虚拟对象对应的相机挂点,作为虚拟场景所对应的虚拟相机的目标追踪点。
终端在根据动作指令控制目标虚拟对象移动的过程中,则控制虚拟相机根据目标追踪点进行追踪和对焦。其中,目标追踪点在移动的过程中,虚拟相机的位置也随之移动,以控制虚拟相机对移动的目标虚拟对象进行动态追踪拍摄,从而使得虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机的视角下的场景画面。
在其中一个实施例中,终端在根据动作指令控制目标虚拟对象移动的过程中,将目标虚拟对象对应的相机挂点,确定为虚拟场景所对应的虚拟相机的目标追踪点;控制虚拟相机追踪目标追踪点,并采集在虚拟场景中移动的目标虚拟对象所对应的画面,生成虚拟相机的视角下的场景画面。
终端获取针对目标虚拟对象的动作指令后,则根据动作指令控制目标虚拟对象移动,同时控制虚拟场景所对应的虚拟相机,采集在虚拟场景中移动的目标虚拟对象所对应的画面。具体地,终端将目标虚拟对象对应的相机挂点,作为虚拟相机的目标追踪点。由于在根据动作指令控制目标虚拟对象移动的过程中,目标虚拟对象对应的相机挂点会随虚拟对象移动,因此虚拟相机的目标追踪点也可能是实时移动的。终端进而控制虚拟相机随目标追踪点移动,以移动采集在虚拟场景中移动的目标虚拟对象所对应的画面,从而能够实现对移动的目标虚拟对象进行追踪拍摄,以动态地自动生成虚拟相机的视角下的场景画面。
传统方式中,在制作虚拟对象对应的动画数据时,每个虚拟对象都需要预先制作角色本身的动作动画,还需要制作每个虚拟对象对应的镜头动画,场景中包括多少个虚拟对象,则需要制作相应数量的虚拟对象对应的镜头动画。其中,当多端对应的多个虚拟对象时,还需要制作多端对应的固定视角下的镜头动画,如我方视角的镜头动画和其他角色方视角的镜头动画。若包括连携动画时,每个虚拟对象都需要单独的制作相机动画,需要消耗大量的人力成本和时间成本。
本实施例中,通过预先对每个虚拟对象构建一个附属于骨骼节点对应的相机挂点,因此在虚拟场景运行过程中,虚拟对象移动时,对应的相机挂点也会跟随移动。通过将目标虚拟对象对应的相机挂点作为相机挂点的目标追踪点,由此程序只需要调用对应的相机挂点,就可以使得虚拟相机跟随目标虚拟对象移动,以对目标虚拟对象进行追踪拍摄,从而自动生成针对该目标虚拟对象的相机动画,由此无需预先制作固定视角下的场景画面。
上述场景生成方法中,终端获取针对虚拟场景中的目标虚拟对象的动作指令后,则确定与目标虚拟对象对应的相机挂点,并在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,以生成虚拟相机的视角下的场景画面。由于相机挂点是与目标虚拟对象的骨骼节点绑定的附加节点,因此目标虚拟对象对应的相机挂点会随目标虚拟对象的移动而移动。在根据动作指令控制目标虚拟对象移动的过程中,通过以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,能够使得虚拟相机针对移动的目标虚拟对象进行追踪拍摄,从而能够实时地根据虚拟相机的位置,自动生成虚拟相机所对应的视角下的场景画面,而无需生成不相关的视角下的场景画面。相较于传统的需要预先制作各个预设视角下的相机动画,以生成场景画面的方式而言,本申请的方案有效节省了生成场景画面所消耗的资源成本。
在一个实施例中,目标虚拟对象包括虚拟场景中由本端操控的第一虚拟对象;以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机的视角下的场景画面,包括:以相机挂点作为本端在虚拟场景中对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随第一虚拟对象移动,生成虚拟相机对应于本端的视角下的场景画面。
可以理解,本端是指当前运行的终端。虚拟场景中包括至少两个虚拟对象,其中,包括由本端操控的第一虚拟对象,以及由其他终端操控的其他虚拟对象。
终端可以首先在虚拟场景中展示虚拟对象,将由本端操控的第一虚拟对象作为目标虚拟对象。然后终端则获取针对虚拟场景中的目标虚拟对象的动作指令,并确定与目标虚拟对象对应的相机挂点。
终端进而第一虚拟对象对应的相机挂点,作为本端在虚拟场景中对应的虚拟相机的目标追踪点。终端在根据动作指令控制目标虚拟对象移动的过程中,则控制虚拟相机根据目标追踪点进行追踪和对焦,以对移动的第一标虚拟对象进行追踪拍摄,从而使得虚拟相机通过追踪目标追踪点而跟随第一虚拟对象移动,从而生成虚拟相机对应于本端的视角下的场景画面。
如图3所示,为第一虚拟对象发起动作指令时,虚拟相机对应于本端的视角下的场景画面的示意图。从图3中可以看出,当第一虚拟对象在执行动作指令的过程中,例如动作指令为“跑”,虚拟场景所对应的虚拟相机则以第一虚拟对象为目标追踪点,跟随第一虚拟对象移动,从而生成虚拟相机对应于本端的视角下的场景画面。由此能够高效地自动生成虚拟相机对应于本端的视角下的场景画面。
在一个实施例中,虚拟场景中还包括与目标虚拟对象具有交互关系的、且非本端操控的第二虚拟对象;上述场景生成方法还包括:当获取第二虚拟对象作用于第一虚拟对象的交互动作指令时,则将第二虚拟对象对应的相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随第二虚拟对象移动,生成虚拟相机的视角下的场景画面。
其中,虚拟场景中包括由本端操控的第一虚拟对象,当第一虚拟对象为目标虚拟对象时,虚拟场景中还包括与目标虚拟对象具有交互关系的、且非本端操控的第二虚拟对象。其中,第二虚拟对象是指与目标虚拟对象具有交互关系的其他虚拟对象,非本端是指用于控制虚拟场景中的其他虚拟对象的除本端以外的其他终端。第一虚拟对象可以为一个,也可以为多个。同理,第二虚拟对象可以为一个,也可以为多个。
虚拟场景中的第一虚拟对象和第二虚拟对象之间能够相互交互,例如进行攻击操作。通常在本端的终端中以及非本端的终端中显示虚拟场景界面,虚拟场景界面中的两个虚拟对象之间进行交互时,则展示还能够显示第一虚拟对象和第二虚拟对象之间进行交互的画面。
具体地,以在本端对应的终端中运行虚拟场景为例,当本端获取到针对第一虚拟对象对应的动作指令时,则将第一虚拟对象作为目标虚拟对象,根据动作指令控制目标虚拟对象移动,并将与目标虚拟对象对应的相机挂点,作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机对应于本端的视角下的场景画面。
当本端获取到第二虚拟对象作用于第一虚拟对象的交互动作指令时,则将第二虚拟对象对应的相机挂点,作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随第二虚拟对象移动,生成虚拟相机对应于本端的视角下的场景画面。
进一步地,当本端获取到第二虚拟对象作用于第一虚拟对象的交互动作指令时,还可以将第一虚拟对象对应的相机挂点和第二虚拟对象对应的相机挂点,均作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随第二虚拟对象移动,生成虚拟相机对应于本端的视角下的场景画面。
由此当第二虚拟对象发起针对第一虚拟对象的交互动作指令时,则将本端对应的视角切换为对交互过程中的第一虚拟对象和第二虚拟对象进行追踪拍摄的画面,从而能够灵活地切换目标追踪点,更加高效地自动生成虚拟相机对应于本端的视角下的场景画面。
例如,在一些虚拟游戏对应的虚拟场景中,如角色扮演游戏(Role-Playing Game,RPG)、回合制游戏(Turn-Based Game,TBG)以及多人在线战术竞技游戏(MultiplayerOnline BattleArena,MOBA)。以回合制游戏场景为例,游戏中的战斗过程不是即时的,战斗的双方只角色能在自己的回合中执行动作,在对方的回合中无法执行动作。通常能够支持多端同步参与,其中,多端是指多个参与方用户对应的终端。
举例来说,虚拟场景中的第一虚拟对象可以为我方角色,第二虚拟对象可以为敌方角色。其中,我方角色所对应的我方用户终端,即为当前运行的本端;敌方角色对应的其他参与方用户终端则为非本端。若当前回合为我方的操作回合,本端的用户则可以控制第一虚拟对象执行相应的动作指令,如发动技能、进行攻击或使用道具等动作;若当前回合为敌方的操作回合,本端的用户则无法控制第一虚拟对象执行动作,仅能观看非本端的用户控制第二虚拟对象执行相应的动作。
可以理解,虚拟相机对应于本端的视角,则为与我方角色对应的用户终端的观察视角,也可以称为我方视角。当我方角色对应的第一虚拟对象发起动作时,则以我方角色的相机挂点作为我方视角下的目标追踪点,对我方角色进行追踪拍摄,自动生成我方视角下针对我方角色的场景画面。当敌方角色针对我方角色发起交互动作,如攻击动作时,则以敌方角色的相机挂点作为我方视角下的目标追踪点,或者将我方角色的相机挂点和敌方角色的相机挂点,均作为我方视角下的目标追踪点,通过虚拟相机针对目标追踪点进行追踪拍摄,以自动生成我方视角下针对我方角色的场景画面。
如图4所示,为第二虚拟对象发起动作指令时,虚拟相机对应于本端的视角下的场景画面的示意图。从图4中可以看出,当第二虚拟对象,如敌方角色,发起针对第一虚拟对象的交互动作指令时,如交互动作指令为“攻击”,则以第二虚拟对象的相机挂点作为我方视角下的目标追踪点,控制虚拟相机跟随第二虚拟对象的相机挂点移动,从而生成虚拟相机对应于本端视角下的场景画面。
在一个实施例中,将目标虚拟对象对应的相机挂点,确定为虚拟场景所对应的虚拟相机的目标追踪点,包括:当动作指令为交互动作指令时,将目标虚拟对象对应的相机挂点,以及交互虚拟对象对应的相机挂点,确定为虚拟场景所对应的虚拟相机的目标追踪点。控制虚拟相机追踪目标追踪点,并采集在虚拟场景中移动的目标虚拟对象所对应的画面,生成虚拟相机的视角下的场景画面包括:控制虚拟相机追踪目标追踪点,并采集虚拟场景中的目标虚拟对象和交互虚拟对象对应的画面,生成虚拟相机的视角下的、包括目标虚拟对象和交互虚拟对象的场景画面。
可以理解,动作指令可以包括多种,例如可以包括非交互动作指令和交互动作指令。其中,非交互动作指令,是指针对虚拟对象自身运动的动作指令,例如非交互动作指令包括走、跑、跳、转向等动作类型的动作指令;交互动作指令,是指用于指示目标虚拟对象与虚拟场景中的其他虚拟对象进行交互的动作指令,例如交互动作指令包括进攻、战斗等动作类型的动作指令。
其中,当动作指令为交互动作指令时,根据交互动作指令,可以确定出与目标虚拟对象对应的交互虚拟对象。可以理解,交互虚拟对象,是虚拟场景中除目标虚拟对象外的、且交互动作指令所指向的虚拟对象。其中,交互中的虚拟对象包括至少两个虚拟对象。
终端获取到针对目标虚拟对象的动作指令后,若识别出该动作指令为非交互动作指令时,终端则将目标虚拟对象对应的相机挂点,作为虚拟场景所对应的虚拟相机对应的目标追踪点。
当识别出该动作指令为交互动作指令时,终端则将目标虚拟对象对应的相机挂点和交互虚拟对象对应的相机挂点,均作为虚拟场景所对应的虚拟相机对应的目标追踪点。
终端在根据交互动作指令控制目标虚拟对象移动的过程中,则控制虚拟相机对目标追踪点进行追踪,并实时采集虚拟场景中的目标虚拟对象和交互虚拟对象对应的画面,生成虚拟相机的视角下的、包括目标虚拟对象和交互虚拟对象的场景画面。
在其中一个实施例中,虚拟场景中的虚拟对象,包括我方用户终端,即当前运行的本端对应的虚拟对象,例如可以为第一虚拟对象;还包括其他参与方用户终端,即非本端对应的虚拟对象,例如可以为第二虚拟对象。当获取到针对第一虚拟对象的动作指令时,则将第一虚拟对象作为目标虚拟对象。由于第一虚拟对象是本端对应的虚拟对象,本端侧对应的终端则可以根据动作指令控制目标虚拟对象执行相应的动作。当动作指令为交互动作指令,对应的交互虚拟对象为第二虚拟对象时,终端则根据动作指令控制目标虚拟对象执行相应的动作,并将目标虚拟对象对应的相机挂点和交互虚拟对象对应的相机挂点,均作为虚拟场景所对应的虚拟相机对应的目标追踪点。
进一步地,终端获取到针对第二虚拟对象的动作指令时,还可以将第二虚拟对象作为目标虚拟对象。当动作指令为交互动作指令,对应的交互虚拟对象为第一虚拟对象时,第二虚拟对象对应的非本端侧的终端则根据动作指令控制目标虚拟对象执行相应的动作,并将目标虚拟对象对应的相机挂点和交互虚拟对象对应的相机挂点,均作为虚拟场景所对应的虚拟相机对应的目标追踪点。
终端在根据交互动作指令控制目标虚拟对象移动的过程中,则控制虚拟相机对目标追踪点进行追踪,并实时采集虚拟场景中的目标虚拟对象和交互虚拟对象对应的画面。当虚拟场景中的任意一方的虚拟对象发起交互动作指令时,通过将发起交互动作指令的目标虚拟对象对应的相机挂点,以及交互虚拟对象对应的相机挂点,均作为虚拟相机的目标追踪点,由此能够自动对交互中的至少两个虚拟对象进行追踪拍摄,从而能够高效地自动生成虚拟相机的视角下的、包括目标虚拟对象和交互虚拟对象的场景画面。
如图5所示,为虚拟场景中的虚拟对象发起交互动作指令时,虚拟相机的视角下的场景画面的示意图。从图5中可以看出,虚拟场景中包括建筑的场景背景,以及第一虚拟对象5a和第二虚拟对象5b。当第一虚拟对象5a发起交互动作指令时,其中,交互动作指令指向的交互虚拟对象为第二虚拟对象5b。在第一虚拟对象执行动作指令的过程中,例如交互动作指令为“攻击”,则将第一虚拟对象5a对应的相机挂点作为虚拟相机的目标追踪点;或将第一虚拟对象5a对应的相机挂点和第二虚拟对象5b对应的相机挂点,均作为虚拟相机的目标追踪点;虚拟相机在拍摄的过程中则跟随第一虚拟对象5a移动,或跟随第一虚拟对象5a以及第二虚拟对象5b移动,从而生成虚拟相机的视角下的场景画面。
如图6所示,为另一个实施例中虚拟场景中的虚拟对象发起交互动作指令时,虚拟相机的视角下的场景画面对应的示意图。从图6中可以看出,虚拟场景中包括建筑的场景背景,以及第一虚拟对象6a和第二虚拟对象6b。当第一虚拟对象6a指向第二虚拟对象6b发起交互动作指令如“攻击”时。在第一虚拟对象执行动作指令的过程中,则将第一虚拟对象6a对应的相机挂点作为虚拟相机的目标追踪点;或将第一虚拟对象6a对应的相机挂点和第二虚拟对象6b对应的相机挂点,均作为虚拟相机的目标追踪点,虚拟相机在拍摄的过程中则跟随第一虚拟对象6a移动,或跟随第一虚拟对象6a和第二虚拟对象6b移动,从而生成虚拟相机的视角下的场景画面。
本实施例中,当获取到交互动作指令时,通过将发起交互动作指令的目标虚拟对象和交互动作指令所指向的交互虚拟对象分别对应的相机挂点,均作为虚拟相机对应的目标追踪点,由此能够在虚拟对象进行交互时,能够自动对交互中的至少两个虚拟对象进行追踪拍摄,从而能够高效地自动生成虚拟相机的视角下的、包括目标虚拟对象和交互虚拟对象的场景画面。
在一个实施例中,获取针对虚拟场景中的目标虚拟对象的动作指令之后,方法还包括:获取与动作指令对应的目标虚拟对象的动作动画;在虚拟场景中,播放动作动画;动作动画中的目标虚拟对象是按照动作指令的指示移动的。
其中,动作动画,也叫做运动动画,是针对虚拟场景中的虚拟对象的各种动态动作对应的动画。可以理解,虚拟对象对应的动作动画,包括了虚拟对象的骨骼节点以及与骨骼节点绑定的相机挂点。其中,虚拟场景对应的场景资源中包括了针对场景中每个虚拟对象对应的动作动画,具体可以是预先制作的与多种动作类型属性对应的动作动画。
可以理解,虚拟场景中的虚拟对象的动作,都是通过一个个的动画序列实现的。当接收到针对目标虚拟对象的动作指令后,则播放对应的动作动画。例如,可以包括走、跑、跳、转向、后退、停止、攻击等各种动作类型对应的动画序列,每个动作类型对应的动画序列,则可以形成对应的动作动画。
例如,虚拟场景对应的场景资源中可以包括用于管理每个虚拟对象的动作状态的组件,如动画状态机。动画状态机,用于实现虚拟对象对应的动作动画的控制和排序。可以根据针对每个虚拟对象的动作指令,通过动画状态机调取与动作指令对应的动作动画。
终端获取到针对目标虚拟对象的动作指令后,则从虚拟场景对应的场景资源中获取与该动作指令对应的动作动画。其中,动作动画中的目标虚拟对象是按照动作指令的指示移动的。具体地,终端可以根据动作指令,通过动画状态机调取与动作指令对应的动作序列,并对动作序列进行排序,从而得到与该动作指令对应的动作动画。
然后终端则在虚拟场景中播放该动作动画,从而在播放目标虚拟对象对应的动作动画的过程中,使得目标虚拟对象是按照动作指令进行移动的。其中,动作动画中包括的动作序列,可以是预先制作的与动作指令对应的动画关键帧,每个动画关键帧是根据虚拟对象的骨骼节点制作的。在播放动作动画的过程中,可以通过对动作动画中的动画关键帧进行插值处理,得到最终所展示的动作帧。例如,可以根据当前播放的动画和播放时间,通过插值处理从动画关键帧中获得骨骼节点对应的平移、旋转、缩放分量等,并进行矩阵变换得到最终的骨骼矩阵,从而得到插值处理后的虚拟对象的动作帧。进而基于虚拟对象对应的动作帧,生成虚拟相机的视角下的场景画面。
由于虚拟对象对应的动作动画,包括虚拟对象的骨骼节点以及与骨骼节点绑定的相机挂点。因此在播放目标虚拟对象对应的动作动画的过程中,仍以目标虚拟对象对应的相机挂点作为虚拟相机的目标追踪点,由此能够通过虚拟相机针对目标追踪点进行追踪拍摄,从而能够高效地自动生成虚拟相机的视角下的场景画面。
在一个实施例中,上述场景生成方法还包括:获取目标虚拟对象在虚拟场景中的当前位置;在虚拟场景中,播放动作动画,包括:在虚拟场景中,播放动作动画;动作动画中的目标虚拟对象是从当前位置开始按照动作指令的指示移动的。
可以理解,虚拟对象可以实时在虚拟场景中进行移动,虚拟对象在虚拟场景中则具有实时的位置信息。
当终端获取到针对目标虚拟对象的动作指令时,则控制目标虚拟对象执行相应的动作指令,以控制目标虚拟对象在虚拟场景中进行移动。由于目标虚拟对象在虚拟场景中的位置是实时变化的,因此终端获取到针对目标虚拟对象的动作指令时,则获取目标虚拟对象在虚拟场景中的当前位置,并控制目标虚拟对象执行该动作指令。
具体地,终端将当前位置的目标虚拟对象对应的相机挂点,作为虚拟场景所对应的虚拟相机的目标追踪点,并根据动作指令控制目标虚拟对象移动,同时获取与该动作指令对应的动作动画,在虚拟场景中播放与动作指令对应的动作动画,在播放动作动画时,使得动作动画中的目标虚拟对象从当前位置开始按照动作指令进行移动。其中,在播放与动作指令对应的动作动画的过程中,目标虚拟对象是按照动作指令实时移动的,目标虚拟对象的实时位置也会发生变化。因此目标虚拟对象对应的相机挂点,也跟随目标虚拟对象实时移动,虚拟相机则会跟随目标虚拟对象对应的相机挂点移动,从而通过虚拟相机针对目标追踪点进行追踪拍摄,以自动生成虚拟相机的视角下的场景画面。
可以理解,动作动画也就是虚拟对象对应的骨骼动画。动作动画数据中包含骨骼节点的运动信息,动画帧中可以包含某时刻骨骼的矩阵。在播放动作动画的过程中,骨骼动画中骨骼的位置随时间变化,顶点位置随骨骼变化。例如,可以根据当前播放的当前位置和时间值,对于每块需要动画的骨骼,根据当前时间值确定该骨骼动画前后两个关键帧,根据时间差进行对骨骼数据进行插值处理,更新计算整个骨骼数据,从而得到与动作指令对应的完整的动作动画。
本实施例中,终端接收针对目标虚拟对象的动作指令后,通过在虚拟场景中以目标虚拟对象的当前位置为起始播放位置,播放与动作指令对应的动作动画,由此能够有效实现在播放动作动画的过程中控制目标虚拟对象移动。
在一个实施例中,在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,控制虚拟相机追踪目标追踪点,并采集在虚拟场景中移动的目标虚拟对象所对应的画面,生成虚拟相机的视角下的场景画面,包括:根据动作指令确定目标虚拟对象的对象移动信息:根据对象移动信息,确定虚拟相机对应的相机移动信息;在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,按照相机移动信息,控制虚拟相机移动以对目标追踪点进行追踪,并采集在虚拟场景中移动的目标虚拟对象所对应的画面,生成虚拟相机的视角下的场景画面。
其中,目标虚拟对象的对象移动信息,是指针对目标虚拟对象的动作指令所对应的移动信息。例如,每个动作指令包括与该动作指令对应的对象移动参数。例如,以动作指令为“向前走”、“向前跑”为例,对应的目标虚拟对象的移动信息可以分别是虚拟场景中的“向前移动1米”、“向前移动2米”等。
可以理解,虚拟相机对应的相机移动信息,是指虚拟相机在追踪过程中的移动信息。其中,相机移动信息可以包括相机位置对应的移动信息,以及相机视角对应的移动信息。相机位置对应的移动信息,是指虚拟相机在虚拟场景中的位置的移动信息,相机视角对应的移动信息,是指虚拟相机在虚拟场景中的视角的移动信息,例如虚拟相机的方向和角度对应的移动信息。
终端获取到针对目标虚拟对象的动作指令后,可以根据动作指令确定目标虚拟对象的对象移动信息。终端在根据动作指令控制目标虚拟对象移动的过程中,则以目标虚拟对象对应的相机挂点,作为虚拟场景所对应的虚拟相机的目标追踪点,并根据目标虚拟对象的对象移动信息,确定虚拟相机对应的相机移动信息。
具体地,当虚拟相机以目标虚拟对象对应的相机挂点,作为目标追踪点时,可以调整虚拟相机与目标追踪点之间的距离和角度。其中,可以预先设置虚拟相机与目标追踪点之间的距离和角度。当终端将虚拟相机对应的目标追踪点,切换为目标虚拟对象对应的相机挂点时,则可以按照预先设置的虚拟相机与目标追踪点之间的距离和角度,以及目标虚拟对象的相机挂点对应的当前位置和对象移动信息,确定虚拟相机的相机移动信息,进而根据相机移动信息控制虚拟相机移动。
在控制虚拟相机对目标追踪点进行追踪的过程中,通过调整虚拟相机与目标追踪点之间的距离和角度,实时对虚拟相机的位置进行更新,从而实现通过虚拟相机移动以对目标追踪点进行追踪拍摄,并采集在虚拟场景中移动的目标虚拟对象所对应的画面,进而能够高效地自动生成虚拟相机的视角下的场景画面。
在一个实施例中,在获取针对虚拟场景中的目标虚拟对象的动作指令之前,上述场景生成方法还包括:针对虚拟场景中的每个虚拟对象,构建虚拟对象的骨骼节点;基于虚拟对象的骨骼节点,构建附属于骨骼节点的相机挂点;相机挂点,用于作为虚拟场景所对应的虚拟相机的目标追踪点,使得相机挂点跟随虚拟对象移动而移动。
其中,针对虚拟场景中的每个虚拟对象,需要预先构建对应的骨骼节点、相机挂点,然后构建对应的三维模型,以得到建模后的虚拟对象。
终端可以首先通过三维图形工具架设虚拟对象的骨骼,即构建虚拟对象的骨骼节点,例如3DS MAX软件(3D Studio Max,一种三维动画渲染和制作软件)。例如,可以通过图形工具的骨骼构建工具构建虚拟对象的骨骼节点。
其中,骨骼节点可以包括根骨骼节点和子骨骼节点。其中,根骨骼节点可以是分层级节点,例如可以是Bip格式的节点;子骨骼节点可以是子层级节点,例如可以是Bone格式的节点。骨骼节点还可以包括附加节点,附加节点也可以是附属于根骨骼节点的子骨骼节点,如附加节点可以包括武器挂点、特效挂点、相机挂点等。以虚拟对象为虚拟人物为例,人体的主体部分的骨骼结构,即人体的核心骨架,可以采用Bip格式的节点构建出对应的根骨骼节点。虚拟人物的头发、披风等,可以采用Bone格式的节点构建出对应的子骨骼节点。
终端构建出虚拟对象自身的骨骼节点后,则在虚拟对象的骨骼节点的基础上,构建附属于骨骼节点的相机挂点。其中,相机挂点,用于作为虚拟场景所对应的虚拟相机的目标追踪点,使得相机挂点跟随虚拟对象移动而移动。
具体地,终端可以在虚拟对象的骨骼节点对应的指定位置,添加一个作为相机挂点的附加节点,并将该附加节点与虚拟对象自身的骨骼节点绑定,从而有效地构建出附属于骨骼节点的相机挂点。
在一个实施例中,基于虚拟对象的骨骼节点,构建附属于骨骼节点的相机挂点,包括:根据虚拟对象的骨骼节点,确定虚拟对象的尺寸信息;按照与尺寸信息对应的距离,在与骨骼节点对应的预设方位,确定虚拟对象的相机挂点所对应的挂点位置;在挂点位置生成附属于骨骼节点的相机挂点,得到虚拟对象对应的相机挂点。
可以理解,虚拟对象的尺寸信息,是指根据虚拟对象自身的骨骼节点确定的计量信息,例如长度、高度、大小、距离等信息。可以理解,骨骼节点对应的预设方位,可以是指在预设的初始的虚拟对象的骨骼节点基础上,对应的方位。例如,以虚拟对象为虚拟人物为例,预设方位可以是人物的正上方,即头顶方向。
终端构建出虚拟对象自身的骨骼节点后,则可以根据骨骼节点确定虚拟对象的尺寸信息,例如根据骨骼节点确定虚拟对象的高度。然后根据尺寸信息确定相机挂点与虚拟对象的骨骼节点的边缘之间的距离,例如该距离可以按照与尺寸信息对应的预设比例确定。然后按照确定的距离,在与骨骼节点对应的预设方位,确定虚拟对象的相机挂点所对应的挂点位置。例如,以虚拟对象为虚拟人物为例,可以在虚拟人物的头顶的正上方,将按尺寸信息确定的距离,与距离虚拟人物的头顶所对应的位置,确定为与虚拟对象对应的相机挂点的挂点位置。进而在挂点位置生成附属于骨骼节点的相机挂点,从而能够准确有效地构建得到虚拟对象对应的相机挂点。
在一个实施例中,在挂点位置生成附属于骨骼节点的相机挂点,包括:在挂点位置生成附属于骨骼节点的附加节点;将附加节点配置为相机挂点,并建立相机挂点与骨骼节点之间的连接关系。
可以理解,相机挂点与骨骼节点之间的连接关系,是用于将相机挂点与骨骼节点绑定,使得相机挂点跟随虚拟对象的骨骼节点的移动而移动。
终端首先架设虚拟对象的骨骼节点后,根据骨骼节点的尺寸信息,确定相机挂点的挂点位置。然后终端可以根据相机挂点对应的配置信息,自动在挂点位置生成与虚拟对象对应的相机挂点的挂点位置。
具体地,终端确定相机挂点的挂点位置后,则在挂点位置生成附属于骨骼节点的附加节点,并根据相机挂点对应的配置信息,将附加节点配置为相机挂点,并建立相机挂点与骨骼节点之间的连接关系,从而将该附加节点绑定为与虚拟对象对应的相机挂点。由此能够准确地将相机挂点与虚拟对象的骨骼节点绑定,使得虚拟对象在移动时,相机挂点跟随虚拟对象的骨骼节点移动。
在一个实施例中,在基于虚拟对象的骨骼节点,构建附属于骨骼节点的相机挂点之后,上述场景生成方法还包括:对虚拟对象的骨骼节点进行蒙皮处理,得到三维的虚拟对象;对虚拟对象添加与虚拟对象对应的表面属性信息,得到具有相机挂点的虚拟对象;根据具有相机挂点的虚拟对象,生成与针对虚拟对象的动作指令对应的动作动画。
其中,表面属性信息,是指用于表征虚拟对象表面的属性的信息,例如材质、结构属性等信息。其中,材质是表示模型表面对光线如何反应的属性集合,即物体的质地,包括纹理、色彩光滑度、透明度、反射率、折射率、发光度等信息。
可以理解,蒙皮,是三维动画的一种制作技术,在三维软件中创建的模型基础上,为三维模型添加骨骼。由于骨骼与模型是相互独立的,为了让骨骼驱动模型产生合理的运动,把模型绑定到骨骼上的技术则为蒙皮。蒙皮也就是指将Mesh中的顶点附着(绑定)在骨骼之上,而且每个顶点可以被多个骨骼所控制,这样在关节处的顶点由于同时受到父子骨骼的拉扯而改变位置就消除了裂缝。
终端还可以预先构建虚拟对象对应的三维模型,例如三维网状模型,具体可以为三维网格数据。然后通过虚拟对象对应的三维网格数据,对虚拟对象的骨骼节点进行蒙皮处理,得到三维的虚拟对象。蒙皮处理,也就是将三维网格数据中的顶点绑定在虚拟对象的骨骼上。其中,每个顶点可以被多个骨骼节点控制,由此在关节处的顶点由于同时受到父子骨骼的拉扯而改变位置,从而能够消除裂缝。
然后,终端进而对虚拟对象添加与虚拟对象对应的表面属性信息,例如对蒙皮后的虚拟对象添加材质信息,从而得到具有相机挂点的完整的虚拟对象。终端进一步根据具有相机挂点的虚拟对象,生成与针对虚拟对象的动作指令对应的动作动画。
其中,骨骼动画中决定模型顶点最终世界坐标的是骨骼的坐标,通过将顶点和骨骼绑定,则可以通过骨骼的坐标决定顶点的世界坐标,由此骨骼节点能够决定虚拟对象的模型整体在世界坐标系中的位置和朝向。
对于动作动画,也即骨骼动画,通过根据动作类型设置根骨骼节点的位置和朝向,然后根据骨骼层次结构中父子骨骼节点之间的变换关系计算出各个骨骼节点的位置和朝向,然后根据骨骼节点对三维网格数据中顶点的绑定关系,计算出顶点在世界坐标系中的坐标,当根骨骼节点运动时,其子骨骼节点也跟随运动。然后对顶点进行渲染,从而得到具有动作类型属性的骨骼动画。
例如,可以通过骨骼节点的运动信息生成关键帧动画,然后通过程序每帧改变某些骨骼的位置。其中,动画关键帧数据一般只存储骨骼的旋转和根骨骼的位置,骨骼间的相对位置可以通过顶点转换得到。每个关键帧动画中包括时间信息和骨骼运动信息,骨骼运动信息可以采用矩阵表示骨骼的变换。根据编辑设定好与各种动作指令对应的关键帧动画数据,生成与具有相机挂点的虚拟对象所对应的动作动画。
在一个具体的实施例中,如图7所示,在运行虚拟场景之前,预先制作虚拟对象的相机挂点以及动作动画,包括以下步骤:
步骤702,针对虚拟场景中的每个虚拟对象,构建虚拟对象的骨骼节点。
步骤704,根据虚拟对象的骨骼节点,确定虚拟对象的尺寸信息。
步骤706,按照与尺寸信息对应的距离,在与骨骼节点对应的预设方位,确定虚拟对象的相机挂点所对应的挂点位置。
步骤708,在挂点位置生成附属于骨骼节点的附加节点;将附加节点配置为相机挂点,并建立相机挂点与骨骼节点之间的连接关系。
步骤710,对虚拟对象的骨骼节点进行蒙皮处理,得到三维的虚拟对象。
步骤712,对虚拟对象添加与虚拟对象对应的表面属性信息,得到具有相机挂点的虚拟对象。
步骤714,根据具有相机挂点的虚拟对象,生成与针对虚拟对象的动作指令对应的动作动画。
终端可以通过自动化工具生成骨骼节点以及相机挂点。终端可以首先制定资源规范,也就是各骨骼节点对应的配置信息。
其中,需要资源的制作按照程序设定的规则来实施,例如可以包括美术资源的制作规范和骨骼节点的命名规范。需对资源管理结构一致且命名规范结构一致,才能保证程序指令会生效。
如图8所示,为一个实施例中预先制作虚拟对象的相机挂点以及动作动画的流程图。终端首先构建虚拟对象的骨骼节点,然后通过自动化工具在骨骼节点的基础上构建虚拟对象对应的相机挂点,然后对虚拟对象的骨骼节点进行蒙皮绑定。然后将蒙皮处理后的虚拟对象对应的资源文件,导入至三维图形软件中,并在三维图形软件中配置相机挂点,使得能够将虚拟场景所对应的虚拟相机调用相机挂点对应的配置信息。其中,在对虚拟对象进行蒙皮绑定后,还可以通过自动化工具对虚拟对象的相机挂点进行更新。然后终端则对虚拟对象添加相应的材质信息,从而生成虚拟对象对应的预制作文件,例如可以是该虚拟对象对应的资源组件,其中可以包括预制作的该虚拟对象对应各种动作指令的动作动画。终端还可以对虚拟对象对应的预制作文件进行验证,例如验证虚拟对象在虚拟场景中的显示是否正常,以及验证该虚拟对象在虚拟场景中的各种动作是否满足验证条件。若虚拟对象对应的预制作文件验证通过后,则完成该虚拟对象的相机挂点以及动作动画等预制作文件。
具体地,终端首先根据虚拟对象对应的配置信息,按照预设的命名规范,构建虚拟对象对应的根骨骼节点以及子骨骼节点。例如,可以通过3DMax工具按照预设配置信息架设虚拟对象的骨骼。
然后可以在虚拟对象的骨骼节点对应的头顶上方,架设相机挂点骨骼,并且建立相机挂点与骨骼节点之间的连接关系。
如图9所示,为虚拟对象01的骨骼节点以及附加节点之间关系的示意图。相机挂点与骨骼挂点节点的关系可以为父子层级关系。参照图9,虚拟对象01的根骨骼节点,可以包括根骨骼节点001至根骨骼节点004,骨骼节点也可以是一个整体。根骨骼节点下的子骨骼节点可以包括子骨骼节点001至子骨骼节点007,虚拟对象01对应的相机挂点001的父级根骨骼节点是根骨骼节点001,根骨骼节点下的附加节点还可以包括特效挂点001。例如,在对骨骼节点命名时,骨骼节点可以fx_xxx开头命名,相机挂点的命名可以为Camera_Head。在制作虚拟对象对应的动作动画的时候,在根骨骼节点上会有动画位移,由于相机挂点的父级是根骨骼节点,所以相机挂点会随着根骨骼节点移动。如图10所示,为虚拟对象的骨骼节点以及附加节点对应的示意图。
进一步地,在三维图形软件中配置自定义的自动化插件工具,例如可以是相机挂点工具,用于自动生成虚拟对象对应的相机挂点。由于相机挂点的建立具有规律性,例如,需要移动和旋转坐标都是0.0.0的位置,并且在虚拟对象的指定位置生成相机挂点,例如可以是在距离虚拟对象的头顶上方一段指定距离的位置。通过建立用于自动生成相机挂点的自动化插件工具,并且通过自动化插件工具,能够使得骨骼节点以及相机挂点的命名更加规范,例如设置了首字母大写等规范,由此能够更加便捷和准确地构建虚拟对象对应的相机挂点。
如图11所示,为自定义的相机挂点自动化插件工具的界面示意图。通过在骨骼节点构建界面11a中,触发相机挂点工具11b,也就是用于自动生成相机挂点的自动化插件工具,则可以自动生成虚拟对象对应的相机挂点001。具体地,该自动化插件工具只需要在相应的界面中触发相机挂机创建对应的控件,则可以在虚拟对象头顶上方的位置自动生成对应的相机挂点。其中,相机挂点的挂点位置可以按照每个虚拟对象的高度信息,计算出相应比例的距离。如图12所示,为基于虚拟对象的骨骼节点绑定相机挂点后的示意图,图12中,虚拟对象12a的相机挂点12b在头顶上方的位置。
进一步地,将绑定有相机挂点的虚拟对象的骨骼节点,导入至三维图形软件中,例如Unity软件。然后需要在三维图形软件中增加自动勾选相机挂点配置。其中,可以在三维图形软件中配置自动化插件工具,用于辅助自动勾选此功能。若后续需要重新添加或者修改虚拟对象对应的相机挂点时,则可以直接采用该自动化插件工具进行更新。
在架设好虚拟对象的骨骼节点以及相机挂点之后,进一步对虚拟对象的骨骼节点进行蒙皮绑定处理,以得到完整的具有相机挂点的虚拟对象,也就是完整的三维虚拟对象模型。如图13所示,为对具有相机挂点13a的虚拟对象进行蒙皮绑定的示意图。其中,虚拟对象的局部区域13b则添加材质的部分。
对虚拟对象进行蒙皮绑定后,生成虚拟对象对应的携带蒙皮绑定信息的文件,例如可以是FBX格式的文件,虚拟对象的相机挂点信息已经存在于该文件目录下,此时的角色是没有材质的。如图14所示,为蒙皮绑定后的具有相机挂点14a的虚拟对象对应的示意图。
进一步地,可将这个文件导入至三维图形软件中,例如Unity软件。在三维图形软件中需要选中相机挂点的配置信息,由此在通过程序运行虚拟场景时代码才会自动识别出相机挂点。
然后根据无材质的携带蒙皮绑定信息的文件,添加相应的材质信息,从而得到具有材质信息的虚拟对象,此时则得到了一个无动画的虚拟对象对应的模型文件。如图15所示,为蒙皮绑定后的无材质的虚拟对象对应的示意图。如图16所示,为添加材质信息后的虚拟对象的示意图。如图17所示,为添加材质后的虚拟对象对应的相机挂点的示意图,例如,该虚拟对象的相机挂点则为矩形17a所对应的中心点。
终端则可以基于绑定相机挂点并添加材质信息后的虚拟对象,构建多种动作类型对应的动作动画。如图18所示,为虚拟对象在其中一种动作状态下的动作关键帧的示意图。参照图18,在虚拟场景运行时,可以看到预览窗口中该虚拟对象具有了动画属性。
具体地,可以还需要将每个虚拟对象对应的动作动画,配置到虚拟场景对应的动画状态机中,也就是对每个虚拟对象配置相应动作对应的动作动画,由此可以得到配置齐全的一个虚拟对象对应的预制作文件,例如可以为Prefab(预制作组件)文件。由此能够得到可供程序调取使用并且在虚拟场景运行所需的资源文件。若需要修改相机挂点时,自定义插件工具的程序功能也能够实现更便捷的更新方式,在层级结构文件目录下,只需要选中对应虚拟对象的prefab文件,选择“Update Hierarchy inprefab(在预制中更新层次结构)”工具,就可以采用此工具自动添加或更新虚拟对象对应的相机挂点,无需每次重新添加材质信息和配置动画状态机。
采用上述场景生成方法,就可以完全自动化的在虚拟场景中,利用程序控制虚拟相机自动生成目标虚拟对象发出动作指令时,所对应的所有相机动画,由此无需每个相机动画靠美术的量来堆积,能够有效节省展示场景画面过程中的资源消耗。
本申请还提供一种应用场景,具体应用于游戏场景,该应用场景应用上述的场景生成方法。具体地,虚拟场景可以是游戏场景,具体可以应用于各种游戏开发平台,例如,基于移动设备的游戏开发平台、基于游戏主机的游戏开发平台以及基于三维绘图协议的网页游戏开发平台。游戏类型可以为回合制游戏、战旗游戏、角色扮演游戏以及多人在线战术竞技游戏。
本申请实施例以电子游戏场景为例,在利用游戏平台制作游戏的过程中,通常由开发人员制作同游戏场景对应的场景元素、虚拟对象、虚拟对象对应的动作动画等。
用户可以在对应的终端上进行操作,终端中可以下载有电子游戏的游戏配置文件,该游戏配置文件可以包括该电子游戏的应用程序、界面显示数据或虚拟场景数据以及虚拟对象对应的动作动画等,以使得该用户在该终端上登录电子游戏时可以调用该游戏配置文件。
在电子游戏中,虚拟对象之间能够相互攻击,还能够显示虚拟对象之间进行攻击的画面。通常在电子游戏中显示虚拟场景界面,虚拟场景界面中的两个虚拟对象之间进行攻击时,在该虚拟场景界面中展示包括虚拟对象的场景画面。
当用户通过终端运行电子游戏时,用户可以在终端上进行触控操作,例如可以触发针对与该用户所表征的虚拟对象的动作指令等操作。终端检测到触控操作后,可以确定该触控操作所对应的游戏数据,并对该游戏数据进行渲染显示,该游戏数据可以包括虚拟场景数据、该虚拟场景中虚拟对象的行为数据等。终端在运行游戏时,需要实时对待渲染元素进行渲染,这些待渲染元素经过渲染后构成游戏中的虚拟场景和游戏人物,终端能够将虚拟场景和游戏人物展示给用户。
具体地,当终端获取针对虚拟场景中的目标虚拟对象的动作指令后,确定与目标虚拟对象对应的相机挂点。在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点其中,当动作指令为交互动作指令时,则可以将目标虚拟对象对应的相机挂点以及交互虚拟对象对应的相机挂点,均作为虚拟相机的目标追踪点。然后控制虚拟相机对目标追踪点进行追踪拍摄,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机的视角下的场景画面。由此能够在虚拟对象进行交互时,能够自动对交互中的至少两个虚拟对象进行追踪拍摄,从而能够高效地自动生成虚拟相机的视角下的、包括目标虚拟对象和交互虚拟对象的场景画面。
本申请还另外提供一种应用场景,该应用场景为三维模拟场景,例如室内设计模拟场景、旅游环境演示场景、建筑物演示场景等,该应用场景应用上述的场景生成方法。
具体地,终端中可以将三维模拟场景对应的场景配置文件预先加载至本地,例如场景配置文件中包括对应的场景元素、虚拟对象、虚拟对象对应的动作动画等。
然后用户可以在对应的终端上进行操作,在三维模拟场景中,虚拟场景中的虚拟对象之间能够进行交互,还能够显示虚拟对象之间进行交互的画面。首先可以在该虚拟场景界面中展示包括虚拟对象的场景画面。用户可以在终端上进行触控操作,例如可以触发针对该用户所控制的虚拟对象的动作指令等操作。
当终端获取针对虚拟场景中的目标虚拟对象的动作指令后,确定与目标虚拟对象对应的相机挂点。在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点。其中,当动作指令为交互动作指令时,则可以将目标虚拟对象对应的相机挂点以及交互虚拟对象对应的相机挂点,均作为虚拟相机的目标追踪点。然后控制虚拟相机对目标追踪点进行追踪拍摄,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机的视角下的场景画面由此能够在虚拟对象进行交互时,能够自动对交互中的至少两个虚拟对象进行追踪拍摄,从而能够高效地自动生成虚拟相机的视角下的、包括目标虚拟对象和交互虚拟对象的场景画面。
应该理解的是,虽然图2、图7对应的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图19所示,提供了一种场景生成装置1900,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:指令获取模块1902、挂点确定模块1904和场景生成模块1906,其中:
指令获取模块1902,用于获取针对虚拟场景中的目标虚拟对象的动作指令。
挂点确定模块1904,用于确定与目标虚拟对象对应的相机挂点;相机挂点,是针对目标虚拟对象预先绑定的附加节点。
场景生成模块1906,用于在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随目标虚拟对象移动,生成虚拟相机的视角下的场景画面。
在一个实施例中,目标虚拟对象包括虚拟场景中由本端操控的第一虚拟对象;场景生成模块1906还用于以相机挂点作为本端在虚拟场景中对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随第一虚拟对象移动,生成虚拟相机对应于本端的视角下的场景画面。
在一个实施例中,虚拟场景中还包括与目标虚拟对象具有交互关系的、且非本端操控的第二虚拟对象;场景生成模块1906还用于当获取第二虚拟对象作用于第一虚拟对象的交互动作指令时,则将第二虚拟对象对应的相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,使虚拟相机通过追踪目标追踪点而跟随第二虚拟对象移动,生成虚拟相机的视角下的场景画面。
在一个实施例中,场景生成模块1906还用于当动作指令为交互动作指令时,将目标虚拟对象对应的相机挂点,以及交互虚拟对象对应的相机挂点,确定为虚拟场景所对应的虚拟相机的目标追踪点;交互虚拟对象,是虚拟场景中除目标虚拟对象外的、且交互动作指令所指向的虚拟对象;控制虚拟相机追踪目标追踪点,并采集虚拟场景中的目标虚拟对象和交互虚拟对象对应的画面,生成虚拟相机的视角下的、包括目标虚拟对象和交互虚拟对象的场景画面。
在一个实施例中,场景生成模块1906还用于获取与动作指令对应的目标虚拟对象的动作动画;在虚拟场景中,播放动作动画;动作动画中的目标虚拟对象是按照动作指令的指示移动的。
在一个实施例中,场景生成模块1906还用于获取目标虚拟对象在虚拟场景中的当前位置;在虚拟场景中,播放动作动画;动作动画中的目标虚拟对象是从当前位置开始按照动作指令的指示移动的。
在一个实施例中,场景生成模块1906还用于根据动作指令确定目标虚拟对象的对象移动信息:根据对象移动信息,确定虚拟相机对应的相机移动信息;在根据动作指令控制目标虚拟对象移动的过程中,以相机挂点作为虚拟场景所对应的虚拟相机的目标追踪点,按照相机移动信息,控制虚拟相机移动以对目标追踪点进行追踪,并采集在虚拟场景中移动的目标虚拟对象所对应的画面,生成虚拟相机的视角下的场景画面。
在一个实施例中,上述场景生成装置还包括虚拟对象构建模块,用于针对虚拟场景中的每个虚拟对象,构建虚拟对象的骨骼节点;基于虚拟对象的骨骼节点,构建附属于骨骼节点的相机挂点;相机挂点,用于作为虚拟场景所对应的虚拟相机的目标追踪点,使得相机挂点跟随虚拟对象移动而移动。
在一个实施例中,虚拟对象构建模块还用于根据虚拟对象的骨骼节点,确定虚拟对象的尺寸信息;按照与尺寸信息对应的距离,在与骨骼节点对应的预设方位,确定虚拟对象的相机挂点所对应的挂点位置;在挂点位置生成附属于骨骼节点的相机挂点,得到虚拟对象对应的相机挂点。
在一个实施例中,虚拟对象构建模块还用于在挂点位置生成附属于骨骼节点的附加节点;将附加节点配置为相机挂点,并建立相机挂点与骨骼节点之间的连接关系;连接关系用于将相机挂点与骨骼节点绑定,使得相机挂点跟随虚拟对象的骨骼节点的移动而移动。
在一个实施例中,上述场景生成装置还包括动画构建模块,用于对虚拟对象的骨骼节点进行蒙皮处理,得到三维的虚拟对象;对虚拟对象添加与虚拟对象对应的表面属性信息,得到具有相机挂点的虚拟对象;根据具有相机挂点的虚拟对象,生成与针对虚拟对象的动作指令对应的动作动画。
关于场景生成装置的具体限定可以参见上文中对于场景生成方法的限定,在此不再赘述。上述场景生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图20所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种场景生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图20中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种场景生成方法,其特征在于,所述方法包括:
获取针对虚拟场景中的目标虚拟对象的动作指令;
确定与所述目标虚拟对象对应的相机挂点;所述相机挂点,是针对所述目标虚拟对象预先绑定的附加节点;
在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面。
2.根据权利要求1所述的方法,其特征在于,所述目标虚拟对象包括所述虚拟场景中由本端操控的第一虚拟对象;
所述以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面,包括:
以所述相机挂点作为本端在所述虚拟场景中对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述第一虚拟对象移动,生成所述虚拟相机对应于本端的视角下的场景画面。
3.根据权利要求2所述的方法,其特征在于,所述虚拟场景中还包括与所述目标虚拟对象具有交互关系的、且非本端操控的第二虚拟对象;
所述方法还包括:
当获取所述第二虚拟对象作用于所述第一虚拟对象的交互动作指令时,则
将所述第二虚拟对象对应的相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述第二虚拟对象移动,生成所述虚拟相机的视角下的场景画面。
4.根据权利要求1所述的方法,其特征在于,所述在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面,包括:
当所述动作指令为交互动作指令时,将所述目标虚拟对象对应的相机挂点,以及交互虚拟对象对应的相机挂点,确定为所述虚拟场景所对应的虚拟相机的目标追踪点;所述交互虚拟对象,是所述虚拟场景中除所述目标虚拟对象外的、且所述交互动作指令所指向的虚拟对象;
控制所述虚拟相机追踪所述目标追踪点,并采集所述虚拟场景中的所述目标虚拟对象和所述交互虚拟对象对应的画面,生成所述虚拟相机的视角下的、包括所述目标虚拟对象和所述交互虚拟对象的场景画面。
5.根据权利要求1所述的方法,其特征在于,所述获取针对虚拟场景中的目标虚拟对象的动作指令之后,所述方法还包括:
获取与所述动作指令对应的所述目标虚拟对象的动作动画;
在所述虚拟场景中,播放所述动作动画;所述动作动画中的所述目标虚拟对象是按照所述动作指令的指示移动的。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述目标虚拟对象在所述虚拟场景中的当前位置;
所述在所述虚拟场景中,播放所述动作动画,包括:
在所述虚拟场景中,播放所述动作动画;所述动作动画中的所述目标虚拟对象是从所述当前位置开始按照所述动作指令的指示移动的。
7.根据权利要求1所述的方法,其特征在于,所述在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面,包括:
根据所述动作指令确定所述目标虚拟对象的对象移动信息:
根据所述对象移动信息,确定所述虚拟相机对应的相机移动信息;
在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,按照所述相机移动信息,控制所述虚拟相机移动以对所述目标追踪点进行追踪,并采集在所述虚拟场景中移动的目标虚拟对象所对应的画面,生成所述虚拟相机的视角下的场景画面。
8.根据权利要求1至7任意一项所述的方法,其特征在于,在所述获取针对虚拟场景中的目标虚拟对象的动作指令之前,所述方法还包括:
针对所述虚拟场景中的每个虚拟对象,构建所述虚拟对象的骨骼节点;
基于所述虚拟对象的骨骼节点,构建附属于所述骨骼节点的相机挂点;所述相机挂点,用于作为所述虚拟场景所对应的虚拟相机的目标追踪点,使得所述相机挂点跟随所述虚拟对象移动而移动。
9.根据权利要求8所述的方法,其特征在于,所述基于所述虚拟对象的骨骼节点,构建附属于所述骨骼节点的相机挂点,包括:
根据所述虚拟对象的骨骼节点,确定所述虚拟对象的尺寸信息;
按照与所述尺寸信息对应的距离,在与所述骨骼节点对应的预设方位,确定所述虚拟对象的相机挂点所对应的挂点位置;
在所述挂点位置生成附属于所述骨骼节点的相机挂点,得到所述虚拟对象对应的相机挂点。
10.根据权利要求9所述的方法,其特征在于,所述在所述挂点位置生成附属于所述骨骼节点的相机挂点,得到所述虚拟对象对应的相机挂点,包括:
在所述挂点位置生成附属于所述骨骼节点的附加节点;
将所述附加节点配置为相机挂点,并建立所述相机挂点与所述骨骼节点之间的连接关系,得到所述虚拟对象对应的相机挂点;所述连接关系用于将所述相机挂点与所述骨骼节点绑定,使得所述相机挂点跟随所述虚拟对象的骨骼节点的移动而移动。
11.根据权利要求8所述的方法,其特征在于,在所述基于所述虚拟对象的骨骼节点,构建附属于所述骨骼节点的相机挂点之后,所述方法还包括:
对所述虚拟对象的骨骼节点进行蒙皮处理,得到三维的虚拟对象;
对所述虚拟对象添加与所述虚拟对象对应的表面属性信息,得到具有相机挂点的虚拟对象;
根据所述具有相机挂点的虚拟对象,生成与针对所述虚拟对象的动作指令对应的动作动画。
12.一种场景生成装置,其特征在于,所述装置包括:
指令获取模块,用于获取针对虚拟场景中的目标虚拟对象的动作指令;
挂点确定模块,用于确定与所述目标虚拟对象对应的相机挂点;所述相机挂点,是针对所述目标虚拟对象预先绑定的附加节点;
场景生成模块,用于在根据所述动作指令控制所述目标虚拟对象移动的过程中,以所述相机挂点作为所述虚拟场景所对应的虚拟相机的目标追踪点,使所述虚拟相机通过追踪所述目标追踪点而跟随所述目标虚拟对象移动,生成所述虚拟相机的视角下的场景画面。
13.根据权利要求12所述的装置,其特征在于,所述场景生成模块还用于当所述动作指令为交互动作指令时,将所述目标虚拟对象对应的相机挂点,以及交互虚拟对象对应的相机挂点,确定为所述虚拟场景所对应的虚拟相机的目标追踪点;所述交互虚拟对象,是所述虚拟场景中除所述目标虚拟对象外的、且所述交互动作指令所指向的虚拟对象;控制所述虚拟相机追踪所述目标追踪点,并采集所述虚拟场景中的所述目标虚拟对象和所述交互虚拟对象对应的画面,生成所述虚拟相机的视角下的、包括所述目标虚拟对象和所述交互虚拟对象的场景画面。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110640391.3A CN113313796B (zh) | 2021-06-08 | 2021-06-08 | 场景生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110640391.3A CN113313796B (zh) | 2021-06-08 | 2021-06-08 | 场景生成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113313796A true CN113313796A (zh) | 2021-08-27 |
CN113313796B CN113313796B (zh) | 2023-11-07 |
Family
ID=77377894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110640391.3A Active CN113313796B (zh) | 2021-06-08 | 2021-06-08 | 场景生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113313796B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363689A (zh) * | 2022-01-11 | 2022-04-15 | 广州博冠信息科技有限公司 | 直播控制方法、装置、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102822869A (zh) * | 2010-01-22 | 2012-12-12 | 索尼电脑娱乐美国公司 | 捕获在生成的场景内表演的演员的视图和运动 |
US20200051304A1 (en) * | 2018-08-08 | 2020-02-13 | Samsung Electronics Co., Ltd | Electronic device for displaying avatar corresponding to external object according to change in position of external object |
CN111803946A (zh) * | 2020-07-22 | 2020-10-23 | 网易(杭州)网络有限公司 | 游戏中的镜头切换方法、装置和电子设备 |
CN112642150A (zh) * | 2020-12-31 | 2021-04-13 | 上海米哈游天命科技有限公司 | 游戏画面的拍摄方法、装置、设备及存储介质 |
CN112669194A (zh) * | 2021-01-06 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 虚拟场景中的动画处理方法、装置、设备及存储介质 |
CN112752025A (zh) * | 2020-12-29 | 2021-05-04 | 珠海金山网络游戏科技有限公司 | 虚拟场景的镜头切换方法及装置 |
-
2021
- 2021-06-08 CN CN202110640391.3A patent/CN113313796B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102822869A (zh) * | 2010-01-22 | 2012-12-12 | 索尼电脑娱乐美国公司 | 捕获在生成的场景内表演的演员的视图和运动 |
US20200051304A1 (en) * | 2018-08-08 | 2020-02-13 | Samsung Electronics Co., Ltd | Electronic device for displaying avatar corresponding to external object according to change in position of external object |
CN111803946A (zh) * | 2020-07-22 | 2020-10-23 | 网易(杭州)网络有限公司 | 游戏中的镜头切换方法、装置和电子设备 |
CN112752025A (zh) * | 2020-12-29 | 2021-05-04 | 珠海金山网络游戏科技有限公司 | 虚拟场景的镜头切换方法及装置 |
CN112642150A (zh) * | 2020-12-31 | 2021-04-13 | 上海米哈游天命科技有限公司 | 游戏画面的拍摄方法、装置、设备及存储介质 |
CN112669194A (zh) * | 2021-01-06 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 虚拟场景中的动画处理方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363689A (zh) * | 2022-01-11 | 2022-04-15 | 广州博冠信息科技有限公司 | 直播控制方法、装置、存储介质及电子设备 |
CN114363689B (zh) * | 2022-01-11 | 2024-01-23 | 广州博冠信息科技有限公司 | 直播控制方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113313796B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200312042A1 (en) | Three dimensional reconstruction of objects based on geolocation and image data | |
CN111659115B (zh) | 虚拟角色控制方法、装置、计算机设备和存储介质 | |
JP5137970B2 (ja) | ビデオストリームにおいて、マーク無しに、テクスチャー化平面幾何学的オブジェクトをリアルタイムで自動追跡するリアリティ向上方法および装置 | |
US20140078144A1 (en) | Systems and methods for avatar creation | |
CN112148189A (zh) | 一种ar场景下的交互方法、装置、电子设备及存储介质 | |
CN101477701B (zh) | 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法 | |
CN101477700B (zh) | 面向Google Earth与Sketch Up的真三维立体显示方法 | |
CN105389090B (zh) | 游戏交互界面显示的方法及装置、移动终端和电脑终端 | |
CN111714880B (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
US11335058B2 (en) | Spatial partitioning for graphics rendering | |
CN111773686A (zh) | 动画的生成方法和装置、存储介质、电子装置 | |
US11816772B2 (en) | System for customizing in-game character animations by players | |
CN112669194B (zh) | 虚拟场景中的动画处理方法、装置、设备及存储介质 | |
CN101477702B (zh) | 计算机显卡的植入式真三维立体驱动方法 | |
CN111142967B (zh) | 一种增强现实显示的方法、装置、电子设备和存储介质 | |
CN114225386A (zh) | 场景画面的编码方法、装置、电子设备及存储介质 | |
CN115082607A (zh) | 虚拟角色头发渲染方法、装置、电子设备和存储介质 | |
CN113313796B (zh) | 场景生成方法、装置、计算机设备和存储介质 | |
CN115018959A (zh) | 三维虚拟模型的驱动处理方法、装置、设备和存储介质 | |
Lang et al. | Massively multiplayer online worlds as a platform for augmented reality experiences | |
JP7364702B2 (ja) | テクスチャ操作を使用するアニメーション化された顔 | |
CN112843704B (zh) | 动画模型处理方法、装置、设备及存储介质 | |
CN113426110A (zh) | 虚拟角色交互方法、装置、计算机设备和存储介质 | |
Tao | A VR/AR-based display system for arts and crafts museum | |
Zhu et al. | Integrated Co-Designing Using Building Information Modeling and Mixed Reality with Erased Backgrounds for Stock Renovation |
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: 40052749 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |