Unity 3D 游戲開發(fā)(微課版)課件 06第六章 模型動畫特效_第1頁
Unity 3D 游戲開發(fā)(微課版)課件 06第六章 模型動畫特效_第2頁
Unity 3D 游戲開發(fā)(微課版)課件 06第六章 模型動畫特效_第3頁
Unity 3D 游戲開發(fā)(微課版)課件 06第六章 模型動畫特效_第4頁
Unity 3D 游戲開發(fā)(微課版)課件 06第六章 模型動畫特效_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第六章音視頻動畫特效系統(tǒng)NTENTS6.2模型動畫系統(tǒng)6.3特效粒子系統(tǒng)6.1音頻視頻播放器音頻視頻播放器音頻偵聽裝置音頻播放聲音音頻混合裝置視頻播放器第一節(jié)6.1.1音頻偵聽裝置-音頻監(jiān)聽器Audio

ListenerAudioListener音頻監(jiān)聽器負責接收游戲場景中所發(fā)出的音頻源,模擬人類實際現(xiàn)中人耳朵對聲音接收的過程??梢酝ㄟ^菜單欄的“Audio”->“Audio

Listener”的方式為對象添加音頻監(jiān)聽器組件,但需要注意個是每個游戲場景中有且只能存在一個“AudioListener”音頻監(jiān)聽器組件,通常掛載在“MainCamera”對象上。一般搭配“AudioSound”組件一同使用,“AudioSound”聲音播放組件負責播放聲音片段,而“Audio

Listener”負責監(jiān)聽場景中的聲源。如果沒有游戲場景中沒不存在“AudioListener”,那么玩家將無法偵聽到場景中發(fā)出的聲音。靜態(tài)屬性pause說明音頻系統(tǒng)暫停狀態(tài)靜態(tài)屬性volume說明控制游戲音量using

UnityEngine;public

class

AudioListenerDemo

:

MonoBehaviour{void

Update(){if(Input.GetKeyDown(KeyCode.P))AudioListener.pause=true;}}6.1.1音頻偵聽裝置-麥克風MicrophoneMicrophone類用于捕獲

PC或移動設(shè)備上內(nèi)置(物理)麥克風的輸入。使用此類,可以從啟動和關(guān)閉內(nèi)置麥克風,獲取可用音頻輸入設(shè)備(麥克風)列表,獲取每個輸入設(shè)備狀態(tài)。沒有組件用于麥克風

(Microphone)類,可通過腳本直接訪問。使用該類可通過連接的麥克風來錄制

AudioClip??赏ㄟ^

devices屬性獲取所連接麥克風的列表,然后使用

Start和End函數(shù)開始或結(jié)束(使用一個可用設(shè)備)錄制會話。屬性devices說明可用麥克風設(shè)備(用名稱標識)的列表。函數(shù)End說明停止錄制函數(shù)GetDeviceCaps說明獲取設(shè)備的頻率功能IsRecording查詢設(shè)備當前是否正在錄制GetPosition

獲取在錄制樣本中的位置Start

開始使用設(shè)備進行錄制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中提供音頻全局設(shè)置的面板,可以對游戲中的全局音量,聲音衰減因子等參數(shù)進行設(shè)置。可以通過菜單欄的“Edit”->“ProjectSettings”->“Audio”進行打開設(shè)置,具體參數(shù)屬性介紹見下表。屬性全局音量Global

Volume音量衰減因子Volume

RolloffScale聽覺影響Doppler

Factor輸出采樣率System

Sample

RateDSP緩沖大小DSP

Buffer

Size說明所有聲音的播放音量全局的衰減系數(shù),該數(shù)值越高,音量衰減速度越快多普勒效應(yīng)影響,1表示快速移動也能聽到聲音設(shè)置輸出采樣率,0表示Unity系統(tǒng)的采樣率設(shè)置

DSP緩沖區(qū)的大小來優(yōu)化延遲或性能6.1.2音頻播放-音頻播放組件AudioSourceAudioSource音頻播放組件是用來播放聲音的組件,模擬現(xiàn)實世界中聲音播放的播放過程。可以通過菜單欄中的“Component”->“Audio”->“Audio

Source”添加

音頻播放組件。關(guān)于組件的參數(shù)和“AudioSource”類相關(guān)屬性函數(shù)介紹見下表。屬性說明屬性說明AudioClip播放的聲音文件Output聲音輸出模式Mute靜音PlayOnAwake運行時自動播放Loop循環(huán)播放Bypass

Effects是否啟用濾波器效果Priority音頻源優(yōu)先級0最高Bypass

Listener

Effects知否啟用監(jiān)聽器Volume聲音的大小Bypass

Reverb

Zones是否啟用混響區(qū)Pitch音頻變速時音高變化3D

Sound

Settings聲音變化詳細設(shè)置屬性函數(shù)名功能屬性函數(shù)名功能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中,之后再進行分類,并將各種修改和效果應(yīng)用到混縮音頻中。每個AudioMixer都有類定義的層次結(jié)構(gòu),這在AudioMixer中被稱為AudioGroup。您也可以在傳統(tǒng)調(diào)音臺布局中查看這些AudioGroup。6.1.3聲音音頻混合裝置-音頻濾波器AudioFilters音頻濾波器音頻低通過濾器Audio

Low

PassFilter說明抑制高頻音通行低頻音,如滾滾雷鳴音頻高通過濾器Audio

High

Pass抑制低頻音通行高頻音,如尖銳刺耳聲Filter音頻合音過濾器Audio

ChorusFiter音頻失真過濾器AudioDistortion

Fiter音頻回聲過濾器Audio

EchoFiter音頻混響過濾器Audio

ReverbFiter音頻混響區(qū)Reverb

Zones音片段合成多個略有不同的音頻,如大合唱效果對音頻失真處理,比如破收音機、對講機的聲音延遲重復(fù)一個聲音,比如模擬在峽谷中、雷聲對音頻剪輯并失真,創(chuàng)建個性化的混響效果依據(jù)位置使音頻剪輯失真處理,例如進入洞穴時6.1.4視頻播放器-視頻播放組件VideoPlayerVideoPlayer視頻播放組件可以將視頻片段內(nèi)容在場景中進行播放,支持視頻播放硬件加速解碼和軟件解碼、透明通道、多個音頻軌道以及網(wǎng)絡(luò)流媒體等多種功能。通過菜單欄“Component”->“Video”->“VideoPlayer”為含有“Texture”的對象添加視頻播放組件。參數(shù)說明參數(shù)說明Source視頻源VideoClip視頻剪輯片段URL視頻地址Render

mode渲染模式Play

On

Awake啟動時播放視頻Wait

For

First

Frame提前加載好視頻Loop循環(huán)播放視頻Playback

Speed回放速度Skipondrop跳過幀以趕上當前時間Audio

Output

Mode輸出源的音頻軌道屬性說明函數(shù)說明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();}}特效粒子系統(tǒng)粒子系統(tǒng)概述粒子特效基礎(chǔ)功能粒子特效高級功能第三節(jié)6.3.1粒子系統(tǒng)概述Unity

3D提供了一套內(nèi)置的粒子系統(tǒng)(Particle

System),一個粒子系統(tǒng)由3個獨立分組成:粒子發(fā)射器、粒子動畫器和粒子渲染器。粒子系統(tǒng)是由大量簡單的圖像或網(wǎng)格呈現(xiàn)出運動狀態(tài)而實現(xiàn)的,每一個粒子代表一個流體或無定形實體,而眾多粒子將共同營造出完整的實物感。粒子系統(tǒng)可以用來創(chuàng)建游戲場景中的火焰、氣流、煙霧和大氣等環(huán)境效果,模擬刀光、光波、爆炸等技能特效以及沒有明確形狀的“實體”的液體對象。可以通過菜單欄CameObject->Effects->ParticleSystem的方式進行創(chuàng)建粒子對象,可以通過為對象添加ParticleSystem組件的方式添加粒子特效功能。每個粒子都有預(yù)設(shè)的生命周期、變化效果、發(fā)射器類型等屬性參數(shù)可以調(diào)節(jié),同時也可以受到力的作用以及碰撞等物理效果事件。通常使用多種粒子進行動態(tài)混合運用,可以將多種流體效果模擬得栩栩如生。例如,利用稀薄的發(fā)射形狀,使水粒子單純受重力下落并逐漸加速,即可模擬瀑布?;鸲衙俺龅臒熿F往往會上升、擴散并最終消逝,所以系統(tǒng)應(yīng)為煙霧粒子設(shè)置升力,并隨時間的推移增大其體積和透明度。6.3.1粒子系統(tǒng)概述-粒子效果控制面板ParticleEffect選中Hierarchy面板中帶有ParticleSystem組件對象時,Scene面板視圖右下角會顯態(tài)下的效果。屬性

說明Playba

用于加快或減慢粒子模擬速ckSpeedPlaybackTimeParticle表示系統(tǒng)中當前有多少粒子CountSpeed

粒子運動速度范圍Range示ParticleEffect粒子特效控制面板,可以對選中的粒子對象進行控制。通過以下操作了解Scene面板的ParticleEffect板的粒子播放狀態(tài)控制屬性,具體操作如下。(1)點擊GameObject菜單欄“Effect”中度,可以直觀查看在高級狀的“ParticleSystem”進行創(chuàng)建粒子系統(tǒng)對象。(2)選中Hierarchy面板的“Particle粒子系統(tǒng)播放時間;可能比System”,點擊Scene面板中ParticleEffect面實時更快或更慢,取決于播中的“Pause”按鈕,查看粒子播放效果變放速度化。依此點擊“Play”、“Restart”、“Stop”按鈕查看粒子播放效果變化。調(diào)節(jié)“Playback

Speed”、“Playback

Time”參數(shù),查看粒子效果變化。6.3.1粒子系統(tǒng)概述-粒子系統(tǒng)組件功能模塊ParticleSystem粒子系統(tǒng)組件中有眾多模塊參數(shù),除了默認的粒子屬性外還提供了多種粒子屬性控制模塊,以實現(xiàn)對在粒子生命周期各個階段上實現(xiàn)效果控制。表6.3.1.-2中列舉了常用到的粒子組件功能模塊說明,圖6.3.1-2展示了粒子組件的功能模塊。說明粒子默認主功能模塊粒子發(fā)射功能模式

粒子發(fā)射器形狀粒子顏色隨時間變化而變化粒子功能模塊

ParticleEffectEmissionShapeColorOverLifetimeColorBySpeed粒子顏色隨速度變化而變化VelocityOverLifeti粒子速度隨著時間變化而變化me粒子圖像渲染功能粒子光照模塊粒子碰撞事件功能粒子受力變化粒子所受力場變化RendererLightsCollisionExternalForcesParticleSystemForceFieldTrailRenderer粒子軌跡渲染器6.3.1粒子系統(tǒng)概述-粒子效果曲線控制器ParticleSystemCurves粒子效果曲線控制器可以自定義部分模塊中粒子在周期內(nèi)的屬性效果變化??梢栽凇癘penEditor“面板右側(cè)或Inspector面板下方進行調(diào)節(jié)。參數(shù)說明參數(shù)說明Optimize曲線多項式計算器Remove刪除曲線Loop循環(huán)播放Ping

Pong連續(xù)振蕩播放Clamp曲線極值限制Color關(guān)鍵點的顏色Gradient粒子顏色漸變Random

Color粒子顏色隨機Mode混合粒子模式Color關(guān)鍵點的顏色Location關(guān)鍵點在漸變上的距離Presets保存漸變預(yù)設(shè)6.3.2粒子特效基礎(chǔ)功能-粒子通用屬性Particle

System通用屬性該模塊為固有模塊,不可刪除或者禁用。該模塊定義了粒子初始化時的持續(xù)時間、循環(huán)方式、發(fā)射速度、大小等一系列基本的參數(shù)。屬性說明屬性說明Duration持續(xù)時間Looping是否循環(huán)播放Prewarm預(yù)熱時間StartDelay延遲發(fā)射時間StartLifetime粒子初始生命周期StartSpeed粒子初始速度StartSize粒子初始大小StartColor初始顏色GravityModifier粒子所受重力值PlayonAwake粒子創(chuàng)建時自動啟動MaxParticles粒子最大數(shù)SimulationSpace粒子運動相對位置6.3.2粒子特效基礎(chǔ)功能-粒子發(fā)射屬性EmissionEmission粒子發(fā)射屬性功能模塊可以控制粒子系統(tǒng)發(fā)射粒子的速率和時間。屬性

說明

屬性

說明Rate

over

Time

單位時間發(fā)射粒子數(shù)

Rate

over

Distance單位距離發(fā)射粒子數(shù)Bursts爆發(fā)粒子事件Time發(fā)射爆發(fā)粒子時間Count爆發(fā)發(fā)射粒子數(shù)量Cycles爆發(fā)粒子發(fā)射次數(shù)Interval爆發(fā)粒子間隔時間Probability爆發(fā)粒子事件可能性6.3.2粒子特效基礎(chǔ)功能-粒子發(fā)射器形狀ShapeShape粒子發(fā)射器模塊用于定義可以發(fā)射粒子的體積區(qū)域或表面以及起始速度的方向。類型說明類型說明Shape發(fā)射器形狀Sphere球體發(fā)射器HemiSphere半球體發(fā)射器Cone圓錐體發(fā)射器Box盒體發(fā)射器Mesh自定義網(wǎng)格發(fā)射器Circle圓形發(fā)射器Edge線形發(fā)射器Donut圓環(huán)發(fā)射器Rectangle矩形發(fā)射器6.3.2粒子特效基礎(chǔ)功能-粒子顏色變化ColorOverLifetime/ColorBySpeedColorOverLifetime/ColorBySpeed功能模塊可以依據(jù)粒子生命周期階段或速度進行改變其顏色。例如強火花、煙花和煙霧等粒子在達到其生命周期終點時燃盡、褪色或消散是很常見的現(xiàn)象;化學反應(yīng)試劑冷卻時粒子速度變慢顏色變淺,魔法粒子在速度較快可能會變成彩虹色。參數(shù)

功能Lifetim粒子生命周期的顏色漸變,漸變e

Color條表示粒子從開始至結(jié)束的顏色變化SpeedColorSpeedRange在速度范圍內(nèi)定義的粒子的顏色漸變顏色漸變映射到的速度范圍的下限和上限6.3.2粒子特效基礎(chǔ)功能-粒子圖像渲染RendererRenderer粒子圖像渲染模塊可以更改粒子渲染的圖像,即所有粒子可以替換成其他圖片或?qū)ο髮崿F(xiàn)更加真實的模擬云、火球和液體的體積感以及創(chuàng)造出多樣性的特

效。屬性

RenderMode說明渲染模式屬性

Normal說明粒子圖像光線Direction法線偏差Billboard粒子始終朝向攝像機Material

渲染粒子材質(zhì)Camera根據(jù)攝像機拉Sort粒子渲染順序Scale伸粒子Mode/Fudge/偏差Mesh從3D網(wǎng)格渲染粒子RenderAlignment粒子渲染朝向模式None只渲染Trails軌跡Masking粒子遮罩行為Cast粒子是否產(chǎn)生Receive粒子是否接收Shadows陰影Shadows陰影6.3.3粒子特效高級功能-粒子光照模塊LightsLights模塊是一種為粒子效果添加實時光照的快速方法。此模塊可用于使系統(tǒng)將光照投射到周圍環(huán)境,例如可用于火、煙花或閃電。此外,還可通過該模塊讓光照從所附著的粒子繼承各種屬性。這樣可以使粒子效果本身的發(fā)光更加逼真。例如,為了實現(xiàn)此目的,可使光照隨其粒子淡出并使它們共享相同的顏色。參數(shù)Light功能

參數(shù)添加光照預(yù)

Ratio制體SizeAffec范圍受粒子

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

ctIntensity

透明度影響tsRangeMaximumLights設(shè)置可創(chuàng)建

UseParticl最大光照

eColor光照顏色受粒子影響6.3.3粒子特效高級功能-粒子碰撞模塊CollisionParticleCollision粒子碰撞模塊可以實現(xiàn)粒子與游戲?qū)ο蟀l(fā)生碰撞檢測功能。例實現(xiàn)模擬火焰與草堆發(fā)生碰撞被點燃的情況,雨水擊打玻璃發(fā)出碰撞水聲情況等。屬性說明屬性說明Type類型Planes/WorldPlanes粒子碰撞平面對象Visualization碰撞平面是否可視Scale

Plane可視化平面大小Dampen粒子碰撞后損失速度Bounce粒子碰撞彈性比例Lifetime

Loss碰撞后粒子生命損失Kill

Speed碰撞后粒子速度損失Collision

Quality粒子碰撞檢測精度Radius

Scale粒子碰撞球體半徑Collider

Force粒子碰撞施加力Colliders

With粒子碰撞層運行腳本通過OnParticleCollision函數(shù)檢測粒子碰撞SendCollisionmessagesusing

UnityEngine;public

class

script_

ParticleCollisionDemo:MonoBehaviour{private

voidOnParticleCollision(GameObjectother){

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

=

Color.red;}}6.3.3粒子特效高級功能-粒子受力模塊ExternalForcesExternalForces粒子受力模塊可以使粒子受到作用力的影響,與游戲?qū)ο蟀l(fā)生力的相互作用,例如花絮隨風飄動,瀑布受重力影響向下湍流。屬性介紹屬性介紹Multiplier風區(qū)外力比例值InfluenceFilter層遮罩/列表外力場List定義粒子影響列表InfluenceMask影響粒子層遮罩在Hierarchy面板創(chuàng)建“ParticleSystem”對象,勾選并啟用”particleSystem”組件的“ExternalForces”功能模塊。在Hierarchy面板創(chuàng)建一個空對象,點擊其Inspector面板的“AddComponent”搜索并添加“WindZone“風組件。可以看到Scene面板中的粒子對象跟隨著“WindZone”風組件屬性值以及旋轉(zhuǎn)角度的變化而變化。6.3.3粒子特效高級功能-粒子系統(tǒng)力場-ParticleSystemForceFieldParticle

System

Force

Field組件可以對粒子施加各種類型的力

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論