[XR]动捕 Unreal + ControlRig + ViveTracker

开发环境:

  1. Windows 10 专业版;
  2. UE4.27;
  3. ue插件:LiveLink / ControlRig / SteamVR
  4. Vive Pro 套件;
  5. Vive Tracker 3.0 (4个);
  6. Steam Valve Index  (2个),主要为了添加手指控制;
  7. 虚拟Avatar:Daz3D人物模型;

开发步骤:

  1. SteamVR设备相关:参考[XR]动捕 UnityXR + FinalIK(VRIK) + SteamVR_GrimRaider的专栏-CSDN博客使用Final IK 控制人类骨骼实时同步动作。Unity + Final IKhttps://blog.csdn.net/GrimRaider/article/details/121699024?spm=1001.2014.3001.5501
  2. 获取Tracker数据:(2种方式: MotionController / LiveLinkSource,本例使用的MotionController)
  3. 拼ControlRig(全身):
    1. 6个控制节点:head / hip / left hand / right hand / left foot / right foot;
    2. 4个PoleVector:左右elbow,左右knee;
    3. 注意control节点要和骨骼初始Transform完全一致,因为后续需要使用Tracker同步数据;
    4. 简单的例子就是把手部和足使用BaseIK(TwoBonesIK)实现,头部简单处理成从Control获取Transform数据(GetTransform - Control)然后直接设置给对应骨骼( SetTransform - Bone),hip也同head;
    5. 自己不会拼ControlRig也可参考Daz3D插件自带的Genesis8SimpleCtrlRig,或ControlRigForDaz3D,如果发现模型四肢扭曲,先排除是不是导出时没勾选 "Fix bone rotations on imports" ;
  4. 拼ControlRig(手指):
    1. 主要使用DistributeRotation节点控制手指弯曲;
    2. 弯曲值从index传过来的 SteamVRFingerCurls(弯曲度)获取,Splays数据不会用;
  5. 在Tracker的MotionController下创建ControlRig里的control同步节点;
  6. 运行校准时,将所有Tracker和人物Avatar模型重合,使用GetSocketTransform提取对应骨骼世界Transform,将MotionController下的control节点设置为此数据,完成校准;
  7. 校准后,每Tick获取第6步的control节点世界Transform,设置到ControlRig对应control上,就完成动捕数据同步了,注意使用FromWorld转换一下坐标系。
  8. 面捕可以直接使用Daz3D插件自带的资源目录下找(DazToUnreal\Content)Genesis81ArkitExample,看不到的同学请安装Daz3D对应插件,并开启ViewOptions中的 "Show Engine Content" ,配合上 LiveLinkFace;
  9. index和Tracker\ Controller模型,可以使用OpenXR插件中的left_ValveIndexController、right_ValveIndexController,和Engine/VREditor/Devices/Vive,一般OpenXR/Devies下有大部分模型;

参考:

  1. 大佬github(里面有youtube视频讲解):https://github.com/Megasteakman/VRMocaphttps://github.com/Megasteakman/VRMocap
  2. 大佬文档:https://docs.google.com/document/d/1yg98JJIbE_FsXjfotas_DSuWrzXPzFthoK6CIOlKLMk/edit#https://docs.google.com/document/d/1yg98JJIbE_FsXjfotas_DSuWrzXPzFthoK6CIOlKLMk/edit#
  3. 日本基于AI算法的动捕软件MocapForAll:https://www.bilibili.com/video/av803800872https://www.bilibili.com/video/av803800872https://www.bilibili.com/video/av803800872
  4. 官方ControlRig视频1:[英文直播]UE4.26中使用Control Rig制作动画 | Animating with Control Rig in 4.26(官方字幕)_哔哩哔哩_bilibili虚幻引擎教学https://www.bilibili.com/video/BV1Fb4y1d7KV?from=search&seid=7884981084531326263&spm_id_from=333.337.0.0
  5. 官方ControlRig视频2:[英文直播]使用ControlRig样例工程创建动画 | Animating with the Control Rig Sample Project(官方字幕)_哔哩哔哩_bilibiliAnimating with the Control Rig Sample Projecthttps://www.bilibili.com/video/BV1nb4y1X7A5
  6. Daz3D相关1:[Distribution] Control Rig for Animations in Unreal Engine - Daz 3D ForumsTO USE THIS YOU MUST ENABLE FIX BONE ROTATIONS ON IMPORT: http://davidvodhanel.com/daz-to-unreal-fix-bone-rotations-option/ Hello guys,https://www.daz3d.com/forums/discussion/488811/distribution-control-rig-for-animations-in-unreal-engine
  7. Daz3D相关2:Daz To Unreal – Fix Bone Rotations Option – David Vodhanelhttp://davidvodhanel.com/daz-to-unreal-fix-bone-rotations-option/
  8. Daz3D相关3:Inverse Kinematics - Control Rig - Daz 3D ForumsHas anyone been successful at setting up IK in the Control Rig?https://www.daz3d.com/forums/discussion/502691/inverse-kinematics-control-rig
  9. 第3方动捕Manus:Setup | Polygonhttps://www.manus-meta.com/knowledge/setup-polygon#steamvr
  10. 其他1:https://github.com/guto88/ControlRigForDaz3Dhttps://github.com/guto88/ControlRigForDaz3D
  11. 其他2:https://github.com/guiglass/Unreal_Engine_5_Live_Production_Example/https://github.com/guiglass/Unreal_Engine_5_Live_Production_Example/

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GrimRaider

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值