Infernux 音频事件实战:新手也能上手的播放、空间音频与总线控制完整教程
游戏开发图形学3D渲染【免费下载链接】InfernuxBuilding a Neural Network-Native Engine (3N). Python authoring, C runtime, Vulkan/WebGPU. Windows, Linux, Android and Web.项目地址https://gitcode.com/gh_mirrors/in/Infernux点击查看免费下载 Infernux 是一款采用 Python 编写、C 运行时的神经原生游戏引擎支持 Windows、Linux、Android 与 Web 平台。本教程带你掌握 Infernux 音频事件的核心玩法如何用多轨AudioSource播放音乐、用池化一次性音效响应碰撞等游戏事件、用spatial_blend实现空间音频的距离衰减以及通过AudioEngine总线Music / SFX / UI 等做分组音量与淡入淡出控制。上图是 Infernux 编辑器的真实运行画面。你只需在 Hierarchy 中选好对象、在 Inspector 里添加音频组件再写少量脚本就能搭建一套完整的音频事件系统。一、先搞懂两个组件AudioSource 与 AudioListenerInfernux 的音频系统只有两个场景组件理解了它们就理解了 90% 的用法组件角色关键能力AudioSource音源嘴多轨播放、一次性音效池、空间衰减、输出总线AudioListener监听器耳朵提供声音参考位置场景中只保留一个启用的监听器AudioSource与很多引擎的一个组件绑一条音频不同它是多轨组件没有单一的clip属性而是先设置track_count1–16 条轨再对每条轨道分别分配音频与音量。所有轨道共享音源级的volume、pitch、mute、loop等设置每条轨道另有独立音量最终响度 源音量 × 轨道音量 × 总线增益。Python 侧的组件封装位于 audio_source.py类型声明可参考 audio_source.pyiC 运行时实现集中在 cpp/infernux/function/audio/ 目录含 AudioMixer.h 与 AudioEngine.cpp。二、音频播放快速上手四步播出第一段音乐 播放一段循环音乐只需要四步放入音频文件将music_loop.wav放到项目Assets/Audio目录。WAV、OGG/Vorbis、MP3、FLAC 均被运行时支持。长音乐建议在资产详情中将加载方式改为流式播放Streaming引擎会分段预读解码避免整首歌常驻内存短音效保持加载时解压即可。给玩家或任意对象添加AudioSource组件关闭Play On Awake由脚本在加载完成后启动播放。在脚本中加载并分配轨道import infernux as inx class MusicPlayer(inx.InxComponent): def start(self): source self.game_object.get_component(inx.AudioSource) music inx.AudioClip.load(Assets/Audio/music_loop.wav) source.track_count 1 source.set_track_clip(0, music) # 给轨道 0 分配音频 source.set_track_volume(0, 0.35) # 轨道音量 source.loop True source.play(0)验证进入 Play 模式轨道 0 状态应显示PlayingConsole 中无加载错误。 小贴士AudioClip.load()失败会返回None记得判空在音频仍被轨道使用时不要提前调用unload()否则可能出现无声或报错。三、音频事件实战让碰撞触发一击一响的音效游戏里最有价值的音频事件发生在状态变化的瞬间碰撞开始、按钮确认、目标完成。Infernux 为此提供了池化一次性播放play_one_shot(clip, volume_scale)——音源内部持有一组瞬时声部默认池大小one_shot_pool_size 8多次命中可以重叠播放既不创建临时 GameObject也不占用持续轨道。官方教程给出的核心原则是每个信号只发送一次反应有现成事件入口时直接用碰撞回调on_collision_enter()只在接触开始时触发是播放命中音效的正确位置而on_collision_stay()每个固定步都会触发在里面播音效会疯狂消耗声部池。只有连续状态时自己记录上一帧状态在边沿上触发一次def update(self, delta_time): is_complete self.objective_progress 1.0 if is_complete and not self._was_complete: self._source.play_one_shot(self._hit_clip, 0.9) # 只在完成瞬间响一次 self._was_complete is_complete像上图这类拾取金币场景正是play_one_shot的典型用例把 UI 确认声的priority设得更小0 为最高255 为最低再让 Button 与碰撞回调共用同一个公开的play_hit()方法音效、界面更新和玩法结果就都挂在了同一次状态变化上。四、空间音频spatial_blend 与距离衰减想让声音来自世界中的某个位置只需三个参数spatial_blend0表示纯 2D音乐、UI、屏幕中心音效保留原始立体声不受位置影响1表示 3D 点声源音量与声像会随玩家距离变化。min_distance/max_distance衰减区间的起点与终点。声音在min_distance以内保持原音量到max_distance处衰减为零。AudioListener3D 音频必须有一个活动的监听器通常挂在主相机上它决定玩家站在哪里听。排查3D 音效听不见时按顺序检查监听器是否存在且启用、spatial_blend是否为 1、音源是否落在衰减范围内、mute与总线是否静音。五、总线控制分组音量与一键淡出️ Infernux 内置了游戏音频常用的总线结构把source.output_bus设为Music、SFX、Ambience或UI再用Master统一控制全局。分组的好处是——退出关卡时把音乐淡出、保留环境音只改一行代码from Infernux.lib import AudioEngine # 音乐在一秒内淡出到 0由音频设备推进游戏卡顿也不会中断过渡 AudioEngine.instance().fade_bus_volume(Music, 0.0, 1.0)常用操作API说明总线淡入/淡出fade_bus_volume(name, vol, seconds)过渡在音频时钟上执行不依赖游戏帧率直接设音量set_bus_volume(name, vol)会取消该总线正在进行的淡变取消淡变cancel_bus_fade(name)保持当前音量总线静音set_bus_muted(name, bool)静音不暂停播放与淡变全局暂停pause_all()/resume_all()冻结/恢复整个音频时钟总线相关方法声明在 _Infernux.pyi。如果声音同时太多max_real_voices默认 64限制实际参与混音的声部数超额声音会转虚拟播放靠priority与有效音量决定谁保留——不必为每次点击都分配永久声部。六、常见错误速查访问source.clip没有这个属性请用set_track_clip(index, clip)分配编号轨道。在on_collision_stay()里播音效它每固定步触发会刷爆声部池改用on_collision_enter()。新音效总把旧音效顶掉按需调大one_shot_pool_size同时保留明确上限避免无限膨胀。运行时分配完音频后等play_on_awake自动播放自动播放只发生在组件启动阶段运行时分配后应显式play(0)。is_playing不代表所有声部它只报告轨道 0其他轨道请用is_track_playing(i)。七、延伸阅读与源码索引想完整复现本文示例建议阅读官方学习课程第 7 章 gameplay-audio-events.md含全部公开 API 表格与验证清单以及音频相关的运行时回归测试 AudioMixerTests.cpp 与 AudioClipTests.cpp。模块路径AudioSource Python 封装python/Infernux/components/builtin/audio_source.pyAudioClip 加载实现python/Infernux/core/audio_clip.pyAudioEngine / 总线 API 声明python/Infernux/lib/_Infernux.pyiC 音频核心cpp/infernux/function/audio/AudioEngine.cpp音频流式缓冲cpp/infernux/function/audio/AudioStreamBuffer.h从一条循环音乐到碰撞音效、3D 衰减和总线淡出这套多轨 一次性声部池 总线的组合足以支撑大多数 2D/3D 游戏的音频需求。把本文的步骤落到你的项目里玩家第一次撞墙时听到的那一声就是你的第一个音频事件。赞分享游戏开发图形学3D渲染【免费下载链接】InfernuxBuilding a Neural Network-Native Engine (3N). Python authoring, C runtime, Vulkan/WebGPU. Windows, Linux, Android and Web.项目地址https://gitcode.com/gh_mirrors/in/Infernux点击查看免费下载相关推荐ESP32音频播放完整实战新手也能快速搭建的智能音响系统ESP32音频播放完整实战新手也能快速搭建的智能音响系统 想要用ESP32打造属于自己的智能音响吗本指南将带你从零开始30分钟内完成硬件连接、软件配置和音音视频嵌入式Android音频转发神器sndcpy手机音频电脑播放的完整教程Android音频转发神器sndcpy手机音频电脑播放的完整教程 想要在电脑上享受手机音乐和视频的震撼音效吗sndcpy这款开源工具让Android音频转发音视频移动开发5分钟上手用Hammer.js打造手势控制的Web音频播放器5分钟上手用Hammer.js打造手势控制的Web音频播放器 你还在为手机上音频播放器的糟糕触控体验烦恼吗手指点不准小按钮、调节音量时频繁误触本文将带你用前端UI组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Docker部署Home Assistant:打造可迁移可回滚的本地智能家居中枢

Docker部署Home Assistant:打造可迁移可回滚的本地智能家居中枢

这套 Docker 部署 Home Assistant 的方案,我自己实际跑了两年多。中间主机换过一次,系统重装过三次,config目录整个拷过去,新环境里一条命令就能把整个智能家居中枢拉起来。这种“随便折腾、坏了也不心疼”的体验,是我…

2026/10/11 23:05:47 阅读更多 →
飞凡R7车规T-BOX拆解:通信链路与天线设计工程分析

飞凡R7车规T-BOX拆解:通信链路与天线设计工程分析

1. 从一块T-BOX说起:为什么值得拆智能网联汽车这几年最明显的变化,不是屏幕变大,而是车与外界"对话"的能力变强了。T-BOX(Telematics Box,远程信息处理终端)就是负责这场对话的核心部件之一。它藏…

2026/10/11 23:04:47 阅读更多 →
Android系统架构详解:分层结构、Binder与App启动流程

Android系统架构详解:分层结构、Binder与App启动流程

很多刚接触 Android 开发的同学,第一次看到官方文档里那张系统架构图的时候,内心基本都是崩溃的:一层套一层,满屏的缩写,每个框单独看都认识,拼在一起却完全不知道它们在干嘛。我自己当年从应用开发转向系统…

2026/10/11 23:04:47 阅读更多 →

最新新闻

文献综述降AI检测实操:嘎嘎降AI怎么用才不翻车

文献综述降AI检测实操:嘎嘎降AI怎么用才不翻车

写文献综述最怕的不是找不到文献,而是查重率和AI检测双重爆表。明明是自己认认真真读文献、总结观点写出来的内容,一提交就提示“AI疑似生成”,审稿人那边看一眼就皱眉头。我自己的硕士论文和后面帮学生改稿的经历里,最常被卡住的…

2026/10/11 23:51:55 阅读更多 →
OpenCV缺陷检测实战:从成像预处理到特征筛选的完整指南

OpenCV缺陷检测实战:从成像预处理到特征筛选的完整指南

简介:面向工业质检场景的OpenCV机器视觉缺陷检测与印刷检测资源,聚焦产品表面划痕、裂纹、污渍等缺陷识别,以及印刷品文字清晰度、色彩一致性和套准精度检测,适合机器视觉初学者、算法工程师及产线质检人员快速理解检测流程并落地…

2026/10/11 23:51:55 阅读更多 →
SciPy稀疏矩阵实战:从格式选型到性能优化,告别内存爆炸

SciPy稀疏矩阵实战:从格式选型到性能优化,告别内存爆炸

做数据密集型任务的人迟早会碰到同一个问题:矩阵太大,内存装不下,计算还慢得离谱。我最早遇到这个状况,是在构建用户行为特征矩阵的时候——几百万行、几千万列,如果老老实实用 NumPy 的稠密二维数组存,光一…

2026/10/11 23:51:55 阅读更多 →
铁律军令输出风格全解:ccg-workflow 的命令式 AI 输出规范与一键安装指南

铁律军令输出风格全解:ccg-workflow 的命令式 AI 输出规范与一键安装指南

人工智能AI 应用开发工具CLIAI Agentdsh-pluginDeepSeek 【免费下载链接】ccg-workflow 多模型协作开发系统 - Claude 编排 Codex 后端 Gemini 前端,28 个命令覆盖开发全流程,一键安装零配置 项目地址: https://gitcode.com/fengshao1227/c…

2026/10/11 23:51:55 阅读更多 →
Word转Markdown保留图片与格式:Pandoc实战指南

Word转Markdown保留图片与格式:Pandoc实战指南

1. Word 转 Markdown 的难点:格式迁移的本质是保留“文档骨架”做内容迁移的朋友应该都有感触:Word 文档躺在本地盘里时没什么存在感,一旦你想把它挪进博客、知识库、Wiki 或者 Git 仓库,问题就来了——Markdown 是纯文本标记语言…

2026/10/11 23:51:55 阅读更多 →
无人机航拍三维重建:端到端可复现的工程级NeRF流水线

无人机航拍三维重建:端到端可复现的工程级NeRF流水线

简介:本资源是一套面向计算机、人工智能、测绘及自动化等专业学生的三维视觉实践项目,聚焦无人机航拍图像驱动的三维场景重建全流程实现。内容涵盖数据采集规范、COLMAP位姿估计、BehindtheScenes深度图生成、NeRF类模型训练与评估,完整支撑毕…

2026/10/11 23:50:54 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →