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

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

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. HTML中的一些知识点
  2. (原创)一个JavaScript Function Outliner插件 第三个版本 让你的JavaScript代码也支持折叠...
  3. 一张图搞定SDF的概念
  4. python表格对齐_Python对Excel表格数据重新排版
  5. CF1009F-Dominant Indices【长链剖分】
  6. TFS创建团队项目(三)
  7. 一步一步写算法(之线性队列)
  8. 【Visual Studio Code 】使用Visual Studio Code + Node.js搭建TypeScript开发环境
  9. hallo world
  10. AndroidStudio实现在图片上涂鸦并记录涂鸦轨迹
  11. oracle卸载客户端,oracle11g客户端如何完全卸载
  12. 科研绘图自由之开放式绘图平台 (Figdraw)
  13. RFM模型实现用户分层
  14. 实习期间的一些思考整理(2)2018.4.10~4.11
  15. excel宏设置之一键生成多张sheet并写入内容与格式
  16. mysql通用精确计算年龄方式
  17. ajax 传递对象 返回状态500
  18. 娱乐弹弹弹——程序猿眼中的女人
  19. 嵌入式 课程设计指导书
  20. t5810做虚拟服务器,戴尔Precision T5810工作站选用CPU的问题 | 小迪的生产力工具室...

热门文章

  1. 2019上海车展札记
  2. VBA之批量进行工作簿及工作表循环查找内容
  3. 九龙证券|权重股引领A股强势反弹 沪指创今年以来最大单日涨幅
  4. 洛谷P7072 直播获奖
  5. console.log()和console.dir()的区别
  6. 教育部首设儿童成长阶梯标准:4岁学会体谅父母
  7. 【知识产权基础之专利权】第五章 专利申请、审批的原则
  8. 电脑wifi通过以太网口与linux开发板网络共享设置方法
  9. 图片幻灯片效果js代码
  10. Android 10 vivo,适配速度首次超过华为!vivo X27尝鲜Android 10,这一次真不一样