骨骼与动画重定向——Unity探索笔记之视觉解决方案(一)

骨骼与动画重定向——Unity探索笔记之视觉解决方案(一)

本篇关键词

挑选人物资源

Avatar和动作状态机


1. 我能找到什么资源?

身为一个穷且只懂程序的独立游戏开发者,首先拦在我面前的不是游戏的玩法如何微创新,而是我如何能有效利用各种资源,因为目前我还没想做什么就做什么的力量。

第一个来源毫无疑问就是Unity的资源商店,第二个是Mixamo,第三个去淘宝花钱找人定做。

1)Unity资源商店的好处是,花少量的钱能买到不错的模型或插件,实在太贵就去淘宝嘛!插件买来带代码还好说,不行就自己改;但人物模型和动作怎么办?这两个很可能直接买不到称心的,迫切需要解决修改问题,要看有没有其他途径获得。

2)Mixamo在业界评价挺高,不过我之前因为没有从事过3D的工作,所以根本不知道。它针对模型和动作提供了一个完整的解决方案,这个方案可以让你有修改权限,我试了一遍,感觉Amazing!

3)去淘宝找人做这件事我觉得只能是个候补解决办法,因为不能随便反复修改。

综上所得,插件部分,从Unity(或淘宝)上买,人物模型想办法利用Mixamo,如果动作方面Mixamo上不能提供,且资源商店也没有办法解决,就去淘宝找人做。

2. 模型和动作的工作流问题

也许有人会问,就一个人还要什么工作流!我认为不管几个人,做事不得章法没有体系的话,就是在浪费时间和金钱。

我该怎么确定工作流呢?

先从资源商店试起,我下载了其中一个免费模型,在Unity使用起来当然没有问题,如果我要在Unity里重复利用模型的动作,怎么办呢?我记得很早之前这个就不算技术难题了,接下来围绕换动作这个主题,看看各个方面的资料是怎么支持Unity来做这件事的。

1) Unity Manual关于Animation的部分

大方面来看,重点要看下图红框框出来的部分,第四个红框列出了重点专有名词的解释(老外真贴心)。

2) Animation Clip重点看下图

这个部分看完,要知道常用的导入格式是什么及这个格式的特点。如果要用到Avatar,需要把模型设置为humanoid。什么是Avatar,怎么创建和设置Avatar。如何使用人性模型。

3) Animatior Controller重点看下图

这个部分看完,要知道什么是动作状态机及一些简单的细节。

4) Animation Reference是重点,几乎都要看,除了下图蓝框画出来的不用看。

以上看完就要做简单的动作状态机了,还有常用的导入格式fbx相关信息。

看完上面的资料没记住还不会怎么办,很简单,用练习来加深记忆,下面就从Mixamo工作流中继续学习Unity有关Animation的知识。

5) 有关Mixamo

Mixamo

国外的一些东西,可以先看看上面维基百科大致了解一下情况,我在Mixamo的模型里转了好几天才发现,维基百科已经给了我想要的信息:它的人物骨骼究竟遵循什么标准可以套到不同的动作上?用机器学习解决的。

首先打开Mixamo官网,看到下图所示

Store——提供人物模型和动作的地方,一切都是免费!太开心了!

Products——如果想自己创建角色、骨骼、动画需要哪些工具。

官网虽然提供了教你怎么使用工作流的视频,可是在我看来,官网的视频远远没有我在YouTube上找的好:

视频一:

youtube.com/watch?

朋友们,看完上面这个视频,你就知道如何从Mixamo上下载模型动作,如何导入Unity里,最后如何做动作状态机,是不是很棒啊!我怎么就没早点找到呢!(怒掀桌子!)

注意:经过我实践得出:单独下载模型或动作都是不行的,需要模型动作一起打包下载才可以,不然你导入Unity里的fbx文件都是空的。

从Mixamo上下的模型动画文件有个特别大的好处是,文件格式非常清晰,如下图所示

Sporty_Granny就是模型,下面名字中间有@的是Unity推荐的动作命名规则,这样的规则非常适合重用动作,因为它把人物Avatar和动作分开了,我在Unity资源商店里下载的免费模型就不是这么做的,居然每个动作都有自己的Avatar,当然这可能就是免费的原因。

所有资料都准备好了,我就要讲怎么换Avatar,重用动作了。

6) 动画重定向

刚开始我在Manual里找答案,它还真提供了,就是Retargeting of Humanoid animations,但是!我根据它说用Character Controller做的感觉不太对啊,后来想到,换动作这件事不就是把人物换了吗,那人物模型对应的不就是Avatar,我把动作里的Avatar Definition改成Copy From Other Avatar不就成了,如下图

结果Unity不让这么干,改了之后动作没法用,只能还原。

其实这点我不是很明白,因为提示框里写了可以这么做,Avatar不就是提供动作重定向的接口,为什么不能这么做?希望有懂得朋友回答一下。

此路不同,那上谷歌搜一下中外资料吧,中国的只有几个非常简单的帖子提到,其中一个给了点线索,是说通过Animator Component里的Controller替换来重定向,可他只用文字描述,所以我不确定这么做行不行,因为Manual里没说啊(其实说了是我没搞清楚),后来在YouTube上找到一个国外的教程,用的就是那个帖子的思路:

视频二:

youtube.com/watch?

既然已经有先例了,可以撸起袖子做了,我把前面视频一做Animator Controller和Script修改了一下替换到从Mixamo下载下来的另一个模型上,还真成功了!(如下图红框所示需要替换的)

但是同样的东西放到从资源商店下载的免费模型上,还是不成功,也许是免费模型的Avatar跟Mixamo的规则不一致导致的吧。

最后,我又看了一遍Manual上的Retargeting of Humanoid animations,这才发现了我遗漏的事情,它在“推荐的层级结构”标题下其实已经表述清楚表示出它怎么重定向的,就是Animator Controller和Script相结合,但是我却忽略了黑色大加粗标题写的(智商呢),直接看推荐的步骤了,步骤里用了Character Controller,我就以为一定要用这个,其实人家只是推荐而已。

至此,动画重定向就完成了。

7) 总结:所以我确定的最终流程是,先撇开Unity资源商店,通过Mixamo的工作流中的Fuse来制作人物模型,直接上传网上自动添加骨骼后,选择合适的动作打包下载,最后重定向为自己所需的动作。

8) 一个小tip——看不到状态机里的动画进度条怎么办?

这是在做Animator Controller时碰到的,我还真搜到了遇到一样问题的哥们儿,可用了他的方法还是看不到,但他却给我提供了一个解决思路,就是要刷新一下这个Animator Controller。

所以我的办法是:运行后,先点中人物,还是没有显示进度条的话,就重新拖个Animator Controller到Animator Component里就好了,就是这么简单!

作者有话说:

啦啦啦啦~~终于写完了,好开熏!写的累死我了!

1. 我要做什么游戏呢?大概是FPS类型的,具体什么玩法还在想,风格希望是Low Poly风,感觉很Indie Game(其实穷,写实范儿做不起也做不来……)。

2. 这周我就得先当个美术,做几个模型出来看看设想的人物自己能不能搞定,当然用的是Mixamo提供的工作流,就是用Fuse捏人啦,当美术的过程就不用写了吧?

3. 想想一点不写也不好,可能的话写点跟游戏相关的其他非技术体会吧~

好了,本篇就到这里,感谢您的收看,我们下次再见!~

发布于 2016-11-07

文章被以下专栏收录