CN106774941A - 触屏终端3d虚拟角色与场景摄像机运动冲突的解决方法 - Google Patents
触屏终端3d虚拟角色与场景摄像机运动冲突的解决方法 Download PDFInfo
- Publication number
- CN106774941A CN106774941A CN201710032321.3A CN201710032321A CN106774941A CN 106774941 A CN106774941 A CN 106774941A CN 201710032321 A CN201710032321 A CN 201710032321A CN 106774941 A CN106774941 A CN 106774941A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual role
- role
- time
- scene camera
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,具体为:1、虚拟角色运动方向为实时获取手势相对于虚拟按钮坐标系的方向。2、场景摄像机的位置始终保持与虚拟角色Z轴坐标固定距离处,跟随虚拟角色移动,方向控制始终与虚拟角色保持等距同向,或者保持面向屏幕。3、场景摄像机与虚拟角色的运动可在同一进程中完成运算,水平方向按手势的不同划分为四种运算,垂直运算按照重力规律单独运算。本发明将虚拟按钮与手势相结合,避开了三角函数的计算,通过屏幕的平面坐标换算,解决对角色与视角的控制冲突问题。
Description
技术领域
本发明涉及虚拟游戏领域,特别是涉及一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法。
背景技术
虚拟角色的控制分为三种:姿态控制、运动控制和视角(也称视点)控制。其中视角控制是解决角色与虚拟场景视角的一致性问题。在实际应用中,该问题是一种常见而难解决的问题。并且触屏移动端的出现使得传统的键鼠控制方法不再适用,需要重新研究出能够适应新形势的操作集,才能实现对虚拟角色的控制。现有的视角控制技术有2种:一种是将世界坐标划分为相同大小的子空间,每个子空间应用不同的算法对视角进行控制;另一种是利用三角函数计算虚拟角色局部坐标系与世界坐标系之间的关系,从而实现视角的控制。
1.子空间法将立体空间分为多个子空间,每个子空间对应虚拟角色的一个朝向,该方法计算简单,系统稳定性好。但自然人转向是以任意角度旋转,因此无法进行高真实度模拟,且尺度过大,计算精度小,已不能满足用户需求。
2.三角函数法精度高,真实度好,但是控制效果差,计算时间过长并且容易造成系统崩溃等问题。由于触屏移动设备计算能力远不能与PC相比,因此该方案实际应用中也较少。
3.在触屏移动端,3D虚拟角色的控制模式无法采用传统键鼠控制的方式来进行,必须采用新的控制模式来解决虚拟角色的控制问题,常见的有虚拟按钮和手势控制两种;其中,虚拟按钮是固定在虚拟场景最前方的按钮形式的虚拟对象。其实现原理是动态获取虚拟摄像机的空间位置,根据该位置信息将其绑定在虚拟摄像机前固定距离的空间位置上,随虚拟摄像机的运动而运动;虚拟角色控制所用到的手势相对简单,仅需定义四种手势——上划、下划、左划和右划,这四种手势分别对应上、下、左、右四个手指划动方向。根据手势决定虚拟角色的运动方向。单纯使用手势控制,与子空间法相同,角色转向范围受到限制。
发明内容
有鉴于此,本发明的目的是提供一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,将虚拟按钮与手势相结合,避开了三角函数的计算,通过屏幕的平面坐标换算,解决对角色与视角的控制冲突问题。
本发明采用以下方案实现:一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,包括以下步骤:
步骤S1:进行位移计算:结合虚拟按钮与手势对虚拟角色进行控制,任意时刻感知区域内的位移偏移量通过屏幕坐标进行换算,即采用算法根据位移偏移量计算出任意时刻虚拟角色在世界坐标系内的坐标;
步骤S2:进行朝向计算:虚拟角色的水平方向上,场景摄像机的位置始终保持与虚拟角色z轴坐标固定距离处,跟随虚拟角色移动,方向控制始终与虚拟角色保持等距同向,或者保持面向屏幕,朝向计算在场景摄像机所在的坐标系内进行;
步骤S3:进行重力模拟:虚拟角色的垂直方向,进行重力模拟计算。
进一步地,所述步骤S1采用的算法是根据手势,计算单位时间内虚拟角色的位移偏移量,再更新虚拟角色的世界坐标系内的坐标,设虚拟角色的运动速度为(x_speed,y_speed),Δt是每帧动画播放的时间,虚拟角色在屏幕坐标系内的初始坐标为(x_ch,y_ch),则任意时刻虚拟角色在世界坐标系的坐标计算如下:
当手势坐标轴分量位于y正轴时,单位时间偏移量为y_speed×Δt,实时坐标为y_ch+y_speed×Δt;当手势坐标轴分量位于x负轴时,单位时间偏移量为x_speed×Δt,实时坐标为x_ch-x_speed×Δt;当手势坐标轴分量位于y负轴时,单位时间偏移量为y_speed×Δt,实时坐标为y_ch-y_speed×Δt;当手势坐标轴分量位于x正轴时,单位时间偏移量为x_speed×Δt,实时坐标为x_ch+x_speed×Δt。
进一步地,所述步骤S2中,当虚拟角色在水平方向上旋转时,如果虚拟角色左转,即逆时针旋转,则场景摄像机以y轴为对称轴顺时针旋转;如果虚拟角色右转,即顺时针旋转,则场景摄像机以y轴为对称轴逆时针旋转;设摄像机旋转向量为(α_cam,β_cam,γ_cam),当虚拟角色在x轴上有位移,场景摄像机β_cam分量有变化,且变化值与位移偏移量的值符号相反;场景摄像机坐标系与世界坐标系在水平方向上相差180度的角,两者之间的距离由摄像机的z值决定:
α_cam=α_cam-y_offsetZone (1)
β_cam=β_cam+x_offsetZone (2)
其中,虚拟角色不会绕z轴旋转,所以γ_cam忽略不计,虚拟角色的朝向与场景摄像机的朝向保持一致。
进一步地,所述步骤S3中,由自由落体运动公式:
计算出任意时刻虚拟角色的高度,g是重力加速度,v取值2.0f,则有:
Δh=2.0f×Δt (4)
得到任意时刻虚拟角色在垂直方向的坐标值为:
y_ch=y_ch-Δh (5)
其中,v是一个变量,与时间有关,由于v值是一个模拟值,则公式(3)中的v是一个常量,所以计算出的自由落体位移也是一个常量,表明虚拟角色近似于匀速下落。
相较于现有技术,本发明具有以下有益效果:
1.由于虚拟按钮实现简单,但是角色运动控制较难,角色运动方向混乱比较常见,手势又限制了角色转向的角度范围,因此本发明结合虚拟按钮与手势对虚拟角色进行控制,避免以上问题;
2.本发明不使用子空间法和三角函数法,而是将虚拟按钮平面上的手势换算成角度值,用以控制角色和摄像机的运动方向;
3.本发明将角色运动划分为水平和竖直两种,水平方向模拟角色在地面上的水平运动,竖直方向模拟角色的重力运动,以使角色始终运动在地面上,而非空中或地面下;摄像机的运动则为始终跟随虚拟角色,且朝向始终面向显示器屏幕。摄像机与虚拟角色间的空间距离始终不变。
附图说明
图1是本发明的任意时刻虚拟角色在世界坐标系的坐标示意图。
图2是本发明中触屏移动端与传统键鼠控制方式的对比示意图。
图3是本发明与现有的几种控制方法中朝向运算的对比分析示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本实施例提供一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,包括以下步骤:
步骤S1:进行位移计算:结合虚拟按钮与手势对虚拟角色进行控制,任意时刻感知区域内的位移偏移量可通过屏幕坐标进行换算,反之亦可;即采用算法根据根据此偏移量可计算出任意时刻虚拟角色在世界坐标系内的坐标;
步骤S2:进行朝向计算:虚拟角色的水平方向上,场景摄像机的位置始终保持与虚拟角色z轴坐标固定距离处,跟随虚拟角色移动,方向控制始终与虚拟角色保持等距同向,或者保持面向屏幕,朝向计算在场景摄像机所在的坐标系内进行;
步骤S3:进行重力模拟:虚拟角色的垂直方向,进行重力模拟计算。
在本实施例中,所述步骤S1采用的算法是根据手势,计算单位时间内虚拟角色的位移偏移量,再更新虚拟角色的世界坐标系内的坐标,设虚拟角色的运动速度为(x_speed,y_speed),Δt是每帧动画播放的时间,虚拟角色在屏幕坐标系内的初始坐标为(x_ch,y_ch),则任意时刻虚拟角色在世界坐标系的坐标计算如下:
当手势坐标轴分量位于y正轴时,单位时间偏移量为y_speed×Δt,实时坐标为y_ch+y_speed×Δt;当手势坐标轴分量位于x负轴时,单位时间偏移量为x_speed×Δt,实时坐标为x_ch-x_speed×Δt;当手势坐标轴分量位于y负轴时,单位时间偏移量为y_speed×Δt,实时坐标为y_ch-y_speed×Δt;当手势坐标轴分量位于x正轴时,单位时间偏移量为x_speed×Δt,实时坐标为x_ch+x_speed×Δt,如图1所示。
此时,虚拟角色的位移变化只与时间有关,与手势在屏幕上的偏移量无关。虚拟角色始终做匀速运动。这样就无需再进行比例尺、偏移量等的计算,但缺点是,虚拟角色只能匀速运动,无法根据用户手势的速度、偏移量等模拟虚拟角色加速、减速等行为。
在本实施例中,所述步骤S2中,朝向是根据摄像机的运动实现的。这个过程是在摄像机所在的坐标系内进行,而非在世界坐标系内进行。当虚拟角色在水平方向上旋转时,如果虚拟角色左转,即逆时针旋转,则场景摄像机以y轴为对称轴顺时针旋转;如果虚拟角色右转,即顺时针旋转,则场景摄像机以y轴为对称轴逆时针旋转;设摄像机旋转向量为(α_cam,β_cam,γ_cam),当虚拟角色在x轴上有位移,场景摄像机β_cam分量有变化,且变化值与位移偏移量的值符号相反;场景摄像机坐标系与世界坐标系在水平方向上相差180度的角,两者之间的距离由摄像机的z值决定:
α_cam=α_cam-y_offsetZone (1)
β_cam=β_cam+x_offsetZone (2)
其中,虚拟角色不会绕z轴旋转,所以忽略不计。此时再将摄像机的朝向换算成欧拉角即可。虚拟角色的朝向与摄像机的朝向保持一致。可以看出,感知区域内的偏移量越大,旋转角度越大,因此摄像机的旋转速度与用户操作有关,而非匀速运动。
在本实施例中,所述步骤S3中,由自由落体运动公式:
计算出任意时刻虚拟角色的高度,g是重力加速度,根据实际测试,v取值2.0f时,系统不会出现角色卡顿、画面抖动现象等问题,则有:
Δh=2.0f×Δt (4)
得到任意时刻虚拟角色在垂直方向的坐标值为:
y_ch=y_ch-Δh (5)
其中,v是一个变量,与时间有关,由于v值是一个模拟值,则公式(3)中的v是一个常量,所以计算出的自由落体位移也是一个常量,表明虚拟角色近似于匀速下落。
在本实施例中,触屏移动端下,角色控制方式与传统键鼠控制明显不同,如图2所示,为解决触屏移动端在以上方面出现的问题,本实施例将虚拟按钮与手势相结合,避开了三角函数的计算,通过屏幕的平面坐标换算,解决对角色与视角的控制冲突问题。虚拟角色的位移运算,几种控制方法的差别不大,但是在朝向的计算方面差别明显,如图3所示。从图2和图3可知,本实施例中的虚拟角色控制方法在算法数量、算法复杂度、角色控制的精确度、角色与视角控制冲突的解决以及真实度和系统崩溃概率等方面具有优势。综上所述,本实施例比现有技术更加合理高效。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (4)
1.一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,其特征在于:包括以下步骤:
步骤S1:进行位移计算:结合虚拟按钮与手势对虚拟角色进行控制,任意时刻感知区域内的位移偏移量通过屏幕坐标进行换算,即采用算法根据位移偏移量计算出任意时刻虚拟角色在世界坐标系内的坐标;
步骤S2:进行朝向计算:虚拟角色的水平方向上,场景摄像机的位置始终保持与虚拟角色z轴坐标固定距离处,跟随虚拟角色移动,方向控制始终与虚拟角色保持等距同向,或者保持面向屏幕,朝向计算在场景摄像机所在的坐标系内进行;
步骤S3:进行重力模拟:虚拟角色的垂直方向,进行重力模拟计算。
2.根据权利要求1所述的一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,其特征在于:所述步骤S1采用的算法是根据手势,计算单位时间内虚拟角色的位移偏移量,再更新虚拟角色的世界坐标系内的坐标,设虚拟角色的运动速度为(x_speed,y_speed),Δt是每帧动画播放的时间,虚拟角色在屏幕坐标系内的初始坐标为(x_ch,y_ch),则任意时刻虚拟角色在世界坐标系的坐标计算如下:
当手势坐标轴分量位于y正轴时,单位时间偏移量为y_speed×Δt,实时坐标为y_ch+y_speed×Δt;当手势坐标轴分量位于x负轴时,单位时间偏移量为x_speed×Δt,实时坐标为x_ch-x_speed×Δt;当手势坐标轴分量位于y负轴时,单位时间偏移量为y_speed×Δt,实时坐标为y_ch-y_speed×Δt;当手势坐标轴分量位于x正轴时,单位时间偏移量为x_speed×Δt,实时坐标为x_ch+x_speed×Δt。
3.根据权利要求1所述的一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,其特征在于:所述步骤S2中,当虚拟角色在水平方向上旋转时,如果虚拟角色左转,即逆时针旋转,则场景摄像机以y轴为对称轴顺时针旋转;如果虚拟角色右转,即顺时针旋转,则场景摄像机以y轴为对称轴逆时针旋转;设摄像机的旋转向量为(α_cam,β_cam,γ_cam),当虚拟角色在x轴上有位移,场景摄像机β_cam分量有变化,且变化值与位移偏移量的值符号相反;场景摄像机坐标系与世界坐标系在水平方向上相差180度的角,两者之间的距离由摄像机的z值决定:
α_cam=α_cam-y_offsetZone (1)
β_cam=β_cam+x_offsetZone (2)
其中,虚拟角色不会绕z轴旋转,所以γ_cam忽略不计,虚拟角色的朝向与场景摄像机的朝向保持一致。
4.根据权利要求1所述的一种触屏终端3D虚拟角色与场景摄像机运动冲突的解决方法,其特征在于:所述步骤S3中,由自由落体运动公式:
计算出任意时刻虚拟角色的高度,g是重力加速度,v取值2.0f,则有:
Δh=2.0f×Δt (4)
得到任意时刻虚拟角色在垂直方向的坐标值为:
y_ch=y_ch-Δh (5)
其中,v是一个变量,与时间有关,由于v值是一个模拟值,则公式(3)中的v是一个常量,所以计算出的自由落体位移也是一个常量,表明虚拟角色近似于匀速下落。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032321.3A CN106774941B (zh) | 2017-01-16 | 2017-01-16 | 触屏终端3d虚拟角色与场景摄像机运动冲突的解决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032321.3A CN106774941B (zh) | 2017-01-16 | 2017-01-16 | 触屏终端3d虚拟角色与场景摄像机运动冲突的解决方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106774941A true CN106774941A (zh) | 2017-05-31 |
CN106774941B CN106774941B (zh) | 2019-11-19 |
Family
ID=58946078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710032321.3A Expired - Fee Related CN106774941B (zh) | 2017-01-16 | 2017-01-16 | 触屏终端3d虚拟角色与场景摄像机运动冲突的解决方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106774941B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108159701A (zh) * | 2017-12-27 | 2018-06-15 | 网易(杭州)网络有限公司 | 游戏角色显示位置的调整方法、装置、处理器及终端 |
CN111367414A (zh) * | 2020-03-10 | 2020-07-03 | 简吉波 | 虚拟现实对象控制方法、装置、虚拟现实系统及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110285703A1 (en) * | 2009-09-10 | 2011-11-24 | Tri-D Communications | 3d avatar service providing system and method using background image |
CN104267904A (zh) * | 2014-09-26 | 2015-01-07 | 深圳市睿德网络科技有限公司 | 一种具有触摸屏虚拟单位控制的方法及移动终端 |
CN105446481A (zh) * | 2015-11-11 | 2016-03-30 | 周谆 | 基于手势的虚拟现实人机交互方法和系统 |
CN105573491A (zh) * | 2015-11-13 | 2016-05-11 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 裸眼3d私隐式虚拟人机交互系统及方法 |
CN105630374A (zh) * | 2015-12-17 | 2016-06-01 | 网易(杭州)网络有限公司 | 虚拟角色控制模式切换方法及装置 |
CN106293070A (zh) * | 2016-07-27 | 2017-01-04 | 网易(杭州)网络有限公司 | 虚拟角色视角方向控制方法及装置 |
-
2017
- 2017-01-16 CN CN201710032321.3A patent/CN106774941B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110285703A1 (en) * | 2009-09-10 | 2011-11-24 | Tri-D Communications | 3d avatar service providing system and method using background image |
CN104267904A (zh) * | 2014-09-26 | 2015-01-07 | 深圳市睿德网络科技有限公司 | 一种具有触摸屏虚拟单位控制的方法及移动终端 |
CN105446481A (zh) * | 2015-11-11 | 2016-03-30 | 周谆 | 基于手势的虚拟现实人机交互方法和系统 |
CN105573491A (zh) * | 2015-11-13 | 2016-05-11 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 裸眼3d私隐式虚拟人机交互系统及方法 |
CN105630374A (zh) * | 2015-12-17 | 2016-06-01 | 网易(杭州)网络有限公司 | 虚拟角色控制模式切换方法及装置 |
CN106293070A (zh) * | 2016-07-27 | 2017-01-04 | 网易(杭州)网络有限公司 | 虚拟角色视角方向控制方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108159701A (zh) * | 2017-12-27 | 2018-06-15 | 网易(杭州)网络有限公司 | 游戏角色显示位置的调整方法、装置、处理器及终端 |
CN108159701B (zh) * | 2017-12-27 | 2021-02-12 | 网易(杭州)网络有限公司 | 游戏角色显示位置的调整方法、装置、处理器及终端 |
CN111367414A (zh) * | 2020-03-10 | 2020-07-03 | 简吉波 | 虚拟现实对象控制方法、装置、虚拟现实系统及设备 |
CN111367414B (zh) * | 2020-03-10 | 2020-10-13 | 厦门络航信息技术有限公司 | 虚拟现实对象控制方法、装置、虚拟现实系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106774941B (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101655749B (zh) | 输入设备、控制设备、控制系统和控制方法 | |
CN100353293C (zh) | 图像信息显示装置 | |
CN102830795B (zh) | 利用运动传感装置的远程控制 | |
US7528823B2 (en) | Techniques for pointing to locations within a volumetric display | |
CN102317892B (zh) | 控制信息输入装置的方法、信息输入装置、程序和信息存储介质 | |
US8564535B2 (en) | Physical model based gesture recognition | |
CN101611369B (zh) | 输入设备、控制设备、控制系统、控制方法及手持设备 | |
JP6081769B2 (ja) | プログラム、情報処理装置、情報処理方法および情報処理システム | |
CN102984565A (zh) | 具有多输入模式的多维度遥控器及电视输入指令的方法 | |
CN101641664A (zh) | 输入设备、控制设备、控制系统、控制方法及手持设备 | |
CN103518173A (zh) | 信息输入装置和用于控制信息输入装置的方法 | |
EP2590060A1 (en) | 3D user interaction system and method | |
CN106525071A (zh) | 一种运动状态监测方法及装置 | |
CN106774941A (zh) | 触屏终端3d虚拟角色与场景摄像机运动冲突的解决方法 | |
CN104049773A (zh) | 电子笔的书写位置数据处理方法、装置及一种书写系统 | |
CN103116411B (zh) | 定位指针位置的方法及系统 | |
CN107957847A (zh) | 一种触摸轨迹显示方法、装置、设备及存储介质 | |
CN102929430B (zh) | 多指针间接输入设备的显示映射模式 | |
JP6018474B2 (ja) | プログラム、情報処理装置、情報処理方法および情報処理システム | |
CN114706489A (zh) | 一种输入设备的虚拟方法、装置、设备和存储介质 | |
CN106598422A (zh) | 基于指向型的操控、混合操控方法及操控系统和电子设备 | |
CN113518423A (zh) | 定位方法、装置及电子设备 | |
CN102306054A (zh) | 姿态感知设备及其定位、鼠标指针的控制方法和装置 | |
CN103034345B (zh) | 一种真实空间中的地理虚拟仿真三维鼠标笔 | |
CN110647282A (zh) | 一种手写轨迹信息获取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191119 Termination date: 20220116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |