一种虚拟摄像机的控制方法及装置、设备与流程
本发明涉及图像技术领域,尤其涉及一种虚拟摄像机的控制方法及装置、设备。
背景技术:
虚拟引擎中设置有虚拟摄像机(virtualcamera)。虚拟摄像机,也称为虚拟相机,主要用于为虚拟场景取景,以便通过取景视野向用户展示虚拟世界的画面。虚拟摄像机常用于游戏领域、影视制作领域。
以游戏领域为例,不同类型的发布平台中,游戏所依赖的输入设备不同,因而游戏中虚拟摄像机的控制方式也不同。比如,电脑游戏中通过移动鼠标来控制虚拟摄像机的运动。再比如,主机游戏或掌机游戏中通过控制游戏手柄的摇杆和肩键来控制虚拟摄像机的运动。
随着移动终端的发展,移动终端也成为重要的游戏发布平台之一。以手机游戏为例,手机多采用无按键的触摸屏,因此手机游戏无法像传统发布平台中的游戏(例如上文的电脑游戏、主机游戏或掌机游戏)那样依赖于输入设备产生的多种输入参数来控制虚拟摄像机。为避免在用户界面中设置过多按键,手机游戏中虚拟摄像机的控制方式通常为:通过玩家在触摸屏空白区域的滑动轨迹来控制虚拟摄像机的运动。
但随着游戏机制的发展,游戏操控复杂度越来越高。例如,以手机为发布平台的开放大世界游戏,此类游戏中角色运动状态多变,随时可能进入战斗。因此,游戏过程中玩家在滑动控制虚拟摄像机的同时,常常需要按下多个按键来控制角色的运动状态,导致游戏操控难度较大,影响玩家的游戏体验,使玩家容易失去对游戏的兴趣,减少进入游戏的次数。
综上,如何控制虚拟摄像机,以降低游戏操控难度,提升用户的游戏体验,成为亟待解决的技术问题。
技术实现要素:
本发明实施例提供一种虚拟摄像机的控制方法及装置、设备,用以降低游戏操控难度,提升用户的游戏体验。
第一方面,本发明实施例提供一种虚拟摄像机的控制方法,该方法应用于图形界面,图形界面中加载有虚拟场景,该方法包括以下步骤:
确定虚拟对象在虚拟场景中所处的行为状态;
根据虚拟对象所处的行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角;
在图形界面中展示虚拟摄像机在图像采集视角下采集到的目标图像。
在一种可能的实施例中,根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角,包括:获取虚拟对象在虚拟场景中所处位置;根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数;通过控制参数对虚拟摄像机的图像采集视角进行调整。
其中,虚拟摄像机包括摄像机组件,摄像机组件通过弹簧臂组件与虚拟对象相连,虚拟摄像机的控制参数包括摄像机参数和/或弹簧臂参数,摄像机参数用于设置虚拟摄像机的拍摄角度,弹簧臂参数用于设置虚拟摄像机相对虚拟对象的位置关系。
在一种可能的实施例中,根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,包括:若行为状态为特写状态,则确定特写目标所属类型;若特写目标为虚拟对象,并且虚拟对象受用户控制,则减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数,或者减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度;将使虚拟摄像机的光轴与虚拟对象处于同一平面的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机光轴指向虚拟对象的摇摆角参数确定为目标摇摆角参数。
在一种可能的实施例中,根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,包括:若行为状态为特写状态,则确定特写目标所属类型;若特写目标为虚拟对象,并且虚拟对象不受用户控制,则减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度。
在一种可能的实施例中,根据使用场景触发对目标图像进行景深处理;和/或,为目标图像添加滤镜效果。
在一种可能的实施例中,根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,包括:若行为状态为瞄准状态,则基于虚拟对象相对瞄准对象的位置关系,确定虚拟摄像机的俯仰角参数对应的变化范围,变化范围包括虚拟摄像机的最大俯仰角参数;减小虚拟摄像机相对瞄准对象的距离参数以得到目标距离参数,或者减小瞄准对象的视野角度以得到用于在目标图像中聚焦瞄准对象的目标视野角度。
在一种可能的实施例中,若目标图像中包含受用户控制的虚拟对象,则确定虚拟摄像机的末端偏移参数,以将虚拟对象移动至目标图像的画面边缘。
在一种可能的实施例中,根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,包括:若行为状态为运动状态,则确定虚拟对象所对应的运动类型;根据运动类型及虚拟对象所处位置,确定虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数、俯仰角参数。
在一种可能的实施例中,根据运动类型及虚拟对象所处位置,确定虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数以及俯仰角参数,包括:若运动类型为飞行运动,则将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机的光轴指向虚拟对象的运动方向的摇摆角参数确定为目标摇摆参数;减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数。
或者,若运动类型为下坠运动,则根据虚拟对象的下坠运动参数,为弹簧臂组件设置最大移动延迟距离。
或者,若运动类型为快速地面运动,则将使虚拟摄像机的光轴指向虚拟对象的运动方向的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机的光轴指向运动方向的摇摆角参数确定为目标摇摆参数;关闭弹簧臂组件的移动延迟功能,或提高弹簧臂组件的移动延迟速度。
或者,若运动类型为慢速地面运动,则在触发虚拟对象进入慢速地面运动后的预设时刻,将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数;根据用户反馈的摇摆角参数,确定虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,包括:若行为状态为战斗状态,则判断当前图像采集视角是否存在攻击对象;若当前图像采集视角不存在攻击对象,则基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定虚拟摄像机的目标摇摆角参数,包括:基于预设偏移比例以及虚拟对象到攻击对象的相对距离,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,还包括:若当前图像采集视角存在攻击对象,则判断图形界面当前展示的图像中是否包含攻击对象的整体。
若图形界面当前展示的图像中包含攻击对象的整体,则基于预设偏移比例以及虚拟对象到攻击对象的相对距离,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
若图形界面当前展示的图像中未包含攻击对象的整体,则基于攻击对象与画面的相对比例,确定虚拟摄像机相对攻击对象的距离参数;基于预设偏移比例以及距离参数,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,虚拟摄像机由当前图像采集视角切换至目标图像采集视角的过程包括多个时间节点,虚拟摄像机的控制参数包括虚拟摄像机的当前控制参数和目标控制参数。
通过控制参数对虚拟摄像机的图像采集视角进行调整,包括:对当前控制参数、目标控制参数以及与行为状态对应的插值系数进行插值计算,以获得虚拟摄像机在多个时间节点中各自对应的控制参数插值;基于多个时间节点的排列顺序以及与多个时间点各自对应的控制参数插值,对虚拟摄像机进行设置,以将虚拟摄像机由当前图像采集视角调整为目标图像采集视角。
在一种可能的实施例中,根据虚拟对象所属类型以及虚拟摄像机与虚拟对象的位置关系,确定虚拟对象在目标图像中对应的透明度,其中,虚拟摄像机距离虚拟对象越近,透明度越高。
在一种可能的实施例中,确定虚拟对象在虚拟场景中所处的行为状态,包括:若检测到对虚拟对象的操作指令,则将与操作指令对应的行为状态确定为虚拟对象所处的行为状态;或者若检测到虚拟对象周围设定范围内存在设定类型的另一虚拟对象,则将与另一虚拟对象相应的行为状态确定为虚拟对象所处的行为状态。
第二方面,本发明实施例提供一种虚拟摄像机的控制装置,该虚拟摄像机的控制装置应用于图形界面,该图形界面中加载有虚拟场景,该虚拟摄像机的控制装置包括:
确定模块,用于确定虚拟对象在虚拟场景中所处的行为状态;
设置模块,用于根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角;
展示模块,用于在图形界面中展示虚拟摄像机在图像采集视角下采集到的目标图像。
在一种可能的实施例中,在根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角的过程中,设置模块具体用于:
获取虚拟对象在虚拟场景中所处位置;根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数;通过控制参数对虚拟摄像机的图像采集视角进行调整。
其中,虚拟摄像机包括摄像机组件,摄像机组件通过弹簧臂组件与虚拟对象相连,控制参数包括摄像机参数和/或弹簧臂参数,摄像机参数用于设置虚拟摄像机的拍摄角度,弹簧臂参数用于设置虚拟摄像机相对虚拟对象的位置关系。
在一种可能的实施例中,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块具体用于:
若行为状态为特写状态,则确定特写目标所属类型;若特写目标为虚拟对象,并且虚拟对象受用户控制,则减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数;或者,减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度;将使虚拟摄像机的光轴与虚拟对象处于同一平面的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机光轴指向虚拟对象的摇摆角参数确定为目标摇摆角参数。
在一种可能的实施例中,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块具体用于:
若行为状态为特写状态,则确定特写目标所属类型;若特写目标为虚拟对象,并且虚拟对象不受用户控制,则减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度。
在一种可能的实施例中,虚拟摄像机的控制装置还包括效果模块,具体用于:根据使用场景触发对目标图像进行景深处理;和/或,为目标图像添加滤镜效果。
在一种可能的实施例中,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块具体用于:
若行为状态为瞄准状态,则基于虚拟对象相对瞄准对象的位置关系,确定虚拟摄像机的俯仰角参数对应的变化范围,变化范围包括虚拟摄像机的最大俯仰角参数;减小虚拟摄像机相对瞄准对象的距离参数以得到目标距离参数,或者减小瞄准对象的视野角度以得到用于在目标图像中聚焦瞄准对象的目标视野角度。
在一种可能的实施例中,虚拟摄像机的控制装置还包括移动单元,具体用于:若目标图像中包含受用户控制的虚拟对象,则确定虚拟摄像机的末端偏移参数,以将虚拟对象移动至目标图像的画面边缘。
在一种可能的实施例中,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块具体用于:
若行为状态为运动状态,则确定虚拟对象所对应的运动类型;根据运动类型及虚拟对象所处位置,确定虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数、俯仰角参数。
在一种可能的实施例中,在根据运动类型及虚拟对象所处位置,确定虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数以及俯仰角参数的过程中,设置模块具体用于:
若运动类型为飞行运动,则将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机的光轴指向虚拟对象的运动方向的摇摆角参数确定为目标摇摆参数;减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数;或者若运动类型为下坠运动,则根据虚拟对象的下坠运动参数,为弹簧臂组件设置最大移动延迟距离;或者若运动类型为快速地面运动,则将使虚拟摄像机的光轴指向虚拟对象的运动方向的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机的光轴指向运动方向的摇摆角参数确定为目标摇摆参数;关闭弹簧臂组件的移动延迟功能,或提高弹簧臂组件的移动延迟速度;或者若运动类型为慢速地面运动,则在触发虚拟对象进入慢速地面运动后的预设时刻,将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数;根据用户反馈的摇摆角参数,确定虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块具体用于:
若行为状态为战斗状态,则判断当前图像采集视角是否存在攻击对象;若当前图像采集视角不存在攻击对象,则基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,基于所述攻击目标在所述虚拟场景中的位置坐标以及所述虚拟摄像机的当前摇摆角参数,确定所述虚拟摄像机的目标摇摆角参数的过程中,设置模块具体用于:基于预设偏移比例以及所述虚拟对象到所述攻击对象的相对距离,确定所述虚拟摄像机的末端偏移参数;基于所述攻击目标在所述虚拟场景中的位置坐标以及所述虚拟摄像机的当前摇摆角参数,确定待修正的所述虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,设置模块还用于:若当前图像采集视角存在攻击对象,则判断图形界面当前展示的图像中是否包含攻击对象的整体;若图形界面当前展示的图像中包含攻击对象的整体,则基于预设偏移比例以及虚拟对象到攻击对象的相对距离,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,设置模块还用于:若图形界面当前展示的图像中未包含攻击对象的整体,则基于攻击对象与画面的相对比例,确定虚拟摄像机相对攻击对象的距离参数;基于预设偏移比例以及距离参数,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
在一种可能的实施例中,虚拟摄像机由当前图像采集视角切换至目标图像采集视角的过程包括多个时间节点,虚拟摄像机的控制参数包括虚拟摄像机的当前控制参数和目标控制参数。
在通过控制参数对虚拟摄像机的图像采集视角进行调整的过程中,设置模块具体用于:
对当前控制参数、目标控制参数以及与行为状态对应的插值系数进行插值计算,以获得虚拟摄像机在多个时间节点中各自对应的控制参数插值;基于多个时间节点的排列顺序以及与多个时间点各自对应的控制参数插值,对虚拟摄像机进行设置,以将虚拟摄像机由当前图像采集视角调整为目标图像采集视角。
在一种可能的实施例中,还包括透明度设置单元,具体用于:根据虚拟对象所属类型以及虚拟摄像机与虚拟对象的位置关系,确定虚拟对象在目标图像中对应的透明度,其中,虚拟摄像机距离虚拟对象越近,透明度越高。
第三方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现上面描述的虚拟摄像机的控制方法。
本发明实施例又提供了一种系统,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上面描述的一种虚拟摄像机的控制方法。
本发明实施例提供了一种计算机可读介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上面描述的一种虚拟摄像机的控制方法。
在本发明实施例中,对于图形界面中加载的虚拟场景,首先确定虚拟对象在虚拟场景中所处的行为状态,如虚拟对象处于飞行状态、下坠状态等。进而,根据虚拟对象在虚拟场景中所处的行为状态设置虚拟摄像机的控制参数,以便自动控制该虚拟摄像机在虚拟场景中的图像采集视角,并在图形界面中展示该虚拟摄像机在该图像采集视角下采集到的目标图像。这样,通过虚拟对象所处的行为状态为虚拟摄像机设置相应的控制参数,能够自动调整虚拟摄像机在虚拟场景中的图像采集视角,使得图形界面中展示出与虚拟对象的行为状态相符的目标图像,避免在图形界面中设置过于复杂的虚拟摄像机控制逻辑(或相关控件),也避免游戏过程中用户操控游戏角色时还需同步操控虚拟摄像机,大大降低虚拟对象的操控难度,提升用户的游戏体验以及对游戏的兴趣,有助于增加用户进入游戏的次数。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种虚拟摄像机的控制方法的流程图;
图2为本发明一实施例提供的一种图形界面的示意图;
图3为本发明一实施例提供的另一种图形界面的示意图;
图4为本发明一实施例提供的一种图像采集视角的示意图;
图5为本发明一实施例提供的一种插值变化过程的示意图;
图6为本发明实施例提供的一种虚拟摄像机的控制装置的结构示意图;
图7为与图6所示实施例提供的虚拟摄像机的控制装置对应的电子设备的结构示意图。
具体实施方式
现在将参照若干示例性实施例来论述本发明的内容。应当理解,论述了这些实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本发明的内容,而不是暗示对本发明的范围的任何限制。
如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
本发明实施例提供的虚拟摄像机的控制方案可以由一电子设备来执行,该电子设备可以是诸如智能手机、平板电脑、pc机、笔记本电脑等终端设备。在一可选实施例中,该电子设备上可以安装有用于执行虚拟摄像机的控制方案的服务程序。该服务程序比如是游戏客户端、三维场景编辑器、游戏编辑器。
本发明实施例提供的虚拟摄像机控制方案适用于各种虚拟场景中的图像采集场景。虚拟场景比如是游戏领域的各种虚拟场景,如开放世界游戏中的各种场、第三人称游戏中的各种场景等。或者,虚拟场景也可以是影视制作领域的各种虚拟场景,如具有三维动画效果的虚拟场景。
实际上,虚拟摄像机通常设置于虚拟引擎中,主要用于为虚拟场景取景,以便通过取景视野向用户展示虚拟世界的画面。虚拟摄像机常用于游戏领域、影视制作领域。可以理解的是,除虚拟摄像机之外,本发明实施例中用于执行图像采集方案的组件也可以称为虚拟相机、虚拟摄像探头等,无论何种称谓,实际上都是用于强调该模块在虚拟场景中的图像采集能力。
下面以游戏领域为例说明现有技术中实际存在的技术问题:
目前,不同类型的发布平台中,游戏所依赖的输入设备不同,因而游戏中虚拟摄像机的控制方式也不同。传统的游戏发布平台(如电脑、主机或掌机)主要通过实体输入设备(如电脑鼠标、游戏手柄)来控制虚拟摄像机的运动。
近年来,随着移动终端的发展,移动终端也成为重要的游戏发布平台之一。但目前手机多采用无按键的触摸屏,因此手机游戏无法像传统发布平台中的游戏(例如上文的电脑游戏、主机游戏或掌机游戏)那样依赖于输入设备产生的多种输入参数来控制虚拟摄像机。为避免在用户界面中设置过多按键,手机游戏中虚拟摄像机的控制方式通常为:通过玩家在触摸屏空白区域的滑动轨迹来控制虚拟摄像机的运动。但随着游戏机制的发展,游戏操控复杂度越来越高,比如以手机为发布平台的开放大世界游戏,此类游戏中角色运动状态多变,随时可能进入战斗,因此,在此类游戏中玩家在滑动控制虚拟摄像机的同时,还需要按下多个按键来控制角色的运动状态,导致游戏操控难度较大,影响玩家的游戏体验,使玩家容易失去对游戏的兴趣,减少进入游戏的次数。
综上,如何控制虚拟摄像机,以降低游戏操控难度,提升用户的游戏体验,成为亟待解决的技术问题。
为了解决上述问题,本发明实施例提供的虚拟摄像机控制方案的核心思想是:
对于图形界面中加载的虚拟场景,首先确定虚拟对象在虚拟场景中所处的行为状态,如虚拟对象处于飞行状态、下坠状态等。进而,根据虚拟对象在虚拟场景中所处的行为状态设置虚拟摄像机的控制参数,以便自动控制该虚拟摄像机在虚拟场景中的图像采集视角,并在图形界面中展示该虚拟摄像机在该图像采集视角下采集到的目标图像。这样,通过虚拟对象所处的行为状态为虚拟摄像机设置相应的控制参数,能够自动调整虚拟摄像机在虚拟场景中的图像采集视角,使得图形界面中展示出与虚拟对象的行为状态相符的目标图像,避免在图形界面中设置过于复杂的虚拟摄像机控制逻辑(或相关控件),也避免游戏过程中用户操控游戏角色时还需同步操控虚拟摄像机,大大降低虚拟对象的操控难度,提升用户的游戏体验以及对游戏的兴趣,有助于增加用户进入游戏的次数。
在介绍了虚拟摄像机控制方案的核心思路之后,下面具体介绍本发明的各种非限制性实施例。
下面结合以下实施例对该虚拟摄像机的控制方法的执行过程进行说明。
图1为本发明实施例提供的一种虚拟摄像机的控制方法的流程图。如图1所示,该虚拟摄像机的控制方法包括如下步骤:
101、确定虚拟对象在虚拟场景中所处的行为状态;
102、根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角;
103、在图形界面中展示虚拟摄像机在图像采集视角下采集到的目标图像。
本发明实施例中的虚拟摄像机控制方法应用于图形界面。可选地,该图形界面可以是终端设备中加载的图形界面。该图形界面可以是由服务设备传输至终端设备的数据构建的,也可以是由通过安装包预先加载到终端设备中的数据构建的。
可选地,该图形界面中加载有虚拟场景。其中,虚拟场景中至少包括一个虚拟对象。虚拟对象可以通过终端设备搭载的图形界面呈现,所呈现的内容可以包含虚拟对象的整体,也可以是虚拟对象的局部区域。比如,假设虚拟对象为游戏角色,图形界面中可以呈现出该游戏角色整体,也可以呈现出该游戏角色的手部、头部、所佩戴的道具、所穿戴的衣服等局部区域。
为便于描述,下文以游戏领域为例,详细说明图2示出的虚拟摄像机的控制方法的具体执行过程:
首先,101中,确定虚拟对象在虚拟场景中所处的行为状态。
本发明实施例涉及的虚拟场景中至少包括一个虚拟对象。若某一虚拟场景中存在多个虚拟对象,则不同虚拟对象的类型可以相同也可以不同。在游戏领域中,虚拟对象可以是用户通过终端设备进行操控的游戏角色,也可以是游戏开发者在具体游戏场景中预先设置的道具或者非玩家角色(non-practicingcharacter,npc)。
其中,虚拟对象在虚拟场景中所处的行为状态用于表示虚拟对象所执行的行为类型。虚拟对象所处的行为状态比如是飞行状态、下坠状态、运动状态、战斗状态等。针对处于不同行为状态的虚拟对象,虚拟对象的移动轨迹及移动特点都存在区别,因此,需要根据不同行为状态为虚拟摄像机制定不同的移动规则,以便对目标图像的图像采集视角进行自动控制。下文步骤102的描述中将介绍不同行为状态对应的虚拟摄像机移动规则,此处暂不展开。
在一可选实施例中,若检测到对虚拟对象的操作指令,则将与操作指令对应的行为状态确定为虚拟对象所处的行为状态。具体地,操作指令可以是用户通过终端设备反馈的某一操作指令,比如通过用户对终端设备的触控操作出发的触控指令,或者通过摇晃终端设备触发的重力感应指令。
或者,另一可选实施例中,若检测到虚拟对象周围设定范围内存在设定类型的另一虚拟对象,则将与另一虚拟对象相应的行为状态确定为虚拟对象所处的行为状态。
举例来说,假设终端设备搭载有游戏客户端,假设虚拟对象a为游戏角色。假设设定类型为可攻击类型,假设游戏角色的有效攻击距离是10米。
基于上述假设,若检测到该游戏角色周围设定范围(如5米)内出现一个可攻击对象b,显然该可攻击对象b处于该游戏角色的有效攻击距离内,因而,该游戏角色可以以该可攻击对象b作为攻击目标进入战斗状态,也即虚拟对象a所处的行为状态为战斗状态。
当然,实际应用中,还可以采用其他方式确定虚拟对象在虚拟场景中所处的行为状态。比如,可以采用轮询方式检测虚拟对象在虚拟场景中所处的行为状态。再比如,通过检测是否发生某一预设事件来判断是否切换至某一行为状态。例如,假设终端设备搭载有游戏客户端,假设虚拟对象为游戏角色,若该游戏角色进入飞行传送点,则确定游戏角色由当前行为状态切换至飞行状态。
进而,确定虚拟对象所处的行为状态之后,102中,根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角。最终,103中在图形界面中展示虚拟摄像机在图像采集视角下采集到的目标图像。
其中,虚拟摄像机包括摄像机组件,该摄像机组件通过弹簧臂组件与虚拟对象相连。例如,假设虚拟对象为游戏角色,基于此,弹簧臂组件的一端可以连接于游戏角色,另一端可以连接于摄像机组件。
在上述或下述实施例中,虚拟摄像机相对虚拟对象的位置关系(如相对距离)可以实现为:摄像机组件相对虚拟对象的位置关系。当然,由于摄像机组件通过弹簧臂组件与虚拟对象相连,因而,也可以采用弹簧臂组件的臂长来表示虚拟摄像机相对虚拟对象的位置关系。
实际上,弹簧臂组件主要具有以下功能:旋转延迟、移动延迟、碰撞检测、远近过渡、冻结与解冻。其中,旋转延迟是在虚拟摄像机角度变化时,通过插值计算从当前角度平滑过渡到目标角度,以避免因快速旋转而产生的眩晕感。移动延迟是在虚拟对象移动时使弹簧臂组件根据惯性拉长;虚拟对象停止移动时,使弹簧臂组件的长度缓缓恢复。从而,可以在高速移动时产生视觉冲击,同时也可防止虚拟对象小幅度抖动传导给虚拟摄像机,降低虚拟摄像机的拍摄质量。碰撞检测主要体现在:若检测到弹簧臂组件与虚拟场景中的物体相交,此时说明虚拟摄像机被此物体所阻挡,弹簧臂组件自动收缩至避开此碰撞。远近过渡是在弹簧臂组件由长变短时(例如碰撞),使其长度立即缩短;并限制弹簧臂组件仅在虚拟对象运动或旋转时才执行由短变长的变化。从而,避免周围碰撞物较密集时出现的弹簧臂组件频繁伸缩的现象。冻结与解冻主要体现在:虚拟对象进行某些复杂运动(例如跨越大台阶)时,若虚拟摄像机保持跟随可能会出现异常(如虚拟摄像机穿墙),这时需要将虚拟摄像机冻结在原地,等待虚拟对象运动快结束时再解冻并快速追上,以保持虚拟摄像机的平滑过渡。
具体来说,假设虚拟摄像机包括摄像机组件,并且假设该摄像机组件通过弹簧臂组件与虚拟对象相连。基于上述假设,102中根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角,可以具体实现为:
获取虚拟对象在虚拟场景中所处位置;根据虚拟对象所处的行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数;通过虚拟摄像机的控制参数对该虚拟摄像机的图像采集视角进行调整。
其中,虚拟摄像机的控制参数主要用于控制虚拟摄像机的位姿。虚拟摄像机的控制参数包括摄像机参数和弹簧臂参数。
摄像机参数用于设置虚拟摄像机的拍摄角度。可选地,摄像机参数可以是视野角度参数、俯仰角参数、摇摆角参数。其中,视野角度用于表示处于透视模式下的虚拟摄像机在水平方向上的观察角度。通过减小视野角度可以将虚拟摄像机的图像采集视角聚焦于虚拟场景的某一局部区域中,通过增加视野角度可以扩大虚拟摄像机的图像采集视角在虚拟场景中所能覆盖的区域范围。俯仰角参数用于表示在垂直方向上虚拟摄像机的光轴与水平面存在的夹角。摇摆角参数用于表示在水平方向上虚拟摄像机的光轴与正前方存在的夹角。例如,通过设置俯仰角参数和摇摆角参数可以将虚拟摄像机设置为斜俯视状态。
弹簧臂参数用于设置虚拟摄像机相对所述虚拟对象的位置关系。可选地,弹簧臂参数可以是相对偏移参数、端首偏移参数、端末偏移参数、臂长、移动延迟速度、旋转延迟速度。实际上,弹簧臂参数还包括阻尼系数,通过阻尼系数还可以对部分上述弹簧臂参数进行设置。
实际上,相对偏移参数用于表示弹簧臂组件的两端的位置差。端首偏移参数用于表示在世界坐标系下弹簧臂组件首端(即虚拟对象所在的一端)相对于玩家原点的偏移量。这里的玩家原点比如是玩家控制的虚拟对象在世界坐标系下所处的坐标位置。端末偏移参数用于表示在虚拟对象所处的局部坐标系下相对于弹簧臂组件末端(即摄像机组件所在的一端)的位置差。臂长用于表示弹簧臂组件从首端到末端的长度(忽略端首偏移参数和端末偏移参数)。移动延迟速度用于控制虚拟摄像机到达目标位置的快慢。即移动延迟速度越小,虚拟摄像机到达目标位置的速度越慢;移动延迟速度越大,虚拟摄像机到达目标位置的速度越快。旋转延迟速度用于控制虚拟摄像机到达目标角度的快慢。即旋转延迟速度越小,虚拟摄像机到达目标角度的速度越慢;旋转延迟速度越大,虚拟摄像机到达目标角度的速度越快。
可以理解的是,本发明实施例涉及的控制参数并不限于上文示例性描述的控制参数。
基于上述文描述的控制参数以及行为状态,下面结合具体示例详细介绍如何根据虚拟对象所处行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数(也即在不同行为状态下虚拟摄像机的移动规则):
其一,假设虚拟对象所处的行为状态为特写状态。特写状态,可以理解为,为突出虚拟场景中的某一部分,将图像采集视角集中于该部分的拍摄方式。
基于上述假设,102中根据虚拟对象所处的行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,可以具体实现为:
若行为状态为特写状态,则确定特写目标所属类型。若特写目标为虚拟对象,并且虚拟对象受用户控制,则减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数,或者减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度;将使虚拟摄像机的光轴与虚拟对象处于同一平面的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机光轴指向虚拟对象的摇摆角参数确定为目标摇摆角参数。
具体来说,假设行为状态为特写状态。假设特写目标为受用户控制的游戏角色。基于上述假设,可以减小虚拟摄像机相对游戏角色的距离参数以得到目标距离参数,即拉近虚拟摄像机相对的游戏角色的距离,以便使虚拟摄像机的图像采集视角集中于游戏角色。具体地,可以通过获取虚拟对象和虚拟摄像机在虚拟场景中的坐标后,计算虚拟对象坐标和虚拟摄像机坐标的差值得到距离参数。另一些实施例中,也可以减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦的游戏角色的目标视野角度。“减小虚拟摄像机的视野角度”也即调整虚拟摄像机的焦距,以使虚拟摄像机的图像采集视角集中于游戏角色。然后,将使虚拟摄像机的光轴与游戏角色处于同一平面的俯仰角参数确定为目标俯仰角参数,并将使虚拟摄像机光轴指向游戏角色的摇摆角参数确定为目标摇摆角参数。例如,目标俯仰角参数可以是使虚拟摄像机光轴指向游戏角色正面的摇摆角参数,目标俯仰角参数可以是使虚拟摄像机的光轴与游戏角色水平的摇摆角参数。这样,通过对俯仰角参数和摇摆角参数可以进一步将虚拟摄像机的图像采集视角集中于游戏角色。
在上述或下述实施例中,可以通过如下方法调节虚拟摄像机相对所述虚拟对象的距离参数:根据特写目标在目标画面中所占比例,判断虚拟摄像机相对所述虚拟对象的距离参数是否达到目标距离参数。若特写目标在目标画面中所占比例未达到预设比例,则对比当前比例与预设比例,基于对比结果来调节虚拟摄像机相对所述虚拟对象的距离参数。
在调节虚拟摄像机相对所述虚拟对象的距离参数时,为使虚拟摄像机能够平滑过渡,可以根据虚拟对象与虚拟摄像机之间的距离参数确定与该距离参数对应的阻尼系数,并将阻尼系数应用到调节虚拟摄像机相对所述虚拟对象的距离参数的过程中。一些可选实施例中,阻尼系数例如包括:当前参数与目标参数的最大差值,和/或当前参数变化至目标参数的速度值。
另一可选实施例中,102中根据虚拟对象所处的行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,可以具体实现为:
若行为状态为特写状态,则确定特写目标所属类型;若特写目标为虚拟对象,并且虚拟对象不受用户控制,则减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度。
实际应用中,特写目标可以是npc、道具。当然,特写目标也可以是不受当前用户控制的其他虚拟对象,如游戏中其他用户控制的游戏角色。
具体来说,假设行为状态为特写状态。假设特写目标为npc。基于上述假设,可以减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦的npc的目标视野角度。与上文类似,这里“减小虚拟摄像机的视野角度”也即调整虚拟摄像机的焦距,以使虚拟摄像机的图像采集视角集中于npc。
例如,用户拿起道具时,可以减小虚拟摄像机的视野角度以便将虚拟摄像机的图像采集视角聚焦于该道具,方便观察道具细节。
通过上述步骤可以将虚拟摄像机的图像采集视角集中于处于特写状态的虚拟对象上,为用户提供更丰富的视觉细节。
可选地,为增加画面真实感,在进入特写状态后,还可以根据使用场景触发对目标图像进行景深处理,以使画面更富有层次。景深处理可以是在进入特写状态后,调节虚拟摄像机相对虚拟对象的距离之前执行的,也可以是在其他时机执行的,本发明实施例并不限定。
例如,进入特写状态后,获取虚拟对象当前所处的场景,根据场景中光照条件等因素确定景深处理的设置参数。进而,基于景深处理的设置参数,触发对虚拟摄像机采集的目标图像进行相应的景深处理。
另一实施例中,还可以为目标图像添加滤镜效果,以使画面渲染效果更符合当前使用场景。这里的使用场景可以理解为虚拟对象当前所处的场景。滤镜效果可以是在调节俯仰角之后执行的。滤镜处理比如是对目标图像实施的锐化、柔光、调色等处理。
例如:监听虚拟对象的行为状态,若监听到该虚拟对象的行为状态切换至特写状态,则触发对目标图像的景深处理,并判断特写目标所属类型。若特写目标所属类型为受用户控制的虚拟对象,则减小虚拟摄像机相对虚拟对象的距离参数,直到虚拟摄像机采集的目标图像中虚拟对象符合预设条件(如虚拟对象在目标图像中所占的比例达到预设比例)。此情况下,还需要通过调节俯仰角将虚拟摄像机的光轴调节到与虚拟对象所处平面,并通过调节摇摆角将虚拟摄像机的光轴指向虚拟对象。最终,触发与当前场景对应的滤镜效果,对目标图像进行滤镜处理。
再例如:若判定特写目标所属类型为不受用户控制的虚拟对象,则减小虚拟摄像机的视野角度,直到虚拟摄像机采集的目标图像中聚焦于虚拟对象;并触发与当前场景对应的滤镜效果,对目标图像进行滤镜处理。
其二,假设虚拟对象所处的行为状态为瞄准状态。
基于上述假设,102中根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,可以具体实现为:
若行为状态为瞄准状态,则基于虚拟对象相对瞄准对象的位置关系,确定虚拟摄像机的俯仰角参数对应的变化范围,变化范围包括虚拟摄像机的最大俯仰角参数;减小虚拟摄像机相对瞄准对象的距离参数以得到目标距离参数,或者减小瞄准对象的视野角度以得到用于在目标图像中聚焦瞄准对象的目标视野角度。
具体来说,假设行为状态为瞄准状态。假设瞄准对象为npc。基于上述假设,由于瞄准动作会将图像采集视角缩小并拉远至虚拟场景中的某一局部区域,首先,需要基于虚拟对象相对该npc的位置关系,确定虚拟摄像机的最大俯仰角参数,即限定虚拟摄像机的俯仰角参数对应的变化范围,以避免瞄准状态下的画面穿帮(如虚拟摄像机穿入地面等)。进而,可以通过减小虚拟摄像机相对瞄准对象的距离参数,或者也可以通过减小瞄准对象的视野角度,使虚拟摄像机的图像采集视角集中于瞄准对象,以便于用户可以更清晰地观察瞄准对象。
可选地,在一些可选实施例中,若目标图像中包含受用户控制的虚拟对象,则确定虚拟摄像机的末端偏移参数,以将虚拟对象移动至目标图像的画面边缘,从而避免用户控制的虚拟对象遮挡瞄准对象。比如,第三人称游戏中,游戏角色的头部遮挡住瞄准对象,可以调整末端偏移参数使游戏角色的头部偏移至目标图像的一侧,以保证能够看清游戏角色的瞄准对象,并保证瞄准动作的完整展示。
其三,假设虚拟对象所处的行为状态为运动状态。
基于上述假设,102中根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,可以具体实现为:
若行为状态为运动状态,则确定虚拟对象所对应的运动类型;根据运动类型及虚拟对象所处位置,确定虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数、俯仰角参数。
具体来说,对处于运动状态下的虚拟对象,与该虚拟对象对应的虚拟摄像机的移动规则依据运动类型可以分为如下几种情况:
第一种情况:假设运动类型为飞行运动。
此情况下,由于飞行时通常需要以俯视角观察地面和斜前方,可以将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数,使图像采集视角处于俯视状态。由于飞行时会伴有较频繁的转向操作,可以将使虚拟摄像机的光轴指向虚拟对象的运动方向的摇摆角参数确定为目标摇摆参数,以便将摇摆角自动向运动方向修正。为增加飞行时的沉浸感,可以减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数,如减小弹簧臂组件对应的臂长。
第二种情况:假设运动类型为下坠运动。
由于弹簧臂组件存在移动延迟,下坠过程中可能会出现虚拟对象超出目标图像的情况。此情况下,需要根据虚拟对象的下坠运动参数,为弹簧臂组件设置最大移动延迟距离,以避免因用于连接虚拟对象和摄像机组件的弹簧臂组件的延迟距离过大而导致的虚拟对象超出目标图像的情况。
此外,可以根据具体场景对此情况下虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数、俯仰角参数的调节规则进行设置。例如,将虚拟摄像机的摇摆角参数和俯仰角参数根据运动方向进行自动修正。
第三种情况:假设运动类型为快速地面运动。
此情况下,将使虚拟摄像机的光轴指向虚拟对象的运动方向的俯仰角参数确定为目标俯仰角参数,将使虚拟摄像机的光轴指向运动方向的摇摆角参数确定为目标摇摆参数,从而通过上述步骤可以将将俯仰角和摇摆角自动向运动方向修正,无需用户频繁向运动方向转向,提升操作便利性。为防止虚拟对象与弹簧臂组件脱节,还需要关闭弹簧臂组件的移动延迟功能,或提高弹簧臂组件的移动延迟速度,以保证在虚拟对象快速移动时虚拟摄像机可以保持一定距离进行跟拍,避免因弹簧臂组件延迟而导致的弹簧臂组件脱节。
第四种情况:假设运动类型为慢速地面运动。
此情况下,在触发虚拟对象进入慢速地面运动后的预设时刻,如虚拟对象开始进行慢速地面运动3秒后,可以将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数,即是将虚拟摄像机过渡到斜俯视状态,以便观察虚拟对象的动作全貌。由于慢速地面运动时用户有较充分的操作时间,因此,可以由用户手动调节摇摆角,即根据用户反馈的摇摆角参数,确定虚拟摄像机的目标摇摆角参数。可选地,根据使用场景还可以将摇摆角参数设置为自动向运动方向修正。
上面介绍了虚拟对象处于运动状态下时虚拟摄像机的控制参数设置方式。
其四,假设虚拟对象所处的行为状态为战斗状态。
基于上述假设,102中根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数,可以具体实现为以下步骤:
201、若行为状态为战斗状态,则判断当前图像采集视角是否存在攻击对象。若否则执行202,若是则执行203。
202、若当前图像采集视角不存在攻击对象,则基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定虚拟摄像机的目标摇摆角参数。
具体地,若当前图像采集视角不存在攻击对象,则需要先在虚拟场景中找出该攻击对象,并将该攻击对象加入到图像采集视角中,即通过调整虚拟摄像机的摇摆角参数在虚拟场景中搜索攻击对象。具体而言,若当前图像采集视角不存在攻击对象,则基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,将使攻击对象加入到图像采集视角中的摇摆角参数确定为虚拟摄像机的目标摇摆角参数。
可选地,基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,将使攻击对象加入到图像采集视角中的摇摆角参数确定为虚拟摄像机的目标摇摆角参数,可以具体实现为:基于预设偏移比例以及虚拟对象到攻击对象的相对距离,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
举例来说,图2示出一种可能存在的情况:攻击对象超出当前图像采集视角。此情况下,可以将攻击对象在图形界面坐标系下的坐标反投影至虚拟场景的世界坐标系下从而得到投射方向向量d。将该投射方向向量d转换为欧拉角,并从转换后的欧拉角d’中提取出摇摆角分量dyaw。基于该摇摆角分量dyaw计算出最终的目标摇摆角参数yaw:yaw=yaw0+dyaw,其中yaw0为当前摇摆角参数。
具体地,确定攻击对象在图形界面坐标系下的坐标时,还需要计算该攻击对象对应的端末横向偏移量socketoffsety:socketoffsety=距离参数a*p,其中p为预设偏移比例,p的取值范围为0到1。
203、若当前图像采集视角存在攻击对象,则判断图形界面当前展示的图像中是否包含攻击对象的整体。若是则执行204,若否则执行205。
若当前图像采集视角存在攻击对象,则需要进一步当前图像采集视角中是否能看清该攻击对象的全貌,即判断图形界面当前展示的图像中是否包含攻击对象的整体。
204、若图形界面当前展示的图像中包含攻击对象的整体,则基于预设偏移比例以及虚拟对象到攻击对象的相对距离,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
从而,保证通过虚拟摄像机的图像采集视角能够看清攻击对象,并完整展示攻击动作的全貌。
205、若图形界面当前展示的图像中未包含攻击对象的整体,则此情况下需要先将攻击对象完整展示于图形界面中,因而,需要先调节虚拟摄像机相对攻击对象的距离,即基于攻击对象与画面的相对比例,确定虚拟摄像机相对攻击对象的距离参数,以便通过距离调节来扩大图像采集视角。进而,基于预设偏移比例以及距离参数,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
举例来说,图3示出一种可能存在的情况:图形界面当前展示的图像中未包含攻击对象的整体,攻击对象的头部处于图像采集视角外。图4示出与图3对应的图像采集视角。此情况下,首先确定该攻击对象对应的垂直视野半角:tan(α)=tan(fov/2)/asp。基于该攻击对象对应的垂直视野半角以及上半身半身高度h,确定拍摄该攻击对象所需的弹簧臂组件臂长d:d=h/tan(α)=h*asp/tan(fov/2)。在图4中,fov为图4中两条实线间的夹角,asp为图形界面宽高比。
通过步骤201-205可以确定出战斗状态下虚拟摄像机的控制参数,从而便于后续实现战斗状态下的自动跟拍。
上面介绍了几种确定虚拟摄像机的控制参数的具体方式。
进而,虚拟摄像机的控制参数之后,102中,可以通过虚拟摄像机的控制参数对该虚拟摄像机的图像采集视角进行调整。
具体来说,假设虚拟摄像机由当前图像采集视角切换至目标图像采集视角的过程包括多个时间节点。假设虚拟摄像机的控制参数包括虚拟摄像机的当前控制参数和目标控制参数。
基于上述假设,通过控制参数对虚拟摄像机的图像采集视角进行调整,可以具体实现为:
对当前控制参数、目标控制参数以及与行为状态对应的插值系数进行插值计算,以获得虚拟摄像机在多个时间节点中各自对应的控制参数插值。进而,基于多个时间节点的排列顺序以及与多个时间点各自对应的控制参数插值,对虚拟摄像机进行设置,以将虚拟摄像机由当前图像采集视角调整为目标图像采集视角。
具体地,假设插值系数为预设时间间隔及插值速度。计算当前控制参数与目标控制参数的差值,并基于该差值、预设时间间隔及插值速度计算出虚拟摄像机在多个时间节点中各自对应的控制参数插值。此处,设置时间间隔及插值速度时需要考虑以下因素:控制参数插值可以按照先快后慢的规律进行变化,以模拟出更符合自然界的过渡特征的变化效果,例如图5示出的控制参数插值变化曲线。当然,若各控制参数插值的数值差距较大,也可快速反映控制参数插值的变化结果。进而,基于多个时间节点从先到后的排列顺序,通过各时间点对应的控制参数插值对虚拟摄像机进行设置,以便将虚拟摄像机由当前图像采集视角平滑过渡为目标图像采集视角。
可选地,对于在当前行为状态下无需修改的控制参数,则仍保持上一行为状态下的设置,以便提高控制参数的设置效率。
可选地,根据虚拟对象所属类型以及虚拟摄像机与虚拟对象的位置关系,确定虚拟对象在目标图像中对应的透明度,其中,虚拟摄像机距离虚拟对象越近,透明度越高。
例如,假设虚拟对象为用户控制的游戏角色,确定该游戏角色相对虚拟摄像机的距离参数。若该距离参数对应的距离小于渐隐距离阈值,则将该游戏角色设置为半透明;若该距离参数对应的距离小于隐藏距离阈值,则将该游戏角色设置为透明。其中,该距离参数对应的距离越小,该游戏角色的透明度越高。从而避免虚拟摄像机出现穿入游戏角色的现象。再例如,假设虚拟对象为道具,此情况下,若该道具与虚拟摄像机间的距离小于预设阈值,则直接将该道具隐藏。再例如,假设虚拟对象为一个npc以及用户控制的游戏角色,若该npc处于虚拟摄像机与该游戏角色之间,则将该npc设置为半透明。
图2示出的虚拟摄像机的控制方法的执行过程中,对于图形界面中加载的虚拟场景,首先确定虚拟对象在虚拟场景中所处的行为状态,如虚拟对象处于飞行状态、下坠状态等。进而,根据虚拟对象在虚拟场景中所处的行为状态设置虚拟摄像机的控制参数,以便自动控制该虚拟摄像机在虚拟场景中的图像采集视角,并在图形界面中展示该虚拟摄像机在该图像采集视角下采集到的目标图像。这样,通过虚拟对象所处的行为状态为虚拟摄像机设置相应的控制参数,能够自动调整虚拟摄像机在虚拟场景中的图像采集视角,使得图形界面中展示出与虚拟对象的行为状态相符的目标图像,避免在图形界面中设置过于复杂的虚拟摄像机控制逻辑(或相关控件),也避免游戏过程中用户操控游戏角色时还需同步操控虚拟摄像机,大大降低虚拟对象的操控难度,提升用户的游戏体验以及对游戏的兴趣,有助于增加用户进入游戏的次数。
以下将详细描述本发明的一个或多个实施例的虚拟摄像机的控制装置。本领域技术人员可以理解,这些虚拟摄像机的控制装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的一种虚拟摄像机的控制装置的结构示意图。该虚拟摄像机的控制装置应用于图形界面,该图形界面中加载有虚拟场景,如图6所示,该虚拟摄像机的控制装置包括:确定模块11、设置模块12、展示模块13。
确定模块11,用于确定虚拟对象在虚拟场景中所处的行为状态;
设置模块12,用于根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角;
展示模块13,用于在图形界面中展示虚拟摄像机在图像采集视角下采集到的目标图像。
可选地,在根据行为状态设置虚拟摄像机的控制参数,以控制虚拟摄像机在虚拟场景中的图像采集视角的过程中,设置模块12具体用于:获取虚拟对象在虚拟场景中所处位置;根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数;通过控制参数对虚拟摄像机的图像采集视角进行调整。
其中,虚拟摄像机包括摄像机组件,摄像机组件通过弹簧臂组件与虚拟对象相连,控制参数包括摄像机参数和/或弹簧臂参数,摄像机参数用于设置虚拟摄像机的拍摄角度,弹簧臂参数用于设置虚拟摄像机相对虚拟对象的位置关系。
可选地,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块12具体用于:
若行为状态为特写状态,则确定特写目标所属类型;若特写目标为虚拟对象,并且虚拟对象受用户控制,则减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数;或者,减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度;将使虚拟摄像机的光轴与虚拟对象处于同一平面的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机光轴指向虚拟对象的摇摆角参数确定为目标摇摆角参数。
可选地,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块12具体用于:
若行为状态为特写状态,则确定特写目标所属类型;若特写目标为虚拟对象,并且虚拟对象不受用户控制,则减小虚拟摄像机的视野角度以得到用于在目标图像中聚焦虚拟对象的目标视野角度。
可选地,虚拟摄像机的控制装置还包括效果模块,具体用于:根据使用场景触发对目标图像进行景深处理;和/或,为目标图像添加滤镜效果。
可选地,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块12具体用于:
若行为状态为瞄准状态,则基于虚拟对象相对瞄准对象的位置关系,确定虚拟摄像机的俯仰角参数对应的变化范围,变化范围包括虚拟摄像机的最大俯仰角参数;减小虚拟摄像机相对瞄准对象的距离参数以得到目标距离参数,或者减小瞄准对象的视野角度以得到用于在目标图像中聚焦瞄准对象的目标视野角度。
可选地,虚拟摄像机的控制装置还包括移动单元,具体用于:若目标图像中包含受用户控制的虚拟对象,则确定虚拟摄像机的末端偏移参数,以将虚拟对象移动至目标图像的画面边缘。
可选地,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块12具体用于:
若行为状态为运动状态,则确定虚拟对象所对应的运动类型;根据运动类型及虚拟对象所处位置,确定虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数、俯仰角参数。
可选地,在根据运动类型及虚拟对象所处位置,确定虚拟摄像机相对虚拟对象的距离参数、虚拟摄像机的摇摆角参数以及俯仰角参数的过程中,设置模块12具体用于:
若运动类型为飞行运动,则将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机的光轴指向虚拟对象的运动方向的摇摆角参数确定为目标摇摆参数;减小虚拟摄像机相对虚拟对象的距离参数以得到目标距离参数;或者若运动类型为下坠运动,则根据虚拟对象的下坠运动参数,为弹簧臂组件设置最大移动延迟距离;或者若运动类型为快速地面运动,则将使虚拟摄像机的光轴指向虚拟对象的运动方向的俯仰角参数确定为目标俯仰角参数;将使虚拟摄像机的光轴指向运动方向的摇摆角参数确定为目标摇摆参数;关闭弹簧臂组件的移动延迟功能,或提高弹簧臂组件的移动延迟速度;或者若运动类型为慢速地面运动,则在触发虚拟对象进入慢速地面运动后的预设时刻,将使虚拟摄像机与水平面存在夹角的俯仰角参数确定为目标俯仰角参数;根据用户反馈的摇摆角参数,确定虚拟摄像机的目标摇摆角参数。
可选地,在根据行为状态及虚拟对象所处位置,确定虚拟摄像机的控制参数的过程中,设置模块12具体用于:
若行为状态为战斗状态,则判断当前图像采集视角是否存在攻击对象;若当前图像采集视角不存在攻击对象,则基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定虚拟摄像机的目标摇摆角参数。
可选地,在基于所述攻击目标在所述虚拟场景中的位置坐标以及所述虚拟摄像机的当前摇摆角参数,确定所述虚拟摄像机的目标摇摆角参数的过程中,设置模块12具体用于:基于预设偏移比例以及所述虚拟对象到所述攻击对象的相对距离,确定所述虚拟摄像机的末端偏移参数;基于所述攻击目标在所述虚拟场景中的位置坐标以及所述虚拟摄像机的当前摇摆角参数,确定待修正的所述虚拟摄像机的目标摇摆角参数。
可选地,设置模块12还用于:若当前图像采集视角存在攻击对象,则判断图形界面当前展示的图像中是否包含攻击对象的整体;若图形界面当前展示的图像中包含攻击对象的整体,则基于预设偏移比例以及虚拟对象到攻击对象的相对距离,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
可选地,设置模块12还用于:若图形界面当前展示的图像中未包含攻击对象的整体,则基于攻击对象与画面的相对比例,确定虚拟摄像机相对攻击对象的距离参数;基于预设偏移比例以及距离参数,确定虚拟摄像机的末端偏移参数;基于攻击目标在虚拟场景中的位置坐标以及虚拟摄像机的当前摇摆角参数,确定待修正的虚拟摄像机的目标摇摆角参数。
可选地,虚拟摄像机由当前图像采集视角切换至目标图像采集视角的过程包括多个时间节点,虚拟摄像机的控制参数包括虚拟摄像机的当前控制参数和目标控制参数。
在通过控制参数对虚拟摄像机的图像采集视角进行调整的过程中,设置模块12具体用于:
对当前控制参数、目标控制参数以及与行为状态对应的插值系数进行插值计算,以获得虚拟摄像机在多个时间节点中各自对应的控制参数插值;基于多个时间节点的排列顺序以及与多个时间点各自对应的控制参数插值,对虚拟摄像机进行设置,以将虚拟摄像机由当前图像采集视角调整为目标图像采集视角。
可选地,还包括透明度设置单元,具体用于:根据虚拟对象所属类型以及虚拟摄像机与虚拟对象的位置关系,确定虚拟对象在目标图像中对应的透明度,其中,虚拟摄像机距离虚拟对象越近,透明度越高。
图4所示虚拟摄像机的控制装置可以执行前述各实施例中提供的方法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。
在一个可能的设计中,上述图6所示的虚拟摄像机的控制装置的结构可实现为一电子设备。
如图7所示,该电子设备可以包括:处理器21、存储器22。其中,所述存储器22上存储有可执行代码,当所述可执行代码被所述处理器21执行时,至少使所述处理器21可以实现如前述实施例中提供的虚拟摄像机的控制方法。其中,该电子设备的结构中还可以包括通信接口23,用于与其他设备或通信网络通信。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的各个模块可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
根据需要,本发明各实施例的系统、方法和装置可以实现为纯粹的软件(例如用java来编写的软件程序),也可以根据需要实现为纯粹的硬件(例如专用asic芯片或fpga芯片),还可以实现为结合了软件和硬件的系统(例如存储有固定代码的固件系统或者带有通用存储器和处理器的系统)。
本发明的另一个方面是一种计算机可读介质,其上存储有计算机可读指令,所述指令被执行时可实施本发明各实施例的虚拟摄像机的控制方法。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。要求保护的主题的范围仅由所附的权利要求进行限定。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除