博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Unity技能】做一个简单的NPC
阅读量:6949 次
发布时间:2019-06-27

本文共 1726 字,大约阅读时间需要 5 分钟。

1. 写在前面

前几天我看到cgcookie一个。学习了下怎么依据已有人物模型制作一个仿版的NPC人物。感觉挺好玩的,整理一下放到博客里!

先看一下教程里面的终于效果。

是不是非常像个幽灵~

以下是我在自己的project中实验的结果。

中间是游戏角色。两遍两个就是NPC啦。

这样的技术得到的效果和贴图关系非常大。所以假设效果不好再画一张贴图吧

2. 实现

实现非常easy,一共包括三个部分:改变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看起来更像一个幽灵。我们加入一个闪烁的脚本。这个脚本的主要原理就是控制材质的透明度。非常easy。新建一个脚本FlickeringScript.cs。代码例如以下:

using UnityEngine;using System.Collections;public class FlickeringScript : MonoBehaviour {	private Color color;	// Use this for initialization	void 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就没实用了。

假设这样,我们能够自行调整粒子效果,得到其它的效果也是不错的~

最后,假设您认为本文对您有所帮助,请帮小女子投一票吧。谢谢~

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
[OpenSource]浅谈.Net和Java互相调用的三种方式
查看>>
C语言指针的初始化和赋值
查看>>
安卓开发笔记——关于照片墙的实现(完美缓存策略LruCache+DiskLruCache)
查看>>
定义和使用EL函数
查看>>
android edittext不弹出软键盘
查看>>
关于正则表达式 C#
查看>>
【原创视频教程】SqlServer2008视频教程[共9集]
查看>>
Ubuntu 14.04 启用休眠
查看>>
Android闹钟源代码
查看>>
const使用摘要
查看>>
1.cocos2dx 3.2环境结构
查看>>
你知道什么是Grunt么?
查看>>
Java堆栈详解
查看>>
Hadoop入门进阶课程6--MapReduce应用案例
查看>>
SQL Server 2014里的IO资源调控器
查看>>
.NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有
查看>>
Eamcs ditaa基于字符图形产生的图像上
查看>>
Only the original thread that created a view hierarchy can touch its views.
查看>>
LeetCode手记-Add Binary
查看>>
对DNSPOD添加域名解析的一些见解
查看>>