动捕数据bvh映射到fbx模型(blender)

一、软件及插件准备

1、blender下载

blender.org - Home of the Blender project - Free and Open 3D Creation Software

2、插件下载及安装

https://support.rokoko.com/hc/en-us/articles/4410463492241-Install-the-Blender-plugin

3、fbx模型下载

mixamo网站随便下载一个模型就好,模型需要是Tpose,其他姿势映射出来动作不对。

Mixamo

或者自己找个Tpose模型丢去mixamo绑定骨骼后导出也行。

二、映射bvh动作到fbx模型

1、打开bvh文件及fbx模型

2、调节bvh骨架和fbx骨架

将bvh骨架和fbx骨架调成差不多大小,尽量是将大骨架调小,因为渲染很吃性能,模型太大可能渲染不动。

3、动作映射

在此,请确保已经参考1.2中的链接,安装好了rokoko插件,显示如下选项则说明已经安装好。如果第一次使用显示需要登陆,点击去官网注册并激活后续即可使用。

这一步时间轴需要选中在Tpose那一帧,否则映射出来结果不对。

在下面页面确保骨骼匹配且每个骨骼仅使用一次,确认无误后选择当前,点击Retarget Animation

等待进度走完后,拖动进度条就能看到fbx模型像我们希望的那样动起来了。

三、问题:bvh文件第一帧不是Tpose

思路:修改bvh的第一帧数据为Tpose

import logging

if __name__ == '__main__':

    bvh_path = r"******.bvh"

    file = open(bvh_path, 'r')

    lines = file.readlines()
    datas = []
    start = 0

    for line in lines:
        if line.startswith("Time:") or line.startswith("Frame Time:"):
            start = 1
        elif start == 1:
            data = line.split(" ")
            if len(data) < 50:
                logging.error('err len(data)<50', len(data))
            add_data = ["0"] * (len(data) - 1)

            datas.append(" ".join(add_data) + '\n')
            start = 2
        datas.append(line)
    if start == 0:
        logging.error('none find start')

    with open(bvh_path, 'w') as file:
        file.writelines(datas)

四、参考:

blender动作捕捉数据bvh骨骼一键绑定_哔哩哔哩_bilibili

bvh 显示 t-pose_blend怎么把模型变成t pose-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值