- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
unity3D游戏发之简单的NPC制作
简单的NPC
前几天看了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 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就没有用了。如果这样,我们可以自行调整粒子效果,得到其他的效果也是不错的~
您可能关注的文档
- REUSE_ALVGRID_DISPLAY超详细讲解.doc
- RFC1055_在行线路上传输IP数据报的非标准协议.doc
- Renesas R78L1C 16位MCU开发方案.docx
- RF+jenkin+svn自动化持续集成环境搭建.doc
- RFID技术在广东网固定资产管理中的应用.doc
- RJ必修2化学第四~学业测评(孔诗韵)知识点.docx
- ROUTE Chater 1 6.0 .doc
- RL-QP-01 件控制程序 -6修改.doc
- ROS ADSL双负载均衡+PPPOE服务器教程图文详解.doc
- RouterOS 3.24版本PCC多线负载均衡设置例程.doc
- Unity3D游戏擎实战开发从入门到精通(坦克大战项目实战、NGUI开发、GameObject).doc
- Unit_5_Wht_were_you_doing_when_the_rainstorm_came?_教案.doc
- Unity3D:界插件NGUI的使用(二).docx
- Unknown Pn 和Failed to add class member 的问题的解决办法.doc
- UTF8和UCS2当前即Unicode)编码知识.doc
- Using Proy in senchaTouch2.docx
- u大师u盘启动盘制工具重装系统图解教程.doc
- U盘WINDOWS法完成格式化解决办法.doc
- u盘不能格式化,变RAW格式解决办法1.doc
- UV紫外线传感器和人用紫外线测试仪价格.docx
文档评论(0)