虚拟场景的交互控制方法、装置、摇杆设备及电子设备与流程

文档序号:29742478发布日期:2022-04-21 19:45阅读:122来源:国知局
虚拟场景的交互控制方法、装置、摇杆设备及电子设备与流程
虚拟场景的交互控制方法、装置、摇杆设备及电子设备
1.优先权说明
2.本技术要求申请号为202111287941.4,申请日为2021年11月02日,名称为:虚拟场景的交互控制方法、装置、摇杆设备及电子设备的优先权。
技术领域
3.本技术涉及计算机技术,尤其涉及一种虚拟场景的交互控制方法、装置、摇杆设备及电子设备。


背景技术:

4.随着基于图形处理硬件的显示技术日渐成熟,扩展了感知环境以及获取信息的渠道,尤其是虚拟场景的显示技术。在虚拟场景的显示过程中,常常需要对虚拟场景的视角进行转动,例如对于射击游戏虚拟场景,用户通过移动摇杆来转动射击游戏虚拟场景中的视角,从而实现精准射击。
5.在相关技术提供的方案中,通常是将时间变化量乘以摇杆在摇杆区域的x轴的偏移量,并根据得到的结果控制虚拟场景的视角在虚拟场景的x轴进行转动,y轴同理。然而,由于需要基于时间变化量来计算如何转动视角,因此,视角转动无法实现及时反馈,响应速度慢。


技术实现要素:

6.本技术实施例提供一种虚拟场景的交互控制方法、装置、摇杆设备、电子设备、计算机可读存储介质及计算机程序产品,能够实现视角转动的及时反馈,提升响应速度。
7.本技术实施例的技术方案是这样实现的:
8.本技术实施例提供一种虚拟场景的交互控制方法,包括:
9.在人机交互界面中显示虚拟场景;
10.响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向所述第一摇杆区域的边缘移动的第一操作,根据所述第一方向相对第一参考方向的偏离角度,控制所述虚拟场景的第一视角进行转动;
11.响应于控制所述第一摇杆从所述第一摇杆区域的第二位置开始转动的第二操作,根据所述第二操作的转动角度和转动方向,控制所述虚拟场景的第一视角进行转动。
12.本技术实施例提供一种虚拟场景的交互控制方法,包括:
13.在人机交互界面中显示虚拟场景;
14.响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向所述第一摇杆区域的边缘移动的第一操作,确定所述第一方向相对第一参考方向的偏离角度;
15.根据所述第一方向相对第一参考方向的偏离角度,控制所述虚拟场景的第一视角进行转动;
16.其中,所述第一视角是第一人称视角和第三人称视角中的任意一种,所述转动的
方式是水平转动和垂直转动中的任意一种。
17.本技术实施例提供一种虚拟场景的交互控制方法,包括:
18.在人机交互界面中显示虚拟场景;
19.响应于控制第一摇杆从第一摇杆区域的第二位置开始转动的第二操作,确定所述第二操作的转动角度和转动方向;
20.根据所述第二操作的转动角度和转动方向,控制所述虚拟场景的第一视角进行转动;
21.其中,所述第一视角是第一人称视角和第三人称视角中的任意一种,所述转动的方式是水平转动和垂直转动中的任意一种。
22.本技术实施例提供一种虚拟场景的交互控制方法,包括:
23.接收针对虚拟场景的控制请求;
24.响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向所述第一摇杆区域的边缘移动的第一操作,根据所述第一方向相对第一参考方向的偏离角度输出第一控制信号;其中,所述第一控制信号用于控制所述虚拟场景的第一视角进行转动;
25.响应于控制所述第一摇杆从所述第一摇杆区域的第二位置开始转动的第二操作,根据所述第二操作的转动角度和转动方向输出第二控制信号;其中,所述第二控制信号用于控制所述虚拟场景的第一视角进行转动。
26.本技术实施例提供一种摇杆设备,所述摇杆设备包括第一摇杆以及处理器;所述处理器用于:
27.接收针对虚拟场景的控制请求;
28.响应于控制所述第一摇杆从第一摇杆区域的第一位置延第一方向向所述第一摇杆区域的边缘移动的第一操作,根据所述第一方向相对第一参考方向的偏离角度输出第一控制信号;其中,所述第一控制信号用于控制所述虚拟场景的第一视角进行转动;
29.响应于控制所述第一摇杆从所述第一摇杆区域的第二位置开始转动的第二操作,根据所述第二操作的转动角度和转动方向输出第二控制信号;其中,所述第二控制信号用于控制所述虚拟场景的第一视角进行转动。
30.本技术实施例提供一种虚拟场景的交互控制装置,包括:
31.显示模块,用于在人机交互界面中显示虚拟场景;
32.第一控制模块,用于响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向所述第一摇杆区域的边缘移动的第一操作,根据所述第一方向相对第一参考方向的偏离角度,控制所述虚拟场景的第一视角进行转动;
33.第二控制模块,用于响应于控制所述第一摇杆从所述第一摇杆区域的第二位置开始转动的第二操作,根据所述第二操作的转动角度和转动方向,控制所述虚拟场景的第一视角进行转动。
34.本技术实施例提供一种虚拟场景的交互控制装置,包括:
35.显示模块,用于在人机交互界面中显示虚拟场景;
36.第一控制模块,用于响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向所述第一摇杆区域的边缘移动的第一操作,确定所述第一方向相对第一参考方向的偏离角度;
37.所述第一控制模块,还用于根据所述第一方向相对第一参考方向的偏离角度,控制所述虚拟场景的第一视角进行转动;
38.其中,所述第一视角是第一人称视角和第三人称视角中的任意一种,所述转动的方式是水平转动和垂直转动中的任意一种。
39.本技术实施例提供一种虚拟场景的交互控制装置,包括:
40.显示模块,用于在人机交互界面中显示虚拟场景;
41.第二控制模块,用于响应于控制第一摇杆从第一摇杆区域的第二位置开始转动的第二操作,确定所述第二操作的转动角度和转动方向;
42.所述第二控制模块,还用于根据所述第二操作的转动角度和转动方向,控制所述虚拟场景的第一视角进行转动;
43.其中,所述第一视角是第一人称视角和第三人称视角中的任意一种,所述转动的方式是水平转动和垂直转动中的任意一种。
44.本技术实施例提供一种虚拟场景的交互控制装置,包括:
45.接收请求模块,用于接收针对虚拟场景的控制请求;
46.第一输出模块,用于响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向所述第一摇杆区域的边缘移动的第一操作,根据所述第一方向相对第一参考方向的偏离角度输出第一控制信号;其中,所述第一控制信号用于控制所述虚拟场景的第一视角进行转动;
47.第二输出模块,用于响应于控制所述第一摇杆从所述第一摇杆区域的第二位置开始转动的第二操作,根据所述第二操作的转动角度和转动方向输出第二控制信号;其中,所述第二控制信号用于控制所述虚拟场景的第一视角进行转动。
48.本技术实施例提供一种电子设备,包括:
49.存储器,用于存储可执行指令;
50.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的虚拟场景的交互控制方法。
51.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的虚拟场景的交互控制方法。
52.本技术实施例提供一种计算机程序产品,包括可执行指令,所述可执行指令被处理器执行时实现本技术实施例提供的虚拟场景的交互控制方法。
53.本技术实施例具有以下有益效果:
54.响应于控制第一摇杆在第一摇杆区域中进行移动的操作,根据该操作确定相应的角度(以及方向),进而控制虚拟场景的第一视角进行转动,由于无需通过时间变化量来计算视角的变化量,因此在摇杆被移动后能够实现视角转动的及时反馈,提升交互控制的响应速度。
附图说明
55.图1是本技术实施例提供的摇杆示意图;
56.图2是本技术实施例提供的虚拟场景的交互控制系统的架构示意图;
57.图3是本技术实施例提供的终端设备的架构示意图;
58.图4是本技术实施例提供的摇杆设备的架构示意图;
59.图5a是本技术实施例提供的虚拟场景的交互控制方法的流程示意图;
60.图5b是本技术实施例提供的虚拟场景的交互控制方法的流程示意图;
61.图6a是本技术实施例提供的绝对转向模式的摇杆示意图;
62.图6b是本技术实施例提供的相对转向模式的摇杆示意图;
63.图7a是本技术实施例提供的虚拟场景的交互控制方法的流程示意图;
64.图7b是本技术实施例提供的虚拟场景的交互控制方法的流程示意图;
65.图8a是本技术实施例提供的利用右侧摇杆进行交互控制的示意图;
66.图8b是本技术实施例提供的利用右侧摇杆进行交互控制的示意图;
67.图8c是本技术实施例提供的利用右侧摇杆进行交互控制的示意图;
68.图9a是本技术实施例提供的利用左侧摇杆进行交互控制的示意图;
69.图9b是本技术实施例提供的利用左侧摇杆进行交互控制的示意图;
70.图9c是本技术实施例提供的利用左侧摇杆进行交互控制的示意图。
具体实施方式
71.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
72.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
73.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
74.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
75.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
76.1)虚拟场景:利用电子设备输出的区别于现实世界的场景,通过裸眼或设备的辅助能够形成对虚拟场景的视觉感知,例如通过显示屏幕输出的二维影像,通过立体投影、虚拟现实和增强现实技术等立体显示技术来输出的三维影像;此外,还可以通过各种可能的硬件形成听觉感知、触觉感知、嗅觉感知和运动感知等各种模拟现实世界的感知。虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本技术实施例对虚拟场景的维度不加以限定。
77.例如,虚拟场景可以是游戏虚拟场景,对于游戏虚拟场景情况,游戏包括但不限于多人在线战术竞技(multiplayer online battle arena,moba)游戏、第一人称射击
(first-person shooting,fps)游戏、第三人称射击(third-personal shooting,tps)游戏以及多人枪战类生存游戏。
78.2)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
79.3)虚拟对象:虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如,在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。
80.4)视角:观察虚拟场景所形成的视野。根据观察主体不同,分为第一人称视角和第三人称视角,第一人称视角是虚拟对象(如虚拟角色)观看前方的虚拟环境的视角;第三人称视角是通过相机观看虚拟场景中的虚拟对象的视角,是一种旁观者视角,例如从虚拟对象的上方、侧面观察。
81.视角朝向是指视角的中心视线的朝向。以第一人称视角为例,例如第一人称视角是在水平面上的视野,且虚拟对象向左右观看的最大角度范围是120度,则视角朝向是60度所指向的方向。
82.视角转向是指视角朝向的转动,也称为视角转动,即视角的中心视线的方向发生转动。例如,第一人称视角中,视角水平转向,即向左/右转动,与虚拟对象向左/右看或整体上转动身体对应;视角垂直转向,即向上/下转动,与虚拟对象向上/下看对应。在第三人称视角中,视角水平转向,即左/右转动,与相机左/右转动对应;视角垂直转向,即向上/下转动,与相机向上/下转动对应。
83.5)摇杆:在本技术实施例中,摇杆可以是指实体摇杆,例如游戏手柄中的实体摇杆;也可以是指虚拟摇杆,例如显示在终端设备(如智能手机)的人机交互界面中的虚拟摇杆。第一摇杆和第二摇杆可以全部是实体摇杆(例如第一摇杆是游戏手柄中的左侧摇杆,第二摇杆是游戏手柄中的右侧摇杆,或者相反),可以全部是虚拟摇杆,也可以一个是实体摇杆,另一个是虚拟摇杆。值得说明的是,本技术实施例所指的对摇杆的移动操作,可以是指对摇杆的可移动组件(如实体摇杆柄或虚拟摇杆柄)的移动操作。
84.6)云技术(cloud technology):在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。本技术实施例可以结合云技术实现,例如,虚拟场景可基于云技术提供。
85.7)智能交通系统(intelligent traffic system,its):又称智能运输系统(intelligent transportation system),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。本技术实施例可以应用于智能交通系统中,实现智慧交通,例如虚拟场景可以是对真实交通环境进行模拟得到的,虚拟对象可以是车辆或车主。
86.对于虚拟场景的视角控制,在相关技术提供的方案中,通常是通过摇杆的x轴数据来控制视角的水平转动,通过摇杆的y轴数据来控制视角的垂直转动。作为示例,提供了如
图1所示的示意图,虚拟场景的视角的水平转动的变化量是由时间变化量(deltatime)乘以摇杆的x轴数据的偏移量(即图1示出的摇杆值x)得到的,虚拟场景的视角的垂直转动的变化量是由时间变化量乘以摇杆的y轴数据的偏移量(即图1示出的摇杆值y)得到的,公式如下:
87.视角的水平转向delta=摇杆值x*deltatime
88.视角的垂直转向delta=摇杆值y*deltatime
89.当摇杆值x和摇杆值y不为0时,视角会一直转向。当需要停止视角转向时,需要及时释放摇杆,让摇杆值x和摇杆值y归0,即摇杆柄需要归位到摇杆外围边框所约束的摇杆区域的中心位置(中心点)。由于归位过程需要耗费一定时间,导致视角转动的响应速度慢,无法对虚拟场景实现及时控制。同时,摇杆值x和摇杆值y的范围都是[-1,1],摇杆值x和摇杆值y的最小精度和摇杆移动的物理范围有限,导致控制精度较低,这里的[-1,1]中的1表示摇杆区域的半径,即摇杆柄相对于中心位置的最大移动距离。
[0090]
本技术实施例提供一种虚拟场景的交互控制方法、装置、摇杆设备、电子设备、计算机可读存储介质及计算机程序产品,能够提升交互控制的及时性和精准度。下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器。参见图2,图2是本技术实施例提供的虚拟场景的交互控制系统100的一个架构示意图,终端设备400通过网络300-1连接服务器200,终端设备400通过网络300-2连接摇杆设备500,其中,网络300-1可以是广域网或者局域网,又或者是二者的组合,网络300-2同理。
[0091]
在一些实施例中,本技术实施例提供的虚拟场景的交互控制方法可以由终端设备实现。例如,终端设备400在人机交互界面中显示虚拟场景,同时显示虚拟摇杆以供用户进行操作,当然,终端设备400也可以提供实体摇杆,这里仅以虚拟摇杆为例进行说明。终端设备400响应于控制虚拟摇杆进行移动的操作,控制虚拟场景的视角进行转动。
[0092]
这里,也可以由摇杆设备500来提供实体摇杆,当然,摇杆设备500也可以提供虚拟摇杆,这里仅以实体摇杆为例进行说明。摇杆设备500可以与终端设备400建立通信连接,摇杆设备500基于建立的通信连接接收终端设备400发送的针对虚拟场景的控制请求。摇杆设备500响应于控制实体摇杆进行移动的操作,向终端设备400输出相应的控制信号,以作为对控制请求的响应。终端设备400在接收到控制信号时,控制虚拟场景的视角进行转动。
[0093]
在一些实施例中,本技术实施例提供的虚拟场景的交互控制方法可以由终端设备及服务器协同实现。例如,服务器200可以将虚拟场景的相关显示数据发送至终端设备400,以使终端设备400根据接收到的显示数据,在人机交互界面中显示虚拟场景,如此,可以减少终端设备400的本地计算量。终端设备400可以在人机交互界面中显示虚拟摇杆,并响应于控制虚拟摇杆进行移动的操作,控制虚拟场景的视角进行转动。其中,终端设备400在接收到控制虚拟摇杆进行移动的操作时,可以向服务器200输出控制信号,以使服务器200根据控制信号更新虚拟场景的显示数据(即更新虚拟场景的视角),并将更新后的显示数据发送至终端设备400;或者,终端设备400也可以直接控制虚拟场景的视角进行转动。
[0094]
这里,也可以由摇杆设备500来提供实体摇杆。摇杆设备500响应于控制实体摇杆进行移动的操作,向终端设备400输出相应的控制信号。终端设备400在接收到控制信号时,可以将控制信号发送至服务器200以更新虚拟场景的显示数据,或者直接根据控制信号控
制虚拟场景的视角进行转动。
[0095]
在一些实施例中,可以通过运行计算机程序来实现本技术实施例提供的虚拟场景的交互控制方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,如游戏app;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
[0096]
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。摇杆设备500可以是具有实体摇杆的手柄(如switch游戏手柄),但并不限于此。终端设备400与服务器200之间、以及终端设备400与摇杆设备500之间均可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
[0097]
在一些实施例中,终端设备400和摇杆设备500可以独立设置。在一些实施例中,终端设备400和摇杆设备500也可以集成在一起,即摇杆设备500可以视为存在于终端设备400内部,与终端设备400一体化。
[0098]
以本技术实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图3中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图3,图3是本技术实施例提供的终端设备400的结构示意图,图3所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440。
[0099]
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0100]
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如摇杆、按键、键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
[0101]
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
[0102]
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器450旨在
包括任意适合类型的存储器。
[0103]
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0104]
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0105]
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
[0106]
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
[0107]
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
[0108]
在一些实施例中,本技术实施例提供的虚拟场景的交互控制装置可以采用软件方式实现,图3示出了存储在存储器450中的虚拟场景的交互控制装置455,其可以是程序和插件等形式的软件,包括以下软件模块:显示模块4551、第一控制模块4552、第二控制模块4553。其中,各个模块可以独立存在。这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
[0109]
参见图4,图4是本技术实施例提供的摇杆设备500的结构示意图,图4所示的摇杆设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。摇杆设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统540。
[0110]
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0111]
用户接口530包括使得能够输出控制信号的一个或多个输出装置531。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如摇杆、按键、键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
[0112]
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
[0113]
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是rom,易失性存储器可以是ram。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。
[0114]
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0115]
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0116]
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他电子设备,示例性的网络接口520包括:蓝牙、wifi和usb等;
[0117]
输入处理模块553,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
[0118]
在一些实施例中,本技术实施例提供的虚拟场景的交互控制装置可以采用软件方式实现,图4示出了存储在存储器550中的虚拟场景的交互控制装置554,其可以是程序和插件等形式的软件,包括以下软件模块:接收请求模块5541、第一输出模块5542、第二输出模块5543。其中,各个模块可以独立存在。这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
[0119]
将结合本技术实施例提供的电子设备的示例性应用和实施,说明本技术实施例提供的虚拟场景的交互控制方法。
[0120]
参见图5a,图5a是本技术实施例提供的虚拟场景的交互控制方法的一个流程示意图,该方法可以由电子设备(如终端设备)实现,将结合图5a示出的步骤进行说明。
[0121]
在步骤101中,在人机交互界面中显示虚拟场景。
[0122]
在步骤102中,响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向第一摇杆区域的边缘移动的第一操作,根据第一方向相对第一参考方向的偏离角度,控制虚拟场景的第一视角进行转动。
[0123]
作为示例,参见图6a,图6a是本技术实施例提供的第一摇杆的示意图,在图6a中,第一摇杆区域即为由摇杆外围边框所约束的圆形区域,用户可以在第一摇杆区域中控制第一摇杆(第一摇杆的摇杆柄)任意移动。其中,第一摇杆可以是实体摇杆,也可以是基于虚拟技术显示的虚拟摇杆。
[0124]
在接收到控制第一摇杆从第一摇杆区域的第一位置延第一方向向第一摇杆区域的边缘移动的第一操作时,根据第一方向相对第一参考方向的偏离角度,控制虚拟场景中与第一摇杆对应的第一视角进行转动。其中,第一位置可以是在第一摇杆区域中设定的任意一个位置,图6a中以中心位置为例;第一参考方向可以是设定的任意方向,图6a中以正上方为例。
[0125]
值得说明的是,可以按照顺时针方向计算第一方向相对第一参考方向的偏离角度,如图6a所示,在该情况下,根据偏离角度控制虚拟场景的第一视角进行顺时针转动;也可以按照逆时针方向计算第一方向相对第一参考方向的偏离角度,在该情况下,根据偏离角度控制虚拟场景的第一视角进行逆时针转动。其中,在根据偏离角度控制虚拟场景的第一视角进行水平转动的情况下,第一视角的顺时针转动可以是指向右转动;在根据偏离角度控制虚拟场景的第一视角进行垂直转动的情况下,第一视角的顺时针转动可以是指向下转动,当然,控制方式并不限于此。
[0126]
值得说明的是,在根据偏离角度控制虚拟场景的第一视角进行转动时,第一视角进行转动的角度可以与偏离角度相同,也可以与修正偏离角度相同,这里的修正偏离角度是对偏离角度进行修正处理得到。
[0127]
在一些实施例中,可以通过这样的方式实现上述的根据第一方向相对第一参考方向的偏离角度,控制虚拟场景的第一视角进行转动:根据第一位置与第一摇杆在第一操作结束时的位置之间的距离,对第一方向相对第一参考方向的偏离角度进行修正处理,得到
修正偏离角度;根据修正偏离角度,在第一操作结束时控制虚拟场景的第一视角进行一次性地转动。
[0128]
例如,计算第一位置与第一摇杆在第一操作结束时的位置之间的距离,然后根据该距离对第一方向相对第一参考方向的偏离角度进行修正处理得到修正偏离角度。根据得到的修正偏离角度,在第一操作结束时控制虚拟场景的第一视角进行一次性地转动。
[0129]
其中,可以将第一位置与第一摇杆在第一操作结束时的位置之间的距离除以第一摇杆区域的最大移动距离,得到距离比例,并将距离比例与第一方向相对第一参考方向的偏离角度进行乘积处理,得到修正偏离角度。最大移动距离即为第一摇杆区域中以第一位置为端点(起点/终点)的直线的最大长度,在第一位置为中心位置、且第一摇杆区域为圆形的情况下,最大移动距离即为第一摇杆区域的半径。通过上述方式,能够有效提升控制精度。
[0130]
在步骤103中,响应于控制第一摇杆从第一摇杆区域的第二位置开始转动的第二操作,根据第二操作的转动角度和转动方向,控制虚拟场景的第一视角进行转动。
[0131]
这里,第二位置可以是第一摇杆区域中区别于中心位置的任意一个位置,例如可以是通过第一操作首次到达第一摇杆区域的边缘时的位置(如图6b所示),也可以是通过第一操作到达第一摇杆区域的边缘后再进行移动得到的位置。
[0132]
当接收到控制第一摇杆从第一摇杆区域的第二位置开始转动(例如绕中心位置进行转动)的第二操作时,根据第二操作的转动方向(如顺时针/逆时针,图6b中以顺时针为例)计算转动角度,并根据根据第二操作的转动角度和转动方向,控制虚拟场景的第一视角进行转动。其中,在根据第二操作的转动方向计算转动角度时,实际上是计算从中心位置到实时位置(第一摇杆在第二操作期间的实时位置)的方向相对于从中心位置到第二位置的方向的角度。
[0133]
值得说明的是,步骤103可以在步骤102之后执行,在一些情况下,也可以由电子设备(如终端设备)实现步骤101及步骤102,或者由电子设备实现步骤101及步骤103,即步骤102与步骤103之间可以不存在依存关系。
[0134]
值得说明的是,根据第二操作的转动角度和转动方向控制虚拟场景的第一视角进行转动,实际上是控制虚拟场景的第一视角按照第二操作的转动方向进行转动。其中,控制虚拟场景的第一视角进行转动的角度可以与第二操作的转动角度相同,也可以与修正转动角度相同,这里的修正转动角度是对第二操作的转动角度进行修正处理得到。
[0135]
在一些实施例中,可以通过这样的方式实现上述的根据第二操作的转动角度和转动方向,控制虚拟场景的第一视角进行转动:根据第一位置与第一摇杆在第二操作期间的实时位置之间的距离,对第二操作的转动角度进行修正处理,得到修正转动角度;根据修正转动角度和转动方向,在第二操作期间控制虚拟场景的第一视角同步地进行转动。
[0136]
例如,计算第一位置与第一摇杆在第二操作期间的实时位置之间的距离,然后根据该距离对第二操作的转动角度进行修正处理得到修正转动角度。据修正转动角度和转动方向,在第二操作期间控制虚拟场景的第一视角同步地进行转动。
[0137]
其中,可以将第一位置与第一摇杆在第二操作期间的实时位置之间的距离除以第一摇杆区域的最大移动距离,得到距离比例,并将距离比例与第二操作的转动角度进行乘积处理,得到修正转动角度。通过上述方式,能够有效提升第二操作期间的控制精度,实现
精准的同步控制。
[0138]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,还包括:当第一摇杆处于按下状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的任意一种;当第一摇杆处于弹起状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的另一种。
[0139]
在本技术实施例中,控制虚拟场景的第一视角进行转动的方式可以是预先设定的,也可以基于第一摇杆的状态来确定控制第一视角水平转动或垂直转动。例如,当第一摇杆处于按下状态时,控制虚拟场景的第一视角进行水平转动;当第一摇杆处于弹起状态时,控制虚拟场景的第一视角进行垂直转动。又例如,当第一摇杆处于按下状态时,控制虚拟场景的第一视角进行垂直转动;当第一摇杆处于弹起状态时,控制虚拟场景的第一视角进行水平转动。通过上述方式,能够提升交互控制的灵活性,即支持自由调整第一视角的转动方式。
[0140]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,还包括:当第一摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第一摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。
[0141]
在本技术实施例中,虚拟场景的第一视角可以是预先设定的,也可以基于第一摇杆的状态来确定。例如,当第一摇杆处于按下状态时,将第一人称视角作为第一视角;当第一摇杆处于弹起状态时,将第三人称视角作为第一视角。又例如,当第一摇杆处于按下状态时,将第三人称视角作为第一视角;当第一摇杆处于弹起状态时,将第一人称视角作为第一视角。通过上述方式,能够提升交互控制的灵活性,即支持自由调整第一视角。当然,第一视角的设定方式并不限于此,例如可以通过ui设置界面或语音设置等方式,由用户进行手动设定。
[0142]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,第一摇杆均处于按下状态和弹起状态中的同一种状态;当第一摇杆处于按下状态和弹起状态中的另一种状态时,还包括:响应于控制第一摇杆从第一摇杆区域的第三位置开始移动的第三操作,根据从第一位置到第一摇杆在第三操作期间的实时位置的实时方向,控制虚拟场景中的虚拟对象同步地进行移动。
[0143]
这里,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,第一摇杆均处于按下状态和弹起状态中的同一种状态,该状态即用于表示第一摇杆用于控制虚拟场景的第一视角。
[0144]
当第一摇杆处于按下状态和弹起状态中的另一种状态时,表示第一摇杆用于控制虚拟场景中的虚拟对象。在该情况下,响应于控制第一摇杆从第一摇杆区域的第三位置开始移动的第三操作,根据从第一位置到第一摇杆在第三操作期间的实时位置的实时方向,控制虚拟场景中的虚拟对象同步地进行移动,即虚拟对象的移动方向与该实时方向相同,其中,第三位置可以是第一摇杆区域中的任意位置,对此不做限定。由于此时第一摇杆无法用于控制第一视角,因此,可以通过陀螺仪来实现对第一视角的控制。例如,响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数,控制虚拟场景的第一视角进行转动。如此,扩展了交互控制的方式,提升了控制灵活性。
[0145]
当第一摇杆从用于控制虚拟对象的状态切换至用于控制第一视角的状态、且第一摇杆对应的控制按键处于按下状态和弹起状态中的任意一种状态时,根据第一摇杆进行状态切换时虚拟对象的移动方向和移动速度,继续控制虚拟对象进行移动,如此,能够实现对虚拟对象的持续控制。在此基础上,当第一摇杆对应的控制按键处于按下状态和弹起状态中的另一种状态时,停止控制虚拟对象进行移动。
[0146]
在一些实施例中,当接收到控制第一摇杆从第一摇杆区域的第三位置开始移动的第三操作时,还包括:根据第一位置与第一摇杆在第三操作期间的实时位置之间的距离,对虚拟场景中的虚拟对象的参考移动速度进行修正处理,得到修正移动速度;其中,修正移动速度用于结合实时方向,以控制虚拟场景中的虚拟对象同步地进行移动。
[0147]
例如,将第一位置与第一摇杆在第三操作期间的实时位置之间的距离除以最大移动距离,得到距离比例。然后,将距离比例乘以虚拟场景中的虚拟对象的参考移动速度,得到修正移动速度,其中,参考移动速度可以预先设定,例如可以是虚拟对象的最大移动速度。如此,便可根据修正移动速度、以及从第一位置到第一摇杆在第三操作期间的实时位置的实时方向,控制虚拟场景中的虚拟对象同步地进行移动,即虚拟对象的移动速度等于修正移动速度,虚拟对象的移动方向等于该实时方向。通过上述方式,能够提升控制虚拟对象进行移动的精度。
[0148]
在一些实施例中,在任意步骤之间,还包括:响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数,控制虚拟场景的第二视角进行转动。
[0149]
这里,可以通过陀螺仪控制虚拟场景的第二视角,第二视角可以与第一视角相同,也可以区别于第一视角,对于后者情况,如第一视角是第一人称视角,第二视角是第三人称视角;或者,第一视角是第三人称视角,第二视角是第一人称视角。举例来说,响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数,控制虚拟场景的第二视角进行转动。如此,能够提升交互控制的全面性。
[0150]
在一些实施例中,第一操作是在绝对转向模式中进行响应的,绝对转向模式是当第一摇杆位于第一位置时进入的;第二操作是在相对转向模式中进行响应的,相对转向模式是当第一摇杆沿第一方向到达第一摇杆区域的边缘时进入的,或者是当首次接收到控制第一摇杆转动的第二操作时进入的。
[0151]
例如,当第一摇杆位于第一位置时,进入绝对转向模式,该绝对转向模式用于响应第一操作。当第一摇杆沿第一方向到达第一摇杆区域的边缘时,进入相对转向模式,其中,第一摇杆沿第一方向首次到达第一摇杆区域的边缘时的位置即为第二位置;或者,当首次接收到控制第一摇杆转动的第二操作时,进入相对转向模式。相对转向模式用于响应第二操作。如此,通过划分两个模式(两个阶段),能够提升交互控制的有序性。
[0152]
如图5a所示,本技术实施例在接收到第一操作时,根据第一方向相对第一参考方向的偏离角度,控制虚拟场景的第一视角进行转动;在接收到第二操作时,根据第二操作的转动角度和转动方向,控制虚拟场景的第一视角进行转动。如此,能够提升交互控制的及时性,做到视角转动的实际反馈,提升用户体验。
[0153]
在一些实施例中,参见图5b,图5b是本技术实施例提供的虚拟场景的交互控制方法的一个流程示意图,该方法可以由电子设备(如终端设备)执行。如图5b所示,在图5a示出的步骤101之后,还可以在步骤201中,响应于控制第二摇杆从第二摇杆区域的第四位置延
第二方向向第二摇杆区域的边缘移动的第四操作,根据第二方向相对第二参考方向的偏离角度,控制虚拟场景的第二视角进行转动。
[0154]
这里,可以通过第二摇杆实现对虚拟场景的第二视角的控制。例如,当接收到控制第二摇杆从第二摇杆区域的第四位置延第二方向向第二摇杆区域的边缘移动的第四操作时,根据第二方向相对第二参考方向的偏离角度,控制虚拟场景的第二视角进行转动。其中,第四位置可以是第二摇杆区域中的任意位置,如中心位置。
[0155]
值得说明的是,第二参考方向可以与第一参考方向相同或不同。第二视角可以与第一视角相同或不同。第二摇杆可以是实体摇杆,也可以是基于虚拟技术显示的虚拟摇杆。
[0156]
在一些实施例中,可以通过这样的方式来实现上述的根据第二方向相对第二参考方向的偏离角度,控制虚拟场景的第二视角进行转动:根据第四位置与第二摇杆在第四操作结束时的位置之间的距离,对第二方向相对第二参考方向的偏离角度进行修正处理,得到修正偏离角度;根据修正偏离角度,在第四操作结束时控制虚拟场景的第二视角进行一次性地转动。
[0157]
在一些实施例中,可以通过这样的方式来实现上述的根据第四位置与第二摇杆在第四操作结束时的位置之间的距离,对第二方向相对第二参考方向的偏离角度进行修正处理,得到修正偏离角度:根据第四位置与第二摇杆在第四操作结束时的位置之间的距离、以及第二摇杆区域的最大移动距离,确定距离比例;将距离比例与第二方向相对第二参考方向的偏离角度进行乘积处理,得到修正偏离角度。
[0158]
在步骤202中,响应于控制第二摇杆从第二摇杆区域的第五位置开始转动的第五操作,根据第五操作的转动角度和转动方向,控制虚拟场景的第二视角进行转动。
[0159]
这里,第五位置可以是区别于第二摇杆区域的中心位置的任意位置。当接收到控制第二摇杆从第二摇杆区域的第五位置开始转动的第五操作时,根据第五操作的转动角度和转动方向,控制虚拟场景的第二视角进行转动。
[0160]
值得说明的是,在本技术实施例中,步骤202可以在步骤201之后执行,步骤201以及步骤202也可以独立执行,即不存在依存关系。
[0161]
在一些实施例中,响应于第一摇杆操作所进行的转动的方式是水平转动和垂直转动中的任意一种,第一摇杆操作包括第一操作和第二操作;响应于第二摇杆操作所进行的转动的方式是水平转动和垂直转动中的另一种,第二摇杆操作包括第四操作和第五操作。例如,在第二视角与第一视角相同的情况下,通过第一摇杆来实现水平转动,通过第二摇杆来实现垂直转动;或者通过第一摇杆来实现垂直转动,通过第二摇杆来实现水平转动。
[0162]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的任意一种;当第二摇杆处于弹起状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的另一种。这里,可以通过第二摇杆的状态来确定控制第一视角进行转动的方式,同理,可以通过第一摇杆的状态来确定控制第二视角进行转动的方式。
[0163]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,控制虚拟场景的第二视角进行转动的方式是水平转动和垂直转动中的任意一种;当第二摇杆处于弹起状态时,控制虚拟场景的
第二视角进行转动的方式是水平转动和垂直转动中的另一种。这里,可以通过第二摇杆的状态来确定控制第二视角进行转动的方式,同理,可以通过第一摇杆的状态来确定控制第一视角进行转动的方式。
[0164]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。这里,可以通过第二摇杆的状态来确定第一视角,同理,也可以通过第一摇杆的状态来确定第二视角。
[0165]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,第二视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第二视角是第一人称视角和第三人称视角中的另一种。这里,可以通过第二摇杆的状态来确定第二视角,同理,也可以通过第一摇杆的状态来确定第一视角。
[0166]
在一些实施例中,可以通过这样的方式来实现上述的根据第五操作的转动角度和转动方向,控制虚拟场景的第二视角进行转动:根据第四位置与第二摇杆在第五操作期间的实时位置之间的距离,对第五操作的转动角度进行修正处理,得到修正转动角度;根据修正转动角度和转动方向,在第五操作期间控制虚拟场景的第二视角同步地进行转动。
[0167]
在一些实施例中,可以通过这样的方式来实现上述的根据第四位置与第二摇杆在第五操作期间的实时位置之间的距离,对第五操作的转动角度进行修正处理,得到修正转动角度:根据第四位置与第二摇杆在第五操作期间的实时位置之间的距离、以及第二摇杆区域的最大移动距离,确定距离比例;将距离比例与第五操作的转动角度进行乘积处理,得到修正转动角度。
[0168]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,第二摇杆均处于按下状态和弹起状态中的同一种状态;当第二摇杆处于按下状态和弹起状态中的另一种状态时,还包括:响应于控制第二摇杆从第二摇杆区域的第六位置开始移动的第六操作,根据从第四位置到第二摇杆在第六操作期间的实时位置的实时方向,控制虚拟场景中的虚拟对象同步地进行移动。这里,除了通过第二摇杆控制第二视角之外,也可以通过第二摇杆控制虚拟场景中的虚拟对象同步地进行移动。当第二摇杆从用于控制虚拟对象的状态切换至用于控制第二视角的状态、且第二摇杆对应的控制按键处于按下状态和弹起状态中的任意一种状态时,根据第二摇杆进行状态切换时虚拟对象的移动方向和移动速度,继续控制虚拟对象进行移动,如此,能够实现对虚拟对象的持续控制。在此基础上,当第二摇杆对应的控制按键处于按下状态和弹起状态中的另一种状态时,停止控制虚拟对象进行移动。
[0169]
在一些实施例中,当第二摇杆处于按下状态和弹起状态中的另一种状态时,方法还包括:响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数,控制虚拟场景的第二视角进行转动。这里,当第二摇杆用于控制虚拟对象时,可以通过陀螺仪来控制第二视角。
[0170]
在一些实施例中,当接收到控制第二摇杆从第二摇杆区域的第六位置开始移动的第六操作时,还包括:根据第四位置与第二摇杆在第六操作期间的实时位置之间的距离,对
虚拟场景中的虚拟对象的参考移动速度进行修正处理,得到修正移动速度;其中,修正移动速度用于结合实时方向,以控制虚拟场景中的虚拟对象同步地进行移动。
[0171]
在一些实施例中,第四操作是在绝对转向模式中进行响应的,绝对转向模式是当第二摇杆位于第四位置时进入的;第五操作是在相对转向模式中进行响应的,相对转向模式是当第二摇杆沿第二方向到达第二摇杆区域的边缘时进入的,或者是当首次接收到控制第二摇杆转动的第五操作时进入的。
[0172]
如图5b所示,本技术实施例通过第二摇杆来实现对第二视角的控制,能够提升交互控制的全面性,符合用户的多样性控制需求。
[0173]
参见图7a,图7a是本技术实施例提供的虚拟场景的交互控制方法的一个流程示意图,该方法可以由电子设备(如摇杆设备)实现,将结合图7a示出的步骤进行说明。
[0174]
在步骤301中,接收针对虚拟场景的控制请求。
[0175]
在步骤302中,响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向第一摇杆区域的边缘移动的第一操作,根据第一方向相对第一参考方向的偏离角度输出第一控制信号;其中,第一控制信号用于控制虚拟场景的第一视角进行转动。
[0176]
例如,摇杆设备可以包括第一摇杆,该第一摇杆可以是实体摇杆或虚拟摇杆。在接收到控制第一摇杆从第一摇杆区域的第一位置延第一方向向第一摇杆区域的边缘移动的第一操作时,根据第一方向相对第一参考方向的偏离角度输出第一控制信号,该第一控制信号用于根据该偏离角度控制虚拟场景的第一视角进行转动。例如,摇杆设备可以将第一控制信号输出至终端设备(如智能手机、电视等),以使终端设备根据该偏离角度控制虚拟场景的第一视角进行转动,其中,终端设备用于显示虚拟场景。
[0177]
在一些实施例中,可以通过这样的方式实现上述的根据第一方向相对第一参考方向的偏离角度输出第一控制信号:根据第一位置与第一摇杆在第一操作结束时的位置之间的距离,对第一方向相对第一参考方向的偏离角度进行修正处理,得到修正偏离角度;根据修正偏离角度输出第一控制信号,第一控制信号用于在第一操作结束时控制虚拟场景的第一视角进行一次性地转动。
[0178]
在一些实施例中,可以通过这样的方式实现上述的根据第一位置与第一摇杆在第一操作结束时的位置之间的距离,对第一方向相对第一参考方向的偏离角度进行修正处理,得到修正偏离角度:根据第一位置与第一摇杆在第一操作结束时的位置之间的距离、以及第一摇杆区域的最大移动距离,确定距离比例;将距离比例与第一方向相对第一参考方向的偏离角度进行乘积处理,得到修正偏离角度。
[0179]
在步骤303中,响应于控制第一摇杆从第一摇杆区域的第二位置开始转动的第二操作,根据第二操作的转动角度和转动方向输出第二控制信号;其中,第二控制信号用于控制虚拟场景的第一视角进行转动。
[0180]
例如,当接收到控制第一摇杆从第一摇杆区域的第二位置开始转动的第二操作时,根据第二操作的转动角度和转动方向输出第二控制信号,该第二控制信号用于根据第二操作的转动角度和转动方向控制虚拟场景的第一视角进行转动。同样地,可以由摇杆设备将第二控制信号输出至用于显示虚拟场景的终端设备,以实现对第一视角的控制。
[0181]
值得说明的是,步骤303可以在步骤302之后执行,也可以由电子设备(如摇杆设备)实现步骤301及步骤302,或者由电子设备实现步骤301及步骤303,即步骤302与步骤303
之间可以不存在依存关系。
[0182]
在一些实施例中,可以通过这样的方式来实现上述的根据第二操作的转动角度和转动方向输出第二控制信号:根据第一位置与第一摇杆在第二操作期间的实时位置之间的距离,对第二操作的转动角度进行修正处理,得到修正转动角度;根据修正转动角度和转动方向输出第二控制信号,第二控制信号用于在第二操作期间控制虚拟场景的第一视角同步地进行转动。
[0183]
在一些实施例中,可以通过这样的方式来实现上述的根据第一位置与第一摇杆在第二操作期间的实时位置之间的距离,对第二操作的转动角度进行修正处理,得到修正转动角度:根据第一位置与第一摇杆在第二操作期间的实时位置之间的距离、以及第一摇杆区域的最大移动距离,确定距离比例;将距离比例与第二操作的转动角度进行乘积处理,得到修正转动角度。
[0184]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,还包括:当第一摇杆处于按下状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的任意一种;当第一摇杆处于弹起状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的另一种。这里,是通过输出控制信号的方式来实现对第一视角的控制。
[0185]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,还包括:当第一摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第一摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。
[0186]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,第一摇杆均处于按下状态和弹起状态中的同一种状态;当第一摇杆处于按下状态和弹起状态中的另一种状态时,还包括:响应于控制第一摇杆从第一摇杆区域的第三位置开始移动的第三操作,根据从第一位置到第一摇杆在第三操作期间的实时位置的实时方向输出第一对象控制信号,第一对象控制信号用于控制虚拟场景中的虚拟对象同步地进行移动。
[0187]
在一些实施例中,当接收到控制第一摇杆从第一摇杆区域的第三位置开始移动的第三操作时,还包括:根据第一位置与第一摇杆在第三操作期间的实时位置之间的距离,对虚拟场景中的虚拟对象的参考移动速度进行修正处理,得到修正移动速度;其中,修正移动速度用于结合实时方向输出第一对象控制信号,以控制虚拟场景中的虚拟对象同步地进行移动。
[0188]
在一些实施例中,当第一摇杆处于按下状态和弹起状态中的另一种状态时,还包括:响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数输出第一陀螺仪控制信号,第一陀螺仪控制信号用于控制虚拟场景的第一视角进行转动。
[0189]
在一些实施例中,第一操作是在绝对转向模式中进行响应的,绝对转向模式是当第一摇杆位于第一位置时进入的;第二操作是在相对转向模式中进行响应的,相对转向模式是当第一摇杆沿第一方向到达第一摇杆区域的边缘时进入的,或者是当首次接收到控制第一摇杆转动的第二操作时进入的。
[0190]
在一些实施例中,在任意步骤之间,还包括:响应于针对陀螺仪的运动操作,根据
陀螺仪采集到的运动参数输出第二陀螺仪控制信号,第二陀螺仪控制信号用于控制虚拟场景的第二视角进行转动。
[0191]
如图7a所示,本技术实施例能够在摇杆设备中的摇杆移动之后实现视角转动的及时反馈,提升摇杆设备的用户的使用体验。
[0192]
在一些实施例中,参见图7b,图7b是本技术实施例提供的虚拟场景的交互控制方法的一个流程示意图,该方法可以由电子设备(如摇杆设备)执行。如图7b所示,在图7a示出的步骤301之后,还可以在步骤401中,响应于控制第二摇杆从第二摇杆区域中的第四位置延第二方向向第二摇杆区域的边缘移动的第四操作,根据第二方向相对第二参考方向的偏离角度输出第三控制信号;其中,第三控制信号用于控制虚拟场景的第二视角进行转动。
[0193]
摇杆设备还可以包括第二摇杆,该第二摇杆可以是实体摇杆或者虚拟摇杆。响应于第四操作,可以输出第三控制信号,以控制虚拟场景的第二视角进行转动。
[0194]
在一些实施例中,可以通过这样的方式来实现上述的根据第二方向相对第二参考方向的偏离角度输出第三控制信号:根据第四位置与第二摇杆在第四操作结束时的位置之间的距离,对第二方向相对第二参考方向的偏离角度进行修正处理,得到修正偏离角度;根据修正偏离角度输出第三控制信号,第三控制信号用于在第四操作结束时控制虚拟场景的第二视角进行一次性地转动。
[0195]
在一些实施例中,可以通过这样的方式来实现上述的根据第四位置与第二摇杆在第四操作结束时的位置之间的距离,对第二方向相对第二参考方向的偏离角度进行修正处理,得到修正偏离角度:根据第四位置与第二摇杆在第四操作结束时的位置之间的距离、以及第二摇杆区域的最大移动距离,确定距离比例;将距离比例与第二方向相对第二参考方向的偏离角度进行乘积处理,得到修正偏离角度。
[0196]
在步骤402中,响应于控制第二摇杆从第二摇杆区域的第五位置开始转动的第五操作,根据第五操作的转动角度和转动方向输出第四控制信号;其中,第四控制信号用于控制虚拟场景的第二视角进行转动。
[0197]
这里,响应于第五操作,可以输出第四控制信号,以控制虚拟场景的第二视角进行转动。
[0198]
值得说明的是,步骤402可以在步骤401之后执行,步骤401以及步骤402也可以独立执行,即不存在依存关系。
[0199]
在一些实施例中,响应于第一摇杆操作所进行的转动的方式是水平转动和垂直转动中的任意一种,第一摇杆操作包括第一操作和第二操作;响应于第二摇杆操作所进行的转动的方式是水平转动和垂直转动中的另一种,第二摇杆操作包括第四操作和第五操作。
[0200]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的任意一种;当第二摇杆处于弹起状态时,控制虚拟场景的第一视角进行转动的方式是水平转动和垂直转动中的另一种。
[0201]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,控制虚拟场景的第二视角进行转动的方式是水平转动和垂直转动中的任意一种;当第二摇杆处于弹起状态时,控制虚拟场景的第二视角进行转动的方式是水平转动和垂直转动中的另一种。
[0202]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。
[0203]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,还包括:当第二摇杆处于按下状态时,第二视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第二视角是第一人称视角和第三人称视角中的另一种。
[0204]
在一些实施例中,可以通过这样的方式来实现上述的根据第五操作的转动角度和转动方向输出第四控制信号:根据第四位置与第二摇杆在第五操作期间的实时位置之间的距离,对第五操作的转动角度进行修正处理,得到修正转动角度;根据修正转动角度和转动方向输出第四控制信号,第四控制信号用于在第五操作期间控制虚拟场景的第二视角同步地进行转动。
[0205]
在一些实施例中,可以通过这样的方式来实现上述的根据第四位置与第二摇杆在第五操作期间的实时位置之间的距离,对第五操作的转动角度进行修正处理,得到修正转动角度:根据第四位置与第二摇杆在第五操作期间的实时位置之间的距离、以及第二摇杆区域的最大移动距离,确定距离比例;将距离比例与第五操作的转动角度进行乘积处理,得到修正转动角度。
[0206]
在一些实施例中,在接收第四操作和第五操作的期间,以及响应于第四操作和第五操作的期间,第二摇杆均处于按下状态和弹起状态中的同一种状态;当第二摇杆处于按下状态和弹起状态中的另一种状态时,还包括:响应于控制第二摇杆从第二摇杆区域的第六位置开始移动的第六操作,根据从第四位置到第二摇杆在第六操作期间的实时位置的实时方向输出第二对象控制信号,第二对象控制信号用于控制虚拟场景中的虚拟对象同步地进行移动。
[0207]
在一些实施例中,当第二摇杆处于按下状态和弹起状态中的另一种状态时,方法还包括:响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数输出第二陀螺仪控制信号,第二陀螺仪控制信号用于控制虚拟场景的第二视角进行转动。
[0208]
在一些实施例中,当接收到控制第二摇杆从第二摇杆区域的第六位置开始移动的第六操作时,还包括:根据第四位置与第二摇杆在第六操作期间的实时位置之间的距离,对虚拟场景中的虚拟对象的参考移动速度进行修正处理,得到修正移动速度;其中,修正移动速度用于结合实时方向输出第二对象控制信号,第二对象控制信号用于控制虚拟场景中的虚拟对象同步地进行移动。
[0209]
在一些实施例中,第四操作是在绝对转向模式中进行响应的,绝对转向模式是当第二摇杆位于第四位置时进入的;第五操作是在相对转向模式中进行响应的,相对转向模式是当第二摇杆沿第二方向到达第二摇杆区域的边缘时进入的,或者是当首次接收到控制第二摇杆转动的第五操作时进入的。
[0210]
如图7b所示,本技术实施例能够通过摇杆设备中的第一摇杆和第二摇杆实现对虚拟场景中的视角的精准、有效控制。
[0211]
下面,将说明本技术实施例在实际的应用场景中的示例性应用,这里以3d射击游
戏的游戏虚拟场景为例进行说明。本技术实施例可以应用于实体摇杆(如switch手柄中的实体摇杆),也可以应用于虚拟摇杆(如基于触摸屏显示的虚拟摇杆),从而提升在游戏虚拟场景中的射击精度。为了便于理解,以实体摇杆为例进行说明,本技术实施例可以通过游戏手柄中的实体摇杆来控制游戏虚拟场景中的游戏角色(如用户所控制的游戏角色,对应上文的虚拟对象)的视角进行转动,以下进行分别说明。
[0212]
1)通过游戏手柄的右侧摇杆的螺旋式转向,来控制游戏角色的视角进行水平转动。
[0213]
这里,控制过程可以划分为两个模式(阶段),即绝对转向模式和相对转向模式,将进行分别说明。
[0214]

绝对转向模式。当右侧摇杆的摇杆柄处于右侧摇杆的摇杆区域的中心位置(或称原点)时,进入绝对转向模式。如图8a所示,此时,游戏角色的视角在水平面上可以是任意朝向。
[0215]
在绝对转向模式中,以右侧摇杆的摇杆区域的正上方为参考方向(0度),按照顺时针方向来计算偏离角度。当右侧摇杆的摇杆柄一次性扳向某个方向时,根据该方向相对于参考方向的偏离角度,控制游戏角色的视角进行水平转动。其中,可以将摇杆值半径(对应上文的距离比例)作为一个修正系数,乘以偏离角度,并将得到的修正偏离角度作为游戏角色的视角在局部坐标系中进行水平转动的角度,公式如下:
[0216]
αc=α*r r∈[0,1]
ꢀꢀꢀꢀꢀ
公式1
[0217]
在公式1中,α表示偏离角度;r表示摇杆值半径;αc表示控制游戏角色的视角进行水平转动的角度(对应上文的修正偏离角度),范围[0,1]中的1并非表示实际数值,而是表示右侧摇杆的摇杆区域的半径。
[0218]
例如,当右侧摇杆的摇杆柄扳向右侧摇杆的摇杆区域的最右侧(相对于参考方向为90度)并保持不动时,游戏角色立即右转90度并保持不动(游戏角色的视角也相应右转90度)。作为示例,也可以参见图8b。
[0219]

相对转向模式。在绝对转向模式的基础上,当右侧摇杆的摇杆柄首次到达右侧摇杆的摇杆区域的边缘(即摇杆值半径首次为1)时,进入相对转向模式。如图8c所示,在相对转向模式中,响应于控制右侧摇杆开始转动的操作,根据该操作的转动角度和转动方向(顺时针/逆时针),控制游戏角色的视角进行相应水平转动。同样地,可以将摇杆值半径作为系数,对转动角度进行修正,公式如下:
[0220]
α
cr
=αr*r r∈[0,1]
ꢀꢀꢀꢀꢀ
公式2
[0221]
在公式2中,αr表示右侧摇杆的摇杆柄的转动角度,该转动角度的参考方向是从中心位置到进入相对转向模式时的位置(即右侧摇杆的摇杆柄首次到达摇杆区域的边缘时的位置)的方向;α
cr
表示控制游戏角色的视角进行水平转动的角度(对应上文的修正转动角度)。
[0222]
当右侧摇杆的摇杆柄归位到中心位置时,结束基于右侧摇杆的控制过程。当然,如果还需控制游戏角色的视角的话,此时也相当于进入了新的绝对转向模式。
[0223]
2)通过游戏手柄的左侧摇杆的螺旋式转向,来控制游戏角色的视角进行垂直转动。
[0224]
这里,控制过程同样可以划分为两个模式,即绝对转向模式和相对转向模式,将进
行分别说明。
[0225]

绝对转向模式。当左侧摇杆的摇杆柄处于左侧摇杆的摇杆区域的中心位置时,进入绝对转向模式。如图9a所示,此时,游戏角色的视角在垂直面上可以是任意朝向,如平视朝向。
[0226]
在绝对转向模式中,以左侧摇杆的摇杆区域的正右方或正左方为参考方向(0度),此处以正右方为例,并按照顺时针方向来计算偏离角度。当左侧摇杆的摇杆柄一次性扳向某个方向时,根据该方向相对于参考方向的偏离角度,控制游戏角色的视角进行垂直转动。其中,可以将摇杆值半径(对应上文的距离比例)作为一个修正系数,乘以偏离角度,并将得到的修正偏离角度作为游戏角色的视角在局部坐标系中进行垂直转动的角度,公式如下:
[0227]
αc=α*r r∈[0,1];α∈[-90
°
,90
°
]
ꢀꢀꢀꢀꢀ
公式3
[0228]
在公式3中,α表示偏离角度,数值范围限定在游戏虚拟场景中常用的[-90
°
,90
°
];r表示摇杆值半径;αc表示控制游戏角色的视角进行垂直转动的角度(对应上文的修正偏离角度),范围[0,1]中的1并非表示实际数值,而是表示左侧摇杆的摇杆区域的半径。作为示例,参见图9b,当左侧摇杆的摇杆柄从中心位置一次性扳向右侧偏下方45度并保持不动时,控制游戏角色的视角向下45度并保持不动(图9b中以游戏虚拟场景的右侧视图为例)。
[0229]

相对转向模式。在绝对转向模式的基础上,当左侧摇杆的摇杆柄首次到达左侧摇杆的摇杆区域的边缘(即摇杆值半径首次为1)时,进入相对转向模式。如图9c所示,在相对转向模式中,响应于控制左侧摇杆开始转动的操作,根据该操作的转动角度和转动方向(顺时针/逆时针),控制游戏角色的视角进行相应垂直转动。同样地,可以将摇杆值半径作为系数,对转动角度进行修正,公式如下:
[0230]
α
cr
=αr*r r∈[0,1];αr∈[-90
°
,90
°
]
ꢀꢀꢀꢀꢀ
公式4
[0231]
在公式4中,αr表示左侧摇杆的摇杆柄的转动角度,该转动角度的参考方向是从中心位置到进入相对转向模式时的位置(即左侧摇杆的摇杆柄首次到达摇杆区域的边缘时的位置)的方向;α
cr
表示控制游戏角色的视角进行垂直转动的角度(对应上文的修正转动角度)。
[0232]
当左侧摇杆的摇杆柄归位到中心位置时,结束基于左侧摇杆的控制过程。当然,如果还需控制游戏角色的视角的话,此时也相当于进入了新的绝对转向模式。
[0233]
以上的控制方式仅为示例,并不构成对本技术实施例的限定。例如,在本技术实施例中,也可以采用如下的控制方式:
[0234]
1)第一人称视角(即游戏角色的视角)的水平转向。这里,当游戏手柄的右侧摇杆处于弹起状态时,表示该右侧摇杆用于控制虚拟场景的第一人称视角的水平转向。
[0235]
2)第三人称视角的水平转向。这里,当游戏手柄的右侧摇杆处于按下状态时,表示该右侧摇杆用于控制虚拟场景的第三人称视角的水平转向。
[0236]
3)第一人称视角的垂直转向。可以应用如下两种控制方式:

当游戏手柄的左侧摇杆及右侧摇杆均处于弹起状态时,表示该左侧摇杆用于控制虚拟场景的第一人称视角的垂直转向;

通过游戏手柄的陀螺仪来实现第一人称视角的垂直转向,如此,避免占用游戏手柄的一个摇杆。
[0237]
4)第三人称视角的垂直转向。这里,当游戏手柄的左侧摇杆处于弹起状态、且右侧摇杆处于按下状态时,表示该左侧摇杆用于控制虚拟场景的第三人称视角的垂直转向。
[0238]
5)游戏角色的移动。这里,当游戏手柄的左侧摇杆处于按下状态时,表示该左侧摇杆用于控制虚拟场景的游戏角色的移动。将左侧摇杆的摇杆区域的中心位置到左侧摇杆的摇杆柄的实时位置的实时方向,作为游戏角色的移动方向,其中,当摇杆值半径为1时,控制游戏角色以最大移动速度进行移动;当摇杆值半径小于1时,用摇杆值半径乘以最大移动速度,得到用于控制游戏角色进行移动的修正移动速度。此时,可以使用游戏手柄的陀螺仪来控制虚拟场景的视角(第一人称视角和/或第三人称视角)进行垂直转动。
[0239]
在通过左侧摇杆控制游戏角色进行移动的前提下,当保持左侧摇杆的按下状态时,则左侧摇杆一直用于控制游戏角色移动。当按下游戏手柄中与左侧摇杆对应的控制按键(如左侧zl按键)、且释放左侧摇杆的按下状态(即是使左侧摇杆弹起)时,在控制按键处于按下状态期间控制游戏角色一直移动,且游戏角色的移动速度与通过左侧摇杆控制游戏角色移动期间的最后移动速度一致,游戏角色的移动方向与通过左侧摇杆控制游戏角色移动期间的最后移动方向一致。进一步地,当释放游戏手柄中与左侧摇杆对应的控制按键时,控制游戏角色停止移动。
[0240]
当然,以上涉及的左侧摇杆和右侧摇杆的功能仅为示例,根据实际应用场景中的需求,两个摇杆的功能可以相互替换,也可以增加或减少。例如,由于摇杆处于按下和弹起两种状态中的一种,因此可以设置:当摇杆(左侧摇杆和/或右侧摇杆)处于弹起状态时,表示该摇杆用于控制第一人称视角;当摇杆处于按下状态时,表示该摇杆用于控制第三人称视角。
[0241]
本技术实施例至少具有以下技术效果:1)本技术实施例的控制精度是摇杆值半径的最小精度乘以角度的最小精度,小于现有技术中摇杆值x和摇杆值y的最小精度,因此能够达到提升控制精度的目的;2)由于视角转向过程中没有使用时间变化量(deltatime)来计算视角转向的变化量,因此在摇杆柄停止到任何位置时,视角转向就会立即停止,响应速度非常及时,能够做到实时反馈;3)在3d射击游戏中,能够提高摇杆射击的准确性,避免射击游戏的延迟瞄准问题,能够显著提高玩家使用摇杆进行射击时的交互体验。
[0242]
下面继续说明本技术实施例提供的虚拟场景的交互控制装置455实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器450的虚拟场景的交互控制装置455中的软件模块可以包括:显示模块4551,用于在人机交互界面中显示虚拟场景;第一控制模块4552,用于响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向第一摇杆区域的边缘移动的第一操作,根据第一方向相对第一参考方向的偏离角度,控制虚拟场景的第一视角进行转动;第二控制模块4553,用于响应于控制第一摇杆从第一摇杆区域的第二位置开始转动的第二操作,根据第二操作的转动角度和转动方向,控制虚拟场景的第一视角进行转动。
[0243]
在一些实施例中,第一控制模块4552,还用于:根据第一位置与第一摇杆在第一操作结束时的位置之间的距离,对第一方向相对第一参考方向的偏离角度进行修正处理,得到修正偏离角度;根据修正偏离角度,在第一操作结束时控制虚拟场景的第一视角进行一次性地转动。
[0244]
在一些实施例中,第一控制模块4552,还用于:根据第一位置与第一摇杆在第一操作结束时的位置之间的距离、以及第一摇杆区域的最大移动距离,确定距离比例;将距离比例与第一方向相对第一参考方向的偏离角度进行乘积处理,得到修正偏离角度。
[0245]
在一些实施例中,第二控制模块4553,还用于:根据第一位置与第一摇杆在第二操作期间的实时位置之间的距离,对第二操作的转动角度进行修正处理,得到修正转动角度;根据修正转动角度和转动方向,在第二操作期间控制虚拟场景的第一视角同步地进行转动。
[0246]
在一些实施例中,当第一摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第一摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。
[0247]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,第一摇杆均处于按下状态和弹起状态中的同一种状态;当第一摇杆处于按下状态和弹起状态中的另一种状态时,虚拟场景的交互控制装置455还包括对象控制模块,用于响应于控制第一摇杆从第一摇杆区域的第三位置开始移动的第三操作,根据从第一位置到第一摇杆在第三操作期间的实时位置的实时方向,控制虚拟场景中的虚拟对象同步地进行移动。
[0248]
在一些实施例中,虚拟场景的交互控制装置455还包括陀螺仪控制模块,用于响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数,控制虚拟场景的第一视角进行转动。
[0249]
在一些实施例中,对象控制模块还用于:根据第一位置与第一摇杆在第三操作期间的实时位置之间的距离,对虚拟场景中的虚拟对象的参考移动速度进行修正处理,得到修正移动速度;其中,修正移动速度用于结合实时方向,以控制虚拟场景中的虚拟对象同步地进行移动。
[0250]
在一些实施例中,虚拟场景的交互控制装置455还包括第三控制模块及第四控制模块,第三控制模块用于响应于控制第二摇杆从第二摇杆区域的第四位置延第二方向向第二摇杆区域的边缘移动的第四操作,根据第二方向相对第二参考方向的偏离角度,控制虚拟场景的第二视角进行转动;第四控制模块用于响应于控制第二摇杆从第二摇杆区域的第五位置开始转动的第五操作,根据第五操作的转动角度和转动方向,控制虚拟场景的第二视角进行转动。
[0251]
在一些实施例中,响应于第一摇杆操作所进行的转动的方式是水平转动和垂直转动中的任意一种,第一摇杆操作包括第一操作和第二操作;响应于第二摇杆操作所进行的转动的方式是水平转动和垂直转动中的另一种,第二摇杆操作包括第四操作和第五操作。
[0252]
在一些实施例中,当第二摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。
[0253]
在一些实施例中,当第二摇杆处于按下状态时,第二视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第二视角是第一人称视角和第三人称视角中的另一种。
[0254]
在一些实施例中,虚拟场景的交互控制装置455还包括陀螺仪控制模块,用于响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数,控制虚拟场景的第二视角进行转动。
[0255]
在一些实施例中,第一操作是在绝对转向模式中进行响应的,绝对转向模式是当
第一摇杆位于第一位置时进入的;第二操作是在相对转向模式中进行响应的,相对转向模式是当第一摇杆沿第一方向到达第一摇杆区域的边缘时进入的,或者是当首次接收到控制第一摇杆转动的第二操作时进入的。
[0256]
下面继续说明本技术实施例提供的虚拟场景的交互控制装置554实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器550的虚拟场景的交互控制装置554中的软件模块可以包括:接收请求模块5541,用于接收针对虚拟场景的控制请求;第一输出模块5542,用于响应于控制第一摇杆从第一摇杆区域的第一位置延第一方向向第一摇杆区域的边缘移动的第一操作,根据第一方向相对第一参考方向的偏离角度输出第一控制信号;其中,第一控制信号用于控制虚拟场景的第一视角进行转动;第二输出模块5543,用于响应于控制第一摇杆从第一摇杆区域的第二位置开始转动的第二操作,根据第二操作的转动角度和转动方向输出第二控制信号;其中,第二控制信号用于控制虚拟场景的第一视角进行转动。
[0257]
在一些实施例中,第一输出模块5542,还用于:根据第一位置与第一摇杆在第一操作结束时的位置之间的距离,对第一方向相对第一参考方向的偏离角度进行修正处理,得到修正偏离角度;根据修正偏离角度输出第一控制信号,第一控制信号用于在第一操作结束时控制虚拟场景的第一视角进行一次性地转动。
[0258]
在一些实施例中,第一输出模块5542,还用于:根据第一位置与第一摇杆在第一操作结束时的位置之间的距离、以及第一摇杆区域的最大移动距离,确定距离比例;将距离比例与第一方向相对第一参考方向的偏离角度进行乘积处理,得到修正偏离角度。
[0259]
在一些实施例中,第二输出模块5543,还用于:根据第一位置与第一摇杆在第二操作期间的实时位置之间的距离,对第二操作的转动角度进行修正处理,得到修正转动角度;根据修正转动角度和转动方向输出第二控制信号,第二控制信号用于在第二操作期间控制虚拟场景的第一视角同步地进行转动。
[0260]
在一些实施例中,当第一摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第一摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。
[0261]
在一些实施例中,在接收第一操作和第二操作的期间,以及响应于第一操作和第二操作的期间,第一摇杆均处于按下状态和弹起状态中的同一种状态;当第一摇杆处于按下状态和弹起状态中的另一种状态时,虚拟场景的交互控制装置554还包括对象控制模块,用于响应于控制第一摇杆从第一摇杆区域的第三位置开始移动的第三操作,根据从第一位置到第一摇杆在第三操作期间的实时位置的实时方向输出第一对象控制信号,第一对象控制信号用于控制虚拟场景中的虚拟对象同步地进行移动。
[0262]
在一些实施例中,当第一摇杆处于按下状态和弹起状态中的另一种状态时,虚拟场景的交互控制装置554还包括陀螺仪控制模块,用于响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数输出第一陀螺仪控制信号,第一陀螺仪控制信号用于控制虚拟场景的第一视角进行转动。
[0263]
在一些实施例中,对象控制模块还用于:根据第一位置与第一摇杆在第三操作期间的实时位置之间的距离,对虚拟场景中的虚拟对象的参考移动速度进行修正处理,得到修正移动速度;其中,修正移动速度用于结合实时方向输出第一对象控制信号,以控制虚拟
场景中的虚拟对象同步地进行移动。
[0264]
在一些实施例中,虚拟场景的交互控制装置554还包括第三输出模块及第四输出模块,第三输出模块用于响应于控制第二摇杆从第二摇杆区域的第四位置延第二方向向第二摇杆区域的边缘移动的第四操作,根据第二方向相对第二参考方向的偏离角度输出第三控制信号,第三控制信号用于控制虚拟场景的第二视角进行转动;第四输出模块用于响应于控制第二摇杆从第二摇杆区域的第五位置开始转动的第五操作,根据第五操作的转动角度和转动方向输出第四控制信号,第四控制信号用于控制虚拟场景的第二视角进行转动。
[0265]
在一些实施例中,响应于第一摇杆操作所进行的转动的方式是水平转动和垂直转动中的任意一种,第一摇杆操作包括第一操作和第二操作;响应于第二摇杆操作所进行的转动的方式是水平转动和垂直转动中的另一种,第二摇杆操作包括第四操作和第五操作。
[0266]
在一些实施例中,当第二摇杆处于按下状态时,第一视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第一视角是第一人称视角和第三人称视角中的另一种。
[0267]
在一些实施例中,当第二摇杆处于按下状态时,第二视角是第一人称视角和第三人称视角中的任意一种;当第二摇杆处于弹起状态时,第二视角是第一人称视角和第三人称视角中的另一种。
[0268]
在一些实施例中,虚拟场景的交互控制装置554还包括陀螺仪控制模块,用于响应于针对陀螺仪的运动操作,根据陀螺仪采集到的运动参数输出第二陀螺仪控制信号,第二陀螺仪控制信号用于控制虚拟场景的第二视角进行转动。
[0269]
在一些实施例中,第一操作是在绝对转向模式中进行响应的,绝对转向模式是当第一摇杆位于第一位置时进入的;第二操作是在相对转向模式中进行响应的,相对转向模式是当第一摇杆沿第一方向到达第一摇杆区域的边缘时进入的,或者是当首次接收到控制第一摇杆转动的第二操作时进入的。
[0270]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令(即可执行指令),该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本技术实施例上述的虚拟场景的交互控制方法。
[0271]
本技术实施例提供一种计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的虚拟场景的交互控制方法。
[0272]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0273]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0274]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件
中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0275]
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
[0276]
以上,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1