虚拟相机的控制方法、装置、设备、存储介质及产品与流程

未命名 07-27 阅读:95 评论:0


1.本技术涉及计算机视觉技术,尤其涉及一种虚拟相机的控制方法、装置、电子设备、计算机可读存储介质以及计算机程序产品。


背景技术:

2.计算机视觉技术(cv,computer vision)属于人工智能技术之一,其通过摄影机和电脑代替人眼对目标进行识别、跟随和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。
3.相关技术中,虚拟场景中往往含有大量不同景别、运动的摄影机画面,而针对摄影机的景别切换往往需要进行重复而单一的手动设置操作,人力成本高,针对摄影机的控制效率低。


技术实现要素:

4.本技术实施例提供一种虚拟相机的控制方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,不仅能够实现虚拟相机的快速定位,还能够快速进行虚拟相机的画面采集操作。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种虚拟相机的控制方法,包括:
7.获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别;
8.其中,所述目标景别,用于指示所述虚拟对象的不同部位在所述虚拟相机的采集画面中占据的比例;
9.基于所述目标景别以及所述骨骼运动数据,确定所述虚拟相机对应所述目标景别的目标相机机位;
10.基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的目标画面。
11.本技术实施例提供一种虚拟相机的控制装置,包括:
12.获取模块,用于获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别;其中,所述目标景别,用于指示所述虚拟对象的不同部位在所述虚拟相机的采集画面中占据的比例;
13.确定模块,用于基于所述目标景别以及所述骨骼运动数据,确定所述虚拟相机对应所述目标景别的目标相机机位;
14.控制模块,用于基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的目标画面。
15.本技术实施例提供一种电子设备,包括:
16.存储器,用于存储可执行指令;
17.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的虚拟相机的控制方法。
18.本技术实施例提供一种计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的虚拟相机的控制方法。
19.本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本技术实施例提供的虚拟相机的控制方法。
20.本技术实施例具有以下有益效果:
21.应用本技术实施例,结合虚拟场景中虚拟对象的骨骼运动数据以及虚拟相机的目标景别,实时确定虚拟相机与目标景别相适配的目标相机机位,并控制虚拟相机基于目标相机机位,采集包括虚拟对象的目标画面,如此,不仅能够实现虚拟相机的快速定位,还能够快速进行虚拟相机的画面采集操作。
附图说明
22.图1是本技术实施例提供的虚拟相机的控制系统100的架构示意图;
23.图2是本技术实施例提供的实施虚拟相机的控制方法的电子设备500的结构示意图;
24.图3是本技术实施例提供的虚拟相机的控制方法的流程示意图;
25.图4是本技术实施例提供的景别的可视化界面示意图;
26.图5是本技术实施例提供的骨骼运动数据获取方法流程图;
27.图6是本技术实施例提供的人体骨骼关键点的检测示意图;
28.图7是本技术实施例提供的目标相机机位的确定方法流程图;
29.图8是本技术实施例提供的目标相机机位的确定方法的另一流程图;
30.图9是本技术实施例提供的确定目标相机机位的具体实现方法流程图;
31.图10是本技术实施例提供的目标景别为全景时目标相机机位的确定方法流程图;
32.图11是本技术实施例提供的目标画面的采集方式流程图;
33.图12是本技术实施例提供的虚拟相机的动画序列的创建方式流程图;
34.图13是本技术实施例提供的虚拟相机控制方法的整体流程图;
35.图14是本技术实施例提供的骨骼结构检测方法流程图;
36.图15是本技术实施例提供的不同类型的骨骼资产结构图;
37.图16是本技术实施例提供的骨骼树结构示意图;
38.图17是本技术实施例提供的虚拟相机设置及景别选择流程图;
39.图18是本技术实施例提供的虚拟相机的动画序列创建流程图;
40.图19是本技术实施例提供的虚拟相机的采集画面示意图。
具体实施方式
41.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进
一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
42.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
43.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
44.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
45.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
46.1)虚拟人:虚拟数字人是指通过数字技术模拟真实的人体骨骼结构及外观而合成的三维模型。
47.2)人体模型:虚拟人体是一个灵活而复杂的非刚性物体,具有运动结构,身体形状,表面纹理,身体部位或身体关节的位置等许多特定特征。成熟的人体模型不是必须包含所有人体属性,而是应满足构建和描述人体姿势的特定任务的要求。
48.3)人体姿态估计中共有三种常用的人体模型:基于骨骼的模型,基于轮廓的模型和基于体积的模型。
49.4)人体姿态估计:根据图像和视频等输入数据来定位人体部位并建立人体表现形式(例如人体骨骼),广泛用于包括人机交互,运动分析,增强现实和虚拟现实的应用中。
50.基于上述对本技术实施例中涉及的名词和术语的解释,下面说明本技术实施例提供的虚拟相机的控制系统。参见图1,图1是本技术实施例提供的虚拟相机的控制系统100的架构示意图,为实现支撑一个示例性应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
51.在一些实施例中,终端(如终端400-1和终端400-2),部署有虚拟场景应用(如虚拟人表演、虚拟直播等应用),用于向服务器发送针对虚拟场景的场景数据请求,并接收服务器返回的虚拟场景中虚拟相机的动画序列,基于该动画序列渲染该虚拟场景。
52.在一些实施例中,服务器200,用于获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别;目标景别,用于指示虚拟对象的不同部位在虚拟相机的采集画面中占据的比例;基于目标景别和骨骼运动数据,确定虚拟相机对应目标景别的目标相机机位;基于目标相机机位,控制虚拟相机对虚拟对象进行画面采集,得到包括虚拟对象的目标画面。同时,还创建虚拟相机在虚拟场景中从初始相机机位切换到目标相机机位的整个过程的动画序列并保存。并在接收到终端发送的针对虚拟场景的场景数据的场景数据请求时,查找该虚拟场景对应的动画序列,并将动画序列返回至终端。
53.在实际应用中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构
成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端(如终端400-1和终端400-2)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。终端(如终端400-1和终端400-2)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
54.接下来对实施本技术实施例提供的虚拟相机的控制方法的电子设备进行说明。参见图2,图2是本技术实施例提供的实施虚拟相机的控制方法的电子设备500的结构示意图。电子设备500可以为图1示出的服务器200,电子设备500还可以是具有实现本技术提供的虚拟相机的控制方法能力的终端,以电子设备500为图1示出的服务器为例,对实施本技术实施例的虚拟相机的控制方法的电子设备进行说明,本技术实施例提供的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
55.处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
56.用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
57.存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
58.存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only me mory),易失性存储器可以是随机存取存储器(ram,random access memor y)。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。
59.在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
60.操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一
个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
61.在一些实施例中,本技术实施例提供的虚拟相机的控制装置可以采用软件方式实现,图2示出了存储在存储器550中的虚拟相机的控制装置555,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块5551、确定模块5552和控制模块5553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
62.在另一些实施例中,本技术实施例提供的虚拟相机的控制装置可以采用软硬件结合的方式实现,作为示例,本技术实施例提供的虚拟相机的控制装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的虚拟相机的控制方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,fi eld-programmable gate array)或其他电子元件。
63.在一些实施例中,终端或服务器可以通过运行计算机程序来实现本技术实施例提供的虚拟相机的控制方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,如即时通信app、网页浏览器app;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
64.基于上述对本技术实施例提供的虚拟相机的控制系统及电子设备的说明,下面说明本技术实施例提供的虚拟相机的控制方法。在实际实施时,本技术实施例提供的虚拟相机的控制方法可以由终端或服务器单独实现,或者由终端及服务器协同实现,以由图1中的服务器200单独执行本技术实施例提供的虚拟相机的控制方法为例进行说明。参见图3,图3是本技术实施例提供的虚拟相机的控制方法的流程示意图,将结合图3示出的步骤进行说明。
65.在步骤101中,服务器获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别,目标景别用于指示虚拟对象的不同部位在虚拟相机的采集画面中占据的比例。
66.在实际实施时,服务器中部署有用于进行虚拟场景开发的虚幻引擎,通过在虚幻引擎中的可视化操作,可以实现针对虚拟相机的控制过程,并可以将虚拟相机在虚拟场景中的运动过程采用动画序列的方式存储,当接收到终端发送的针对该虚拟场景的场景数据请求时,将该动画序列发送至终端,以使终端基于该动画序列渲染该虚拟场景并显示。
67.在实际实施时,虚拟相机针对虚拟对象的采集画面与景别相关,不同的景别对应不同的采集画面。当虚拟相机的焦距为固定值时,虚拟相机与虚拟场景中被摄虚拟对象距离的不同,可以使得被摄虚拟对象在虚拟相机中所呈现出不同的范围,这些不同的范围可称为虚拟相机的景别。按照针对被摄虚拟对象的距离由近至远的顺序,虚拟相机的景别包括以下至少之一:特写、近景、中景、全景、远景。参见图4,图4是本技术实施例提供的景别的可视化界面示意图,图中景别为特写时,虚拟相机针对虚拟对象的采集画面的最下方卡到人体模型的肩部,即采集画面中显示虚拟对象对应的人体模型的肩部以上;图中景别为近
景时,虚拟相机针对虚拟对象的采集画面的最下方卡到人体胸部,即采集画面中显示虚拟对象对应的人体模型的胸部以上;图中景别为中景时,虚拟相机针对虚拟对象的采集画面的最下方卡到人体胯部,即采集画面中显示虚拟对象对应的人体模型的胯部以上;图中景别为全景时,虚拟相机针对虚拟对象的采集画面中包括人体的全部和周围部分环境;图中景别为远景时,虚拟相机的采集画面中主要包括虚拟对象所处的环境。
68.在一些实施例中,可以通过以下方式确定目标景别:显示供选择的至少一个景别,景别包括以下至少之一:特写、近景、中景、全景以及远景;响应于针对至少一个景别的景别选择操作,将所选择的景别确定为目标景别。
69.在实际实施时,服务器的虚幻引擎通过人机交互交互界面中显示供选择的一个或多个景别,在接收到用户基于当前人机交互界面针对一个景别的选择操作,将当前选择的景别作为目标景别。需要说明的是,还可以从该虚拟场景的应用对应的配置文件中,读取预设景别,作为目标景别。
70.示例性地,服务器的虚幻引擎可以提供用于选择景别的人机交互界面,在人机交互界面中,显示多个景别选择项,每个景别选择项对应一个景别,接收到针对“特写”选择项的选择操作,将“特写”选择项对应的“特写”景别作为当前虚拟场景中的虚拟相机的目标景别。
71.在实际实施时,当确定了虚拟相机的目标景别后,就可以确定被摄虚拟对象距虚拟相机的距离,因此,可以根据虚拟对象的骨骼所对应的骨骼运动数据,自动调节虚拟相机的相机参数,以使虚拟相机能够处于与目标景别对应的目标相机机位。由于虚拟场景中的虚拟对象是运动的,服务器可以通过不同的获取方式,获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,从而实时确定虚拟对象距虚拟相机的距离,以便于实时调整虚拟相机的相机机位,进而确定虚拟相机与目标景别对应的目标相机机位。需要说明的是,骨骼运动数据包括骨骼的位移数据和骨骼的旋转数据。
72.针对骨骼运动数据的获取方式进行说明,在一些实施例中,参见图5,图5是本技术实施例提供的骨骼运动数据获取方法流程图,基于图3,步骤101可由步骤1011-1013实现,结合图5示出的步骤进行说明。
73.步骤1011,服务器对虚拟场景中的虚拟资源进行检测,得到检测结果。
74.在实际实施时,服务器的虚幻引擎可以提供多种不同类型的用于创建虚拟对象的虚拟资源,虚拟资源可以包括用于创建虚拟对象关联的人体模型的骨骼资源。骨骼资源包括该虚拟引擎中所提供的人体模型的骨骼架构、骨骼结构中的骨骼数量、每根骨骼的名称等。不同类型的骨骼资源能实现带有骨骼、可以由实时或离线动画数据驱动的虚拟对象。
75.示例性的,以虚幻引擎unreal为例,在基于该虚幻引擎所渲染地虚拟场景中能够检测到actor、character、bp三种类型的骨骼资源。
76.步骤1012,当检测结果表征虚拟资源中包括用于创建虚拟对象的骨骼的骨骼资源时,基于骨骼资源,创建虚拟场景中虚拟对象的骨骼,并对骨骼的骨骼运动数据进行初始化,得到虚拟对象的骨骼所对应的骨骼运动数据。
77.示例性地,以虚幻引擎unreal为例,在基于该虚幻引擎所渲染地虚拟场景中能够检测到actor、character、bp三种类型的骨骼资源,不同的骨骼资源具有与其相适配的骨骼树。基于骨骼资源构建相应的虚拟对象关联的人体模型,并通过赋予人体模型中每一个骨
骼点的位置信息及旋转信息驱动骨骼运动从而带动虚拟对象在虚拟场景中的运动。
78.步骤1013,当检测结果表征虚拟资源中不存在用于创建虚拟对象的骨骼的骨骼资源时,对虚拟场景中的虚拟对象进行人体骨骼关键点检测,得到携带骨骼信息的骨骼关键点,并基于骨骼关键点,确定相应骨骼的骨骼运动数据。
79.在实际实施时,当不能检测到虚幻引擎所提供的虚拟对象的骨骼资源时,可以利用基于人体骨骼关键点检测算法对虚拟场景中的虚拟对象进行人体骨骼关键点检测,得到携带骨骼信息的骨骼关键点,从而得到虚拟对象不同骨骼的位置及旋转数据。
80.示例性地,参见图6,图6是本技术实施例提供的人体骨骼关键点的检测示意图,图中编号2示出的虚拟对象关联的人体模型是基于编程语言(如c++)自建的虚拟对象,即该虚拟对象不是通过虚幻引擎所提供的虚拟资源创建的。此时,无法通过虚幻引擎自带的骨骼资源检测方法得到用于创建虚拟对象的骨骼资源,因此可通过基于人体骨骼关键点检测算法(如open pose)对该虚拟对象进行人体骨骼关键点的检测,得到携带骨骼信息的骨骼关键点,其中,编号1示出的人体骨骼关键点检测算法对应的标准骨骼点。然后根据骨骼关键点的位移数据和旋转数据,确定骨骼关键点所对应骨骼的骨骼运动数据。
81.在步骤102中,基于目标景别和骨骼运动数据,确定虚拟相机对应目标景别的目标相机机位。
82.在实际实施时,服务器根据接收到的目标景别,以及虚拟场景中检测的得到的虚拟对象的骨骼运动数据,确定虚拟对象距虚拟相机的距离,从而确定虚拟相机与目标景别相适配的目标相机机位。
83.在一些实施例中,参见图7,图7是本技术实施例提供的目标相机机位的确定方法流程图,基于图3,步骤102可由步骤1021至1023实现,结合图7示出的步骤进行说明。
84.步骤1021,获取虚拟对象在虚拟场景中的位置信息,并获取虚拟相机的靶面高度以及虚拟相机的焦距。
85.在实际实施时,在目标景别下,虚拟相机距虚拟对象的距离与虚拟相机的相机内参数、以及虚拟对象在虚拟场景中的位置有关。其中,相机内参数是与相机自身特性相关的参数,比如相机的焦距、靶面尺寸(包括靶面的高度和宽度)等。
86.步骤1022,从虚拟对象的骨骼中选择与目标景别相适配的目标骨骼。
87.其中,目标骨骼为,当虚拟相机基于目标景别对虚拟对象进行画面采集时,采集到的虚拟对象的最低部位的骨骼。
88.在实际实施时,在不同目标景别下,虚拟相机针对虚拟对象的采集画面中所呈现的虚拟对象的身体部位不同。
89.在一些实施例中,参见图8,图8是本技术实施例提供的目标相机机位的确定方法的另一流程图,基于图7,步骤1022可由步骤201至203实现,结合图8示出的步骤进行说明。
90.步骤201,当目标景别为特写时,从虚拟对象的肩部的至少一个骨骼中,选择与特写相适配的目标骨骼。
91.在实际实施时,目标景别为特写时,虚拟相机的采集画面中采集到虚拟对象的最低部位为肩部,此时,与特写相适配的目标骨骼为肩部骨骼;
92.示例性地,参见图6中编号1示出的人体骨骼关键点,当目标景别为特写时,对应的虚拟对象的目标部位为肩部,图中示出的肩部骨骼点为2号骨骼点和5号骨骼点,可以确定2
号骨骼点和5号骨骼点中之一作为特写时的目标骨骼。
93.步骤202,当目标景别为近景时,从虚拟对象的胸部的至少一个骨骼中,选择与近景相适配的目标骨骼。
94.在实际实施时,目标景别为近景时,虚拟相机的采集画面中采集到虚拟对象的最低部位为胸部,此时,与近景相适配的目标骨骼为胸部骨骼。
95.步骤203,当目标景别为中景时,从虚拟对象的胯部的至少一个骨骼中,选择与中景相适配的目标骨骼。
96.在实际实施时,目标景别为中景时,虚拟相机的采集画面中采集到虚拟对象的最低部位为胯部,此时,与中景相适配的目标骨骼为跨部骨骼等。
97.示例性地,参见图6中编号1示出的人体骨骼关键点,当目标景别为中景时,对应的虚拟对象的目标部位为胯部,图中示出的胯部骨骼点为8号骨骼点、9号骨骼点以及12号骨骼点,可以三者中之一作为中景时的目标骨骼。
98.需要说明的是,图7中步骤201-203之间没有严格的执行顺序。
99.步骤1023,基于位置信息、目标骨骼的骨骼运动数据、靶面高度以及焦距,确定虚拟相机对应目标景别的目标相机机位。
100.在实际实施时,服务器根据虚拟对象在虚拟场景中的位置信息、目标骨骼的骨骼运动数据、靶面高度以及焦距确定对应目标景别的目标相机机位。其中,针对虚拟对象的位置信息,通常是选取虚拟对象关联的人体模型的锚点作为中心点,确定虚拟对象的位置信息,可记作m(x1,y1,z1),并确定目标骨骼的骨骼运动数据。如图6中编号1示出的人体模型的锚点可以是8号骨骼点,或1号骨骼点与8号骨骼点之间的中心点作为虚拟对象关联的人体模型的锚点。
101.在一些实施例中,服务器可以通过以下方式具体确定虚拟相机的目标相机机位:基于目标骨骼的骨骼运动数据,确定目标骨骼与虚拟对象的头部的骨骼之间的高度;基于高度、靶面高度、焦距,确定虚拟相机至虚拟对象的距离;基于位置以及距离,确定虚拟相机对应目标景别的目标相机机位。
102.在实际实施时,首先确定与目标景别相适配的目标骨骼与虚拟对象所关联的人体模型的头部的骨骼之间的高度,需要说明的是,参见图6中编号1示出的人体骨骼关键点,头部的骨骼点可以包括15号骨骼点和16号骨骼点,选择15号骨骼点和16号骨骼点中选择一个骨骼点,确定目标骨骼与该骨骼点之间的高度l,需要说明的是,选中的头部的骨骼点距离虚拟对象的头部顶端还有一段距离,因此,在实际应用中,目标骨骼与该骨骼点之间的高度l可以在加上一个公知的预设值5cm,作为目标骨骼与头部顶端的高度。然后,根据虚拟相机的靶面sensor
width
*sensor
height
、焦距f,计算虚拟相机距虚拟对象的距离,通过该距离计算出虚拟相机在世界坐标系下的位置信息及旋转信息,从而确定虚拟相机与目标景别相适配的目标相机机位。
103.在一些实施例中,服务器可以通过以下方式确定虚拟对象距虚拟相机的距离:服务器获取靶面高度与焦距之间的比值;确定高度的一半与比值之间的乘积,并将乘积作为虚拟相机至虚拟对象的距离。
104.在实际实施时,虚拟相机的靶面sensor
width
*sensor
height
、焦距f,实现方式(虚拟对象的位置为m(x1,y1,z1),虚拟对象关联的人体模型的模型高度为h,与目标景别相适配的目
标骨骼距头顶的高度为l,虚拟对象距虚拟相机的距离为d,首先,获取靶面高度与焦距之间的比值然后,根据之间的比值关系,确定虚拟对象距虚拟相机的距离为d,即
105.对与目标景别相适配的目标骨骼距头顶的高度为l进行说明,在实际实施时,目标景别为特写时,目标骨骼距头顶的高度l为肩部骨骼距头顶的高度;目标景别为近景时,目标骨骼距头顶的高度l为胸部骨骼距头顶的高度;目标景别为中景时,目标骨骼距头顶的高度l为胯部骨骼距头顶的高度。
106.在一些实施例中,参见图9,图9是本技术实施例提供的确定目标相机机位的具体实现方法流程图,结合图9示出的步骤进行说明。
107.步骤301,获取位置相对于世界坐标系的第一方向的第一分量、相对于世界坐标系的第二方向的第二分量、相对于世界坐标系的第三方向的第三分量;
108.其中,第一方向、第二方向及第三方向中,任意两个方向间互相垂直;
109.示例性地,确定虚拟对象在虚拟场景中的位置m(x1,y1,z1),需要说明的是,这里的位置是相对于世界坐标系的,其中,位置相对于世界坐标系的第一方向的第一分量x1,相对于世界坐标系的第二方向的第二分量y1,以及相对于世界坐标系的第三方向的第三分量z1。
110.步骤302,对第二分量与距离进行加权求和,得到虚拟相机相对于世界坐标系的第二方向的目标分量;
111.承接上例,保持第一分量与第三分量不变的情况下,对第二分量y1与虚拟对象距虚拟相机的距离为d进行加权求和,即(y1+d)作为虚拟相机相对于世界坐标系的第二方向的目标分量。
112.步骤303,基于第一分量、目标分量以及第三分量,确定虚拟相机对应目标景别的目标相机机位。
113.承接上例,设置虚拟相机的目标相机机位为c(x2,y2,z2),其中,x2与第一分量x1相等,y2与目标分量(y1+d)相等,z2与第三分量z1相等。
114.在一些实施例中,参见图10,图10是本技术实施例提供的目标景别为全景时目标相机机位的确定方法流程图,当目标景别为全景时,服务器可通过步骤401-403确定目标相机机位。
115.步骤401,服务器获取虚拟对象在虚拟场景中的位置、以及虚拟对象的高度,并获取虚拟相机的靶面高度以及虚拟相机的焦距。
116.在实际实施时,当目标景别为全景时,虚拟相机针对虚拟对象的采集画面包括虚拟对象从头到脚的画面。由于全景时,虚拟相机针对虚拟对象的采集画面的画面高度没有明确的范围限制,可以根据虚拟对象相关联的人体模型的模型高度h,确定全景下虚拟相机的目标相机机位。
117.示例性地,可取1-1.5倍的模型高度h,即h-1.5h之间的高度作为计算全景时的参考高度。
118.步骤402,基于高度,确定与全景相适配的参考高度,并获取靶面高度与焦距之间的比值。
119.在实际实施时,根据虚拟对象关联的人体模型的模型高度h,以及模型高度h的1-1.5倍的高度,作为与全景相适配的参考高度,并基于虚拟相机的靶面尺寸sensor
width
*sensor
height
中的靶面高度sensor
height
、虚拟相机的焦距f,确定虚拟相机的目标相机机位。
120.步骤403,基于参考高度及比值,确定虚拟相机对应目标景别的目标相机机位。
121.在实际实施时,服务器获取靶面高度sensor
height
、虚拟相机的焦距f之间的比值并将模型高度h的1.2倍的高度1.2h作为参考高度,通过确定虚拟相机距虚拟对象的距离并根据虚拟对象在虚拟场景中的位置信息m(x1,y1,z1),确定目标相机机位为c(x2,y2,z2),其中,x2=x1,y2=y1+d,z2=z1,即在世界坐标系中,c(x2,y2,z2)=(x1,y1+d,z1)

122.需要说明的是,当目标景别为远景时,虚拟相机的采集画面中主要包括虚拟对象所处的环境,虚拟相机距离虚拟对象的距离d不固定,可以获取虚拟对象所关联的人体模型的模型高度h的1-1.5倍的高度,以1.5h为例,根据确定虚拟相机距离虚拟对象的距离在根据预设的系数以及虚拟相机距离虚拟对象的距离d,以预设的系数是5为例,可以确定虚拟相机的目标相机机位c(x2,y2,z2)=(x1,y1+5d,z1)。
123.在步骤103中,基于目标相机机位,控制虚拟相机对虚拟对象进行画面采集,得到包括虚拟对象的目标画面。
124.在实际实施时,当确定虚拟相机的目标相机机位后,控制虚拟相机对虚拟对象进行画面采集,得到与目标景别相适配的目标画面。
125.针对目标画面的具体采集方式进行说明,在一些实施例中,参见图11,图11是本技术实施例提供的目标画面的采集方式流程图,结合图11示出的步骤进行说明。
126.步骤1031,获取虚拟相机的初始相机机位,并调整虚拟相机的初始相机机位至目标相机机位。
127.在实际实施时,在虚拟场景中,虚拟相机具有初始相机机位以及初始景别,虚拟相机在初始相机机位针对虚拟对象进行画面采集,得到与初始景别相适配的采集画面。当虚拟相机的景别发生变化时,对虚拟相机的相机机位进行调整,从初始相机机位调整至目标相机机位。
128.步骤1032,基于目标相机机位,控制虚拟相机对虚拟对象的目标骨骼至头部顶端之间的部位进行画面采集,得到包括虚拟对象的目标画面。
129.在实际实施时,控制虚拟相机处于目标相机机位,对针对虚拟对象从目标骨骼值头部顶端之间的部位进行湖面采集,得到包括虚拟对象的目标画面。
130.在一些实施例中,服务器还可以通过以下方式调整目标相机机位:接收到景别切换指令,对目标相机机位进行调整,得到调整后的相机机位;基于调整后的相机机位,重新控制虚拟相机对虚拟对象进行画面采集,得到包括虚拟对象的新的目标画面。
131.在实际实施时,服务器上的虚幻引擎接收到景别切换指令,对当前的虚拟相机的目标相机机位进行调整,得到调整后的相机机位,调整后的相机机位与景别切换指令所指
示的切换后的景别相适配。然后,控制虚拟场景中的虚拟相机处于调整后的相机机位执行针对虚拟对象的画面采集操作。
132.在一些实施例中,参见图12,图12是本技术实施例提供的虚拟相机的动画序列的创建方式流程图,结合图12示出的步骤进行说明,
133.步骤501,获取虚拟相机的初始景别,并创建与初始景别相适配的虚拟相机的第一动画序列。
134.其中,第一动画序列,用于表征在虚拟相机基于初始景别对虚拟对象进行画面采集的过程中,虚拟相机在虚拟场景中的运动过程;
135.在实际实施时,服务器上的虚幻引擎可以通过动画序列的方式存储虚拟相机在虚拟场景中的运动过程。在虚幻引擎的动画编辑器中,创建虚拟相机与初始景别相适配的动画序列,并保存用于存储当前虚拟场景的虚拟资源的路径中。动画序列用于记录虚拟相机在虚拟场景中的运动轨迹,虚拟相机的运动可以由虚拟相机的焦距变化以及虚拟相机的旋转变换表示。其中,摄影机焦距轨道由虚拟相机的焦距的变化过程来确定。在得到虚拟相机距虚拟对象的距离,根据虚拟相机的焦距确定虚拟相机的目标相机机位,并根据虚拟对象的骨骼运动数据中骨骼旋转数据确定虚拟对象的旋转方向、以及虚拟相机的旋转变换轨道
136.步骤502,确定从基于目标相机机位,控制虚拟相机对虚拟对象进行画面采集的时间点,并从时间点开始,创建虚拟相机与目标景别相适配的第二动画序列。
137.在实际实施时,当确定虚拟相机与目标景别相适配的目标相机机位后,控制虚拟相机开始对虚拟对象进行画面采集,并记录当前时间点,从当前时间点开始,创建目标景别下的虚拟相机的第二动画序列。
138.步骤503,将第一动画序列以及第二动画序列进行合并,得到虚拟相机的目标动画序列,目标动画序列用于渲染得到虚拟场景。
139.在实际实施时,服务器中的虚幻引擎基于针对动画序列的合并指令,将第一动画序列和第二动画序列进行合并,得到虚拟相机从初始景别到目标景别的整个过程的动画序列,即虚拟相机的目标动画,该目标动画能够在虚拟场景的渲染阶段,根据目标动画渲染得到虚拟场景并展示。
140.需要说明的,当虚拟场景中存在多个虚拟相机时,每个虚拟相机都具有相应的动画序列,当接收到针对虚拟相机的切换指令后,可以通过不同的虚拟相机对虚拟场景中的虚拟对象进行画面采集,得到同一个目标景别下,不同虚拟相机针对同一个虚拟对象的采集画面。
141.应用本技术上述实施例,结合虚拟相机的焦距、靶面尺寸、以及虚拟相机的目标景别,自动计算虚拟相机在目标景别下的目标相机机位,并生成相应的虚拟相机的动画序列,如此,在虚拟相机的景别发生变化时,不需要根据虚拟相机的预览视图去人工调整虚拟相机的机位与参数,根据靶面设置、焦距设置及景别选择即可自动化生成虚拟相机的目标机位,以及相应的动画序列,有效降低虚拟相机的操作复杂度,简化景别变化时虚拟相机的控制操作。另外,在进行景别自动设置的同时考虑多种形式的骨骼资源,具有高自动化、强应用性。
142.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
143.相关技术中,游戏场景中虚拟相机的控制主要基于控制玩家视角的运镜规则,不
具有对不同景别取景及运镜功能的支持;而直播场景中虚拟相机的控制,主要是通过控制摄影机导播规则,具有景别信息的判断,但无法对镜头进行控制,同时被摄对象往往是真实的场景及人物与纯虚拟的环境不同。
144.基于此,本技术实施例提供一种虚拟相机的控制方法,该方法主要是基于虚拟人(即前文中的虚拟对象)的空间信息自动控制虚拟相机的镜头景别的方法。其中,虚拟人的空间信息是指虚拟场景中虚拟对象关联的人体模型的骨骼运动信息。该方法能够在虚拟人表演、直播中根据虚拟人模型快速设置摄影机机位以完成不同景别下的画面采集。另外,还能够兼容不同虚幻引擎中多种虚拟人的骨骼结构的组成方式及相应的骨架层级结构,针对遵守骨骼资源规则、不遵守骨骼资源规则等各种虚拟人的资产内容都可以进行自动化景别计算,快速进行虚拟摄影机镜头取景操作。
145.从技术侧说明本技术实施例提供的虚拟相机的控制方法,参见图13,图13是本技术实施例提供的虚拟相机控制方法的整体流程图,具体实现过程如下:1、1.输入目标景别,执行步骤2、标准骨骼资产检测,当虚拟场景中存在标准骨骼资产时,执行步骤3.1、标准骨骼资产下骨骼资源读取,当虚拟场景中不存在标准骨骼资产时,执行步骤3.2、非标准骨骼资产切换人体姿态识别,基于步骤3.1或步骤3.2得到相应的虚拟人的骨骼信息之后,执行步骤4、根据目标景别获取相应的骨骼信息,此时获取的是目标景别相适配的骨骼信息(即前文中的目标骨骼),最后执行步骤5、创建摄影机动画序列,这里的摄影机即前文中的虚拟相机。在实际实施时,针对虚拟相机的控制方法的实现过程主要分为骨骼结构检测模块,摄影机的设置及景别的选择模块,自动化景别轨迹生成模块。
146.首先,针对骨骼结构检测模块的实现进行说明。参见图14,图14是本技术实施例提供的骨骼结构检测方法流程图,在实施实施时,用于制作虚拟场景的虚幻引擎通常会提供标准骨骼资产的命名、标准骨骼资产的架构及每根骨骼的规范名称,标准骨骼资产可以分为skeletal mesh actor与character两种资产类型,非标准骨骼资产可能会有基于虚幻引擎的blueprint功能自建的bp对象、基于c++自建的其他未知虚拟人等,上述不同类型的骨骼资产均能实现带有骨骼、可以由实时或离线动画数据驱动的虚拟人(即前文中的虚拟对象),虚拟人关联有人体模型。因此在进行骨骼资产检测时先行检测虚拟场景中是否有以上四类骨骼资产,这里骨骼资产即前文中的骨骼资源。
147.以虚幻引擎unreal为例,在基于该虚幻引擎所渲染地虚拟场景中能够检测到actor、character、bp三种骨骼资产对象,这三类资产往往由以下的层级结构组成,参见图15,图15是本技术实施例提供的不同类型的骨骼资产结构图,图中示出的是一个名称为tpose的骨骼资产skeletal mesh actor。面向上述三种对象搜索类型为skeletal mesh component的组件,该组件是唯一能够作为骨骼资产构成的组件。对虚幻引擎中骨骼树的结构进行说明,参见图16,图16是本技术实施例提供的骨骼树结构示意图,图中编号1示出的是character类型的骨骼组件的骨骼树的结构,图中编号2示出的是skeletal mesh actor中骨骼组件的骨骼树的结构。虚拟人的运动数据通过赋予人体模型中每一个骨骼点位置及旋转信息驱动骨骼运动从而带动虚拟人进行运动。因此每个单独骨骼的位置旋转数据都能够进行读写操作。
148.在实施实施时,当虚幻引擎在虚拟场景中无法检测到上述不同类型的对象及骨骼组件时,还可以基于计算机视觉的open pose对虚拟场景中的虚拟人对象进行人体关键点
检测,从而得到虚拟对象不同骨骼的位置及旋转数据。其中,open pose算法形成的骨骼模型如图6中编号1所示,在虚拟场景中实时检测到虚拟人对象的骨骼如图6中编号2所示,虚幻引擎基于得到的骨骼即可读取到非标准对象的骨骼点信息。
149.针对虚拟相机设置及景别选择模块进行说明。参见图17,图17是本技术实施例提供的虚拟相机设置及景别选择流程图,实现过程如下:执行步骤1、虚拟摄影机设置,其中,虚拟摄影机设置包括摄影机对象选择、摄影机靶面选择以及摄影机焦距设置,执行步骤2、景别选择,其中,景别选择包括从特写、近景、中景、全景以及远景选择目标景别,并根据选择的目标景别获取虚拟人的相应骨骼的位置,如特写对应肩部骨骼、近景对应胸部骨骼、中景对应胯部骨骼等;在确定虚拟摄影机的相关设置以及与目标景别对应的骨骼位置后,执行步骤3、确定摄影机距被摄虚拟人的距离,并执行步骤4、获取被摄虚拟人在世界坐标系中的朝向,执行步骤5、计算摄影机在世界坐标系中的位置(即前文中的目标相机机位),需要说明的是,步骤1和步骤2的执行没有先后关系、步骤3和步骤4的执行也没有先后关系。
150.在实际实施时,虚拟摄影机(即前文中的虚拟相机)是计算机世界坐标系下对真实摄影机的模拟,控制摄影机的参数由摄影机内参与摄影机外参两部分组成。摄影机内参包括焦点、焦距、摄影机靶面、摄影机畸变参数等组成,摄影机外参是指摄影机的旋转及位移等信息。摄影机的景别主要由摄影机拍摄对象在摄影机画面中占有的比例进行区分,景别可包括特写、近景、中景、全景、远景五个摄影机景别等,可参见图4示出的景别可视化示意图。
151.在实际实施时,摄影机的景别由摄影机的靶面、摄影机的焦距及摄影机距被摄对象的距离决定。接收摄影机的靶面sensor
width
*sensor
height
、焦距f及目标景别,通过上述三个信息参数,自动计算摄影机距被摄对象的距离,通过该距离计算出摄影机在世界坐标系中的位置信息及旋转信息,从而确定摄影机的外参,完成自动化取景的操作。
152.对不同景别下摄影机在世界坐标系中的位置计算方式进行说明,设模型锚点为中心,位置为m(x1,y1,z1),模型高度为h,对应骨骼距头顶为l,摄影机距模型的距离为d,摄影机的位置为c(x2,y2,z2)。景别为特写时,画面最下方卡到肩部以上位置,肩部骨骼距头顶l,则摄影机距离模型摄影机坐标值为c(x2,y2,z2)=(x1,y1+d,z1);景别为近景时,画面最下方卡到胸部位置,胸骨骼距头顶l,则摄影机距离模型摄影机坐标值为c(x2,y2,z2)=(x1,y1+d,z1);景别为中景时,画面最下方卡到跨部位置,胯骨骨骼距头顶l,则摄影机距离模型摄影机坐标值为c(x2,y2,z2)=(x1,y1+d,z1);景别为全景时,拍摄对象从头到脚的画面,模型高度h,因全景时没有明确的范围限制,所以在计算时可取1-1.5倍模型高度范围中任意值作为全景时的计算标准,以1.2h为例:则摄影机
距离模型摄影机坐标值为c(x2,y2,z2)=(x1,y1+d,z1);景别为远景时,摄影机距离不固定,距离被摄物体较大,例如d=5h等,摄影机坐标值为c(x2,y2,z2)=(x1,y1+5d,z1)。
153.继续针对自动化景别轨迹生成模块进行说明。参见图18,图18是本技术实施例提供的虚拟相机的动画序列创建流程图,该模块主要作用为创建摄影机动画资产及其参数的设定。首先执行步骤1、创建动画序列资产,利用资产工具选择动画序列资产进行创建为主动画序列,同时设置该资产保存的路径及资产名称。接着执行步骤2、选择摄影机,并针对选中的摄影机,执行步骤2.1创建摄影机动画资产序列;当存在多个摄影机时,执行步骤2.2、创建摄影机镜头切换序列,将该资产与主动画序列放置在统一文件目录下,将子动画序列嵌套至主动画序列中。完成对多个摄影机进行自动景别设置时,将产生多个摄影机子动画序列资产包含在主动画序列中,设置子动画序列的起始时间即可完成不同摄影机景别的切换。执行步骤3、定义摄影机运动轨迹参数,主要包括执行步骤4.1创建摄影机焦距轨道,和执行步骤4.2创建摄影机变换轨道,在实际实施时,自动控制虚拟摄影机镜头景别的工具产生的摄影机自动化序列主要有摄影机焦距轨道及摄影机变换轨道。其中摄影机焦距轨道由前文用户输入的摄影机焦距来确定,用户输入焦距值为该轨道的默认值。根据前文中计算得出的摄影机距被摄对象的距离及被摄物体的旋转方向计算出摄影机在世界坐标系下位置及朝向设置摄影机的变换轨道。最后,参见图19,图19是本技术实施例提供的虚拟相机的采集画面示意图,图中,示出的是虚拟相机在目标景别为近景时针对虚拟人的采集画面。
154.应用本技术上述实施例,具有以下有益效果:
155.1)主要着眼于在虚拟人表演、直播等纯虚拟或以虚拟场景为主的环境,能够在虚拟环境中,根据虚拟人模型快速设置摄影机机位完成不同景别镜头设计的方法。不需要根据摄影机的预览视图去人工调整摄影机的机位与参数,根据简单的摄影机选择、靶面设置、焦距设置及景别选择即可自动化生成相应的摄影机动画序列。
156.2)在不同三维制作软件、三维渲染引擎中骨架资源的名称及定义没有统一且固定的规范,能够兼容三维实时引擎下多种虚拟人对象的结构组成方式及骨架层级结构,针对遵守骨架资源规则、不遵守骨架资源规则等各种虚拟人资产内容都可以进行自动化景别计算,具有高自动化、强应用性。同时,能够快速进行虚拟摄影机镜头取景操作。
157.需要指出,在本技术实施例中,若虚拟场景中涉及到与用户的属性相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
158.下面继续说明本技术实施例提供的虚拟相机的控制装置555的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器550的虚拟相机的控制装置555中的软件模块可以包括:
159.获取模块5551,用于获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别;其中,所述目标景别,用于指示所述虚拟对象的不同部位在所述虚拟相机的采集画面中占据的比例;
160.确定模块5552,用于基于所述目标景别以及所述骨骼运动数据,确定所述虚拟相机对应所述目标景别的目标相机机位;
161.控制模块5553,用于基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的目标画面。
162.在一些实施例中,所述确定模块,还用于获取所述虚拟对象在所述虚拟场景中的位置,并获取所述虚拟相机的靶面高度以及所述虚拟相机的焦距;从所述虚拟对象的骨骼中选择与所述目标景别相适配的目标骨骼;其中,所述目标骨骼为,当所述虚拟相机基于所述目标景别对所述虚拟对象进行画面采集时,采集到的所述虚拟对象的最低部位的骨骼;基于所述位置信息、所述目标骨骼的骨骼运动数据、所述靶面高度以及所述焦距,确定所述虚拟相机对应所述目标景别的目标相机机位。
163.在一些实施例中,所述确定模块,还用于基于所述目标骨骼的骨骼运动数据,确定所述目标骨骼与所述虚拟对象的头部的骨骼之间的高度;基于所述高度、所述靶面高度、所述焦距,确定所述虚拟相机至所述虚拟对象的距离;基于所述位置以及所述距离,确定所述虚拟相机对应所述目标景别的目标相机机位。
164.在一些实施例中,所述确定模块,还用于获取所述靶面高度与所述焦距之间的比值;确定所述高度的一半与所述比值之间的乘积,并将所述乘积作为所述虚拟相机至所述虚拟对象的距离。
165.在一些实施例中,所述确定模块,还用于获取所述位置相对于世界坐标系的第一方向的第一分量、相对于世界坐标系的第二方向的第二分量、相对于世界坐标系的第三方向的第三分量;其中,所述第一方向、所述第二方向及所述第三方向中,任意两个方向间互相垂直;对所述第二分量与所述距离进行加权求和,得到所述虚拟相机相对于所述世界坐标系的第二方向的目标分量;基于所述第一分量、目标分量以及所述第三分量,确定所述虚拟相机对应所述目标景别的目标相机机位。
166.在一些实施例中,所述确定模块,还用于当所述目标景别为特写时,从所述虚拟对象的肩部的至少一个骨骼中,选择与所述特写相适配的目标骨骼;当所述目标景别为近景时,从所述虚拟对象的胸部的至少一个骨骼中,选择与所述近景相适配的目标骨骼;当所述目标景别为中景时,从所述虚拟对象的胯部的至少一个骨骼中,选择与所述中景相适配的目标骨骼;
167.相应的,在一些实施例中,所述控制模块,还用于基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象的所述目标骨骼至头部顶端之间的部位进行画面采集,得到包括所述虚拟对象的目标画面。
168.在一些实施例中,当所述目标景别为全景时,所述确定模块,还用于获取所述虚拟对象在所述虚拟场景中的位置、以及所述虚拟对象的高度,并获取所述虚拟相机的靶面高度以及所述虚拟相机的焦距;基于所述高度,确定与所述全景相适配的参考高度;获取所述靶面高度与所述焦距之间的比值;基于所述参考高度及所述比值,确定所述虚拟相机对应所述目标景别的目标相机机位。
169.在一些实施例中,所述获取模块,还用于显示供选择的至少一个景别,所述景别包括以下至少之一:特写、近景、中景、全景以及远景;响应于针对所述至少一个景别的景别选择操作,将所选择的景别确定目标景别。
170.在一些实施例中,所述获取模块,还用于对所述虚拟场景中的虚拟资源进行检测,得到检测结果;当检测结果表征所述虚拟资源中包括用于创建虚拟对象的骨骼的骨骼资源
时,基于所述骨骼资源,创建虚拟场景中虚拟对象的骨骼,并对所述骨骼的骨骼运动数据进行初始化,得到所述虚拟对象的骨骼所对应的骨骼运动数据。
171.在一些实施例中,所述获取模块,还用于当检测结果表征所述虚拟资源中不存在用于创建虚拟对象的骨骼的骨骼资源时,对所述虚拟场景中的虚拟对象进行人体骨骼关键点检测,得到携带骨骼信息的骨骼关键点,并基于所述骨骼关键点,确定相应骨骼的骨骼运动数据。
172.在一些实施例中,所述虚拟相机的控制还包括创建模块,在控制所述虚拟相机对所述虚拟对象进行画面采集之前,所述创建模块,用于获取所述虚拟相机的初始景别,并创建与所述初始景别相适配的所述虚拟相机的第一动画序列;其中,所述第一动画序列,用于表征在所述虚拟相机基于所述初始景别对所述虚拟对象进行画面采集的过程中,所述虚拟相机在所述虚拟场景中的运动过程;
173.相应的,在一些实施例中,所述创建模块,还用于确定从基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集的时间点,并从所述时间点开始,创建所述虚拟相机与所述目标景别相适配的第二动画序列;将所述第一动画序列以及所述第二动画序列进行合并,得到所述虚拟相机的目标动画序列,所述目标动画序列用于渲染得到所述虚拟场景。
174.在一些实施例中,所述调整模块,还用于接收到景别切换指令,对所述目标相机机位进行调整,得到调整后的相机机位;基于所述调整后的相机机位,重新控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的新的目标画面。
175.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本技术实施例上述的虚拟相机的控制方法。
176.本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的虚拟相机的控制方法,例如,如图3示出的虚拟相机的控制方法。
177.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、ep rom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
178.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
179.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
180.作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备
上执行。
181.综上所述,通过本技术实施例具有以下有益效果:结合虚拟相机的焦距、靶面尺寸、以及虚拟相机的目标景别,自动计算虚拟相机在目标景别下的目标相机机位,并生成相应的虚拟相机的动画序列,如此,在虚拟相机的景别发生变化时,不需要根据虚拟相机的预览视图去人工调整虚拟相机的机位与参数,根据靶面设置、焦距的设置及景别的选择即可自动化生成虚拟相机的目标机位,以及相应的动画序列,有效降低虚拟相机的操作复杂度,简化景别变化时虚拟相机的控制操作。另外,在进行景别自动设置的同时考虑多种形式的骨骼资源,具有高自动化、强应用性。
182.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。

技术特征:
1.一种虚拟相机的控制方法,其特征在于,所述方法包括:获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别;其中,所述目标景别,用于指示所述虚拟对象的不同部位在所述虚拟相机的采集画面中占据的比例;基于所述目标景别以及所述骨骼运动数据,确定所述虚拟相机对应所述目标景别的目标相机机位;基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的目标画面。2.如权利要求1所述的方法,其特征在于,所述基于所述目标景别以及所述骨骼运动数据,确定所述虚拟相机对应所述目标景别的目标相机机位,包括:获取所述虚拟对象在所述虚拟场景中的位置信息,并获取所述虚拟相机的靶面高度以及所述虚拟相机的焦距;从所述虚拟对象的骨骼中选择与所述目标景别相适配的目标骨骼;其中,所述目标骨骼为,当所述虚拟相机基于所述目标景别对所述虚拟对象进行画面采集时,采集到的所述虚拟对象的最低部位的骨骼;基于所述位置信息、所述目标骨骼的骨骼运动数据、所述靶面高度以及所述焦距,确定所述虚拟相机对应所述目标景别的目标相机机位。3.如权利要求2所述的方法,其特征在于,所述基于所述位置信息、所述目标骨骼的骨骼运动数据、所述靶面高度以及所述焦距,确定所述虚拟相机对应所述目标景别的目标相机机位,包括:基于所述目标骨骼的骨骼运动数据,确定所述目标骨骼与所述虚拟对象的头部的骨骼之间的高度;基于所述高度、所述靶面高度、所述焦距,确定所述虚拟相机至所述虚拟对象的距离;基于所述位置以及所述距离,确定所述虚拟相机对应所述目标景别的目标相机机位。4.如权利要求3所述的方法,其特征在于,所述基于所述高度、所述靶面高度、所述焦距,确定所述虚拟相机至所述虚拟对象的距离,包括:获取所述靶面高度与所述焦距之间的比值;确定所述高度的一半与所述比值之间的乘积,并将所述乘积作为所述虚拟相机至所述虚拟对象的距离。5.如权利要求3所述的方法,其特征在于,所述基于所述位置以及所述距离,确定所述虚拟相机对应所述目标景别的目标相机机位,包括:获取所述位置相对于世界坐标系的第一方向的第一分量、相对于世界坐标系的第二方向的第二分量、相对于世界坐标系的第三方向的第三分量;其中,所述第一方向、所述第二方向及所述第三方向中,任意两个方向间互相垂直;对所述第二分量与所述距离进行加权求和,得到所述虚拟相机相对于所述世界坐标系的第二方向的目标分量;基于所述第一分量、目标分量以及所述第三分量,确定所述虚拟相机对应所述目标景别的目标相机机位。
6.如权利要求2所述的方法,其特征在于,所述从所述虚拟对象的骨骼中选择与所述目标景别相适配的目标骨骼,包括:当所述目标景别为特写时,从所述虚拟对象的肩部的至少一个骨骼中,选择与所述特写相适配的目标骨骼;当所述目标景别为近景时,从所述虚拟对象的胸部的至少一个骨骼中,选择与所述近景相适配的目标骨骼;当所述目标景别为中景时,从所述虚拟对象的胯部的至少一个骨骼中,选择与所述中景相适配的目标骨骼;所述基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的目标画面,包括:基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象的所述目标骨骼至头部顶端之间的部位进行画面采集,得到包括所述虚拟对象的目标画面。7.如权利要求1所述的方法,其特征在于,当所述目标景别为全景时,所述基于所述目标景别以及所述骨骼运动数据,确定所述虚拟相机对应所述目标景别的目标相机机位,包括:获取所述虚拟对象在所述虚拟场景中的位置、以及所述虚拟对象的高度,并获取所述虚拟相机的靶面高度以及所述虚拟相机的焦距;基于所述高度,确定与所述全景相适配的参考高度;获取所述靶面高度与所述焦距之间的比值;基于所述参考高度及所述比值,确定所述虚拟相机对应所述目标景别的目标相机机位。8.如权利要求1所述的方法,其特征在于,所述获取虚拟相机对应的目标景别,包括:显示供选择的至少一个景别,所述景别包括以下至少之一:特写、近景、中景、全景以及远景;响应于针对所述至少一个景别的景别选择操作,将所选择的景别确定为目标景别。9.如权利要求1所述的方法,其特征在于,所述获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,包括:对所述虚拟场景中的虚拟资源进行检测,得到检测结果;当检测结果表征所述虚拟资源中包括用于创建虚拟对象的骨骼的骨骼资源时,基于所述骨骼资源,创建虚拟场景中虚拟对象的骨骼,并对所述骨骼的骨骼运动数据进行初始化,得到所述虚拟对象的骨骼所对应的骨骼运动数据。10.如权利要求9所述的方法,其特征在于,所述方法还包括:当检测结果表征所述虚拟资源中不存在用于创建虚拟对象的骨骼的骨骼资源时,对所述虚拟场景中的虚拟对象进行人体骨骼关键点检测,得到携带骨骼信息的骨骼关键点,并基于所述骨骼关键点,确定相应骨骼的骨骼运动数据。11.如权利要求1所述的方法,其特征在于,在控制所述虚拟相机对所述虚拟对象进行画面采集之前,所述方法还包括:获取所述虚拟相机的初始景别,并创建与所述初始景别相适配的所述虚拟相机的第一动画序列;
其中,所述第一动画序列,用于表征在所述虚拟相机基于所述初始景别对所述虚拟对象进行画面采集的过程中,所述虚拟相机在所述虚拟场景中的运动过程;所述方法还包括:确定从基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集的时间点,并从所述时间点开始,创建所述虚拟相机与所述目标景别相适配的第二动画序列;将所述第一动画序列以及所述第二动画序列进行合并,得到所述虚拟相机的目标动画序列,所述目标动画序列用于渲染得到所述虚拟场景。12.如权利要求1所述的方法,其特征在于,所述方法还包括:接收到景别切换指令,对所述目标相机机位进行调整,得到调整后的相机机位;基于所述调整后的相机机位,重新控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的新的目标画面。13.一种虚拟相机的控制装置,其特征在于,所述装置包括:获取模块,用于获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别;其中,所述目标景别,用于指示所述虚拟对象的不同部位在所述虚拟相机的采集画面中占据的比例;确定模块,用于基于所述目标景别以及所述骨骼运动数据,确定所述虚拟相机对应所述目标景别的目标相机机位;控制模块,用于基于所述目标相机机位,控制所述虚拟相机对所述虚拟对象进行画面采集,得到包括所述虚拟对象的目标画面。14.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的虚拟相机的控制方法。15.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时,实现权利要求1至12任一项所述的虚拟相机的控制方法。16.一种计算机程序产品,包括计算机程序或计算机可执行指令,其特征在于,所述计算机程序或计算机可执行指令被处理器执行时,实现权利要求1至12任一项所述的虚拟相机的控制方法。

技术总结
本申请提供了一种虚拟相机的控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品,包括:获取虚拟场景中虚拟对象的骨骼所对应的骨骼运动数据,并获取虚拟相机对应的目标景别;目标景别,用于指示虚拟对象的不同部位在虚拟相机的采集画面中占据的比例;基于目标景别和骨骼运动数据,确定虚拟相机对应目标景别的目标相机机位;基于目标相机机位,控制虚拟相机对虚拟对象进行画面采集,得到包括虚拟对象的目标画面。通过本申请,能够实现虚拟相机的快速定位,从而快速进行虚拟相机的画面采集操作。面采集操作。面采集操作。


技术研发人员:李想
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2023.01.03
技术公布日:2023/7/26
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐