Unity 3D 游戏开发(微课版)课件 06第六章 模型动画特效_第1页
Unity 3D 游戏开发(微课版)课件 06第六章 模型动画特效_第2页
Unity 3D 游戏开发(微课版)课件 06第六章 模型动画特效_第3页
Unity 3D 游戏开发(微课版)课件 06第六章 模型动画特效_第4页
Unity 3D 游戏开发(微课版)课件 06第六章 模型动画特效_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章音视频动画特效系统NTENTS6.2模型动画系统6.3特效粒子系统6.1音频视频播放器音频视频播放器音频侦听装置音频播放声音音频混合装置视频播放器第一节6.1.1音频侦听装置-音频监听器Audio

ListenerAudioListener音频监听器负责接收游戏场景中所发出的音频源,模拟人类实际现中人耳朵对声音接收的过程。可以通过菜单栏的“Audio”->“Audio

Listener”的方式为对象添加音频监听器组件,但需要注意个是每个游戏场景中有且只能存在一个“AudioListener”音频监听器组件,通常挂载在“MainCamera”对象上。一般搭配“AudioSound”组件一同使用,“AudioSound”声音播放组件负责播放声音片段,而“Audio

Listener”负责监听场景中的声源。如果没有游戏场景中没不存在“AudioListener”,那么玩家将无法侦听到场景中发出的声音。静态属性pause说明音频系统暂停状态静态属性volume说明控制游戏音量using

UnityEngine;public

class

AudioListenerDemo

:

MonoBehaviour{void

Update(){if(Input.GetKeyDown(KeyCode.P))AudioListener.pause=true;}}6.1.1音频侦听装置-麦克风MicrophoneMicrophone类用于捕获

PC或移动设备上内置(物理)麦克风的输入。使用此类,可以从启动和关闭内置麦克风,获取可用音频输入设备(麦克风)列表,获取每个输入设备状态。没有组件用于麦克风

(Microphone)类,可通过脚本直接访问。使用该类可通过连接的麦克风来录制

AudioClip。可通过

devices属性获取所连接麦克风的列表,然后使用

Start和End函数开始或结束(使用一个可用设备)录制会话。属性devices说明可用麦克风设备(用名称标识)的列表。函数End说明停止录制函数GetDeviceCaps说明获取设备的频率功能IsRecording查询设备当前是否正在录制GetPosition

获取在录制样本中的位置Start

开始使用设备进行录制6.1.1音频侦听装置-麦克风Microphoneusing

UnityEngine;public

class

MicrophoneDemo

:

MonoBehaviour{public

float

force=0.1f;public

static

float

volume;AudioClip

micRecord;void

Start(){string

device

=

Microphone.devices[0];micRecord

=

Microphone.Start(device,

true,999,

44100);Debug.Log(device);}void

Update(){volume

=

GetMaxVolume();float

GetMaxVolume(){float

maxVolume

=

0f;float[]

volumeData

=

new

float[128];int

offset

=

Microphone.GetPosition(devic-

128

+

1;if

(offset

<

0)

return

0;micRecord.GetData(volumeData,

offset);for

(int

i

=

0;

i

<

128;

i++){float

tempMax

=

volumeData[i];if

(maxVolume

<

tempMax)

maxVolume

=tempMax;}return

maxVolume;Vector3

fx=new

Vector3(0,volume*force,0);

}this.gameObject.GetComponent<Rigidbody>().Ad}d

Force(fx,ForceMode.Impulse);}6.1.2音频播放-音频管理器音频管理器是Unity中提供音频全局设置的面板,可以对游戏中的全局音量,声音衰减因子等参数进行设置。可以通过菜单栏的“Edit”->“ProjectSettings”->“Audio”进行打开设置,具体参数属性介绍见下表。属性全局音量Global

Volume音量衰减因子Volume

RolloffScale听觉影响Doppler

Factor输出采样率System

Sample

RateDSP缓冲大小DSP

Buffer

Size说明所有声音的播放音量全局的衰减系数,该数值越高,音量衰减速度越快多普勒效应影响,1表示快速移动也能听到声音设置输出采样率,0表示Unity系统的采样率设置

DSP缓冲区的大小来优化延迟或性能6.1.2音频播放-音频播放组件AudioSourceAudioSource音频播放组件是用来播放声音的组件,模拟现实世界中声音播放的播放过程。可以通过菜单栏中的“Component”->“Audio”->“Audio

Source”添加

音频播放组件。关于组件的参数和“AudioSource”类相关属性函数介绍见下表。属性说明属性说明AudioClip播放的声音文件Output声音输出模式Mute静音PlayOnAwake运行时自动播放Loop循环播放Bypass

Effects是否启用滤波器效果Priority音频源优先级0最高Bypass

Listener

Effects知否启用监听器Volume声音的大小Bypass

Reverb

Zones是否启用混响区Pitch音频变速时音高变化3D

Sound

Settings声音变化详细设置属性函数名功能属性函数名功能clip指定音频剪辑isPlaying是否在播放中Play()Stop()播放停止播放Pause()暂停6.1.2音频播放-音频播放组件AudioSourceusing

UnityEngine;public

class

AudioSourceDemo

:MonoBehaviour{privateAudioSource

audioSource;public

AudioClip[]

audioClips;private

int

i=0;public

int

clips;void

Start(){audioSource=this.GetComponent<AudioSource>();}void

Update(){if(Input.GetKeyDown(KeyCode.Q)){i++;audioSource.clip=audioClips[i%clips];}if(Input.GetKeyDown(KeyCode.P))audioSource.Play();if(Input.GetKeyDown(KeyCode.S))audioSource.Stop();}}6.1.3声音音频混合装置-声音混合器AudioMixer属性说明属性说明S按钮使该组独奏M按钮使该组静音B按钮绕过组中所有效果Mixers混音器完整列表Snapshots混音快照模式Groups混音器音频组Views可见音频组视图Distortion失真效果Echo回音效果Chorus交响效果AudioMixer是一种资源,可以被用户整合到场景之中,控制游戏里的所有音频混缩。场景中播放的所有声音都会被放入一个或多个AudioMixer中,之后再进行分类,并将各种修改和效果应用到混缩音频中。每个AudioMixer都有类定义的层次结构,这在AudioMixer中被称为AudioGroup。您也可以在传统调音台布局中查看这些AudioGroup。6.1.3声音音频混合装置-音频滤波器AudioFilters音频滤波器音频低通过滤器Audio

Low

PassFilter说明抑制高频音通行低频音,如滚滚雷鸣音频高通过滤器Audio

High

Pass抑制低频音通行高频音,如尖锐刺耳声Filter音频合音过滤器Audio

ChorusFiter音频失真过滤器AudioDistortion

Fiter音频回声过滤器Audio

EchoFiter音频混响过滤器Audio

ReverbFiter音频混响区Reverb

Zones音片段合成多个略有不同的音频,如大合唱效果对音频失真处理,比如破收音机、对讲机的声音延迟重复一个声音,比如模拟在峡谷中、雷声对音频剪辑并失真,创建个性化的混响效果依据位置使音频剪辑失真处理,例如进入洞穴时6.1.4视频播放器-视频播放组件VideoPlayerVideoPlayer视频播放组件可以将视频片段内容在场景中进行播放,支持视频播放硬件加速解码和软件解码、透明通道、多个音频轨道以及网络流媒体等多种功能。通过菜单栏“Component”->“Video”->“VideoPlayer”为含有“Texture”的对象添加视频播放组件。参数说明参数说明Source视频源VideoClip视频剪辑片段URL视频地址Render

mode渲染模式Play

On

Awake启动时播放视频Wait

For

First

Frame提前加载好视频Loop循环播放视频Playback

Speed回放速度Skipondrop跳过帧以赶上当前时间Audio

Output

Mode输出源的音频轨道属性说明函数说明isPlaying是否在播放中Play播放url视频地址Pause暂停clip视频剪辑Stop停止播放6.1.4视频播放器-视频播放组件VideoPlayer;using

UnityEngine;using

UnityEngine.Video;public

class

VideoPlayerDemo

:

MonoBehaviour{public

VideoPlayer

videoPlayer;void

Start(){videoPlayer=this.GetComponent<VideoPlayer>()videoPlayer.frame=100;//跳过前100帧

videoPlayer.isLooping=true;videoPlayer.playbackSpeed=videoPlayer.playbackSpeed/2.0f;}void

Update(){if(Input.GetKeyDown(KeyCode.S))videoPlayer.Stop();if(Input.GetKeyDown(KeyCode.P))videoPlayer.Play();}}特效粒子系统粒子系统概述粒子特效基础功能粒子特效高级功能第三节6.3.1粒子系统概述Unity

3D提供了一套内置的粒子系统(Particle

System),一个粒子系统由3个独立分组成:粒子发射器、粒子动画器和粒子渲染器。粒子系统是由大量简单的图像或网格呈现出运动状态而实现的,每一个粒子代表一个流体或无定形实体,而众多粒子将共同营造出完整的实物感。粒子系统可以用来创建游戏场景中的火焰、气流、烟雾和大气等环境效果,模拟刀光、光波、爆炸等技能特效以及没有明确形状的“实体”的液体对象。可以通过菜单栏CameObject->Effects->ParticleSystem的方式进行创建粒子对象,可以通过为对象添加ParticleSystem组件的方式添加粒子特效功能。每个粒子都有预设的生命周期、变化效果、发射器类型等属性参数可以调节,同时也可以受到力的作用以及碰撞等物理效果事件。通常使用多种粒子进行动态混合运用,可以将多种流体效果模拟得栩栩如生。例如,利用稀薄的发射形状,使水粒子单纯受重力下落并逐渐加速,即可模拟瀑布。火堆冒出的烟雾往往会上升、扩散并最终消逝,所以系统应为烟雾粒子设置升力,并随时间的推移增大其体积和透明度。6.3.1粒子系统概述-粒子效果控制面板ParticleEffect选中Hierarchy面板中带有ParticleSystem组件对象时,Scene面板视图右下角会显态下的效果。属性

说明Playba

用于加快或减慢粒子模拟速ckSpeedPlaybackTimeParticle表示系统中当前有多少粒子CountSpeed

粒子运动速度范围Range示ParticleEffect粒子特效控制面板,可以对选中的粒子对象进行控制。通过以下操作了解Scene面板的ParticleEffect板的粒子播放状态控制属性,具体操作如下。(1)点击GameObject菜单栏“Effect”中度,可以直观查看在高级状的“ParticleSystem”进行创建粒子系统对象。(2)选中Hierarchy面板的“Particle粒子系统播放时间;可能比System”,点击Scene面板中ParticleEffect面实时更快或更慢,取决于播中的“Pause”按钮,查看粒子播放效果变放速度化。依此点击“Play”、“Restart”、“Stop”按钮查看粒子播放效果变化。调节“Playback

Speed”、“Playback

Time”参数,查看粒子效果变化。6.3.1粒子系统概述-粒子系统组件功能模块ParticleSystem粒子系统组件中有众多模块参数,除了默认的粒子属性外还提供了多种粒子属性控制模块,以实现对在粒子生命周期各个阶段上实现效果控制。表6.3.1.-2中列举了常用到的粒子组件功能模块说明,图6.3.1-2展示了粒子组件的功能模块。说明粒子默认主功能模块粒子发射功能模式

粒子发射器形状粒子颜色随时间变化而变化粒子功能模块

ParticleEffectEmissionShapeColorOverLifetimeColorBySpeed粒子颜色随速度变化而变化VelocityOverLifeti粒子速度随着时间变化而变化me粒子图像渲染功能粒子光照模块粒子碰撞事件功能粒子受力变化粒子所受力场变化RendererLightsCollisionExternalForcesParticleSystemForceFieldTrailRenderer粒子轨迹渲染器6.3.1粒子系统概述-粒子效果曲线控制器ParticleSystemCurves粒子效果曲线控制器可以自定义部分模块中粒子在周期内的属性效果变化。可以在“OpenEditor“面板右侧或Inspector面板下方进行调节。参数说明参数说明Optimize曲线多项式计算器Remove删除曲线Loop循环播放Ping

Pong连续振荡播放Clamp曲线极值限制Color关键点的颜色Gradient粒子颜色渐变Random

Color粒子颜色随机Mode混合粒子模式Color关键点的颜色Location关键点在渐变上的距离Presets保存渐变预设6.3.2粒子特效基础功能-粒子通用属性Particle

System通用属性该模块为固有模块,不可删除或者禁用。该模块定义了粒子初始化时的持续时间、循环方式、发射速度、大小等一系列基本的参数。属性说明属性说明Duration持续时间Looping是否循环播放Prewarm预热时间StartDelay延迟发射时间StartLifetime粒子初始生命周期StartSpeed粒子初始速度StartSize粒子初始大小StartColor初始颜色GravityModifier粒子所受重力值PlayonAwake粒子创建时自动启动MaxParticles粒子最大数SimulationSpace粒子运动相对位置6.3.2粒子特效基础功能-粒子发射属性EmissionEmission粒子发射属性功能模块可以控制粒子系统发射粒子的速率和时间。属性

说明

属性

说明Rate

over

Time

单位时间发射粒子数

Rate

over

Distance单位距离发射粒子数Bursts爆发粒子事件Time发射爆发粒子时间Count爆发发射粒子数量Cycles爆发粒子发射次数Interval爆发粒子间隔时间Probability爆发粒子事件可能性6.3.2粒子特效基础功能-粒子发射器形状ShapeShape粒子发射器模块用于定义可以发射粒子的体积区域或表面以及起始速度的方向。类型说明类型说明Shape发射器形状Sphere球体发射器HemiSphere半球体发射器Cone圆锥体发射器Box盒体发射器Mesh自定义网格发射器Circle圆形发射器Edge线形发射器Donut圆环发射器Rectangle矩形发射器6.3.2粒子特效基础功能-粒子颜色变化ColorOverLifetime/ColorBySpeedColorOverLifetime/ColorBySpeed功能模块可以依据粒子生命周期阶段或速度进行改变其颜色。例如强火花、烟花和烟雾等粒子在达到其生命周期终点时燃尽、褪色或消散是很常见的现象;化学反应试剂冷却时粒子速度变慢颜色变浅,魔法粒子在速度较快可能会变成彩虹色。参数

功能Lifetim粒子生命周期的颜色渐变,渐变e

Color条表示粒子从开始至结束的颜色变化SpeedColorSpeedRange在速度范围内定义的粒子的颜色渐变颜色渐变映射到的速度范围的下限和上限6.3.2粒子特效基础功能-粒子图像渲染RendererRenderer粒子图像渲染模块可以更改粒子渲染的图像,即所有粒子可以替换成其他图片或对象实现更加真实的模拟云、火球和液体的体积感以及创造出多样性的特

效。属性

RenderMode说明渲染模式属性

Normal说明粒子图像光线Direction法线偏差Billboard粒子始终朝向摄像机Material

渲染粒子材质Camera根据摄像机拉Sort粒子渲染顺序Scale伸粒子Mode/Fudge/偏差Mesh从3D网格渲染粒子RenderAlignment粒子渲染朝向模式None只渲染Trails轨迹Masking粒子遮罩行为Cast粒子是否产生Receive粒子是否接收Shadows阴影Shadows阴影6.3.3粒子特效高级功能-粒子光照模块LightsLights模块是一种为粒子效果添加实时光照的快速方法。此模块可用于使系统将光照投射到周围环境,例如可用于火、烟花或闪电。此外,还可通过该模块让光照从所附着的粒子继承各种属性。这样可以使粒子效果本身的发光更加逼真。例如,为了实现此目的,可使光照随其粒子淡出并使它们共享相同的颜色。参数Light功能

参数添加光照预

Ratio制体SizeAffec范围受粒子

AlphaAffe功能接受光照的粒子比例强度受粒子大小影响

ctIntensity

透明度影响tsRangeMaximumLights设置可创建

UseParticl最大光照

eColor光照颜色受粒子影响6.3.3粒子特效高级功能-粒子碰撞模块CollisionParticleCollision粒子碰撞模块可以实现粒子与游戏对象发生碰撞检测功能。例实现模拟火焰与草堆发生碰撞被点燃的情况,雨水击打玻璃发出碰撞水声情况等。属性说明属性说明Type类型Planes/WorldPlanes粒子碰撞平面对象Visualization碰撞平面是否可视Scale

Plane可视化平面大小Dampen粒子碰撞后损失速度Bounce粒子碰撞弹性比例Lifetime

Loss碰撞后粒子生命损失Kill

Speed碰撞后粒子速度损失Collision

Quality粒子碰撞检测精度Radius

Scale粒子碰撞球体半径Collider

Force粒子碰撞施加力Colliders

With粒子碰撞层运行脚本通过OnParticleCollision函数检测粒子碰撞SendCollisionmessagesusing

UnityEngine;public

class

script_

ParticleCollisionDemo:MonoBehaviour{private

voidOnParticleCollision(GameObjectother){

other.gameObject.GetComponent<MeshRenderer>().material.color

=

Color.red;}}6.3.3粒子特效高级功能-粒子受力模块ExternalForcesExternalForces粒子受力模块可以使粒子受到作用力的影响,与游戏对象发生力的相互作用,例如花絮随风飘动,瀑布受重力影响向下湍流。属性介绍属性介绍Multiplier风区外力比例值InfluenceFilter层遮罩/列表外力场List定义粒子影响列表InfluenceMask影响粒子层遮罩在Hierarchy面板创建“ParticleSystem”对象,勾选并启用”particleSystem”组件的“ExternalForces”功能模块。在Hierarchy面板创建一个空对象,点击其Inspector面板的“AddComponent”搜索并添加“WindZone“风组件。可以看到Scene面板中的粒子对象跟随着“WindZone”风组件属性值以及旋转角度的变化而变化。6.3.3粒子特效高级功能-粒子系统力场-ParticleSystemForceFieldParticle

System

Force

Field组件可以对粒子施加各种类型的力

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论