本系列文章记录下使用cocos2d-x开发一款体素风游戏的过程,遇到的问题,解决办法及收获。使用了cocos2d-x的3D功能,以下简称c3d
前言
最近cocos官网推荐了一款使用cocos2d-x开发的3D游戏,叫《Steps》(信步),是一个乌克兰小伙的作品,是一款休闲小游戏,正是类似MineCraft那种体素(voxel)风格的,看起来效果还不错,于是自己也打算尝试搞一个这样的游戏玩玩。
本文是使用c3d开发一款体素风游戏系列的第一篇,记录了开发环境的配置和界面编辑器的选择和实验。
-
引擎:cocos2d-x 3.10
-
体素模型编辑器:MagicaVoxel 0.98
1. 新建cocos工程
使用cocos命令行工具创建即可,建议使用lua类型,因为对3D效果的调试可能要频繁修改UI部分要频繁重启游戏。
2. 模型创建和导出
使用MagicaVoxel创建出一个3D小汽车,如下图所示:
MagicaVoxel比较容易上手,
画刷工具有六种,
-
L 画线
-
C 圆
-
P
-
V 自由矢量
-
F 面
-
B 方块
画刷操作类型有四种:
-
Attach 附加
-
Erase 擦除
-
Paint 画 (覆盖原体素)
-
Move 整体移动
自己都实践操作下就知道其中区别了
YouTube上有很多系列教程,跟着视频操作很快就能上手,这里的小汽车画法是模仿下面这个视频来操作的:
[MagicaVoxel | Tutoriel FR - #2 Construisons !](https://www.youtube.com/watch?v=GEiiH74IStY) |
3. 在cocos中加载模型、展示场景
c3d支持MagicaVoxel导出的obj格式文件,同时还支持c3b, c3t两种模型格式文件后两者是通过把fbx-conv工具由fbx文件转换而来,在cocos中使用c3b和c3t格式模型可以支持动画等特性,而直接使用obj的话不能播放动画。本文暂时直接加载obj文件,后面会使用Blender把obj转为fbx,再通过fbx-conv转换为c3b和c3t, 以便于在cocos中播放3D动画等功能。
为了简单,我直接在cpp里建了个Layer,加载上一步导出的car1.obj:
效果图:
在下一篇文章中再加入调整摄像机的视角的触摸响应函数。