What

一种特殊的骨骼,有两部分组成:源骨骼和目标骨骼。本身作为源骨骼的子骨骼,但子骨骼的Trans from信息是目标骨骼在源骨骼空间里的Transfrom。理解起来并不直观,明明是源骨骼的子骨骼,但不受父(源)骨骼影响,只跟随目标骨骼运动。所以当选中时总是表现从源骨骼指向目标骨骼。又称为指向性骨骼。

Why

这里美术制作武器动画时,假设将武器Attach到IK_Gun_Root上,然后将左右手根据武器不同放到IK_Gun_Root的相对位置上。
理论上源动画里,只需将武器Attach到IK_Gun_Root上,不用在动画蓝图里使用IK节点,两只手的位置也是正确握在武器上的。
但游戏通常是多角色的,不同体型的角色使用同一把武器并且不想制作新资源的话,可以将源动画重定向使用。但重定向后两个手的相对位置会发生变化,比如更高的体型,两只手的相对位置也会更远。虚拟骨骼是一种方便的机制,可以纪录骨骼间的相对位置。

How

多用于重定向中。当手持相同道具,比如武器时,用虚拟骨骼可以让不同体型都能确定手持位置。
重定向时,虚拟骨骼没有重定向选项,所以变换数据始终来自源动画。可以利用这点固定手持武器和手的相对位置。这个相对位置一般不随体型变化。

How to use

美术制作手持武器时通常有两种做法:

  1. 美术会新增IK_Gun_Root骨骼,并把武器Attach上,放置双手制作动画。
  2. 没有IK_Gun_Root,直接Attach到一只手上,以它为参照,放置好另一只手制作动画。

所以虚拟骨骼也有两种用法:

  1. IK_Gun_Root 没有重定向,所以不能直接Attach它上。首先确定GunRoot,分别在Hand_l和Hand_r下创建目标为IK_Gun_Root的虚拟骨骼,这时两根虚拟骨骼分别纪录了IK_Gun_root 在Hand_l和Hand_r下的相对位置。这样重定向后,由于可以根据左右手的位置确定新的IK_Gun_Root的位置。
    确定枪的位置后,还需要确定手的位置,分别以上面的虚拟骨骼为父骨骼创建虚拟骨骼,分别指向Ik_Hand_l,和IK_Hand_r。因为IK_Hand_l 和IK_Hand_r 并不会重定向,所以虚拟骨骼纪录了源动画里左右手持武器的相对位置。
    最后在动画蓝图里分别用IK固定左右手到相应的虚拟骨骼上即可。
    Pasted image 20240822201912.png
    Pasted image 20240822201913.png

  2. 那么重定向后武器依然Attach到同一只手上,另一只手的位置就可以通过虚拟骨骼确定。由于两只手都可能被Attach武器,所以分别在Hand_l和Hand_r下创建源为对方的虚拟骨骼。

还提到使用虚拟骨骼可以在某些动画下,不用关闭IK的用法。比如手持枪,需要播放左手换弹动作。传统做法需要将左手IK禁用。但如果将左手IK到指向左手的虚拟骨骼上,就不用禁用左手IK,因为虚拟骨骼始终受左手影响,虚拟骨骼本身就在表现换弹动作,所以不用禁用左手IK。