3d模型导出规范 cocos

2014-11-17 09:57:19 Test_dx 阅读数 1568

本文为CocoaChina论坛版主总结的是关于Cocos2d-x 3D 模型制作和导出时的一些注意事项,供大家参考。

1. 模型必须有材质且要给“漫反射通道“赋予贴图,没有材质的模型会在导出时被忽略或产生异常,没有贴图的材质载入时目前引擎无法处理。

2. 导出的材质中贴图默认寻址模式为GL_REPEAT模式,此时贴图尺寸要保持为2的N次幂大小,否则程序载入时会出警告,进而导致错误。

3. 导出时勾选fbx导出界面的Include->Geometry->Triangulate选项进行三角化。

4. 动画方面,只支持骨骼动画的导出,其他动画形式,如Morph动画,关键帧动画,目前不支持,而且动画要做到一个文件中,然后通过不同的帧间隔来区分。

5. FBX中只能包含单个骨骼动画对象而且只能有一套骨架。

6. 支持导出多个静态模型,你可以导出一个静态场景。

7. 单个mesh顶点数不要超过32767。

8. 最后生成的模型要需要使用“可编辑网格”(Editable Mesh)。

9. 如果制作的是IK动画,需要烘焙成普通骨骼动画,导出时勾选Include->Bake Aniamtion->Bake Aniamtion选项。

10. 不要修改模型的本地坐标系。

11. 顶点的纹理坐标不能超过4个(最大是 VERTEX_ATTRIB_TEX_COORD3 )。

12. 导出多个object后,如果发现模型位置有偏差,可以尝试用 “Reset XForm”命令进行重置。

2019-07-02 17:06:18 u013321328 阅读数 689

转载:https://blog.csdn.net/dawn_moon/article/details/90734991

文章目录
前言
3d系统基础
FBX模型导入
配置模型参数
相机分组
2D相机设置
添加UI节点
添加3D节点
设置灯光
设置平台接收阴影
设置3D相机
3D场景编辑器
设置模型材质
设置模型产生阴影
设置相机位置
播放动画
增加3D动作
本文假设你是一个新手,按照本文的操作,可以跑起来一个3D人物模型,附带两个跳舞的动画可以欣赏。

首先说明一点,目前2.1.1的3d功能还不完善,商用项目请不要升级。
本教程和源码献给先吃螃蟹的同学。

前言
昨天我把Cocos Creator最新2.1.1 版的3D demo放出来了,但是官方文档比较欠缺,论坛也缺少相关文档,这里就把过程详细写一下,也算是一个吃螃蟹的新姿势,希望对大家有用。

3d系统基础
在 Creator 2.1 版本中,支持了 3D 模型渲染、3D Camera、3D 骨骼动画 等 3D 特性,同时编辑器原生支持解析 FBX 格式的 3D 模型文件,不需要额外的导入流程。
详细见官方的文档。
下面开始讲解如何导入FBX格式的3D模型。

FBX模型导入
这里讲解带贴图,带动作的FBX模型。

在资源管理器新建一个文件夹DanceMode
将贴图文件夹textures和FBX模型文件同时拖入DanceMode目录下

配置模型参数
点击资源管理器里面的模型women,在属性面板设置缩放系数400,点击应用按钮

点击属性检查器里面的动画菜单,预先计算骨骼矩阵打上勾,点击应用按钮

到这里模型导入,配置完成,现在就可以开始使用了。
相机分组
因为要加载3d模型,又有2d的button,所以既有3d,又有2d,需要分组渲染,2d渲染ui,3d相机渲染模型。

在菜单项目–>项目设置—>分组管理里面新增一个分组ui。

2D相机设置
将默认层级管理器里面的节点都删掉,保留一个Main Camera。

将Main Camera的Group设置为ui
将Main Camera的Depth设为0,cullingMask勾上ui,clearFlags去掉Color

添加UI节点
添加两个按钮samba和macarena,代码桑巴舞和马卡雷纳舞
samba按钮的x位置-400,macarena的x设为400,两个按钮y坐标都为0
给按钮Group设置为ui
添加3D节点
在层级管理器,添加一个空节点和Canvas平级,命名为root,在属性面板点击3D,这样就变成了一个3D节点
给root节点添加灯光节点,命名为Light

在root下添加平台,命名为Plane

在root下添加摄像机,命名为3D Camera,在属性面板上点击3D将其变为3d节点
将资源管理下的模型文件women,拖入root下,引擎会自动解析模型

设置灯光
点击Light节点,设置属性说明:

Type:光源类型,选这DIRECTIONAL,平行光源
Intensity:光照强度
Shadow Type:阴影类型,选HARD,硬阴影
Shadow Resolution:阴影分辨率,值越大阴影越清晰。在 Shadow Type 不设为 NONE 时生效
Shadow Darkness:阴影暗度,值越大阴影越暗。在 Shadow Type 不设为 NONE 时生效
Shadow Min Depth:光源产生阴影的最小距离,如果物体跟光源的距离小于最小距离则不会产生阴影。在 Shadow Type 不设为 NONE 时生效
Shadow Max Depth:光源产生阴影的最大距离,如果物体跟光源的距离大于最大距离则不会产生阴影。在 Shadow Type 不设为 NONE 时生效
Shadow Depth Scale:光源深度缩放值,值越大阴影越暗。在 Shadow Type 不设为 NONE 时生效
Shadow Frustum Size:平行光中视锥体的大小,决定平行光产生阴影的范围。仅在 Shadow Type 不设为 NONE,Type 设为 DIRECTIONAL 时生效

设置平台接收阴影
为了产生阴影,必须设置Plane接受阴影,勾上Receive Shadows

设置3D相机
3D相机,主要有两个属性要设置

cullingMask,只勾选default
取消正交投影,设置视野大小

3D场景编辑器
点击场景编辑器上面的3D按钮,场景编辑器就切换为3D模式,如下图。

使用alt+左键,就可以改变移动视野,滚轮缩放,右键旋转视角

设置模型材质
点击模型文件下的材质球,查看属性面板,默认是使用冯氏材质

设置材质贴图,将对应贴图拖到对应框内,有3个贴图,法线贴图,漫反射贴图,高光贴图
在这里插入图片描述
设置模型产生阴影
点击层级管理器里面的节点Kachujin,查看属性面板

将shadow Casting Mode设置为On,这样可以在Plane上看见模型的阴影了

设置相机位置
选中3dCamera节点,可以看到场景中相机有3个轴,拖拉可以改变相机位置

选中菜单下面的工具条,第二个旋转工具,摄像机会出现三个带颜色的圆,是用来调整节点3个方向的旋转角的,鼠标放在圆上拖动,就可以改变摄像机的旋转角

菜单面板下面,开启游戏预览,可以查看3d预览

播放动画
层级管理器选中模型根节点RootNode,可以看到属性面板有一个Clips数组,将其值改为1
将资源管理器下,模型文件里面的动画资源拖入对应的框,playonload勾上
在这里插入图片描述
到这里就操作完了,选择浏览器运行,就能看到人物跳舞的画面了。
在这里插入图片描述

增加3D动作
目前2.1.1版本的动作系统,只有Rotation有了3D的,其他的动作都还没有支持3D,应该在下一个版本支持。我们先试试跳一跳的动作。

增加两个按钮,取名jumpLeft,jumpRight
脚本上增加两个回调,代码如下
jumpLeft() {
this.node.runAction(cc.jumpBy(1, -400, 0, 300, 2));
}

jumpRight() {
    this.node.runAction(cc.jumpBy(1, 400, 0, 300, 2));
}

效果如下:

源码地址:https://github.com/fylz1125/3Demo

2018-02-05 10:32:58 yuan2053 阅读数 1128

cocos2d-x 3D 建模规范及注意事项   

管理提醒:本帖被 lvlong 执行提前操作(2015-01-06)
1. 使用导出插件(fbx-conv)时应避免出现中文目录。
2. 模型必须有材质且要给漫反射通道赋予贴图,没有材质的模型会在导出时被忽略或产生异常,没有贴图的材质载入时目前引擎无法处理。
3. 导出的材质中贴图默认寻址模式为GL_REPEAT模式,此时贴图尺寸要保持为2N次幂大小,否则程序载入时会出警告,进而导致错误。
4. 导出时勾选fbx导出界面的Include->Geometry->Triangulate选项进行三角化。
5. 动画方面,支持骨骼动画的导出,其他动画形式,如Morph动画,节点帧动画目前不支持。另外动画要做到一个文件中,然后通过不同的帧间隔来区分。
6FBX中只能包含单个骨骼动画对象而且只能有一套骨架。
7. 蒙皮的骨骼数量要注意,建议不要超过最大值40根骨骼,而且越少越好,默认情况下每超过40根骨骼会增加一次drawcall,当然你也可以在导出的时候加 -n参数来修改最大骨骼数,因为GPU寄存器有限制,60多个骨骼蒙骗已经快到极限了,还要留出一些寄存器做其他用,所以这里我们默认限制40,把这个值改大会有风险。
8. 支持导出多个静态模型,你可以导出一个静态场景。
9. 最后生成的模型要需要使用可编辑网格”(Editable Mesh)
10. 如果制作的是IK动画,需要烘焙成普通骨骼动画,导出时勾选Include->Bake Aniamtion->
Bake Aniamtion选项。
11. 不要修改模型的本地坐标系。
12. 顶点的纹理坐标不能超过4(最大是 VERTEX_ATTRIB_TEX_COORD3,3D
Max中可通过“工具->通道信息”来查看),如图:

  

13. 如果发现模型位置有偏差,可以对模型进行“重置变换”->"重置选中内容", 然后“XForm”->“全部塌陷”,通常为了稳妥,在模型进行蒙皮之前最好进行一次这个操作,如图:


  
 



14.有些情况下,模型显示为黑色,这可能是贴图格式设备不支持,例如 dds图片 pixelformat为s3tc_dxt3 格式在酷派8720L上就不支持,如图




15.支持透明贴图:有的时候美术需要给模型赋予“透明贴图”来实现特定的效果,例如:翅膀,裙摆等 如图:



目前引擎支持透明贴图的使用,你需要在max中创建带透明通道的材质,如图:



透明通道(Opacity)贴图需要跟漫反射通道(Diffuse Color)贴图相同,是一个带透明度的贴图。
另一个需要注意的地方是,我们只需要给需要透明的mesh部分赋予“带透明通道的材质”,其他部分赋予不带透明通道的材质,这里可以应用“多维材质”来处理,这一点很重要
因为不这么做透明部分与非透明部分进行blend的时候很容易渲染错误。



16.模型的mesh不要放到骨骼节点下 如图:




应该改为下图这样即可:




把mesh001提出来。




推荐使用FBX文件格式作为模型导出的中间格式。
以上是关于cocos2d-x 3D 模型制作和导出时的一些注意事项,供大家参考。

其它资源下载:
1. 模型查看器下载地址:https://github.com/songchengjiang/cocos2d-x-ModelViewer-bin
2. fbx-conv 代码地址:https://github.com/lvlonggame/fbx-conv 下载后打开samples文件夹可以找到测试模型。
2018-08-19 20:35:52 linuxheik 阅读数 1679

现在的手机游戏也渐渐朝3D发展了,市面上3d游戏越来越多。。幸好cocos为我们提供了导入3D模型的方法,我相信它在3D方面的功能也会像平面那样越来越强大。

首先,在3dmax建好模型和调好动作,效果如下:

1.导出模型为FBX格式

2.用cocos2dx自带的fbx-conv.exe将FBX转换为c3b。我直接将模型文件拖拽至fbx-conv.exe图标上,自动就在模型所在文件夹下生成了c3b文件

3.导入cocos2dx

    1)将c3b和相应的材质图片放入Resources

    2)在helloworld.h里添加


 
  1. //人物

  2. cocos2d::Sprite3D * man;

  3. //动画

  4. cocos2d::Animate3D * play;

    3)在init函数里添加

 


 
  1. //--------------------------------------------加载3d模型

  2. //加载模型文件

  3. std::string fileName = "3dtest_02.c3b";

  4. man = Sprite3D::create(fileName);

  5. auto s = Director::getInstance()->getWinSize();

  6. man->setPosition(Vec2(s.width/2.f, s.height / 2.f-150));

  7. man->setScale(1.5f);

  8. addChild(man);

  9.  
  10. //获取骨骼动画信息

  11. auto animation = Animation3D::create(fileName);

  12. //播放12秒的动画

  13. play = Animate3D::create(animation, 0.f, 12.0f);

  14. man->runAction(RepeatForever::create(play));//循环播放

好了,这样就成功将模型放入cocos了,我们再来看看效果:


效果还是可以的

2019-06-01 23:51:02 fylz1125 阅读数 3818

本文假设你是一个新手,按照本文的操作,可以跑起来一个3D人物模型,附带两个跳舞的动画可以欣赏。

首先说明一点,目前2.1.1的3d功能还不完善,商用项目请不要升级。
本教程和源码献给先吃螃蟹的同学。

前言

昨天我把Cocos Creator最新2.1.1 版的3D demo放出来了,但是官方文档比较欠缺,论坛也缺少相关文档,这里就把过程详细写一下,也算是一个吃螃蟹的新姿势,希望对大家有用。

3d系统基础

在 Creator 2.1 版本中,支持了 3D 模型渲染、3D Camera、3D 骨骼动画 等 3D 特性,同时编辑器原生支持解析 FBX 格式的 3D 模型文件,不需要额外的导入流程。
详细见官方的文档
下面开始讲解如何导入FBX格式的3D模型。

FBX模型导入

这里讲解带贴图,带动作的FBX模型。

  • 在资源管理器新建一个文件夹DanceMode
  • 将贴图文件夹textures和FBX模型文件同时拖入DanceMode目录下
    在这里插入图片描述

配置模型参数

  • 点击资源管理器里面的模型women,在属性面板设置缩放系数400,点击应用按钮
    在这里插入图片描述
    在这里插入图片描述
  • 点击属性检查器里面的动画菜单,预先计算骨骼矩阵打上勾,点击应用按钮
    在这里插入图片描述
    到这里模型导入,配置完成,现在就可以开始使用了。

相机分组

因为要加载3d模型,又有2d的button,所以既有3d,又有2d,需要分组渲染,2d渲染ui,3d相机渲染模型。

在菜单项目–>项目设置—>分组管理里面新增一个分组ui

2D相机设置

将默认层级管理器里面的节点都删掉,保留一个Main Camera。

  • 将Main Camera的Group设置为ui
  • 将Main Camera的Depth设为0,cullingMask勾上ui,clearFlags去掉Color
    在这里插入图片描述

添加UI节点

  • 添加两个按钮samba和macarena,代码桑巴舞和马卡雷纳舞
  • samba按钮的x位置-400,macarena的x设为400,两个按钮y坐标都为0
  • 给按钮Group设置为ui

添加3D节点

  • 在层级管理器,添加一个空节点和Canvas平级,命名为root,在属性面板点击3D,这样就变成了一个3D节点
  • 给root节点添加灯光节点,命名为Light
    在这里插入图片描述
  • 在root下添加平台,命名为Plane
    在这里插入图片描述
  • 在root下添加摄像机,命名为3D Camera,在属性面板上点击3D将其变为3d节点
    在这里插入图片描述
  • 将资源管理下的模型文件women,拖入root下,引擎会自动解析模型
    在这里插入图片描述

设置灯光

点击Light节点,设置属性说明:

  • Type:光源类型,选这DIRECTIONAL,平行光源
  • Intensity:光照强度
  • Shadow Type:阴影类型,选HARD,硬阴影
  • Shadow Resolution:阴影分辨率,值越大阴影越清晰。在 Shadow Type 不设为 NONE 时生效
  • Shadow Darkness:阴影暗度,值越大阴影越暗。在 Shadow Type 不设为 NONE 时生效
  • Shadow Min Depth:光源产生阴影的最小距离,如果物体跟光源的距离小于最小距离则不会产生阴影。在 Shadow Type 不设为 NONE 时生效
  • Shadow Max Depth:光源产生阴影的最大距离,如果物体跟光源的距离大于最大距离则不会产生阴影。在 Shadow Type 不设为 NONE 时生效
  • Shadow Depth Scale:光源深度缩放值,值越大阴影越暗。在 Shadow Type 不设为 NONE 时生效
  • Shadow Frustum Size:平行光中视锥体的大小,决定平行光产生阴影的范围。仅在 Shadow Type 不设为 NONE,Type 设为 DIRECTIONAL 时生效
    在这里插入图片描述

设置平台接收阴影

为了产生阴影,必须设置Plane接受阴影,勾上Receive Shadows
在这里插入图片描述

设置3D相机

3D相机,主要有两个属性要设置

  • cullingMask,只勾选default
  • 取消正交投影,设置视野大小
    在这里插入图片描述

3D场景编辑器

点击场景编辑器上面的3D按钮,场景编辑器就切换为3D模式,如下图。
在这里插入图片描述
使用alt+左键,就可以改变移动视野,滚轮缩放,右键旋转视角

设置模型材质

  • 点击模型文件下的材质球,查看属性面板,默认是使用冯氏材质
    在这里插入图片描述
    在这里插入图片描述
  • 设置材质贴图,将对应贴图拖到对应框内,有3个贴图,法线贴图,漫反射贴图,高光贴图
    在这里插入图片描述

设置模型产生阴影

  • 点击层级管理器里面的节点Kachujin,查看属性面板
    在这里插入图片描述
  • shadow Casting Mode设置为On,这样可以在Plane上看见模型的阴影了
    在这里插入图片描述

设置相机位置

  • 选中3dCamera节点,可以看到场景中相机有3个轴,拖拉可以改变相机位置
    在这里插入图片描述
  • 选中菜单下面的工具条,第二个旋转工具,摄像机会出现三个带颜色的圆,是用来调整节点3个方向的旋转角的,鼠标放在圆上拖动,就可以改变摄像机的旋转角
    在这里插入图片描述
  • 菜单面板下面,开启游戏预览,可以查看3d预览
    在这里插入图片描述

播放动画

  • 层级管理器选中模型根节点RootNode,可以看到属性面板有一个Clips数组,将其值改为1
  • 将资源管理器下,模型文件里面的动画资源拖入对应的框,playonload勾上
    在这里插入图片描述
    到这里就操作完了,选择浏览器运行,就能看到人物跳舞的画面了。
    在这里插入图片描述

增加3D动作

目前2.1.1版本的动作系统,只有Rotation有了3D的,其他的动作都还没有支持3D,应该在下一个版本支持。我们先试试跳一跳的动作。

  • 增加两个按钮,取名jumpLeft,jumpRight
  • 脚本上增加两个回调,代码如下
    jumpLeft() {
        this.node.runAction(cc.jumpBy(1, -400, 0, 300, 2));
    }

    jumpRight() {
        this.node.runAction(cc.jumpBy(1, 400, 0, 300, 2));
    }

效果如下:
在这里插入图片描述
源码地址:https://github.com/fylz1125/3Demo
好了,就写这么多了,欢迎关注我的公众号【Cocos Creator研究笔记】,可以下载最新源码。

Cocos2d-x中的3D功能

阅读数 3790