[XR]动捕 UnityXR + FinalIK(VRIK) + SteamVR

开发环境:

Windows 10 专业版;
Unity 2021.3.6
SteamVR Plugin (v2.7.3),
SteamVR Plugin | Integration | Unity Asset Store
https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647
Final IK v2.0;
Vive Pro 套件;
Vive Tracker v2.0,6个;
虚拟人物模型:Final IK自带例子人物模型、Daz3D下载的人物模型;
开发步骤:

安装SteamVR相关环境(略),头盔和控制器可以正常使用;
配对Tracker:从Steam启动SteamVR后,菜单 => 设备 => 配对控制器 => 我想匹配不同类型的控制器 => 选择Tracker
配对成功后,在SteamVR窗口能看到所有设备都被点亮;
获取Tracker数据:
导入SteamVR Plugin,按官方文档操作即可;
上代码:
///  获取设备方式一:
// 添加设备监听
UnityEngine.XR.InputDevices.deviceConnected += OnDeviceConnected;
 
///  获取设备方式二:
var inputDevices = new List<UnityEngine.XR.InputDevice>();
UnityEngine.XR.InputDevices.GetDevices(inputDevices);
 
/// 判断设备类型
if (device.characteristics == InputDeviceCharacteristics.TrackedDevice)
{
    // tracker
    // 获取Tracker空间坐标
    Vector3 pos = new Vector3();
    device.TryGetFeatureValue(CommonUsages.devicePosition, out pos);
    // 获取Tracker旋转数据
    Quaternion rotation = new Quaternion();
    device.TryGetFeatureValue(CommonUsages.deviceRotation, out rotation);
}
 
实时获取Tracker坐标和旋转数据;
虚拟人物模型预处理:
修改AnimationType:导入的fbx => Rig => AnimationType => Humanoid;
查看 Avatar 的Configure;
使用FinalIK中的VRIK组件:
模型Prefab挂载组件VRIK,如果符合人体骨骼命名和结构,则References里会自动挂载,否则自己手动设置;
添加代码绑定Tracker和VRIK骨骼节点逻辑:
代码:
// 校准:
// ik : 挂载VRIK的场景中人物模型对象
// settings :  RootMotion.FinalIK.VRIKCalibrator.Settings
// 其他参数为6大主要节点Transform:头、躯干、左手、右手、左脚、右脚,使用同步的Tracker对象即可
RootMotion.FinalIK.VRIKCalibrator.Calibrate(ik, settings, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker);
// 其他校准函数参考官方文档
运行,查看动捕效果:
如果发现Game的视口比例不对(被锁死),可检查Camera组件的Output下XR Rendering字段,可以去掉,也可以新建一个Camera,在另一个Display上查看;
参考:

Unity 官方文档:
针对 XR 配置 Unity 项目 - Unity 手册
要针对 XR 配置您的 Unity 项目,请按照以下步骤操作:
https://docs.unity.cn/cn/current/Manual/configuring-project-for-xr.html
Steam 官方文档:
SteamVR Unity Plugin | SteamVR Unity Plugin
https://valvesoftware.github.io/steamvr_unity_plugin/index.html
Vive 官方文档:
Developer Resources - Developer Resources
https://developer.vive.com/resources/?site=cn
Final IK 官方文档:
VRIK
http://www.root-motion.com/finalikdox/html/page16.html
其他:
仅需两个摄像头就可实现全身追踪-Mocap For All_哔哩哔哩_bilibili
twitter/Akiya_Souken_VR对于大部分的VR玩家来说,全身追踪主要被用于VRchat中,通过绑在身上的追踪器来完成,从需要SteamVR基站到无需基站的6点惯性定位解决方案。现在,有一款新的全身追踪方案,无需基站,无需追踪器,它就是“Mocap For All”。这是一款来自日本开发者正在开发的,允许任何人都可使用的运动捕捉软件而无需特殊设备,最低要求是将两个网络摄像头连接到PC
https://www.bilibili.com/video/av333290600
————————————————
版权声明:本文为CSDN博主「GrimRaider」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/GrimRaider/article/details/121699024

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值