Notifications
Article
使用Unity程序化方法制作游戏动画
Published 3 months ago
94
0
今天我们将分享加拿大的开发者Makan Gilani制作的火柴人大战Boss精彩动画,作品中的主角正对抗庞大的机械巨龙,虽然内容没有使用纹理等细节,纯粹由动画组成,但是作者还是让它有了AAA级游戏的感觉。
本文将由作者Makan Gilani介绍动画制作经验,讲述如何制作出惊艳的3D怪兽动画。

项目介绍

我是来自加拿大多伦多的Makan Gilani,喜欢尝试实现各种奇怪而有趣的游戏概念,但是在编程和游戏开发方面,我完全是自学成才。
这个项目始于Day9举办的30天项目挑战。该挑战要求参与者设定项目目标,每周更新项目进展。我选择的项目是每周设计一场Boss大战。但是我面临最大的问题是我并不擅长动画制作,而且没有耐心用传统方法为角色制作动画。所以我决定开发程序化动画系统来为我所设计的怪兽制作动画。
在该挑战的第一周,我开发了动画系统和双脚站立的机器人。此后我改进了该系统并设计出不同的角色。

创作灵感

我的创作灵感主要来自有关怪兽的电影和动画片。我不是很关注怪兽的视觉效果,也没有精美的模型可以使用,所有怪兽都使用相同的原始外形,所以这迫使我必须制作出有趣的怪兽形状和动作。
我尝试制作出多种怪兽风格,从而扩展了程序化动画系统,并加入更多新功能。第一个怪兽有二条腿,之后的有三条、四条,我必须调整系统来处理不同类型的动作。给模型加入不同数量的腿,会带来不同风格的怪兽形状,也产生不同的动作可能。

Unity

我一直使用Unity进行开发,因为Unity对像我这样的独立开发者足够的友好,能够快速实现我的想法。
在动画的设置过程中,我使用项目第一周开发的动画系统。我首先设计出怪兽外形,然后加入操控点,例如:四肢。这一步的关键是找到合适的操控点数量。太多操控点会使怪兽变得过于复杂,操控点的数量至少要足够实现自己的想法。
我开发了一些工具来控制操控点,处理怪兽身体各个部位的方式。例如:巨龙的翅膀上只有一个操控点,它位于翅膀连接身体的位置。然后使用工具来控制在巨龙扇动翅膀时,每个关节应如何移动,关节应该紧绷还是放松。该做法也可应用于其它动作,例如:弯曲触手或者让巨龙转身。
在为怪兽设置动画时,动画系统也根据上述做法来处理。首先选取一些操控点,告诉动画系统这些点的类型,例如:腿部、触手、大炮或是附在脖子的蛇形部位。
然后使用前面提到的工具来确保当我处理操控点时,怪兽身体的其它部分会有一定反应。动画系统会获取以上信息,然后动态生成怪兽动画。

制作怪兽

在开始制作怪兽之前,我会考虑为该系统加入什么功能,以及程序化动画要实现什么想法。然后思考通过新工具能实现什么创意。
在这期间,最大的挑战是开发合适的工具,用来处理我要制作的怪兽,工具要有一定的通用性,以便用来制作其它怪兽。除了自己开发的工具,我使用了第三方工具Final IK。该工具可以让你创建出自己的IK系统,实现很好的控制效果。
现在来谈谈时间成本。我对于游戏制作的理念是,通过易于重复使用的方法设计内容,去除不符合设计的部分。这样一来,我拥有更多时间在一周内设计怪兽外形和它的身体结构。
第一周我用来开发动画系统和设计机器人,前三个怪兽各花了一周时间完成。第二周我调整了该系统,使它支持处理三条腿的动作。制作自动组合的蜥蜴怪兽时,截止日期已经快到了,所以我仅用了四天来进行制作。我加入了自动组合过程的逻辑,确保那些关节和机器链能移动到应有的位置。蜥蜴动画是自动生成的。

困难与建议

本项目中最困难的部分是确保怪兽身体的其它部分能按照操控点来反应。必须确保为关节设置合适的限制和权重,以避免不可预测的结果。
在开发该系统时,最大的困难是找到各动作类型之间的平衡,同时避免使动作过于僵硬,并让系统可重用于其它怪兽。
在本文我可能无法提供任何资源的分享。我的建议是实践前文中分享的概念,并以其它游戏作为视觉参考。在开发该系统遇到困难时,我都会观察其它游戏,尝试总结它们处理类似情况的方式。

小结

本项目源于一个持续四周的挑战,后续Makan Gilani还会继续完成项目、分享开发进展。希望你们能喜欢和享受他所制作的每个火柴人精彩的逃生动画。更多Unity制作经验分享尽在Unity官方中文论坛(UnityChina.cn) !

Unity China
380
Comments