Skip to main content

UniHumanoid

Unity humanoid 工具与 BVH 导入器。

BVH runtime loader

var context = new BvhImporterContext();
context.Parse(path);
context.Load(); // create Skeleton hierarchy and mesh for visualize
GameObject root = context.Root;

 

RuntimeLoader

  • Scenes/RuntimeBvhLoader.unity

 

RuntimeLoader 和 PoseTransfer

加载 BVH 文件,并将姿势转移到任何具有人形特征的模型上。

  • Scenes/PoseTransfer.unity
humanpose_transfer_inspector.png

humanpose_transfer.png


加载 BVH 文件并创建带有 AnimationClip 的预制件

Drop bvh file to Assets folder. Then, AssetPostprocessor import bvh file.

将 BVH 文件拖动到 Assets 文件夹。然后,AssetPostprocessor 将导入 BVH 文件。

  • 创建一个 hierarchy(层级)预制件
  • 创建一个 humanoid Avatar
  • 创建一个 legacy 模式的 AnimationClip
  • 为 preview(预览)创建一个蒙皮网格
下载.png

将预制体在场景中实例化。

mesh.png

这个 object 可以处理了.

 

骨骼映射

这段 script(脚本)可以帮助你从现有的 GameObject hierarchy(游戏对象层级)中创建一个 human avatar。首先,你需要将这个脚本附加到具有 Animator(动画控制器)的 root GameObject(根游戏对象上)。

然后按照下面进行配置

  • 将模型位置设置到原点
  • 模型朝向 +Z 轴
  • 模型根节点没有旋转 Quaternion.identity
  • 设置 hips bone

点击Guess bone mapping(猜测骨骼映射)。如果推测骨骼映射失败,你可以手动设置骨骼。

(可选步骤), 按下 Ensure T-Pose。创建 avatar。

bvh_bonemapping.png

 

这些 humanoid 通过 UniGLTF 导入,并利用 BoneMapping 技术创建了 human avatar。

humanoid.gif

下载 BVH 文件