文档章节

《Genesis-3D游戏引擎系列教程-高级篇》1:后期效果

Genesis-3D
 Genesis-3D
发布于 2014/01/24 18:53
字数 907
阅读 100
收藏 0

注:本系列进阶教程仅针对引擎编辑器:v1.2.2及以下版本

音频处理

素材资源    工程文件

声音是游戏中非常重要的组成部分,Genesis-3D提供了多样的声音特效处理方式,方便用户制作丰富多彩的声音效果。本例从基本音频属性、混音过滤器、音频监听器等方面展示音频处理效果;实现播放3D声音,场景内主角行走触发切换混音过滤器,用户输入空格切换音频监听器等功能。

混音过滤器:对3D声音数据进行特殊处理以模拟现实世界中环境音效的处理器,类似于现实世界中的调音台;

音频监听器:虚拟的三维场景中用来收听声音的接收器,类似于现实世界中人的耳朵。

1. 实现键盘输入控制人物行走。

2. 创建声音。

3. 为声音添加音源。

4. 设置音源基本属性。

音量:取值区间[0, 1],0静音,1最大

声音类型:选择2D类型时,监听器收听的声音从始至终保持一致;当选择3D类型时,监听器接收到的声音大小会根据其与音源之间的距离来判定,所以衰减方式、最小距离、最大距离属性只适用于3D类型。

衰减方式:线性:按照线性函数衰减,衰减较慢;倒数:按照倒数函数曲线衰减,衰减速度居中; 平方线性:按照平方倒数函数曲线衰减,衰减最快;

最小距离:在最小距离内音量保持初始值,不衰减

最大距离:超出最大距离后,音量一直保持最大距离时的数值,不再衰减

最大距离:超出最大距离后,音量一直保持最大距离时的数值,不再衰减

5. 添加音频监听器,默认情况下只需要在摄像机上添加一个音频监听器,本例中又在远处添加一个音频监听器,用于演示音频监听器的切换效果。

6. 编写脚本,实现根据场景内主角X坐标切换引擎内置混音过滤器,用户输入空格切换音频监听器等功能。

01 public class Sound : ScriptableClass
02     {
03         private const int CHANGE_DISTANCE = 50;
04  
05         public override void OnLoad()
06         {
07             //播放音频
08             Owner.GetComponent< SoundSource>().Play();
09  
10             //添加音频混音过滤器组件
11             Owner.AddComponent< SoundReverbFilterComponent>();
12  
13             //激活混音过滤器
14             Owner.GetComponent< SoundReverbFilterComponent>().Attach();
15         }
16  
17         public override void OnFrame()
18         {
19             //根据场景内主角X坐标切换引擎内置混音过滤器
20             float fPlayerPostionX = Player.Instance.PlayerPostion.X;
21             if (CHANGE_DISTANCE > fPlayerPostionX)
22             {
23                 Owner.GetComponent< SoundReverbFilterComponent>().ReverbMode = SoundReverbFilterComponent.SoundReverbMode.OFF;
24             }
25             else if ((2 * CHANGE_DISTANCE) > fPlayerPostionX)
26             {
27                 Owner.GetComponent< SoundReverbFilterComponent>().ReverbMode = SoundReverbFilterComponent.SoundReverbMode.BATHROOM;
28             }
29             else if ((3 * CHANGE_DISTANCE) > fPlayerPostionX)
30             {
31                 Owner.GetComponent< SoundReverbFilterComponent>().ReverbMode = SoundReverbFilterComponent.SoundReverbMode.STONECORRIDOR;
32             }
33             else if ((4 * CHANGE_DISTANCE) > fPlayerPostionX)
34             {
35                 Owner.GetComponent< SoundReverbFilterComponent>().ReverbMode = SoundReverbFilterComponent.SoundReverbMode.FOREST;
36             }
37             else if ((5 * CHANGE_DISTANCE) > fPlayerPostionX)
38             {
39                 Owner.GetComponent< SoundReverbFilterComponent>().ReverbMode = SoundReverbFilterComponent.SoundReverbMode.PARKINGLOT;
40             }
41             else
42             {
43                 Owner.GetComponent< SoundReverbFilterComponent>().ReverbMode = SoundReverbFilterComponent.SoundReverbMode.UNDERWATER;
44             }
45  
46             //切换音频监听器
47             if (Input.KeyDown(Code.Space))
48             {
49                 Actor childActor = Owner.GetChild(0);
50                 if (!childActor.IsActive)
51                 {
52                     childActor.Active();
53                 }
54                 else
55                 {
56                     childActor.Deactive();
57                 }
58             }
59         }
60     }

7. 将脚本挂载到声音。

8. 运行工程,体验效果。



引擎官方网站:http://www.genesis-3d.com.cn/

官方论坛:http://bbs.9tech.cn/genesis-3d/

官方千人大群:59113309   135439306

YY频道-游戏开发大讲堂(完全免费,定期开课):51735288 

Genesis-3D开源游戏引擎:游戏起源,皆因有我!!!



© 著作权归作者所有

Genesis-3D
粉丝 12
博文 34
码字总数 33360
作品 0
佛山
私信 提问
《Genesis-3D游戏引擎系列教程-进阶篇》2:声音

注:本系列进阶教程仅针对引擎编辑器:v1.2.2及以下版本 声音 众所周知,声音系统是一个游戏中非常重要的组成部分,优秀的游戏音乐是许多玩家能够长时间享受其中的重要因素。因此,熟悉和使用...

Genesis-3D
2014/01/20
60
0
《Genesis-3D游戏引擎系列教程-入门篇》一:安装与创建工程

注:本系列入门教程仅针对引擎编辑器:v1.2.2及以下版本 1、安装编辑器 要使用Genesis-3D来制作游戏的第一步就是将Genesis-3D安装到您的计算机上。安装编辑器是一个很简单的过程,你可以简单...

Genesis-3D
2014/01/16
114
0
《Genesis-3D游戏引擎系列教程-入门篇》二:运行发布游戏

注:本系列入门教程仅针对引擎编辑器:v1.2.2及以下版本 游戏的发布与运行 本章工程下载 当我们使用Genesis-3D编辑器开发游戏的时候,经常想了解现阶段做的游戏是否能够达到我们心中的标准,...

Genesis-3D
2014/01/16
310
0
《Genesis-3D游戏引擎系列教程-进阶篇》9:动画融合

注:本系列进阶教程仅针对引擎编辑器:v1.2.2及以下版本 动画融合 素材资源 工程文件 在本实例中,我们分别制作了融合后的人物动画和未融合的人物动画,通过两者的对比,展示了Genesis-3D编辑...

Genesis-3D
2014/01/22
230
0
《Genesis-3D游戏引擎系列教程-进阶篇》1:物理

注:本系列进阶教程仅针对引擎编辑器:v1.2.2及以下版本 物理 资源下载 工程文件 物理组件是实现游戏功能的重要组成部分,Genesis-3D中三种物理组件刚体、碰撞器、角色控制器分别有其各自的作...

Genesis-3D
2014/01/20
508
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 磁盘不足异常

linux 报 No space left on device 异常 ,则是磁盘不足 ,导致异常 运行 df -h 命令查询磁盘使用率,如果有100%,则查找目录大日志文件删除 1.磁盘不足导致系统应用写入文件失败,如系统日志...

zaolonglei
33分钟前
3
0
即学即用的 30 段 Python 实用代码

☞ 分享:最全最新的Python学习大礼包 ☜ 点击查看 编译:Pita & AI开发者,作者:Fatos Morina Python是目前最流行的语言之一,它在数据科学、机器学习、web开发、脚本编写、自动化方面被许...

Object_Man
34分钟前
3
0
The server time zone value 'EDT' is unrecognized or represents more than one time zone.

2019-10-14 18:07:43.714 ERROR 74363 --- [Druid-ConnectionPool-Create-1855026648] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://10.30......

yizhichao
47分钟前
8
0
html加载顺序以及影响页面二次渲染额的因素

本文转载于:专业的前端网站➱html加载顺序以及影响页面二次渲染额的因素 浏览器请求发往服务器以后,返回HTML页面,页面内容开始渲染,具体的执行顺序为: 1. 浏览器开始载入html代码,发现<...

前端老手
49分钟前
9
0
BeginnersBook JSP、JSTL、Servlet 教程

来源:ApacheCN BeginnersBook 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并...

ApacheCN_飞龙
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部