K 帧随笔——高抬腿

本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com

作者:银杏卷

最近 k 观音的过程中不少人问我一些关于高抬腿和转圈的问题,碰巧这两天也使劲多研究了一些 k 帧过程中的技巧和应用相关,就随笔记一下,有帮到各位 k 帧党的就再好不过了!这篇随笔里不会对基本概念过于阐述,所以并不

最近 k 观音的过程中不少人问我一些关于高抬腿和转圈的问题,碰巧这两天也使劲多研究了一些 k 帧过程中的技巧和应用相关,就随笔记一下,有帮到各位 k 帧党的就再好不过了!

这篇随笔里不会对基本概念过于阐述,所以并不适合 0 基础的人看,新人烦请先去找寻对应的一些基础概念弄清楚了之后再看就更能懂一些。

那我们就开始吧!

(注:我写专栏有个很不太好的习惯,就是想写的细致一点结果写的过于话痨,所以这篇可能会很长很长,各位看官们就包含一下啦)

(注 2:这篇实在被我扯得太长了,转圈相关我放到下一次来讲,尽量多讲一些转圈的类型,就不在这里挤字数了,这篇只讲高抬腿了)

(注 3:这篇随笔我写了 4332 个字!)

这里插播一个小插曲

的确市面上能做到高抬腿和转圈的方法很多,比如**反向 ik**,比如 ik 开关,比如 D 骨**系列,但是按照我的经验而谈,这几个方式都**不如直接拽 ik 好用

普通的 IK 其实能做到很多东西的,但只需要一些技巧和脑筋,不如反向 IK 那些用的那么直截了当,但是效果绝对不差,我 k 的一个卷珠帘双人舞就是**完全靠 IK 还有一些基本骨 k 出来的,并没有用之前提到的三种方法**,虽然说这样 k 出来的比较 “量身定做”,也就是配布的时候适配性会有一些问题,不过对于自己玩玩的动作,你想怎么做就怎么做,并没有限制。

咱们这里谈论的都是偏向舞蹈动作的,武打之类的另当别论。

所以接下来先从如何拽 IK 来高抬腿或者画圆讲起,为什么上面提到的几个方式不甚理想我会放在后面说

首先来讲讲曲线画圆的原理,这个对于高抬腿和一些地面上的转圈的动作都是很有用的知识。

有句话先要使劲强调:

拽 IK 来 k 圆弧不用逐帧!!!!

拽 IK 来 k 圆弧不用逐帧!!!!

拽 IK 来 k 圆弧不用逐帧!!!!

我们要做的是两点:1. 找对关键帧位置,2. 对应轴来拉正确的曲线

对于一个圆来说,最重要的点就是两条垂直的直径相关的点,在高抬腿里,最重要的点就是**最高的高点,还有一个腿伸平的时候最远的点**,如下图

抬腿过程关键帧注册点与曲线相关(图内为了展示关键帧位置,使用了两个模型)

讲解一下为什么这么拉**曲线**:

初始→关键帧 1:

光看 x 轴方向,腿抬起来的过程中越靠近关键帧 1,x 轴方向运动速度是**由快减慢**的

光看 y 轴方向,运动方向是**由慢到快**的

关键帧 1→关键帧 2:

光看 x 轴方向,腿抬起来的过程中越靠近关键帧 1,x 轴方向运动速度是**由慢加快**的

光看 y 轴方向,运动方向是**由快减慢**的

(进阶一点的话:在初始的地方和关键帧 2 的最后,x 轴可以微微给一丢丢的平缓慢起,让开始和结束的时候有个缓冲减速的过程)

关键帧 1 和 2 要**旋转 IK 骨**,将脚尖的对应位置摆好方向,旋转方面的曲线用 S 型就可以

注意,这两个属于比较大幅度的动作变化,所以要整个身体的协调性都考虑起来,这组动作里,需要调节 “下半身” 和 “足骨”(就是大腿的骨骼)

重心(center)可以适当地调一下,从最开始的双腿站立到最后的 pose 势必有个重心转移,可以将重心向着着地那个方向移动一些

**下半身**不用注册关键帧 1 位置的点,直接从初始状态注册好,然后再最高点(关键帧 2)的位置拉起来最后高度,最后旋转的曲线拉一个 S 型就行(不用太陡的,具体速度按照实际情况来定)

**足骨**在两个关键帧位置都要注册,拉一样的 s 型关键帧就行,关键帧 1 可以调 y 轴达成,2 的位置可以试试用 z 轴辅助一下到达位置(这个轴只是参照,我这里是这么调的,注意按住 ctrl 来调节能减少调过头的机会)

一个简易的演示图如下图

GIF

还有一些速度细节没有调整,不过这样至少能保证腿一直保证方向正确

注意,MMD 里的模型因为骨骼的限制,很多时候是无法完全直腿的,所以很多人会想着我多拉一点可不可以,答案是 “可以,但不要太多

IK 记录的是绝对坐标,你从那一个位置移动到下个位置这样

如果你拉的过多,超过一个腿的长度,画面上就会在你的脚踝和你的 ik 骨之间多了一条黑线,如下图

出现箭头指的这种黑线就说明你超程了

虽然你的腿在拉超程之后不会有拉伸的变形,但是你的曲线会依然按照你设定好的过远的 IK 骨的坐标来计算运动路径,过多无意义的计算一是浪费,二是不好控制,有可能会造成比较大幅度的动作变形

我的建议是,为了****尽量拉直,可以最多超个半个脚掌长,不要过长

如果还是不爽膝盖弯曲的效果的话,可以用 D 骨进行辅助修改,用 fx 的形式在不改变 ik 位置的状况下调整腿型。

腿落下来的时候,注册的关键帧位置是一样的,只不过把曲线反过来就可以了,原理相同

(S 型曲线的不用改)

一些不像这样整腿往起抬 / 下落的动作,也是遵循最高帧 + 最远帧的方式来注册,比如说下面这种中间要有个吸腿动作的收腿

GIF

(手还没 k,看腿就好)

分解一下动作的话,除了一开始的和结束,中间的设置路线的过渡帧的位置也是找寻最远处,具体的姿势如下图

中间关键的过渡帧位置

要注意的是,如果你用的是上面提到的其他的 k 腿辅助方式(就是和胳膊一样以 FK 的形式来 k 的话),收腿时的膝盖关键帧不是上图的位置,而是再接下来一点点,膝盖收到最紧的时候,如下图,方法不同关键帧注册的位置也不同,要注意

这里才是膝盖收的最紧的地方,IK 的帧位置和 FK 的时候是不一样的

  1. 高抬腿的时候要抓的关键帧就是**最高处**和**最远处**还有**初始帧**这三个位置,剩下的可以通过调节曲线来调节运动路径,注意要将两个轴分开来进行调节,两个轴的速度是不一样的

  2. 下半身只注册**最高处**和**初始帧**,拉 S 型曲线就行

  3. 足骨要注意调整膝盖朝向,**最高处、****最远处**和**初始**都要注册关键帧,拉 s 型曲线

  4. 以 IK 的形式 k 高抬腿和 FK 的形式注册的关键帧是不同的,思路也不同,要多注意

为什么不用 IK 开关**和**反向 IK 的方法,因为在舞蹈视频里应用有局限性

IK 开关,顾名思义,开启或者关闭你设定的 IK 链的功能,下图左侧紫框处可以通过 On 和 Off 来注册你这条 IK 链是否要打开(模型一般的腿部的 IK 链是开着的),记得以前套用 Marine Dreaming 或者 Marine Blooming 的动作的时候,readme 里面有一个动作有要求,就是关掉 IK 链,就是在紫色的这个框框里调整,别忘了调整之后注册。

值得注意的是,足 IK 和足尖 IK 一般都是同步关闭和打开的,所以别忘了每次更改的时候要每个脚的两个 IK 链都要注册。

关掉 IK 链之后,可以直接用足骨系列基本骨直接调整腿部的角度。

反向 IK,在贴吧的帖子里有提到,是利用外亲(下图红框),将足 IK 绑到足首骨上,从而可以利用足骨直接调整腿的角度的方式。

左侧 IK 链开关,右侧外亲设置反向 IK

这两种方法本质都是**将 IK 链的功能取消**,来让足骨这种基本骨直接控制腿部角度(就是变成胳膊那种控制的方式,不再用脚尖来带动大腿),所以这两种方法要在相邻的两个帧注册开关,同时两帧要注册所有足骨的关键帧,因为 ik 链开关前后,你的足骨的信息是完全不同的,必须在相邻的两帧注册新的足骨关键帧才能保证 pose 一致

(我知道这个概念比较容易混乱,不过强烈推荐这里自己操作一下实际的情况,就容易理解了)

就是这个相邻的两帧拥有不同的足骨注册信息,给这两种方法带来了一些使用局限性。

现在的 MMD 区的一个倾向就是很多人都喜欢 60fps 视频,代表 1 秒钟内记录 60 帧的画面,然而 MMD 内 k 帧的帧列表只有固定的 30fps,也就是说你自己 k 帧的精度最高也就只有 30fps

那么就代表着,用 mmdk 出来的动作录制 60fps 的视频,就代表着你 k 的动作每相邻的两个帧中间要多补出来一帧

然而我们之前讲过,在切换 IK 链开关的前后(反向 IK 也是某种程度上切换 ik 开关的方式),足骨的信息是会有很大程度上的差距的,在 30fps 的视频内,这就是两个挨着的帧,完全没有影响,但是如果是中间有补帧的话,这个差距就会被放大出来,造成这一帧会出现鬼畜的归位现象。

GIF

注意腿放下来之后,突然有一帧本该弯着的腿向后伸直了

我把帧一帧一帧的拿出来对比一下就能更明显的看出来这一帧鬼畜归位了

箭头所指的就是突然归位的一帧

同一套动作我拿 IK 开关和反向 IK 的方式都试验过,都会出现类似的现象

包括之前 K 卷珠帘的时候,在一个角色抱起另一个角色的时候,我曾经想过也用外亲这种形式将一个人的重心固定在另一个人身上,但是播放的时候就会看到会有很鬼畜的重心突然回归原位的一帧,也是因为补帧才会出现的 bug,所以我最后并没有用这个外亲来完成整个作品。

当然,这两种方法无疑是一种很省事省力省心的 k 帧辅助方式,如果硬是要用这种方法的话,请不要输出高于 30fps 的视频,否则观众都会看出来你哪里有 bug。

同时这个也能给出来另一套结论:相比来说低帧数的视频会或有或无的能盖掉一点动作的不流畅,而 60fps 这种越高帧数的视频则是会越放大你动作里的卡顿或者 bug,所以请按需设置你的视频帧数

如果使用 D 骨的话,并没有上面两种方式带来的问题,不过由于它是基于 IK 链以上的辅助骨,那么 D 骨的角度和位置依然会受到 IK 链的影响。如下图

GIF

右下角箭头是 IK 骨所在地,用 D 骨将腿拉上去之后,腿会依然继续受 IK 骨影响

因为受 IK 链带动,在动作的重心、下半身和相关骨骼有变动时,通过 D 骨抬上去的腿也会受影响,如下图

GIF

图里展示的是中心位置和下半身角度带来的影响

如果你仅仅需要一个简单的抬腿,抬腿收腿前后姿势差不多,那就可以用 D 骨简单的做到想要的效果,小怪兽的《你的女友》的动作里,这里的踢腿部分用的就是 D 骨完成的,简单而且效果相当的不错 o(*≥▽≤) ツ 

GIF

最开始的左右跳着走的时候甩的腿就是用足 D 骨 K 的

分解一下动作就能看出来,下图红色箭头的位置是 IK 链,而抬腿是由 D 骨(黄色箭头)抬起来的

红色为 IK 链位置,黄色为 D 骨抬起来的脚的位置

如果你抬腿和收腿的姿势并不相同而且差距比较大的,我还是建议直接拽 IK 好了,反正也不难 (๑•̀ㅂ•́)و✧

还有一个应用就是可以在一些你总是拉不直腿的地方,用足 D 进行一些细致的微调

对于一些改模或者自己绑模的朋友们,有一点请注意:

通过一键加标准骨的插件刷过的模型,腿部权重是在 D 骨上的,如果你直接复制其他人带有 D 骨的全套骨骼来绑骨,请刷给 D 骨,而不是刷给基本骨(大腿小腿还有脚的那个基本骨),要不然就会出现模型明明有 D 骨但是腿却抬不起来的状况,如果搞不懂的话就把 D 骨的腿部系列辅助骨删除之后刷给基本骨,然后再用一次插件加骨骼就能行了~

(所以说偶尔拆解一下别人做的很棒的成品动作能学会很多的哇哈哈哈哈 o(*≥▽≤) ツ )

暂时先想不到更多了~ 下一次会讲讲转圈相关的,我尽量多找一些转圈的姿势来讲一下要领好了~ 多练练之后这些都不是什么难事了~

比如~~~

下面这个转哈哈哈~ 下次见~~

GIF

这图连着看莫名的爽(不知不觉盯着看了三分钟)

使用动作:《你的女友》- 小怪兽

使用模型:《古剑奇谭网络版》- 狐妖男、TDA append

使用 MME:そぼろ - base set

银杏卷 

18.6.21

评论