为什么同一件衣服穿在2个职业的身上!外形就不一样了?
我复制套装是发现的!我把战士身上的绿色龙形的肩甲和头盔拿下!给法师穿!就会变成黄色的那种!
这是什么原因?
难道每种职业都有自己特定的外形》? 发张图上来看看赛!!
你希望女性角色套着男式的全覆式铠甲么~?
还是很希望炼金穿着徐锦江的外套只露个头发……
同样的衣服 还是枪娘最赞~锦江穿全套特像半兽人 装备会因为职业的不同而改变的
只有武器才不会变样 没注意过,去试试。 是这样的
不同职业体型都不一样,不可能穿同件装备也一样的啦 不甚了解,不明情况的群众围观 是这样的,同一件装备不同职业穿上的样子是不一样的 就这样设计的额 当然会不一样 确实是不一样 同樣的裝甲, 只是同名, 其實跟本是兩個不同的模型
裝甲跟武器是兩個不同的概念, 裝甲是複雜多了!
下面的文章, 寫得不錯, 是說ogre 系統的:
换装系统是每款网游中都必须实现的东西,原理说白了也很简单,就是把装备(通常是Mesh)挂接到人物的骨骼上,根据角色需要可选择不同的装备替换,Ogre中的骨骼动画系统中可以直接把一个Object挂接到骨骼上,但问题是Ogre中一个Object只能挂到一块骨骼上去,对于一些覆盖面广的装备(如衣服)则不那么适用,所以 Ogre中不能通过这种直接的方式实现换装,目前一般用以下几种方法实现.
一.对于可选装备比较少的游戏,用这种方式实现非常简单实用:一开始做人物模型的时候就把所有可能的装备都跟人物一起导出为一个模型(所有装备的骨骼权重都已调好),然后就可以通过 SubEntity::setVisible函数设置需要的装备可见,不需要的装备则隐去,这样就实现了换装的效果,这种方式对于装备少的游戏比较适用,需要做的事情也很少,但如果你有成百上千的装备要替换,这显然不是个好办法.
二.如果你装备很多,那你就该考虑这种方法了:首先你必须把装备导出为一个独立的模型,这个模型还必须带有骨骼,然后你就可以在代码中通过调用 Entity::shareSkeletonInstanceWith(Entity* entity)函数与人物共享骨骼,这里有几个需要注意的地方,首先调用shareSkeletonInstanceWith函数要求共享骨骼的两个 Entity有相同的Skeleton,否则会抛出异常,也就是每个装备都必须有一副跟主角一样的骨骼,我们当然不可能要求美工为每个装备模型都做一副骨骼,所以只能在程序中手动设置装备的Skeleton跟主角的一样,Ogre中提供了这个函数:void Mesh::_notifySkeleton(SkeletonPtr& pSkel)可完成此操作,之后就可以调用shareSkeletonInstanceWith函数了.然后第二点需要注意的是装备顶点权重问题,我们必须具体指定此装备跟哪几根骨骼有关,以及权重的分布,由于装备拥有跟主角一样的一套完整骨骼,因此不能影响到此装备骨骼的权重必须设为0,否则装备会散架,设置顶点权重可以调用void SubMesh::addBoneAssignment(const VertexBoneAssignment& vertBoneAssign)函数.
似乎还有种方法是通过删除人物带的想更换的装备SubMesh的iterator,之后再换上新的装备SubMesh并重建SubEntityList来实现换装的方法,但个人不推荐这种方法,太暴力了,而且频繁的删除重建操作也会造成效率低下.
出處: http://www.cppblog.com/zzxhang/archive/2008/07/23/56961.html
TL 貌似是第一個系統. 你可以下載torched 的教學, 在wardrobe and animation 的一章中打開例子檔, 可以見到相近的情況. 我也遇到过,不过大家遇到过这种事没有:同一件装备,装备到不同的角色身上,装备外形一样??? 就是这样的啊 我还发现那个套装,名字一样,在图片里也不一样 因为游戏是这样设置的 游戏一早的设定好的。。 是有区分的。
页:
[1]