ITADN
SpookyCorgi/phiz · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Facial mocap from anywhere with any devices:Phiz

Facial mocap from anywhere with any devices:Phiz

GitHub deployments License: GPL v3 Donate

什么是 Phiz?

Phiz 是一款开源工具,让你能够在浏览器中直接进行面部动作捕捉,使用任何移动设备或电脑上的摄像头。随后,你可以将 blendshape 数据发送到本地或远程的另一个浏览器或主流游戏引擎;你甚至可以选择通过 Phiz 的跨平台应用使用 OSC 协议广播 blendshape 数据。

Phiz 正在开发中,并频繁更新。如果你遇到问题,请确保你使用的是最新版本。

它是如何工作的?

  • 面部动作捕捉……就在你的浏览器中

    Phiz 的动作捕捉系统是使用 Mocap4faceGoogle mediapipe 的机器学习模型构建的。无需 iPhone LiDAR 或 RGBD 摄像头! 底层的 ML 代码并非固定不变,每当有更好的模型时都会进行更新。

  • 数据流:支持 Unreal 和 Unity

    Phiz 包含自定义插件,可在 Unreal EngineUnity 中启动 WebSocket 服务器,用于接收来自浏览器的实时数据。这些插件还包含方便的预设,你可以轻松将其与流行的 3D 化身配合使用,例如 Metahumans 和 ReadyPlayerMe 角色。

  • 数据流:浏览器到浏览器 & 浏览器到 OSC 应用

    Phiz 使用 WebRTC(视频通话中使用的协议)将数据从一个浏览器发送到另一个浏览器,或从浏览器发送到应用。然而,完全不会发送任何图像或视频。WebRTC 还支持点对点安全连接和低延迟。

  • ARKit 支持

    Phiz 使用与 ARKit 相同的 blendshapes。有关 blendshape 名称和顺序的更多信息,请参阅 Blendshapes 页面

如何使用?

免责声明: 请确保在录制期间浏览器页面保持活动状态。

  1. 访问 capture 页面 并允许网站访问您的摄像头。

  2. 选择正确的摄像头,选择所需的帧平滑度,并决定是否使用敏感动作捕捉。

  3. 选择以下两种方法之一来发送捕获的数据:

    • 本地:

      • 使用 Phiz 的自定义插件,通过您定义的 URL 和端口将数据直接发送到 Unreal engineUnity
      • 有关更多信息,请参阅 文档
    • 远程:

      • 点击以 "p-" 开头的 8 位字符代码(例如 p-AwCodE)以复制它。
      • 要将数据发送到另一台设备(例如,在手机上录制并在 PC 上的 Unreal 中控制虚拟形象):
        1. 在另一台设备上打开 receive 页面
        2. 粘贴已复制的 8 位字符代码。
        3. 您现在应该能在设备上看到实时流数据,并能够本地共享它。
      • 要将数据发送到 Phiz App 以广播 OSC 数据:
        1. 下载并安装适用于您平台的 Phiz App
        2. 打开应用并粘贴 8 位字符代码。
        3. 数据现在将以 OSC 格式在您选择的端口上可用。

如果所有连接都正确但没有任何数据显示,请尝试刷新页面以生成新的代码。

插件

Unity

  1. 发布页面下载最新的 Unity 文件(phiz-unity-vx.x.x.zip)
  2. 解压后,将内部所有文件拖入您的 Unity Assets 文件夹。
  3. 查看 Example.cs 了解基本用法。(发布压缩包中也包含此文件。)

查看文档获取更多示例!

Unreal

  1. 发布页面下载最新的 Unreal 文件(phiz-unreal-vx.x.x.zip)
  2. 解压它。将 Plugins 文件夹复制到您的项目根文件夹内。
  3. 重启 Unreal。现在所有必要的模块将自动编译。

查看文档了解 metahuman 的快速设置以及常见虚拟形象的其他方法。

OSC 应用

Phiz 还提供适用于 Windows、MacOS 和 Linux 的应用程序。这些应用程序可以从网站接收数据,并向您桌面上的任何软件发送 OSC 数据。

  1. 发布页面下载适用于您平台的最新应用程序

  2. 按照应用安装指南安装应用程序。请注意,如果开发者未支付年度费用,Apple 和 Microsoft 可能会警告您该应用可能存在安全风险。然而,这是一个开源项目,所有源代码均可在仓库中供审查。

  3. 输入以 "p-" 开头的 8 位代码(例如,p-AwCodE)。如果连接成功,您应该能看到传入的数据。

  4. 输入 OSC 数据要发送到的端口。现在数据可以在您的整个计算机上使用。

查看 PureData 示例 以了解如何使用 52 个 blendshapes 作为合成器。

数据格式

所有数据都遵循 OSC 格式。 目前有 4 个数据通道。

  • /phiz/blendshapes

    一个浮点数组 [52 个 blendshape 值],范围从 0.0~1.0。查看 此处 了解 blendshapes 的顺序

  • /phiz/headRotation

    一个浮点数组 [x,y,z,w],范围从 -1.0 ~ 1.0。

这些是额外的大致从 eyeLookAt blendshapes 估算出的眼睛旋转。通常不需要,因为常见的 avatar 在其 blendshapes 中已经内置了眼睛旋转。

  • /phiz/leftEyeRotation

    一个浮点数组 [x,y,z,w],范围从 -1.0 ~ 1.0。

  • /phiz/rightEyeRotation

    一个浮点数组 [x,y,z,w],范围从 -1.0 ~ 1.0。

所有旋转都是右手坐标系、Y 轴向上、Z 轴向前的四元数。

Coordinate axis Coordinate axis

  • /phiz/version

    当前 Phiz 网站版本的字符串。

正在使用 Phiz?

如果您正在使用 Phiz,请告诉我们!我们很乐意看到您使用 Phiz 制作的内容,并很高兴展示您的作品。

许可证

Phiz 根据通用公共许可证 v3 的条款分发。简而言之,这意味着:

  • 您可以出于任何目的自由使用 Phiz
  • 您可以研究 Phiz 的工作原理并对其进行修改
  • 您可以分发 Phiz 的修改版本

请注意,一旦您分发了 Phiz 的修改版本,您还必须将您对源代码的修改以 GPLv3 的形式发布

Phiz 的附带插件根据 MIT 许可证发布。 这意味着您可以放心地将这些插件包含/嵌入到您的 Unity 和 Unreal 项目中。