KR20200138811A - 프로그램, 전자 장치, 및 방법 - Google Patents

프로그램, 전자 장치, 및 방법 Download PDF

Info

Publication number
KR20200138811A
KR20200138811A KR1020207031560A KR20207031560A KR20200138811A KR 20200138811 A KR20200138811 A KR 20200138811A KR 1020207031560 A KR1020207031560 A KR 1020207031560A KR 20207031560 A KR20207031560 A KR 20207031560A KR 20200138811 A KR20200138811 A KR 20200138811A
Authority
KR
South Korea
Prior art keywords
axis
angle
determined
determining
data points
Prior art date
Application number
KR1020207031560A
Other languages
English (en)
Other versions
KR102362465B1 (ko
Inventor
슈이치 쿠라바야시
Original Assignee
가부시키가이샤 사이게임스
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 사이게임스 filed Critical 가부시키가이샤 사이게임스
Publication of KR20200138811A publication Critical patent/KR20200138811A/ko
Application granted granted Critical
Publication of KR102362465B1 publication Critical patent/KR102362465B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/218Input arrangements for video game devices characterised by their sensors, purposes or types using pressure sensors, e.g. generating a signal proportional to the pressure applied by the player
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/426Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • G06F3/0446Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means using a grid-like structure of electrodes in at least two directions, e.g. using row and column electrodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

가상 공간 내의 조작 대상 오브젝트를 제어함에 있어서, 보다 조작성을 높일 수 있는 프로그램을 제공한다. 본 발명은, 전자 장치에서 실행되는 프로그램이며, 해당 전자 장치에, 터치 패널로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하는 단계와, 보지되어 있는 데이터 포인트 중 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료하는 단계와, 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정하는 단계와, 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정하는 단계와, 결정된 회귀 직선의 기울기 및 결정된 회전량에 기초하여, 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하는 단계를 실행시킨다.

Description

프로그램, 전자 장치, 및 방법
본 발명은, 프로그램 등에 관한 것이며, 특히, 터치 패널을 구비하는 전자 장치에서 실행되는 프로그램 등에 관한 것이다.
최근의 터치 패널 기술의 향상에 수반하여, 터치 패널 상의 유저 인터페이스를 통하여 유저 입력을 행하는 전자 장치가 널리 보급되어 왔다. 그리고, 전자 장치에서 실행되는 게임에 있어서는, 종래형의 물리적인 콘트롤러에 의한 유저 입력을 대신하여, 전자 장치에 구비된 터치 패널을 통하여 유저 입력을 행하는 형태가 널리 보급되고 있다.
특히, 스마트폰 등으로 대표되는 소형의 휴대형 전자 장치의 보급이 급속히 진행되고, 이러한 휴대형 전자 장치 상에서 실행되는 게임도 수많이 출시되고 있다. 이러한 상황에서, 터치 패널에 표시된 플레이어 캐릭터 등의 가상 오브젝트의 조작 방법에 대해서는, 예를 들면, 비특허 문헌 1에 나타내는 버추얼 패드에 관한 기술을 포함하여, 다양한 기술이 제안되고 있다.
예를 들면, 특허 문헌 1에는, 터치 패널을 구비하는 게임 장치이며, 유저의 터치 조작에 따라 원점을 설정하여 조이스틱을 본뜬 조작을 행할 수 있는 게임 장치 또는 프로그램이 개시되어 있다. 해당 게임 장치는, 터치 패널이 터치를 검출하고 있지 않은 상태에서 검출한 상태로 변화된 경우에 검출을 개시했을 때의 좌표에 기초하여 기준 좌표를 설정하고, 그 후, 터치 검출을 계속하는 경우, 그 후에 검출한 좌표에 기초하여 지시 좌표를 설정한다. 그리고 해당 게임 장치는, 기준 좌표로부터 지시 좌표로의 벡터의 방향이 조이스틱을 넘어뜨리고 있는 방향, 벡터의 크기가 조이스틱이 넘어뜨려진 상태라고 인식함으로써, 가상 조이스틱을 실현하고, 가상 오브젝트의 조작을 실현하고 있다.
일본 특허 등록 공보 제3734820호
Matthias Baldauf, Peter Frohlich, Florence Adegeye, and Stefan Suette. 2015. Investigating On-Screen Gamepad Designs for Smartphone-Controlled Video Games. ACM Trans. Multimedia Comput. Commun. Appl. 12, 1s, Article 22 (October 2015), 21 pages. DOI: https://doi.org/10.1145/2808202
특허 문헌 1에 도시하는 종래 기술에 있어서, 유저는, 터치 패널 상의 한 개소를 손가락으로 접촉하여 게임 장치에 기준 좌표를 인식시키고, 접촉한 채로 그 손가락을 슬라이드시켜, 슬라이드 후의 손가락의 접촉 위치에 의하여 게임 장치에 지시 좌표를 인식시킨다. 이와 같이 구성되는 종래 기술은, 유저가 방향을 입력할 때, 기준 좌표로부터 지시 좌표까지 유의한 거리를 생성할 필요가 있으므로, 높은 응답성을 실현하는 것은 어려웠다. 예를 들면, 유저가 가상 조이스틱을 크게 넘어뜨린 조작을 행하고자 하는 경우, 크게 넘어뜨린 조이스틱이 넘어뜨려진 상태에 대응하는 기준 좌표로부터 지시 좌표로의 벡터의 크기를 생성할 필요가 있었다.
따라서, 터치 패널에 표시된, 가상 공간 상에 배치된 가상 오브젝트를 제어하는 조작 방법으로서, 예를 들면, 보다 고속으로 직감적인 조작 방법의 실현이 요구되고 있다. 더 일반화하면, 가상 공간 내에 배치되고, 유저의 조작 대상이 될 수 있는 오브젝트인 조작 대상 오브젝트를 제어하는 조작 방법으로서, 보다 조작성이 높은 조작 방법의 실현이 요구되고 있다.
본 발명은, 이러한 과제를 해결하기 위하여 이루어진 것이며, 가상 공간에 있어서의 조작 대상 오브젝트를 제어함에 있어서, 보다 조작성을 높일 수 있는 프로그램 등을 제공하는 것을 주목적으로 한다.
상기의 목적을 달성하기 위하여, 본 발명의 일 태양으로서의 프로그램은, 터치 패널을 구비하는 전자 장치에서 실행되는 프로그램이며, 해당 전자 장치에, 상기 터치 패널로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하는 단계와, 상기 보지되어 있는 데이터 포인트 중 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료하는 단계와, 상기 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정하는 단계와, 상기 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여 상기 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정하는 단계와, 상기 결정된 회귀 직선의 기울기 및 상기 결정된 회전량에 기초하여, 상기 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하는 단계를 실행시키는 것을 특징으로 한다.
또한, 본 발명에 있어서 바람직하게는, 상기 회전량을 결정하는 단계는, 상기 보지되어 있는 데이터 포인트에 있어서의 시계열적으로 전후하는 데이터 포인트의 변위 방향에 기초하여, 상기 조작 대상 오브젝트를 제어하기 위한 각도를 결정함에 있어서, 상기 결정된 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정한다.
또한, 본 발명에 있어서 바람직하게는, 상기 프로그램은, 상기 전자 장치에, 상기 보지되어 있는 데이터 포인트에 있어서의 상기 제1 축의 값의 변위량 및 상기 제2 축의 값의 변위량에 기초하여, 독립 변수의 축으로서 해당 제1 축 및 해당 제2 축 중 어느 한 쪽의 축을 결정하는 단계와, 다른 한 쪽의 축을 종속 변수의 축으로서 결정하는 단계를 더 실행시키고, 상기 회귀 직선의 기울기를 결정하는 단계는, 상기 결정된 독립 변수의 축 및 종속 변수의 축에 더 기초하여, 회귀 직선의 기울기를 결정한다.
또한, 본 발명에 있어서 바람직하게는, 상기 어느 한 쪽의 축을 결정하는 단계는, 상기 보지되어 있는 데이터 포인트에 있어서의, 상기 제1 축의 최대값과 최소값의 차분값 및 상기 제2 축의 최대값과 최소값의 차분값에 기초하여, 독립 변수의 축으로서 상기 어느 한 쪽의 축을 결정한다.
또한, 본 발명에 있어서 바람직하게는, 상기 어느 한 쪽의 축을 결정하는 단계는, 상기 보지되어 있는 데이터 포인트에 있어서의, 상기 제1 축의 최대값과 최소값의 차분값에 대하여 가중치 부여를 행한 값 및 상기 제2 축의 최대값과 최소값의 차분값의 크기를 비교함으로써, 독립 변수의 축으로서 상기 어느 한 쪽의 축을 결정한다.
또한, 본 발명에 있어서 바람직하게는, 상기 회전량을 결정하는 단계는, 상기 보지되어 있는 데이터 포인트에 있어서의 시계열적으로 전후하는, 상기 결정된 독립 변수의 축의 값의 차분값의 음양의 수량을 비교함으로써, 상기 조작 대상 오브젝트를 제어하기 위한 각도를 결정함에 있어서, 상기 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정한다.
또한, 본 발명에 있어서 바람직하게는, 상기 회귀 직선의 기울기를 결정하는 단계는, 상기 보지되어 있는 데이터 포인트에 있어서의, 독립 변수의 평균 및 종속 변수의 평균을 결정하는 단계와, 상기 결정된 평균을 이용하여, 상기 보지되어 있는 데이터 포인트에 있어서의, 독립 변수의 편차 및 종속 변수의 편차를 결정하는 단계와, 상기 결정된 독립 변수의 편차를 이용하여, 상기 보지되어 있는 데이터 포인트에 있어서의 독립 변수의 분산을 결정하는 단계와, 상기 결정된 독립 변수의 편차 및 종속 변수의 편차를 이용하여, 상기 보지되어 있는 데이터 포인트에 있어서의 공분산을 결정하는 단계와, 상기 결정된 공분산을 상기 결정된 독립 변수의 분산으로 나눔으로써 회귀 직선의 기울기를 결정하는 단계를 포함한다.
또한, 본 발명에 있어서 바람직하게는, 상기 제1 축은, 상기 터치 패널의 센서가 배열되는 방향의 짧은 쪽 방향을 나타내는 X 축이며, 상기 제2 축은, 상기 터치 패널의 센서가 배열되는 방향의 긴 쪽 방향을 나타내고, 상기 제1 축에 직교하는 Y 축이며, 상기 회귀 직선의 기울기를 결정하는 단계는, 상기 결정된 독립 변수의 축이 상기 제2 축인 경우, 상기 결정된 공분산을 상기 결정된 독립 변수의 분산으로 나눔으로써 결정된 회귀 직선의 기울기에 대응하는 각도를, 90 도로부터 뺌으로써 회귀 직선의 기울기를 결정한다.
또한, 본 발명에 있어서 바람직하게는, 상기 제1 축은, 상기 터치 패널의 센서가 배열되는 방향의 짧은 쪽 방향을 나타내는 X 축이며, 상기 제2 축은, 상기 터치 패널의 센서가 배열되는 방향의 긴 쪽 방향을 나타내고, 상기 제1 축에 직교하는 Y 축이다.
또한, 본 발명에 있어서 바람직하게는, 상기 각도를 결정하는 단계는, 미리 정해진 처리 시간마다 각도를 결정한다.
또한, 상기의 목적을 달성하기 위하여, 본 발명의 일 태양으로서의 한 조의 프로그램은, 상기의 프로그램을 포함하는, 상기 터치 패널을 구비하는 상기 전자 장치에서 실행되는 게임을 위한 한 조의 프로그램이며, 상기 미리 정해진 처리 시간은, 게임을 실행하기 위한 프레임 레이트에 대응하는 시간이며, 상기 미리 정해진 처리 시간마다 결정되는 각도에 기초하여, 상기 미리 정해진 처리 시간마다 각도 및 크기를 결정하는 단계와, 상기 미리 정해진 처리 시간마다 결정되는 각도 및 크기에 기초하여, 상기 터치 패널에 표시되는 상기 조작 대상 오브젝트를 제어하는 단계를 실행시키는 것을 특징으로 한다.
또한, 상기의 목적을 달성하기 위하여, 본 발명의 일 태양으로서의 한 조의 프로그램은, 상기의 프로그램을 포함하는, 상기 터치 패널을 구비하는 상기 전자 장치에서 실행되는 게임을 위한 한 조의 프로그램이며, 상기 미리 정해진 처리 시간은, 게임을 실행하기 위한 프레임 레이트에 대응하는 시간이며, 상기 미리 정해진 처리 시간마다 결정되는 각도에 기초하여, 상기 미리 정해진 처리 시간마다 각도 및 크기를 결정하는 단계와, 상기 미리 정해진 처리 시간마다 결정되는 각도 및 크기에 기초하여, 상기 터치 패널에 표시되는 게임 화상을 촬영하기 위한 상기 조작 대상 오브젝트인 가상 카메라를 제어하는 단계를 실행시키는 것을 특징으로 한다.
또한, 상기의 목적을 달성하기 위하여, 본 발명의 일 태양으로서의 전자 장치는, 터치 패널을 구비하는 전자 장치이며, 상기 터치 패널로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하고, 상기 보지되어 있는 데이터 포인트 중 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료하고, 상기 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정하고, 상기 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여 상기 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정하고, 상기 결정된 회귀 직선의 기울기 및 상기 결정된 회전량에 기초하여, 상기 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하는 것을 특징으로 한다.
또한, 상기의 목적을 달성하기 위하여, 본 발명의 일 태양으로서의 방법은, 터치 패널을 구비하는 전자 장치에서 실행되는 방법이며, 상기 터치 패널로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하는 단계와, 상기 보지되어 있는 데이터 포인트 중 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료하는 단계와, 상기 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정하는 단계와, 상기 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여 상기 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정하는 단계와, 상기 결정된 회귀 직선의 기울기 및 상기 결정된 회전량에 기초하여, 상기 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하는 단계를 가지는 것을 특징으로 한다.
본 발명에 의하면, 가상 공간에 있어서의 조작 대상 오브젝트를 제어함에 있어서, 보다 조작성을 높일 수 있다.
도 1은, 본 발명의 일 실시 형태에 의한 전자 장치의 하드웨어 구성을 도시하는 블록도이다.
도 2는, 본 발명의 일 실시 형태에 의한 전자 장치의 기능 블록도이다.
도 3은, 본 실시 형태의 제1 축 및 제2 축으로 이루어지는 좌표 축을 도시하는 도면이다.
도 4는, 각도 결정부가 결정되는 각도와 각도에 대응하는 방향의 일예를 설명하는 도면이다.
도 5는, 시간(t1)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다.
도 6은, 시간(t1)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다.
도 7은, 도 5에 도시하는 데이터 포인트의 집합으로부터 구한 회귀 직선을 도시하는 도면이다.
도 8은, 도 7에 도시하는 회귀 직선의 기울기를 이용하여 함수(aop(x, y))가 산출한 각도를 도시하는 도면이다.
도 9는, 시간(t2)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다.
도 10은, 도 9에 도시하는 회귀 직선의 기울기를 이용하여 함수(aop(x, y))가 산출한 각도를 도시하는 도면이다.
도 11은, 시간(t3)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다.
도 12는, 시간(t3)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다.
도 13은, 도 11에 도시하는 데이터 포인트의 집합으로부터 구한 회귀 직선 및 해당 회귀 직선의 기울기를 이용하여 함수(aop(x, y))가 산출한 각도를 도시하는 도면이다.
도 14는, 시간(t4)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다.
도 15는, 시간(t4)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다.
도 16은, 도 14에 도시하는 데이터 포인트의 집합으로부터 구한 회귀 직선을 도시하는 도면이다.
도 17은, 도 16에 도시하는 회귀 직선의 기울기를 이용하여 함수(aop(x, y))가 산출한 각도를 도시하는 도면이다.
도 18은, 본 발명의 일 실시 형태에 의한 전자 장치가 데이터 포인트의 집합으로부터 가상 캐릭터를 제어하는 모습을 도시하는 도면이다.
도 19는, 본 발명의 일 실시 형태에 의한 각도 결정부의 정보 처리의 플로우차트를 도시하는 도면이다.
도 20은, 본 발명의 일 실시 형태에 의한 전자 장치가 표시하는 화상을 촬영하는 가상 공간 내에 배치된 가상 카메라를 나타내는 도면이다.
이하, 도면을 참조하여, 본 발명의 실시 형태를 설명한다. 각 도면에서, 동일한 부호는, 특별히 언급이 없는 한, 동일 또는 상당 부분을 도시하는 것으로 하고, 설명의 편의 상, 도면의 종횡의 축척을 실제의 것과는 상이하게 나타내는 경우가 있다. 또한, 설명의 편의 상, 필요 이상으로 상세한 설명은 생략하는 경우가 있다. 예를 들면, 이미 잘 알려진 사항의 상세 설명이나 실질적으로 동일한 구성에 대한 중복 설명을 생략하는 경우가 있다.
본 발명의 일 실시 형태에 의한 전자 장치(10)는, 가상 공간에 배치된 가상적인 오브젝트를 유저에게 제시하고, 게임을 진행하는 게임 어플리케이션이 인스톨되어 있다. 본 실시 형태의 전자 장치(10)는, 해당 게임 어플리케이션이 실행되면, 유저의 조작에 따라, 가상 공간 내의 유저의 조작 대상의 가상적인 오브젝트인 조작 대상 오브젝트를 제어하기 위한 가상적인 콘트롤러(가상 콘트롤러)를 제공한다. 가상 공간은, 해당 게임 어플리케이션에 의하여 정해지는 것이며, 2 차원 공간일 수도 있으며, 3 차원 공간일 수도 있다. 예를 들면, 가상적인 오브젝트는, 가상 공간에 배치된 캐릭터 또는 아이템이다. 예를 들면, 조작 대상 오브젝트의 제어란, 가상 공간에 배치된 캐릭터 또는 아이템의 동작의 제어이다.
설명의 편의 상, 본 실시 형태에서는, 전자 장치(10)에는 상기와 같은 게임 어플리케이션이 인스톨되어 있는 것으로 하지만, 이에 한정되지 않는다. 전자 장치(10)는, 유저의 조작에 따라, 조작 대상 오브젝트를 제어하는 것이 가능한 어플리케이션을 실장하고 있으면 된다. 예를 들면, 전자 장치(10)에는, 게임 어플리케이션 대신에, 또는 이에 추가하여, 유저의 조작에 따라 조작 대상 오브젝트를 동작시키는 입력 지원 어플리케이션, 또는 시뮬레이션 어플리케이션이 실장되어도 된다. 본 실시 형태의 전자 장치(10)가 제공하는 가상 콘트롤러는, 유저의 입력으로서 방향과 크기가 필요한 입력에 이용할 수 있다. 이하의 설명에서, 어플리케이션은, 어플리케이션 프로그램 전반을 의미하는 것이며, 스마트폰이나 태블릿 단말에 인스톨되는 앱을 의미할 수 있다.
도 1은, 본 발명의 일 실시 형태에 의한 전자 장치(10)의 하드웨어 구성을 도시하는 블록도이다. 전자 장치(10)는, 프로세서(11), 입력 장치(12), 표시 장치(13), 기억 장치(14), 및 통신 장치(15)를 구비한다. 이러한 각 구성 장치는 버스(16)에 의하여 접속된다. 또한, 버스(16)와 각 구성 장치의 사이에는, 필요에 따라 인터페이스가 개재되어 있는 것으로 한다. 본 실시 형태에서, 전자 장치(10)는 스마트폰이다. 단, 전자 장치(10)는, 상기의 구성을 구비하는 것이라면, 태블릿형 컴퓨터, 터치 패드 등의 접촉형 입력 장치를 구비하는 컴퓨터 등의 단말로 할 수 있다.
프로세서(11)는, 전자 장치(10) 전체의 동작을 제어한다. 예를 들면, 프로세서(11)는, CPU이다. 또한, 프로세서(11)로서는, MPU 등의 전자 회로가 이용되어도 된다. 프로세서(11)는, 기억 장치(14)에 저장되어 있는 프로그램 또는 데이터를 읽어들여 실행함으로써, 다양한 처리를 실행한다. 하나의 예에서는, 프로세서(11)는 복수의 프로세서로 구성된다.
입력 장치(12)는, 전자 장치(10)에 대한 유저로부터의 입력을 받아들이는 유저 인터페이스이며, 예를 들면, 터치 패널, 터치 패드, 키보드, 또는 마우스이다. 표시 장치(디스플레이)(13)는, 프로세서(11)의 제어에 따라, 어플리케이션 화면 등을 전자 장치(10)의 유저에게 표시한다. 본 실시 형태에서는, 스마트폰인 전자 장치(10)는 입력 장치(12)로서 터치 패널(17)을 구비하고, 터치 패널(17)은 표시 장치(13)로서도 기능하며, 입력 장치(12)와 표시 장치(13)는 일체가 된 구조이다. 본 실시 형태의 터치 패널(17)은, 투영형 정전 용량 방식 터치 패널이지만, 동등한 기능을 가지는 디바이스가 있다면, 그것을 이용하여도 된다.
기억 장치(14)는, 휘발성 메모리인 RAM 및 불휘발성 메모리인 ROM을 포함하는, 일반적인 스마트폰이 구비하는 기억 장치이다. 기억 장치(14)는, 외부 메모리를 포함할 수도 있다. 기억 장치(14)는, 게임 어플리케이션을 포함하는 각종 프로그램을 기억한다. 예를 들면, 기억 장치(14)는, 오퍼레이팅 시스템(OS), 미들웨어, 어플리케이션 프로그램, 이들 프로그램의 실행에 수반하여 참조될 수 있는 각종 데이터 등을 저장한다.
하나의 예에서는, 기억 장치(14)는, 주기억 장치 및 보조 기억 장치를 포함한다. 주기억 장치는, 정보의 고속의 읽고 쓰기가 가능한 휘발성의 기억 매체이며, 프로세서(11)가 정보를 처리할 때의 기억 영역 및 작업 영역으로서 이용된다. 보조 기억 장치는, 다양한 프로그램, 또는 각 프로그램의 실행 시에 프로세서(11)가 사용하는 데이터를 저장한다. 보조 기억 장치는, 예를 들면, 하드 디스크 장치이지만, 정보를 저장할 수 있는 것이라면, 어떠한 불휘발성 스토리지 또는 불휘발성 메모리여도 되며, 착탈 가능한 것이여도 상관없다.
통신 장치(15)는, 네트워크를 통하여 서버 등의 다른 컴퓨터와의 사이에서 데이터의 송수신을 행한다. 예를 들면, 통신 장치(15)는, 이동 통신이나 무선 LAN 등의 무선통신을 행하여, 네트워크에 접속한다. 하나의 예에서는, 전자 장치(10)는, 통신 장치(15)에 의하여 프로그램을 서버로부터 다운로드하여 기억 장치(14)에 저장한다. 단, 통신 장치(15)는 기존의 유선 통신을 행해도 된다. 다른 컴퓨터와의 사이에서 데이터의 송수신을 행하지 않는 경우, 전자 장치(10)는 통신 장치(15)를 구비하지 않아도 된다.
도 2는, 본 발명의 일 실시 형태에 의한 전자 장치(10)의 기능 블록도이다. 전자 장치(10)는, 입력부(21), 표시부(22), 및 제어부(23)를 구비한다. 제어부(23)는, 각도 결정부(24), 상태 결정부(25), 및 어플리케이션부(26)를 구비한다. 본 실시 형태에서는, 프로그램이 프로세서(11)에 의하여 실행됨으로써, 이들 기능이 실현된다. 예를 들면, 실행되는 프로그램은, 기억 장치(14)에 기억되어 있는, 또는 통신 장치(15)를 통하여 수신한 프로그램이다. 이와 같이, 각종 기능이 프로그램 읽어들임에 의하여 실현되므로, 한 개의 파트(기능)의 일부 또는 전부를 다른 파트가 가지고 있어도 된다. 단, 각 기능의 일부 또는 전부를 실현하기 위한 전자 회로 등을 구성함으로써, 하드웨어에 의해서도 이들 기능은 실현되어도 된다.
입력부(21)는, 입력 장치(12)를 이용하여 구성되는 것이며, 전자 장치(10)에 대한 유저로부터의 입력을 받아들인다. 본 실시 형태에서는, 입력부(21)는, 터치 패널(17)로의 유저의 터치 조작을 받아들여 터치 이벤트를 발생하는 것이며, 터치 패널(17)을 구비하는 스마트폰이 일반적으로 가지고 있는 터치 검출 기능을 이용할 수 있다.
표시부(22)는, 게임 어플리케이션 화면을 표시 장치(13)에 표시하고, 유저 조작에 따른 화면을 표시한다.
제어부(23)는, 가상 콘트롤러를 실현하는 것이다. 본 실시 형태에서는, 제어부(23)는 3 층 구조의 아키텍쳐를 채용하고, 각도 결정부(24), 상태 결정부(25), 및 어플리케이션부(26)가 각 층에 대응한다. 예를 들면, 제어부(23)는, 각 층에 대응하는 각 프로그램에 의하여 구성되는 한 조의 프로그램이 프로세서(11)에 의하여 실행됨으로써 실현된다.
제어부(23)가 실현하는 가상 콘트롤러에 있어서의 각도 결정부(24)의 역할은, 물리적인 콘트롤러에 있어서의 콘트롤러 내부의 센서 IC 칩에 대응한다. 각도 결정부(24)는, 주로, 터치 패널(17)로의 유저의 터치 조작에 의하여 발생한 터치 이벤트를 이용하여, 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하고, 상태 결정부(25)로 송출한다.
상태 결정부(25)의 역할은, 물리적인 콘트롤러에 있어서의 조작하는 콘트롤러 전체에 대응한다. 상태 결정부(25)는, 주로, 각도 결정부(24)로부터 송출된 각도를 이용하여, 터치 패널(17) 상의 유저의 터치 조작에 대응하는 벡터(각도 및 크기)를 결정하고, 어플리케이션부(26)로 송출한다.
어플리케이션부(26)는, 게임 내의 동작 등을 실장하는, 구체적인 게임 어플리케이션에 대응한다. 게임 어플리케이션은, 일반적인 게임 어플리케이션과 마찬가지로 하여, 프레임 레이트가 정해지고, 예를 들면, 프레임 레이트에 대응하는 시간마다, 메인 프로그램의 메인 루프를 처리한다. 프레임 레이트는, 일반적으로 30fps(프레임 매초) 또는 60fps이다.
각도 결정부(24)는, 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위하여 필요한 각도를 결정한다. 하나의 바람직한 예에서는, 각도 결정부(24)는, 리얼타임으로 각도를 계산하는 수학 함수 라이브러리이며, 한편 단시간의 터치 이벤트의 열로부터의 각도 계산을 행하는, 통계 처리 알고리즘을 실장하는 소프트웨어 모듈이다. 터치 이벤트의 열은, 터치 패널(17) 상의 손가락의 움직임에 대응하는 것이다.
기억 장치(14)는, 데이터 포인트 버퍼를 포함한다. 데이터 포인트 버퍼는, 각도 결정부(24)가 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하기 위한 버퍼이다.
각도 결정부(24)는, 터치 패널(17)로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 데이터 포인트 버퍼에 보지한다. 여기서, 터치 이벤트는, 유저가 터치 패널(17)에 손가락을 접촉한 때(touchstart), 유저가 터치 패널(17)에 손가락을 접촉시킨 채로 움직인 때(touchmove), 유저가 터치 패널(17)로부터 손가락을 떼어 놓은 때(touchend) 등에 발생한다. 각도 결정부(24)는, 터치 이벤트가 발생할 때에, 터치 이벤트를 취득한다. 각도 결정부(24)는, 터치 이벤트를 취득할 때, 터치 패널(17) 상의 정전 용량이 변화한 위치에 대응하는, 2 개의 변수로 이루어지는 수치의 조(x, y)를 취득함과 동시에, (x, y)를 취득한 시간(t)을 취득하여, 3 개의 변수로 이루어지는 수치의 조(x, y, t)를 데이터 포인트 버퍼에 저장한다. 해당 2 개의 변수로 이루어지는 수치의 조의 데이터는, 터치 이벤트에 부수(附隨)하여 각도 결정부(24)가 취득하는 것이며, 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트에 대응하는 것이다. t는 (x, y)을 취득한 시간인 데이터 포인트 취득 시간을 나타내는 값이며, 상기와 같이 (x, y)와 대응되어 데이터 포인트 버퍼에 저장된다. 하나의 예에서는, t는, OS로부터 취득 가능한, 이른바 UNIX(등록 상표) 시간이라 불리는 정수값이거나, 또는 "2017/07/14 15:48:43.444"와 같은 문자열이다. 이하, 특별히 언급이 없는 한, 각도 결정부(24)가 데이터 포인트를 보지하는(또는 보지를 종료하는) 것은, 해당 데이터 포인트에 대응된 데이터 포인트 취득 시간(t)을 보지하는(또는 보지를 종료하는) 것을 포함한다.
본 실시 형태에서는, 설명의 편의 상, 제1 축 및 제2 축을 이하와 같이 정한다. 도 3은, 본 실시 형태의 제1 축 및 제2 축으로 이루어지는 좌표 축을 도시하는 도면이다. 제1 축은, 터치 패널(17)의 센서가 배열되는 방향에 실질적으로 평행한 방향 중, 짧은 쪽 방향을 나타내는 축이며, 터치 패널(17)의 짧은 변과 실질적으로 평행한 가로 축(x 축)이다. 제2 축은, 제1 축에 직교하고, 터치 패널(17)의 센서가 배열되는 방향에 실질적으로 평행한 방향 중, 긴 쪽 방향을 나타내는 축이며, 터치 패널(17)의 긴 변과 실질적으로 평행한 세로 축(y 축)이다. 이와 같이, 제1 축 및 제2 축은, 터치 패널(17)의 센서가 배열되는 방향에 실질적으로 평행하며, 터치 패널(17) 상의 위치는, 2 개의 축에 의하여 좌표 (x, y)로서 표시된다. 따라서, 본 실시 형태에서는, 데이터 포인트의 좌표 (x, y)는, 터치 패널(17) 상의 위치에 대응한다. 본 실시 형태에서는, 각도 결정부(24)는, 해당 좌표 (x, y)를, 데이터 포인트로서 데이터 포인트 버퍼에 보지한다. 도 3에 도시하는 좌표 설정은 일예이며, 터치 패널(17)의 센서 배열 또는 전자 장치(10)가 실장하는 프로그램에 의하여, 상기 예시와 상이하게 설정할 수 있다. 또한, 센서는, 예를 들면, 전극이다.
도 4는, 도 3에 도시하는 바와 같이, 좌표 축이 정해진 경우의, 각도 결정부(24)가 결정하는 각도와, 각도에 대응하는 방향의 일예를 설명하는 도면이다. 제1 상한의 각도(31)는 방향(32)에 대응하고, 제2 상한의 각도(33)는 방향(34)에 대응하며, 제4 상한의 각도(35)는 방향(36)에 대응한다. 여기서, 방향(34)과 방향(36)의 기울기는 같으나, 방향이 역방향이므로, 각도(33)와 각도(35)는 180 도 상이함을 확인할 수 있다.
각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트 중, 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료한다. 예를 들면, 각도 결정부(24)는, 데이터 포인트의 데이터의 보지를 종료하는 경우, 해당 데이터를 삭제해도 되고, 해당 데이터를 무효화해도 되며, 또는 해당 데이터에 보지를 종료한 것을 도시하는 플래그를 관련지어 적절히 삭제하도록 해도 된다. 각도 결정부(24)는, 데이터 포인트 버퍼에 저장하는 데이터 포인트의 수명을 밀리 세컨드로 지정하는 변수(D)를 정한다. 변수(D)에 의하여 지정되는 시간이 미리 정해진 보지 시간에 대응한다. 단, 변수(D)의 값은 밀리 세컨드로 한정되지 않는다.
예를 들면, 각도 결정부(24)는, 한 개의 데이터 포인트를 데이터 포인트 버퍼에 저장하면, 해당 데이터 포인트의 저장되고 나서의 경과 시간을 감시하고, 계속적으로 변수(D)와 비교한다. 각도 결정부(24)는, 감시한 데이터 포인트의 경과 시간이 변수(D)를 초과했을 때, 해당 데이터 포인트를 데이터 포인트 버퍼의 보지를 종료한다. 이와 같이 하여, 각도 결정부(24)는, 데이터 포인트 버퍼가 보지하는 모든 데이터 포인트의 각각의 수명을 관리한다. 이 때, 각도 결정부(24)는, 데이터 포인트 취득 시간(t)을 이용하여, 경과 시간을 산출할 수 있다. 또한, 변수(D)를 초과했다고 판단한 때에는, 변수(D) 이상이라고 판단한 때를 의미할 수 있는 것으로 한다. 또한, 각도 결정부(24)가 관리하는 데이터 포인트의 경과 시간의 단위는, 변수(D)와 같다고 하는 것이 바람직하다.
예를 들면, 변수(D)에 165가 설정되었을 때, 각도 결정부(24)는, 데이터 포인트 버퍼에 저장한 데이터 포인트를 165 밀리 세컨드만큼 보지하고, 165 밀리 세컨드가 경과하면, 해당 데이터 포인트를 데이터 포인트 버퍼의 보지를 종료한다.
각도 결정부(24)는, 정기적으로 각도를 산출할 수 있는지의 여부를 판정한다. 각도 결정부(24)는, 각도를 산출 가능한 경우, 데이터 포인트 버퍼가 보지하는 데이터 포인트를 이용하여, 해당 데이터 포인트의 집합이 나타내는 각도를 산출하고, 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도로서 결정한다. 이와 같이, 각도 결정부(24)는, 데이터 포인트의 집합이 나타내는 각도를 구함으로써, 터치 패널(17)에 대하여 터치 조작을 행한 유저가 의도하는 방향의 각도를 구하는 것이 가능해진다.
각도 결정부(24)는, 결정한 각도를 상태 결정부(25)로 출력한다. 각도 결정부(24)는, 결정한 각도를 상태 결정부(25)로 출력할 때, 예를 들면, angle 이벤트를 나타내는 정보와 함께 출력한다. 각도 결정부(24)는, 상태 결정부(25)로 직접 출력하지 않고, 상태 결정부(25)가 참조하는 기억 장치(14) 내의 메모리 영역에 결정한 각도 또는 angle 이벤트를 나타내는 정보를 저장해도 된다.
각도 결정부(24)는, 취득한 터치 이벤트가 touchstart인 때, start 이벤트를 상태 결정부(25)로 출력하고, 각도를 산출하지 않는다. 각도 결정부(24)는, 취득한 터치 이벤트가 touchend인 때, stop 이벤트를 상태 결정부(25)로 출력하고, 각도를 산출하지 않는다.
각도 결정부(24)는, 변수(B)를 정하고, 데이터 포인트 버퍼가 보지하는 데이터 포인트의 개수가 변수(B)의 수 이상인 경우, 해당 데이터 포인트를 이용하여 각도를 산출하고 결정한다. 각도 결정부(24)는, 데이터 포인트 버퍼가 보지하는 데이터 포인트의 개수가 변수(B)의 수 미만인 경우, 데이터 포인트의 집합이 나타내는 각도를 일정 정밀도 이상으로 산출하는 것이 불가능하므로, keep 이벤트를 상태 결정부(25)로 출력하고, 각도를 산출하지 않는다. 일반적으로는, 회귀 직선의 기울기를 구함에 있어서는 3 개 이상의 데이터 포인트가 있는 것이 바람직하므로, 변수(B)는 3 이상으로 설정되는 것이 바람직하다. 본 실시 형태에서는, 변수(B)는 3으로 설정된다.
각도 결정부(24)는, 각도 결정부(24)가 각도를 산출할 수 있는지의 여부를 판정하는 시간의 간격을 밀리 세컨드로 지정하는 변수(I)를 정한다. 터치 이벤트가 계속 발생하는 경우 등, 각도 결정부(24)가 각도를 산출 가능한 경우가 계속하는 경우, 해당 간격은, 각도 결정부(24)가 각도를 산출하는 시간의 간격이 된다. 단, 변수(I)의 값은 밀리 세컨드로 한정되지 않는다.
각도 결정부(24)는, 상기와 같이 미리 정해진 처리 시간마다 각도 산출 가부에 대하여 판정하고, 미리 정해진 처리 시간마다 각도를 결정한다. 하나의 바람직한 예에서는, 미리 정해진 처리 시간은, 게임을 실행하기 위한 프레임 레이트에 대응하는 시간이다. 프레임 레이트가 30fps(30Hz)인 경우, 변수(I)는 33으로 설정된다. 변수(I)에 33이 설정되었을 때, 각도 결정부(24)는, 33 밀리 세컨드에 1 회 각도를 산출할 수 있을지 판정하고, 각도를 산출 가능한 경우에는 산출한 각도를 결정하고, 결정한 각도를 angle 이벤트와 함께 상태 결정부(25)로 출력한다. 산출 불가능한 경우, 각도 결정부(24)는, start 이벤트, stop 이벤트, 또는 keep 이벤트 중 어느 한 개를 상태 결정부(25)로 출력한다. 또한, angle 이벤트는 각도를 나타내는 정보를 포함할 수 있고, 이 경우, 각도 결정부(24)는, 각도를 산출 가능한 경우, angle 이벤트를 상태 결정부(25)로 출력한다.
데이터 포인트 버퍼가 보지하는 데이터 포인트의 집합이 나타내는 각도를 산출함에 있어서, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정한다. 여기서, 각도 결정부(24)가 참조하는 데이터 포인트의 개수는 3 이상이다. 각도 결정부(24)는, 회귀 직선의 기울기를 결정함에 있어서, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의 x 축의 값의 변위량 및 y 축의 값의 변위량에 기초하여, 독립 변수의 축으로서 x 축 및 y 축 중 어느 한 쪽의 축을 결정한다. 동시에, 각도 결정부(24)는, 다른 한 쪽의 축을 종속 변수의 축으로서 결정한다.
본 실시 형태에서는, 각도 결정부(24)는, 최소 이승법을 이용하여 회귀 직선의 기울기를 산출한다. 최소 이승법을 이용하여 회귀 직선의 기울기를 구하는 방법은 이미 알려져 있으나, 해당 방법은 독립 변수와 종속 변수의 관계의 강도를 기울기로서 구하는 것이다. 최소 이승법은, x 축을 독립 변수의 축으로 하고, y 축을 종속 변수의 축으로서 적용하는 것이 일반적이지만, x 축의 값이 고정되어 y 축의 값만이 변화하는 경우, 종속 변수가 독립 변수에 일절의 종속성을 가지지 않게 된다. 또한, y 축에 따른 기울기를 결정하는 경우, 결정되는 기울기는, 예를 들면, y 축을 넘어 큰 마이너스의 값으로부터 큰 플러스의 값이 되는 경우가 있어, 안정되게 기울기를 내는 것이 어렵다. 그 때문에, 각도 결정부(24)는, x 축의 값과 y 축의 값 중 어느 쪽이 독립 변수로서 적절한지를 판정하고, 결정된 독립 변수의 축 및 종속 변수의 축에 기초하여 최소 이승법을 이용하여 회귀 직선의 기울기를 결정한다.
각도 결정부(24)는, 독립 변수의 축을 x 축으로 할 때, y=ax+b의 회귀 직선의 기울기 a를 결정하고, 독립 변수의 축을 y 축으로 할 때, x=cy+d의 회귀 직선의 기울기 c를 결정한다. 구체적으로는, 각도 결정부(24)는, 이하의 (a) 내지 (e)에 의하여 회귀 직선의 기울기를 구한다.
(a) 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의, 독립 변수의 평균 및 종속 변수의 평균을 산출(결정)한다.
(b) 각도 결정부(24)는, (a)에서 결정된 평균을 이용하여, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의, 독립 변수의 편차 및 종속 변수의 편차를 산출(결정)한다.
(c) 각도 결정부(24)는, (b)에서 결정된 독립 변수의 편차를 이용하여, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의 독립 변수의 분산을 산출(결정)한다.
(d) 각도 결정부(24)는, (b)에서 결정된 독립 변수의 편차 및 종속 변수의 편차를 이용하여, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의 공분산을 산출(결정)한다.
(e) 각도 결정부(24)는, (d)에서 결정된 공분산을 (c)에서 결정된 독립 변수의 분산으로 나눔으로써 회귀 직선의 기울기를 산출(결정)한다.
하나의 예에서는, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의 x 축의 값의 최대값과 최소값의 차분값 및 y 축의 값의 최대값과 최소값의 차분값에 기초하여, 독립 변수의 축으로서 x 축 및 y 축 중 어느 한 쪽의 축을 결정하고, 다른 한 쪽의 축을 종속 변수의 축으로서 결정한다. 바람직하게는, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의 x 축의 값의 최대값과 최소값의 차분값에 대하여 가중 계수를 이용하여 가중치 부여를 행한 값 및 y 축의 값의 최대값과 최소값의 차분값에 기초하여, 독립 변수의 축으로서 x 축 및 y 축 중 어느 한 쪽의 축을 결정하고, 다른 한 쪽의 축을 종속 변수의 축으로서 결정한다.
각도 결정부(24)는, 상기와 같이 최소 이승법을 이용하여 회귀 직선의 기울기를 산출(결정)한다. 바람직하게는, 각도 결정부(24)가 회귀 직선의 기울기를 산출하는 것은, 각도 결정부(24)가 회귀 직선의 기울기의 각도를 산출하는 것을 의미한다. 여기서, 산출되는 회귀 직선의 기울기는 음양의 방향을 가지지 않으므로, 각도 결정부(24)는, 최소 이승법을 이용하여 회귀 직선의 기울기를 산출할 때, 예를 들면, 0 도 내지 90 도 및 270 도 내지 360 도의 범위 내에서 산출한다. 따라서, 예를 들면, 데이터 포인트의 집합이 나타내는 각도가, 45 도의 경우 또는 225 도의 경우에도, 회귀 직선의 기울기로서 45 도가 산출된다. 그 때문에, 각도 결정부(24)는, 회귀 직선의 기울기를 결정한 후, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여, 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정한다. 구체적으로는, 각도 결정부(24)는, 회귀 직선의 기울기를 결정한 후, 유저가 조작 대상 오브젝트를 제어하기 위한 각도를 결정함에 있어서, 결정된 회귀 직선의 기울기(의 각도)에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정한다. 여기서, 데이터 포인트의 집합으로서의 변위 방향은, 데이터 포인트가 시간과 함께 변위하는 방향을 나타내는 것이며, 예를 들면, 유저가 터치 패널(17) 상에서 손가락을 움직이는 대략적인 방향에 대응하는 것이다.
하나의 예에서는, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에서 시계열적으로 전후하는 데이터 포인트의 변위 방향에 기초하여 회전량을 결정한다. 바람직하게는, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에서의 시계열적으로 전후하는, 결정된 독립 변수의 축의 값의 차분값의 음양의 수량을 비교함으로써 회전량을 결정한다. 결정되는 회전량은, 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량이다.
각도 결정부(24)는, 데이터 포인트 버퍼가 먼저 저장된 데이터 포인트로부터 차례대로 데이터 포인트를 보지하도록, 각 데이터 포인트를 저장한다. 혹은, 각도 결정부(24)는, 데이터 포인트 버퍼에 데이터 포인트를 저장할 때, 저장된 차례가 식별 가능한 식별 정보를 관련지어 저장한다. 이와 같이, 각도 결정부(24)는, 저장된 차례를 식별할 수 있도록, 즉, 저장된 데이터 포인트의 시계열 순서를 식별할 수 있도록, 데이터 포인트 버퍼에 데이터 포인트를 보지하고 있다. 이 때, 각도 결정부(24)는, 데이터 포인트 취득 시간(t)의 값을 이용할 수 있다.
각도 결정부(24)는, 결정된 회귀 직선의 기울기 및 결정된 회전량에 기초하여, 데이터 포인트의 집합이 나타내는 각도를 산출하고, 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도로서 결정한다.
본 실시 형태에서는, 상기의 각도 결정부(24)가 행하는, 회귀 직선의 기울기의 결정, 회전량의 결정, 및 각도의 결정에 대하여, 식 (1)에 나타내는 함수(aop(x, y))를 이용하여 실현된다. 함수(aop(x, y))는, 0 내지 360 도의 실수로 각도를 산출한다. 함수(aop(x, y))가 각도를 산출할 때, 데이터 포인트 버퍼는 n 개의 데이터 포인트(P(x, y))를 보지하고 있는 것으로 한다. 또한, n 개의 각 데이터 포인트(Pk(k=1 내지 n))의 x 좌표의 값 및 y 좌표의 값은, Pk(xk, yk)로 표시되고, P1(x1, y1), P2(x2, y2), …, Pn(xn, yn)의 순서대로 저장된 시간이 빠른 것으로 한다.
Figure pct00001
(1)
함수(aop(x, y))는, 경우를 분류하기 위해, 함수(rotate(x, y)), 함수(left(x)), 함수(down(y))를 사용한다. 맨처음으로, 함수(aop(x, y))는, 함수(rotate(x, y))를 이용하여, x와 y 중 어느 한 개를 독립 변수로서 결정한다.
함수(rotate(x, y))는, 식 (2)에 의하여 정해진다.
Figure pct00002
(2)
함수(rotate(x, y))는, n 개의 데이터 포인트(P(x, y))가 주로 y 축 방향으로 변위하고 있는지의 여부를 판정하고, 예를 들면, 진위값을 되돌린다. n 개의 데이터 포인트(P(x, y))가 주로 y 축 방향으로 변위하고 있는 경우란, 예를 들면, 터치 패널(17) 상에서 유저의 손가락이 주로 상하 방향으로 움직인 경우이다. 이와 같이 하여, 함수(rotate(x, y))는, n 개의 데이터 포인트(P(x, y))가 주로 x 축(좌우) 방향으로 변위하고 있는지, 또는 주로 y 축(상하) 방향으로 변위하고 있는지를 판정하여, x 축의 값과 y 축의 값 중 어느 쪽이 독립 변수로서 적절한지를 판정한다.
식 (2)에서, (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))에 대하여 가중치 부여를 행하는 가중 계수이다.
함수(rotate(x, y))는, (max(y)-min(y))가 (max(x)-min(x))와 변수(w)와의 곱의 값보다 클 때에 부등호를 충족시키고, 함수(aop(x, y))는 좌표 변화를 행한다. 이 경우, 함수(aop(x, y))는, y 축을 독립 변수의 축으로 하고, x 축을 종속 변수의 축으로 하고, 함수(down(y))를 더 이용하여, 회전량을 결정한다. 한편, 함수(rotate(x, y))는, (max(y)-min(y))가 (max(x)-min(x))와 변수(w)와의 곱의 값 이하인 때에 부등호를 충족시키지 않고, 함수(aop(x, y))는, 좌표 변화를 행하지 않는다. 이 경우, 함수(aop(x, y))는, x 축을 독립 변수의 축으로 하고, y 축을 종속 변수의 축으로 하고, 함수(left(x))를 더 이용하여, 회전량을 결정한다.
함수(rotate(x, y))가 변수(w)에 의하여 가중치 부여되지 않는 경우, y 축 방향의 변위량이 x 축 방향의 변위량보다 약간 크면, 함수(aop(x, y))는 좌표 변화를 행하게 된다. 변수(w)를 이용하여 가중치 부여함으로써, 함수(aop(x, y))는, n 개의 데이터 포인트(P(x, y))가 보다 y 축에 따른 기울기의 경우에 좌표 변화를 행하도록 하는 것이 가능해진다.
예를 들면, 스마트폰은 세로 들기로 사용되는 경우가 많으므로, 도 3에 도시하는 터치 패널(17)의 y 축은 중력 방향과 실질적으로 평행이 되는 경우가 많다. 터치 패널(17)의 y 축 방향의 치수는 x 축 방향의 치수보다 큰 것을 고려하면, 변수(w)는 1보다 큰 값으로 하는 것이 바람직하다. 예를 들면, 변수(w)는 2로 하는 것이 바람직하다. 다른 예에서는, 스마트폰이 가로 들기가 되고, 또한 게임 앱이 구비하는 게임 엔진이 종횡의 좌표의 변환을 하지 않는 경우, 각도 결정부(24)는 w를 0.5 등의 1보다 작은 값으로 결정한다.
함수(left(x))는, 식 (3)에 의하여 표시된다.
Figure pct00003
(3)
함수(left(x))는, 함수(rotate(x, y))가 부등호를 충족시키지 않는 경우, n 개의 데이터 포인트(P(x, y))의 변위 방향이 -x 축 방향(좌측 방향)인지의 여부를 판정하고, 예를 들면, 진위값을 되돌린다. 구체적으로는, 함수(left(x))는, n 개의 데이터 포인트(P)의 x의 값(x1, x2, …xn)에 있어서의 시계열적으로 전후하는 값의 차분값(x2-x1, x3-x2, …xn-xn-1)을 산출한다. 함수(left(x))는, 차분값이 마이너스가 되는 개수가, 차분값이 플러스가 되는 개수보다 많은지의 여부를 판정함으로써, n 개의 데이터 포인트(P(x, y))의 변위 방향이 -x 축 방향(좌측 방향)인지의 여부를 판정한다. 이와 같이 하여, 함수(left(x))는, n 개의 데이터 포인트(P(x, y))의 변위 방향이 -x 축 방향(좌측 방향)인지 +x 축 방향(우측 방향)인지를 판정하고, 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정한다. 예를 들면, 함수(left(x))가 참인 경우, 함수(aop(x, y))는 회전량을 180 도로 결정하고, 함수(left(x))가 거짓인 경우, 함수(aop(x, y))는 회전량을 0 도로 결정한다.
함수(down(y))는, 식 (4)에 의하여 표시된다.
Figure pct00004
(4)
함수(down(y))는, 함수(rotate(x, y))가 부등호를 충족시키는 경우, n 개의 데이터 포인트(P(x, y))의 변위 방향이 -y 축 방향(하측 방향)인지의 여부를 판정하고, 예를 들면, 진위값을 되돌린다. 구체적으로는, 함수(down(y))는, n 개의 데이터 포인트(P)의 y의 값(y1, y2, …yn)에 있어서의 시계열적으로 전후하는 값의 차분값(y2-y1, y3-y2, …yn-yn-1)을 산출한다. 함수(down(y))는, 차분값이 마이너스가 되는 개수가, 차분값이 플러스가 되는 개수보다 많은지의 여부를 판정함으로써, n 개의 데이터 포인트(P(x, y))의 변위 방향이 -y 축 방향(하측 방향)인지의 여부를 판정한다. 이와 같이 하여, 함수(down(y))는, n 개의 데이터 포인트(P(x, y))의 변위 방향이 -y 축 방향(하측 방향)인지 +y 축 방향(상측 방향)인지를 판정하고, 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정한다. 예를 들면, 함수(down(y))가 참인 경우, 함수(aop(x, y))는 회전량을 180 도로 결정하고, 함수(down(y))가 거짓인 경우, 함수(aop(x, y))는 회전량을 0 도로 결정한다.
함수(aop(x, y))는, 상기와 같이, 독립 변수(독립 변수의 축) 및 회전량을 결정한 후, 최소 이승법을 이용하여 기울기를 산출한다. 함수(aop(x, y))는, x를 독립 변수로 하고, y를 종속 변수로 하는 경우, y=ax+b의 회귀 직선의 기울기 a는, 식 (5)에 의하여 산출되고 있다.
Figure pct00005
(5)
여기서,
Figure pct00006
는, x(독립 변수)의 평균이며,
Figure pct00007
는, y(종속 변수)의 평균이며,
Figure pct00008
는, x(독립 변수)와 y(종속 변수)의 공분산이며,
Figure pct00009
는, x(독립 변수)의 분산이다.
또한, 함수(aop(x, y))는, y를 독립 변수로 하고, x를 종속 변수로 하는 경우, x=cx+d의 회귀 직선의 기울기 c는, 식 (6)에 의하여 산출되고 있다.
Figure pct00010
 (6)
여기서,
Figure pct00011
는, x(종속 변수)의 평균이며,
Figure pct00012
는, y(독립 변수)의 평균이며,
Figure pct00013
는, x(종속 변수)와 y(독립 변수)의 공분산이며,
Figure pct00014
는, y(독립 변수)의 분산이다.
각도 결정부(24)는, 변수(V)를 정하고, 독립 변수의 분산이 V 이상이었을 경우, 함수(aop(x, y))를 이용하여 각도를 산출하고 결정한다. 각도 결정부(24)는, 독립 변수의 분산이 V 미만인 경우, keep 이벤트를 상태 결정부(25)로 출력하고, 각도를 산출하지 않는다. 독립 변수의 분산이 V 미만인 경우란, n 개의 데이터 포인트(P(x, y))가, 국소적으로 집중하고 있음을 의미한다. 따라서, 각도 결정부(24)가 변수(V)를 정함으로써, 매우 미세한 손가락의 움직임을 무시하고, 안정된 각도의 산출을 행하는 것이 가능해진다. 변수(V)는, 바람직하게는 0.7로 설정된다.
함수(aop(x, y))는, 함수(rotate(x, y))가 거짓이며, 함수(left(x))가 거짓인 경우, 회귀 직선의 기울기로부터 얻어지는 각도를 그대로 산출한다. 함수(aop(x, y))는, 함수(rotate(x, y))가 거짓이며, 함수(left(x))가 참인 경우, 회귀 직선의 기울기로부터 얻어지는 각도에 180 도 플러스한 각도를 산출한다. 함수(aop(x, y))는, 함수(rotate(x, y))가 참이며, 함수(down(y))가 거짓인 경우, 회귀 직선의 기울기로부터 얻어지는 각도를 90 도로부터 뺌으로써 각도를 산출한다. 함수(aop(x, y))는, 함수(rotate(x, y))가 참이며, 함수(down(y))가 참인 경우, 회귀 직선의 기울기로부터 얻어지는 각도를 90 도로부터 뺌으로써 산출한 각도에 180 도 플러스한 각도를 산출한다.
상태 결정부(25)는, 각도 결정부(24)에 의하여 미리 정해진 처리 시간마다 결정되는 각도에 기초하여, 미리 정해진 처리 시간마다 각도 및 크기를 결정한다. 상태 결정부(25)는, 결정한 각도 및 크기를 어플리케이션부(26)로 출력한다. 상태 결정부(25)는, 어플리케이션부(26)로 직접 출력하지 않고, 어플리케이션부(26)가 참조하는 메모리 영역으로 결정한 각도 및 크기를 나타내는 정보를 저장해도 된다. 하나의 바람직한 예에서는, 상태 결정부(25)는, 연속적으로 산출되는 각도의 열을 콘트롤러의 기능으로 변환하는 소프트웨어 모듈이다. 본 모듈은, 터치 좌표는 일절 이용하지 않고, 각도와 시간을 사용한 상태 관리 모델(스테이트 머신)로서 실장된다.
상태 결정부(25)는, 미리 정해진 처리 시간마다 각도 결정부(24)가 출력하는 정보를 수취하면, 수취한 이벤트에 따라, 미리 정해진 처리 시간마다 가상 콘트롤러의 기울기의 상태를 출력한다. 가상 콘트롤러는, 물리적인 아날로그 콘트롤러를 소프트웨어로 실현하는 것이지만, 가상 콘트롤러의 기울기란, 물리적인 콘트롤러의 조이스틱 또는 레버의 기울기에 대응하는 것이다. 상태 결정부(25)는, 가상 콘트롤러의 기울기의 상태를, 벡터, 즉, 방향(각도) 및 크기로서 출력한다. 크기는, 가속도 정보로 할 수도 있고, 속도 정보로 할 수도 있다. 가상 콘트롤러의 기울기의 상태는, 물리적인 아날로그 콘트롤러의 입력량에 대응하는 것이다.
이와 같이, 상태 결정부(25)는, 발생한 터치 이벤트의 의미를 해석하기 위한 상태 천이 모델을 제공하는 것이라고 생각할 수 있다. 상태 결정부(25)는, 가상의 콘트롤러의 기울기를 상태로서 관리하고, 미리 정해진 처리 시간마다 각도 결정부(24)가 출력하는 정보를 수취하면, 미리 정해진 처리 시간마다 상태 천이시키는 것이다.
하나의 예에서는, 상태 결정부(25)는, 각도 결정부(24)로부터 출력되는 각도의 정보를 축적하고, 시간에 따라, 어플리케이션부(26)로의 출력을 산출한다. 예를 들면, 각도 결정부(24)가 165ms 계속하여 33ms마다 45 도를 출력하는 경우, 상태 결정부(25)는, 45 도의 방향으로 165ms분의 가속도 정보를 결정한다. 예를 들면, 각도 결정부(24)가 동일한 각도의 출력이 연속한 경우, 상태 결정부(25)는 해당 각도의 방향으로 가속하는 정보를 출력하고, 이어서 각도 결정부(24)가 해당 각도와 180 도 반대의 각도를 입력한 경우, 상태 결정부(25)는, 감속하는 정보를 출력한다. 이러한 구성으로 함으로써, 실제의 터치 좌표를 그대로 이용하지 않고, 콘트롤러의 입력량을, 상태 천이 회수에 대응하는 시간으로서 구하는 것이 가능해진다.
하나의 예에서는, 상태 결정부(25)는, 각도 결정부(24)가 출력하는 정보를 수취하면, 수취한 이벤트에 따라, 가상 콘트롤러의 기울기의 상태를 설정하고, 게임 어플리케이션으로, 이동 이벤트 또는 가속 이벤트를 각도 및 크기를 나타내는 정보와 함께 출력한다. 구체적으로는, 상태 결정부(25)는, 소정의 프로그램 언어를 이용하여, 물리적인 아날로그 콘트롤러를 본뜬 가속도 처리를 실장할 수 있다.
하나의 바람직한 예에서는, 상태 결정부(25)는, 가상 콘트롤러의 기울기의 상태를 벡터로서 보지하고, 미리 정해진 처리 시간마다, 보지한 벡터를 출력한다. 상태 결정부(25)는, 각도 결정부(24)로부터 start 이벤트를 수취하면, 상태 관리를 개시한다. 상태 결정부(25)는, 최초로 각도 결정부(24)로부터 angle 이벤트를 수취하면, 수취한 각도 및 상태 천이 1 회분의 크기의 벡터의 보지를 개시하고, 해당 벡터를 출력한다. 상태 결정부(25)는, 추가로 각도 결정부(24)로부터 angle 이벤트를 수취하면, 내부에서 보지하는 벡터에, 수취한 각도 및 상태 천이 1 회분의 크기의 벡터를 가산하고, 해당 벡터를 보지함과 동시에 출력한다. 상태 결정부(25)는, 출력하는 벡터의 길이가 1.0을 초과한 경우, 1.0에 정규화한다.
예를 들면, 상태 결정부(25)는, 각도 결정부(24)로부터 45 도의 각도 정보를 1 회 수취하면, 45 도의 각도 및 0.2의 크기의 벡터를 출력함과 동시에, 해당 벡터를 보지한다. 상태 결정부(25)는, 각도 결정부(24)로부터 45 도의 각도 정보를 더 4 회 수취하면, 45 도의 각도 및 1.0의 크기의 벡터를 보지함과 동시에 출력한다. 상태 결정부(25)는, 추가로 각도 결정부(24)로부터 45 도의 각도 정보를 수취한 경우에도, 45 도의 각도 및 1.0의 크기의 벡터를 보지함과 동시에 출력한다. 상태 결정부(25)는, 30 도의 각도 정보를 수취한 경우, 30 도의 각도 및 0.2의 크기의 벡터와, 45 도의 각도 및 1.0의 크기의 벡터를 가산한 벡터의 각도 및 1.0의 크기의 벡터를 보지함과 동시에 출력한다. 이 경우에도, 벡터의 크기가 1.0을 초과하므로, 상태 결정부(25)는, 1.0에 정규화하여 출력한다.
상태 결정부(25)는, 각도 결정부(24)로부터 keep 이벤트를 수취하면, 내부에서 보지하는 벡터의 보지를 계속하고, 해당 벡터를 출력한다. 상태 결정부(25)는, 각도 결정부(24)로부터 stop 이벤트를 수취하면, 내부에서 보지하는 벡터의 보지를 해제하고, 제로 벡터를 출력하거나, 또는 stop 이벤트를 출력한다.
이러한 구성으로 함으로써, 물리적인 아날로그 콘트롤러와 같은 조작을 스마트폰 상에서 실현하는 것이 가능해진다.
어플리케이션부(26)는, 전자 장치(10) 상에서 기동된 앱의 기능을 가지고, 해당 앱에 의한 서비스의 제공을 행한다. 하나의 바람직한 예에서는, 어플리케이션부(26)는, 상태 결정부(25)로부터 출력된 벡터를, 구체적인 가상 캐릭터의 모션 등으로 변환하는 것이며, 일반적인 게임 앱에 실장되어 있는 기능이다. 앱이 Web 앱인 경우, 전자 장치(10)와 통신하는 서버가 어플리케이션부(26)의 일부 또는 전부를 가지고, 앱은, 해당 서버와 데이터의 송수신을 행한다.
각도 결정부(24)에 의한, 식 (1)에 나타내는 함수(aop(x, y))를 이용한 각도 산출의 실시예를 이하에 설명한다. 이하의 예시에서, 변수(w)는 2이며, 독립 변수의 분산은 V 이상인 것으로 하고, 시간(t1 내지 t4)은, 각도 결정부(24)가 각도를 산출하는 임의의 하나의 시간을 나타내는 것으로 한다.
도 5는, 시간(t1)에서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 나타내는 도면이다. 데이터 포인트 버퍼가 보지하는 데이터 포인트의 집합(40)은, 6 개의 데이터 포인트(P41 내지 P46)로 이루어진다. 또한, P41 내지 P46의 x 좌표의 값 및 y 좌표의 값(x, y)은, 각각 P41(x41, y41), P42(x42, y42) …P46(x46, y46)이며, 데이터 포인트 버퍼는, P41, P42, …, P46의 순서대로 데이터 포인트를 저장한 것으로 한다.
맨처음으로, 함수(aop(x, y))는, 함수(rotate(x, y))를 이용하여, abs(max(x)-min(x))와 abs(max(y)-min(y))를 비교한다. 도 6에서, P46와 P41의 x 좌표의 값의 차분값(x46-x41(=△x))이 abs(max(x)-min(x))에 대응하고, P45와 P41의 y 좌표의 값의 차분값(y45-y41(=△y))이 abs(max(y)-min(y))에 대응함을 확인할 수 있다. 도 5에서, △x>△y이다. 따라서, 함수(rotate(x, y))는, 부등호를 충족시키지 않으므로, 거짓 값을 되돌린다.
이어서, 함수(aop(x, y))는, 함수(left(x))를 이용하여, 시계열적으로 전후하는 값의 차분값(x42-x41, x43-x42, …x46-x45)을 산출한다. 도 5에서, 차분값은 모두 플러스가 된다. 따라서, 함수(left(x))는 부등호를 충족시키지 않으므로, 거짓 값을 되돌린다.
상기 실시예에서는, 함수(rotate(x, y))가 거짓이며, 함수(left(x))가 거짓이다. 따라서, 함수(aop(x, y))는, 데이터 포인트의 집합(40)으로부터 도 7에 도시하는 회귀 직선(81)을 구하고, 도 8에 도시하는 바와 같이, 회귀 직선(81)의 기울기로부터 각도(91)를 산출한다.
도 9는, 시간(t2)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다. 데이터 포인트 버퍼가 보지하는 데이터 포인트의 집합(60)은, 6 개의 데이터 포인트(P61 내지 P66)로 이루어진다. P61, P62, …P66의 x 좌표의 값 및 y 좌표의 값은, 각각 P46, P45, …, P41의 x 좌표의 값 및 y 좌표의 값과 같으며, P61, P62, …, P66의 순서대로 데이터 포인트를 저장한 것으로 한다.
함수(rotate(x, y))는, 도 5의 실시예의 경우와 같이 하여, 부등호를 충족시키지 않으므로, 거짓 값을 되돌린다. 이어서, 함수(aop(x, y))는, 함수(left(x))를 이용하여, 시계열적으로 전후하는 값의 차분값을 산출한다. 도 9에서, 차분값은 모두 마이너스가 된다. 따라서, 함수(left(x))는 부등호를 충족시키고, 참의 값을 되돌린다.
상기 실시예에서는, 함수(rotate(x, y))가 거짓이며, 함수(left(x))가 참이다. 따라서, 함수(aop(x, y))는, 데이터 포인트의 집합(60)으로부터 도 9에 도시하는 회귀 직선(82)을 구하고, 도 10에 도시하는 바와 같이, 회귀 직선(82)의 기울기로부터 산출되는 각도(92a)에 180 도 플러스한 각도(92b)를 산출한다. 여기서, 회귀 직선(82)의 기울기는 회귀 직선(81)과 같고, 각도(91)는 각도(92a)와 같으나, 데이터 포인트 버퍼가 데이터 포인트를 저장한 순서가 역순이므로, 함수(aop(x, y))가 산출하는 각도는 180 도 상이함을 확인할 수 있다.
도 11은, 시간(t3)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다. 데이터 포인트 버퍼가 보지하는 데이터 포인트의 집합(70)은, 6 개의 데이터 포인트(P71 내지 P76)로 이루어진다. 또한, P71 내지 P76의 x 좌표의 값 및 y 좌표의 값은, 각각 P71(x71, y71), P72(x72, y72) …P76(x76, y76)이며, 데이터 포인트 버퍼는, P71, P72, …, P76의 순서대로 데이터 포인트를 저장한 것으로 한다.
도 12에서, P75와 P71의 x 좌표의 값의 차분값(x75-x71(=△x))이 abs(max(x)-min(x))에 대응하고, P76와 P71의 y 좌표의 값의 차분값(y76-y71(=△y))이 abs(max(y)-min(y))에 대응함을 확인할 수 있다. 도 11에서, 2Х△x<△y이다. 따라서, 함수(rotate(x, y))는, 부등호를 충족시키므로, 참 값을 되돌린다.
이어서, 함수(aop(x, y))는, 함수(down(y))를 이용하여, 시계열적으로 전후하는 값의 차분값(y72-y71, y73-y72, …y76-y75)을 산출한다. 도 11에서, 차분값은 모두 플러스가 된다. 따라서, 함수(down(y))는 부등호를 충족시키지 않으므로, 거짓 값을 되돌린다.
상기 실시예에서는, 함수(rotate(x, y))가 참이며, 함수(down(y))가 거짓이다. 따라서, 함수(aop(x, y))는, 데이터 포인트의 집합(70)으로부터 도 13에 도시하는 회귀 직선(83)을 구하고, 도 13에 도시하는 바와 같이, 회귀 직선(83)의 기울기로부터 산출되는 각도(93a)를, 90 도로부터 뺌으로써 각도(93b)를 산출한다. 여기서, 도 13에 나타내는 각도(93a)는, y를 독립 변수로 하고 x를 종속 변수로 한 경우의 회귀 직선(83)의 기울기로부터 산출되는 각도를, x를 독립 변수로 하고 y를 종속 변수로 한 좌표로 되돌린 경우의 위치에 대응시켜 나타내고 있다.
도 14는, 시간(t4)에 있어서의 데이터 포인트 버퍼가 보지하는 데이터 포인트의 일예를 도시하는 도면이다. 시간(t4)은, 시간(t1)으로부터 시간(△t)이 경과된 시간이다. 데이터 포인트 버퍼가 보지하는 데이터 포인트의 집합(40')은, 8 개의 데이터 포인트(P45 내지 P52)로 이루어진다. 또한, P45 내지 P52의 x 좌표의 값 및 y 좌표의 값은, 각각 P45(x45, y45), P46(x46, y46) …P52(x52, y52)이며, 데이터 포인트 버퍼는, P45, P46, …, P52의 순서대로 데이터 포인트를 저장한 것으로 한다.
도 15에서, P52와 P45의 x 좌표의 값의 차분값(x52-x45(=△x))이 abs(max(x)-min(x))에 대응하고, P46와 P52의 y 좌표의 값의 차분값(y46-y52(=△y))이 abs(max(y)-min(y))에 대응함을 확인할 수 있다. 도 14에서, 2Х△x<△y이다. 따라서, 함수(rotate(x, y))는, 부등호를 충족시키므로, 참 값을 되돌린다.
이어서, 함수(aop(x, y))는, 함수(down(y))를 이용하여, 시계열적으로 전후하는 값의 차분값(y46-y45, y47-y46, …y52-y51)을 산출한다. 도 11에서, y46-y45 이외의 차분값은 마이너스가 된다. 따라서, 함수(down(y))는 부등호를 충족시키므로, 참 값을 되돌린다.
상기 실시예에서는, 함수(rotate(x, y))가 참이며, 함수(down(y))가 참이다. 따라서, 함수(aop(x, y))는, 데이터 포인트의 집합(40')으로부터 도 16에 도시하는 회귀 직선(84)을 구하고, 도 17에 도시하는 바와 같이, 회귀 직선(84)의 기울기로부터 산출되는 각도(94a)를, 90 도로부터 뺌으로써 산출한 각도(94b)에 180 도 플러스한 각도(94c)를 산출한다.
도 18은, 본 발명의 일 실시 형태에 의한 전자 장치(10)가 데이터 포인트의 집합(120)으로부터 가상 캐릭터(121)를 제어하는 모습을 도시하는 도면이다. 도 18은, 터치 패널(17)로의 유저의 조작에 의하여 발생한 터치 이벤트에 대응하는 데이터 포인트를 가시화한 데이터 포인트의 집합(120)을 나타낸다. 전자 장치(10)는, 데이터 포인트의 집합(120)이 나타내는 각도(122)에 기초하여, 조작 대상 오브젝트인 가상 캐릭터(121)의 모션, 예를 들면, 걷기, 달리기, 방향 전환 등을 제어한다.
도 19는, 본 발명의 일 실시 형태에 의한 각도 결정부(24)의 정보 처리의 플로우차트를 도시하는 도면이다. 본 플로우차트는, 터치 이벤트가 발생하고, 각도 결정부(24)가 해당 터치 이벤트로부터 데이터 포인트를 취득한 때에 개시한다.
단계 101에서, 각도 결정부(24)는, 취득한 데이터 포인트를 데이터 포인트 버퍼에 저장한다. 이 때, 각도 결정부(24)는, 저장하는 데이터 포인트에, 저장 후의 경과 시간을 밀리 세컨드로 나타내는 T와, 데이터 포인트 버퍼에 저장할 수 있는 시간(보지 수명)을 밀리 세컨드로 나타내는 변수(D)를 관련짓는다.
이어서, 단계 102에서, 각도 결정부(24)는, start 이벤트를 상태 결정부(25)로 출력한다.
이어서, 단계 103에서, 각도 결정부(24)는, 터치 이벤트가 발생했는지의 여부를 판정한다. 단계 103은, 본 플로우차트 개시 시부터 Ims 후에 실행된다. 터치 이벤트가 발생한 경우, 본 플로우차트는 단계 104로 진행되고, 터치 이벤트가 발생하지 않은 경우, 본 플로우차트는 단계 106로 진행된다.
단계 104에서, 각도 결정부(24)는, 발생한 터치 이벤트가 touchend인지의 여부를 판정한다. 취득한 터치 이벤트가 touchend였던 경우, 본 플로우차트는 종료한다. 취득한 터치 이벤트가 touchend가 아니었던 경우, 본 플로우차트는 단계 105로 진행된다.
단계 105에서, 각도 결정부(24)는, 발생한 터치 이벤트로부터 데이터 포인트를 취득하고, 데이터 포인트 버퍼에 저장한다. 이 때, 각도 결정부(24)는, 저장하는 데이터 포인트에, 저장 후의 경과 시간을 밀리 세컨드로 나타내는 T와, 데이터 포인트 버퍼에 저장할 수 있는 시간을 밀리 세컨드로 나타내는 변수(D)를 관련짓는다.
이어서, 단계 106에서, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트 중, 경과 시간(t)이 변수(D) 이상인 데이터 포인트의 보지를 종료한다. 각도 결정부(24)는, 데이터 포인트 버퍼에 저장하는 각 데이터 포인트에 대하여, 경과 시간(t)과 변수(D)를 비교하여, 경과 시간(t)이 변수(D) 이상인 경우, 해당 데이터 포인트의 보지를 종료한다.
이어서, 단계 107에서, 각도 결정부(24)는, 데이터 포인트 버퍼가 보지하는 데이터 포인트의 개수(n)가 변수(B)의 수 이상인지의 여부를 판정한다. 개수(n)가 변수(B) 이상인 경우, 본 플로우차트는 단계 108로 진행되고, 개수(n)가 변수(B) 미만이었던 경우, 본 플로우차트는 단계 113로 진행된다.
단계 108에서, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트에 있어서의 x 축의 값의 변위량 및 y 축의 값의 변위량에 기초하여, 독립 변수의 축으로서 x 축 및 y 축 중 어느 한 쪽의 축을 결정한다. 각도 결정부(24)는, 동시에 다른 한 쪽의 축을 종속 변수의 축으로서 결정한다.
이어서, 단계 109에서, 각도 결정부(24)는, 단계 108에서 x 축이 독립 변수의 축으로서 결정된 경우, 식 (5)을 이용하여 기울기의 각도를 산출함으로써, 회귀 직선의 기울기의 각도를 결정한다. 하나의 예에서는, 각도 결정부(24)는, 식 (5)을 이용하여 기울기의 각도를 산출할 때, 0 도 내지 90 도 및 270 도 내지 360 도의 범위 내에서 산출한다. 각도 결정부(24)는, 단계 108에서 y 축이 독립 변수의 축으로서 결정된 경우, 식 (6)을 이용하여 기울기의 각도를 산출하고, 산출한 각도를 90 도로부터 뺌으로써, 회귀 직선의 기울기의 각도를 결정한다. 하나의 예에서는, 각도 결정부(24)는, 식 (6)을 이용하여 기울기의 각도를 산출할 때, 0 도 내지 90 도 및 270 도 내지 360 도의 범위 내에서 산출한다.
이어서, 단계 110에서, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여, 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정한다. 하나의 예에서는, 각도 결정부(24)는, 단계 108에서 x 축이 독립 변수의 축으로서 결정된 경우, 시계열적으로 전후하는 x 축의 값의 차분값을 각각 산출한다. 각도 결정부(24)는, 산출한 차분값이 마이너스가 되는 개수가 플러스가 되는 개수보다 많을 때, 회전량을 180 도로 결정하고, 적을 때, 회전량을 0 도로 결정한다. 하나의 예에서는, 각도 결정부(24)는, 단계 108에서 y 축이 독립 변수의 축으로서 결정된 경우, 시계열적으로 전후하는 y 축의 값의 차분값을 각각 산출한다. 각도 결정부(24)는, 산출한 차분값이 마이너스가 되는 개수가 플러스가 되는 개수보다 많을 때, 회전량을 180 도로 결정하고, 적을 때, 회전량을 0 도로 결정한다.
이어서, 단계 111에서, 각도 결정부(24)는, 결정된 회귀 직선의 기울기 및 결정된 회전량에 기초하여 각도를 결정한다. 구체적으로는, 각도 결정부(24)는, 결정된 회귀 직선의 기울기에 대응하는 각도로 결정된 회전량을 가산함으로써 각도를 결정한다. 예를 들면, 회전량이 0 도인 경우, 각도 결정부(24)가 결정하는 각도는, 결정된 회귀 직선의 기울기에 대응하는 각도가 된다. 각도 결정부(24)는, angle 이벤트가 결정된 각도와 함께 상태 결정부(25)로 출력하고, 단계 112로 진행된다.
단계 107에서, 개수(n)가 변수(B) 미만이었을 경우, 단계 113에서, 각도 결정부(24)는, keep 이벤트를 상태 결정부(25)로 출력하고, 단계 112로 진행된다.
단계 112에서, 본 플로우차트는, 예를 들면, 게임 어플리케이션이 종료됨 등에 의하여 종료되지 않는 한, 단계 103로 되돌아온다. 각도 결정부(24)는, 단계 103 내지 단계 112의 처리를 Ims마다 실행한다.
본 플로우차트가 종료되면, 각도 결정부(24)는, 데이터 포인트 버퍼에 보지하는 데이터 포인트를 모두 삭제한다.
이어서, 본 발명의 실시 형태에 의한 전자 장치(10)의 주된 작용 효과에 대하여 설명한다. 본 실시 형태에서는, 터치 패널(17) 상에서 손가락을 스와이프시켰을 때, 예를 들면, 100ms 등의 매우 짧은 시간에 6 회 이상의 터치 이벤트가 발생한다고 하는 투영형 정전 용량 방식 터치 패널의 특징을 이용하고 있다. 전자 장치(10)가 실장하는 소프트웨어의 시스템 아키텍쳐는, 각도 결정부(24), 상태 결정부(25), 어플리케이션부(26)가 제1 층, 제2 층, 제3 층에 각각 대응하는 3 층 구조를 취하고, 제3 층은, 게임 어플리케이션에 대응한다. 제1 층은, 발생하는 복수의 터치 이벤트의 집합(데이터 포인트의 집합)을 대상으로 하고, 스와이프 방향을 360 도의 리니어한 각도로 산출한다. 제1 층은, 매우 짧은 시간에 발생하는 터치 이벤트를 이용할 수 있으므로, 고속으로 각도를 계속 산출하는 것이 가능해진다. 또한, 제1 층은, 데이터 포인트 버퍼가 매우 짧은 미리 정해진 보지 시간(예를 들면, 165ms)만큼 보지하는 데이터 포인트의 집합이 나타내는 각도를 구함으로써, 기준점을 이용하지 않고 터치 패널(17)에 대하여 터치 조작을 행한 유저가 의도하는 방향의 각도를 구하는 것이 가능해진다.
또한, 본 실시 형태의 전자 장치(10)는, 스와이프 등의 유저의 조작이 복잡해도, 100ms 등의 매우 짧은 시간에서는, 등속 직선 운동으로서 모델화할 수 있으므로, 등속도 운동의 각도를 연속적으로 산출함으로써, 임의의 비선형 함수(≒인간의 조작)를 예측 및 근사시킬 수 있다고 하는 컨셉에 기초하여 설계된 것이다.
제1 층은, 변수(I)의 값이 비교적 크게 설정된 경우, 비교적 낮은 빈도로 각도를 산출한다. 이 경우, 제1 층은, 터치 이벤트가 발생하기 시작한 직후에 있어서도, 예를 들면, 유저가 조작을 개시한 직후에 있어서도, 데이터 포인트 버퍼에 비교적 많은 데이터 포인트가 보지되어 있는 상태에서, 각도를 산출하게 된다. 이와 같이, 변수(I)의 값을 비교적 크게 설정함으로써, 유저의 조작을 비교적 완만하게 반영한 각도를 산출하는 것이 가능해진다. 한편, 제1 층은, 변수(I)의 값이 비교적 작게 설정된 경우, 비교적 높은 빈도로 각도를 산출한다. 이 경우, 제1 층은, 터치 이벤트가 발생하기 시작한 직후에서는, 예를 들면, 유저가 조작을 개시한 직후에서는, 데이터 포인트 버퍼에 비교적 소수의 데이터 포인트가 보지되어 있는 상태에서 각도를 산출하게 된다. 이와 같이, 변수(I)의 값을 비교적 작게 설정함으로써, 유저의 조작을 비교적 즉석에서 반영한 각도를 산출하는 것이 가능해진다.
제1 층은, 데이터 포인트의 집합이 나타내는 각도를 산출함에 있어서, 최소 이승법을 이용하여 회귀 직선의 기울기를 산출한다. x를 독립 변수 및 y를 종속 변수로서 고정한 경우, y 축에 따른 기울기의 경우 등은 기울기를 산출하는 것이 어려우므로, 제1 층은, 데이터 포인트의 변위량으로부터 독립 변수 및 종속 변수를 결정한 다음에, 회귀 직선의 기울기를 산출한다. 이러한 구성으로 함으로써, 제1 층은, 안정적으로 회귀 직선의 기울기를 산출하는 것이 가능해진다.
제1 층은, 데이터 포인트의 집합이 나타내는 각도를 산출함에 있어서, 유저가 터치 패널(17) 상에서 손가락을 움직이는 대략적인 방향에 대응하는 데이터 포인트의 집합으로서의 변위 방향에 기초하여, 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정한다. 이와 같이, 최소 이승법을 이용하여 산출된 회귀 직선의 기울기로부터는 파악할 수 없는 회전량을 결정함으로써, 터치 패널(17)에 대하여 터치 조작을 행한 유저가 의도하는 방향의 각도를 구하는 것이 가능해진다.
제1 층은, 미리 정해진 처리 시간마다, 예를 들면, 미리 정해진 처리 시간으로서 게임 어플리케이션에 있어서의 프레임 레이트에 대응하는 시간마다, 데이터 포인트의 집합을 대상으로 하여, 스와이프 방향에 대응하는 각도를 산출한다. 제2 층은, 계속적으로 출력되는 각도 정보를 이용하여, 미리 정해진 처리 시간마다, 가상 콘트롤러의 기울기의 상태를 나타내는 벡터량(각도 및 크기)을 결정하고, 게임 어플리케이션으로 출력한다. 이러한 구성으로 함으로써, 본 실시 형태에서는, 게임 어플리케이션에 대하여, 미리 정해진 처리 시간마다 산출된 각도에 기초한 입력을 행하는 것이 가능해진다. 또한, 이러한 구성으로 함으로써, 어느 층도, 과거의 터치 좌표를 기준점으로서 이용하지 않고, 제1 층이 산출하는 프레임 레이트마다의 고빈도로 정확한 이동 각도에 기초한 입력을 행하는 것이 가능해진다. 이와 같이, 본 실시 형태에서는, 전자 장치(10)는, 종래 기술에 있어서의 가상 콘트롤러에서 사용되고 있던, 개시점(개시 좌표) 또는 종료점(종료 좌표)이라고 하는 점이라고 하는 공간적인 개념을 사용하지 않고 각도를 산출한다.
또한, 본 실시 형태에서는, 종래 기술에 있어서의 가상 콘트롤러, 즉, 기준 좌표와 현재의 지시 좌표와의 사이의 위치 관계에 의하여 얻어지는 벡터를 이용한 가상 콘트롤러와는 달리, 기준 좌표의 개념이 없으므로, 기준 좌표를 정하는 가상 콘트롤러보다 높은 응답성을 제공하는 것이 가능하다. 특히, 가상 캐릭터 등의 방향 전환 조작에 있어서는, 방향 전환 전과는 크게 다른 방향으로 유저가 터치 패널 상의 조작을 행했다고 해도, 현재의 지시 좌표가 기준 좌표에 가까워진다고 하는 개념 그 자체가 없으므로, 유저의 의도한 조작 내용에 재빠르게 응답하여 방향 전환할 수 있으므로 우위성이 현저하다. 또한, 상기와 같이 구성됨으로써, 스마트폰으로 조작하는 유저에 대하여 한 손으로의 조작을 가능케 할 수 있다. 이에 의하여, 유저가 종래 기술에 있어서의 가상 조이스틱의 조작을 행함에 있어서, 항상 기준 좌표를 의식할 필요가 있어, 한 손으로의 조작이 어려운 경우가 있다고 하는 문제점을 해소할 수 있다. 이와 같이, 본 실시 형태에서는, 보다 고속으로 직감적인 조작을 가능케 하는 가상 콘트롤러를 실현하고 있다.
또한, 본 실시 형태에서는, 전자 장치(10)는, 종래 기술에 있어서의 가상 콘트롤러와는 다르게, 기준 좌표로부터의 손가락의 이동 거리에 따른 입력은 아니므로, 손가락의 이동량이 보다 적은 조작에 의하여, 유저가 의도하는 조작을 실현하는 것이 가능해진다. 따라서, 종래 기술과 비교하여, 보다 작은 실장 면적으로 실현하는 것이 가능해진다. 예를 들면, 터치 패널(17)의 크기에 상관없이, 동일한 조작성을 실현하는 것이 가능해진다.
또한, 본 실시 형태의 전자 장치(10)가 제공하는 가상 콘트롤러의 기술은, 스와이프 조작으로부터의 각도의 인식을 수리적으로 모델화하고 있으므로, 360 도의 방향 이동, 가속 및 감속, 격투 게임과 같은 커멘드 입력 등의 폭넓은 장르에 적용 가능하다.
상기의 작용 효과는, 특별히 언급이 없는 한, 다른 실시 형태 또는 다른 실시예에서도 마찬가지이다.
본 발명의 다른 실시 형태에서는, 상기에서 설명한 본 발명의 실시 형태의 기능 또는 플로우차트에 도시하는 정보 처리를 실현하는 프로그램 또는 해당 프로그램을 저장한 컴퓨터 판독 가능한 기억 매체로 할 수도 있다. 또한, 다른 실시 형태에서는, 상기에서 설명한 본 발명의 실시 형태의 기능 또는 플로우차트에 도시하는 정보 처리를 실현하는 방법으로 할 수도 있다. 또한, 다른 실시 형태에서는, 상기에서 설명한 본 발명의 실시 형태의 기능 또는 플로우차트에 도시하는 정보 처리를 실현하는 프로그램을 컴퓨터에 공급할 수 있는 서버로 할 수도 있다. 또한, 다른 실시 형태에서는, 상기에서 설명한 본 발명의 실시 형태의 기능 또는 플로우차트에 도시하는 정보 처리를 실현하는 가상 머신으로 할 수도 있다.
이하에 본 발명의 실시 형태의 변형예에 대하여 설명한다. 이하에서 말하는 변형예는, 모순이 생기지 않는 한, 적절히 조합하여 본 발명의 임의의 실시 형태에 적용할 수 있다.
하나의 변형예에서는, 전자 장치(10)는, 가상 공간 상에 가상적인 오브젝트를 배치하고, 해당 가상 공간 내에 배치되는 가상 카메라에 의하여 촬영한 게임 화상을 유저에게 제시하고, 게임을 진행하는 게임 어플리케이션이 인스톨되어 있다. 전자 장치(10)는, 해당 게임 어플리케이션이 실행되면, 가상 공간 내에 배치되는 가상적인 오브젝트 등을, 가상 공간 내에 배치되는 가상 카메라에 의하여 촬영한 게임 화상을 터치 패널(17)에 표시하여, 유저의 조작에 따라 가상 카메라를 제어한다. 이와 같이, 전자 장치(10)는, 해당 게임 어플리케이션이 실행되면, 유저의 조작에 따라, 조작 대상 오브젝트인 가상 카메라를 제어하기 위한 가상 콘트롤러를 제공한다. 가상 카메라의 제어란, 가상 공간에 배치된 가상 카메라의 움직임 또는 시야 영역의 제어이다.
도 20은, 본 발명의 일 실시 형태에 의한 전자 장치(10)가 표시하는 화상을 촬영하는 가상 공간 내에 배치된 가상 카메라(131)를 나타내는 도면이다. 도 20은, 가상 카메라(131)의 위치와, 가상 카메라(131)의 시선 방향(132)을 나타낸다. 시선 방향(132)은 가상 카메라(131)의 위치를 시점으로 하는 3 차원 벡터로 정해진다. 가상 카메라(131)로부터 시선 방향(132)으로 일정한 시야각에서 시야 영역이 정해지고, 해당 시야 영역에 시선 방향(132)과 수직인 면인 2 차원 스크린(133)이 정해진다. 2 차원 스크린(133)에 대하여, 가상 공간 내의 가상적인 오브젝트가 투영되어, 2 차원 화상이 형성된다.
하나의 변형예에서는, 입력 장치(12)와 표시 장치(13)는, 별도의 위치에 배치되는 별개의 형태이다. 이 경우, 입력 장치(12)는, 터치 패널 또는 투영형 정전 용량 방식 터치 패널과 동등한 기능을 가지는 디바이스이다. 표시 장치(13)는, 프로세서(11)의 제어에 따라, 어플리케이션 화면 등을 전자 장치(10)의 유저에게 표시하는 것이면 되고, 예를 들면, 액정 디스플레이, 유기 EL을 이용한 디스플레이 또는 플라즈마 디스플레이 등이다.
하나의 변형예에서는, 각도 결정부(24)는, 최소 이승법 이외의 기존의 방법을 이용하여, 회귀 직선의 기울기를 산출한다. 이 경우, 각도 결정부(24)는, 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정하지 않고, 이에 수반하여, 독립 변수의 축 및 종속 변수의 축을 결정하지 않는다. 예를 들면, 칼망 필터 또는 파티클 필터 등의 알고리즘을 이용할 수 있다.
하나의 변형예에서는, 각도 결정부(24)는, 변수(D)를 정하지 않고, 데이터 포인트 버퍼에 보지되어 있는 데이터 포인트 중, 미리 정해진 보지 시간을 초과했다고 판단된 데이터 포인트의 보지를 종료하지 않는다. 이 경우, 각도 결정부(24)는, 변수(I)로 정하는 시간마다, 변수(I)로 정하는 시간씩 늦춘 특정 시간대에 저장된 데이터 포인트를 참조함으로써 각도를 결정한다.
하나의 변형예에서는, 각도 결정부(24)는, 변수(V)를 정하지 않는다. 이 경우, 각도 결정부(24)는, 독립 변수의 분산의 값에 상관없이, 함수(aop(x, y))를 이용하여 각도를 산출하여 결정한다.
하나의 변형예에서는, 전자 장치(10)는 중력 방향을 판정하는 것이 가능한 가속도 센서를 구비한다. 각도 결정부(24)는, 가속도 센서로부터 취득된 정보를 이용하여 가중 계수를 결정한다. 예를 들면, 스마트폰이 세로 들기가 되어 터치 패널(17)의 y 축이 중력 방향이 되는 경우, 각도 결정부(24)는 w를 2로 결정한다. 한편, 스마트폰이 가로 들기가 되어 터치 패널(17)의 x 축이 중력 방향이 되고, 한편 게임 어플리케이션이 구비하는 게임 엔진이 종횡의 좌표의 변환을 하지 않는 경우, 각도 결정부(24)는 w를 0.5 등의 1보다 작은 값으로 결정한다.
하나의 변형예에서는, 각도 결정부(24)는, 터치 이벤트를 취득할 때, 2 개의 변수로 이루어지는 수치의 조(x, y)를 취득하고, 데이터 포인트 취득 시간(t)을 대응시키지 않고, 2 개의 변수로 이루어지는 수치의 조(x, y)를 데이터 포인트 버퍼에 저장한다. 예를 들면, 각도 결정부(24)는, 데이터 포인트 취득 시간(t)에 대응하는 정보를 데이터 포인트 버퍼 이외의 기억 장치(14) 내의 메모리 영역 등에 기억하고, 데이터 포인트 버퍼에 저장하는 데이터에 대응시켜 관리할 수 있다.
이상에서 설명한 처리 또는 동작에 있어서, 어느 한 단계에서, 그 단계에서는 아직 이용할 수 없을 데이터를 이용하고 있는 등의 처리 또는 동작 상의 모순이 생기지 않는 한, 처리 또는 동작을 자유롭게 변경할 수 있다. 또한, 이상에서 설명한 각 실시예는, 본 발명을 설명하기 위한 예시이며, 본 발명은 이들 실시예로 한정되는 것은 아니다. 본 발명은, 그 요지를 일탈하지 않는 한, 다양한 형태로 실시할 수 있다.
10 : 전자 장치
11 : 프로세서
12 : 입력 장치
13 : 표시 장치
14 : 기억 장치
15 : 통신 장치
16 : 버스
17 : 터치 패널
21 : 입력부
22 : 표시부
23 : 제어부
24 : 각도 결정부
25 : 상태 결정부
26 : 어플리케이션부
31, 33, 35 : 각도
32, 34, 36 : 방향
81, 82, 83, 84 : 회귀 직선
91, 92a, 92b, 93a, 93b, 94a, 94b, 94c : 각도
120 : 집합
121 : 가상 캐릭터
122 : 각도
131 : 가상 카메라
132 : 시선 방향
133 : 2 차원 스크린

Claims (14)

  1. 터치 패널을 구비하는 전자 장치에서 실행되는 프로그램으로서,
    해당 전자 장치에,
    상기 터치 패널로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하는 단계와,
    상기 보지되어 있는 데이터 포인트 중 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료하는 단계와,
    상기 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정하는 단계와,
    상기 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여 상기 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정하는 단계와,
    상기 결정된 회귀 직선의 기울기 및 상기 결정된 회전량에 기초하여, 상기 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하는 단계
    를 실행시키는 프로그램.
  2. 제1항에 있어서,
    상기 회전량을 결정하는 단계는,
    상기 보지되어 있는 데이터 포인트에 있어서의 시계열적으로 전후하는 데이터 포인트의 변위 방향에 기초하여, 상기 조작 대상 오브젝트를 제어하기 위한 각도를 결정함에 있어서, 상기 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정하는 프로그램.
  3. 제1항 또는 제2항에 있어서,
    상기 프로그램은, 상기 전자 장치에,
    상기 보지되어 있는 데이터 포인트에 있어서의 상기 제1 축의 값의 변위량 및 상기 제2 축의 값의 변위량에 기초하여, 독립 변수의 축으로서 해당 제1 축 및 해당 제2 축 중 어느 한 쪽의 축을 결정하는 단계와, 다른 한 쪽의 축을 종속 변수의 축으로서 결정하는 단계를 더 실행시키고,
    상기 회귀 직선의 기울기를 결정하는 단계는,
    상기 결정된 독립 변수의 축 및 종속 변수의 축에 더 기초하여, 회귀 직선의 기울기를 결정하는 프로그램.
  4. 제3항에 있어서,
    상기 어느 한 쪽의 축을 결정하는 단계는,
    상기 보지되어 있는 데이터 포인트에 있어서의, 상기 제1 축의 최대값과 최소값의 차분값 및 상기 제2 축의 최대값과 최소값의 차분값에 기초하여, 독립 변수의 축으로서 상기 어느 한 쪽의 축을 결정하는 프로그램.
  5. 제3항 또는 제4항에 있어서,
    상기 어느 한 쪽의 축을 결정하는 단계는,
    상기 보지되어 있는 데이터 포인트에 있어서의, 상기 제1 축의 최대값과 최소값의 차분값에 대하여 가중치 부여를 행한 값 및 상기 제2 축의 최대값과 최소값의 차분값의 크기를 비교함으로써, 독립 변수의 축으로서 상기 어느 한 쪽의 축을 결정하는 프로그램.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 회전량을 결정하는 단계는,
    상기 보지되어 있는 데이터 포인트에 있어서의 시계열적으로 전후하는, 상기 결정된 독립 변수의 축의 값의 차분값의 음양의 수량을 비교함으로써, 상기 조작 대상 오브젝트를 제어하기 위한 각도를 결정함에 있어서, 상기 결정된 회귀 직선의 기울기에 대하여 180 도 회전시킬지의 여부를 나타내는 회전량을 결정하는 프로그램.
  7. 제3항 내지 제6항 중 어느 한 항에 있어서,
    상기 회귀 직선의 기울기를 결정하는 단계는,
    상기 보지되어 있는 데이터 포인트에 있어서의, 독립 변수의 평균 및 종속 변수의 평균을 결정하는 단계와,
    상기 결정된 평균을 이용하여, 상기 보지되어 있는 데이터 포인트에 있어서의, 독립 변수의 편차 및 종속 변수의 편차를 결정하는 단계와,
    상기 결정된 독립 변수의 편차를 이용하여, 상기 보지되어 있는 데이터 포인트에 있어서의 독립 변수의 분산을 결정하는 단계와,
    상기 결정된 독립 변수의 편차 및 종속 변수의 편차를 이용하여, 상기 보지되어 있는 데이터 포인트에 있어서의 공분산을 결정하는 단계와,
    상기 결정된 공분산을 상기 결정된 독립 변수의 분산으로 나눔으로써 회귀 직선의 기울기를 결정하는 단계
    를 포함하는 프로그램.
  8. 제7항에 있어서,
    상기 제1 축은, 상기 터치 패널의 센서가 배열되는 방향의 짧은 쪽 방향을 나타내는 X 축이며,
    상기 제2 축은, 상기 터치 패널의 센서가 배열되는 방향의 긴 쪽 방향을 나타내고, 상기 제1 축에 직교하는 Y 축이며,
    상기 회귀 직선의 기울기를 결정하는 단계는,
    상기 결정된 독립 변수의 축이 상기 제2 축인 경우, 상기 결정된 공분산을 상기 결정된 독립 변수의 분산으로 나눔으로써 결정된 회귀 직선의 기울기에 대응하는 각도를, 90 도로부터 뺌으로써 회귀 직선의 기울기를 결정하는 프로그램.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 제1 축은, 상기 터치 패널의 센서가 배열되는 방향의 짧은 쪽 방향을 나타내는 X 축이며, 상기 제2 축은, 상기 터치 패널의 센서가 배열되는 방향의 긴 쪽 방향을 나타내고, 상기 제1 축에 직교하는 Y 축인 프로그램.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 각도를 결정하는 단계는,
    미리 정해진 처리 시간마다 각도를 결정하는 프로그램.
  11. 제10항에 기재된 프로그램을 포함하는, 상기 터치 패널을 구비하는 상기 전자 장치에서 실행되는 게임을 위한 한 조의 프로그램으로서,
    상기 미리 정해진 처리 시간은, 게임을 실행하기 위한 프레임 레이트에 대응하는 시간이며,
    상기 미리 정해진 처리 시간마다 결정되는 각도에 기초하여, 상기 미리 정해진 처리 시간마다 각도 및 크기를 결정하는 단계와,
    상기 미리 정해진 처리 시간마다 결정되는 각도 및 크기에 기초하여, 상기 터치 패널에 표시되는 상기 조작 대상 오브젝트를 제어하는 단계
    를 실행시키는 한 조의 프로그램.
  12. 제10항에 기재된 프로그램을 포함하는, 상기 터치 패널을 구비하는 상기 전자 장치에서 실행되는 게임을 위한 한 조의 프로그램으로서,
    상기 미리 정해진 처리 시간은, 게임을 실행하기 위한 프레임 레이트에 대응하는 시간이며,
    상기 미리 정해진 처리 시간마다 결정되는 각도에 기초하여, 상기 미리 정해진 처리 시간마다 각도 및 크기를 결정하는 단계와,
    상기 미리 정해진 처리 시간마다 결정되는 각도 및 크기에 기초하여, 상기 터치 패널에 표시되는 게임 화상을 촬영하기 위한 상기 조작 대상 오브젝트인 가상 카메라를 제어하는 단계
    를 실행시키는 한 조의 프로그램.
  13. 터치 패널을 구비하는 전자 장치로서,
    상기 터치 패널로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하고,
    상기 보지되어 있는 데이터 포인트 중 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료하고,
    상기 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정하고,
    상기 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여 상기 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정하고,
    상기 결정된 회귀 직선의 기울기 및 상기 결정된 회전량에 기초하여, 상기 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하는
    전자 장치.
  14. 터치 패널을 구비하는 전자 장치에서 실행되는 방법으로서,
    상기 터치 패널로의 유저의 조작에 의하여 발생한 터치 이벤트에 기초하여 취득되는 제1 축의 값 및 제2 축의 값에 의하여 표시되는 데이터 포인트를 보지하는 단계와,
    상기 보지되어 있는 데이터 포인트 중 미리 정해진 보지 시간을 초과한 데이터 포인트의 보지를 종료하는 단계와,
    상기 보지되어 있는 데이터 포인트에 기초하여 회귀 직선의 기울기를 결정하는 단계와,
    상기 보지되어 있는 데이터 포인트의 집합으로서의 변위 방향에 기초하여 상기 결정된 회귀 직선의 기울기를 회전시키는 회전량을 결정하는 단계와,
    상기 결정된 회귀 직선의 기울기 및 상기 결정된 회전량에 기초하여, 상기 유저가 가상 공간 내의 조작 대상 오브젝트를 제어하기 위한 각도를 결정하는 단계
    를 가지는 방법.
KR1020207031560A 2018-05-16 2019-04-22 프로그램, 전자 장치, 및 방법 KR102362465B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018094656A JP6389581B1 (ja) 2018-05-16 2018-05-16 プログラム、電子装置、及び方法
JPJP-P-2018-094656 2018-05-16
PCT/JP2019/016971 WO2019220873A1 (ja) 2018-05-16 2019-04-22 プログラム、電子装置、及び方法

Publications (2)

Publication Number Publication Date
KR20200138811A true KR20200138811A (ko) 2020-12-10
KR102362465B1 KR102362465B1 (ko) 2022-02-14

Family

ID=63518833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207031560A KR102362465B1 (ko) 2018-05-16 2019-04-22 프로그램, 전자 장치, 및 방법

Country Status (5)

Country Link
US (1) US11541311B2 (ko)
JP (1) JP6389581B1 (ko)
KR (1) KR102362465B1 (ko)
CN (1) CN112424739A (ko)
WO (1) WO2019220873A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7250451B2 (ja) * 2018-07-13 2023-04-03 株式会社Cygames プログラム、電子装置、及び方法
JP6748281B1 (ja) * 2019-12-10 2020-08-26 株式会社Cygames サーバ、処理システム、処理方法及びプログラム
JP7143364B2 (ja) * 2020-05-15 2022-09-28 株式会社Cygames 方法、プログラム、及び電子装置
US11577157B2 (en) * 2020-07-08 2023-02-14 Nintendo Co., Ltd. Systems and method of controlling game operations based on touch input
JP6862597B1 (ja) * 2020-07-14 2021-04-21 株式会社Cygames 方法、プログラム、及び電子装置
TWI801867B (zh) * 2021-05-12 2023-05-11 虹堡科技股份有限公司 密碼輸入裝置
JP7437433B2 (ja) * 2022-02-16 2024-02-22 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3734820A (en) 1971-09-22 1973-05-22 Calgon Corp Cationic dextran graft copolymers as dry strength additives for paper
JP3734820B1 (ja) * 2004-09-03 2006-01-11 任天堂株式会社 ゲームプログラム、ゲーム装置、および入力装置
JP2012198855A (ja) * 2011-03-23 2012-10-18 Sony Corp 情報処理装置、情報処理方法及びプログラム
KR20140105354A (ko) * 2013-02-22 2014-09-01 삼성전자주식회사 터치 감응 유저 인터페이스를 포함하는 전자장치
JP2018067068A (ja) * 2016-10-17 2018-04-26 グリー株式会社 描画処理方法、描画処理プログラム及び描画処理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4578947B2 (ja) * 2004-11-19 2010-11-10 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP4583893B2 (ja) * 2004-11-19 2010-11-17 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP5031261B2 (ja) * 2006-05-09 2012-09-19 任天堂株式会社 ゲームプログラムおよびゲーム装置
CN101498985B (zh) * 2008-01-30 2012-05-30 义隆电子股份有限公司 可供进行多对象操作的触控板及应用其中的方法
JP4932010B2 (ja) * 2010-01-06 2012-05-16 株式会社スクウェア・エニックス ユーザインタフェース処理装置、ユーザインタフェース処理方法、およびユーザインタフェース処理プログラム
JP5237325B2 (ja) * 2010-04-28 2013-07-17 株式会社スクウェア・エニックス ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP6184658B2 (ja) * 2010-08-20 2017-08-23 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法
EP2497547B1 (en) * 2011-03-08 2018-06-27 Nintendo Co., Ltd. Information processing program, information processing apparatus, information processing system, and information processing method
JP5689014B2 (ja) * 2011-04-07 2015-03-25 任天堂株式会社 入力システム、情報処理装置、情報処理プログラム、および3次元位置算出方法
JP5594847B2 (ja) * 2011-05-19 2014-09-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理装置の制御方法、プログラム及び情報記憶媒体
WO2013038630A1 (ja) * 2011-09-13 2013-03-21 パナソニック株式会社 情報入力装置及び情報入力方法
JP2013127683A (ja) * 2011-12-16 2013-06-27 Namco Bandai Games Inc プログラム、情報記憶媒体、端末、サーバ及びネットワークシステム
JP2014154055A (ja) * 2013-02-13 2014-08-25 Mitsubishi Electric Corp 画像処理装置及び画像処理方法
US9772743B1 (en) * 2015-03-30 2017-09-26 Electronic Arts Inc. Implementation of a movable control pad on a touch enabled device
CN107890665A (zh) * 2017-11-20 2018-04-10 上海祐胜电子科技有限公司 一种新型的游戏控制装置
JP6560801B1 (ja) * 2018-09-26 2019-08-14 株式会社Cygames プログラム、電子装置、及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3734820A (en) 1971-09-22 1973-05-22 Calgon Corp Cationic dextran graft copolymers as dry strength additives for paper
JP3734820B1 (ja) * 2004-09-03 2006-01-11 任天堂株式会社 ゲームプログラム、ゲーム装置、および入力装置
JP2012198855A (ja) * 2011-03-23 2012-10-18 Sony Corp 情報処理装置、情報処理方法及びプログラム
KR20140105354A (ko) * 2013-02-22 2014-09-01 삼성전자주식회사 터치 감응 유저 인터페이스를 포함하는 전자장치
JP2018067068A (ja) * 2016-10-17 2018-04-26 グリー株式会社 描画処理方法、描画処理プログラム及び描画処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Matthias Baldauf, Peter Frohlich, Florence Adegeye, and Stefan Suette. 2015. Investigating On-Screen Gamepad Designs for Smartphone-Controlled Video Games. ACM Trans. Multimedia Comput. Commun. Appl. 12, 1s, Article 22 (October 2015), 21 pages. DOI: https://doi.org/10.1145/2808202

Also Published As

Publication number Publication date
US11541311B2 (en) 2023-01-03
JP6389581B1 (ja) 2018-09-12
JP2019200595A (ja) 2019-11-21
CN112424739A (zh) 2021-02-26
WO2019220873A1 (ja) 2019-11-21
US20210052984A1 (en) 2021-02-25
KR102362465B1 (ko) 2022-02-14

Similar Documents

Publication Publication Date Title
KR102362465B1 (ko) 프로그램, 전자 장치, 및 방법
US10761612B2 (en) Gesture recognition techniques
US9342160B2 (en) Ergonomic physical interaction zone cursor mapping
JP6707539B2 (ja) 仮想ウェアラブル
JP6370893B2 (ja) 検出されたジェスチャーに基づいてデバイス動作を実行するためのシステムおよび方法
CN102915112B (zh) 用于近距离动作跟踪的***和方法
US9268407B1 (en) Interface elements for managing gesture control
JP7162079B2 (ja) 頭部のジェスチャーを介してディスプレイ装置を遠隔制御する方法、システムおよびコンピュータプログラムを記録する記録媒体
CN106029187A (zh) 悬停敏感设备上的高级游戏结构
US20210205698A1 (en) Program, electronic device, and method
US20150153834A1 (en) Motion input apparatus and motion input method
US9350918B1 (en) Gesture control for managing an image view display
JP7250451B2 (ja) プログラム、電子装置、及び方法
JP2010067090A (ja) 情報端末装置
JP7471782B2 (ja) プログラム、電子装置、及び方法
JP7480408B1 (ja) 情報処理システム、情報処理装置、プログラム及び情報処理方法
JP6911216B1 (ja) 方法、プログラム、及び電子装置
CN113590014B (zh) 基于姿态动作的电梯召唤方法、装置和计算机设备
JP7143364B2 (ja) 方法、プログラム、及び電子装置
Chu et al. A study of motion recognition system using a smart phone

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant