CN114385015B - 虚拟对象的控制方法及电子设备 - Google Patents
虚拟对象的控制方法及电子设备 Download PDFInfo
- Publication number
- CN114385015B CN114385015B CN202210089218.3A CN202210089218A CN114385015B CN 114385015 B CN114385015 B CN 114385015B CN 202210089218 A CN202210089218 A CN 202210089218A CN 114385015 B CN114385015 B CN 114385015B
- Authority
- CN
- China
- Prior art keywords
- coordinate system
- virtual object
- position information
- virtual
- display screen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000003993 interaction Effects 0.000 claims description 18
- 238000012216 screening Methods 0.000 claims description 13
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 210000003128 head Anatomy 0.000 description 7
- 239000000470 constituent Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 210000003811 finger Anatomy 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000004418 eye rotation Effects 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000004936 left thumb Anatomy 0.000 description 1
- 238000010295 mobile communication Methods 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
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
Abstract
一种虚拟对象的控制方法,包括:获取面对显示屏的至少一个实体对象在第一坐标系的位置信息,第一坐标系以图像采集器所在平面的一个位置为原点;根据第一坐标系与第二坐标系之间的关系、以及至少一个实体对象在第一坐标系的位置信息,确定至少一个实体对象在第二坐标系的位置信息,第二坐标系以显示屏所在平面的一个位置为原点;根据至少一个实体对象在第二坐标系的位置信息、以及显示屏显示的虚拟对象在第二坐标系的位置信息,从至少一个实体对象中确定出与虚拟对象存在交互的实体对象作为目标对象;根据目标对象在第二坐标系的位置信息和虚拟对象在第二坐标系的位置信息,确定虚拟对象的注视方向。
Description
技术领域
本文涉及但不限于人机交互技术领域,尤指一种虚拟对象的控制方法及电子设备。
背景技术
随着科技的不断发展,计算机将越来越广泛地应用到多个领域。如何提高人机交互中的用户体验是一个重点。比如,目前电子设备显示的虚拟三维角色的眼睛都是不动的,或者按照预设的动作变化,导致虚拟三维角色的目光呆滞,互动性不强,从而影响用户体验。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本公开实施例提供一种虚拟对象的控制方法及电子设备。
一方面,本公开实施例提供一种虚拟对象的控制方法,包括:获取面对显示屏的至少一个实体对象在第一坐标系的位置信息,所述第一坐标系以图像采集器所在平面的一个位置为原点;根据第一坐标系与第二坐标系之间的关系、以及所述至少一个实体对象在第一坐标系的位置信息,确定至少一个实体对象在第二坐标系的位置信息,所述第二坐标系以显示屏所在平面的一个位置为原点;根据至少一个实体对象在第二坐标系的位置信息、以及所述显示屏显示的虚拟对象在第二坐标系的位置信息,从所述至少一个实体对象中确定出与所述虚拟对象存在交互的实体对象作为目标对象;根据所述目标对象在第二坐标系的位置信息和所述虚拟对象在第二坐标系的位置信息,确定所述虚拟对象的注视方向。
在一些示例性实施方式中,所述根据第一坐标系与第二坐标系之间的关系、以及所述至少一个实体对象在第一坐标系下的位置信息,确定至少一个实体对象在第二坐标系下的位置信息,包括:针对任一实体对象,根据所述第一坐标系到第二坐标系的转换矩阵与所述实体对象在第一坐标系的坐标的乘积,确定所述实体对象在第二坐标系的坐标。
在一些示例性实施方式中,所述根据所述至少一个实体对象在第二坐标系的位置信息、以及所述显示屏显示的虚拟对象在第二坐标系的位置信息,从所述至少一个实体对象中确定出与所述虚拟对象存在交互的实体对象作为目标对象,包括:针对所述显示屏显示的任一虚拟对象,根据所述至少一个实体对象在第二坐标系的位置信息、以及所述虚拟对象在第二坐标系的位置信息,筛选出满足以下条件的实体对象作为第一候选对象:实体对象至所述虚拟对象的头部的向量与所述实体对象在所述第二坐标系面对的正方向之间的夹角小于第一阈值。
在一些示例性实施方式中,所述根据所述至少一个实体对象在第二坐标系的位置信息、以及所述显示屏显示的虚拟对象在第二坐标系的位置信息,从所述至少一个实体对象中确定出与所述虚拟对象存在交互的实体对象作为目标对象,还包括:当筛选出的第一候选对象的数目大于或等于1,根据所述第一候选对象在第二坐标系的位置信息,筛选出与所述虚拟对象之间的距离小于或等于第二阈值的第一候选对象作为第二候选对象;当筛选出的第二候选对象的数目等于1,则确定所述第二候选对象为与所述虚拟对象存在交互的目标对象;当筛选出的第二候选对象的数目大于1,则筛选出与所述虚拟对象之间的距离最小的第二候选对象作为与所述虚拟对象存在交互的目标对象。
在一些示例性实施方式中,所述根据所述目标对象在第二坐标系的位置信息和所述虚拟对象在第二坐标系的位置信息,确定所述虚拟对象的注视方向,包括:根据所述目标对象在第二坐标系的位置信息和所述虚拟对象的一个眼睛在第二坐标系的位置信息,确定所述虚拟对象的所述一个眼睛的欧拉角。
在一些示例性实施方式中,所述一个眼睛的欧拉角的偏航角的范围为-30度至30度,俯仰角的范围为-15度至15度。
在一些示例性实施方式中,根据所述目标对象在第二坐标系的位置信息和所述虚拟对象的所述一个眼睛在第二坐标系的位置信息,确定所述虚拟对象的所述一个眼睛的欧拉角,包括:根据所述目标对象在第二坐标系下的位置信息和所述虚拟对象的一个眼睛在第二坐标系下的位置信息,计算所述一个眼睛和所述目标对象形成的矢量;将所述矢量转换为四元数;基于所述四元数,确定所述虚拟对象的所述一个眼睛的欧拉角。
在一些示例性实施方式中,本实施例的控制方法还包括:当没有检测到与所述虚拟对象交互的目标对象,控制所述显示屏显示的虚拟对象正视前方,或者控制所述虚拟对象的注视方向按照设定轨迹变化。
另一方面,本公开实施例提供一种电子设备,包括:显示屏、图像采集器、存储器和处理器。所述显示屏、所述图像采集器和所述存储器均与所述处理器连接。所述显示屏配置为显示虚拟对象,所述图像采集器配置为采集面对所述显示屏的实体对象的数据。所述存储器适于存储计算机程序,所述计算机程序被所述处理器执行时实现如上所述的虚拟对象的控制方法的步骤。
另一方面,本公开实施例还提供一种非瞬态计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时实现如上所述的虚拟对象的控制方法的步骤。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
附图用来提供对本公开技术方案的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开的技术方案的限制。附图中一个或多个部件的形状和大小不反映真实比例,目的只是示意说明本公开内容。
图1为本公开至少一实施例的虚拟对象的控制方法的流程图;
图2为本公开至少一实施例的一种应用场景示意图;
图3为本公开至少一实施例的虚拟对象的控制方法的示例性流程图;
图4为本公开至少一实施例的实体对象至虚拟对象的头部的向量F2与实体对象在第二坐标系面对的正方向F1之间的夹角示意图;
图5为本公开至少一实施例的虚拟对象与目标对象的交互示意图;
图6为本公开至少一实施例的电子设备的一种示意图。
具体实施方式
下面将结合附图对本公开实施例进行详细说明。实施方式可以以多个不同形式来实施。所属技术领域的普通技术人员可以很容易地理解一个事实,就是方式和内容可以在不脱离本公开的宗旨及其范围的条件下被变换为一种或多种形式。因此,本公开不应该被解释为仅限定在下面的实施方式所记载的内容中。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。
在附图中,有时为了明确起见,夸大表示了一个或多个构成要素的大小、层的厚度或区域。因此,本公开的一个方式并不一定限定于该尺寸,附图中多个部件的形状和大小不反映真实比例。此外,附图示意性地示出了理想的例子,本公开的一个方式不局限于附图所示的形状或数值等。
本公开中的“第一”、“第二”、“第三”等序数词是为了避免构成要素的混同而设置,而不是为了在数量方面上进行限定的。本公开中的“多个”表示两个或两个以上的数量。
在本公开中,为了方便起见,使用“中部”、“上”、“下”、“前”、“后”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示方位或位置关系的词句以参照附图说明构成要素的位置关系,仅是为了便于描述本说明书和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。构成要素的位置关系根据描述构成要素的方向适当地改变。因此,不局限于在说明书中说明的词句,根据情况可以适当地更换。
在本公开中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解。例如,可以是固定连接,或可拆卸连接,或一体地连接;可以是机械连接,或电连接;可以是直接相连,或通过中间件间接相连,或两个元件内部的连通。对于本领域的普通技术人员而言,可以根据情况理解上述术语在本公开中的含义。
下面对本实施例的一些术语进行解释说明。
Unity:一款三维游戏引擎,可以用来开发三维游戏和三维软件,也称为Unity3D(简称U3D)。
四元数:由爱尔兰数学家哈密顿在1843年发明的数学概念,四元数是复数的不可交换延伸。若把四元数的集合考虑成多维实数空间,则四元数代表着一个四维空间,相对于复数为二维空间。
骨骼动画:结合模型结构的一种动画。
欧拉角:用来唯一确定定点转动刚体位置的三个一组独立角参量。绕欧拉角向量的Y轴旋转的角度为偏航角,绕欧拉角向量的X轴旋转的角度为俯仰角,绕欧拉角向量的Z轴旋转的角度为翻滚角。
笛卡尔坐标系:三条数轴互相垂直的笛卡尔坐标系被称为空间笛卡尔直角坐标系,这里简称笛卡尔坐标系。
左手坐标系:是指在空间直角坐标系中,让左手拇指指向X轴的正方向,食指指向Y轴的正方向,如果中指能指向Z轴的正方向,则称这个坐标系为左手直角坐标系。反之则是右手直角坐标系。
图1为本公开至少一实施例的虚拟对象的控制方法的流程图。如图1所示,本实施例的虚拟对象的控制方法可以包括以下步骤:
步骤101、获取面对显示屏的至少一个实体对象在第一坐标系的位置信息;
步骤102、根据第一坐标系与第二坐标系之间的关系、以及至少一个实体对象在第一坐标系的位置信息,确定至少一个实体对象在第二坐标系的位置信息;
步骤103、根据至少一个实体对象在第二坐标系的位置信息、以及显示屏显示的虚拟对象在第二坐标系的位置信息,从至少一个实体对象中确定出与虚拟对象存在交互的实体对象作为目标对象;
步骤104、根据目标对象在第二坐标系的位置信息和虚拟对象在第二坐标系的位置信息,确定虚拟对象的注视方向。
本实施例提供的虚拟对象的控制方法可以由具有显示功能和图像采集功能的电子设备执行。图2为本公开至少一实施例的一种应用场景示意图。如图2所示,电子设备可以至少包括:显示屏10和图像采集器12。显示屏10可以配置为显示虚拟对象20,图像采集器12配合为采集面对显示屏10的实体对象21的数据。例如,显示屏10和图像采集器12可以集成设置,或者显示屏10和图像采集器12可以分开设置,并通过连接线电连接或通过无线方式进行通信。然而,本实施例对此并不限定。
在一些示例性实施方式中,虚拟对象可以包括:虚拟三维人物、虚拟三维动物、或者虚拟三维机器人。例如,虚拟对象可以是美术制作软件(例如,3DMax、Maya等)中制作的模型文件。实体对象可以包括人体。然而,本实施例对此并不限定。例如,虚拟对象可以包括其他具有眼睛的三维虚拟对象。实体对象可以包括其他具有眼睛的生物,例如动物。
在一些示例性实施方式中,第一坐标系以图像采集器所在平面的一个位置为原点。第二坐标系以显示屏所在平面的一个位置为原点。例如,第一坐标系以图像采集器的几何中心为原点,第二坐标系以显示屏的几何中心为原点。如图2所示,图像采集器12位于显示屏10的上方。第一坐标系C0是以图像采集器12的中心位置为原点的三维坐标系,第二坐标系C1是以显示屏10的中心位置为原点的三维坐标系。例如,第一坐标系C0的X轴与水平面平行,第一坐标系C0的Y轴垂直于水平面,第一坐标系C0的Z轴垂直于第一坐标系C0的X轴和Y轴所确定的平面。第二坐标系C1的X轴与水平面平行,第二坐标系C1的Y轴垂直于水平面,第二坐标系C1的Z轴垂直于第二坐标系C1的X轴和Y轴所确定的平面。然而,本实施例对此并不限定。
本实施例提供的虚拟对象的控制方法,可以根据与虚拟对象存在交互的目标对象的位置信息,来确定虚拟对象的注视方向,从而达到虚拟对象注视目标对象的效果。本实施例通过考虑第一坐标系和第二坐标系之间的关系,可以精准地控制虚拟对象的注视方向,可以增加目标对象和虚拟对象之间的现实与虚拟的互动性,增加交互趣味性。而且,本实施例的实现方式造价低,实现简单,应用方便。
在一些示例性实施方式中,步骤102可以包括:针对任一实体对象,根据第一坐标系到第二坐标系的转换矩阵与所述实体对象在第一坐标系的坐标的乘积,确定所述实体对象在第二坐标系的坐标。在一些示例中,第一坐标系到第二坐标系的转换矩阵可以利用测量得到的图像采集器的中心与显示屏的中心的相对位置和角度来计算得到。然而,本实施例对此并不限定。在本示例中,通过考虑第一坐标系和第二坐标系之间的位置关系,可以得到实体对象的精准位置结果,从而有利于后续准确控制虚拟对象的注视方向。
在一些示例性实施方式中,步骤103可以包括:针对显示屏显示的任一虚拟对象,根据至少一个实体对象在第二坐标系的位置信息、以及所述虚拟对象在第二坐标系的位置信息,筛选出满足以下条件的实体对象作为第一候选对象:实体对象至所述虚拟对象的头部的向量与所述实体对象在第二坐标系面对的正方向之间的夹角小于第一阈值。在一些示例中,以实体对象为人体为例,实体对象在第二坐标系面对的正方向可以与人脸所在平面垂直,并经过人脸的两眼连线的中心点。例如,第一阈值可以约为35度至45度,比如可以约为40度。然而,本实施例对此并不限定。
在一些示例性实施方式中,步骤103还可以包括:当筛选出的第一候选对象的数目大于或等于1,根据第一候选对象在第二坐标系下的位置信息,筛选出与虚拟对象之间的距离小于或等于第二阈值的第一候选对象作为第二候选对象;当筛选出的第二候选对象的数目等于1,则确定所述第二候选对象为与虚拟对象存在交互的目标对象;当筛选出的第二候选对象的数目大于1,则筛选出与虚拟对象之间的距离最小的第二候选对象作为与所述虚拟对象存在交互的目标对象。在本示例中,可以筛选出面向虚拟对象并距离虚拟对象最近的第二候选对象作为与虚拟对象存在交互的目标对象,使得虚拟对象的眼神能够合理地重点关注。然而,本实施例对此并不限定。在另一些示例中,在筛选出的第一候选对象的数目为1时,可以将该筛选出的第一候选对象确定为与虚拟对象存在交互的目标对象。在另一些示例中,当显示屏显示多个虚拟对象时,可以按照步骤103依次确定与每个虚拟对象存在交互的目标对象。例如,同一个实体对象可以作为多个虚拟对象的目标对象,即实体对象和虚拟对象可以为一对多的关系;或者,实体对象和虚拟对象可以设置为一对一的关系。
在一些示例性实施方式中,步骤104可以包括:根据目标对象在第二坐标系的位置信息和虚拟对象的一个眼睛在第二坐标系的位置信息,确定虚拟对象的这个眼睛的欧拉角。在本示例中,通过虚拟对象的眼睛的欧拉角来控制虚拟对象的注视方向,使得虚拟对象的目光可以聚焦目标对象,从而提高用户体验。在一些示例中,虚拟对象可以包括至少两个眼睛,则按照步骤104依次确定每个眼睛的欧拉角。通过分别控制虚拟对象的两个眼睛跟随目标对象,可以更好地实现虚拟对象的目光聚焦效果,使得虚拟对象的眼神更自然,不会有目光无神的感觉,从而增加目标对象与虚拟对象之间的交互体验。
在一些示例性实施方式中,一个眼睛的欧拉角的偏航角的范围可以约为-30度至30度,俯仰角的范围可以约为-15度至15度。本示例中,通过对眼睛的欧拉角进行角度限制,可以达到较佳的眼睛转动效果,使得虚拟对象的眼神变化更自然。
在一些示例性实施方式中,本实施例的虚拟对象的控制方法还可以包括:当没有检测到与虚拟对象交互的目标对象,控制显示屏显示的虚拟对象正视前方,或者控制虚拟对象的注视方向按照设定轨迹变化。在本示例中,当没有与虚拟对象交互的目标对象时,可以按照设定轨迹来控制虚拟对象的眼睛。然而,本实施例对此并不限定。
下面通过一些示例对本实施例的虚拟对象的控制方法进行举例说明。下述实施例以虚拟对象为虚拟三维角色,实体对象为人体为例进行说明。本示例的虚拟对象的控制方法可以应用于电子设备。电子设备包括图像采集器(例如,摄像头)和显示屏(例如,液晶显示屏或者有机发光二极管显示屏等)。然而,本实施例对此并不限定。
图3为本公开至少一实施例的虚拟对象的控制方法的示例流程图。如图3所示,本示例的虚拟对象的控制方法可以包括以下步骤。
步骤301、获取实体对象的检测数据。
在一些示例中,电子设备获取的检测数据可以包括:检测到的面对显示屏的实体对象的人脸数据,人脸数据可以按照数组存储,数组的长度可以表示检测到的实体对象的数目。即,人脸数据的数组长度为零,说明没有实体对象面对显示屏;人脸数据的数组长度大于或等于1,则说明存在面对显示屏的实体对象。
在一些示例中,电子设备的图像采集器可以采用人脸检测算法获取面对显示屏的实体对象的人脸数据,并利用人脸数据得到实体对象在第一坐标系的位置信息。本实施例对于人脸检测算法并不限定,例如可以采用常规的人脸检测算法来实现。
步骤302、判断面对显示屏的实体对象的数目是否为零。
在一些示例中,根据电子设备获取到的人脸数据的数组长度来确定实体对象的数目。当人脸数据的数组长度为零,则返回步骤301,即继续通过图像采集器来检测实体对象;当人脸数据的数组长度大于或等于1,则执行步骤303。
步骤303、根据第一坐标系到第二坐标系的转换矩阵和实体对象在第一坐标系的位置信息,确定实体对象在第二坐标系的位置信息。
在本示例中,关于第一坐标系和第二坐标系的关系可以如图2所示,故于此不再赘述。实体对象在第一坐标系的位置信息可以包括:实体对象在第一坐标系的坐标;实体对象在第二坐标系的位置信息可以包括:实体对象在第二坐标系的坐标。
在一些示例中,可以通过测量得到图像采集器的中心到显示屏中心的位置向量P,第一坐标系与第二坐标系之间的相对角度R,然后,通过以下计算式可以得到第一坐标系到第二坐标系的转换矩阵:转换矩阵Mc2s=M-1;M=Matrix4x4.TRS(P,R,Vector3.one)。其中,Matrix4x4.TRS()为Unity中的标准函数,用于创建一个平移、旋转和缩放矩阵;Vector3.one为Unity中的标准参数,用于表征转换矩阵的缩放特征,例如可以为(1,1,1)。
在一些示例中,P1=Mc2s·P0;其中,P1为实体对象在第二坐标系的坐标,P0为实体对象在第一坐标系的坐标,Mc2s为第一坐标系到第二坐标系的转换矩阵。
在本示例中,在实体对象的位置信息的确定过程中,考虑了图像采集器和显示屏之间的位置差异,可以得到更精准的实体对象的位置信息,从而有利于准确调整虚拟对象的注视方向,进而有利于提高用户体验。
在一些示例性实施方式中,显示屏显示的虚拟对象的数目可以为至少一个。下面以一个虚拟对象为例说明虚拟对象的注视方向的调整过程。当虚拟对象的数目为至少两个时,可以按照单个虚拟对象的处理过程依次确定每个虚拟对象的注视方向。在一些示例中,显示屏显示的多个虚拟对象具有优先顺序,则可以按照优先顺序依次确定每个虚拟对象的注视方向。在另一些示例中,显示屏显示的多个虚拟对象不具有优先顺序,则可以按照随机顺序或者同时确定每个虚拟对象的注视方向。然而,本实施例对此并不限定。
步骤304、筛选出虚拟对象的第一候选对象。
在一些示例中,可以根据实体对象面对虚拟对象的角度来确定第一候选对象。其中,依次计算实体对象在第二坐标系下面对的正方向F1、以及实体对象至虚拟对象的头部的向量F2;计算F1和F2之间的夹角,并判断该夹角与第一阈值的大小关系。当实体对象的F1和F2之间的夹角小于第一阈值,则将该实体对象确定为第一候选对象;当实体对象的F1和F2之间的夹角大于或等于第一阈值,则筛除该实体对象,即判定该实体对象没有注视上述虚拟对象。
在一些示例中,实体对象在第二坐标系下面对的正方向F1=Mc2s·F0,其中,Mc2s为第一坐标系至第二坐标系的转换矩阵,F0为实体对象在第一坐标系面对的正方向。F0=R1·(0,0,1),其中,R1为实体对象在第一坐标系的人脸角度值。实体对象至虚拟对象的头部的向量F2=P2-P1。P1为实体对象在第二坐标系的坐标;P2为虚拟对象的头部在第二坐标系的坐标。其中,P2可以为Unity中可以获取到的角色网格属性。
图4为本公开至少一实施例的实体对象至虚拟对象的头部的向量F2与实体对象在第二坐标系面对的正方向F1之间的夹角示意图。如图4所示,实体对象至虚拟对象的头部的向量F2与实体对象在第二坐标系面对的正方向F1之间的夹角α小于第一阈值,则认为实体对象注视虚拟对象,当夹角α大于或等于第一阈值,则认为实体对象没有注视虚拟对象。在一些示例中,第一阈值可以约为40度。然而,本实施例对此并不限定。
步骤305、判断筛选出的第一候选对象的数目是否为零。
在一些示例中,当步骤304筛选出的第一候选对象的数目为0,则返回步骤301,继续进行实体对象的检测。当步骤304筛选出的第一候选对象的数目大于或等于1,则执行步骤306。
步骤306、从第一候选对象中筛选出第二候选对象。
在一些示例中,根据第一候选对象在第二坐标系的位置信息,筛选出与虚拟对象之间的距离小于或等于第二阈值的第一候选对象作为第二候选对象。在一些示例中,第一候选对象与虚拟对象之间的距离可以为第一候选对象在第二坐标系的Z轴的坐标绝对值。第二阈值的范围可以约为4.5米至5.5米,例如可以约为5米。然而,本实施例对此并不限定。
步骤307、判断第二候选对象的数目是否为零。
在一些示例中,当第二候选对象的数目为零,则返回步骤301,继续进行实体对象的检测。当第二候选对象的数目大于或等于1,则执行步骤308。
步骤308、从第二候选对象中筛选出与虚拟对象存在交互的目标对象。
在一些示例中,当第二候选对象的数目为1,则该第二候选对象即为目标对象。当第二候选对象的数目大于1,则筛选出与虚拟对象之间的距离最小的第二候选对象作为与该虚拟对象存在交互的目标对象。
在本示例中,通过对实体对象的角度和位置进行过滤,可以筛选出注视虚拟对象且距离虚拟对象最近的实体对象作为目标对象。
步骤309、根据目标对象在第二坐标系的位置信息和虚拟对象在第二坐标系的位置信息,确定虚拟对象的注视方向。
本示例中,在步骤309之后,可以返回步骤301,继续获取实体对象的检测数据,从而实现对虚拟对象的注视方向的实时调整。
图5为本公开至少一实施例的虚拟对象与目标对象的交互示意图。如图5所示,虚拟对象20具有两个眼睛,每个眼睛至作为目标对象的实体对象21的视线是不同的。在本示例中,在虚拟对象的制作过程中,对两个眼睛单独建模,制作独立的眼睛模型网格;在使用时,虚拟对象的两个眼睛可以作为独立的物体进行分别控制。可以根据每个眼睛在第二坐标系的位置信息与目标对象在第二坐标系的位置信息,依次计算每个眼睛的欧拉角。
在一些示例中,可以利用Unity引擎接口来实现眼睛的欧拉角计算。下面以一个眼睛为例说明眼睛的欧拉角的计算过程。首先,根据眼睛在第二坐标系的位置信息和目标对象在第二坐标系的位置信息,得到两者之间的矢量;随后,将得到的矢量转换为四元数;最后,利用Unity的处理函数可以直接得到眼睛的欧拉角。上述过程可以通过以下程序实现:
Vector3 forwardDir=targetPoint–eyePostion;
Quaternion lookAtRot=Quaternion.LookRotation(forwardDir);
Vector3 resultEuler=lookAtRot.eulerAngles
其中,Vector3为三维软件中三维坐标数据类型为(x,y,z),常用来表示位置和角度。Quaternion为四元数,四元数是角度的一种表示。
在一些示例中,根据眼睛转动的效果,可以对眼睛的角度在每个方向做一个范围限制。以眼睛的欧拉角为(x,y,z)的形式为例,x可以表示绕X轴旋转的俯仰角,y可以表示绕Y轴旋转的偏航角,z可以表示绕Z轴旋转的翻转角。在本示例中,如图2所示,眼睛的笛卡尔左手坐标系可以以两眼之间连线的中心点为原点,以经过原点且平行于两眼连线的方向为X轴,以经过原点且垂直于X轴的方向为Y轴,X轴和Y轴所在平面可以大致平行于脸部所在平面。Z轴垂直于X轴和Y轴所在平面。针对一个眼睛,以经过该眼睛的中心点且平行于Z轴方向为该眼睛的正方向。本示例的俯仰角可以为沿X轴旋转的平面与X轴和正方向所在平面的夹角,本示例的偏航角可以为沿Y轴旋转的平面与Y轴和正方向所在平面的夹角。在一些示例中,偏航角的范围约为-30度到30度,俯仰角的范围约为-15度到15度。本示例的两个眼睛具有相同的角度限定。然而,本实施例对此并不限定。例如,不同眼睛的角度限定可以不同。
在本示例中,通过以上方式确定每个眼睛的欧拉角之后,可以确定每个眼睛的注视方向,从而使得虚拟对象的双眼可以自然聚焦在目标对象处,眼神自然,进而提高交互体验。
在一些示例中,在未识别出目标对象时,虚拟对象的眼睛可以配置为直视前方,或者按照设定轨迹变化。例如,虚拟对象的眼睛可以根据设定的骨骼动画运动,从而调整视线变化。然而,本实施例对此并不限定。
在另一些示例中,当筛选出的第一候选对象为1时,可以直接确定该第一候选对象为与虚拟对象存在交互的目标对象,无需进行第二获选对象的筛选。在另一些示例中,当存在多个实体对象和多个虚拟对象进行交互时,可以依次或者同时给每个虚拟对象确定对应的目标对象。在另一些示例中,当存在多个实体对象和多个虚拟对象进行交互时,可以依次给每个虚拟对象确定对应的目标对象,其中,已作为目标对象的实体对象不再参与其余虚拟对象的目标对象的筛选。然而,本实施例对此并不限定。
本公开至少一实施例还提供一种电子设备,包括:显示屏、图像采集器、存储器和处理器。显示屏、图像采集器和存储器均与处理器连接。显示屏配置为显示虚拟对象,图像采集器配置为采集面对显示屏的实体对象的数据。存储器适于存储计算机程序,所述计算机程序被处理器执行时实现上述虚拟对象的控制方法的步骤。
图6为本公开至少一实施例的电子设备的一种示意图。在一些示例性实施方式中,如图6所示,本实施例的电子设备可以包括:显示屏10、图像采集器12、处理器14和存储器16。显示屏10、图像采集器12、处理器14和存储器16可以通过总线连接。显示屏10配置为显示虚拟对象。图像采集器12配置为采集面对显示屏10的实体对象的数据。存储器16适于存储计算机程序,计算机程序被处理器14执行时实现上述实施例提供的虚拟对象的控制方法的步骤。
在一些示例性实施方式中,处理器14可以包括MCU或FPGA等的处理装置。存储器16可以存储应用软件的软件程序以及模块,如本实施例中的控制方法对应的程序指令或模块。处理器14通过运行存储在存储器16内的软件程序以及模块,从而执行多种功能应用以及数据处理,比如实现本实施例提供的控制方法。存储器16可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些示例中,存储器16可包括相对于处理器14远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在一些示例性实施方式中,显示屏10可以包括显示面板,例如可以采用液晶显示面板(LCD)、有机发光二极管面板等形成来配置。显示屏10还可以包括触控面板。触控面板可以收集用户在其上或附近的触摸操作(比如,用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程式实现相应的操作。如用户点击功能模块的快捷标识的操作等。可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板。在一些示例中,触控面板可以覆盖显示面板,当触控面板检测到其上或附近的触摸操作后,传送给第一处理器以确定触摸事件的类型,随后第一处理器根据触摸事件的类型在显示面板上提供相应的界面输出。触控面板和显示面板可以作为两个独立的部件来实现移动终端的输入和输出功能。在一些示例中,可以将触控面板和显示面板集成而实现输入和输出功能。
此外,本公开至少一实施例还提供一种非瞬态计算机可读存储介质,存储有计算机程序,该计算机程序被执行时实现上述虚拟对象的控制方法的步骤。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上显示和描述了本公开的基本原理、主要特征和本公开的优点。本公开不受上述实施例的限制,上述实施例和说明书中描述的只是说明本公开的原理,在不脱离本公开精神和范围的前提下,本公开还会有多种变化和改进,这些变化和改进都落入要求保护的本公开的范围内。
Claims (9)
1.一种虚拟对象的控制方法,其特征在于,应用于包括显示屏和图像采集器的电子设备,所述控制方法包括:
获取面对显示屏的至少一个实体对象在第一坐标系的位置信息,所述第一坐标系以图像采集器所在平面的一个位置为原点;
根据所述第一坐标系与第二坐标系之间的关系、以及所述至少一个实体对象在所述第一坐标系的位置信息,确定所述至少一个实体对象在第二坐标系的位置信息,所述第二坐标系以显示屏所在平面的一个位置为原点;
根据所述至少一个实体对象在所述第二坐标系的位置信息、以及所述显示屏显示的虚拟对象在所述第二坐标系的位置信息,从所述至少一个实体对象中确定出与所述虚拟对象存在交互的实体对象作为目标对象;
根据所述目标对象在所述第二坐标系的位置信息和所述虚拟对象在所述第二坐标系的位置信息,确定所述虚拟对象的注视方向;其中,所述根据所述目标对象在所述第二坐标系的位置信息和所述虚拟对象在所述第二坐标系的位置信息,确定所述虚拟对象的注视方向,包括:根据所述目标对象在所述第二坐标系的位置信息和所述虚拟对象的一个眼睛在所述第二坐标系的位置信息,确定所述虚拟对象的所述一个眼睛的欧拉角。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一坐标系与第二坐标系之间的关系、以及所述至少一个实体对象在所述第一坐标系的位置信息,确定所述至少一个实体对象在第二坐标系的位置信息,包括:
针对任一实体对象,根据所述第一坐标系到第二坐标系的转换矩阵与所述实体对象在第一坐标系的坐标的乘积,确定所述实体对象在第二坐标系的坐标。
3.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个实体对象在所述第二坐标系的位置信息、以及所述显示屏显示的虚拟对象在所述第二坐标系的位置信息,从所述至少一个实体对象中确定出与所述虚拟对象存在交互的实体对象作为目标对象,包括:
针对所述显示屏显示的任一虚拟对象,根据所述至少一个实体对象在所述第二坐标系的位置信息、以及所述虚拟对象在所述第二坐标系的位置信息,筛选出满足以下条件的实体对象作为第一候选对象:实体对象至所述虚拟对象的头部的向量与所述实体对象在所述第二坐标系面对的正方向之间的夹角小于第一阈值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述至少一个实体对象在所述第二坐标系的位置信息、以及所述显示屏显示的虚拟对象在所述第二坐标系的位置信息,从所述至少一个实体对象中确定出与所述虚拟对象存在交互的实体对象作为目标对象,还包括:
当筛选出的第一候选对象的数目大于或等于1,根据所述第一候选对象在第二坐标系的位置信息,筛选出与所述虚拟对象之间的距离小于或等于第二阈值的第一候选对象作为第二候选对象;
当筛选出的第二候选对象的数目等于1,则确定所述第二候选对象为与所述虚拟对象存在交互的目标对象;
当筛选出的第二候选对象的数目大于1,则筛选出与所述虚拟对象之间的距离最小的第二候选对象作为与所述虚拟对象存在交互的目标对象。
5.根据权利要求1所述的方法,其特征在于,所述一个眼睛的欧拉角的偏航角的范围为-30度至30度,俯仰角的范围为-15度至15度。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标对象在所述第二坐标系的位置信息和所述虚拟对象的一个眼睛在所述第二坐标系的位置信息,确定所述虚拟对象的所述一个眼睛的欧拉角,包括:
根据所述目标对象在所述第二坐标系的位置信息和所述虚拟对象的一个眼睛在所述第二坐标系的位置信息,计算所述一个眼睛和所述目标对象形成的矢量;
将所述矢量转换为四元数;
基于所述四元数,确定所述虚拟对象的所述一个眼睛的欧拉角。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当没有检测到与所述虚拟对象交互的目标对象,控制所述显示屏显示的虚拟对象正视前方,或者控制所述虚拟对象的注视方向按照设定轨迹变化。
8.一种电子设备,包括:显示屏、图像采集器、存储器和处理器,所述显示屏、所述图像采集器和所述存储器均与所述处理器连接,所述显示屏配置为显示虚拟对象,所述图像采集器配置为采集面对所述显示屏的实体对象的数据,所述存储器适于存储计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的虚拟对象的控制方法的步骤。
9.一种非瞬态计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时实现如权利要求1至7中任一项所述的虚拟对象的控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089218.3A CN114385015B (zh) | 2022-01-25 | 2022-01-25 | 虚拟对象的控制方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089218.3A CN114385015B (zh) | 2022-01-25 | 2022-01-25 | 虚拟对象的控制方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114385015A CN114385015A (zh) | 2022-04-22 |
CN114385015B true CN114385015B (zh) | 2024-03-08 |
Family
ID=81203827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210089218.3A Active CN114385015B (zh) | 2022-01-25 | 2022-01-25 | 虚拟对象的控制方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114385015B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129163B (zh) * | 2022-08-30 | 2022-11-11 | 环球数科集团有限公司 | 一种虚拟人行为交互系统 |
CN115390678B (zh) * | 2022-10-27 | 2023-03-31 | 科大讯飞股份有限公司 | 虚拟人交互方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517372A (zh) * | 2017-08-17 | 2017-12-26 | 腾讯科技(深圳)有限公司 | 一种vr内容拍摄方法、相关设备及系统 |
CN112367426A (zh) * | 2020-11-09 | 2021-02-12 | Oppo广东移动通信有限公司 | 虚拟对象显示方法及装置、存储介质和电子设备 |
CN112991553A (zh) * | 2021-03-11 | 2021-06-18 | 深圳市慧鲤科技有限公司 | 信息展示方法及装置、电子设备和存储介质 |
CN113348428A (zh) * | 2019-02-01 | 2021-09-03 | 麦克赛尔株式会社 | 虚拟对象显示装置以及虚拟对象显示方法 |
CN113658249A (zh) * | 2021-08-23 | 2021-11-16 | 京东方科技集团股份有限公司 | 虚拟现实场景的渲染方法、装置、设备和存储介质 |
-
2022
- 2022-01-25 CN CN202210089218.3A patent/CN114385015B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517372A (zh) * | 2017-08-17 | 2017-12-26 | 腾讯科技(深圳)有限公司 | 一种vr内容拍摄方法、相关设备及系统 |
CN113348428A (zh) * | 2019-02-01 | 2021-09-03 | 麦克赛尔株式会社 | 虚拟对象显示装置以及虚拟对象显示方法 |
CN112367426A (zh) * | 2020-11-09 | 2021-02-12 | Oppo广东移动通信有限公司 | 虚拟对象显示方法及装置、存储介质和电子设备 |
CN112991553A (zh) * | 2021-03-11 | 2021-06-18 | 深圳市慧鲤科技有限公司 | 信息展示方法及装置、电子设备和存储介质 |
CN113658249A (zh) * | 2021-08-23 | 2021-11-16 | 京东方科技集团股份有限公司 | 虚拟现实场景的渲染方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114385015A (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114385015B (zh) | 虚拟对象的控制方法及电子设备 | |
US9355574B2 (en) | 3D virtual training system and method | |
EP1292877B1 (en) | Apparatus and method for indicating a target by image processing without three-dimensional modeling | |
US20110012830A1 (en) | Stereo image interaction system | |
CN110019766A (zh) | 知识图谱的展示方法、装置、移动终端及可读存储介质 | |
CA3105356A1 (en) | Synthesizing an image from a virtual perspective using pixels from a physical imager array | |
CN109947253B (zh) | 眼球追踪的模型建立方法、眼球追踪方法、设备、介质 | |
CN110443884B (zh) | 手部运动重建方法和装置 | |
CN108629799B (zh) | 一种实现增强现实的方法及设备 | |
CN110069125B (zh) | 虚拟对象的控制方法和装置 | |
DE112009004947T5 (de) | Anzeige mit einem optischen Sensor | |
CN112657176A (zh) | 一种结合人像行为信息的双目投影人机交互方法 | |
CN103033145B (zh) | 用于识别多个物体的形状的方法与系统 | |
US11537200B2 (en) | Human-machine interaction method, system, processing device and computer readable storage medium | |
Shin et al. | A novel single IR light based gaze estimation method using virtual glints | |
CN113658249A (zh) | 虚拟现实场景的渲染方法、装置、设备和存储介质 | |
CN107704106A (zh) | 姿态定位方法、装置及电子设备 | |
US20210258476A1 (en) | System for generating a three-dimensional scene of a physical environment | |
US20200167005A1 (en) | Recognition device and recognition method | |
Chanda et al. | Analysis of Multi Touch Interactive Device for a Cost Effective Architecture | |
CN110941974B (zh) | 虚拟对象的控制方法和装置 | |
US11797081B2 (en) | Methods, devices and media for input/output space mapping in head-based human-computer interactions | |
US11281351B2 (en) | Selecting objects within a three-dimensional point cloud environment | |
EP3059664A1 (en) | A method for controlling a device by gestures and a system for controlling a device by gestures | |
CN111103967A (zh) | 虚拟对象的控制方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |