查看: 236|回复: 0

[引擎的各个功能] 动画重定位(不同骨架)

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2017-4-8 07:06:02 | 显示全部楼层 |阅读模式

动画重定位(不同骨架)



       
     
     
     Unreal Engine 4.9

       
     
         



       
动画重定位(不同骨架)




   
    本页面的内容:
   

   
                                                            
        开始操作
                                                        
        重定位调整
                                                        
        重定位动画蓝图
                                                        
        重定位基本姿势
                                            


       
注:在引擎 4.5 版之前的版本中未提供此功能



动画重定位(不同骨架)是一种允许在不共用相同骨架资产的角色之间复用动画的功能,它不同于在共用相同骨架资产的角色之间重定位动画的 动画重定位(相同骨架)



在具有不同骨架的角色之间重定位动画的过程使用一种名为 结构 的资产在不同骨架之间传递骨骼信息。选择结构后,您要在源骨架和目标骨架(您希望将动画重定位到的骨架)之间共享它。完成这一步后,要使目标骨架的骨骼与结构中存储的节点配对。


一旦目标骨架中的所有骨骼都在结构中设置完毕,您就可以将源骨架使用的动画重定位到目标骨架。如果您希望快速将所有动画资产从一副骨架移动到另一副,甚至可以将整套动画蓝图连同其所有关联数据一起重定位,从而节省时间。

开始操作


为了开始在不同骨架之间重定位动画,您需要为两副骨架选择用于共享的结构资产。本节将向您介绍如何访问引擎内容中附带的 人形结构,并指定它以供使用。


我们还要使用两个可通过 市场 免费获取的资产包,它们包含我们可用于重定位的多种骨架和动画。如果您已经准备好了两个骨架资产供使用,可以跳过下面的说明,使用您的资产。如果您没有准备骨架,可以按照下面说明中概述的步骤操作,添加两个包。


       
在这个示例中,我们使用可通过 市场 下载的下列资产。


我们使用的源骨架是 UE4_Mannequin_Skeleton,它包含在 动画初学者包 中。


我们使用的目标骨架是 SWAT_Skeleton,它包含在 Mixamo 角色包 中。


安装以上两个包之后,您可以在虚幻启动程序中通过 添加到项目(Add to project)按钮将它们添加到项目。


动画重定位(不同骨架)



动画初学者包含有多种动画,我们将把它们重定位到 Mixamo 角色包中的角色。


您的虚幻引擎 4 版本可能与上图中的版本不同。



下面的步骤将说明如何访问默认结构并重定位动画:


在 内容浏览器 中的 Game/AnimStarterPack/UE4_Mannequin/Mesh 文件夹下,打开 UE4_Mannequin_Skeleton 资产。


单击 重定位管理器(Retarget Manager)按钮,然后在 设置结构(Set up Rig)下,单击 选择结构(Select Rig)下拉菜单,选择 选择人形结构(Select Humanoid Rig)。


       
动画重定位(不同骨架)
动画重定位(不同骨架)





单击查看大图。


单击 保存(Save),然后关闭窗口。


在 内容浏览器 中的 Game/MixamoAnimPack/Mixamo_SWAT/Anims 文件夹下,打开 SWAT_Skeleton 资产。


单击 重定位管理器(Retarget Manager)按钮,然后在 设置结构(Set up Rig)下,单击 选择结构(Select Rig)下拉菜单,选择 选择人形结构(Select Humanoid Rig)。


       
动画重定位(不同骨架)
动画重定位(不同骨架)





单击查看大图。


指定结构后,下一步需要使目标的骨骼与结构上的节点配对。


动画重定位(不同骨架)



使用下拉菜单在骨架上选择与结构上的骨骼(节点)位置相似的骨骼。


       
动画重定位(不同骨架)
动画重定位(不同骨架)





单击查看大图。


在上图中,左边是我们的源骨架(启用了 显示骨骼名称(Show Bone Names)),右边是目标骨架(也启用了“显示骨骼名称”(Show Bone Names))。中间是 设置结构(Set up Rig)窗口,我们在其中设置目标骨架的那些骨骼与源骨架上的骨骼相同(或位置相似)。


虽然每副骨架的命名约定可能不同,但您可以看到每块骨骼在每副骨架上的位置,从而相应地将它们配对。您不需要指定所有骨骼,而且根据您的需求可能需要进行一些微调。


继续将目标骨架中的每块骨骼指定到结构上的相应节点。


下表演示了 UE4_Mannequin_Skeleton 和 SWAT_Skeleton 的设置


       


       
                Root
               
               
                None
               
       

       
                Pelvis
               
               
                Hips
               
       

       
                spine_01
               
               
                Spine
               
       

       
                spine_02
               
               
                Spine1
               
       

       
                spine_03
               
               
                Spine2
               
       

       
                clavicle_l
               
               
                LeftShoulder
               
       

       
                upperarm_l
               
               
                LeftArm
               
       

       
                lowerarm_l
               
               
                LeftForeArm
               
       

       
                hand_l
               
               
                LeftHand
               
       

       
                clavicle_r
               
               
                RightShoulder
               
       

       
                upperarm_r
               
               
                RightArm
               
       

       
                lowerarm_r
               
               
                RightForeArm
               
       

       
                hand_r
               
               
                RightHand
               
       

       
                neck_01
               
               
                Neck1
               
       

       
                head
               
               
                head
               
       

       
                thigh_l
               
               
                LeftUpLeg
               
       

       
                calf_l
               
               
                LeftLeg
               
       

       
                foot_l
               
               
                LeftFoot
               
       

       
                thigh_r
               
               
                RightUpLeg
               
       

       
                calf_r
               
               
                RightLeg
               
       

       
                foot_r
               
               
                RightFoot
               
       



在设置结构时可以使用两种配置:基本 或 高级。基本配置(上表所示)使用确保动画成功重定位所需的关键元素。高级配置允许您包括并指定更多应该在重定位过程中包括的骨骼。


在上面的示例中,左手和右手都包括在了重定位过程中,但没有包括各个手指。使用基本配置重定位动画可确保将基本动作复制到新骨架,但如果源骨架有活动的手指而目标骨架没有,那么重定位后的动画就不会显示活动的手指,手部就会显得很僵硬。


单击 显示高级(Show Advanced)按钮切换 高级 配置。


动画重定位(不同骨架)



将目标骨架中的骨骼指定到高级配置下结构上的节点。


       


       
                index_01_l
               
               
                LeftHandIndex1
               
       

       
                index_02_l
               
               
                LeftHandIndex2
               
       

       
                index_03_l
               
               
                LeftHandIndex3
               
       

       
                middle_01_l
               
               
                LeftHandMiddle1
               
       

       
                middle_02_l
               
               
                LeftHandMiddle2
               
       

       
                middle_03_l
               
               
                LeftHandMiddle3
               
       

       
                pinky_01_l
               
               
                LeftHandPinky1
               
       

       
                pinky_02_l
               
               
                LeftHandPinky2
               
       

       
                pinky_03_l
               
               
                LeftHandPinky3
               
       

       
                ring_01_l
               
               
                LeftHandRing1
               
       

       
                ring_02_l
               
               
                LeftHandRing2
               
       

       
                ring_03_l
               
               
                LeftHandRing3
               
       

       
                thumb_01_l
               
               
                LeftHandThumb1
               
       

       
                thumb_02_l
               
               
                LeftHandThumb2
               
       

       
                thumb_03_l
               
               
                LeftHandThumb3
               
       

       
                lowerarm_twist_01_l
               
               
                LeftHand
               
       

       
                upperarm_twist_01_l
               
               
                LeftArm
               
       

       
                index_01_r
               
               
                RightHandIndex1
               
       

       
                index_02_r
               
               
                RightHandIndex2
               
       

       
                index_03_r
               
               
                RightHandIndex3
               
       

       
                middle_01_r
               
               
                RightHandMiddle1
               
       

       
                middle_02_r
               
               
                RightHandMiddle2
               
       

       
                middle_03_r
               
               
                RightHandMiddle3
               
       

       
                pinky_01_r
               
               
                RightHandPinky1
               
       

       
                pinky_02_r
               
               
                RightHandPinky2
               
       

       
                pinky_03_r
               
               
                RightHandPinky3
               
       

       
                ring_01_r
               
               
                RightHandRing1
               
       

       
                ring_02_r
               
               
                RightHandRing2
               
       

       
                ring_03_r
               
               
                RightHandRing3
               
       

       
                thumb_01_r
               
               
                RightHandThumb1
               
       

       
                thumb_02_r
               
               
                RightHandThumb2
               
       

       
                thumb_03_r
               
               
                RightHandThumb3
               
       

       
                lowerarm_twist_01_r
               
               
                RightHand
               
       

       
                upperarm_twist_01_r
               
               
                RightArm
               
       

       
                calf_twist_01_l
               
               
                None
               
       

       
                ball_l
               
               
                LeftToeBase
               
       

       
                thigh_twist_01_l
               
               
                LeftUpLeg
               
       

       
                calf_twist_01_r
               
               
                None
               
       

       
                ball_r
               
               
                RightToeBase
               
       

       
                thigh_twist_01_r
               
               
                RightUpLeg
               
       



有时一副骨架中可能有另一副骨架所不包含的附加骨骼;您可以忽略这些骨骼,因为可以对目标骨架进行调整来解决这个问题。


       
在此示例中,您也可以将 IK 骨骼指定到 Mixamo 角色上的 None,因为 IK 重定位功能尚在开发中。



在 内容浏览器 中的 Game/AnimStarterPack 下,选择一个要重定位到新骨架的动画。


右键单击 该动画,然后选择 重定位动画资产(Retarget Anim Assets) -> 复制动画资产并重定位(Duplicate Anim Assets and Retarget)。


动画重定位(不同骨架)



在 选择骨架(Select Skeleton)窗口中,您应该会在窗口上部看到您的骨架,选择它并单击 选择(Select)。


动画重定位(不同骨架)



系统将在目标骨架所在的文件夹中创建您选择重定位的动画的副本。


动画重定位(不同骨架)



现在可以将此新动画用于您的角色。

重定位调整


设置要在骨架之间共享的结构时,您可能遇到一副骨架比另一副骨架多出一些骨骼的情况(在“开始操作”部分中,如果您使用了示例中指定的骨架,可能已经注意到 Mixamo 骨架在手部等处有更多骨骼)。有时这会引发问题,但可以通过递归地对骨架设置平移重定位来解决。


例如,这里有一张调整前的截图:


动画重定位(不同骨架)



请注意,由于在结构设置过程中未指定多余的骨骼,手指显得很扭曲。


这里是经过调整后的示例:


动画重定位(不同骨架)



您可以通过骨架树形视图来指定骨骼平移重定位。在这里我们在每根手指的最后一节 右键单击,将骨骼平移设置为 递归地设置平移重定位骨架(Recursively Set Translation Retargeting Skeleton)。


动画重定位(不同骨架)


重定位动画蓝图


在您完成设置两副骨架资产共享的结构的过程后,如果源骨架有关联的 动画蓝图,您就可以选择重定位它,以用于目标骨架。


右键单击 动画蓝图,然后选择 重定位动画蓝图(Retarget Anim Blueprints) -> 复制动画蓝图并重定位(Duplicate Anim Blueprints and Retarget)选项。


动画重定位(不同骨架)



将显示 选择骨架(Select Skeleton)窗口。选择您的目标骨架,然后按 选择(Select)。


动画重定位(不同骨架)



系统将复制所有与动画蓝图关联的资产(动画资产、混合空间等)以及在动画蓝图本身中定义的所有逻辑,放置在与目标骨架相同的位置。


动画重定位(不同骨架)


重定位基本姿势


有时您可能希望将动画重定位到基本姿势与源骨架不太一致的骨架。


以下图右边的骨架为例。


动画重定位(不同骨架)



左边的源骨架摆出了 A 字姿势,而目标骨架摆出的是 T 字姿势。即使设置了两副骨架共用的结构,如果我们就这样重定位动画,可能遇到下图所示的问题。


动画重定位(不同骨架)



在上图中,已经为目标骨架重定位了动画;但是因为基本姿势不同,它的双臂都被截掉了。好在您还可以在重定位动画前先重定位目标骨架的基本姿势,以减少或消除这样的问题。


在目标骨架中的 重定位管理器(Retarget Manager)下,有一个叫做 管理重定位基本姿势(Manage Retarget Base Pose)的选项。


动画重定位(不同骨架)



如果您单击 查看姿势(View Pose)按钮,将看到当前的基本姿势。可以通过单击骨骼并使用 旋转 (E) 小部件来调整它。


动画重定位(不同骨架)



在上图中,已经调整了右臂,但左臂还是使用默认的基本姿势(我们可以使用旋转小部件来调整)。调整完姿势后,可以单击 保存姿势(Save Pose)选项保存重定位后的基本姿势。由于两副骨架的基本姿势已经差不多,现在您可以重定位动画了。当“骨架选择”(Skeleton Select)窗口出现时,您将注意到目标骨架使用了重定位后的基本姿势。


动画重定位(不同骨架)



用重定位后的基本姿势重定位动画,得到效果更好的动画。


动画重定位(不同骨架)







                                       
                                       
完整内容索引
                                       
                               
                       
                       
            

            
            

     2004-2017, Epic Games, Inc. 版权所有。Unreal 及相关的商标是 Epic 在美国和其他国家的注册商标。


    使用条款 | 隐私政策

            
        
               
       
   
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部