cocos2d-x实现3D模型的换装系统的研究

这篇文章不会给出具体实现和代码(因为我也还没有搞定),但是会对我所理解的换装系统进行一些分析,并给出方向。

一、什么是换装系统

RPG游戏中,更换不同的武器、装备,人物模型也会有相应的改变,这就是换装系统。实现换装系统,可以增加表现力,比如暗黑中换不同盔甲,人物看起来也会不一样,有的极品装备还会有光效环绕,这样刷装备才会更加有趣。

二、实现换装系统的方式

1、武器和外挂式组件(比如护肩,披风)的换装。

这个最简单也最基础,在手部或者肩部创建一个绑点,然后将物体挂接上去就行。这类物体大多数是刚体且没有动画,对应的绑点骨骼会驱动物体正确的运动。在Unity中绑点、骨骼都和Transform组件结合在了一起,所以操作起来非常直观。

2、替换模型

早期网游处理都非常简单,装备会影响到外观的就武器、头盔和盔甲。所以只需要对每一个盔甲准备一个模型,提换盔甲时更换对应的模型就可以了。这个也很简单,跟武器处理类似,不过就是基础模型和挂接模型的区别。

3、替换材质

美术在出资源时,会对同一模型设计不同的贴图。比如同一怪物可以是绿皮的,也可以是黄皮的,如果花纹再复杂些就可以是精英怪物。 对盔甲也是,同一模型替换不同贴图就可以达到不同装备的效果。

4、替换部件

这个是最麻烦的,它涉及到共享骨骼数据。骨骼动画简单说就是,骨骼驱动顶点(受权重值影响),顶点影响蒙皮。一般来说,3D模型和动画有三个核心数据,一个是模型数据,决定了显示的外观;一个是骨骼数据,这个是动画的基础,描述了骨骼之间的权重和关系;最后一个就是动画数据,描述了骨骼是如何运动的。不同模型是可以共享同一套骨骼以及同一套动画的。这个可以很大程度上节约资源,一个模型可能只有一两百K,但是一个动画动辄就几兆。

部件替换的先决条件是,被替换的物体跟原物体使用的是一套骨骼,并且具备相同的权重。制作时也要注意,比如盔甲和头部在动画运动时不能出现接缝。

火炬之光的部件很多都是放在一个虚拟模型上的,即看起来是一个人形,但是除了手套、盔甲、靴子、头盔,其他部位是没用的。游戏会根据一个配置文件决定某穿上一个装备时删除哪几个部件,添加哪几个部件。这么做的好处可能是制作和查阅时更加方便,可以更好的处理装备和身体的动画。

换装的实现很简单,无非就是删除原物体,添加新物体。但是为什么能换装,这个是我们首先需要理解的。  cocos2d-x能不能换装,则是我们需要研究的。

至少现在看来,cocos2d-x v3.2版本是无法实现部件替换的。因为它还不支持submesh,一个模型就是一个整体。 不过我看了看github上面最新的代码里面是支持submesh和绑点的。理论上是可以实现模型换装的。具体代码要研究下才能完成。

(未完待续)

时间: 2024-10-10 17:22:48

cocos2d-x实现3D模型的换装系统的研究的相关文章

Unity3D游戏开发初探—2.初步了解3D模型基础

一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被.机械等等,比如一个大楼的3D模型图.3D模型也包括玩具和电脑模型领域. 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.网络游戏.虚拟社区.电子商务.远程教育等等.甚至对于旅游业,3D互联网也能

iOS11 AR场景中关于3D模型的触碰检测

最新 iOS11中的AR特别火爆,自己也到网上找了几个Demo把玩了下,核心代码无非以下: //AR视图:展示3D界面 @property(nonatomic,strong)ARSCNView *arSCNView; 添加模型方法一: // Create a new scene SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn"]; // Set the scene to the view self.arSC

Unity3D 学习教程 8 3d模型加贴图

点击创建  添加一个文件夹 命令为pic 把图片拖入到工程中 拖入后图片显示在pic文件夹中 把图片拖到立方体中 这样就完成了为3D模型添加贴纸的工作 --------------------------------------------------------------------------------------------------------------------------------------------------- 另一种方法添加贴纸 创建一个贴纸球  点击创建 点击

【pano2vr】网页Flash中简单实现炫酷的3D模型制作

花了两天时间学习如何能够高效的实现3D模型效果,毕竟是从0开始学习,感觉pano2vr这款软件挺容易上手,并且可以很容易实现简单的热点交互,可以根据交互需求设置皮肤,故将这一款软件推荐给大家: 1.简介.http://ggnome.com/pano2vr.用户可以自行下载. 2.简单教程. 3.皮肤编辑.用户可以根据提供的系统皮肤或者自制皮肤或网上资源实现,皮肤可以说是一个默认的播放器. 4.应用.用户可以将其应用于Flash以及网页中,根据官方提供的信息进行摸索制作. Flash API:ht

HT for Web自定义3D模型的WebGL应用

有不少朋友询问<HTML5 Web 客户端五种离线存储方式汇总>文章例子的3D表计模型是如何生成的,这个例子是通过导入3dmax设计好的表计模型,然后通过obj格式导入到HT for Web系统中进行控制,这种方式特别适合复杂模型的应用场景,但对于监控系统的很多应用其实并不需要专业的美工使用专业的3D编辑工具,完全通过HT for Web预定义的和内置自定义3D模型API就能满足很多应用,这里介绍几种场景的自定义3D模型应用. 上图是采用HT提供的createRingModel函数,通过编辑2

【Unity】3.0 第3章 创建和导入3D模型

分类:Unity.C#.VS2015 创建日期:2016-04-02 一.简介 利用Unity内置的基本模型和工具,不需要借助任何其他的三维建模软件,就可以直接创建出各种3D模型,这是这一章我们首先学习的内容. 当你学会了基本操作技巧后,再进一步利用(3ds Max.Maya.Blender等)专业的三维建模软件学习复杂三维模型的构建,然后再将其导入到Unity工程这就可以使用了. 本章基本操作关键点: l 快捷工具栏的使用. l 快捷键(Q:手形.W:平移.E:旋转.R:缩放)的使用. l 快

Flash Stage3D 在2D UI 界面上显示3D模型问题完美解决

一直以来很多Stage3D开发者都在为3D模型在2DUI上显示的问题头疼.Stage3D一直是在 Stage2D下面.为了做到3D模型在2DUI上显示通常大家有几种实现方式,下面来说说这几种实现方式吧. 实现方式1: 在2DUI上挖个洞透过去显示3D层.这种做法的缺陷在于如果两个UI界面同时打开就会UI错层显示错乱.为了解决这问题很多程序员选择了当挖洞显示3D的UI打时把其他界面隐藏掉,用户体验超差. 实现方式2: 利用Context3D 的 drawToBitmapData API 实时将3D

将.stl文件转化为.dae并动态加载到SceneKit显示(ios中显示3d模型)

ios8之后苹果推出了一个3D模型渲染框架.SceneKit.但是国内针对这方面的教程并不是很多.前两天搞了一下也是一头雾水,终于把最基础的内容搞明白了之后,写下这篇随笔作为cnblogs的开篇,希望能一直写下去. SceneKit现在可以支持有限的几种模型,截止到我写这篇文章为止似乎只有.dae和.abc后一种模型我没有使用过.这篇文章只针对.dae模型写. 首先如果是希望加载一个已有的,不需要程序在运行的时候动态添加的dae模型.那么我们可以直接新建一个game类型的工程.在选项中选择Sce

第七章:3D模型渲染

原文链接: http://www.rastertek.com/gl40tut07.html Tutorial 7: 3D Model Rendering This tutorial will cover how to render 3D models in OpenGL 4.0 using GLSL. The code in this tutorial is based on the code from the diffuse lighting tutorial. 本章将介绍如何在OpenGL