角色全都是用手机的dotpict这款像素画APP一点一点画出来的,没啥艺术细胞也不懂什么解剖学,人体比例什么的,先乱画了一个角色练练手吧,制作动画要用的。虽说也是像素风的,跟其他现有的像素风游戏差得不是一点半点_(:з」∠)_
动画制作我使用的是Asset Store里面的Anima2D插件,真心好用,不过仅仅合适于两朝向的动画,例如《饥荒》,而想要制作四朝向动画,例如GBA上《塞尔达传说》那种前后左右四朝向,这样的动画用2D骨骼来弄限制就太多了,最终还是要老老实实逐帧手绘动作分解。因此我在开始我就打算做成饥荒那样的朝向,偏向左和偏向右,因为现阶段也只好如此。
那么Anima2D怎么使用呢?为了以后便于复习,暂且在这里记录一下用法。
先创建工程吧,选2D 游戏制作。
1、第一步当然是去store下载并导入Anima 2D插件了
2、导入png精灵图片并新建一个文件夹准备用来装转换的mesh文件,我命名为mesh,很多人都不建议用中文文件名,那我在这里也提醒一下寄几吧,虽然我的素材文件夹创建的时候也使用了中文,现在暂时不改了
3、选择角色肢体,右键创建anima2d精灵网格
之后会生成很多asset格式的文件,显示为png图片的内容,把它们拖入mesh文件夹以便后期方便整理。
4、接下来在场景中新建一个空的游戏对象,我命名为Lee Xiao,然后再在这个对象下面创建两个空的子对象,我命名为body和bones,顾名思义了
5、好了,把肢体的mesh依次拖入body,不要多选拖进去,没用的,因为只会拖进第一个。
6、整理一下肢体位置,并排序一下显示次序。怎么排次序呢,首先得新建一个图层
随便选中一个场景中的mesh对象在inspector视图如此操作
我新建一个character层用于角色吧
返回把所有mesh对象的sorting layer改成character,然后调整该项成为合适的值
最后效果是这样的,看起来not too bad,原谅我这粗鲁的美工和肢体比例,因为只是练手先随便画咯
6、好了,重头戏,绘制骨骼。选择空的bones对象,加个骨骼吧。
我命名为hips,作为所有骨骼的起始
调整骨骼的位置和旋转、长度等到合适的值,点住骨骼根部的方框以调整位置,点方框以外的骨骼部位旋转。其实hips是骨盆的意思,这里我位置放错了,大家不要学_(:3J∠)_
右键hips重复第6节的第一步,从hips伸展出身体的骨骼,我命名为torso,并做出调整。
然后从torso再伸展出头部的骨骼,调整。
回到torso,为右手臂创建新的骨骼,调整好后Ctrl+D拷贝一份给左臂。
为了方便,返回右手骨骼,新建一个子骨骼作为武器骨骼,并把武器mesh或者png拖到这个骨骼去作为它的子对象,然后调整武器的位置旋转缩放等至合适的值。
返回hips,给右腿添加骨骼,调整好后拷贝一份给左腿。
到此,骨骼的创建就告一段落了。
7、接下来就是骨骼蒙皮了。
把hips骨骼对象拖到body的inspector中的set bones框
会生成一个骨骼列表,选中最下面的多余骨骼往上依次点两次右下方的“-”按钮删掉,只留下关键骨骼
然后,在选中body_f对象的前提下,打开mesh 编辑器,如下
出现以下类似界面,由于我的mesh尺寸太小了,导致只有十个不到的原始顶点,点击slice,调整outline detail外缘细节来细化我的边缘顶点,然后点apply应用,可以看到最终效果还可以。
然后用鼠标双击,给关键部分添加更多的内部顶点,这样才能保证蒙皮效果不会太差。
然后,点击bind按钮,右下方会弹出一个浮窗,勾上overlay,会出现下图的效果,可以点击smooth和auto键来选择想要的效果,还可以勾上piex来手动给各个顶点赋值,以细化蒙皮权重,不过我这里暂时不需要了,效果已经令我满意。
最后,点击窗口右上RGB图标左边的apply来应用蒙皮效果,回到scene旋转身体骨骼,可以发现身体的mesh也跟着动了
以此类推,把其余肢体依次蒙皮,记得给关节处多加点顶点。这里说一下,我的武器贴图是骨骼的子物体,并不会受到蒙皮与否的影响,如果跟身体一样蒙皮了,那么武器的位置就会固定住,不能进行形变,例如移位,比如说下一招式需要握住长矛的中部,如果蒙皮了,那贴图就不能随意在手中移动位置了,反之则可以调整长矛在手中的位置。
8、为了便于录制动画,给骨骼添加IK关节以方便调整骨骼
给bones再添加一个空的子对象,命名为IK
选中IK,右键添加一个IK Limb对象
把IK Limb对象重命名为arm_r IK,并移动到手腕的位置
把前臂的骨骼拖拽到IK对象的Inspector中的Target框中,并去掉Orient Child的勾勾,抛开字面意思,我觉得这个的意思是是否不允许子骨骼的自由变换,当然要允许了,要不然手和武器怎么自由变动
返回场景视图中移动IK对象看看效果,可以发现,手臂的骨骼会随它而进行关节性的变化,圈圈变成了蓝色,而且骨骼根部的小黑点也变成了蓝色,表示绑定了关节
以此类推,给左臂和两条腿也都绑定关节,注意关节的绑定对象都是前臂或者小腿,不是手和脚。其中可能会出现腿部骨骼的弯曲方向不正确的情况,把这个Flip选项勾上就行
最终的效果应该是这样的
9、动画制作
打开windows菜单中的Animation窗口,拖动到合适的位置
然后选中Lee Xiao,也就是角色的整个物体,在animation视窗中为它create一个动画
按个人习惯,我新建了一个animation文件夹来保存动画,然后把要保存的动画片段命名为spear_idle,顾名思义
然后再资源视图中可以看到,unity自动添加了一个动画控制器,名称为动画物体的名字。随后我改名为Lee Xiao_Spear
重新选中Lee Xiao,回到animation视窗,点击左上方的小红点开始录制动画
会发现,时间轴和其他一些地方变成了红色的,表示正在进行动画录制
好了,废话不多说,可以开工了,为了精度,先把Samples的值从60改成10(其实这骚操作无所谓的),然后点时间轴上的0.05帧把白线弄到这个位置,接着返回角色骨骼,选择hips调整一下它的高度为比原来稍微低一些,再调整手臂、武器等其他骨骼的形变使得动作自然一些,然后随时都可以点击Animation视窗左上方的播放按钮来查看录制效果。随着调整,可以看到时间轴下方的区域生成了一些棱形,它们称作关键帧,关键帧还可以完成形变之外的很多事情,比如进行某些数值、mesh显示层次的变化等
也就是一个待机动作,我不用给它制作很长的动画,接着鼠标框选第0帧的关键帧,Ctrl+C复制,然后去到0.1帧粘贴,这样就完成了一个简单的循环动画
最终待机动画的效果是这样的,上传的gif不知怎么就变快了1倍,实际画面会慢成0.5倍,更自然一些
好了,有了个好的开头,相信我们都能轻易的录制其他的动画了吧,那么今天就先更新到这里吧。更多其他方面的文章,如任务系统、对话系统、小地图等,请移步我的主页。
工程文件我打包放在了https://pan.baidu.com/s/1oAaEDtS,需要的可以参考一下,虽然是很早的版本,并不是最终效果