Godot-StartUP

创建于:2018-07-28

创建人: Justus

44 信息 140 成员
讨论基于Godot以及Unity引擎的游戏开发经验,理论和最佳实践。共享一些通用思路以启发另一种生产工具中的实践。独立开发群QQ: 122017359

Godot中的分贝和音量换算

logoss 2018-08-16

Godot中不管是音频播放器还是音频总线都是用分贝来表示音量大小的,如图

Image title

Image title

我们希望能用0-1来表示音量大小,如何转换呢?

我们用v表示音量大小(0-1),以下是转换公式

V转换成volume_db的公式:

volume_db=10*log(v)/log(10)

但是log的参数必须是大于0的,我们要做一下特殊判断,最终公式为:

If v<=0:

volume_db=-60

else:

volume_db=10*log(v)/log(10)

Volume_db只要不大于-60,系统就不会发出声音了。这个在设置里可以设定不发出声音的临界值,默认是-60,所以这里就让volume_db=-60。

Image title

一般我们会用全局变量来保存v的值,不需要用volume_db转v的公式,不过还是说一下

volume_db转换成v,公式是:

v=pow(10,(float(volume_db)/10))

注意里面的float(),这里我额外说一下Godot里计算的坑。

举例:

var a=1

print(a/10)

输出结果为0,因为a是整数,计算结果默认取整了。

如果加上float先把a变成浮点数:

Var a=1

print(float(a)/10)

输出结果就是0.1。

(转发自:原日志地址
 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册