【Unity技巧】制作一个简单的NPC
1. 寫在前面
前幾天看了cgcookie的一個(gè)教程,學(xué)習(xí)了下怎么根據(jù)已有人物模型制作一個(gè)仿版的NPC人物,感覺挺好玩的,整理一下放到博客里!
先看一下教程里面的最終效果。
是不是很像個(gè)幽靈~
下面是我在自己的工程中實(shí)驗(yàn)的結(jié)果。
中間是游戲角色,兩遍兩個(gè)就是NPC啦。
這種技術(shù)得到的效果和貼圖關(guān)系很大,所以如果效果不好再畫一張貼圖吧
2. 實(shí)現(xiàn)
實(shí)現(xiàn)非常簡(jiǎn)單,一共包含三個(gè)部分:改變Mesh材質(zhì),給Mesh添加Particle,最后添加閃爍的腳本
2.1 改變Mesh材質(zhì)
- 首先新建一個(gè)空白對(duì)象,可以命名為holo_character,給它添加Mesh Filter和Mesh Render組件。
- 將原模型的Mesh賦值給上述Mesh Filter組件。然后新建一個(gè)材質(zhì),并賦值給Mesh Render組件來(lái)替換原來(lái)的模型材質(zhì)。新的材質(zhì)使用Particles/Additive的Shader,貼圖屬性中使用這個(gè)NPC的貼圖,也也可以直接使用原模型的材質(zhì)貼圖。材質(zhì)顏色可以根據(jù)喜好自行調(diào)節(jié)。面板設(shè)置如下:
- 如果你的模型包含多個(gè)Mesh,例如頭和身體是分開的,那么對(duì)每個(gè)部分都做如上操作就行了。
現(xiàn)在你的NPC應(yīng)該看起來(lái)幽靈化了。
2.2 給Mesh添加Particle
給holo_character依次添加Mesh Particle Emitter、Particle Animator和Particle Render組件。將上一步新建的材質(zhì)賦值給Particle Render中的材質(zhì)對(duì)象。到了這里基本外觀就出來(lái)了。
然后,可以根據(jù)需要調(diào)整相應(yīng)的參數(shù)來(lái)得到想要的效果。例如,可以調(diào)整Mesh Particle Emitter中的Min Size,Max Size來(lái)調(diào)整粒子的大小,調(diào)整MinEnergy和Max Energy來(lái)調(diào)整每個(gè)粒子的持續(xù)時(shí)間,調(diào)整Min Emission和Max Emission來(lái)調(diào)整同一時(shí)間粒子的個(gè)數(shù)等。
2.3 添加閃爍腳本
最后,為了讓這個(gè)NPC看起來(lái)更像一個(gè)幽靈,我們添加一個(gè)閃爍的腳本。這個(gè)腳本的主要原理就是控制材質(zhì)的透明度,非常簡(jiǎn)單。新建一個(gè)腳本FlickeringScript.cs。代碼如下:
using UnityEngine; using System.Collections;public class FlickeringScript : MonoBehaviour {private Color color;// Use this for initializationvoid Start () {color = renderer.material.GetColor("_TintColor");StartCoroutine(WaitForColor());}IEnumerator WaitForColor() {while (true) {yield return new WaitForSeconds(Random.Range(0.0f, 0.1f));color.a = Random.Range(0.0f, 0.5f);renderer.material.SetColor("_TintColor", color);}} }
將上述代碼添加到holo_character。
3. 最后的話
這是一種很tricky的做法,可以通過(guò)調(diào)整粒子效果來(lái)得到不同類型的NPC,例如火焰性等等。
還有一點(diǎn)要說(shuō)明,如果你的模型綁定了骨骼動(dòng)畫的,那么模型上應(yīng)該會(huì)自動(dòng)綁定Skin Mesh Render組件,而且模型又是標(biāo)準(zhǔn)的T型,如下圖這樣,那么可以變通一下,NPC也使用Skin Mesh Render來(lái)播放動(dòng)畫,不至于讓NPC一直都是伸展著胳膊的。。。但是這樣添加粒子時(shí)使用Mesh Particle Emitter就沒(méi)有用了。如果這樣,我們可以自行調(diào)整粒子效果,得到其他的效果也是不錯(cuò)的~
最后,如果您覺得本文對(duì)您有所幫助,請(qǐng)幫小女子投一票吧!謝謝~
http://vote.blog.csdn.net/Article/Details?articleid=30241041
轉(zhuǎn)載于:https://www.cnblogs.com/xiaowangba/p/6314687.html
總結(jié)
以上是生活随笔為你收集整理的【Unity技巧】制作一个简单的NPC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PHP实现双向链表
- 下一篇: debian6之eclipse和jdk安