立即注册
登录
搜索
前端开发
后端开发
虚幻引擎
U3D引擎
体感研发
数据库
论坛
BBS
本版
帖子
用户
麒麟软控
»
论坛
›
麒麟软控
›
虚幻引擎
›
【新特性】LiveLink基本使用
返回列表
发新帖
【新特性】LiveLink基本使用
至天使
至天使
当前离线
积分
10
2
主题
5
帖子
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
发消息
发表于 2023-2-6 14:52:39
|
显示全部楼层
后续文章更新移步→微信公众号“虚幻社区”(mantra-xhsq),您的支持是我创作的动力。
一、什么是LiveLink
在介绍LiveLink之前,我们先回顾一下目前的动画工作流程。无论您使用的是Maya、Max、MotionBuilder还是其他DCC(Digital Content Creation)应用,首先会Key动画,动作和节奏满意了之后,会导出FBX,之后导入到引擎中,查看效果。如果你想对动画进行一些调整,比如,肩膀调低,腿调高等等,你需要回到DCC应用中重复上面的步骤,如下图所示:
但是有了LiveLink之后我们在DCC应用中Key动画时,不需要导出就可以在UE4引擎中查看效果。具体效果请参考下面的视频。
https://www.zhihu.com/video/985255442439831552
当我们在Maya中调节和播放动画,甚至是调整相机视角时,UE4中会随时刷新。而且UE4中的视觉效果要远远好于Maya,两者能够同步的前提是使用同一套骨骼。除了骨骼动画之外,表情动画,变形动画等等也是支持实时预览的。这样的话我们可以尽情的在Maya中调节我们的动画,直到最后满意了再输出。减少了中间过程中不必要的输出,这样的话可以省出很多时间,让我们把精力集中在做动画本身。
LiveLink的核心是LiveLinkClient,主要包含两个部分:
ManageSource也即动画数据的来源,如Maya、MotionBuilder以及运动捕捉的服务器等。另一部分是ManageSubjects,也即客户端中不同部分的数据流,比如一个玩家或者其他骨骼动画的数据。
二、UE4中激活LiveLink
接下来我们需要在UE4中激活LiveLink插件。在Edit>Plugins中搜索LiveLink并激活,按照提示重启编辑器即可。
激活之后我们从Windows>LiveLink菜单打开窗口,显示如下:
三、Maya中安装LiveLink
Maya的插件放置在引擎的安装目录下 UE_4.19/Engine/Extras/MayaLiveLink中,是一个压缩包,我们解压找到对应版本的文件:主要有两个,一个是.mll,另一个是.py。本人的目录如下:
我们将这两个文件拷贝到Maya的插件目录中,之后打开Maya,在Windows>Settings/Preferences/Plugins Manager中找到着两个文件并加载。如图所示:
如果平时用的比较多,可以勾选“自动加载”,否则每次打开Maya都需要重新操作一遍。
接下来我们回到MEL命令行,输入 MayaLiveLinkUI 激活我们的面板,右上角提示 “未连接”
四、连接Maya和UE4
我们回到UE4的LiveLink窗口点击 Add添加我们的Maya客户端,现在实在一台机器上测试,正常情况下是支持所有联网的设备,不过我没有测试。
添加完成之后,UE4的窗口会有变化,Maya的窗口也会有变化
五、骨骼设置和实时动画预览
接下来我们需要创建Subject,回到Maya,在MayaLiveLink窗口中输入自定义的SubjectName,此处我们使用 ThirdPerson(后面还回用到这个名字),选择我们的RootBone,点击Add Subject即可。
回到UE4中,在LiveLink窗口中可以看到我们添加的 ThirdPerson。
双击打开我们的骨骼,在Personal编辑器中找到PreviewSceneSettings并作如下设置:
选择LiveLink预览模式,设置我们的Subject,之后根据需要设置相机同步。设置完成之后发现相机刷新了,说明我们现在已经能够做到和Maya中同步了。这时回到Maya中调节骨骼和动画,那么在UE4中就会实时刷新。但是现在遇到一个奇怪的问题,就是轴向对不上,我猜想这是由于Maya和UE4向上的轴不一样导致的。
但是如果我们的骨骼名称在UE4中和Maya中对应不上,如在Maya中我们可能会添加前缀,如ArcBlade:Spine,在UE4中我们直接叫做Spine,那么这时候同步是有问题的。我们需要借助UE4提供的骨骼对应资源进行处理。
回到UE4,创建蓝图类,父类为LiveLinkRemapAsset。双击打开,我们需要重写一个函数,将我们骨骼名称中ArcBlade:去掉(读者可以根据自己的实际情况处理,此处只是举一个简单的例子),最后将这个蓝图指定到我们上图中Retarget Asset属性中即可。
这样的话,所有的一切就都正常啦,但是我们向看一下我们的动画在游戏运行过程中的一个状态。我们需要借助动画蓝图。接下来创建一个动画蓝图,在蓝图内创建一个特殊的节点 “LiveLinkPose”,SubjectName输入我们之前自定义的 ThirdPerson,之后指定该节点的 Retarget Asset属性,如果没有则保持默认即可。
之后将这个动画蓝图赋予给我们的Character类,我们就可以在游戏运行状态下在Maya中调整动画,在UE4中实时预览。还是非常非常方便和节省时间的。
七、扩展
目前这款插件只支持Maya和MotionBuilder。为啥?因为Epic使用Maya制作资源呀,所以近水楼台嘛。但是如果你的技术足够牛P,那么你可以自己写支持的插件,这是官方给出的一个参考图。
本文参考链接 YouTube 以及 官方文档
后续文章更新移步→微信公众号“虚幻社区”(mantra-xhsq),您的支持是我创作的动力。
欢迎大家加群讨论:源尚草学院虚幻社区 524418526(一群已满)790066685(请加二群)。
上一篇:
说不定是因为在家太无聊才简单摸了一个虚幻引擎里的 ...
下一篇:
UE 打包引擎源码
回复
举报
使用道具
分享
李坏不坏
李坏不坏
当前离线
积分
11
2
主题
6
帖子
11
积分
新手上路
新手上路, 积分 11, 距离下一级还需 39 积分
新手上路, 积分 11, 距离下一级还需 39 积分
积分
11
发消息
发表于 2023-2-6 14:53:22
|
显示全部楼层
轴向对不上怎么解决呢
回复
举报
使用道具
老六九弓长众
老六九弓长众
当前离线
积分
6
1
主题
3
帖子
6
积分
新手上路
新手上路, 积分 6, 距离下一级还需 44 积分
新手上路, 积分 6, 距离下一级还需 44 积分
积分
6
发消息
发表于 2023-2-6 14:54:00
|
显示全部楼层
如果不想互导动作,只想互导场景模型可以吗
回复
举报
使用道具
葉来叶好
葉来叶好
当前离线
积分
8
1
主题
5
帖子
8
积分
新手上路
新手上路, 积分 8, 距离下一级还需 42 积分
新手上路, 积分 8, 距离下一级还需 42 积分
积分
8
发消息
发表于 2023-2-6 14:54:25
|
显示全部楼层
理论上可以
回复
举报
使用道具
水公子
水公子
当前离线
积分
7
1
主题
5
帖子
7
积分
新手上路
新手上路, 积分 7, 距离下一级还需 43 积分
新手上路, 积分 7, 距离下一级还需 43 积分
积分
7
发消息
发表于 2023-2-6 14:55:24
|
显示全部楼层
可以用LiveLink来导入本地的关节坐标数据文件吗?
回复
举报
使用道具
程少骏
程少骏
当前离线
积分
17
3
主题
10
帖子
17
积分
新手上路
新手上路, 积分 17, 距离下一级还需 33 积分
新手上路, 积分 17, 距离下一级还需 33 积分
积分
17
发消息
发表于 2023-2-6 14:56:23
|
显示全部楼层
请问一下,我轴向也对不上,按照第五条说的方法试了,不行。我Maya里骨骼的命名和UE里确实不一样,但是在GetRemappedBoneName函数里,我直接将名字Print出来,发现是一样的,是UE里面骨骼的名字,这是为什么呢。我在Maya里面直接改朝上的轴为Z轴也没有效果。
回复
举报
使用道具
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
返回顶部
返回列表