动画重定位(相同骨骼)

https://docs.unrealengine.com/latest/CHN/Engine/Animation/AnimationRetargeting/index.html

定义

动画重定位(相同骨架)是一种允许在共用相同骨架资产但比例差异很大的角色之间复用动画的功能。通过重定位,可以防止生成动画的骨架在使用来自不同外形的角色的动画时丢失比例或产生不必要的变形。

注意红字是同估计重定位前提

注意点:

1 原理部分

动画是绑定到 骨架资产 的。骨架资产其实就是一个骨骼名称和层次结构数据的列表,但它也存储了来自用于定义骨架资产的原始骨骼网格的初始比例。此数据是以骨骼平移数据的形式存储的。特别要注意的是,重定位系统只会重定位骨骼的平移分量。骨骼的旋转始终来自动画数据

动画(Animation) - 骨骼平移来自动画数据,不做改变。理解:就是点的位置不变,盆骨,武器(固定大小枪把手),ik(移动步幅)

骨架(Skeleton) - 骨骼平移来自目标骨架的绑定姿势。  理解:A骨骼动画a到B骨骼,使用B骨骼的绑定姿势,不做平移,只使用旋转

比例动画(AnimationScaled) - 骨骼平移来自动画数据,但按骨架的比例调整。

这是目标骨架(播放动画的骨架)与源骨架(制作动画的骨架)的骨骼长度之比。

2 二足常规设置

通常您需要对两足生物使用这些设置:

根骨骼、IK 骨骼、武器骨骼和任何一种将使用动画模式的标记。

骨盆将使用“比例动画”(AnimationScaled),以确保其在正确的高度,同时仍能动作。您希望平移和重定位动画的其他任何骨骼也应该使用“比例动画”(AnimationScaled)。

所有其他骨骼都应使用“骨架”(Skeleton)。它们将使用来自目标骨架的静态平移。

3 设置(某个骨骼)重定位(方式)

注:被设置的骨骼后面要作为重定向源在重定向管理器中被其他骨骼的动画选择

关于右键点击某根骨骼显示递归设置animation,skelete,animScale,

需要先显示出重定向骨骼,才能看到,直接右键看不到

相同骨骼重定向步骤(原文中: 使用重定位源管理器)

1 选中骨骼

2 把目标模型制作成重定向源(模型)

2 在要重定向的动画上的retargesource中选择做好的重定向源(模型)

个模型,不知道为什么要重定向,貌似直接就能用,找不到错误的示例

不同骨骼的重定向

https://docs.unrealengine.com/latest/CHN/Engine/Animation/RetargetingDifferentSkeletons/index.html

原理:

在具有不同骨架的角色之间重定位动画的过程使用一种名为结构(简单说就是人形骨骼)的资产在不同骨架之间传递骨骼信息。

选择结构后,您要在源骨架和目标骨架(您希望将动画重定位到的骨架)之间共享它。

完成这一步后,要使目标骨架的骨骼与结构中存储的节点配对。

一旦目标骨架中的所有骨骼都在结构中设置完毕,您就可以将源骨架使用的动画重定位到目标骨架。

具体方法步骤:

1 骨骼A,B都在重定向管理器中设置为人形骨骼,并且把各自命名的每根骨骼跟人形骨骼中默认命名的骨骼对应

2 关于(不同骨骼重定向)初始姿态问题

这里ue4.17跟之前版本(文档)稍微有些不同,编辑器做了升级

这里记录下详细步骤

a 选中要重定向的那个骨骼(SWAT_Skeleton),打开重定向管理器,点击查看姿势(如果不点这个,调了也没用,这里调整的是重定向时的初始姿态,并不是改变SWAT_Skeleton的初始骨骼姿态,所以才有查看姿势这个开关,当点击隐藏姿势,显示的就是SWAT_Skeleton的原始姿态了)

b 调整目标骨架(SWAT_Skeleton)肩部位置(目的是保证目标骨架SWAT_Skeleton和 原骨架UE4_Mannequin_Skeleton初始姿态一致),然后记得保存,这里保存并不是点保存按钮,需要使用ModifyPose->UseCurrentPose。

注:modifyPose中貌似还可以使用PoseAsset来直接复制姿态,这个还有待研究

3 选择骨骼A的动画a,右键-> 重定位动画资产->赋值动画资产并重定位,然后选择骨骼B,

可以使用修改按钮,选择生成新动画副本的位置,默认指定的是Game文件夹

然后点重定向按钮,就会在指定位置生成新动画副本

未进行步骤2前,执行步骤3

进行步骤2后,执行步骤3

4 动画蓝图重定位跟动画操作基本一致

ue4 retarge记录的更多相关文章

  1. ue4 编辑器记录

    Matinee 编辑器 菜单:Add New Empty Group->选择要变动的Actor->菜单:Add Actor->菜单:Add Key->变更Actor属性-> ...

  2. UE4 Android打包 问题 记录笔记

    问题一:error: expression result unused [-Werror,-Wunused-value] 虽然看了输出日志知道了这行沉余代码删掉就行,但是不是很懂这个地方报错意义. 问 ...

  3. ue4 staticMesh属性记录

    Light Map Resolution 光照贴图分辨率 Generate Mesh Distancde Field 生成网格距离场(一种不怎么消耗性能的阴影) http://api.unrealen ...

  4. UE4材质特别属生记录

    tangent space normal 切线空间法线 材质默认使用的切线空间法线,可切换为对象空间法线(彩色贴图) Separate Translucency 单独半透明 允许半透明被渲染到一个单独 ...

  5. ue4配置分析记录

    相关代码 UObject::CallFunctionByNameWithArguments  ExecuteConsoleCommand << 配置.ini[???.类名]    //要先 ...

  6. [UE4]记录瞬移目标点

    1.判定射线是否击中一个物体:LineTraceByChannel的Return Value返回值 2.击中的目标点:LineTraceByChannel.Out Hit.Location,如图提示文 ...

  7. ue4 renderTexture简单记录

    示例内容中的renderTexture 抓取部分 1 新建一个TextureRenderTarget2D 2 抓图 新建actor,一个camera,下面挂一个SceneCaptureComponen ...

  8. ue4 官网IK流程记录

    基本流程 角色蓝图构造 角色蓝图 角色蓝图中新建的函数IK Foot Trace AnimGraph事件 这里注意下Make Vector时把z方向的偏移量设置到了X上 猜测原因是效应器的x方向跟世界 ...

  9. 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法

    马三在开发过程中一直用的都是UE4.9版本(很久没有更新了.),因为功能都够用,所以也懒得去更新.这不最近UE4 发布了最新的4.14版本,本来想尝个鲜,试试新版的UE引擎怎么样,结果这一安装上就一直 ...

随机推荐

  1. java 解析excle

    jjava解析excle或者csv文件并导出到web界面: 创建ExcelShower.java package com.ssm.controller; import java.io.File; im ...

  2. Android窗口系统第二篇---Window的添加过程

    以前写过客户端Window的创建过程,大概是这样子的.我们一开始从Thread中的handleLaunchActivity方法开始分析,首先加载Activity的字节码文件,利用反射的方式创建一个Ac ...

  3. PHP5.3之后的新特性【转】

    http://blog.csdn.net/black_ox/article/details/21163193

  4. 局域网扫描IP

    今天有朋友去面试,被问到一个“如何扫描局域网IP”的问题(即找出局域网中当前已使用的IP),朋友回答的不好,回来问我,我首先想到的就是使用ping命令将局域网可分配的IP地址逐个遍历一遍,能ping通 ...

  5. codeforces 659G G. Fence Divercity(dp)

    题目链接: G. Fence Divercity time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  6. linux C++ scandir 的使用

    () 头文件 #include <dirent.h> () 函数定义 int scandir(const char *dir,struct dirent **namelist,int (* ...

  7. xxx referenced from: xxx in xxx.o

    情形一:可能是有一些源码文件没有加入工程所导致的,找到相应的.h和.m文件,将其add进入项目工程即可解决这种问题. 情形二:也有可能是某些framework没有加入项目中, 示例:   Undefi ...

  8. Django:locals()小技巧

    locals()返回一个包含当前作用域里面的所有变量和它们的值的字典. 所以可以把views改写为 def current_datetime(request):     current_date = ...

  9. Codeforces 762B USB vs. PS/2 贪心

    Codeforces 762B 题目大意: 有a台只有USB接口的电脑,b台PS/2接口的电脑,c台两种接口都有的电脑.每台电脑只用装一个鼠标.给出n个鼠标及其费用,每个鼠标只能使用一遍.在最大化有鼠 ...

  10. Cache系列:spring-cache简单三步快速应用ehcache3.x-jcache缓存(spring4.x)

    前言:本项目基于spring4.x构建,使用ehcache3.5.2和JCache(jsr107规范) 一.依赖 除了ehcache和cache-api外,注意引用spring-context-sup ...