问斗战神隐藏任务有哪些|隐藏任务有哪些
斗战神 隐藏任务
-
四川省省帅
在unity里面,情况也是如此,不过再复杂一点展开。1、骨架就是transform。不像maya和理论那样,是一种实体的单独的存在。在unity里,骨架就是transform的层次关系。一个骨头就是一个transform。这个人体的骨架(transform)组织结构一般是abdome(spine,leftupleg,rightupleg),abdome是根(有时用hip),向上是spine(neck,leftuparm,rightuparm)。这个在哪里都差不多。关键是root,就是abdome。在unity里,引用骨架都是靠它。2、mesh。因为unity里的mesh有绑骨和未绑骨两种(在哪里都差不多)。在导入资源的时候,unity会为绑骨的mesh自动生成一个skinnedmeshrenderer,为未绑骨的生成一个meshfilter和一个meshrenderer。不精细的人物,头盔、手、武器(甚至靴子)等都不用绑骨,像骑马与砍杀,只需要把armor绑骨就好。不绑骨情况:meshfilter负责从文件中取出真实的mesh(这里用的是script里的类来表示,具体可以查reference)。meshrender负责显示。这种想要固定在人体上,其实很简单,把这个gameobject的tansform的parent设置为需要绑定的骨头的transform就好。(比如武器,transform.parent=item_l,item_l是左手一个绑定武器骨头)所以,缺点也很明显,一个mesh只能绑定到一个骨头,也就是这个mesh不会变形。(这个可以作为绑骨和不绑骨的依据,看mesh是否需要变形,所以头盔,武器都不需要绑骨(仅在unity中成立))
绑骨情况:skinnedmeshrenderer有俩个重要成员,一个是mesh,一个是bones。当然,mesh里有每一个顶点的绑骨数据,但这里存的是序号。就是第几个骨头,并没有指明是哪个骨头,但是如果给一个根骨头就能推测出所有的骨头了。这里的bones把所有的骨头都列出来了,至于顺序,有点扯淡,没啥规律(调试结果)。问题出来了,那skinnedmeshrenderer里的骨头这么没顺序,mesh里的骨头序号怎么对应过来呢?好吧,仔细想想,其实没那么复杂。因为skinnedmeshrenderer里包含mesh和bones两个成员,由于都是一起生成的,那么就一个坑埋一个人,正好就对应起来了。之所以要这么个bones列表,是因为要把它画成transform树吧。这样就再回答一个问题,如何换装备?原skinnedmeshrender对应的骨骼已经存在,不可能销毁它(还有其他部分要用),所以就修改skinnedmeshrenderer本身就好。要改的有两个值(加上材质三个):mesh和bones。其实,原bones根本不用变,只需要把mesh变了就好(除非你的绑骨不是一帮人做的)。详细代码看看unity有个官方项目。另外,我觉得吧,连skinnedmeshrender都不用操纵,直接重新生成就好。看文章最后的代码。动画部分最有爱。其实呢,layer这个玩意,用来分组比较合适。优先级这个特点也是可以用的,不过寄太大信心。一个layer可以设置同样的叠加方式(累加,混合),控制方式(只控制上半身)。一般不同动画都放在不同层,相同功能动画在同一层,比如向左砍人和向右砍人。另外,我们动画一般都是自己搞到的一个一个片段,如果你不是动画师,还是不要用啥累加和混合了。用一些独立的动画,让他控制身体的某些部位就好。所以,综合看,人物控制,在unity 里,换装备,换武器都是可行的。不知道咋了,网上就是搜不到如何换装的,搞到我自己研究了好久。另外,最近的新发现,升级到4后,有个mecanima模块,用来做动画重定位的,这个叫帅啊。我的以下代码没办法处理动画,因为动画之前无法重定位。但是可爱的unity的新功能来了,给每个armor和每个动画都创建一个对应的**atar,然后就直接可以用一**画驱动所有人了(虽然表面上我们显示的是一个人,但是在内部,实现这种换装方法用的是好几个独立的人体骨骼,当然,这种方法要求每个独立的骨骼都是相同的)。附上换装代码。pragma strict
public var o_body_r:gameobject;public var o_hand_l_r:gameobject;public var o_hand_r_r:gameobject;public var o_helmet_r:gameobject;public var o_calf_l_r:gameobject;public var o_calf_r_r:gameobject;public var o_weapon_r_r:gameobject;public var body1_r:gameobject;private var mbody:gameobject;private var mhand_l:gameobject;private var mhand_l_p:transform;private var mhand_r:gameobject;private var mhand_r_p:transform;private var mhelmet:gameobject;private var mhelmet_p:transform;private var mcalf_l:gameobject;private var mcalf_l_p:transform;private var mcalf_r:gameobject;private var mcalf_r_p:transform;private var mweapon_r:gameobject;private var mweapon_r_p:transform;function start(){
}
private var if**:boolean=true;function update(){
if(input.getbuttondown("fire1")){
generate(if**);if**=!if**;}
}
function generate(num:boolean){
if(mbody){
destroy(mbody);}
if(num=true){
mbody=instantiate(o_body_r,transform.position,quaternion.identity);}else{
mbody=instantiate(body1_r,transform.position,quaternion.identity);}
mhand_l_p=mbody.transform.find("abdomen/spine/thorax/shoulder.l/upperarm.l/forearm.l/hand.l");mhand_l=instantiate(o_hand_l_r,mhand_l_p.position,quaternion.identity);mhand_l.transform.parent=mhand_l_p;mhand_l.transform.localrotation=quaternion.euler(0,270,90);mhand_r_p=mbody.transform.find("abdomen/spine/thorax/shoulder.r/upperarm.r/forearm.r/hand.r");mhand_r=instantiate(o_hand_r_r,mhand_r_p.position,quaternion.identity);mhand_r.transform.parent=mhand_r_p;mhand_r.transform.localrotation=quaternion.euler(0,270,90);mweapon_r_p=mbody.transform.find("abdomen/spine/thorax/shoulder.r/upperarm.r/forearm.r/hand.r/item.r");mweapon_r=instantiate(o_weapon_r_r,mweapon_r_p.position,quaternion.identity);mweapon_r.transform.parent=mweapon_r_p;mweapon_r.transform.localrotation=quaternion.euler(0,270,90);mcalf_l_p=mbody.transform.find("abdomen/thigh.l/calf.l");mcalf_l=instantiate(o_calf_l_r,mcalf_l_p.position,quaternion.identity);mcalf_l.transform.parent=mcalf_l_p;mcalf_l.transform.localrotation=quaternion.euler(0,270,90);mcalf_r_p=mbody.transform.find("abdomen/thigh.r/calf.r");mcalf_r=instantiate(o_calf_r_r,mcalf_r_p.position,quaternion.identity);mcalf_r.transform.parent=mcalf_r_p;mcalf_r.transform.localrotation=quaternion.euler(0,270,90);mhelmet_p=mbody.transform.find("abdomen/spine/thorax/head");mhelmet=instantiate(o_helmet_r,mhelmet_p.position,quaternion.identity);mhelmet.transform.parent=mhelmet_p;mhelmet.transform.localrotation=quaternion.euler(0,270,90);}
-
问 九阴绝学都有哪些隐藏任务
提问时间:2024-04-30 14:44:50
答 w707九阴绝学交流群 九阴绝学都有哪些隐藏任务?隐藏任务怎么完成?隐藏任务完成方法九阴绝学中,我们一边跟随着主线,一边升级的过程中,会触发很多支线任务,这个就...
-
问 时空裂痕里隐藏任务都有哪些啊?
提问时间:2024-04-30 16:06:35
答 在游戏中**可以通过和**对话接取和完成任务,不过在游戏中同样有各种各样需要**触发的彩蛋任务,比如在银木森林第一个传送点和和鲁迪的马车之间**可以遇到一只中立...
-
问 诛仙手游焚香谷隐藏任务有哪些
提问时间:2024-04-30 06:17:47
答 诛仙手游焚香谷隐藏任务介绍隐藏任务一:踩青灵石焚香内谷云易岚头上烦跟头隐藏任务二:内谷与异性互动跳舞隐藏任务三:内谷杀1000发狂鱼人获得【感觉自己香香哒称号】
-
问 火炬之光2隐藏任务有哪些
提问时间:2024-04-30 18:04:18
答 最大的是传说中的“机器人任务”另外据说每个地图都有隐藏任务,不过我见到的不多。目前见到如下三个(地图上没标记自己偶遇的):a,第二章主城往下走的奥西亚荒原上,地...
-
问 法宝隐藏任务在哪里 最新法宝隐藏任务坐标位置攻略
提问时间:2024-04-30 17:16:50
答 诛仙手游隐藏任务-法宝法宝也是很重要的,可以铸元可以精进,是增加属性的一个重要途径之一。伤心花任务地点:狐岐山(鬼王)任务奖励:伤心花(狐岐山94.121)位置...
-
问 多玩斗战神插件|所有隐藏任务
提问时间:2024-04-30 00:50:08
答 这时候,记忆调教器机械化的声音,在陆宇的脑海中又响了起来。这人说的话,竟然是汉语。杨浩听到张波的话,脸色一变,道“五千太少了,我也没有脸去卖,反正我三百万都亏了...
-
问 斗战神隐藏任务攻略|自动主线
提问时间:2024-04-30 09:57:40
答 见陆宇不说话,叶宁终于鼓起勇力,对陆宇羞涩的道“你不跳舞么?“莫不是,小姐要送我们礼物?随性兴奋不已。陆正田听到李军的话,不由急了,道“李主任,话可不能这么说,...
-
问 完美国际里的隐藏任务有那些?
提问时间:2024-04-30 21:07:53
答 60级隐藏任务这个任务不用找**去接,只要到固定的坐标去溜达下就可以接到了:①.113 622 困魔锁;②.119 640 灭魔铃(高度63有个箱子,对话,即可...