一种虚拟环境中的音源设置方法、装置、设备及存储介质

文档序号:1777930 发布日期:2019-12-06 浏览:29次 >En<

阅读说明:本技术 一种虚拟环境中的音源设置方法、装置、设备及存储介质 (Sound source setting method, device, equipment and storage medium in virtual environment ) 是由 李裕逵 郑金鑫 何晓平 于 2019-09-09 设计创作,主要内容包括:本申请提供一种虚拟环境中的音源设置方法、装置、设备及存储介质。其中,所述方法,包括:获取目标环境边界和角色位置;基于所述目标环境边界和所述角色位置,判断角色是否处于目标环境中;若所述角色处于所述目标环境中,则为虚拟音源设置与所述角色相同的位置数据;若所述角色不处于所述目标环境中,则计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据;根据所述虚拟音源的位置数据设置虚拟音源。本申请提供的一种虚拟环境中的音源设置方法、装置、设备及存储介质,可以有效提高虚拟音源声音的连续性,有效降低对于系统计算的消耗,大幅提高游戏性能。(The application provides a method, a device, equipment and a storage medium for setting a sound source in a virtual environment. The method comprises the following steps: acquiring a target environment boundary and a role position; judging whether the role is in the target environment or not based on the target environment boundary and the role position; if the role is in the target environment, setting position data which are the same as the role for a virtual sound source; if the character is not in the target environment, calculating the distance between the character and the boundary of the target environment, and setting position data for the virtual sound source based on the calculated distance; and setting a virtual sound source according to the position data of the virtual sound source. The method, the device, the equipment and the storage medium for setting the sound source in the virtual environment can effectively improve the continuity of virtual sound source sound, effectively reduce the consumption of system calculation and greatly improve the game performance.)

一种虚拟环境中的音源设置方法、装置、设备及存储介质

技术领域

本申请涉及互联网技术领域,特别涉及一种虚拟环境中的音源设置方法、装置、设备及计算机可读存储介质。

背景技术

在游戏中,声音是不可或缺的重要元素之一,游戏中丰富的声音配置可以拉近虚拟世界与现实世界的距离。基于不同场景的配置不同类型的声音可以增加游戏场景的真实感、细腻感、丰富度以及与现实世界的贴合度。

目前,涉及到游戏场景的声音生成设置,一般采用在游戏场景中的相应位置处设置多个与该位置应有的声音匹配的多个虚拟音源。然而,这种音效设计方式需要设计多个音源,且需要考虑多个音源之间的位置分布问题。当角色在移动时,多个音源与角色之间的相对方位分布会发生变化,因此容易导致声音发生不连续的变化。此外,多个音源的设置对于系统计算的消耗较大,影响游戏性能。

发明内容

有鉴于此,本申请实施例提供了一种虚拟环境中的音源设置方法、装置、设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。

本申请实施例公开了一种虚拟环境中的音源设置方法,包括:

获取目标环境边界和角色位置;

基于所述目标环境边界和所述角色位置,判断角色是否处于目标环境中;

若所述角色处于所述目标环境中,则为虚拟音源设置与所述角色相同的位置数据;

若所述角色不处于所述目标环境中,则计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据;

根据所述虚拟音源的位置数据设置虚拟音源。

进一步地,所述获取目标环境边界和角色位置之前,还包括:

建立目标环境模型;

所述获取目标环境边界,包括:根据所述目标环境模型获取目标环境边界。

进一步地,所述获取目标环境边界和角色位置,包括:

根据预设的时间间隔定时获取目标环境边界和角色位置。

进一步地,所述计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据,包括:

计算所述角色与所述目标环境边界之间的最短距离;

基于计算得到的最短距离,获得所述目标环境边界上距离所述角色最近的目标位置;

将所述目标位置设置为所述模拟音源的位置数据。

进一步地,所述将所述目标位置设置为所述模拟音源的位置数据,包括:

在所述目标位置包括两个或两个以上位置的情况下,为所述虚拟音源设置与所述目标位置中的任意一个位置相同的位置数据。

进一步地,所述将所述目标位置设置为所述模拟音源的位置数据,包括:

在所述目标位置包括两个或两个以上位置的情况下,将所述目标环境边界进行转换,得到转换环境边界;

计算所述角色与所述转换环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。

进一步地,所述计算所述角色与所述转换环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据,包括:

计算所述角色与所述转换环境边界之间的最短距离;

基于计算得到的最短距离,获得所述转换环境边界上距离所述角色最近的位置;

将所述转换环境边界上距离所述角色最近的位置设置为所述模拟音源的位置数据。

本申请实施例公开了一种虚拟环境中的音源设置装置,包括:

获取模块,被配置为获取目标环境边界和角色位置;

判断模块,被配置为基于所述目标环境边界和所述角色位置,判断角色是否处于目标环境中;

若所述角色处于所述目标环境中,则为虚拟音源设置与所述角色相同的位置数据;

若所述角色不处于所述目标环境中,则计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据;

设置模块,被配置为根据所述虚拟音源的位置数据设置虚拟音源。

可选地,所述虚拟环境中的音源设置装置,还包括:

建立模块,被配置为建立目标环境模型;

所述获取模块具体被配置为:根据所述目标环境模型获取目标环境边界。

可选地,所述获取模块,进一步被配置为:

根据预设的时间间隔定时获取目标环境边界和角色位置。

可选地,所述计算模块,进一步被配置为:

计算所述角色与所述目标环境边界之间的最短距离;

基于计算得到的最短距离,获得所述目标环境边界上距离所述角色最近的目标位置;

将所述目标位置设置为所述模拟音源的位置数据。

可选地,所述计算模块,进一步被配置为:

在所述目标位置包括两个或两个以上位置的情况下,为所述虚拟音源设置与所述目标位置中的任意一个位置相同的位置数据。

可选地,所述计算模块,进一步被配置为:

在所述目标位置包括两个或两个以上位置的情况下,将所述目标环境边界进行转换,得到转换环境边界;

计算所述角色与所述转换环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。

可选地,所述计算模块,进一步被配置为:

计算所述角色与所述转换环境边界之间的最短距离;

基于计算得到的最短距离,获得所述转换环境边界上距离所述角色最近的位置;

将所述转换环境边界上距离所述角色最近的位置设置为所述模拟音源的位置数据。

一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述虚拟环境中的音源设置方法的步骤。

一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述虚拟环境中的音源设置方法的步骤。

本申请提供的一种虚拟环境中的音源设置方法、装置、设备及计算机可读存储介质,通过将单一场景中的多个虚拟音源合并为一个虚拟音源,且虚拟音源的位置随着角色位置的变化而变化,可以有效提高虚拟音源声音的连续性,有效降低对于系统计算的消耗,大幅提高游戏性能。

附图说明

图1是本申请一实施例所述的计算机设备结构示意图;

图2是本申请一实施例所述的虚拟环境中的音源设置方法的流程示意图;

图3是本申请一实施例所述的虚拟环境中的音源设置方法的流程示意图;

图4是本申请一实施例所述的虚拟环境中的音源设置装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本申请中,提供了一种虚拟环境中的音源设置方法、装置、设备及存储介质,在下面的实施例中逐一进行详细说明。

图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

其中,处理器120可以执行图2所示方法中的步骤。

如图2所示,图2示出了根据本申请一实施例的虚拟环境中的音源设置方法的流程示意图,包括步骤S210~步骤S230。

步骤S210:获取目标环境边界和角色位置。

在本申请一实施例中,目标环境可以是所关注的虚拟场景中的各种环境,如雪山、湖泊、海洋、街道、游乐场等,本申请对此不做限制。确定目标环境的方法可以有多种,可以是根据角色与环境区域中心的距离是否大于预设阈值来判断,在角色与环境区域中心的距离大于预设阈值的情况下,该环境区域不属于目标环境,在角色与环境区域中心的距离小于或预设阈值的情况下,该环境区域属于目标环境;由于角色在移动时,游戏界面中的场景跟随着角色的移动而不断变换,还可以将在获取到角色位置的同一时刻或同一帧画面内,游戏界面中呈现出的环境区域作为目标环境,或以其他方法确定目标环境均可,本申请对此不做限制。

边界是用于划分环境区域的一种标志性界线,可以是各种形状的环境区域的外轮廓线。目标环境边界可以是结合角色位置所关注的虚拟环境模型的外边界。角色位置可以是角色所处的地方、方位。

例如,假设在游戏中设置有森林、瀑布和街道三个环境区域,在角色位于森林环境区域、瀑布环境区域和街道环境区域三者之间,且与森林环境区域、瀑布环境区域及街道环境区域之间的距离均相等且小于预设阈值,则森林环境、瀑布环境和街道环境均属于目标环境,森林环境区域的边界、瀑布环境区域的边界和街道环境区域的边界均属于目标环境边界;在角色位于森林环境区域和瀑布环境区域之间,且与街道环境区域之间的距离大于设定阈值的情况下,街道环境不属于目标环境,街道环境区域的边界也不属于目标环境边界,在角色位置位于森林环境区域和瀑布环境区域之间的中间点的情况下,森林环境和瀑布环境均属于目标环境,森林环境区域的边界和瀑布环境区域的边界均为目标环境边界。

实际应用中,可以根据预设的时间间隔定时获取目标环境边界和角色位置。

其中,预设的时间间隔可以根据实际需求确定,如可以设置每秒获取n次目标环境边界和角色位置(n为大于等于1的整数),或每x帧获取一次目标环境边界和角色位置(x为大于等于1的整数),本申请对此不做限制。

步骤S220:基于所述目标环境边界和所述角色位置,判断角色是否处于目标环境中,若是,则执行步骤S221,若否,则执行步骤S222。

步骤S221:为虚拟音源设置与所述角色相同的位置数据。在为虚拟音源设置与所述角色相同的位置数据之后,继续执行步骤S230。

步骤S222:计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。在为所述虚拟音源设置位置数据之后,继续执行步骤S230。

其中,判断角色是否处于目标环境的方法可以有多种,例如,可以基于目标环境建立一个坐标系,以目标环境中的中心点为坐标原点,并以坐标的形式表示目标环境边界及角色位置,计算目标环境边界与角色位置之间的距离,若目标环境边界与角色位置之间的距离大于预设值,则判断角色位于目标环境外,若目标环境边界与角色位置之间的距离小于预设值,则判断角色位于目标环境内,若目标环境边界与角色位置之间的距离等于预设值,则判断角色位于目标环境边界上。此外,以其他方法判断角色是否处于目标环境中均可,本申请对此不做限制。

若角色处于目标环境中,则为虚拟音源设置与角色的位置数据相同的位置数据,若角色在目标环境中移动,则虚拟音源随着角色的移动而移动;若角色自目标环境中移动至目标环境外,则在角色仍在目标环境中时,虚拟音源仍随着角色的移动而移动,在角色移动至目标环境外后,计算角色与目标环境之间的距离,并基于角色与目标环境之间的距离为虚拟音源设置位置数据。

计算角色与目标环境边界之间距离的方法可以有多种,例如,可以以角色位置为起点作任意一条与目标环境边界相交的射线,得到角色位置与目标环境边界的交点,计算角色位置与上述交点之间的直线距离,并以计算得到的直线距离作为角色与目标环境之间的距离。此外,以其他方法计算角色与目标环境之间的距离均可,本申请对此不做限制。

进一步地,计算所述角色与所述目标环境边界之间的最短距离。

基于计算得到的最短距离,获得所述目标环境边界上距离所述角色最近的目标位置。

将所述目标位置设置为所述模拟音源的位置数据。

计算角色与目标环境边界之间的最短距离的方法可以有多种,例如,可以以角色位置为起点作若干条与目标环境边界相交的射线,产生若干个角色位置射线与目标环境边界的交点,分别计算角色位置与每个交点之间的直线距离,取计算得到的最短距离作为角色与目标环境之间的最短距离,并取目标环境边界上与角色距离最短的点的位置为目标位置。此外,以其他方法计算角色与目标环境之间的距离均可,本申请对此不做限制。

其中,目标位置是目标环境边界上距离角色最近的点的位置,且目标位置随着角色的移动而移动、随着角色位置的变化而变化。

实际应用中,在所述目标位置包括两个或两个以上位置的情况下,可以为所述虚拟音源设置与所述目标位置中的任意一个位置相同的位置数据。

具体地,若目标环境边界上存在两个或多个与角色距离最近的点,且这两个或多个点与角色之间的距离相等,则这两个或多个距离角色最近的点的位置均为目标位置,由于角色与上述两个或多个目标位置之间的距离是相等的,所以可以为虚拟音源设置与其中任意一个目标位置的位置相同的位置数据,在这种情况下,目标位置选择的不同不会影响最终呈现出的声音效果。

例如,假设目标环境边界为“凹”字型边界,且所述“凹”字形边界存在一条可将所述“凹”字形边界平均分为两部分的隐形中线,在角色移动至所述“凹”字型边界的内凹区域中的隐形中线上的情况下,目标环境边界上即存在两个或多个与角色距离最近的点,所述目标环境上的两个或多个与角色距离最近的点的位置均为目标位置,任意选取其中一个目标位置,并为虚拟音源设置与该目标位置的位置相同的位置数据。

步骤S230:根据所述虚拟音源的位置数据设置虚拟音源。

具体地,虚拟音源可以是虚拟游戏场景中的音色资源,虚拟音源的声音的类别包括多种,如可以是风声、雨声、雷声等,也可以是风声、雨声、雷声的混合声音,可以根据目标环境及游戏场景确定,本申请对此不做限制。

例如,若目标环境为草坪,则虚拟音源的声音可以包括虫鸣声、嬉闹声等等,在具体游戏场景为荒凉的草坪的情况下,虚拟音源的声音可以是虫鸣声,在具体游戏场景为适宜踏青、野炊的草坪的情况下,虚拟音源的声音可以是虫鸣声、笑声、嬉闹声、话语声的混合声音;若目标环境为海洋,则虚拟音源可以包括风声、海浪声等等,在具体游戏场景为晴空万里的海洋的情况下,虚拟音源的声音可以是海浪声、轮船笛声等等,也可以是包括海浪声和轮船笛声的混合声音,在具体游戏场景为电闪雷鸣的海洋的情况下,虚拟音源的声音可以包括雷声、风声和海浪声等的混合声音。

若目标环境为火车站,虚拟音源的声音可以是话语声、鸣笛声、广播声等等,在具体游戏场景为暂无火车到站的火车站时,虚拟音源的声音可以包括商贩叫卖声、人群话语声和车站广播声,且上述商贩叫卖声、人群话语声和车站广播声各自在该虚拟音源的声音中的音量占比可以根据实际需求确定,如车站广播声在虚拟音源的声音中的音量占比为40%,商贩叫卖声和人群话语声在虚拟音源中的音量占比均为30%,本申请对此不做限制。

虚拟音源的位置数据可以包括一个或多个,虚拟音源同样地可以包括一个或多个,可以视具体情况确定,本申请对此不做限制。

下面结合具体的例子对上述实施例作进一步的说明。

例如,假设在角色进入游戏场景中时,获得初始角色位置,在初始角色位置为游戏界面的中心的情况下,游戏界面上还包括有小溪、牧场、竹林和花田四个环境区域,则小溪环境区域、牧场环境区域、竹林环境区域和花田环境区域均为目标环境区域,小溪环境区域的边界、牧场环境区域的边界、竹林环境区域的边界和花田环境区域的边界均为目标环境边界。

假设以初始角色位置坐标原点建立二维坐标系,并以坐标的形式表示提取到的每一个目标环境边界及不同帧数的角色位置,每帧获取一次目标环境边界和角色位置,假设在第10帧获取到的角色位置为(x10,y10),且(x10,y10)位于牧场环境区域的边界内,则在第10帧虚拟音源的位置数据为(x10,y10),且虚拟音源播放牧场环境区域的牛叫声和羊叫声。假设在第12帧获取到的角色位置为(x12,y12),且(x12,y12)仍然位于牧场环境区域的边界内,则在第12帧虚拟音源的位置数据更新为(x12,y12),且虚拟音源依然播放牧场环境区域的牛叫声和羊叫声。

假设在第15帧获取到的角色位置为(x15,y15),(x15,y15)未在任何一个目标环境中,分别计算角色位置(x15,y15)与每一个目标环境之间的最短距离,得到角色位置(x15,y15)与牧场环境区域边界上的点a(xa,ya)距离最短,则更新虚拟音源设置的位置数据为(xa,ya),且虚拟音源播放牧场环境区域的牛叫声和羊叫声。假设在第18帧获取到的角色位置为(x18,y18),(x18,y18)未在任何一个目标环境中,分别计算角色位置(x18,y18)与每一个目标环境之间的最短距离,得到角色位置(x18,y18)与牧场环境区域边界上的点b(xb,yb)距离最短,则更新虚拟音源设置的位置数据为(xb,yb),且虚拟音源依然播放牧场环境区域的牛叫声和羊叫声。

假设在第22帧获取到的角色位置为(x22,y22),(x22,y22)未在任何一个目标环境中,分别计算角色位置(x22,y22)与每一个目标环境之间的最短距离,得到角色位置(x22,y22)与小溪环境区域边界上的点c(xc,yc)和点d(xd,yd)之间的距离最短,且角色位置(x22,y22)与点c(xc,yc)之间的距离及角色位置(x22,y22)与点d(xd,yd)之间的距离相等,则可以更新虚拟音源的位置数据为(xc,yc)或(xd,yd),且虚拟音源播放小溪环境区域的流水声。

假设在第30帧获取到的角色位置为(x30,y30),(x30,y30)未在任何一个目标环境中,分别计算角色位置(x30,y30)与每一个目标环境之间的最短距离,得到角色位置(x30,y30)与小溪环境区域边界上的点e(xe,ye)及花田环境区域边界上的点f(xf,yf)之间的距离最短,且角色位置(x30,y30)与小溪环境区域边界上的点e(xe,ye)之间的距离及角色位置(x30,y30)与花田环境区域边界上的点f(xf,yf)之间的距离相等,则在小溪环境区域边界上的点e(xe,ye)和花田环境区域边界上的点f(xf,yf)处分别设置虚拟音源同时播放,且点e(xe,ye)处的虚拟音源播放小溪环境区域的流水声,点f(xf,yf)处的虚拟音源播放花田环境区域的鸟鸣声。

假设在第36帧获取到的角色位置为(x36,y36),(x36,y36)未在任何一个目标环境中,分别计算角色位置(x36,y36)与每一个目标环境之间的最短距离,得到角色位置(x36,y36)与竹林环境区域边界上的点g(xg,yg)、点h(xh,yh)及花田环境区域边界上的点i(xi,yi)之间的距离最短,且角色位置(x36,y36)与竹林环境区域边界上的点g(xg,yg)、点h(xh,yh)之间的距离及角色位置(x36,y36)与花田环境区域边界上的点i(xi,yi)之间的距离相等,则在竹林环境区域边界上的点g(xg,yg)或点h(xh,yh)处设置一个虚拟音源,在花田环境区域边界上的点i(xi,yi)处设置一个虚拟音源,两处虚拟音源同时播放,且点g(xg,yg)或点h(xh,yh)处的虚拟音源播放竹林环境区域的风声,点i(xi,yi)处的虚拟音源播放花田环境区域的鸟鸣声。

本申请一实施例所述的虚拟环境中的音源设置方法,在角色位于目标环境区域内的情况下,虚拟音源的位置与角色位置相同,并随着角色的移动而移动,在角色位于目标环境外的情况下,虚拟音源的位置为目标环境边界上距离角色位置最近的点的位置,并随着角色的移动而移动,可以有效保证虚拟音源声音的连续性及清楚程度,避免因角色的移动而距离虚拟音源的位置过远,导致的虚拟音源声音断断续续或不清楚,提高场景中虚拟音源的细腻性及真实度,增强玩家体验感。

如图3所示,图3示出了根据本申请一实施例的虚拟环境中的音源设置方法的示意性流程图,包括步骤S310~步骤S340。

步骤S310:建立目标环境模型。

目标环境可以是所关注的虚拟场景中的各种环境区域,如森林、湖泊、海洋、街道、市场、酒吧等,本申请对此不做限制。可以选用如3D max的各种工具建立目标环境模型,本申请对此不做限制。

步骤S320:根据所述目标环境模型获取目标环境边界和角色位置。

根据目标环境模型获取目标环境边界的方法可以是如边缘提取的各种方法,本申请对此不做限制。

步骤S330:基于所述目标环境边界和所述角色位置,判断角色是否处于目标环境中。若是,则执行步骤S331,若否,则执行步骤S332。

步骤S331:为虚拟音源设置与所述角色相同的位置数据。在为虚拟音源设置与所述角色相同的位置数据之后,继续执行步骤S340。

步骤S332:计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。在为所述虚拟音源设置位置数据之后,继续执行步骤S340。

进一步地,计算所述角色与所述目标环境边界之间的最短距离。

基于计算得到的最短距离,获得所述目标环境边界上距离所述角色最近的目标位置。

将所述目标位置设置为所述模拟音源的位置数据。

在所述目标位置包括两个或两个以上位置的情况下,还可以将所述目标环境边界进行转换,得到转换环境边界;计算所述角色与所述转换环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。

具体地,若有射线穿过目标环境模型与目标环境模型的目标环境边界产生数量多于两个的交点,则该目标环境模型为凹模型;若任意射线穿过目标环境模型与目标环境模型的目标环境边界仅产生两个交点,则该目标环境模型为凸模型。

在目标位置包括两个或两个以上位置的情况下,目标环境模型为凹模型,在确定虚拟音源的位置数据时,可以通过凹模型和凸模型之间的转换,以获得唯一得到目标位置。可以将目标环境模型转换为凸模型,并通过边缘提取等方法提取转换为凸模型后的目标环境模型的边界,得到转换环境边界,计算角色与转换环境边界之间的距离,并为虚拟音源设置位置数据。其中,对于将凹模型转换为凸模型的方法,本申请不做限制。计算角色与转换边界之间距离的方法可以包括多种,参考上述步骤S220,在此不再赘述。

进一步地,计算所述角色与所述转换环境边界之间的最短距离;基于计算得到的最短距离,获得所述转换环境边界上距离所述角色最近的位置;将所述转换环境边界上距离所述角色最近的位置设置为所述模拟音源的位置数据。

计算角色与转换环境边界之间的最短距离的方法包括多种,可以参考上述步骤S220,在此不再赘述。

例如,假设对目标环境模型进行边缘提取后,得到底部闭合的M型目标环境边界,在角色处于目标环境边界内的情况下,为虚拟音源配置与角色位置相同的位置数据,在角色处于目标环境边界外的情况下,计算角色与目标环境边界之间的最短距离,由于在横向射线穿过该目标环境边界的情况下,横向射线与该目标环境边界之间存在数量多于两个的交点,该目标环境模型为凹模型,将该目标环境模型进行转换,得到凸模型,假设对转换后的目标环境模型进行边缘提取,得到转换环境边界为长方形,则计算角色与长方形的转换环境边界之间的最短距离,得到转换边界上距离角色最近的位置并未为虚拟音源配置位置数据。

步骤S340:根据所述虚拟音源的位置数据设置虚拟音源。

虚拟音源的位置数据可以包括一个或多个,虚拟音源同样地可以包括一个或多个,可以视具体情况确定,可以参考上述步骤S230,在此不再赘述。

下面结合具体的例子对上述实施例进一步说明。

例如,假设在角色进入游戏场景中时,获得初始角色位置,在初始角色位置为游戏界面的中心的情况下,游戏界面上还包括有小吃街和酒吧两个环境区域,则小吃街环境区域和酒吧环境区域均为目标环境区域,小吃街环境区域的边界和酒吧环境区域的边界均为目标环境边界。

假设以初始角色位置坐标原点建立二维坐标系,并以坐标的形式表示提取到的每一个目标环境边界及不同帧数的角色位置,每帧获取一次目标环境边界和角色位置。

假设在第6帧获取到的角色位置为(x6,y6),(x6,y6)未在任何一个目标环境中,分别计算角色位置(x6,y6)与每一个目标环境之间的最短距离,得到角色位置(x6,y6)与酒吧环境区域边界上的点a(xa,ya)和点b(xb,yb)之间的距离最短,且角色位置(x6,y6)与点a(xa,ya)之间的距离及角色位置(x6,y6)与点b(xb,yb)之间的距离相等,则将酒吧环境模型进行转换,得到转换模型,并获取转换模型的边界,得到转换环境边界,计算角色位置(x6,y6)与转换环境边界之间的距离,得到角色位置(x6,y6)与转换环境边界上的点c(xc,yc)之间的距离最短,则设置虚拟音源的位置数据为点c(xc,yc),且虚拟音源播放酒吧环境区域的音乐声。

假设在第18帧获取到的角色位置为(x18,y18),(x18,y18)未在任何一个目标环境中,分别计算角色位置(x18,y18)与每一个目标环境之间的最短距离,得到角色位置(x18,y18)与酒吧环境区域边界上的点d(xd,yd)和点e(xe,ye)之间以及小吃街环境区域边界上的点q(xq,yq)的距离最短,且角色位置(x18,y18)与点d(xd,yd)之间的距离、与点e(xe,ye)之间的距离及与点q(xq,yq)之间的距离均相等,则将酒吧环境模型进行转换,得到转换模型,并获取转换模型的边界,得到转换环境边界,计算角色位置(x18,y18)与转换环境边界之间的距离,得到角色位置(x18,y18)与转换环境边界上的点f(xf,yf)之间的距离最短,则在酒吧环境区域的转换环境边界上的点f(xf,yf)处和小吃街环境区域边界上的点q(xq,yq)处分别设置虚拟音源同时播放,且酒吧环境区域的转换环境边界上的点f(xf,yf)处的虚拟音源播放酒吧环境区域的音乐声,小吃街环境区域边界上的点q(xq,yq)处的虚拟音源播放小吃街环境区域的叫卖声。

本申请一实施例所述的虚拟环境中的音源设置方法,在目标环境边界上存在两个或多个距离角色最近的位置的情况下,将目标环境模型及目标环境边界进行转换,以确定唯一一个距离角色最近的位置设置虚拟音源,可以有效提高虚拟音源位置的精确度,有效提高虚拟音源的声音效果,为玩家带来更佳的体验。

如图4所示,图4示出了本申请一实施例的虚拟环境中的音源设置装置的结构示意图。

一种虚拟环境中的音源设置装置,包括:

获取模块410,被配置为获取目标环境边界和角色位置。

判断模块420,被配置为基于所述目标环境边界和所述角色位置,判断角色是否处于目标环境中。

若所述角色处于所述目标环境中,则为虚拟音源设置与所述角色相同的位置数据。

若所述角色不处于所述目标环境中,则计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。

设置模块430,被配置为根据所述虚拟音源的位置数据设置虚拟音源。

可选地,所述虚拟环境中的音源设置装置,还包括:

建立模块,被配置为建立目标环境模型。

所述获取模块410具体被配置为:根据所述目标环境模型获取目标环境边界。

根据所述目标环境模型获取目标环境边界。

可选地,所述获取模块410,进一步被配置为:

根据预设的时间间隔定时获取目标环境边界和角色位置。

可选地,所述计算模块,进一步被配置为:

计算所述角色与所述目标环境边界之间的最短距离。

基于计算得到的最短距离,获得所述目标环境边界上距离所述角色最近的目标位置。

将所述目标位置设置为所述模拟音源的位置数据。

可选地,所述计算模块,进一步被配置为:

在所述目标位置包括两个或两个以上位置的情况下,为所述虚拟音源设置与所述目标位置中的任意一个位置相同的位置数据。

可选地,所述计算模块,进一步被配置为:

在所述目标位置包括两个或两个以上位置的情况下,将所述目标环境边界进行转换,得到转换环境边界。

计算所述角色与所述转换环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。

可选地,所述计算模块,进一步被配置为:

计算所述角色与所述转换环境边界之间的最短距离。

基于计算得到的最短距离,获得所述转换环境边界上距离所述角色最近的位置。

将所述转换环境边界上距离所述角色最近的位置设置为所述模拟音源的位置数据。

本申请一实施例所述的虚拟环境中的音源设置装置,可以有效降低虚拟音源对系统计算的消耗,大幅提高游戏性能。

本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现以下步骤:

获取目标环境边界和角色位置。

基于所述目标环境边界和所述角色位置,判断角色是否处于目标环境中。

若所述角色处于所述目标环境中,则为虚拟音源设置与所述角色相同的位置数据。

若所述角色不处于所述目标环境中,则计算所述角色与所述目标环境边界之间的距离,并基于计算得到的距离为所述虚拟音源设置位置数据。

根据所述虚拟音源的位置数据设置虚拟音源。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如所述虚拟环境中的音源设置方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的虚拟环境中的音源设置方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述虚拟环境中的音源设置方法的技术方案的描述。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:游戏中虚拟物品的发放控制方法、装置和电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类