方法、程序以及电子装置与流程

文档序号:33642576发布日期:2023-03-29 02:31阅读:74来源:国知局
方法、程序以及电子装置与流程

1.本发明涉及一种方法、程序以及电子装置,尤其涉及一种在具备触摸面板的计算机中执行的方法、用于执行方法的各步骤的程序以及具备触摸面板的电子装置。


背景技术:

2.伴随着近年来的触摸面板技术的提高,经由触摸面板上的用户接口来进行用户输入的电子装置正广泛普及。而且,在电子装置中执行的游戏中,代替通过以往类型的物理控制器进行的用户输入,经由电子装置所具备的触摸面板来进行用户输入的方式正广泛普及。
3.尤其以智能手机等为代表的小型移动型电子装置的普及急速进展,在这样的移动型电子装置上执行的游戏也被大量地发布。在这样的状况中,关于针对触摸面板中显示的玩家角色等虚拟对象的操作方法,提出了各种各样的技术。
4.例如,在专利文献1中公开了一种具备触摸面板的游戏装置、程序,根据用户的触摸操作来设定原点以能够进行模仿操纵杆的操作。该游戏装置在触摸面板从没有检测到触摸的状态变化为检测到触摸的状态的情况下,基于开始检测时的坐标来设定基准坐标,并在之后持续检测到触摸的情况下,基于之后检测到的坐标来设定指示坐标。而且,在该游戏装置中,通过将从基准坐标到指示坐标的向量的方向识别为使操纵杆倾斜的方向、且将向量的大小识别为操纵杆的倾斜程度,来实现虚拟操纵杆,从而实现虚拟对象的操作。
5.现有技术文献
6.专利文献
7.专利文献1:日本专利第3734820号公报
8.专利文献2:日本专利第6389581号公报
9.专利文献3:日本专利第6560801号公报


技术实现要素:

10.发明要解决的问题
11.在专利文献1所示的现有技术中,用户用手指接触触摸面板上的一个位置来使游戏装置识别基准坐标,并使该手指在维持接触的状态下滑动,根据滑动后的手指的接触位置来使游戏装置识别指示坐标。在这样构成的现有技术中,由于在用户输入方向时需要生成从基准坐标到指示坐标的距离,因此难以实现高响应性。例如,在用户想要进行使虚拟操纵杆大幅倾斜的操作的情况下,需要生成与大幅倾斜的操纵杆的倾斜程度对应的、从基准坐标到指示坐标的向量的大小。
12.在这样的状况中,本技术人提出了如下方法:不使用开始点和结束点这样的空间上的概念,而根据由手指的细微的运动产生的触摸点的集合来决定虚拟空间中的操作目标对象的参数(例如方向、速度)(专利文献2、3)。然而,在用户经由触摸面板进行的操作中,作为用于控制能够成为用户的操作目标的对象即操作目标对象的操作方法,要求实现使用户
更易于操作的操作方法。
13.本发明是为了解决这样的问题而完成的,主要目的在于提供一种能够在经由触摸面板对操作目标对象进行的操作中进一步提高操作性的方法。
14.用于解决问题的方案
15.作为本发明的一个方式的方法是在具备触摸面板的计算机中执行的方法,所述方法的特征在于,包括以下步骤:基于数据点来决定该数据点的集合所示出的角度,所述数据点是基于根据用户对所述触摸面板的操作而发生的触摸事件所获取到的由第一轴的值和第二轴的值表示的数据点;按每个既定的时间将基于根据用户对所述触摸面板的操作而发生的触摸事件所获取到的由第一轴的值和第二轴的值表示的一个或多个数据点保持为数据点列;以及基于所保持的所述数据点列中的数据点的位移,来决定与该数据点列中的发生了触摸事件的位置的位移的速度对应的位移速度,并至少基于所决定出的最新的位移速度相对于在此前决定出的位移速度的平均值的偏差,来决定用于决定虚拟空间内的操作目标对象的参数的加权速度,其中,在决定加权速度的所述步骤中,根据所决定出的所述角度所表示的方向中的所述第一轴的方向的分量和所述第二轴的方向的分量来计算权重系数,进一步基于该权重系数来决定位移速度。
16.另外,作为本发明的一个方式,在保持为数据点列的步骤中,按每个与帧频对应的时间将一个或多个数据点保持为数据点列,在决定加权速度的所述步骤中,基于在一帧的时间内保持的数据点列中的数据点的位移,来决定与该帧中的发生了触摸事件的位置的位移的速度对应的位移速度,并至少基于最新的帧中的位移速度相对于该最新的帧之前的帧中的位移速度的平均值的偏差,来决定加权速度。
17.另外,作为本发明的一个方式,决定角度的所述步骤包括以下步骤:保持基于根据用户对所述触摸面板的操作而发生的触摸事件所获取到的由第一轴的值和第二轴的值表示的数据点;结束对所保持的所述数据点中的、超过了既定的保持时间的数据点的保持;基于所保持的所述数据点来决定回归直线的斜率;基于作为所保持的所述数据点的集合的位移方向,来决定使所决定出的所述回归直线的斜率旋转的旋转量;以及基于所决定出的所述回归直线的斜率和所决定出的所述旋转量,来决定角度,所述方法还包括以下步骤:按每个既定的时间,基于所决定出的所述加权速度、具有所决定出的所述角度的单位向量、以及根据所决定出的该角度所表示的方向中的所述第一轴的方向的分量和所述第二轴的方向的分量而计算出的权重系数,来决定用于决定虚拟空间内的操作目标对象的参数的合成向量。
18.另外,作为本发明的一个方式,所决定出的所述合成向量的方向是操作目标对象的移动方向,所决定出的所述合成向量的大小是操作目标对象的移动速度。
19.另外,作为本发明的一个方式,还包括以下步骤:基于所决定出的所述合成向量的大小来决定操作目标对象的移动状态。
20.另外,作为本发明的一个方式的方法是在具备触摸面板的计算机中执行的方法,所述方法的特征在于,包括以下步骤:保持基于根据用户对所述触摸面板的操作而发生的触摸事件所获取到的由第一轴的值和第二轴的值表示的数据点;结束对所保持的所述数据点中的、超过了既定的保持时间的数据点的保持;基于所保持的所述数据点来决定回归直线的斜率;基于作为所保持的所述数据点的集合的位移方向,来决定使所决定出的所述回
归直线的斜率旋转的旋转量;基于所决定出的所述回归直线的斜率和所决定出的所述旋转量,来决定角度;以及按每个既定的时间,基于具有所决定出的所述角度的单位向量、以及根据所决定出的该角度中的所述第一轴的方向的分量和所述第二轴的方向的分量而计算出的权重系数,来决定用于决定虚拟空间内的操作目标对象的参数的合成向量。
21.另外,作为本发明的一个方式的程序的特征在于使计算机执行上述中记载的方法的各步骤。
22.另外,作为本发明的一个方式的电子装置是具备触摸面板的电子装置,所述电子装置的特征在于,进行以下处理:基于数据点来决定该数据点的集合所示出的角度,所述数据点是基于根据用户对所述触摸面板的操作而发生的触摸事件所获取到的由第一轴的值和第二轴的值表示的数据点;按每个既定的时间将基于根据用户对所述触摸面板的操作而发生的触摸事件所获取到的由第一轴的值和第二轴的值表示的一个或多个数据点保持为数据点列;以及基于所保持的所述数据点列中的数据点的位移,来决定与该数据点列中的发生了触摸事件的位置的位移的速度对应的位移速度,并至少基于所决定出的最新的位移速度相对于在此前决定出的位移速度的平均值的偏差,来决定用于决定虚拟空间内的操作目标对象的参数的加权速度,其中,在决定加权速度的所述处理中,根据所决定出的所述角度所表示的方向中的所述第一轴的方向的分量和所述第二轴的方向的分量来计算权重系数,进一步基于该权重系数来决定位移速度。
23.另外,作为本发明的一个方式的电子装置是具备触摸面板的电子装置,所述电子装置的特征在于,进行以下处理:保持基于根据用户对所述触摸面板的操作而发生的触摸事件所获取到的由第一轴的值和第二轴的值表示的数据点;结束对所保持的所述数据点中的、超过了既定的保持时间的数据点的保持;基于所保持的所述数据点来决定回归直线的斜率;基于作为所保持的所述数据点的集合的位移方向,来决定使所决定出的所述回归直线的斜率旋转的旋转量;基于所决定出的所述回归直线的斜率和所决定出的所述旋转量,来决定角度;以及按每个既定的时间,基于具有所决定出的所述角度的单位向量、以及根据所决定出的该角度中的所述第一轴的方向的分量和所述第二轴的方向的分量而计算出的权重系数来决定用于决定虚拟空间内的操作目标对象的参数的合成向量。
24.发明的效果
25.根据本发明,能够在经由触摸面板对操作目标对象进行的操作中进一步提高操作性。
附图说明
26.图1是示出本发明的一个实施方式的电子装置的硬件结构的框图。
27.图2是本发明的一个实施方式的电子装置的功能框图。
28.图3是示出本实施方式的由第一轴和第二轴构成的坐标轴的图。
29.图4是示出本发明的一个实施方式的由第一轴和第二轴构成的坐标轴的图。
30.图5是说明如图3或图4所示那样决定了坐标轴的情况下的、引擎部23决定的角度以及与角度对应的方向的一例的图。
31.图6是说明在本发明的一个实施方式的电子装置中执行的与数据点的保持有关的处理的流程图。
32.图7是用于说明权重系数β的概念图的一例。
33.图8是说明在本发明的一个实施方式的电子装置中执行的与加权速度的决定有关的处理的流程图。
34.图9是说明在本发明的一个实施方式的电子装置中执行的与角度的决定有关的处理的流程图。
35.图10是激活函数f(s,p)的输出值的一个例示。
36.图11是说明在本发明的一个实施方式的电子装置中执行的与变换完毕加权速度的决定有关的处理的流程图。
37.图12是示出控制器控制部的合成向量的生成的一例。
38.图13是说明在本发明的一个实施方式的电子装置中执行的与合成向量的决定有关的处理的流程图。
39.图14是示出激活函数f1(s,p)中的输入s与针对该输入s决定的值o之间的关系的一个例示。
40.图15是示出激活函数f2(s,p)中的输入s与针对该输入s决定的值o之间的关系的一个例示。
41.图16是示出激活函数f2(s,p)中的输入s与针对该输入s决定的值o之间的关系的一个例示。
具体实施方式
42.下面,参照附图来说明本发明的实施方式。在各图中,在没有特别提及的情况下,设为同一附图标记表示相同或相当的部分。另外,为了便于说明,有时省略不必要的详细说明。例如,有时省略对已经被熟知的事项的详细说明、对实质上相同的结构的重复说明。此外,在本说明书中,向量的大小能够指向量的模。
43.本发明的实施方式的电子装置10中安装有向用户呈现虚拟空间中配置的虚拟的对象并进行游戏的游戏应用程序。电子装置10例如在执行该游戏应用程序时提供虚拟的控制器(虚拟控制器),该虚拟的控制器用于对虚拟空间内的作为用户的操作目标的虚拟的对象即操作目标对象的运动等进行控制。虚拟空间既能够是二维空间,也能够是三维空间。在本实施方式中,操作目标对象是作为虚拟空间中配置的角色的操作目标角色。例如在电子装置10中,作为方向和大小的输入,使用虚拟控制器来决定操作目标角色的移动方向和速度等参数。但是,操作目标对象还能够设为配置于虚拟空间中的道具或虚拟摄像机等。
44.为了便于说明,在本实施方式中,设为在电子装置10中安装有如上所述的游戏应用程序,但是不限定于此。电子装置10中安装能够根据用户的操作来控制操作目标对象的应用程序即可。例如,在电子装置10中,代替游戏应用程序或者除游戏应用程序以外,也可以安装有根据用户的操作来使操作目标对象进行动作的输入辅助应用程序或模拟应用程序。在下面的说明中,应用程序是指全部应用程序,能够指安装于智能手机、平板终端的应用程序。
45.图1是示出本发明的一个实施方式的电子装置10的硬件结构的框图。电子装置10具备处理器11、输入装置12、显示装置13、存储装置14以及通信装置15。这些各构成装置通过总线16连接。此外,在总线16与各构成装置之间根据需要而插入了接口。在本实施方式
中,电子装置10是智能手机。但是,电子装置10只要具备上述的结构,则也能够设为平板型计算机、具备触摸平板等接触型输入装置的计算机等。
46.处理器11控制电子装置10整体的动作。处理器11例如是cpu。此外,作为处理器11,也可以使用mpu等电子电路。处理器11通过读入并执行存储装置14中保存的程序、数据,来执行各种各样的处理。在一个例子中,处理器11由多个处理器构成。
47.输入装置12是受理用户对电子装置10的输入的用户接口。显示装置13是按照处理器11的控制来向电子装置10的用户显示应用程序画面等的显示器。在本实施方式中,输入装置12是触摸面板12,是与显示装置13(显示器)成一体的构造。在本实施方式中,为了便于说明,设为“触摸面板12”能够表示输入装置12和显示装置13。但是,输入装置12还能够设为触摸平板,显示装置13还能够与该输入装置12对应地设为独立于触摸面板的显示器。
48.存储装置14包括主存储装置和辅助存储装置。主存储装置是能够进行高速的信息读写的易失性存储介质,被用作处理器11处理信息时的存储区域和工作区域。辅助存储装置保存各种各样的程序、在执行各程序时处理器11所使用的数据。辅助存储装置例如是硬盘装置,但是只要能够保存信息,则也可以是任意的非易失性存储装置或非易失性存储器,也可以是可装卸的存储器。在一个例子中,存储装置14是包括易失性存储器和非易失性存储器的、一般的智能手机所具备的存储装置。存储装置14存储包括游戏应用程序在内的各种程序。例如,存储装置14保存操作系统(os)、中间软件(middleware)、应用程序、伴随这些程序的执行而可能被参照的各种数据等。
49.通信装置15是能够经由网络来与用户终端或服务器等其它计算机之间进行数据交换的无线通信用的模块。通信装置15既能够设为bluetooth(蓝牙,注册商标)模块等无线用通信设备,也能够设为以太网模块、usb接口等有线用通信设备。在一个例子中,电子装置10通过通信装置15来从服务器下载程序,并将该程序保存到存储装置14中。在不与其它计算机之间进行数据的发送接收的情况下,电子装置10也可以不具备通信装置15。
50.图2是本发明的一个实施方式的电子装置10的功能框图。电子装置10具备输入部21、显示部22、引擎部23、控制器控制部24以及应用程序部25。在本实施方式中,通过由处理器11执行程序来实现这些功能。例如,所执行的程序是存储装置14中存储的程序或经由通信装置15接收到的程序。由于各种功能是像这样通过读入程序实现的,因此一个部件(功能)的一部分或全部也可以由其它部件所具有。其它部件也可以是本实施方式中未记载的部件。但是,也可以通过构成用于实现各功能的一部分或全部的电子电路等,来通过硬件实现这些功能。在一个例子中,虚拟控制器由三层构造实现,引擎部23、控制器控制部24以及应用程序部25分别对应于各层。在该情况下,通过由处理器11执行由与各层对应的各程序构成的程序,来实现虚拟控制器。
51.输入部21是使用触摸面板12构成的,用于受理用户对电子装置10的输入。在本实施方式中,输入部21受理用户对触摸面板12的触摸操作并产生触摸事件。输入部21是智能手机通常具有的功能。
52.显示部22在触摸面板12中显示游戏应用程序画面(游戏用画面),并显示与用户操作相应的画面。
53.引擎部23按每个与帧频对应的帧的时间(帧之间的时间),使用根据用户对触摸面板12的触摸操作而发生的触摸事件,来决定用于决定操作目标角色的参数的角度。引擎部
23按每个帧的时间,使用根据用户对触摸面板12的触摸操作而发生的触摸事件,来决定用于决定操作目标角色的参数的加权速度。控制器控制部24按每个帧的时间,基于所决定出的加权速度和所决定出的角度,来决定用于决定操作目标角色的参数的合成向量。应用程序部25按每个帧的时间,基于所决定出的合成向量,来决定操作目标角色的移动方向、移动速度等参数,并控制操作目标角色的动作等。帧的时间f(秒)是与用于执行游戏的帧频对应的时间。帧频通常为30fps(帧每秒)或60fps。例如,在帧频为30fps的情况下,f为1/30秒。在一个例子中,为了应用程序部25按每帧决定参数,引擎部23决定角度、加权速度,控制器控制部24决定合成向量。此外,在本实施方式中,“决定”能够包括计算、计算并决定。
54.对引擎部23的数据点的保持进行说明。引擎部23基于根据用户对触摸面板12的操作而发生的触摸事件,来获取由第一轴的值和第二轴的值表示的数据点。这里,触摸事件包括在用户使手指接触了触摸面板12时发生的触摸开始(touchstart)、在用户使手指在保持接触触摸面板12的状态下运动时发生的触摸移动(touchmove)、在用户使手指离开了触摸面板12时发生的触摸结束(touchend)。触摸事件还能够包括在触摸被取消时发生的触摸取消(touchcancel)。
55.引擎部23在触摸事件发生时获取触摸事件。引擎部23在获取触摸事件时,获取与触摸面板12上的静电电容发生了变化的位置对应的、由两个变量构成的数值的组(x,y),并将其保存到第一缓冲器中。该由两个变量构成的数值的组的数据是引擎部23随着触摸事件获取到的数据,与由第一轴的值和第二轴的值表示的数据点对应。此外,第一缓冲器是为了临时地保持数据而准备的存储装置14中的存储区域的一个例示,只要能够临时地保持数据,则不限定于此。关于其它缓冲器也是同样的。
56.在一个例子中,引擎部23获取由两个变量构成的数值的组(x,y),并且获取(x,y)被获取的时间t,将由三个变量构成的数值的组(x,y,t)保存到第一缓冲器中。t是表示作为获取到(x,y)的时间的数据点获取时间的值,如上述这样与(x,y)相对应地保存在第一缓冲器中。t例如既能够设为能够从os获取的被称为unix(注册商标)时间的整数值,也能够设为“2017/07/1415:48:43.444”这样的字符串。下面,引擎部23保持(或结束保持)数据点的情况能够包括保持(或结束保持)与该数据点对应的数据点获取时间t的情况。
57.在本实施方式中,为了便于说明,如下面这样决定第一轴和第二轴。图3是示出本实施方式的由第一轴和第二轴构成的坐标轴的图。第一轴是与大致长方形的触摸面板12的短边实质上平行的横轴(x轴)。第二轴是与触摸面板12的长边实质上平行的纵轴(y轴)。触摸面板12上的位置通过第一轴(x轴)和第二轴(y轴)被表示为坐标(x,y)。因而,在本实施方式中,数据点的坐标(x,y)与触摸面板12上的位置对应,引擎部23将该坐标(x,y)作为数据点保持到第一缓冲器中。但是,如图4所示,也可以是,第一轴是与触摸面板12的长边实质上平行的横轴(x轴),第二轴是与触摸面板12的短边实质上平行的纵轴(y轴)。图3、图4所示的坐标设定是一例,根据电子装置10中安装的程序,能够设定为与上述例示不同。
58.图5是说明如图3或图4所示那样决定了坐标轴的情况下的、引擎部23决定的角度以及与角度对应的方向的一例的图。第一象限的角度31与方向32对应,第二象限的角度33与方向34对应,第四象限的角度35与方向36对应。这里,由于方向34的斜率与方向36的斜率相同但是方向的朝向相反,因此能够确认出角度33与角度35相差180度。
59.引擎部23结束对第一缓冲器中保持的数据点中的、超过了既定的保持时间的数据
点的保持。例如,引擎部23在结束对数据点的数据的保持的情况下,既可以删除该数据,也可以将该数据无效化,或者还可以对该数据关联表示已结束保持的标志来适当地删除。引擎部23决定以毫秒指定第一缓冲器中保存的数据点的寿命的变量da。由变量da指定的时间与既定的保持时间对应。但是,变量da的值不限定于毫秒。在一个例子中,变量da被设定为167,引擎部23将第一缓冲器中保存的数据点仅保持167毫秒,当经过167毫秒时,结束该数据点在第一缓冲器中的保持。167毫秒是用于执行游戏的帧频为30fps的情况下的与5帧对应的时间的一个例示。
60.图6是说明在本发明的一个实施方式的电子装置10中执行的与数据点的保持有关的处理的流程图。
61.在步骤101中,引擎部23判定是否发生了触摸事件。在发生了触摸事件的情况下,本流程图进入步骤102,在没有发生触摸事件的情况下,本流程图进入步骤104。
62.在步骤102中,引擎部23判定所发生的触摸事件是否是触摸结束或触摸取消。在所获取到的触摸事件不是触摸结束或触摸取消的情况下,本流程图进入步骤103。在所获取到的触摸事件是触摸结束或触摸取消的情况下,本流程图进入步骤104。
63.在步骤103中,引擎部23根据所发生的触摸事件来获取数据点,并将其保存到第一缓冲器中。在一个例子中,引擎部23对保存的数据点关联以毫秒表示保存后的经过时间的ta以及以毫秒表示能够在第一缓冲器中保存的时间的变量da。
64.在步骤104中,引擎部23结束对第一缓冲器中保持的数据点中的、经过时间ta为变量da以上的数据点的保持。在一个例子中,引擎部23针对第一缓冲器中保存的各数据点,将经过时间ta与变量da进行比较,在经过时间ta为变量da以上的情况下,结束对该数据点的保持。
65.在步骤105中,本流程图只要不由于例如游戏应用程序结束等而结束,则返回步骤101。
66.对引擎部23的加权速度的决定进行说明。引擎部23的加权速度的决定方法例如能够使用与日本专利第6560801号中记载的引擎部的加权速度的决定同样的方法。
67.引擎部23按每个帧的时间,将第一缓冲器中保持的一个或多个数据点作为数据点列保持到存储装置14内的第二缓冲器中。或者,引擎部23按每个帧的时间将基于根据用户对触摸面板12的操作而发生的触摸事件所获取到的一个或多个数据点作为数据点列不经由第一缓冲器而保持到第二缓冲器中。
68.引擎部23在第i帧所保持的数据点列p(i)由p(i)={p
i,1
,p
i,2


p
i,m
}表示。
69.p
i,k
(k=1~m)为各数据点。数据点列p(i)中包含的各数据点为在第i帧的时间内保持于第一缓冲器的数据点。各数据点p
i,k
(k=1~m)的x坐标的值和y坐标的值以(x
i,k
,y
i,k
)表示。各数据点设为按p
i,1
、p
i,2


、p
i,m
的顺序以从早到晚的时间被保存到第一缓冲器中。引擎部23在从保持了作为第i-1个的p(i-1)起经过一帧的时间f(秒)后保持p(i),在又经过一帧的时间后保持p(i+1)。由于变量m为p(i)中包含的数据点的数量,因此变量m根据p(i)而不同。
70.引擎部23结束对第二缓冲器中保持的数据点列中的、超过了既定的保持时间的数据点列的保持。例如,引擎部23在结束对数据点列的数据的保持的情况下,既可以删除该数据,也可以将该数据无效化,或者还可以对该数据关联表示已结束保持的标志来适当地删
除。在一个例子中,引擎部23决定用于指定第二缓冲器中保存的数据点的寿命的变量db。由变量db指定的时间与既定的保持时间对应,在本实施方式中与帧的时间对应。例如,引擎部23将数据点列p(i)与保持该数据点列p(i)的时间ti相对应地保持到第二缓冲器中。引擎部23当将一个数据点列p(i)保存到第二缓冲器中后,监视从保存该数据点列p(i)起的经过时间tb,并持续地将其与变量db进行比较。例如,引擎部23使用保持的时间ti来计算经过时间tb。引擎部23当所监视的数据点列p(i)的经过时间tb超过了变量db时,结束该数据点列p(i)在第二缓冲器中的保持。
71.在本实施方式中,引擎部23将一个数据点列p(i)在第二缓冲器中保持与5帧对应的时间5f(秒)。因而,引擎部23保持5个数据点列。引擎部23从新的数据点列起按顺序如p(5)、p(4)、p(3)、p(2)、p(1)这样保持5个数据点列。因而,在引擎部23保持与5帧对应的数据点列的情况下,p(5)成为最新保持的数据点列。引擎部23在新保持数据点列的情况下,将新的数据点列保持为p(5),用p(i+1)的数据置换p(i)(1≤i≤4)。此时,引擎部23结束对超过了既定的保持时间的p(1)的保持。
72.数据点列既能够表示数据点的列,也能够表示数据点的矩阵。在一个优选的例子中,引擎部23按每个帧的时间,将x坐标的值和y坐标的值分开地保持为数据点列。引擎部23保持的x坐标的值的集合x和y坐标的值的集合y分别如式(1)、式(2)所示。
[0073][0074][0075]
其中,n是引擎部23在第二缓冲器中保持的数据点列的数量,与帧数对应。在本实施方式中,由于引擎部23将数据点列保持与5帧对应的时间5f(秒),因此根据经过时间而成为n=1、n=2、n=3、n=4、n=5、n=5、

n=5。因而,在经过与5帧对应的时间5f(秒)后,成为n=5。另外,最新保持的数据点列p(n)的x坐标的值为x
n,1


x
n,m
,最新保持的数据点列p(n)的y坐标的值为y
n,1

…yn,m
。此外,n的最大值根据引擎部23保持数据点列的时间而为不同的值。
[0076]
引擎部23按每个帧的时间,基于第二缓冲器中保持的数据点列中的数据点的位移,来决定该数据点列中的位移速度。引擎部23至少基于所决定出的最新的位移速度相对于在此前决定出的位移速度的平均值的偏差(deviation),来决定加权速度。在一个例子中,引擎部23将所决定出的加权速度的值保持到其它功能部、程序能够参照的存储装置14内的规定的存储区域中。
[0077]
位移速度与作为目标的帧的时间内的数据点(发生了触摸事件的位置)的位移的速度对应。或者,位移速度还能够说是与根据作为目标的帧的时间内的数据点(发生了触摸事件的位置)的集合而计算出的用户的手指的移动速度对应的速度。位移速度vi是第i个数据点列中的位移速度或者第i帧中的位移速度。
[0078]
在一个例子中,引擎部23基于所保持的数据点列中的最新的数据点列中的位移速度vn相对于在该最新的数据点列之前保持的数据点列中的位移速度v1~v
n-1
的平均值的偏差,来决定加权速度。在一个例子中,引擎部23基于所保持的数据点列中的一个数据点列中的位移速度vi(i=1~n)相对于在该一个数据点列之前保持的数据点列中的位移速度v1~v
i-1
的平均值的偏差,来决定加权速度。这里,位移速度vi相对于位移速度v1~v
i-1
的平均值的偏差例如是位移速度vi与位移速度v1~v
i-1
的平均值的偏差(deviation)。此外,位移速度v1~v
i-1
的平均值在i=1的情况下设为0,在i=2的情况下设为v1。
[0079]
在一个例子中,引擎部23计算通过式(3)决定的cumulative pointwize deviation函数(cpd函数,累计点偏差函数)的输出值,并将其决定为加权速度。
[0080][0081]
其中,n是引擎部23在第二缓冲器中保持的数据点列的数量。
[0082]
在一个例子中,在引擎部23将x坐标的值和y坐标的值分开地保持为数据点列的情况下,引擎部23基于第二缓冲器中保持的数据点列中的x坐标的值的位移和y坐标的值的位移,来决定位移速度。在一个例子中,引擎部23基于第二缓冲器中保持的数据点列中的在时间序列上相邻的数据点的位移量、以及该数据点列中包含的数据点的数量,来决定位移速度。在上述例示中,引擎部23还基于权重系数来决定位移速度。
[0083]
在一个例子中,引擎部23使用式(4)来计算位移速度vi。
[0084][0085]
其中,α是与显示器的像素密度dpi(dot-per-inch)对应的系数。α为0以上的实数,一般是1。β是权重系数。通过使β增大来使位移速度易于反映突发的变化,通过使β减小来使位移速度不易反映突发的变化。在p(i)不包含数据点的情况下,引擎部23不计算位移速度vi,例如设定为vi=0。在p(i)包含1个数据点的情况下,引擎部23也同样不计算位移速度vi,例如设定为vi=0。
[0086]
如式(4)所示,引擎部23还基于权重系数β来决定位移速度vi。引擎部23将权重系数β用作与引擎部23按每个帧的时间决定的角度相应的动态的值,而不是用作静态的值。引擎部23根据引擎部23在作为目标的帧的时间决定的角度所表示的方向中的x轴的方向的分量和y轴的方向的分量,来计算权重系数β。在一个例子中,引擎部23使用式(5)来计算权重系数β。
[0087][0088]
其中,a和b是表示与在预先设定于坐标轴上的x轴和y轴具有两个轴的虚拟的椭圆的短轴(x轴)和长轴(y轴)的长度或者长轴(x轴)和短轴(y轴)的长度对应的大小的值。a和b
是大小不同的值。θ为引擎部23按每个帧的时间决定的角度,max(a,b)是输出a和b中的最大值的函数。根据式(5),权重系数β赋予以a和b为各个轴的长度的椭圆形在角度θ处的半径的大小的倒数的权重。
[0089]
图7是用于说明权重系数β的概念图的一例。a和b表示触摸面板12的x轴的长度与y轴的长度之比,角度41是与式(5)的θ对应的角度,向量42是从以a和b为各个轴的长度的椭圆形的中心到椭圆周的向量。权重系数β是赋予向量42的大小的倒数的权重的权重系数,权重系数β的值根据角度41而呈椭圆状地推移。如图7这样,若设为a《b,则式(5)的分母为b,β可取的值为a/b≤β≤1,在θ=0
°
或180
°
的情况下,β=1为,最大值,在θ=90
°
或270
°
的情况下,β=a/b,为最小值。因而,在引擎部23决定的角度所表示的方向为短轴方向上的输入的情况下,权重系数β变得更大,位移速度vi也变得更大。另一方面,在引擎部23决定的角度所表示的方向为长轴方向上的输入的情况下,权重系数β变得更小,位移速度vi也变得更小。通过设为这样的结构,例如能够使得在椭圆的短轴方向上易于加速,而在椭圆的长轴方向上不易加速。
[0090]
在上述例示中,将虚拟的椭圆的两个轴(长轴和短轴)的长度设为与触摸面板12的长度对应的值,但是不限定于此。a和b与具有分别平行于x轴和y轴的两个轴的虚拟的椭圆的两个轴的长度对应,例如能够根据虚拟控制器的设计来设为任意的值。另外,由于max(a,b)是a或b这样的常数,因此例如能够根据虚拟控制器的设计来设为任意的值。
[0091]
avg
i-1
(v)是到紧挨着第i帧之前为止的位移速度vi的平均。通过式(6)来计算avg
i-1
(v)。
[0092][0093]
这里,在i=1的情况下,不存在到之前为止的位移速度,因此avg
i-1
(v)=0。
[0094]
图8是说明在本发明的一个实施方式的电子装置10中执行的与加权速度的决定有关的处理的流程图。在一个例子中,电子装置10按每个与帧频对应的时间执行本流程图的步骤201~204。
[0095]
在步骤201中,引擎部23将在一帧期间获取到的数据点作为数据点列p(i)保持到第二缓冲器中。此时,引擎部23对所保持的数据点列p(i)关联以毫秒表示保存后的经过时间的tb以及以毫秒表示能够在第二缓冲器中保存的时间(保持寿命)的变量db。
[0096]
接着,在步骤202中,引擎部23结束对第二缓冲器中保持的数据点列p(i)中的、经过时间tb为变量db以上的数据点列p(i)的保持。
[0097]
接着,在步骤203中,引擎部23使用式(3)~式(6)来决定加权速度。
[0098]
接着,在步骤204中,本流程图只要不由于例如游戏应用程序结束等而结束,则返回步骤201。当本流程图结束时,引擎部23结束对全部数据点列p(i)的保持。
[0099]
对引擎部23的角度的决定进行说明。引擎部23的角度决定方法例如能够使用与日本专利第6389581号中记载的角度决定部的角度的决定同样的方法。引擎部23基于数据点来决定该数据点的集合所示出的角度,该数据点是基于根据用户对触摸面板的操作而发生
的触摸事件所获取到的由第一轴的值和第二轴的值表示的数据点。
[0100]
引擎部23按每个帧的时间判定是否能够计算角度。引擎部23在能够计算角度的情况下,使用第一缓冲器保持的数据点来决定该数据点的集合所示出的角度。引擎部23通过求出数据点的集合所示出的角度,能够求出对触摸面板12进行了触摸操作的用户所意图的方向的角度。在一个例子中,引擎部23决定变量b,在第一缓冲器保持的数据点的数量为变量b以上的情况下,使用该数据点来计算(决定)角度,并保持所决定出的角度。在该情况下,引擎部23仅保持最新决定出的角度。在第一缓冲器保持的数据点的数量少于变量b的情况下,引擎部23不计算角度而决定保持的角度。一般来说,在求回归直线的斜率时,优选具有3个以上的数据点,因此优选将变量b设定为3以上。
[0101]
引擎部23基于第一缓冲器中保持的数据点来决定回归直线的斜率。引擎部23在决定回归直线的斜率时,基于第一缓冲器中保持的数据点中的x轴的值的位移量和y轴的值的位移量,来将x轴和y轴中的某一方的轴决定为独立变量的轴。引擎部23将另一方的轴决定为从属变量的轴。在一个例子中,引擎部23使用最小二乘法来计算回归直线的斜率。
[0102]
引擎部23在将独立变量的轴设为x轴时,决定y=ax+b的回归直线的斜率a,在将独立变量的轴设为y轴时,决定x=cy+d的回归直线的斜率c。
[0103]
在一个例子中,引擎部23基于第一缓冲器中保持的数据点中的x轴的值的最大值与最小值的差值以及y轴的值的最大值与最小值的差值,来将x轴和y轴中的某一方的轴决定为独立变量的轴,并将另一方的轴决定为从属变量的轴。在一个例子中,引擎部23基于使用权重系数来对第一缓冲器中保持的数据点中的x轴的值的最大值与最小值的差值进行权重赋予所得到的值、以及y轴的值的最大值与最小值的差值,来将x轴和y轴中的某一方的轴决定为独立变量的轴,并将另一方的轴决定为从属变量的轴。
[0104]
由于计算的回归直线的斜率不具有正负的方向,因此引擎部23在使用最小二乘法计算回归直线的斜率时,例如在0度~90度和270度~360度的范围内进行计算。因而,例如在数据点的集合所示出的角度为45度的情况下和数据点的集合所示出的角度为225度的情况下,都计算出45度作为回归直线的斜率。因此,引擎部23在决定了回归直线的斜率之后,基于作为数据点的集合的位移方向,来决定表示是否使所决定出的回归直线的斜率(角度)旋转180度的旋转量。在一个例子中,引擎部23通过将数据点中的在时间序列上处于前后的、所决定出的独立变量的轴的值的差值的正负的数量进行比较,来决定旋转量。这里,作为数据点的集合的位移方向表示数据点随着时间位移的方向,例如与用户使手指在触摸面板12上运动的大致方向对应。
[0105]
在一个例子中,引擎部23使用式(7)所示的函数aop(x,y)来决定角度。函数aop(x,y)以0度~360度的实数来计算角度。设为引擎部23在使用函数aop(x,y)计算角度时第一缓冲器保持着n个数据点p。n个数据点pk(k=1~n)的x坐标的值和y坐标的值由(xk,yk)表示,设为pk按p1、p2…
、pn的顺序以从早到晚的时间被保存到第一缓冲器中。
[0106][0107]
由于函数aop(x,y)是分情况的函数,因此使用函数rotate(x,y)、函数left(x)以及函数down(y)。首先,函数aop(x,y)使用函数rotate(x,y)来将x和y中的某一者决定为独立变量。
[0108]
函数rotate(x,y)是通过式(8)决定的。
[0109]
rotate(x,y)=w
·
(max(x)-min(x))<(max(y)-min(y))
[0110]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0111]
函数rotate(x,y)判定n个数据点p是否主要在y轴方向上位移,例如返回真假值。这样,函数rotate(x,y)判定n个数据点p主要在x轴(左右)方向上位移还是主要在y轴(上下)方向上位移,从而判定x轴的值和y轴的值中的哪一方适合作为独立变量。
[0112]
在式(8)中,(max(x)-min(x))是n个数据点p的x的值(x1,x2,

xn)中的最大值与最小值之差的绝对值,表示n个数据点p的在x轴方向上的位移量。同样地,(max(y)-min(y))是n个数据点p的y的值(y1,y2,
…yn
)中的最大值与最小值之差的绝对值,表示n个数据点p的在y轴方向上的位移量。变量w是用于对(max(x)-min(x))进行权重赋予的权重系数。
[0113]
在(max(y)-min(y))大于(max(x)一min(x))与变量w之积的值时,函数rotate(x,y)满足不等号,函数aop(x,y)进行坐标变换。在该情况下,函数aop(x,y)将y轴设为独立变量的轴,将x轴设为从属变量的轴,并且使用函数down(y)来决定旋转量。另一方面,在(max(y)-min(y))为(max(x)-min(x))与变量w之积的值以下时,函数rotate(x,y)不满足不等号,函数aop(x,y)不进行坐标变换。在该情况下,函数aop(x,y)将x轴设为独立变量的轴,将y轴设为从属变量的轴,并且使用函数left(x)来决定旋转量。根据x轴方向和y轴方向的尺寸以及用户握持智能手机的方式,变量w例如被设定为0.5或2等。
[0114]
函数left(x)通过式(9)表示。
[0115]
left(x)=|{x

|x
′i>0}|<|{x

|x
′i<0}|,x
′←
[x
2-x1,x
3-x2,

,x
n-x
n-1
]
[0116]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0117]
在函数rotate(x,y)不满足不等号的情况下,函数left(x)判定n个数据点p的位移方向是否为-x轴方向(左方向),例如返回真假值。函数left(x)计算n个数据点p的x的值
(x1,x2,

xn)中的、在时间序列上处于前后的值之间的差值(x
2-x1,x
3-x2,

x
n-x
n-1
)。函数left(x)通过判定差值为负的个数是否多于差值为正的个数,来判定n个数据点p的位移方向是否为-x轴方向(左方向)。这样,函数left(x)判定n个数据点p的位移方向是-x轴方向(左方向)还是+x轴方向(右方向),从而决定表示是否使所决定出的回归直线的斜率旋转180度的旋转量。例如,在函数left(x)为真的情况下,函数aop(x,y)将旋转量决定为180度,在函数left(x)为假的情况下,函数aop(x,y)将旋转量决定为0度。
[0118]
函数down(y)通过式(10)表示。
[0119]
dowm(y)=|{y'|y
′i>0}|<|{y'|y
′i<0}|,y
′←
[y
2-y1,y
3-y2,...,y
n-y
n-1
]
[0120]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0121]
在函数rotate(x,y)满足不等号的情况下,函数down(y)判定n个数据点p的位移方向是否为-y轴方向(下方向),例如返回真假值。函数down(y)计算n个数据点p的y的值(y1,y2,
…yn
)中的、在时间序列上处于前后的值之间的差值(y
2-y1,y
3-y2,
…yn-y
n-1
)。函数down(y)通过判定差值为负的个数是否多于差值为正的个数,来判定n个数据点p的位移方向是否为-y轴方向(下方向)。这样,函数down(y)判定n个数据点p的位移方向是-y轴方向(下方向)还是+y轴方向(上方向),从而决定表示是否使所决定出的回归直线的斜率旋转180度的旋转量。例如,在函数down(y)为真的情况下,函数aop(x,y)将旋转量决定为180度,在函数down(y)为假的情况下,函数aop(x,y)将旋转量决定为0度。
[0122]
函数aop(x,y)在如上述这样决定了独立变量(独立变量的轴)和旋转量之后,使用最小二乘法来计算斜率。例如,在将x设为独立变量且将y设为从属变量的情况下,函数aop(x,y)通过式(11)来计算y=ax+b的回归直线的斜率a。
[0123][0124]
其中,是x(独立变量)的平均,
[0125]
是y(从属变量)的平均,
[0126]
是x(独立变量)与y(从属变量)的协方差,
[0127]
是x(独立变量)的方差。
[0128]
将y设为独立变量并将x设为从属变量的情况下的、利用函数aop(x,y)求出x=cy+d的回归直线的斜率c的求法也同样地通过式(12)来计算。
[0129][0130]
在函数rotate(x,y)为假且函数left(x)为假的情况下,函数aop(x,y)直接计算根据回归直线的斜率得到的角度。在函数rotate(x,y)为假且函数left(x)为真的情况下,函
数aop(x,y)计算对根据回归直线的斜率得到的角度加上180所得到的角度。在函数rotate(x,y)为真且函数down(y)为假的情况下,函数aop(x,y)通过从90度减去根据回归直线的斜率得到的角度来计算角度。在函数rotate(x,y)为真且函数down(y)为真的情况下,函数aop(x,y)计算对通过从90度减去根据回归直线的斜率得到的角度而计算出的角度加上180度所得到的角度。
[0131]
在一个例子中,只要不发生触摸结束或触摸取消,则引擎部23将所决定出的角度的值保持在其它功能部、程序能够参照的存储装置14内的规定的存储区域中。在本实施方式中,引擎部23仅保持最新决定出的角度。
[0132]
图9是说明在本发明的一个实施方式的电子装置10中执行的与角度的决定有关的处理的流程图。在一个例子中,电子装置10按每个与帧频对应的帧的时间执行本流程图的步骤301~309。
[0133]
在步骤301中,引擎部23判定是否发生了触摸结束或触摸取消的触摸事件。在一个例子中,引擎部23判定在一帧期间是否发生了该触摸事件。在没有发生触摸结束或触摸取消的情况下,本流程图进入步骤302。在发生了触摸结束或触摸取消的情况下,本流程图进入步骤309。
[0134]
在步骤302中,引擎部23判定第一缓冲器保持的数据点的个数n是否为变量b的数量以上。在个数n为变量b以上的情况下,本流程图进入步骤303,在个数n少于变量b的情况下,本流程图进入步骤307。
[0135]
在步骤303中,引擎部23基于第一缓冲器中保持的数据点中的x轴的值的位移量和y轴的值的位移量,来将x轴和y轴中的某一方的轴决定为独立变量的轴。引擎部23同时将另一方的轴决定为从属变量的轴。
[0136]
接着,在步骤304中,在步骤303中x轴被决定为独立变量的轴的情况下,引擎部23使用式(11)来计算斜率的角度,由此决定回归直线的斜率的角度。在步骤303中y轴被决定为独立变量的轴的情况下,引擎部23使用式(12)来计算斜率的角度,并从90度减去所计算出的角度,由此决定回归直线的斜率的角度。在一个例子中,引擎部23在使用式(11)或式(12)计算斜率的角度时,在0度~90度和270度~360度的范围内进行计算。
[0137]
接着,在步骤305中,引擎部23基于作为第一缓冲器中保持的数据点的集合的位移方向,来决定表示是否使所决定出的回归直线的斜率旋转180度的旋转量。在一个例子中,在步骤108中x轴被决定为独立变量的轴的情况下,引擎部23分别计算在时间序列上处于前后的x轴的值之间的各差值。引擎部23在所计算出的差值为负的个数多于差值为正的个数时,将旋转量决定为180度,在所计算出的差值为负的个数少于差值为正的个数时,将旋转量决定为0度。在一个例子中,在步骤108中y轴被决定为独立变量的轴的情况下,引擎部23分别计算在时间序列上处于前后的y轴的值之间的各差值。引擎部23在所计算出的差值为负的个数多于差值为正的个数时,将旋转量决定为180度,在所计算出的差值为负的个数少于差值为正的个数时,将旋转量决定为0度。
[0138]
接着,在步骤306中,引擎部23基于所决定出的回归直线的斜率和所决定出的旋转量来决定角度,并保持该角度。在一个例子中,引擎部23通过对与所决定出的回归直线的斜率对应的角度加上所决定出的旋转量,来决定角度。在旋转量为0度的情况下,引擎部23决定的角度为与所决定出的回归直线的斜率对应的角度。本流程图进入步骤308。
[0139]
在步骤307中,引擎部23决定(输出)保持的角度。在没有保持的角度的情况下,引擎部23决定(输出)null等表示没有保持角度的数据。本流程图进入步骤308。
[0140]
在步骤308中,本流程图在例如由于游戏应用程序结束等而结束的情况下进入309,否则返回步骤301。在步骤309中,引擎部23结束对角度的保持。
[0141]
控制器控制部24通过向规定的函数输入所决定出的加权速度,来按每个帧的时间决定变换完毕加权速度。规定的函数是决定与被输入的值对应的值并且保持并决定(输出)所决定出的该值中的最大值的函数。控制器控制部24决定的变换完毕加权速度是用于决定操作目标角色的移动方向和速度等参数的加权速度。在一个例子中,控制器控制部24按每个帧的时间将决定出的加权速度输入规定的函数。规定的函数按每个帧的时间决定与被输入的值对应的值,并输出所决定出的该值和目前为止由规定的函数决定的值中的最大值之中的较大一方的值,并保持该值。例如,规定的函数保持在第i帧输出的值,并在第i+1帧将所保持的该值用作目前为止由规定的函数决定的值中的最大值。在一个例子中,只要不发生触摸结束或触摸取消,则控制器控制部24将所决定出的变换完毕加权速度的值保持在其它功能部、程序能够参照的存储装置14内的规定的存储区域中。
[0142]
在一个例子中,规定的函数是通过使用了输出a和b中的最大值的函数max{a,b}的式(13)而决定的激活函数f(s,p)。控制器控制部24将激活函数f(s,p)的输出值决定为变换完毕加权速度。
[0143][0144]
其中,s是最新决定出的cpd函数的输出值(加权速度),p是激活函数f(s,p)在之前输出并保持的值。在之前输出的值是指控制器控制部24在决定一帧中的激活函数f(s,p)的输出值(变换完毕加权速度)的情况下在紧挨着一帧之前的帧中决定出的激活函数f(s,p)的输出值。激活函数f(s,p)将s作为输入来决定0~1的实数o,并将o与p进行比较,如果o为p以上则输出o,如果o小于p则输出p。因而,激活函数f(s,p)的输出值不会小于p。在本实施方式中,实数o是将cpd函数的输出值s除以规定的常数c1所得到的值。例如,规定的常数c1被设定为cpd函数的输出值可取的最大值,以使实数o为0~1的实数。此外,激活函数f(s,p)决定的实数o的范围0~1能够设为其它数值范围。
[0145]
由于cpd函数按每帧连续地计算值,因此cpd函数的输出值根据用户的手指的非连续的运动而非连续地变化,大多情况下大幅地变动。图10是示出激活函数f(s,p)的输出值的一个例示。激活函数f(s,p)的输出值随着时间经过可能上升但是不会下降,并且连续地变化。这样,激活函数f(s,p)将cpd函数的值变换为稳定的输出值。在根据用户对触摸面板12的操作而发生了触摸结束(触摸结束)或触摸取消(触摸取消)的触摸事件的情况下,激活函数f(s,p)结束p的保持,其输出值成为零或null。
[0146]
图11是说明在本发明的一个实施方式的电子装置10中执行的与变换完毕加权速度的决定有关的处理的流程图。在一个例子中,电子装置10按每个与帧频对应的帧的时间来执行本流程图的步骤401~404。
[0147]
在步骤401中,控制器控制部24判定是否发生了触摸结束或触摸取消的触摸事件。
在一个例子中,控制器控制部24判定在一帧期间是否发生了该触摸事件。在没有发生触摸结束或触摸取消的情况下,本流程图进入步骤402,之后进入步骤404。在发生了触摸结束或触摸取消的情况下,本流程图进入步骤403,之后进入步骤404。
[0148]
在步骤402中,控制器控制部24使用式(13)来决定变换完毕加权速度。此时,控制器控制部24将所决定出的变换完毕加权速度保持到存储装置14内的规定的存储区域。所保持的该变换完毕加权速度是在下次的步骤402的处理中控制器控制部24使用式(13)时作为p所参照的值。在一个例子中,控制器控制部24在按每个与帧频对应的时间执行的步骤402中,使用在按每个与帧频对应的时间执行的步骤203中决定出的最新的加权速度和式(13),来决定变换完毕加权速度。
[0149]
在步骤403中,控制器控制部24结束对变换完毕加权速度的保持。
[0150]
在步骤404中,本流程图只要不由于例如游戏应用程序结束等而结束,则返回步骤401。当本流程图结束时,控制器控制部24结束对变换完毕加权速度的保持。
[0151]
控制器控制部24按每个帧的时间使用引擎部23所决定出的角度和控制器控制部24所决定出的变换完毕加权速度,来决定(生成)合成向量。在一个例子中,控制器控制部24基于规定的存储区域中保持的变换完毕加权速度的值、以及具有规定的存储区域中保持的角度的值的单位向量,来生成合成向量。控制器控制部24将所生成的合成向量的数据保持到规定的存储区域中。
[0152]
在一个例子中,控制器控制部24使用式(14)来决定(计算)合成向量compose(v)。
[0153][0154]
其中,是控制器控制部24在之前决定并保持的合成向量,
[0155]
是与控制器控制部24保持的合成向量相加的相加向量,f(s,p)是控制器控制部24决定的最新的变换完毕加权速度,
[0156]
是具有引擎部23所决定出的角度的单位向量,γ是针对相加向量的权重。此外,在之前决定并保持的合成向量是在控制器控制部24决定一帧中的合成向量的情况下在紧挨着一帧之前的帧中决定并保持的合成向量。如式(14)所示,合成向量被标准化,使得其最大值不超过1.0。此外,将合成向量的最大值设为1.0是一个例示,合成向量的最大值能够设为其它数值。
[0157]
如式(14)所示,控制器控制部24基于作为权重γ的倒数的权重系数1/γ来决定相加向量,并决定合成向量。与权重系数β同样,控制器控制部24将权重系数β用作与引擎部23按每个帧的时间决定的角度相应的动态的值,而不是用作静态的值。控制器控制部24根据引擎部23在作为目标的帧的时间所决定出的角度所表示的方向中的x轴的方向的分量和y轴的方向的分量,来计算权重系数1/γ。在一个例子中,控制器控制部24使用式(15)来计算权重系数1/γ。
[0158][0159]
其中,a和b是表示与在预先设定于坐标轴上的x轴和y轴具有两个轴的虚拟的椭圆的短轴(x轴)和长轴(y轴)的长度或者长轴(x轴)和短轴(y轴)的长度对应的大小的值。a和b是大小不同的值。θ为引擎部23按每个帧的时间决定的角度。这样,权重系数1/γ的关于虚拟的椭圆的基本概念与权重系数β是同样的。c2是用于调整相加向量对控制器控制部24之前所决定并保持的合成向量的影响的常数,使c2的值越大则相加向量的大小越小,因此越缓慢地进行加速。例如,f(s,p)可取的最大值为1,与此对应地,常数c2被设定为20。a和b与具有分别平行于x轴和y轴的两个轴的虚拟的椭圆的两个轴的长度对应,因此例如能够根据虚拟控制器的设计来设为任意的值。另外,由于a、b是常数,因此例如能够根据虚拟控制器的设计来设为任意的值。
[0160]
图12是示出控制器控制部24的合成向量的生成的一例。假定第1帧是相加向量为零向量且控制器控制部24保持的向量也为零向量的情况。在该情况下,合成向量也为零向量。相加向量为零向量的情况主要是引擎部23不获取也不保持数据点的情况、即没有发生触摸事件的情况。下面,第i帧中的相加向量和合成向量分别表示为
[0161]
假定第2帧是相加向量不为零向量的情况。在该情况下,由于控制器控制部24保持的向量为零向量,因此合成向量成为能够确认相加向量直接成为合成向量。
[0162]
假定第3帧是进一步加上了相加向量的情况。在该情况下,由于控制器控制部24保持的向量为因此合成向量成为成为控制器控制部24保持的向量与相加向量之和的向量。
[0163]
假定第4帧是进一步加上相加向量且合成向量的大小(模)超过了1的情况。在该情况下,合成向量成为成为控制器控制部24保持的向量与相加向量之和的向量、且是模为1的向量。
[0164]
在本实施方式中,引擎部23按每个帧的时间决定角度和加权速度,控制器控制部24按每个帧的时间决定变换完毕加权速度。这样,控制器控制部24构成为能够在各帧中决定相加向量,并决定合成向量。
[0165]
控制器控制部24决定的合成向量的方向(角度)和大小与虚拟控制器的方向和大小的输入对应。合成向量还能够说是具有进行了触摸操作的用户所意图的方向和大小的向量。根据上述,用于决定相加向量的变换完毕加权速度、角度以及权重系数1/γ有助于虚拟控制器的方向和大小的输入。另外,用于决定变换完毕加权速度的加权速度和用于决定加权速度的权重系数β也有助于虚拟控制器的方向和大小的输入。但是,在本实施方式中,虚拟控制器这一概念不是必须的,控制器控制部24只要能够在各帧中生成(决定)合成向量并将所决定出的合成向量交接给应用程序部25即可。
[0166]
应用程序部25与用于实现游戏内的动作等的具体的游戏应用程序对应。例如,应用程序部25是在安装于电子装置10的游戏应用程序中实现的功能。游戏应用程序与一般的游戏应用程序同样地,例如按每个与帧频对应的时间来处理主程序的主循环。但是,能够设
为应用程序部25与用于根据用户的操作来使操作目标对象进行动作的输入辅助应用程序或模拟应用程序对应。
[0167]
图13是说明在本发明的一个实施方式的电子装置10中执行的与合成向量的决定有关的处理的流程图。在一个例子中,电子装置10按每个与帧频对应的时间执行本流程图的步骤501~505。
[0168]
在步骤501中,引擎部23通过与步骤306或步骤307对应的处理来决定角度,并且通过与步骤203对应的处理来决定加权速度。在步骤502中,控制器控制部24通过与步骤402对应的处理来决定变换完毕加权速度。
[0169]
在步骤503中,控制器控制部24使用在步骤501中决定出的角度、在步骤502中决定出的变换完毕加权速度以及式(14),来决定相加向量
[0170]
在步骤504中,控制器控制部24基于在步骤503中决定出的相加向量与控制器控制部24在之前决定并保持的合成向量之和,来决定合成向量并保持该合成向量。所保持的该合成向量是控制器控制部24在下次的步骤504的处理中参照的、在之前决定并保持的合成向量
[0171]
在步骤505中,本流程图只要不由于例如游戏应用程序结束等而结束,则返回步骤501。当本流程图结束时,控制器控制部24结束对合成向量的保持。
[0172]
在一个例子中,控制器控制部24生成的合成向量的角度和大小变换为操作目标角色的活动等操作目标角色的参数。在一个例子中,应用程序部25执行处理,使得按每个帧的时间决定的合成向量的方向和大小分别成为操作目标角色在每个帧的时间的移动方向和移动速度。在一个例子中,应用程序部25基于合成向量的大小,来决定操作目标角色的移动状态。例如,应用程序部25针对合成向量的大小进行如下判定:(a)在合成向量的大小为阈值t1以下时判定为“走路”,(b)在合成向量的大小大于阈值t1且为阈值t2以下时判定为“快走”,(c)在合成向量的大小大于阈值t2时判定为“奔跑”。
[0173]
接着,对基于本发明的实施方式的电子装置10的主要作用效果进行说明。
[0174]
引擎部23基于根据用户对触摸面板12的操作而发生的触摸事件来获取数据点,并将其保存到第一缓冲器中。
[0175]
引擎部23基于第一缓冲器中保存的数据点,按每个帧的时间决定数据点的集合所示出的角度。例如,引擎部23在决定该角度时,结束对第一缓冲器中保持的数据点中的、超过了既定的保持时间的数据点的保持,并基于第一缓冲器中保持的数据点来决定回归直线的斜率,基于作为数据点的集合的位移方向,来决定表示是否使所决定出的回归直线的斜率旋转180度的旋转量,并基于所决定出的回归直线的斜率和所决定出的旋转量来决定角度。
[0176]
引擎部23按每个帧的时间将第一缓冲器中保持的数据点作为数据点列保持到第二缓冲器中。引擎部23基于第二缓冲器中保持的数据点列中的数据点的位移,来决定该数据点列中的位移速度,并至少基于所决定出的最新的位移速度相对于在此前决定出的位移速度的平均值的偏差(deviation),来决定加权速度。例如,引擎部23按每个帧的时间使用式(3)的cpd函数来决定加权速度。控制器控制部24按每个帧的时间,向用于决定与被输入
的值对应的值的激活函数f(s,p)输入所决定出的加权速度,由此决定变换完毕加权速度。
[0177]
控制器控制部24按每个帧的时间,基于所决定出的变换完毕加权速度、具有所决定出的角度的单位向量、以及权重系数1/γ,来决定合成向量。例如,控制器控制部24使用式(14)来计算合成向量。
[0178]
这样,在本实施方式中,能够输出与虚拟控制器的方向和大小的输入对应的合成向量。
[0179]
在本实施方式中,引擎部23在决定位移速度时,使用式(5)以及引擎部23决定出的角度来计算权重系数β,使用式(4)以及所计算出的权重系数β来决定位移速度。位移速度与作为目标的帧的时间内的数据点的位移的速度对应,能够解释为与用户的手指的移动速度对应。在权重系数β被设计为其值越大则位移速度越大、例如越易于使操作目标角色加速的情况下,权重系数β被设定为较大的值。以往,权重系数β被设定为常数值,但是在本实施方式中,权重系数β如式(5)所示那样赋予以预先设定的长度不同的a和b为各轴的长度的椭圆形的角度θ处的半径的大小的倒数的权重。因而,通过权重系数β,能够对椭圆形的长轴方向的输入赋予更小的值(权重),对椭圆形的短轴方向的输入赋予更大的值(权重)。由此,能够构成为仅针对特定的轴方向的输入计算较大的位移速度,例如能够设计为仅针对特定的轴方向的输入使操作目标角色易于加速。
[0180]
另外,在本实施方式中,控制器控制部24在计算合成向量时,使用引擎部23决定的角度和式(15)来计算权重系数1/γ。如式(15)所示,权重系数1/γ的关于虚拟的椭圆的基本概念与权重系数β是同样的。因而,通过权重系数1/γ,能够对椭圆形的长轴方向的输入赋予更小的值(权重),对椭圆形的短轴方向的输入赋予更大的值(权重)。由此,能够构成为仅针对特定的轴方向的输入计算较大的模的相加向量,例如能够设计为仅针对特定的轴方向的输入来使操作目标角色易于加速。
[0181]
这样,在本实施方式中,在计算合成向量时,在每帧中,在由引擎部23计算加权速度的场景和由控制器控制部24计算合成向量的场景中,能够赋予预先设定的虚拟的椭圆形的与输入方向相应的半径的大小的倒数的权重。由此,能够使得仅针对特定的轴方向的输入而输入更大的值,从而能够实现辅助用户在手指难以倾向的方向上的输入的输入方法。例如,根据用户的喜好、手指的形状或者触摸面板12的纵向使用和横向使用,来调整或切换虚拟的椭圆的两个轴的长度,由此能够进行在用户的手指难以倾向的方向等上灵活地进行加速的辅助。这样,由于能够根据游戏内容、用户的习惯来容易地定制虚拟控制器,因此能够实现操作性更高的虚拟控制器、即用户更易于操作的输入方法。
[0182]
此外,在权重系数为常数的情况下,虚拟控制器构成为对360
°
中的任意方向上的输入均赋予相同的权重,例如以使操作目标角色同等地进行加速的方式计算合成向量。这样的虚拟控制器模仿在正圆的范围内运动的操纵杆的举动,没有考虑手指难以运动的方向上的输入。如本实施方式这样,通过提供一种模仿在定制了两个轴的长度的椭圆形的范围内运动的操纵杆的举动的输入方法,能够实现考虑了手指难以运动的方向上的输入的输入方法。
[0183]
另外,在本实施方式中,在保持各帧的位移速度比到紧挨着其之前的帧为止的位移速度的平均值大的值时,cpd函数输出更大的值。在用户有意地使手指快速运动的情况下,由于手指必然进行一定时间的加速,因此cpd函数输出更大的值。在根据触摸面板12与
手指的接触状况而仅在一帧的时间位移速度增大的情况下,cpd函数通过乘上1/n而均值化,因此尤其在n为最大值时cpd函数不会输出极大的值。这样,cpd函数的输出值在有意地使手指持续加速的情况下成为大的值,在不意图加速时不成为大的值,因此能够设为符合用户的直观感觉的操作的大小。并且,由于cpd函数通过使用相对于平均值的偏差(deviation)来吸收每名用户使手指运动的速度的习惯、个人差异,因此电子装置10通过使用cpd函数,能够仅检测有意的加速。
[0184]
另一方面,cpd函数按每帧持续地计算值,因此大多情况下根据用户的手指的非连续的运动而输出非连续地变化的值。在本实施方式中,通过向具有输出不低于在之前输出的值p的值的如棘轮(ratchet)这样的特性的激活函数f(s,p)输入cpd函数的输出,能够将cpd函数的输出值变换为更稳定的输出值。通过设为这样的结构,能够将反映了非连续的手指的运动速度的cpd函数的输出值变换为更稳定的输出值。由此,能够反映用户所意图的输入,并且使操作目标角色的移动方向、移动速度等参数为稳定的值,能够实现用户更易于操作的输入方法。
[0185]
另外,在本实施方式中,在根据用户对触摸面板12的操作而发生了触摸结束或触摸取消的触摸事件的情况下,激活函数f(s,p)结束对最大值的保持。通过设为这样的结构,能够仅在持续触摸的期间将反映了非连续的手指的运动速度的cpd函数的不稳定的输出值变换为稳定的输出值,在触摸的持续结束的同时将输出值设为零。
[0186]
另外,在本实施方式中,如上述那样,引擎部23决定角度,控制器控制部24基于所决定出的变换完毕加权速度以及具有所决定出的角度的单位向量来决定(输出)合成向量。这样,在本实施方式中,能够决定(输出)具有对触摸面板12进行了触摸操作的用户所意图的方向和大小的合成向量。通过设为这样输出合成向量的结构,能够将引擎部23决定(计算)的角度和速度(加权速度)的值变换为操作目标角色的活动等操作目标角色的参数。或者,能够将引擎部23决定(计算)的角度和速度(加权速度)的值变换为虚拟控制器的方向和大小的输入。由此,能够实现具备更高的响应性且更符合用户的直观感觉的虚拟控制器。例如,在持续触摸的期间,合成向量持续地被加上相加向量,但是在使手指转向方向d1之后使手指转向与该方向d1正相反的方向d2的情况下,合成向量的大小如式(14)所示那样暂时减小。之后,合成向量成为具有更大的模的朝向方向d2的向量,因此符合用户的直观感觉。
[0187]
此外,在本实施方式中,引擎部23是基于在极短的时间内发生的触摸事件来持续计算角度和加权速度的结构。因此,能够不将过去的触摸坐标用作基准点而计算虚拟控制器的角度和大小的输入或操作目标角色的参数。这样,在本实施方式中,电子装置10能够不使用在现有技术中的虚拟控制器中使用的开始点(开始坐标)、结束点(结束坐标)之类的点这样的空间上的概念而计算角度和大小。
[0188]
另外,在本实施方式中,电子装置10与现有技术中的虚拟控制器不同,不是与手指从基准坐标起的移动距离相应的输入,因此能够通过手指的移动量更少的操作来实现用户所意图的操作。因而,相比于现有技术而言,能够以更小的安装面积实现。例如,无论触摸面板12的大小如何都能够实现相同的操作性。
[0189]
上述的作用效果只要没有特别提及,则在其它实施方式、其它实施例中也是同样的。
[0190]
在本发明的其它实施方式中,还能够设为用于实现上述中说明的本发明的实施方
式的功能、流程图所示的信息处理的程序、保存有该程序的计算机可读存储介质。另外,在其它实施方式中,还能够设为用于实现上述中说明的本发明的实施方式的功能、流程图所示的信息处理的方法。另外,在其它实施方式中,还能够设为能够向计算机供给用于实现上述中说明的本发明的实施方式的功能、流程图所示的信息处理的程序的服务器。另外,在其它实施方式中,还能够设为用于实现上述中说明的本发明的实施方式的功能、流程图所示的信息处理的虚拟机。
[0191]
下面,对本发明的实施方式的变形例进行说明。下面,主要对与本发明的实施方式的不同点进行说明。下面叙述的变形例只要不产生矛盾,则能够被适当组合并应用于本发明的任意的实施方式或变形例。
[0192]
在一个变形例中,权重系数1/γ是常数,控制器控制部24不使用式(15)来计算权重系数1/γ。在本变形例中也是,引擎部23使用式(5)来计算权重系数β,因此能够构成为仅针对特定的轴方向的输入计算较大的位移速度。
[0193]
在一个变形例中,权重系数β是常数,引擎部23不使用式(5)来计算权重系数β。在本变形例中也是,控制器控制部24使用式(15)来计算权重系数1/γ,因此能够构成为仅针对特定的轴方向的输入计算较大的模的相加向量。
[0194]
在一个变形例中,权重系数β并非如式(5)所示那样赋予以预先设定的长度不同的a和b为各轴的长度的椭圆形的角度θ处的半径的大小的倒数的权重。代替此,权重系数β赋予具有与以预先设定的长度不同的a和b为各轴的长度的椭圆形类似的形状或性质的多边形的角度θ处的从中心到多边形的边为止的长度的倒数的权重。多边形的角度θ处的从中心到多边形的边为止的长度是中心与从中心延伸至角度θ的直线同多边形的边的交点之间的长度。由此,权重系数β能够赋予与使用式(5)计算的权重类似的权重。例如,具有与以a和b为各轴的长度的椭圆形类似的形状或性质的多边形是外接于该椭圆形的多边形或内接于该椭圆形的多边形。引擎部23能够根据角度θ所表示的方向中的x轴的方向的分量和y轴的方向的分量来计算权重系数β,但是能够使用基于如本变形例所示那样的多边形的函数来计算权重系数β。权重系数1/γ能够取代权重系数β或者与权重系数β一起用于赋予具有与以预先设定的长度不同的a和b为各轴的长度的椭圆形类似的形状或性质的多边形的角度θ处的从中心到多边形的边为止的长度的倒数的权重。控制器控制部24能够根据角度θ所表示的方向中的x轴的方向的分量和y轴的方向的分量来计算权重系数1/γ,但是能够使用基于如本变形例所示那样的多边形的函数来计算权重系数1/γ。
[0195]
在一个变形例中,控制器控制部24不计算变换完毕加权速度,在式(14)中取代f(s,p)而使用作为cpd函数的输出值的加权速度,来计算合成向量。本变形例不是将cpd函数的输出值变换为稳定的输出值的结构。在本变形例中,也能够构成为仅针对特定的轴方向的输入计算较大的位移速度或较大的模的相加向量,例如也能够设计为仅针对特定的轴方向的输入使操作目标角色易于加速。
[0196]
在一个变形例中,规定的函数构成为不使用式(13),而是根据被输入的值为规定的阈值以上这一情况来决定与阈值相应的大小的常数,由此决定与被输入的值对应的值。例如,规定的函数是通过式(16)决定的激活函数f1(s,p)。s和p与式(13)的f(s,p)的情况相同,作为cpd函数的输出值的s为输入,p是f1(s,p)在之前输出的值。
[0197][0198]
激活函数f1(s,p)以s为输入,根据阈值t1与t2(t1《t2)的比较、以及p的值与b1及1.0的比较,来输出(决定)实数a1、实数b1以及1.0(a1《b1《1.0)中的某一个值。或者,激活函数f1(s,p)以s为输入,通过s与阈值t1及t2的比较,来决定实数a1、实数b1以及1.0中的某一个值即o,输出o和p中的较大的一方。在持续触摸的期间,在s一次都没有超过t1的情况下,f1(s,p)输出a1,在s取过一次大于t1且为t2以下的值的情况下,f1(s,p)此后输出b1,在s取过一次大于t2的值的情况下,f1(s,p)此后输出1.0。图14是示出激活函数f1(s,p)中的输入s与针对该输入s决定的值o之间的关系的一个例示。
[0199]
这样,通过设为将反映了非连续的手指的运动速度的cpd函数的输出值变换为与该输出值的大小相应的分等级的多个值的结构,能够变换为更稳定的输出值。
[0200]
在一个变形例中,规定的函数构成为不使用式(13),而是通过应用将被输入的一个值映射到一定的值域内的一个值的函数来决定与被输入的值对应的值。例如,规定的函数是通过式(17)决定的激活函数f2(s,p)。s和p与式(13)的f(s,p)的情况相同,作为cpd函数的输出值的s为输入,p是f1(s,p)在之前输出的值。
[0201][0202]
激活函数f2(s,p)以s为输入来决定值o=a2s+b2,并输出(决定)o和p中的较大的一方。图15是示出激活函数f2(s,p)中的输入s与针对该输入s决定的值o之间的关系的一个例示。
[0203]
另外,例如,规定的函数是通过式(18)决定的激活函数f2(s,p)。s和p与式(13)的f(s,p)的情况相同,作为cpd函数的输出值的s为输入,p是f1(s,p)在之前输出的值。
[0204][0205]
激活函数f3(s,p)以s为输入来决定值o=a3es+b3,并输出(决定)o和p中的较大的一方。图16是示出激活函数f2(s,p)中的输入s与针对该输入s决定的值o之间的关系的一个例示。
[0206]
通过设为这样的结构,能够将反映了非连续的手指的运动速度的cpd函数的输出值变换为更稳定的输出值,并且实现期望的操作目标角色的活动。
[0207]
在一个变形例中,权重系数β和权重系数1/γ是常数。本变形例不是考虑了手指难以运动的方向上的输入的结构,在本变形例中,控制器控制部24计算变换完毕加权速度,并计算相加向量。因此,能够反映用户所意图的输入,并且能够使操作目标角色的移动方向、移动速度等参数为稳定的值,能够实现用户更易于操作的输入方法。
[0208]
在一个变形例中,引擎部23在规定的时机例如按不同于与帧频对应的时间的每个既定的时间,将数据点列保持到第二缓冲器中。在一个变形例中,引擎部23在规定的时机例
如按不同于与帧频对应的时间的每个既定的时间决定位移速度,并决定加权速度。在一个变形例中,控制器控制部24在规定的时机例如按不同于与帧频对应的时间的每个既定的时间决定变换完毕加权速度。在一个变形例中,控制器控制部24在规定的时机例如按不同于与帧频对应的时间的每个既定的时间生成合成向量。
[0209]
在一个变形例中,第一缓冲器包括用于决定加权速度的缓冲器b1和用于决定角度的缓冲器b2。例如两个缓冲器b1、b2构成为具有互不相同的保持时间。引擎部23将缓冲器b1中保持的一个或多个数据点作为数据点列保持到第二缓冲器中。
[0210]
在一个变形例中,引擎部23决定变量v,在独立变量的方差为v以上的情况下,使用函数aop(x,y)来计算并决定角度。在独立变量的方差小于v的情况下,引擎部23不计算角度而决定保持的角度。独立变量的方差小于v的情况是指n个数据点p局部性地集中。因而,引擎部23通过决定变量v,来忽略手指的过于细微的运动,能够进行稳定的角度的计算。例如,变量v被设定为0.7。
[0211]
在一个变形例中,引擎部23使用最小二乘法以外的已知的方法来计算回归直线的斜率。在该情况下,引擎部23不决定表示是否使所决定出的回归直线的斜率旋转180度的旋转量,随之,不决定独立变量的轴和从属变量的轴。例如,能够使用卡尔曼滤波或粒子滤波等算法。
[0212]
在一个变形例中,引擎部23不决定变量da,不结束对第一缓冲器中保持的数据点中的、被判断为超过了既定的保持时间的数据点的保持。在该情况下,引擎部23通过参照在以规定的时间错开的特定的时间段保存的数据点,来决定角度。
[0213]
在一个变形例中,引擎部23在获取触摸事件时获取由两个变量构成的数值的组(x,y),将由两个变量构成的数值的组(x,y)不与数据点获取时间t相对应地保存到第一缓冲器中。例如,引擎部23能够将与数据点获取时间t对应的信息存储到第一缓冲器以外的存储装置14内的存储器区域等中,并将与数据点获取时间t对应的信息同第一缓冲器中保存的数据相对应地进行管理。
[0214]
在以上所说明的处理或动作中,只要不发生在某个步骤中利用了在该步骤中应该还不能利用的数据等处理或动作上的矛盾,则能够自由地变更处理或动作。另外,以上所说明的各实施例是用于说明本发明的例示,并不是本发明被限定为这些实施例。本发明只要不脱离其主旨,则能够以各种方式实施。
[0215]
附图标记说明
[0216]
10:电子装置;11:处理器;12:输入装置、触摸面板;13:显示装置;14:存储装置;15:通信装置;16:总线;21:输入部;22:显示部;23:引擎部;24:控制器控制部;25:应用程序部;31、33、35:角度;32、34、36:方向;41:角度;42:向量。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1