【Unity技能】做一个简单的NPC
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的贴图,也也能够直接使用原模型的材质贴图。材质颜色能够依据喜好自行调节。面板设置例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FuZHljYXQxOTky/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="font-size:14px;" alt="" />
- 假设你的模型包括多个Mesh,比如头和身体是分开的,那么对每一个部分都做如上操作即可了。
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,比如火焰性等等。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FuZHljYXQxOTky/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
另一点要说明,假设你的模型绑定了骨骼动画的。那么模型上应该会自己主动绑定Skin Mesh Render组件,并且模型又是标准的T型,例如以下图这样。那么能够变通一下,NPC也使用Skin Mesh Render来播放动画,不至于让NPC一直都是伸展着胳膊的。。。
可是这样加入粒子时使用Mesh Particle Emitter就没实用了。
假设这样,我们能够自行调整粒子效果,得到其它的效果也是不错的~
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FuZHljYXQxOTky/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
最后,假设您认为本文对您有所帮助,请帮小女子投一票吧。谢谢~
http://vote.blog.csdn.net/Article/Details?articleid=30241041
版权声明:本文博客原创文章,博客,未经同意,不得转载。
【Unity技能】做一个简单的NPC的更多相关文章
- 使用React并做一个简单的to-do-list
1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其virtual ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Netw ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...
- 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...
- 【 D3.js 入门系列 --- 3 】 做一个简单的图表!
前面说了几节,都是对文字进行处理,这一节中将用 D3.js 做一个简单的柱形图. 做柱形图有很多种方法,比如用 HTML 的 div 标签,或用 svg . 推荐用 SVG 来做各种图形.SVG 意为 ...
- 一起用HTML5 canvas做一个简单又骚气的粒子引擎
前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...
- Jmeter初步使用二--使用jmeter做一个简单的性能测试
经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍 ...
- 用EF DataBase First做一个简单的MVC3报名页面
使用EF DataBase First做一个简单的MVC3报名网站 ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO. ...
随机推荐
- 【图像处理】Bilinear Image Scaling
Bilinear image scaling is about the same as nearest neighbor image scaling except with interpolation ...
- Python基础 - 迭代
前言 在pythone中经常可以看到iterable这样的描述. 直译为迭代. 这是在C中没有的概念. iterable(可迭代) 支持每次返回自己所包含的一个成员的对象就是可迭代对象. iterab ...
- Graphviz 绘制流程图
凝视说明非常具体.不再详述. digraph G{ //dot 是一种画图语言,它能够方便你採用图形的方式高速.直观地表达一些想法, //比方描写叙述某个问题的解决方式,构思一个程序的流程,澄清一堆貌 ...
- vijos P1352 最大获利(最小割)
请不要随便指点别人该怎么做.每一个人的人生都应该自己掌握.你给不了别人一切.你也不懂别人的忧伤. 微笑不代表快乐.哭泣不一定悲伤 不努力怎么让关心你的人幸福.不努力怎么让看不起你的人绝望. 我用生命在 ...
- android圆角View实现及不同版本号这间的兼容
在做我们自己的APP的时候.为了让APP看起来更加的好看,我们就须要将我们的自己的View做成圆角的,毕竟主流也是将非常多东西做成圆角.和苹果的外观看起来差点儿相同,看起来也还不错. 要将一个View ...
- 2014年辛星解读Javascript之用DOM动态操纵HTML元�
关于DOM,我们了解了能够用DOM操纵HTML的一些属性和样式,还能够为HTML元素绑定事件等等,那么接下来,我们将涉及到用DOM来动态的创建.删除HTML等一些操作,我的核心思路还是重实战,因此,代 ...
- CentOS 7 安装MySql Server 5.6
1. 安装MySql Server 在/etc/yum.repos.d/目录下添加以下文件mysql-community.repo文件,内容如下: [mysql56-community] name=M ...
- Hadoop Spark 集群简便安装总结
本人实际安装经验,目的是为以后高速安装.仅供自己參考. 一.Hadoop 1.操作系统一如既往:①setup关掉防火墙.②vi /etc/sysconfig/selinux,改SELINUX=disa ...
- WampServer:轻松配置Wordpress安装环境
WordPress运行环境 PHP 5.2.4 或更新版本(不支持第三方推出的“PHP 6.0”) MySQL 5.0 或更新版本 Apache mod_rewrite 模块(可选,用于支持“固定链接 ...
- HTML4和HTML5之间10主要差异
HTML5恐怕要让部分网页工作者抓狂了,HTML5将採用标准的XML语法格式,这对代码的规范要求很高. HTML5是最新的HTML标准.尽管还在制定.但或迟或早,全部的web程序猿都会发现须要使用到这 ...