【Unity技巧】制作一个简单的NPC
1. 寫在前面
前幾天看了cgcookie的一個教程,學習了下怎么根據已有人物模型制作一個仿版的NPC人物,感覺挺好玩的,整理一下放到博客里!
先看一下教程里面的最終效果。
是不是很像個幽靈~
下面是我在自己的工程中實驗的結果。
中間是游戲角色,兩遍兩個就是NPC啦。
這種技術得到的效果和貼圖關系很大,所以如果效果不好再畫一張貼圖吧
2. 實現
實現非常簡單,一共包含三個部分:改變Mesh材質,給Mesh添加Particle,最后添加閃爍的腳本
2.1 改變Mesh材質
- 首先新建一個空白對象,可以命名為holo_character,給它添加Mesh Filter和Mesh Render組件。
- 將原模型的Mesh賦值給上述Mesh Filter組件。然后新建一個材質,并賦值給Mesh Render組件來替換原來的模型材質。新的材質使用Particles/Additive的Shader,貼圖屬性中使用這個NPC的貼圖,也也可以直接使用原模型的材質貼圖。材質顏色可以根據喜好自行調節。面板設置如下:
- 如果你的模型包含多個Mesh,例如頭和身體是分開的,那么對每個部分都做如上操作就行了。
現在你的NPC應該看起來幽靈化了。
2.2 給Mesh添加Particle
給holo_character依次添加Mesh Particle Emitter、Particle Animator和Particle Render組件。將上一步新建的材質賦值給Particle Render中的材質對象。到了這里基本外觀就出來了。
然后,可以根據需要調整相應的參數來得到想要的效果。例如,可以調整Mesh Particle Emitter中的Min Size,Max Size來調整粒子的大小,調整MinEnergy和Max Energy來調整每個粒子的持續時間,調整Min Emission和Max Emission來調整同一時間粒子的個數等。
2.3 添加閃爍腳本
最后,為了讓這個NPC看起來更像一個幽靈,我們添加一個閃爍的腳本。這個腳本的主要原理就是控制材質的透明度,非常簡單。新建一個腳本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的做法,可以通過調整粒子效果來得到不同類型的NPC,例如火焰性等等。
還有一點要說明,如果你的模型綁定了骨骼動畫的,那么模型上應該會自動綁定Skin Mesh Render組件,而且模型又是標準的T型,如下圖這樣,那么可以變通一下,NPC也使用Skin Mesh Render來播放動畫,不至于讓NPC一直都是伸展著胳膊的。。。但是這樣添加粒子時使用Mesh Particle Emitter就沒有用了。如果這樣,我們可以自行調整粒子效果,得到其他的效果也是不錯的~
最后,如果您覺得本文對您有所幫助,請幫小女子投一票吧!謝謝~
http://vote.blog.csdn.net/Article/Details?articleid=30241041
轉載于:https://www.cnblogs.com/xiaowangba/p/6314687.html
總結
以上是生活随笔為你收集整理的【Unity技巧】制作一个简单的NPC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP实现双向链表
- 下一篇: debian6之eclipse和jdk安