内容介绍
小游戏畅玩榜的IAA游戏,自从羊了个羊打开三消新格局后,三消系列已经进化到,3D表现+物理效果,质感效果也越来越好。如何美化3D方块效果,优化物理性能,解决3D长宽屏幕的适配,提供一些制作思路。
3D方块
3D方块使用定制的白模( uv 固定顶面,美术或者程序生成),
因为白模通过shader的计算,能更好实时还原光照和阴影效果
-
如何3D方块的合批?(优化)
开启GPU合批提高性能,使用GPU instance 自定义纹理 a_uv
shader的定义:
脚本使用方式:
-
如何提升3D方块的质感效果?(美化)
光照材质 Roughness(粗糙度0.3) + Metallic(金属度0.05) + ShadowMap(阴影)
-
如何消除3D麻将底色交界的锯齿?(重点美化)
底色牌白色硬边交界,光栅化容易产生锯齿,影响观感。
常规全屏抗锯齿办法,例如 多重采样(硬件), FXAA(后处) …等,
但是这些方法,性能消耗代价不小,有没更加简单性能好的办法?
办法是有的,使用smoothstep()处理底色和白色的过渡,完美消除交界锯齿。
物理系统
-
如何支持物理系统 Sleep ?(重点优化)
快速Sleep + 局部激活 , 是物理优化的关键。 -
- 1.开启允许的Sleep,设置适当的临界速度。
项目设置->物理
- 1.开启允许的Sleep,设置适当的临界速度。
-
- 2.主动激活局物体避免过度连锁反应。
但是,大家会发现,物理开启sleep,在物体稳定后,
点取下面方块,其他方块没掉下来,场面一度十分的尴尬。
怎样局部的激活其他的物体呢?使用sweep几何投射进行收集激活。
- 2.主动激活局物体避免过度连锁反应。
物理优化效果:(左图:Sleep 前, 右图:Sleep 后)
屏幕适配
- 如何适配长短屏 ?
3D相机,使用水平FOV适配 , 对大于1:2 的宽屏进行动态FOV的转换适配.
(creator 3.8.2) 水平FOV和 垂直互转函数:
长宽屏适配效果:
常见疑问
-
- 代码授权问题,微信,抖音,小游戏
不要过分担忧,代码量简短,容易修改。
占整个游戏比重非常小,容易通过。
- 代码授权问题,微信,抖音,小游戏
-
- 小游戏首包过大,功能裁剪,小游戏分包
增加过渡场景,游戏场景可以独立打bundle.
- 小游戏首包过大,功能裁剪,小游戏分包
-
- 自定义主题素材扩充,可以使用图集
texturepack,打包增加你想要的素材。
- 自定义主题素材扩充,可以使用图集
-
- IOS 性能优化,强烈推荐使用 3.8.3 打包,
勾选支持 webgl2 , 勾选小游戏高性能,
勾选 wasm+asmjs 模式,按机器使用阴影
(高端:shadowmap , 中端:planar, 低端:关闭)
- IOS 性能优化,强烈推荐使用 3.8.3 打包,