前言
菜鸟已经有好长时间没有发文章了,不是菜鸟变懒了,是菜鸟在Cocos Creator3.x出来后一直在研究3D方面的,从一个3D零基础的初学者开始一步一步学习,再加上周内实在没时间,只有周末才有时间自己搞搞,今天菜鸟就将自己这几个月的研究给大家看看。
效果展示
视频效果查看点击进入原文观看视频
看完效果大家是不是觉的效果很一般,多担待奥
正文
1.Cocos Creator 3.x到底怎么样?
两种感受吧。
- 在Cocos Creator3.1之前:一个字,卡。不管是Mac还是windows,都非常卡,其中包括编辑器编辑或者在浏览器运行,菜鸟觉得可能是我的电脑配置不好吧。而且报错也比较多,莫名其妙的就会报错。你正在编辑场景…,结果报错了,强制退出,再进来就好了。大概一个小时会有这样5,6,7,8次的情况吧。说实话也不知道是什么动力让菜鸟坚持了下来。菜鸟的第一个场景就是在这种情况下实现的。
- 在Cocos Creator3.1之后:菜鸟觉得整个人都解脱了。3.1相比之前的版本优化了好多好多,没有那么卡了。也不会莫名其妙的报错了,用起来更加的得心应手了。菜鸟的2,3场景就是基于3.1后的版本做的,其中场景的复杂度以及三维模型的数量都远远超多第一个场景的。
2.聊聊场景中的实现吧!
和菜鸟一样,求知欲比较强的可能更希望了解到菜鸟这三个场景中的一些实现技术点吧,菜鸟接下来就大列一下:
2.1 地形
场景1中菜鸟使用到了地形系统Terrain
- 1.菜鸟如果没有记错,目前的地形系统只支持5张贴图材质
2.2 水面
水面的效果就不多说了,直接菜鸟写过三种简单水面的实现,大家感兴趣的可以去看看。
2.3 天空
天空菜鸟用的并非引擎提供的天空盒,是自己研究的写的:
实现的原理在之前的文章中也有,大家可以看看
2.4 迷雾
之前,官方发过一篇关于雾效的文章,大家可以去找一下看看,大概的思路是:根据摄像机和模型顶点的距离,由近到远与指定的颜色值进行混淆。
2.5 吊灯
吊灯灯泡,以及灯泡外边闪烁的光圈,使用双pass进行实现,第一个pass模拟灯泡,第二个pass模拟光圈。
2.6 玩家贴地行走
在游戏中,场景中玩家的走,跑等各种行为必不可少。最长用的就是角色控制器(Character Controller),其实在Cocos Creator 的demo中可以找到相关是实现代码。但是菜鸟看了一下,还没有到那种新手拿来就能用的地步,所以菜鸟研究了两种方案:
- 1.基于Terrain
- 如果场景中的地形使用的Terrain系统,那么你可以通过getHeightAt(x,y)可以获取指定点的地形高度
- 2.基于物理碰撞组件
- 给地形添加合适的碰撞器组件,用垂直向下的射线,计算出射线与碰撞器组件的交点。
除了上边提到的,其实还有好多:
- 基于手机屏幕中心点(射击游戏中的准星)到场景的射线检测
- 摇杆的简单实现原理
- 摇杆控制玩家
- 人物模型武器挂点
- 等等…
感兴趣的小伙伴们可以加菜鸟微信“Carlos13207”,私聊,大家共同进步
3.公众号
- 微信公众号:搬砖小菜鸟
欢迎关注,更多游戏开发干货持续更新