跳转到内容
CRUSHFORMV1.1.0
在 Fab 上获取

参考组件

UCFEngineAudioComponent

模块CrushformEngine头文件CFEngineAudioComponent.h父类USceneComponent

蓝图:Crushform Engine Audio

发动机的声音:UCFEngineSoundProfile 的循环声按发动机转速交叉淡入淡出并调整音调,负载时更响;发动机转动时有起动机声,启动时有上升声,停止时有淡出声和关机声。发动机的状态来自拥有者的 ICFEngineHost(显式指定的宿主,否则为 UCFHostRegistry::FindHost),每帧读取一次。每个声音由其自身的 UAudioComponent 在此组件之下播放,因此该组件会跟随发动机所在的位置。状态切换每帧依据宿主的状态进行,而非依据事件,因此在听者听不到的距离外启动或停止的发动机,会在听者返回时以其当前状态播放。仅用于表现:在专用服务器上闲置。

函数

AUTHORITY · 服务器,每个端LOCAL · 本机PURE · 只读
bool IsActiveForNetMode(ENetMode NetMode)
C++ ONLY

仅在专用服务器上为 false,因为专用服务器上没有可以听到发动机声音的听者。

void SetCrushformHost(UObject* NewHost)
C++ ONLY

设置为拥有者响应 ICFEngineHost 的对象;为 null 时表示使用注册表中该拥有者对应的宿主。须在 BeginPlay 之前调用:之后的调用,或未实现 ICFEngineHost 的对象,都会被拒绝并输出一条日志。

UObject* GetCrushformHost() const
PUREC++ ONLY

显式指定的宿主;否则为 UCFHostRegistry::FindHost(Owner, UCFEngineHost)。

void SetCabinMuffling(bool bInMuffled, float InVolumeScale, float InLowPassFrequency)

为驾驶室内的听者减弱发动机声(听者进入或离开时,UCFVehicleAdapterComponent::SetCabinMuffled 会调用本函数)。InVolumeScale 被限制在 0..1 之间,在减弱期间与音量相乘;InLowPassFrequency 为截止频率,单位 Hz。音量在下一次 tick 时跟随变化,低通滤波则立即生效。

分类
Crushform|Engine Sound
bool IsCabinMuffled() const
PURE

发动机声是否针对驾驶室内的听者减弱。

分类
Crushform|Engine Sound
float GetCabinVolumeScale() const
PUREC++ ONLY

SetCabinMuffling 最近一次设置的音量比例和低通频率。

float GetCabinLowPassFrequency() const
PUREC++ ONLY

SetCabinMuffling 最近一次设置的低通截止频率,单位 Hz。

const UCFEngineSoundProfile* GetActiveProfile() const
PUREC++ ONLY

正在使用的配置文件:Profile,否则为 UCFEngineSettings::DefaultProfile。在 BeginPlay 之前以及声音关闭时为 null。

int32 GetNumLayers() const
PUREC++ ONLY

按播放顺序排列的循环音:配置文件中有声音的各层,按 RPM 排序。

float GetLayerRPM(int32 LayerIndex) const
PUREC++ ONLY

按播放顺序排列的某个循环音所记录的发动机转速,单位 RPM;索引超出范围时为 0。

UAudioComponent* GetLayerAudio(int32 LayerIndex) const
PUREC++ ONLY

播放某一个循环音的音频组件;在该循环音首次被听到之前,或索引超出范围时,为 nullptr。

UAudioComponent* GetStarterAudio() const
PUREC++ ONLY

启动音和熄火音的音频组件;在首次播放之前为 nullptr。

bool IsStarterPlaying() const
PUREC++ ONLY

启动音是否应当播放:发动机正在摇转,且配置文件中设置了启动音。

int32 GetShutdownPlayCount() const
PUREC++ ONLY

熄火音被启动的次数。

float GetHeardRPM() const
PUREC++ ONLY

听到的发动机转速,单位 RPM。

float GetHeardLoad() const
PUREC++ ONLY

听到的负载,0..1。

float GetRunLevel() const
PUREC++ ONLY

循环音的渐入程度:0 为静音,1 为正常播放。

void SetAudibilityOverrideForTest(TOptional<bool> InOverride)
C++ ONLY

仅用于测试。未设置覆盖时恢复真实检查;设置之后,则由该覆盖回答听者是否在范围内的问题。

属性

TObjectPtr<UCFEngineSoundProfile> Profile

发动机的声音;为空时使用 Project Settings > Plugins > Crushform Engine > Default Profile。在 BeginPlay 中读取。

分类
Crushform|Engine Sound