【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。代码如下:

[csharp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class FlickeringScript : MonoBehaviour {  
  5.   
  6.     private Color color;  
  7.   
  8.     // Use this for initialization  
  9.     void Start () {  
  10.         color = renderer.material.GetColor("_TintColor");  
  11.         StartCoroutine(WaitForColor());  
  12.     }  
  13.   
  14.     IEnumerator WaitForColor() {  
  15.         while (true) {  
  16.             yield return new WaitForSeconds(Random.Range(0.0f, 0.1f));  
  17.             color.a = Random.Range(0.0f, 0.5f);  
  18.             renderer.material.SetColor("_TintColor", color);  
  19.         }  
  20.     }  
  21. }  

将上述代码添加到 holo_character。


3. 最后的话


这是一种很tricky的做法,可以通过调整粒子效果来得到不同类型的NPC,例如火焰性等等。



还有一点要说明,如果你的模型绑定了骨骼动画的,那么模型上应该会自动绑定Skin Mesh Render组件,而且模型又是标准的T型,如下图这样,那么可以变通一下,NPC也使用Skin Mesh Render来播放动画,不至于让NPC一直都是伸展着胳膊的。。。但是这样添加粒子时使用Mesh Particle Emitter就没有用了。如果这样,我们可以自行调整粒子效果,得到其他的效果也是不错的~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值