![]() |
CriWare Unreal Engine
Plug-ins for CriWare solutions.
|
在实现河流等环境声音时,在放置音效时,通常会出现将声源放置在河流各处的情况。
在本文中,我们将介绍使用尽可能少的声源在广泛的区域中实现环境声音的功能。
CRIWARE UnrealEngine Plugin 提供了 MultiPositionComponent 作为用少量声源覆盖大范围区域的方法。
MultiPositionComponent 允许您为一个声源指定多个坐标,从而轻松实现用少量声音覆盖大范围的环境声音。
作为教程,以下是从多个位置播放波浪声音的步骤。
本教程中使用的声源是通过构建下面的 AtomCraftProject 生成的。
cri/Samples/CriWareShowroom/AtomCraftProject/CriWareShowRoom/CriWareShowRoom.atmcproject
构建产品存储在下面。
cri/Samples/CriWareShowroom/AtomCraftProject/CriWareShowRoom/PC
通过将文件夹中的以下文件拖放到内容浏览器中来导入它们。
即使您想要在广阔的区域(例如河流)听到音效,您首先需要将声源放置在水平位置。
通常,您会向 actor 添加 AtomComponent,指定要播放的音效,以及播放环境声音等。
但是,为了使指定区域能够听到音效,您可以添加 AtomMultiPositionComponent ,它扩展了 AtomComponent 的功能到 actor 等。需要指定您要播放的音效。
AtomMultiPositionComponent 的特点如下。
在附图中,放置了一个 Sphere 以便让 actor 更容易理解,我们将向该 actor添加一个 AtomMultiPositionComponent。
这次,AtomMultiPositionComponent 是从 Sphere actor 的 Detail 中添加的。
在 AtomMultiPositionComponent 设置项目中设置以下项目。
*也可以通过在 AttenuationSettings 中设置任意 AtomAttenuation 资源来实现。
有关详细的衰减设置,请参阅AtomModulation概述。
到目前为止,仅从指定的 Actor 位置听到音效。
下面,我们就来介绍扩大音效区域的步骤。
有三种方法可以指定声音实际播放的位置。
1.使用坐标 2.使用演员
从 Sphere actor 的 AtomMultiPositionComponent 设置项目中的 MultiPosition -> SourcePositions项目将坐标设置为您想要播放声音的位置。
在这里,我们设置了 14 个位置的坐标,这与使用 actor 确定在哪里播放声音的方法相同。
以上就是如何利用坐标来决定在哪里播放声音。
这样,设置了衰减的声音就会应用到所有设置的坐标上。
将任何 Actor 放置在您想要播放声音的位置。这里我们放置了 14 个 Cube Actor。
接下来,在 Sphere Actor 的 AtomMultiPositionComponent项目中设置您之前在 MultiPosition -> SourceActors 中放置的 Cube Actor。
上面是如何使用 Actor 来决定在哪里播放声音。
这样,设置了 Attenuation 的声音将应用到所有 Cube。
该方法可以与使用actor的方法结合使用。请按照上一节“如何使用 actor”中的步骤进行实施。
使用SceneComponent实现具有以下特点:可以通过与任何演员的相对位置来确定声源,并且通过对多个声源进行分组,可以更改位置以跟随父演员。
例如,这可以更轻松地实现演员中心(例如火炬)与您想要播放声音的位置不同的场景,或者实现环境声音(例如逼真的欢呼声)。
在下面的例子中,火炬 actor 的 actor 位置设置为树的中心,如果您想从火中发出噼啪声,这非常有用。
使用 SceneComponent 设置声源位置可以表达如下。
使用 BlueprintClass 的 SceneComponent。
仅SourceActor指定的Actor中通过下面描述的方法指定的SceneComponent才可以设置为声源位置。
首先,在内容浏览器中右键单击并创建一个 BlueprintClass。
接下来,将您之前在 Cube Details 中创建的 BlueprintClass 附加到 Sphere 的右侧。
最后,在 Sphere actor 的 AtomMultiPositionComponent 设置项目的 MultiPosition -> SourceComponentClass项目中设置您之前创建的 BlueprintClass。
以上是使用SceneComponent的应用方法。
这样,它将应用于 Sphere Actor 中设置的 SceneComponent 坐标。
此外,通过移动设置到Cube actor的SceneComponent的坐标,它可以用于各种表达。
【注意】
使用 SceneComponent 时,请注意SceneComponent 必须附加到所有想要播放声音的 actor。
例如,当所有 Cube Actor 都设置为 SourceActor 时,它将如下所示:
开始游戏并听声音。
您可以感觉到声音好像是从水面传来的。
通过设置 UseComponentPositionAsSource项目,您可以设置是否从自己的 Actor 播放声音。
通过在 AtomMultiPositionComponent 设置项目中设置 MultiPosition -> UseComponentPositionAsSource项目,您可以选择是否从 AtomMultiPositionComponent 所附加的 actor 的坐标处播放声音。
预设下,它是 true 并且声音将从 Sphere 播放。
THIS SERVICE MAY CONTAIN TRANSLATIONS POWERED BY GOOGLE. GOOGLE DISCLAIMS ALL WARRANTIES RELATED TO THE TRANSLATIONS, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF ACCURACY, RELIABILITY, AND ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.