日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【Unity技巧】制作一个简单的NPC

發(fā)布時(shí)間:2025/7/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Unity技巧】制作一个简单的NPC 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


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)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。