unity生成预制体_【Unity·月之泪复刻】Bloom+摇曳+可交互草地
![](/assets/blank.gif)
最近在做机械纪元的同人游戏,作为名场面…月之泪花田必须有姓名→ω→
经过两天的缝合(不是),目前效果如下:
![](/assets/blank.gif)
对比一下原版…awsl:
![](/assets/blank.gif)
场景包含:
- 草地摇曳效果
- 角色与草地的交互
- 月之泪的Bloom效果
使用素材
- 草地摇曳和交互的效果来自Minionsart大佬的教程
- Bloom效果来自Catlike Coding的教程
草地摇曳效果
简单来说就是对使用该材质的模型的vertex进行移位处理(displacement)。
在shader的vertex函数中通过函数修改顶点位置,常用的有正余弦函数,这样处理后模型看起来就像在风中轻轻晃动一样。
![](/assets/blank.gif)
草地交互
碰撞体进入草丛时,踩踏在草地会造成草被压倒的效果,同时落脚处正下方会有一些阴影,让角色与草丛的交互显得明显、更加有真实感。
![](/assets/blank.gif)
Minionsart的教程中给出了原理解释(如下图):
![](/assets/blank.gif)
简言之,就是给定交互碰撞体一个半径,以此半径构成的圆圈范围内草地模型会有x轴方向上的向径外偏移,z轴方向上的高度压低,以此营造草地被压倒的效果。此外该范围内叠加颜色,营造阴影效果。
月之泪模型制作
月之泪的模型是用Blender现撸的,模型只有花瓣和花茎两个部分。但是因为要对整朵花添加摇摆效果,必须将这两部分合并,否则上下会分开摇曳效果会很鬼畜…
合并的时候有点需要注意,之前做模型我都是直接ctrl+J合并mesh,这次才发现这样合并其实两个部分的顶点并没有拼合,只是单纯的组合到一起,可以被一起选中而已。要拼合两个mesh,即想要两个mesh交汇处顶点能连接起来,可以用modifier中的Boolean实现,这样分离的mesh才会组合成一个完整的mesh。
![](/assets/blank.gif)
成品如下,做了直杆和偏头的两朵花,然后拼成不同数量的组合,用于生成花田。
![](/assets/blank.gif)
添加Bloom效果
Unity是有自带的Bloom效果的,在PackageManager中下载post-processing包,内含Bloom着色器。平时搭配standard着色器效果就很不错。
![](/assets/blank.gif)
不过刚好之前看过catlike coding的教程,他的bloom超方便(俩脚本),我就先用着了→_→
但新问题是,月之泪只有花瓣会发光,花茎是无光的,而花田的摇曳效果要对整朵花的模型一起生效,不能将花朵与花茎分成两部分。
解决方案是修改shader,在原本的摇曳交互shader中添加一张emission贴图,emission贴图中只保留发光的花瓣部分,不发光的花茎部分贴图删除成透明通道,这样就只有花瓣部分会发光了。
![](/assets/blank.gif)
注意贴图保存成png格式,并且在U3D图片设置时选择包含透明通道的模式(RGBA),这样透明才会生效。
花田生成
接下来就是用两朵花生成一片花海了。
新建几块花田的预设,花朵从多到少以及各种角度,增加随机性让最终成品看起来自然点,然后把它们挂到花田生成脚本上,随机实例化,生成指定方形花田。
![](/assets/blank.gif)
开销
我的电脑大概在生成25x25面积花田时候开始出现掉帧卡顿,不过生成20x20的时候还是很丝滑柔顺的,足够我需求的花田了。
![](/assets/blank.gif)
工程文件
Sample场景(不含2B)可以在这里下载。
![](/assets/blank.gif)
【END】
unity生成预制体_【Unity·月之泪复刻】Bloom+摇曳+可交互草地相关推荐
- unity 获取预制体_新手如何从零学习unity
unity的优势就是多终端跨平台打包,入门也快,很多人感觉自己的英不好,就觉得学不会,其实这是一个误区, unity的界面虽然是英文的,但是它的窗口就只有那么几个,用的次数多了,也就自然的熟练 了,那 ...
- unity动态生成预制体
public void GameObjectPrefab(GameObject Prefab){PrefabUtility.SaveAsPrefabAsset(Prefab, "Assets ...
- 【Unity3D日常开发】生成预制体,并且预制体自动销毁
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 今天有粉丝问我一个很简单的问题,如何生成预制体,并且让预制体自动销 ...
- Unity之自动生成预制体脚本
在Unity开发中有许许多多的UI界面,包含着不同的组件,比如Button.Image等,我们需要按正确的路径找到它们并持有它们,这个步骤在界面十分庞大的时候,会十分繁琐易错.本文介绍的自动生成代码工 ...
- unity 获取预制体_Unity打包插件AssetsBundleBrowser的使用
游戏开发过程中,最重要的还是自己的编程能力了,但是当我们的编程能力达到一定的能力后,我们就需要尝试写一些插件来提高我们的工作效率了,当然,不会写的话,用我们还是需要会的.因为好的插件能大量提高工作效率 ...
- 【Unity】预制体Prefab使用说明
预制体Prefab使用说明 一.预制体的基本介绍 1.预制体是什么? 2.使用预制体的好处 二.使用方法 1.创建 Prefab 2.实例化 Prefab 3.更新 Prefab 三.注意事项 四.可 ...
- Unity 理解预制体(Prefab)和预制体变体(PrefabVariant)
关于预制体的要点: 官方文档中已包含关于预制体都是详细介绍,这里不再赘述,以下要点仅供个人回顾以及总结. 官方文档快捷入口:(ง •_•)ง 预制体的创建 预制体两种修改方式 预制体实例的覆盖和撤销 ...
- 预制体与非预制体_为什么更多的Web设计师应该尝试使用预制网站
预制体与非预制体 This sponsored article was created by our content partner, BAW Media. Thank you for support ...
- unity 根据模型生成碰撞体_快速准确立体碰撞体自动生成器Unity游戏素材资源
本游戏资料是快速准确立体碰撞体自动生成器Unity游戏素材资源,大小:5 MB ,格式:unitypackage,使用软件:unity5.6.4或更高,资产版本:Version 1.1(current ...
最新文章
- Python地图可视化三大秘密武器
- 【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景
- labuladong 的算法小抄_关于算法笔试的几个套路,一点就透
- 作者:邓景文(1982-),女,中国联合网络通信集团有限公司电子商务部工程师...
- C++中lib和dll解析
- Android源码分析之 JobScheduler
- 熊猫分发_熊猫下降列和行
- 从事前端开发,日常工作中必备的工具有哪些?
- python检测excel是否打开_Python: 如何判断远程服务器上Excel文件是否被人打开
- the road to TCPIP(1)--TCPIP详解--数据链路层
- 如果面试官问您还有什么问题要问的,应该如何巧妙的回答才算合适呢?
- Louvain 算法原理 及设计实现
- 前后端分离单页面应用(SPA)项目示例(Vue+ElementUI+Axios+Django+MySql)
- java 两张图片合并_java实现把两张图片合并(Graphics2D)
- 【HTTP图片服务器】【项目记录2】:安装、配置MySQL环境
- led灯条维修_led灯条坏了怎么修
- python panda是什么_如何最简单、通俗地理解Python的pandas库?
- 化妆品电商供应链系统解决方案:美妆化妆品品牌供应链质量管理、产品定位
- Centos/Debian 占用CPU100%挖矿病毒清理
- Flutter 上字体的另类玩法:FontFeature