[程式] 程序性动画实作杂谈

楼主: dklassic (DK)   2021-09-10 19:18:45
程序性动画(Procedural Animation),广义来说只要有用到程控而不是单纯播放动
画的情境应该都可以称为程序性动画。
而这篇主要要提的是跟角色移动有关的程序性动画。
例如说最常见的就是所谓的 IK(Inverse Kinematic),会拿来呈现:
-根据地形调整出正确的脚落点
-固定大部分动画的同时,调整局部区域
-线材的模拟
我想要利用的是完全只使用程控的动画表现,对我来说程序性动画展现了几种价值:
-根据物理性质模拟的高品质动画
-根据位置资讯自动化表现
-可扩充性广
虽然长年熟练动画十二法则的动画师肯定能做出更有魅力的动画,但是根据物理性质产生
的高品质动画实作时间短暂且品质优异;自动根据位置调整的动画,代表说游戏系统的判
定不会反过来受到动画系统的限制;而可扩充性广主要想提的情境,大概就是能用多种参
数调整物理性质,或更直接的:做了一只脚后,要做一百只也没问题。
https://twitter.com/RandomDevDK/status/1436186119666692124?s=20
↑使用了四足配置、拖行(上半身被脚拖着走)动态倾斜
完全没有使用任何预先制作的动画
另一方面,我正在制作的游戏,在视觉设计上非常简化。偏真实的素材做出稍微不符合真
实的动作结果就会很碍眼,但是如果视觉上很简化的话,就可以相对无视这点。
但这个主题毕竟没有真的很泛用的方式讨论,所以在这边针对所有我尝试实作的程序性动
画都做一些流水帐式的说明,提供点参考。
多足步行
多足步行设计大概是我最早看到,也最让我感到震撼的程序性动画类型。最震撼的地方就
是制作的难度有多低。
基本上就是以角色为中心,设定几个方向做为脚延伸出去的方向后往地板打射线找到落点
。每当脚踩的位置远离判定位置超过指定距离时,就让那只脚移动去指定位置。
其他可以提的要点大概有:
-制造随机错位的情境(例如纯粹的初始位置随机),避免动起来的结果太固定
-根据角色位移速度改变移动速度,就可以避免敌人移动速度很慢时会看起来很奇怪
-移动到目标地点的速度在水平跟垂直方向上有一些变化,例如说举起很慢但是放下
双足
双足跟多足设计上需要的方针比较不太一样。三足以上的系统视觉上比较不容易感受到重
心不稳的问题,而且脚的平均分散也代表说脚随时都在前导状态。
由于这套系统是根据位移变化去移动,可以说是导因为果的状态(本来应该是先移动脚再
移动重心,程序性动画变成先移动),所以判断脚落点的时候必须往移动方向做点预判看
起来才不会像是拖着脚移动,但是现实世界的双足生物移动时,结束移动的同时脚必然都
会收在目标要移动到的位置。也就变成我在程序性双足实作上很容易做成多跨出一步要再
收回的状态,并不是做得很好。
这部分还有待再研究清楚,但当然可以借由设定目标不是生物来绕过问题 XD 不过如果总
有一天可以成功研究出高品质的程序性双足,就代表说可以轻易处理出低成本的大量路人
角色。
旋翼
根据移动速度改变旋翼旋转的速度,根据旋转速度来改变对应旋转方向的旋翼转速。
可以说是最简单的形式。
车辆
基本上跟上面的旋翼一样,移动速度拿来转动轮胎。如果是两轮或者广义两轮(履带)的
坦克,可以让角色在原地旋转时展现出一轮顺转、一轮逆转。
如果是超过两轮的车辆则必须要考虑前导轮转轴的问题,前轴导引方向的轮子(无论是单
轮或双轮)要随着转弯而改变转轴角度。
前倾(Lead)与拖行(Drag)
这部分可以有两种实作方向:位移与旋转。
位移的部分,可以让角色的角度相对于移动方向地前倾或后仰,呈现出主动前进跟被脚拖
著走的感受。
旋转的部分则可以考虑区分角色上下部份。例如说一般生物都会先转头再往目标方向前进
,所以可以让头转到目标位置的速度快、而下半身转到的速度比较慢;反之则可能可以营
造出愚笨的行动感,例如说史莱姆式的生物。
第二点我没有实作所以这里借 Jakob Wahlberg 两个都有实作的示范:
https://twitter.com/Jakob_Wahlberg/status/1399100594288218112?s=20
杂项讨论点
首先最值得一提的就是程序性动画,毕竟各个分项都是对一种物理性质、情境的模拟,也
因此彼此之间都可以再做排列组合。
最简单的就是前面的前倾拖行可以配合前面任何一个行动动画,又可以组合出完全不同的
花样。
整体来说这类型的动画如果实作起来,除了单纯可以提供一定水准的高品质动画以外,还
可以提供很多自订版本扩充多样性。
而至少对于人力极少甚至是一人团队来说,这样做既可以提供足够的水准的动画又可以不
用花太多劳力。
流水帐大概写到这边,提供参考。
作者: coolrobin (泳圈)   2021-09-10 22:32:00
未看先推
作者: oopFoo (3d)   2021-09-11 06:11:00
谢分享。程序性与动画师应该是相辅相成
作者: wangm4a1 (水兵)   2021-09-11 12:05:00
作者: rickkcir (多果汁)   2021-09-12 11:43:00
作者: nicetw20xx (哇爱台湾)   2021-09-12 13:18:00

Links booklink

Contact Us: admin [ a t ] ucptt.com