虚拟角色视角方向控制方法及装置与流程

文档序号:12361904阅读:359来源:国知局
虚拟角色视角方向控制方法及装置与流程
本公开涉及人机交互
技术领域
,更具体地,涉及一种虚拟角色视角方向控制方法及虚拟角色视角方向控制装置。
背景技术
:随着移动通信技术的快速发展,在触控终端上出现了越来越多的游戏应用。在游戏应用的运行过程中,触控终端按照一定的布局将各种游戏对象显示出来,以便向用户呈现游戏场景以及提供游戏操作界面。在触控终端上的角色扮演类游戏应用,例如ARPG(ActionRolePlayingGame,动作角色扮演游戏)、MMORPG(MassiveMultiplayerOnlineRolePlayingGames,大型多人在线角色扮演游戏)等游戏应用中,为了取得好的美术效果,可以将虚拟角色的视角拉近,这样对用户而言,虽然具有开阔的视野,但是虚拟角色的背后可能会存在视野盲区。当虚拟角色的背后出现需要用户注意的虚拟对象时,用户难以对该虚拟对象作出响应。例如,在游戏副本中,一旦游戏角色背后出现需要用户重点集火的怪物时,用户难以快速发现该怪物并对其造成有效的伤害。为了解决该问题,在部分游戏应用中,可以让用户自行手动调整视角,视角调整的范围可以是360°。在用户具有良好的操作以及对虚拟对象的出现时机有敏锐察觉的情况下,可以对视角进行及时调整。然而,这种方法的缺点在于:由于用户的频繁操作,会使用户产生疲劳感;用户的自行手动调整不一定准确;受用户对游戏应用的了解程度以及操作意识方面的影响,经验不丰富的用户难以操作。在另一些游戏应用中,针对特别重要的虚拟对象,需要开放集中火力战斗时,界面中可以设置一个单独的集火图标。相对于用户自行手动调整视角的方法,这种方法降低了用户的疲劳感,并且准确性得到了提高,然而,由于受触控终端屏幕大小的限制,UI界面无法放置太多的集火图标,所以这样的方式只能针对特别重要的虚拟对象。也就是说,当存在多个需要用户响应的虚拟对象时,这种方式难以将所有虚拟对象的信息提供给用户。上述两种方法各有所长,也各有所缺。虽然现有游戏应用可以通过上述方法来解决虚拟角色视角方向控制问题,但效果均不佳。需要说明的是,在上述
背景技术
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:本公开的目的在于提供一种虚拟角色视角方向控制方法及装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。根据本公开实施例的第一方面,提供一种虚拟角色视角方向控制方法,其中虚拟角色位于包括至少一虚拟对象的3D场景;所述虚拟角色视角方向控制方法包括:配置各类所述虚拟对象的权重;根据所述虚拟角色的视角方向以及所述虚拟角色视野内所述虚拟对象的权重来计算所述虚拟角色视野内所述虚拟对象的信息量,并且以所述虚拟角色视野内所述虚拟对象的信息量之和最大为目标来计算视角调整角度;根据所述视角调整角度来调整所述虚拟角色的视角方向。本公开的一种示例性实施例中,所述虚拟角色的属性具有预设属性,所述配置各类所述虚拟对象的权重包括:根据所述虚拟角色的所述预设属性配置各类所述虚拟对象的权重。本公开的一种示例性实施例中,所述计算所述虚拟角色视野内所述虚拟对象的信息量包括:以所述虚拟角色的当前位置为极点,以所述虚拟角色的当前视角方向为极轴建立极坐标系;根据所述虚拟角色视野内各所述虚拟对象在所述极坐标系中的极角以及所述虚拟对象的权重来计算所述虚拟对象的信息量。本公开的一种示例性实施例中,所述虚拟对象的信息量为ρicosθi,其中,ρi以及θi分别为所述虚拟角色视野内第i个所述虚拟对象的权重以及在所述极坐标系中的极角。本公开的一种示例性实施例中,所述计算视角调整角度包括:根据α=90°-arcsin(Σρicosθi/((Σρicosθi)2+(Σρisinθi)2)1/2)计算所述视角调整角度,其中α为所述视角调整角度。本公开的一种示例性实施例中,所述计算视角调整角度包括:分别计算在多个预设视角方向下所述虚拟角色视野内所述虚拟对象的信息量之和;统计出所述虚拟角色视野内所述虚拟对象的信息量之和最大时对应的预设视角方向,并根据所述预设视角方向来计算所述视角调整角度。本公开的一种示例性实施例中,所述根据所述视角调整角度来调整所述虚拟角色的视角方向包括:判断所述视角调整角度是否大于或等于预设角度;在判断出所述视角调整角度大于或等于所述预设角度的情况下,根据所述视角调整角度来调整所述虚拟角色的视角方向。本公开的一种示例性实施例中,所述根据所述视角调整角度来调整所述虚拟角色的视角方向包括:判断所述虚拟角色是否在进行预设动作;在判断出所述虚拟角色在进行所述预设动作的情况下,根据所述视角调整角度来调整所述虚拟角色的视角方向。根据本公开实施例的第二方面,提供一种虚拟角色视角方向控制装置,应用于一触控终端;所述虚拟角色视角方向控制装置包括:配置模块,用于配置各类虚拟对象的权重;计算模块,用于根据所述虚拟角色的视角方向以及所述虚拟角色视野内所述虚拟对象的权重来计算所述虚拟角色视野内所述虚拟对象的信息量,并且以所述虚拟角色视野内所述虚拟对象的信息量之和最大为目标来计算视角调整角度;调整模块,用于根据所述视角调整角度来调整所述虚拟角色的视角方向。本公开的一种示例性实施例中,所述虚拟角色的属性具有预设属性,所述配置模块根据所述虚拟角色的所述预设属性来配置各类所述虚拟对象的权重。本公开的一种示例性实施例中,所述计算模块包括第一计算单元,所述第一计算单元用于以所述虚拟角色的当前位置为极点,以所述虚拟角色的当前视角方向为极轴来建立极坐标系,并且根据所述虚拟角色视野内各所述虚拟对象在所述极坐标系中的极角以及所述虚拟对象的权重来计算所述虚拟对象的信息量。本公开的一种示例性实施例中,所述虚拟对象的信息量表示为ρicosθi,其中,ρi以及θi分别为所述虚拟角色视野内第i个所述虚拟对象的权重以及在所述极坐标系中的极角。本公开的一种示例性实施例中,所述计算模块包括第二计算单元,所述第二计算单元用于根据α=90°-arcsin(Σρicosθi/((Σρicosθi)2+(Σρisinθi)2)1/2)来计算所述视角调整角度,其中α为所述视角调整角度。本公开的一种示例性实施例中,所述计算模块还包括第三计算单元,所述第三计算单元用于分别计算在多个预设视角方向下所述虚拟角色视野内所述虚拟对象的信息量之和,并且统计出所述虚拟角色视野内所述虚拟对象的信息量之和最大时对应的预设视角方向,并根据所述预设视角方向来计算所述视角调整角度。本公开的一种示例性实施例中,所述调整模块包括:第一判断单元,用于判断所述视角调整角度是否大于或等于预设角度;第一调整单元,用于在判断出所述视角调整角度大于或等于所述预设角度的情况下,根据所述视角调整角度来调整所述虚拟角色的视角方向。本公开的一种示例性实施例中,所述调整模块包括:第二判断单元,用于判断所述虚拟角色是否在进行预设动作;第二调整单元,用于在判断出所述虚拟角色在进行所述预设动作的情况下,根据所述视角调整角度来调整所述虚拟角色的视角方向。本公开的一种实施例中的虚拟角色视角方向控制方法及装置,可以根据虚拟角色的预设属性来配置各类虚拟对象的权重,并且在虚拟角色视野内虚拟对象的信息量之和最大的情况下计算视角调整角度。一方面,可以实现自动调整视角的功能,相比于用户手动调整视角的方式,减少了用户对于视角的操作,使游戏应用容易上手;另一方面,针对不同的虚拟对象配置不同的权重,不但可以使虚拟角色接收到的信息量最大,而且可以使得用户避免错失需要重点关注的信息(例如权重配置高的虚拟对象);再一方面,相比于增加集火图标的方式,可以减少在游戏界面中增加图标,进而可以以更多的画面显示游戏场景。因此,通过本公开可以大幅度提升用户体验。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1示意性示出了本公开的示例性实施例中的一种虚拟角色视角方向控制方法的流程图;图2示意性示出了本公开示例性实施例中步骤S2的一种流程图;图3示意性示出了本公开示例性实施例中的计算信息量的游戏应用界面;图4示意性示出了本公开示例性实施例中步骤S2的另一种流程图;图5示意性示出了本公开示例性实施例中一种虚拟角色视角方向控制装置的方框图;图6示意性示出了本公开示例性实施例中计算模块的一种方框图;图7示意性示出了本公开示例性实施例中计算模块的另一种方框图;图8示意性示出了本公开示例性实施例中调整模块的一种方框图。具体实施方式现在将参考附图更全面地描述示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。本示例性实施方式中首先提供了一种虚拟角色视角方向控制方法,该虚拟角色视角方向控制方法主要应用于一触控终端。该触控终端例如可以为手机、平板电脑、笔记本电脑、游戏机、PDA等各种具备触控屏幕的电子设备。但需要说明的是,在部分非触控终端中也可能通过模拟器等方式将键盘以及鼠标操作模拟为触控操作,这种方式同样可以视为本公开中所述的触控终端。参考图1,所述虚拟角色视角方向控制方法可以包括以下步骤:S1.配置各类虚拟对象的权重。所述虚拟对象是指与虚拟角色存在交互作用的对象,游戏应用中,所述虚拟对象可以包括各种类型的对象,例如,攻击对象(如怪物)或同伴(如队友)等。进一步的,所述虚拟对象的权重指的是希望虚拟角色关注所述虚拟对象的程度。因此,配置各类虚拟对象的权重意指根据虚拟角色对虚拟对象的关注程度来设定相应的数值。此外,为了使用户满足不同的游戏体验,游戏应用中,不同的虚拟角色可能会具有不同的预设属性,例如,在一些动作角色扮演类游戏(ARPG)应用中,虚拟角色的预设属性可以包括虚拟角色的门派、职业等;在一些多人在线战术竞技类游戏(MOBA)应用中,虚拟角色的预设属性可以包括虚拟角色的团队定位等。具有不同的预设属性虚拟角色,对于同一虚拟对象的关注程度可能存在不同。基于此,本示例实施方式中还可以根据虚拟角色的预设属性来配置各类虚拟对象的权重。例如,对于输出型职业的虚拟角色,其可能需要着重关注攻击对象,而对于队友的关注可能相对较小。也就是说,对于输出型职业的虚拟角色,攻击对象的权重大于同伴的权重。此外,对于不同的攻击对象,输出型职业的虚拟角色的关注程度可能不一样,例如,精英类的攻击对象(即,对虚拟角色造成较大伤害的攻击对象)的权重可能较大,而普通的攻击对象(即,对虚拟角色造成较小伤害的攻击对象)的权重可能较小。另外,一些纯输出型职业的虚拟角色可能不会关注同伴,在这种情况下,同伴的权重为零。与输出型职业的虚拟角色相反,对于治疗型职业的虚拟角色,其可能需要着重关注同伴信息(如,血量、魔法量等),此时,同伴的权重大于攻击对象的权重。举例而言,表1是根据虚拟角色的预设属性来配置各类虚拟对象的权重的一个示例,但本公开不限于此。表1职业队友怪物a精英怪b怪物……A(无需关注队友的职业)015……B115……C115……D(重点关注队友的职业)515……如表1所示,职业A为纯输出型职业,对于职业A的虚拟角色而言,队友权重为0,怪物a的权重为1,精英怪b的权重为5。职业D为重点关注队友的职业,对于职业D的虚拟角色而言,队友权重为5,怪物a的权重为1,精英怪b的权重为5。通过本示例实施方式中的权重配置方式,一方面,可以以数字的形式表示出虚拟角色对各类虚拟对象的关注程度,有利于计算处理;另一方面,针对不同类型的虚拟角色,规划出不同的权重,可以满足用户对不同类型的虚拟角色的体验。S2.根据虚拟角色的视角方向以及所述虚拟角色视野内所述虚拟对象的权重来计算所述虚拟角色视野内所述虚拟对象的信息量,并且以所述虚拟角色视野内所述虚拟对象的信息量之和最大为目标来计算视角调整角度。参考图2中所示,本示例性实施方式中,所述步骤S2可以包括:S21.以所述虚拟角色的当前位置为极点,以所述虚拟角色的当前视角方向为极轴建立极坐标系。本示例实施方式中采用极坐标进行处理的方式,具有方便建立坐标、方程简单以及易于计算等优点。但在本公开的其他示例性实施例中,还可以使用其他坐标系,例如欧拉坐标系来进行建模计算,因此本公开不限于此。S22.根据所述虚拟角色视野内各所述虚拟对象在所述极坐标系中的极角以及所述虚拟对象的权重来计算所述虚拟对象的信息量,并将所述虚拟对象的信息量表示为ρicosθi。其中,ρi以及θi分别为所述虚拟角色视野内第i个所述虚拟对象的权重以及在所述极坐标系中的极角。在这种情况下,所述虚拟对象的信息量可以例如是怪物的信息量或队友的信息量。此外,本示例性实施方式中,除采用余弦三角函数的形式外,还可以使用其他三角函数类型,然而,本公开不限于此,可替代地,可以采用除三角函数之外的其他数学方式来表示所述虚拟对象的信息量。参考图3,其中,O点为虚拟角色的当前位置,OX方向为虚拟角色的当前视角方向。以O点作为极点,以OX为极轴建立极坐标系,可以看出,θ1为队友M在所述极坐标系中的极角,若队友M的权重为ρ1,则队友M的信息量为ρ1cosθ1。同理可以得出怪物a的信息量为ρ2cosθ2,精英怪b的信息量为ρ3cosθ3。S23.将所述虚拟角色视野内虚拟对象的信息量相加,得到Σρicosθi。S24.采用三角函数极值的方法计算所述视角调整角度。假设所述视角调整角度为α,在所述三角函数极值的方法中,目标是使所述虚拟角色视野内所有虚拟对象的信息量最大,在这种情况下,信息量最大公式变为Pα=Σρi(cosθi+α),将该公式展开可得:Pα=Σρi(cosθi+α)=Σρi(cosθicosα-sinθisinα)=Σρicosθicosα-Σρisinθisinα=cosα×Σρicosθi-sinα×Σρisinθi=((Σρicosθi)2+(Σρisinθi)2)1/2×sin(α+Φ)其中sinΦ=Σρicosθi/((Σρicosθi)2+(Σρisinθi)2)1/2即Φ=arcsin(Σρicosθi/((Σρicosθi)2+(Σρisinθi)2)1/2)因为当sin(α+Φ)=1时,Pα最大,所以有α+Φ=90°从而求得所述视角调整角度α,即:α=90°-arcsin(Σρicosθi/((Σρicosθi)2+(Σρisinθi)2)1/2)α的范围为:180°≥α≥-180°。当α为正值时,可以表示逆时针对视角进行调整,而当α为负值时,可以表示顺时针对视角进行调整。参考图4,在本公开的另一示例性实施方式中,在步骤S22之后,所述步骤S2还可以包括:S25.分别计算在多个预设视角方向下所述虚拟角色视野内所述虚拟对象的信息量之和。所述多个预设视角方向可以是间隔一定角度(例如,2°、5°、10°等)而获得的视角方向,但不限于此,所述多个预设视角方向还可以是以特定规律所取的视角方向,本示例性实施方式中对此不做特殊限定。S26.统计出所述虚拟角色视野内所述虚拟对象的信息量之和最大时对应的预设视角方向,并根据所述预设视角方向来计算所述视角调整角度。在本公开的示例性实施方式中,给出了计算视角调整角度的方法,然而,本公开不限于此,可以通过其他方式对所述视角调整角度进行计算。S3.根据所述视角调整角度来调整所述虚拟角色的视角方向。在计算得到视角调整角度后,可以通过旋转游戏应用中的虚拟摄像机的取景角度按照得到的视角调整角度调整虚拟角色的视角方向。此外,由于相对于虚拟角色,虚拟对象的位置实时发生变化,因此所计算的视角调整角度也会实时变化,当视角调整角度较小时,频繁地调整可能会使虚拟角色出现抖动的现象。为了解决抖动的问题,可以预先设定一预设角度,当所计算的视角调整角度小于该预设角度时,不会对视角方向进行调整,确保了游戏视角的平稳性。也就是说,根据所述视角调整角度来调整所述虚拟角色的视角方向还可以包括:判断所述视角调整角度是否大于或等于预设角度;在所述视角调整角度大于或等于所述预设角度的情况下,根据所述视角调整角度来调整所述虚拟角色的视角方向。另外,上述预设角度可以是游戏应用开发过程中已设定的,也可以由用户自行设定该预设角度,本示例性实施方式中对此不做特殊限定。在一些游戏应用中,如果在虚拟角色移动的过程中调整视角,则对于用户会形成位置位移加视角转动的两重效果,可能会给用户带来一定的不适感。而在虚拟角色进行预设动作期间,虚拟角色可能不会移动,则在此时调整视角方向只会产生一个转动效果,避免用户眩晕。因此,在本示例性实施方式中,为了进一步确保游戏应用的平稳性和适玩性,在调整所述虚拟角色的视角方向之前,还可以判断所述虚拟角色是否在进行预设动作,例如,所述预设动作可以是释放技能或普攻,但不限于此。因此,根据所述视角调整角度来调整所述虚拟角色的视角方向还可以包括:判断所述虚拟角色是否在进行预设动作;在判断所述虚拟角色在进行所述预设动作的情况下,根据所述视角调整角度来调整所述虚拟角色的视角方向。此外,所述虚拟角色视角方向控制方法还包括以转动角速度k来调整视角方向,转动角速度k表示每秒视角调整的角度。如果进行一次预设动作的时间为t,则进行一次预设动作,视角调整的角度为t×k。例如,如果计算出的视角调整角度为20°,预设角度为10°,则符合视角调整的条件。当虚拟角色进行普攻时,如果进行一次普攻的时间为500ms且所设定的转动角速度为10°/s,则一次普攻后,视角调整的角度为5°,因此,在进行四次普攻之后,视角调整过程结束。应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。进一步的,本示例实施方式中还提供了一种虚拟角色视角方向控制装置,应用于一触控终端。参考图5所述,该虚拟角色视角方向控制装置1可以包括配置模块11、计算模块12和调整模块13,其中:配置模块11,可以用于配置各类虚拟对象的权重;计算模块12,可以用于根据所述虚拟角色的视角方向以及所述虚拟角色视野内所述虚拟对象的权重来计算所述虚拟角色视野内所述虚拟对象的信息量,并且以所述虚拟角色视野内所述虚拟对象的信息量之和最大为目标来计算视角调整角度;调整模块13,可以用于根据所述视角调整角度来调整所述虚拟角色的视角方向。本示例性实施例中,所述虚拟角色的属性具有预设属性,所述配置模块根据所述虚拟角色的所述预设属性来配置各类所述虚拟对象的权重。参考图6中所示,本示例性实施例中,所述计算模块12可以包括第一计算单元121和第二计算单元122。其中:所述第一计算单元121可以用于以所述虚拟角色的当前位置为极点,以所述虚拟角色的当前视角方向为极轴来建立极坐标系,并且根据所述虚拟角色视野内各所述虚拟对象在所述极坐标系中的极角以及所述虚拟对象的权重来计算所述虚拟对象的信息量;所述第二计算单元122可以用于根据α=90°-arcsin(Σρicosθi/((Σρicosθi)2+(Σρisinθi)2)1/2)来计算所述视角调整角度,其中α为所述视角调整角度;参考图7中所示,所述计算模块12可以包括第一计算单元121和第三计算单元123,其中:所述第三计算单元123可以用于分别计算在多个预设视角方向下所述虚拟角色视野内所述虚拟对象的信息量之和,并且统计出所述虚拟角色视野内所述虚拟对象的信息量之和最大时对应的预设视角方向,并根据所述预设视角方向来计算所述视角调整角度。参考图8中所示,本示例性实施例中,调整模块13还可以包括第一判断单元131、第二判断单元132、第一调整单元133和第二调整单元134,其中:所述第一判断单元131判断所述视角调整角度是否大于或等于预设角度,在判断所述视角调整角度大于或等于所述预设角度的情况下,所述第一调整单元133根据所述视角调整角度来调整所述虚拟角色的视角方向;所述第二判断单元132判断所述虚拟角色是否在进行预设动作,在判断所述虚拟角色在进行所述预设动作的情况下,所述第二调整单元134根据所述视角调整角度来调整所述虚拟角色的视角方向。上述虚拟角色控制模式切换装置中各模块的具体细节已经在对应的虚拟角色控制模式切换方法中进行了详细想描述,因此此处不再赘述。应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1