最近在做机械纪元的同人游戏,作为名场面…月之泪花田必须有姓名→ω→

经过两天的缝合(不是),目前效果如下:

awsl

对比一下原版…awsl:

机械纪元中的月之泪花田

场景包含:

  • 草地摇曳效果
  • 角色与草地的交互
  • 月之泪的Bloom效果

使用素材

  1. 草地摇曳和交互的效果来自Minionsart大佬的教程
  2. Bloom效果来自Catlike Coding的教程

草地摇曳效果

简单来说就是对使用该材质的模型的vertex进行移位处理(displacement)。

在shader的vertex函数中通过函数修改顶点位置,常用的有正余弦函数,这样处理后模型看起来就像在风中轻轻晃动一样。

草地交互

碰撞体进入草丛时,踩踏在草地会造成草被压倒的效果,同时落脚处正下方会有一些阴影,让角色与草丛的交互显得明显、更加有真实感。

Minionsart的教程中给出了原理解释(如下图):

简言之,就是给定交互碰撞体一个半径,以此半径构成的圆圈范围内草地模型会有x轴方向上的向径外偏移,z轴方向上的高度压低,以此营造草地被压倒的效果。此外该范围内叠加颜色,营造阴影效果。

月之泪模型制作

月之泪的模型是用Blender现撸的,模型只有花瓣和花茎两个部分。但是因为要对整朵花添加摇摆效果,必须将这两部分合并,否则上下会分开摇曳效果会很鬼畜…

合并的时候有点需要注意,之前做模型我都是直接ctrl+J合并mesh,这次才发现这样合并其实两个部分的顶点并没有拼合,只是单纯的组合到一起,可以被一起选中而已。要拼合两个mesh,即想要两个mesh交汇处顶点能连接起来,可以用modifier中的Boolean实现,这样分离的mesh才会组合成一个完整的mesh。

成品如下,做了直杆和偏头的两朵花,然后拼成不同数量的组合,用于生成花田。

添加Bloom效果

Unity是有自带的Bloom效果的,在PackageManager中下载post-processing包,内含Bloom着色器。平时搭配standard着色器效果就很不错。

不过刚好之前看过catlike coding的教程,他的bloom超方便(俩脚本),我就先用着了→_→

但新问题是,月之泪只有花瓣会发光,花茎是无光的,而花田的摇曳效果要对整朵花的模型一起生效,不能将花朵与花茎分成两部分。

解决方案是修改shader,在原本的摇曳交互shader中添加一张emission贴图,emission贴图中只保留发光的花瓣部分,不发光的花茎部分贴图删除成透明通道,这样就只有花瓣部分会发光了。

注意贴图保存成png格式,并且在U3D图片设置时选择包含透明通道的模式(RGBA),这样透明才会生效。

花田生成

接下来就是用两朵花生成一片花海了。

新建几块花田的预设,花朵从多到少以及各种角度,增加随机性让最终成品看起来自然点,然后把它们挂到花田生成脚本上,随机实例化,生成指定方形花田。

开销

我的电脑大概在生成25x25面积花田时候开始出现掉帧卡顿,不过生成20x20的时候还是很丝滑柔顺的,足够我需求的花田了。

工程文件

Sample场景(不含2B)可以在这里下载。

【END】

unity生成预制体_【Unity·月之泪复刻】Bloom+摇曳+可交互草地相关推荐

  1. unity 获取预制体_新手如何从零学习unity

    unity的优势就是多终端跨平台打包,入门也快,很多人感觉自己的英不好,就觉得学不会,其实这是一个误区, unity的界面虽然是英文的,但是它的窗口就只有那么几个,用的次数多了,也就自然的熟练 了,那 ...

  2. unity动态生成预制体

    public void GameObjectPrefab(GameObject Prefab){PrefabUtility.SaveAsPrefabAsset(Prefab, "Assets ...

  3. 【Unity3D日常开发】生成预制体,并且预制体自动销毁

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一.前言 今天有粉丝问我一个很简单的问题,如何生成预制体,并且让预制体自动销 ...

  4. Unity之自动生成预制体脚本

    在Unity开发中有许许多多的UI界面,包含着不同的组件,比如Button.Image等,我们需要按正确的路径找到它们并持有它们,这个步骤在界面十分庞大的时候,会十分繁琐易错.本文介绍的自动生成代码工 ...

  5. unity 获取预制体_Unity打包插件AssetsBundleBrowser的使用

    游戏开发过程中,最重要的还是自己的编程能力了,但是当我们的编程能力达到一定的能力后,我们就需要尝试写一些插件来提高我们的工作效率了,当然,不会写的话,用我们还是需要会的.因为好的插件能大量提高工作效率 ...

  6. 【Unity】预制体Prefab使用说明

    预制体Prefab使用说明 一.预制体的基本介绍 1.预制体是什么? 2.使用预制体的好处 二.使用方法 1.创建 Prefab 2.实例化 Prefab 3.更新 Prefab 三.注意事项 四.可 ...

  7. Unity 理解预制体(Prefab)和预制体变体(PrefabVariant)

    关于预制体的要点: 官方文档中已包含关于预制体都是详细介绍,这里不再赘述,以下要点仅供个人回顾以及总结. 官方文档快捷入口:(ง •_•)ง 预制体的创建 预制体两种修改方式 预制体实例的覆盖和撤销 ...

  8. 预制体与非预制体_为什么更多的Web设计师应该尝试使用预制网站

    预制体与非预制体 This sponsored article was created by our content partner, BAW Media. Thank you for support ...

  9. unity 根据模型生成碰撞体_快速准确立体碰撞体自动生成器Unity游戏素材资源

    本游戏资料是快速准确立体碰撞体自动生成器Unity游戏素材资源,大小:5 MB ,格式:unitypackage,使用软件:unity5.6.4或更高,资产版本:Version 1.1(current ...

最新文章

  1. Python地图可视化三大秘密武器
  2. 【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景
  3. labuladong 的算法小抄_关于算法笔试的几个套路,一点就透
  4. 作者:邓景文(1982-),女,中国联合网络通信集团有限公司电子商务部工程师...
  5. C++中lib和dll解析
  6. Android源码分析之 JobScheduler
  7. 熊猫分发_熊猫下降列和行
  8. 从事前端开发,日常工作中必备的工具有哪些?
  9. python检测excel是否打开_Python: 如何判断远程服务器上Excel文件是否被人打开
  10. the road to TCPIP(1)--TCPIP详解--数据链路层
  11. 如果面试官问您还有什么问题要问的,应该如何巧妙的回答才算合适呢?
  12. Louvain 算法原理 及设计实现
  13. 前后端分离单页面应用(SPA)项目示例(Vue+ElementUI+Axios+Django+MySql)
  14. java 两张图片合并_java实现把两张图片合并(Graphics2D)
  15. 【HTTP图片服务器】【项目记录2】:安装、配置MySQL环境
  16. led灯条维修_led灯条坏了怎么修
  17. python panda是什么_如何最简单、通俗地理解Python的pandas库?
  18. 化妆品电商供应链系统解决方案:美妆化妆品品牌供应链质量管理、产品定位
  19. Centos/Debian 占用CPU100%挖矿病毒清理
  20. Flutter 上字体的另类玩法:FontFeature

热门文章

  1. 用ISO-8859-1解决Python ‘utf-8‘ codec can‘t decode bytes in position 924-925问题
  2. 梯度响应图——针对无纹理目标的检测
  3. 使用PHPEXCEL导入数据到数据库
  4. 泰国慢生活 慵懒闲适的海滨阳光公寓
  5. 下载ps压缩包解压后双击set-up运行报错
  6. 用python3做一个图书管理系统(图形用户界面:tkinter)
  7. 爬取起点网小说【Python学习】
  8. 棒球联盟·棒球1号位
  9. 企业的数字化管理有哪些特点?
  10. QQ密码泄露公告--致歉信