【Godot4自学手册】第三十八节给游戏添加音效

今天,我的主要任务就是给游戏添加音效。在添加音效前,我们需要了解一个东西:音频总线。这个东西或许有些枯燥,如果你只为添加一个音效没必要了解太多,但如果你以后将要经常与音频播放打交道,还是要了解一下的。

一. 音频总线

音频总线(也称音频通道)是音频从扬声器播放出来之前通过的地方,你可以在Godot编辑器的底部面板中找到它。Godot的音频处理代码是为了游戏而写的, 以达到性能和音质之间的最佳平衡。Godot的音频引擎允许创建任意数量的音频总线, 并且可以向每个总线添加任意数量的效果处理器. 运行游戏的设备的硬件会限制总线的数量, 以及在性能开始下降之前可以使用的效果。音频总线有一个VU表(音频播放时亮起的条形),表示通过的声音信号的大小。
请添加图片描述

最左边的总线是主总线,它负责将混音输出到你的扬声器,注意:主总线中混音水平的音频分贝(dB)应永远低于 0 dB,否则会产生一种叫做“削波”的失真。这是声音硬件的限制,并不是人为规定的。其余的音频总线可以灵活地进行路由. 在修改声音后, 它们会将其发送到左边的另一条总线上. 非主总线的目标总线可以被单独设置. 而右侧总线的音频会被路由至左侧总线, 这避免了无限循环。
请添加图片描述
在上图中, Bus 2 的输出被路由到了 总线.
godot为我们内置了一些音频特效,我们可以直接添加特效,在音频总线
的下方有个添加特效按钮,单击选择即可。
请添加图片描述

音频总线可以包含各种效果. 这些效果以某种方式修改声音并按顺序应用,有关每种效果效果的作用的信息,请参见Godot官方的 音频特效。

二、添加音效

我们以给主人公的挥剑动作添加上音效为例,来完成音效的操作。
第一步首先进入Player场景,然后单击添加子节点按钮,在创建节点对话框中选择AudioSteamPlayer节点,重命名为Audio。
请添加图片描述

这里注意,如果你需要按照节点坐标在不同声道发出声音,做出实时环绕的效果,那就用AudioStreamPlayer2D或AudioStreamPlayer3D节点。
第二步将准备好的音效素材拖到Godot的文件面板中,再将其拖拽到检查器中AudioStreamPlayer节点的Stream属性里。
请添加图片描述

完成之后,可以修改下面的属性来将音频调到合适状态。以下是该节点主要的属性及其功能,不过挥剑音效,我们不需要进行任何设置:

Bus属性:设置播放这段音频的总线
Playing属性:可以令它播放音频
Autoplay属性:令其在加入场景树(该场景开始运行)的时候自动开始播放音 
频
StreamPaused属性:可以令其暂停播放音频,关闭该属性后继续播放
MixTarget属性:设置音频在哪个声道播放,有三个属性,分别表示:在第一个
通道播放,在所有通道播放,以及在第二个通道播放

第三步在Player场景跟节点的代码中,顶部添加如下代码:

@onready var audio = $Audio  #获取声音节点

在sword_state函数中播放动画代码后面添加如下一行代码:

audio.play()

这是,该函数的代码如下:

func sword_state():#进攻状态anima_tree["parameters/playback"].travel("Sword")audio.play()await anima_tree.animation_finished	state=IDLE

这样,挥剑操作就添加上了音效。同理,我们给宝箱打开和钥匙收集均添加上音效代码。需要源代码和音效的同学,请单击上方的源代码获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

政安晨:【深度学习神经网络基础】(十三)—— 卷积神经网络

目录 概述 LeNet-5 卷积层 最大池层 稠密层 针对MNIST数据集的卷积神经网络 总之 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎…

ReentrantLock 源码解析

ReentrantLock 源码解析 文章目录 ReentrantLock 源码解析前言一、字段分析二、内部类分析1、Sync2、FairSync3、NonfairSync 三、方法分析1、构造方法2、其他方法 总结 前言 ReentrantLock 实现了 Lock 接口,内部基于 AQS 实现。所以想要弄懂 ReentrantLock &#…

vue 实现左侧导航栏,右侧锚点定位滚动到指定位置(超简单方法)

项目截图: 实现方法: 点击左侧菜单根据元素id定位到可视内容区域。 浏览器原生提供了一种方法scrollIntoView 。 通过scrollIntoView方法可以把元素滚动到可视区域内。 behavior: "smooth"是指定滚动方式为平滑效果。 具体代码如下&#xf…

使用 PhpMyAdmin 安装 LAMP 服务器

使用 PhpMyAdmin 安装 LAMP 服务器非常简单。按照下面所示的步骤,我们将拥有一个完全可运行的 LAMP 服务器(Linux、Apache、MySQL/MariaDB 和 PHP)。 什么是 LAMP 服务器? LAMP 代表 Linux、Apache、MySQL 和 PHP。它们共同提供…

智能化安全防护:AI防火墙的原理与应用

随着人工智能技术的迅猛发展,其在各个领域的应用也日益广泛。作为引领数字化转型的重要力量,AI技术为我们的生活和工作带来了前所未有的便利与效率。在通信领域,人工智能的应用同样展现出了巨大的潜力和价值,特别是在网络安全防护…

HTTP/1.1,HTTP/2.0和HTTP/3.0 各版本协议的详解(2024-04-24)

1、HTTP介绍 HTTP 协议有多个版本,目前广泛使用的是 HTTP/1.1 和 HTTP/2,以及正在逐步推广的 HTTP/3。 HTTP/1.1:支持持久连接,允许多个请求/响应通过同一个 TCP 连接传输,减少了建立和关闭连接的消耗。 HTTP/2&#…

基于PaddlePaddle平台训练物体分类——猫狗分类

学习目标: 在百度的PaddlePaddle平台训练自己需要的模型,以训练一个猫狗分类模型为例 PaddlePaddle平台: 飞桨(PaddlePaddle)是百度开发的深度学习平台,具有动静统一框架、端到端开发套件等特性&#xf…

node.js 解析post请求 方法一

前提:依旧以前面发的node.js服务器动态资源处理代码 具体见 http://t.csdnimg.cn/TSNW9为模板,在这基础上进行修改。与动态资源处理代码不同的是,这次的用户信息我们借用表单来实现。post请求解析来获取和展示用户表单填写信息 1》代码难点&…

【项目实战】基于高并发服务器的搜索引擎

【项目实战】基于高并发服务器的搜索引擎 目录 【项目实战】基于高并发服务器的搜索引擎搜索引擎部分代码index.htmlindex.hpplog.hppparser.cc(用于对网页的html文件切分且存储索引关系)searcher.hpputil.hpphttp_server.cc(用于启动服务器和…

WPForms Pro插件下载:简化您的在线表单构建,提升用户互动

在当今的数字化世界中,表单是网站与用户互动的关键。无论是收集信息、处理订单还是进行调查,一个好的表单可以极大地提升用户体验和转化率。WPForms Pro插件,作为一款专业的WordPress表单构建工具,旨在帮助您轻松创建美观、功能强…

深度学习基础:循环神经网络中的Dropout

深度学习基础:循环神经网络中的Dropout 在深度学习中,过拟合是一个常见的问题,特别是在循环神经网络(RNN)等复杂模型中。为了应对过拟合问题,研究者们提出了许多方法,其中一种被广泛应用的方法…

TensorFlow进阶一(张量的范数、最值、均值、和函数、张量的比较)

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

短视频评论ID批量爬虫提取获客软件|视频评论下载采集工具

短视频评论批量抓取软件:智能拓客,精准抓取用户反馈 主要功能一览 1. 智能抓取任务创建: 软件提供了任务创建功能,用户只需输入任务名称、搜索关键词以及评论监控词,即可开始智能抓取。不仅能够搜索关键词匹配的视频…

Gradio 最快创建Web 界面部署到服务器并演示机器学习模型,本文提供教学案例以及部署方法,避免使用繁琐的django

最近学习hugging face里面的物体检测模型,发现一个方便快捷的工具! Gradio 是通过友好的 Web 界面演示机器学习模型的最快方式,以便任何人都可以在任何地方使用它! 一、核心优势: 使用这个开发这种演示机器学习模型的…

就业班 第三阶段(负载均衡) 2401--4.19 day3

二、企业 keepalived 高可用项目实战 1、Keepalived VRRP 介绍 keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。 ​ keepalived工作原理keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundan…

前端开发攻略---封装calendar日历组件,实现日期多选。可根据您的需求任意调整,可玩性强。

1、演示 2、简介 1、该日历组件是纯手搓出来的,没依赖任何组件库,因此您可以随意又轻松的改变代码,以实现您的需求。 2、代码清爽干净,逻辑精妙,您可以好好品尝。 3、好戏开场。 3、代码(Vue3写法&#xff…

探索Web3:去中心化的互联网新时代

引言 在过去的几十年里,互联网已经改变了我们的生活方式、商业模式以及社交互动方式。然而,一个新的技术浪潮——Web3正在崭露头角,预示着一个去中心化的互联网新时代的来临。本文将深入探讨Web3技术的定义、特点以及其对未来互联网发展的影…

【数据结构-图】

目录 1 图2 图的定义和基本概念(在简单图范围内)3 图的类型定义4 图的存储结构4.1 邻接矩阵 表示法4.2 邻接表 表示法4.3 十字链表 表示法4.4 邻接多重表 表示法 5 图的遍历5.1 深度优先搜索-DFS 及 广度优先遍历-BFS 6 图的应用6.1 最小生成树6.1.1 克鲁…

vue cli3开发自己的插件发布到npm

具体流程如下: 1、创建一个vue项目 vue create project 2、编写组件 (1)新建一个plugins文件夹(可自行创建) (2)新建Button组件 (3)组件挂载,为组件提供 in…

Python绘制3D曲面图

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 探索Python中绘制3D曲面图的艺术 在数据可视化的世界中,3D曲面图是一种强大的工…