CN106919322A - 在游戏中控制虚拟镜头的方法和装置 - Google Patents

在游戏中控制虚拟镜头的方法和装置 Download PDF

Info

Publication number
CN106919322A
CN106919322A CN201710161966.7A CN201710161966A CN106919322A CN 106919322 A CN106919322 A CN 106919322A CN 201710161966 A CN201710161966 A CN 201710161966A CN 106919322 A CN106919322 A CN 106919322A
Authority
CN
China
Prior art keywords
spin matrix
gyroscope
data
virtual lens
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710161966.7A
Other languages
English (en)
Other versions
CN106919322B (zh
Inventor
曾祥峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201710161966.7A priority Critical patent/CN106919322B/zh
Publication of CN106919322A publication Critical patent/CN106919322A/zh
Application granted granted Critical
Publication of CN106919322B publication Critical patent/CN106919322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • 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/428Processing 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 motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Gyroscopes (AREA)

Abstract

本申请涉及一种在游戏中控制虚拟镜头的方法和装置。该方法包括:获得来自运行所述游戏的设备的陀螺仪的陀螺仪数据和来自所述设备的加速度计的加速度计数据,根据所述陀螺仪数据和所述加速度计数据,获得陀螺仪旋转矩阵,根据所述设备的朝向,设置默认旋转矩阵,以及根据所述陀螺仪旋转矩阵和所述默认旋转矩阵,控制所述虚拟镜头。本申请通过获取移动设备的陀螺仪和加速度计的信息,让玩家可以自行控制虚拟镜头方向,使玩家在游戏中的代入感更强。

Description

在游戏中控制虚拟镜头的方法和装置
技术领域
本申请涉及游戏的虚拟镜头控制领域。具体地,本申请涉及一种在游戏中控制虚拟镜头的方法和装置。
背景技术
现有的游戏中绝大多数设定了虚拟镜头的方向位置等信息,玩家可以通过滑动屏幕或者点击按钮的方式对虚拟镜头进行控制。近来出现了可以通过陀螺仪控制游戏中的虚拟镜头方向的虚拟现实/增强现实玩法,玩家通过改变运行游戏的设备的方向,改变虚拟镜头的方向,从而与游戏进行交互。对于以移动设备运行的游戏,现有的方案通过IOS或Android系统提供的接口来获取移动设备的陀螺仪的欧拉角数据或旋转矩阵,经过一定处理保证其轴向与游戏轴向相同,然后将游戏的虚拟镜头旋转矩阵设置为获取到的陀螺仪数据。
在游戏场景中,仅通过陀螺仪控制镜头方向,可以满足一定的需求。但是首先,对于以此方式进行的游戏,不能保证以不同朝向打开陀螺仪都能控制虚拟镜头按照玩家需要的方向进行正确旋转。例如,在与游戏默认方向相反的方向打开陀螺仪时,会使虚拟镜头的旋转数据相反。如在游戏中进行一些强制的限定,则不能满足玩家随意转动设备从而控制虚拟镜头的随意性。
发明内容
本申请其中一实施例提供了一种在游戏中控制虚拟镜头的方法和装置,以至少解决现有技术中不能保证以不同朝向打开陀螺仪都能控制镜头正确旋转的问题。
根据本申请其中一实施例的一个方面,提供了一种在游戏中控制虚拟镜头的方法,包括:获得来自运行游戏的设备的陀螺仪的陀螺仪数据和来自设备的加速度计的加速度计数据;根据陀螺仪数据和加速度计数据,获得陀螺仪旋转矩阵;根据设备的朝向,设置默认旋转矩阵;以及根据陀螺仪旋转矩阵和默认旋转矩阵,控制虚拟镜头。
进一步地,该方法还包括:使陀螺仪数据中的欧拉角与游戏中的坐标系匹配,根据加速度计数据中的x值为正值或负值,调整欧拉角的值为正值或负值,以及根据调整后的欧拉角,生成陀螺仪旋转矩阵。
进一步地,使陀螺仪数据中的欧拉角与游戏中的坐标系匹配包括:根据游戏中的坐标系调整陀螺仪数据中的欧拉角的部分或全部元素的顺序和方向分别,元素包括:pitch俯仰角、yaw偏航角和roll翻滚角。
进一步地,生成陀螺仪旋转矩阵包括:分别转换调整后的pitch俯仰角、yaw偏航角和roll翻滚角以得到旋转矩阵Mp、My和Mr,将旋转矩阵Mp、My和Mr依次相乘,以得到陀螺仪旋转矩阵,其中,M0=Mp×My×Mr,M0为陀螺仪旋转矩阵。
进一步地,在旋转矩阵Mp、My和Mr中,Mp=(1,0,0,0,0,cosf(pitch),sinf(pitch),0,0,-sinf(pitch),cosf(pitch),0,0,0,0,1),My=(cosf(yaw),0,-sinf(yaw),0,0,1,0,0,sinf(yaw),0,cosf(yaw),0,0,0,0,1),并且Mr=(cosf(roll),sinf(roll),0,0,-sinf(roll),cosf(roll),0,0,0,0,1,0,0,0,0,1)。
进一步地,将玩家在游戏中控制的角色的朝向经默认旋转矩阵旋转后,得到虚拟镜头的初始方向,其中,初始方向与设备的朝向方向相同。
进一步地,该方法还包括将陀螺仪旋转矩阵和默认旋转矩阵相乘,得到虚拟镜头旋转矩阵,用于旋转虚拟镜头,其中,M=M0×M1,M为虚拟镜头旋转矩阵,M0为陀螺仪旋转矩阵,M1为默认旋转矩阵。
进一步地,默认旋转矩阵为单位矩阵。
进一步地,控制虚拟镜头包括:如果设备在设备的屏幕所处的平面内发生旋转,则控制虚拟镜头按照旋转对应的量,向相反的方向进行旋转补偿。
进一步地,以轮询的方式获得陀螺仪数据,并且以推送的方式获得加速度计数据
进一步地,如果游戏是以IOS系统运行的,则陀螺仪数据为经IOS系统处理过的稳定陀螺仪数据。
根据本申请其中一实施例的另一方面,还提供了一种在游戏中控制虚拟镜头的装置,包括:数据获取模块,用于获得来自运行游戏的设备的陀螺仪的陀螺仪数据和来自设备的加速度计的加速度计数据;陀螺仪旋转矩阵计算模块,用于根据陀螺仪数据和加速度计数据,获得陀螺仪旋转矩阵;默认旋转矩阵计算模块,用于根据设备的朝向,设置默认旋转矩阵;以及虚拟镜头控制模块,用于根据陀螺仪旋转矩阵和默认旋转矩阵,控制虚拟镜头。
在本申请其中一实施例中,提供了不依赖玩家以何种方向手持设备打开陀螺仪,都能正确的控制镜头的虚拟现实/增强现实玩法,设备朝向不同的模拟游戏虚拟镜头的方向,采用首先通过设备的数据判断设备的正反方向后,再进行虚拟镜头旋转的方式,使得能够通过加速度计的值确定设备方向,使玩家可以360度旋转虚拟镜头,体会在游戏世界的感觉,且无论正向反向进入游戏均表现正常,不会出现画面反转的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请其中一实施例的在游戏中控制虚拟镜头的方法的流程图;
图2是根据本申请其中一实施例的在游戏中控制虚拟镜头的装置的框图;
图3是根据本申请其中一示例性实施方式的控制虚拟镜头的方法的流程图;
图4是根据本申请其中一示例性实施方式的控制虚拟镜头的方法中,虚拟镜头呈现的视图;
图5是根据本申请其中一示例性实施方式的控制虚拟镜头的方法中,虚拟镜头呈现的视图;
图6是根据本申请其中一示例性实施方式的控制虚拟镜头的方法中,虚拟镜头呈现的视图;
图7是根据本申请其中一示例性实施方式的控制虚拟镜头的方法中,虚拟镜头呈现的视图;
图8是根据本申请示其中一例性实施方式的控制虚拟镜头的方法中,虚拟镜头呈现的视图;
图9是根据本申请其中一示例性实施方式的控制虚拟镜头的方法中,虚拟镜头呈现的视图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块或单元。
根据本申请其中一实施例,提供了一种在游戏中控制虚拟镜头的方法。图1是根据本申请其中一实施例的在游戏中控制虚拟镜头的方法的流程图。
如图1所示,一种在游戏中控制虚拟镜头的方法包括:S102,获得来自运行游戏的设备的陀螺仪的陀螺仪数据和来自设备的加速度计的加速度计数据;S104,根据陀螺仪数据和加速度计数据,获得陀螺仪旋转矩阵;S106,根据设备的朝向,设置默认旋转矩阵;以及S108,根据陀螺仪旋转矩阵和默认旋转矩阵,控制虚拟镜头。在该方法中,不仅采用陀螺仪数据,还采用加速度计数据。对于现有技术中仅通过陀螺仪控制虚拟镜头的方向,不能确定设备与游戏中虚拟镜头的朝向相对应,仅根据获取的陀螺仪数据只能获得虚拟镜头转动的角度,但假如设备朝向与游戏默认的方向相反的方向,此时转动设备,由于陀螺仪数据与玩家想要转动的方向相反,虚拟镜头无法按照玩家想要转动的方向旋转。该方法引入了加速度计数据,在获取了陀螺仪数据以及加速度数据之后,能够判断设备方向,根据陀螺仪数据和加速度计数据获得陀螺仪旋转矩阵,使得陀螺仪数据与游戏中的坐标系匹配。而且,根据设备的朝向,设置默认旋转矩阵,使得设备的朝向与游戏中的方向匹配。以这样的方式,匹配后的设备的朝向能够根据匹配后的陀螺仪数据正确地旋转,使得玩家在旋转设备时,虚拟镜头能够根据设备的旋转和根据陀螺仪旋转矩阵和默认旋转矩阵,按照玩家需要的正确的方向旋转。
根据本申请其中一实施例,获得陀螺仪旋转矩阵包括:使陀螺仪数据中的欧拉角与游戏中的坐标系匹配,根据加速度计数据中的x值为正值或负值,调整欧拉角的值为正值或负值,以及根据调整后的欧拉角,生成陀螺仪旋转矩阵。在该方法中,具体地,可以通过陀螺仪数据中的欧拉角与游戏中的坐标系匹配。并且,进一步通过加速度计用于确定方向。通过加速度计的x值,判断当前设备朝向,并根据不同的朝向处理陀螺仪欧拉角。此时,经过调整的欧拉角被转换为陀螺仪旋转矩阵。以此方式,欧拉角经过调整后,能够为虚拟镜头的旋转提供校正后的旋转数据,使得无论设备朝向任何方向,虚拟镜头均可以按照正确的方向旋转。
根据本申请其中一实施例,使陀螺仪数据中的欧拉角与游戏中的坐标系匹配包括:根据游戏中的坐标系调整陀螺仪数据中的欧拉角的部分或全部元素的顺序和方向分别,元素包括:pitch俯仰角、yaw偏航角和roll翻滚角。由于运行游戏的系统的坐标系可能与游戏本身的坐标系不同,需要先对两者进行匹配,才能准确实现虚拟镜头的旋转。获取欧拉角pitch、yaw和roll后,由于设备在朝向各种方向进行旋转时,陀螺仪数据pitch、yaw和roll对应于虚拟镜头的不同的旋转方向,需要将陀螺仪数据pitch、yaw和roll进行顺序和方向的调整。在本申请实施例中,陀螺仪数据pitch、yaw和roll被分别调整为yaw、-pitch和roll。以这种方式,避免出现旋转设备x轴而游戏虚拟镜头的y轴旋转的现象。
根据本申请其中一实施例,如果游戏的进行方向为反方向,则加速度计数据中的x值为正值;如果游戏的进行方向为正方向,则加速度计数据中的x值为负值。具体地,在本申请实施例中,在速度计数据的x,y,z值中,以加速度计数据的x值为基础判断设备的朝向。设备如果朝向游戏进行相反的方向,加速度计数据的x值将是正值;设备如果朝向游戏进行的方向,加速度计数据的x值将是负值。以此方式,本申请其中一实施例能够判定设备的朝向,从而使虚拟镜头能够按照玩家需要的方向正确旋转。
根据本申请其中一实施例,生成陀螺仪旋转矩阵包括:分别转换调整后的欧拉角pitch俯仰角、yaw偏航角和roll翻滚角以得到旋转矩阵Mp、My和Mr,将旋转矩阵Mp、My和Mr按照顺序相乘,以得到陀螺仪旋转矩阵,其中,M0=Mp×My×Mr,M0为陀螺仪旋转矩阵。在获得调整后的欧拉角pitch、yaw和roll后,转换为旋转矩阵,再将其按照顺序相乘可以得到虚拟镜头旋转所需的正确的旋转数据。按照特定的顺序将旋转矩阵相乘,能够得到两个或两个轴以上同时旋转时的正确的旋转数据。
根据本申请其中一实施例,在旋转矩阵Mp、My和Mr中,Mp=(1,0,0,0,0,cosf(pitch),sinf(pitch),0,0,-sinf(pitch),cosf(pitch),0,0,0,0,1),My=(cosf(yaw),0,-sinf(yaw),0,0,1,0,0,sinf(yaw),0,cosf(yaw),0,0,0,0,1),并且Mr=(cosf(roll),sinf(roll),0,0,-sinf(roll),cosf(roll),0,0,0,0,1,0,0,0,0,1)。具体地,本申请中的旋转矩阵通过上述的获得调整后的欧拉角pitch、yaw和roll转换而得,以这样的方式获得的旋转矩阵可以用做虚拟镜头旋转的数据,朝向各个方向旋转的旋转矩阵可以以相乘的方式叠加为最终的陀螺仪旋转矩阵。
根据本申请其中一实施例,将玩家在游戏中控制的角色的朝向经默认旋转矩阵旋转后,得到虚拟镜头的初始方向,其中,初始方向与设备的朝向方向相同。在本申请实施例中,得到陀螺仪旋转矩阵后,需要将玩家在游戏中控制的角色的朝向与设备的方向校准。具体地,可以通过默认旋转矩阵,将角色的朝向按照默认旋转矩阵旋转后,该朝向与设备的朝向是相同的,以这样的方式,可以匹配玩家在游戏中控制的角色的朝向、设备的朝向和虚拟镜头的初始方向的方向,从而当设备旋转时,基于正确的方向进行虚拟镜头朝向正确的旋转方向旋转。
根据本申请其中一实施例,该方法还包括将陀螺仪旋转矩阵和默认旋转矩阵相乘,得到虚拟镜头旋转矩阵,用于旋转虚拟镜头,其中,M=M0×M1,M为虚拟镜头旋转矩阵,M0为陀螺仪旋转矩阵,M1为默认旋转矩阵。在得到陀螺仪旋转矩阵和默认旋转矩阵后,将两个矩阵通过相乘合并为旋转游戏中虚拟镜头所需的矩阵。以这种方式,当设备旋转时,通过陀螺仪数据和加速计数据,虚拟镜头根据正确的初始方向,按照正确的旋转方向旋转,使玩家无论以任何设备方向打开陀螺仪,均能正确地控制虚拟镜头。
根据本申请其中一实施例,如果设备平放且设备的竖直下端朝向正北方向,则陀螺仪的欧拉角roll、pitch和yaw都为0。对于IOS设备,例如,当设备平放,且Home键朝向正北方向时,即设备的竖直下端朝向正北方向,此时的陀螺仪的欧拉角roll、pitch和yaw都为0。应理解,该实施例仅是本申请的其中一个实例,描述了设备朝向特定方向时陀螺仪数据的具体数值,设备可以朝向任何合适的方向放置。
根据本申请其中一实施例,如果设备平放且设备的竖直下端朝向正北方向,经默认旋转矩阵旋转的方向为V=(1.57,0,-avatar_roty),其中avatar_roty为角色的朝向。具体地,在本实施例中,虚拟镜头根据玩家控制的角色朝向向下旋转90度,然后根据玩家控制的角色朝向水平旋转,从而得到虚拟镜头正确的初始朝向。
根据本申请其中一实施例,默认旋转矩阵为单位矩阵。虚拟镜头的初始方向可以按照单位矩阵的默认旋转矩阵旋转,单位矩阵的默认旋转矩阵可以仅调整虚拟镜头的初始方向。
根据本申请其中一实施例,控制虚拟镜头包括:如果设备在设备的屏幕所处的平面内发生旋转,则控制虚拟镜头按照旋转对应的量,向相反的方向进行旋转补偿。玩家在通过设备的旋转控制虚拟镜头时,为了保证玩家手持设备时的稳定性,以及当设备在设备的屏幕所处的平面内发生旋转时,例如,设备的左端下降,右端上升时(反之亦然),虚拟镜头反方向旋转对应的量,游戏的画面相对于玩家来说不会摇摆,使玩家感觉游戏画面不变,不会发生旋转。
根据本申请其中一实施例,以轮询的方式获得所述陀螺仪数据,并且以推送的方式获得所述加速度计数据。具体的,获取数据有轮询(poll)和推送(push)两种方式。轮询方式为每次取数据时刷新,推送方式为设置刷新频率,然后将刷新的数据推送到队列中,每次从队列中取数据。本申请实施例中,陀螺仪的数据采用轮询的方式,减少不必要的数据刷新次数,以及队列中数据造成的延时。而加速度计的数据由于只需考虑其正负,因此采取推送的方式获取。
根据本申请其中一实施例,如果游戏是以IOS系统运行的,则陀螺仪数据为经IOS系统处理过的稳定陀螺仪数据。IOS提供两种陀螺仪数据,即gyroData.rotationRate和gyroData.attitude。前者为未处理的原生陀螺仪的三个欧拉角,数据偏差较大且不稳定。实验发现设备稳定不动时,z轴会持续偏移。后者为IOS处理过的陀螺仪数据,为较稳定的数据。采用稳定陀螺仪数据能够获得更精确的旋转结果。
根据本申请其中一实施例,稳定陀螺仪数据包括gyroData.attitude.pitch、gyroData.attitude.roll和gyroData.attitude.yaw数据。如上的稳定陀螺仪数据具体包括gyroData.attitude.pitch、gyroData.attitude.roll和gyroData.attitude.yaw,用于陀螺仪数据中的欧拉角的计算。
根据本申请其中一实施例的另一方面,还提供了一种在游戏中控制虚拟镜头的装置。图2是根据本申请其中一实施例的在游戏中控制虚拟镜头的装置的框图。在游戏中控制虚拟镜头的装置包括:数据获取模块202,用于获得来自运行游戏的设备的陀螺仪的陀螺仪数据和来自设备的加速度计的加速度计数据;陀螺仪旋转矩阵计算模块204,用于根据陀螺仪数据和加速度计数据,获得陀螺仪旋转矩阵;默认旋转矩阵计算模块206,用于根据设备的朝向,设置默认旋转矩阵;以及虚拟镜头控制模块208,用于根据陀螺仪旋转矩阵和默认旋转矩阵,控制虚拟镜头。根据本申请其中一实施例的在游戏中控制虚拟镜头的装置能够实现如上所述的在游戏中控制虚拟镜头的方法,包括实施该方法的各个模块。该装置能过获取加速度计数据,并且在获取了陀螺仪数据以及加速度数据之后,判断设备方向,根据陀螺仪数据和加速度计数据获得陀螺仪旋转矩阵,使得陀螺仪数据与游戏中的坐标系匹配。而且,根据设备的朝向,设置默认旋转矩阵,使得设备的朝向与游戏中的方向匹配。以这样的方式,匹配后的设备的朝向能够根据匹配后的陀螺仪数据正确地旋转,使得玩家在旋转设备时,虚拟镜头能够根据设备的旋转和根据陀螺仪旋转矩阵和默认旋转矩阵,按照玩家需要的正确的方向旋转。
根据本申请其中一实施例的另一方面的在游戏中控制虚拟镜头的装置实现的在游戏中控制虚拟镜头的方法与上文中本申请实施例的一方面的方法相同,具备用于实现方法的各个对应的模块,在此不再赘述。
本申请还提供了根据本申请其中一示例性实施方式的控制虚拟镜头的方法。
Android和IOS的数据处理方式有一定区别,为方便描述和理解,本申请其中一示例性实施方式以IOS上的横屏游戏,且手机平放时,游戏默认打开方向为Home键在右手侧为例,进行算法说明。
图3是根据本申请其中一示例性实施方式的控制虚拟镜头的方法的流程图。图中每一个流程步骤右侧有对应的编号。
S302:打开设备的加速度计和陀螺仪,获取加速度计的x,y,z数据和陀螺仪的欧拉角roll,pitch,yaw。
具体的,获取数据有poll和push两种方式。poll方式为每次取数据时刷新,push方式为设置刷新频率,然后将刷新的数据push到队列中,每次从队列中取数据。本发明中陀螺仪的数据采用poll的方式,减少不必要的数据刷新次数,以及队列中数据造成的延时。而加速度计的数据由于只需考虑其正负,因此采取push的方式获取。
IOS提供两种陀螺仪数据,gyroData.rotationRate和gyroData.attitude两种数据。前者为未处理的原生陀螺仪三个欧拉角,数据偏差较大且不稳定,实验发现设备稳定不动时,z轴会持续偏移。后者为IOS处理过的陀螺仪数据,为较稳定的数据,因此选择gyroData.attitude.pitch,gyroData.attitude.roll,gyroData.attitude.yaw数据进行计算。
S304:处理获取到的数据。
具体的,IOS本身的坐标系和游戏坐标系可能不同,因此,需要先对获取到的数据进行处理。在本实施例中,为使陀螺仪数据和游戏中的坐标系匹配,pitch、roll和yaw对应的顺序和方向为yaw、-pitch和roll。如不交换顺序则会出现旋转设备x轴而游戏y轴旋转的现象。
如果Home键在右手侧,屏幕面向玩家的方向为正方向;如果Home键在左手侧,屏幕面向玩家方向为反方向。由于只需要考虑游戏的正反方向,因此,只需要判断加速度计x的正负即可。
当正方向进行游戏时,加速度计x的值为负;当反方向进行游戏时,加速度x的值为正。陀螺仪的欧拉角roll、pitch和yaw分别按照加速度计x的值得正负取正负,然后得到游戏中需要的三个方向。
坐标轴方向和顺序调整后再按照pitch、yaw和roll的顺序转换成旋转矩阵Mp、My和Mr。其中:
Mp=(1,0,0,0,0,cosf(pitch),sinf(pitch),0,0,-sinf(pitch),cosf(pitch),0,0,0,0,1)My=(cosf(yaw),0,-sinf(yaw),0,0,1,0,0,sinf(yaw),0,cosf(yaw),0,0,0,0,1)Mr=(cosf(roll),sinf(roll),0,0,-sinf(roll),cosf(roll),0,0,0,0,1,0,0,0,0,1)
相乘得到最终的陀螺仪旋转矩阵,记为M0。如不按照特定顺序相乘,会导致两个或两个轴以上同时旋转时,叠加旋转结果不正确。如下式:
M0=Mp×My×Mr
S306:按照游戏需求设置游戏虚拟镜头的初始默认方向。
具体的,设备水平放置Home键朝向正北方向时,陀螺仪的欧拉角roll,pitch,yaw都为0,旋转矩阵为单位阵。
为达到上述效果,设置游戏虚拟镜头默认旋转矩阵M1。在本实施例中,M1为首先向下旋转90度,然后根据玩家控制的角色方向水平旋转。旋转方向如下式。其中avatar_roty为玩家控制的角色朝向。
V=(1.57,0,-avatar_roty)
S308:将M0和M1相乘,得到M,将游戏虚拟镜头的旋转矩阵设置为所得的矩阵M。如下式:
M=M0×M1
为了便于说明,提供了根据本申请其中一示例性实施方式的控制虚拟镜头的方法在应用时的各种状态的示例。图4至图9是根据本申请其中一示例性实施方式的控制虚拟镜头的方法中,虚拟镜头呈现的视图。
根据本申请其中一示例性实施方式的控制虚拟镜头的方法,为优化体验,希望设备方向模拟虚拟镜头朝向,设备向下时,虚拟镜头向下;设备向上时,虚拟镜头向上。且初始方向为玩家控制的角色面向。玩家在如图4所示时的状态打开陀螺仪,设备平放且朝下时,如图5所示,虚拟镜头对向地面。设备竖直抬起,如图6所示,虚拟镜头抬起,面向方向为玩家控制的角色正对方向。设备可以水平转动以模拟玩家控制的角色转身,如图7所示。设备平放旋转,虚拟镜头向相反方向旋转,使游戏画面看起来不动,使玩家感觉游戏画面不变,不会发生旋转,如图8所示。继续抬起设备,如图9所示,虚拟镜头转向上方,例如,玩家控制的角色仰望天空。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元或模块可以是或者也可以不是物理上分开的,作为单元或模块显示的部件可以是或者也可以不是物理单元或模块,即可以位于一个地方,或者也可以分布到多个网络单元或模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元或模块可以集成在一个处理单元或模块中,也可以是各个单元或模块单独物理存在,也可以两个或两个以上单元或模块集成在一个单元或模块中。上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元或模块的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (12)

1.一种在游戏中控制虚拟镜头的方法,其特征在于,包括:
获得来自运行所述游戏的设备的陀螺仪的陀螺仪数据和来自所述设备的加速度计的加速度计数据,
根据所述陀螺仪数据和所述加速度计数据,获得陀螺仪旋转矩阵,
根据所述设备的朝向,设置默认旋转矩阵,以及
根据所述陀螺仪旋转矩阵和所述默认旋转矩阵,控制所述虚拟镜头。
2.根据权利要求1所述的方法,其特征在于,获得所述陀螺仪旋转矩阵包括:
使所述陀螺仪数据中的欧拉角与所述游戏中的坐标系匹配,
根据所述加速度计数据中的x值为正值或负值,调整所述欧拉角的值为正值或负值,以及
根据调整后的所述欧拉角,生成所述陀螺仪旋转矩阵。
3.根据权利要求2所述的方法,其特征在于,使所述陀螺仪数据中的欧拉角与所述游戏中的坐标系匹配包括:
根据游戏中的坐标系调整所述陀螺仪数据中的欧拉角的部分或全部元素的顺序和方向,所述元素包括:pitch俯仰角、yaw偏航角和roll翻滚角。
4.根据权利要求3所述的方法,其特征在于,生成所述陀螺仪旋转矩阵包括:
分别转换调整后的pitch俯仰角、yaw偏航角和roll翻滚角以得到对应的旋转矩阵Mp、My和Mr,将所述旋转矩阵Mp、My和Mr依次相乘,以得到所述陀螺仪旋转矩阵,其中,
M0=Mp×My×Mr,M0为所述陀螺仪旋转矩阵。
5.根据权利要求4所述的方法,其特征在于,在所述旋转矩阵Mp、My和Mr中,
Mp=(1,0,0,0,0,cosf(pitch),sinf(pitch),0,0,-sinf(pitch),cosf(pitch),0,0,0,0,1),My=(cosf(yaw),0,-sinf(yaw),0,0,1,0,0,sinf(yaw),0,cosf(yaw),0,0,0,0,1),并且Mr=(cosf(roll),sinf(roll),0,0,-sinf(roll),cosf(roll),0,0,0,0,1,0,0,0,0,1)。
6.根据权利要求1至5中任一项所述的方法,其特征在于,将玩家在所述游戏中控制的角色的朝向经所述默认旋转矩阵旋转后,得到所述虚拟镜头的初始方向,其中,
所述初始方向与所述设备的朝向方向相同。
7.根据权利要求6所述的方法,其特征在于:
将所述陀螺仪旋转矩阵和所述默认旋转矩阵相乘,得到虚拟镜头旋转矩阵,用于旋转所述虚拟镜头,其中,
M=M0×M1,M为所述虚拟镜头旋转矩阵,M0为所述陀螺仪旋转矩阵,M1为所述默认旋转矩阵。
8.根据权利要求6所述的方法,其特征在于,所述默认旋转矩阵为单位矩阵。
9.根据权利要求1至5中任一项所述的方法,其特征在于,控制所述虚拟镜头包括:
如果所述设备在所述设备的屏幕所处的平面内发生旋转,则控制所述虚拟镜头按照所述旋转对应的量,向相反的方向进行旋转补偿。
10.根据权利要求1至5中任一项所述的方法,其特征在于,以轮询的方式获得所述陀螺仪数据,并且以推送的方式获得所述加速度计数据。
11.根据权利要求1至5中任一项所述的方法,其特征在于,如果所述游戏是以IOS系统运行的,则所述陀螺仪数据为经IOS系统处理过的稳定陀螺仪数据。
12.一种在游戏中控制虚拟镜头的装置,其特征在于,包括:
数据获取模块,用于获得来自运行所述游戏的设备的陀螺仪的陀螺仪数据和来自所述设备的加速度计的加速度计数据,
陀螺仪旋转矩阵计算模块,用于根据所述陀螺仪数据和所述加速度计数据,获得陀螺仪旋转矩阵,
默认旋转矩阵计算模块,用于根据所述设备的朝向,设置默认旋转矩阵,以及
虚拟镜头控制模块,用于根据所述陀螺仪旋转矩阵和所述默认旋转矩阵,控制所述虚拟镜头。
CN201710161966.7A 2017-03-17 2017-03-17 在游戏中控制虚拟镜头的方法和装置 Active CN106919322B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710161966.7A CN106919322B (zh) 2017-03-17 2017-03-17 在游戏中控制虚拟镜头的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710161966.7A CN106919322B (zh) 2017-03-17 2017-03-17 在游戏中控制虚拟镜头的方法和装置

Publications (2)

Publication Number Publication Date
CN106919322A true CN106919322A (zh) 2017-07-04
CN106919322B CN106919322B (zh) 2020-03-10

Family

ID=59461312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710161966.7A Active CN106919322B (zh) 2017-03-17 2017-03-17 在游戏中控制虚拟镜头的方法和装置

Country Status (1)

Country Link
CN (1) CN106919322B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108771866A (zh) * 2018-05-29 2018-11-09 网易(杭州)网络有限公司 虚拟现实中的虚拟对象控制方法及装置
CN109621415A (zh) * 2018-12-26 2019-04-16 网易(杭州)网络有限公司 3d游戏中的显示控制方法及装置、计算机存储介质
CN109847354A (zh) * 2018-12-19 2019-06-07 网易(杭州)网络有限公司 一种游戏中虚拟镜头控制的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2470754A (en) * 2009-06-03 2010-12-08 Sony Comp Entertainment Europe Generating and displaying images dependent on detected viewpoint
CN102314679A (zh) * 2010-03-22 2012-01-11 微软公司 使用加速计信息来确定图片和视频图像的方向
CN103949052A (zh) * 2014-05-09 2014-07-30 深圳市普乐方文化科技有限公司 基于传感器的游戏枪定位方法及系统
CN105021189A (zh) * 2014-04-25 2015-11-04 广州市香港科大霍英东研究院 一种综合利用加速度计和陀螺仪校准移动设备姿态的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2470754A (en) * 2009-06-03 2010-12-08 Sony Comp Entertainment Europe Generating and displaying images dependent on detected viewpoint
CN102314679A (zh) * 2010-03-22 2012-01-11 微软公司 使用加速计信息来确定图片和视频图像的方向
CN105021189A (zh) * 2014-04-25 2015-11-04 广州市香港科大霍英东研究院 一种综合利用加速度计和陀螺仪校准移动设备姿态的方法
CN103949052A (zh) * 2014-05-09 2014-07-30 深圳市普乐方文化科技有限公司 基于传感器的游戏枪定位方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108771866A (zh) * 2018-05-29 2018-11-09 网易(杭州)网络有限公司 虚拟现实中的虚拟对象控制方法及装置
CN109847354A (zh) * 2018-12-19 2019-06-07 网易(杭州)网络有限公司 一种游戏中虚拟镜头控制的方法及装置
CN109847354B (zh) * 2018-12-19 2020-05-22 网易(杭州)网络有限公司 一种游戏中虚拟镜头控制的方法及装置
US11717752B2 (en) 2018-12-19 2023-08-08 Netease (Hangzhou) Network Co., Ltd. Method and apparatus for controlling virtual camera in game
CN109621415A (zh) * 2018-12-26 2019-04-16 网易(杭州)网络有限公司 3d游戏中的显示控制方法及装置、计算机存储介质

Also Published As

Publication number Publication date
CN106919322B (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
EP2953099B1 (en) Information processing device, terminal device, information processing method, and programme
EP3517190B1 (en) Information processing device, terminal device, information processing method, and programme
CN103513894B (zh) 显示设备、远程控制设备及其控制方法
Garrett et al. Model predictive driving simulator motion cueing algorithm with actuator-based constraints
CN106919322A (zh) 在游戏中控制虚拟镜头的方法和装置
CN107423010A (zh) 一种信息处理方法及电子设备
CN107213636A (zh) 镜头移动方法、装置、存储介质和处理器
WO2019012683A1 (ja) サーバ装置、プログラム及び方法
CN108427595A (zh) 虚拟现实中用户界面控件显示位置的确定方法及装置
CN103403766B (zh) 对象动作装置及方法
CN105807798A (zh) 一种头戴式智能眼镜抖动控制方法及装置
CN106527887A (zh) 虚拟物体选取方法、装置及vr系统
CN106931960A (zh) 一种姿态数据获取方法及装置
CN108020223A (zh) 一种基于惯性测量装置的力反馈设备手柄的姿态测量方法
CN107823881A (zh) 特效显示方法及装置
CN107789832A (zh) 构成复杂碰撞器的方法、装置、终端设备及存储介质
CN107045389A (zh) 一种实现控制固定被控物的方法及装置
CN106445111A (zh) 一种虚拟现实设备空间信息的锁定方法及装置
CN106648365A (zh) 一种三维图像的屏幕防抖方法与装置
CN107507283A (zh) 立体图形的展开呈现方法、装置、电子设备及存储介质
CN110152295B (zh) 虚拟对象的控制方法及装置、存储介质及电子设备
CN106406532A (zh) 一种运动显示方法、装置及移动终端
CN106293397A (zh) 一种显示对象的处理方法及终端
US20230338827A1 (en) Correlating gestures on deformable controller to computer simulation input signals
US20230041294A1 (en) Augmented reality (ar) pen/hand tracking

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant