IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity | 实现面部驱动的两种方式 -> 正文阅读

[游戏开发]Unity | 实现面部驱动的两种方式

目录

一、运用unity Live Capture插件与iphone Unity Face Capture软件

1. 版本要求

2. unity中操作:

(1)引入Live Capture Package

(2)创建一个空物体(命名:Recorder),添加Take Recorder组件。

?(3)将模型拖入场景,并添加ARKit Face Actor组件,将该模型制作成Prefab。

(4)设置模型ARKit Face Actor组件中的mapper。

(5)设置New FaceDevice的ARKit Face Device组件的Actor值。

(6)创建服务器。

3. iphone下载Unity Face Capture软件

二、通过算法数据来控制BlendShape数值

1.相关函数

2.实现


一、运用unity Live Capture插件与iphone Unity Face Capture软件

1. 版本要求

2. unity中操作:

(1)引入Live Capture Package

????????Live Capture在Package Manager中通过git url的方式进行添加:

(2)创建一个空物体(命名:Recorder),添加Take Recorder组件。

? ? ? ? 在该组件下添加ARKit Face Device:此时会在Recorder物体下自动创建New FaceDevice,该物体上有个ARKit Face Device组件。

?(3)将模型拖入场景,并添加ARKit Face Actor组件,将该模型制作成Prefab。

? ? ? ? 注意模型导入Unity时要勾选Import BlendShapes(检查一下即可,unity默认勾选)。

? ? ? ? 在Project中创建一个mapper(右键/Create/Live Capture / ARKit Face Capture / Mapper),设置mapper相关属性(RigPrefab指定为上一步生成的prefab,LeftEye、RightEye、Head要选择对应的关节。这一步目的是映射BlendShape,如果我们的模型BlendShape名称符合苹果的ARKit要求,则AddRender操作会自动映射,否则需要我们手动设置)。

(4)设置模型ARKit Face Actor组件中的mapper。

(5)设置New FaceDevice的ARKit Face Device组件的Actor值。

(6)创建服务器。

? ? ? ? 点击Window/Live Capture/Connections,点击Configure FireWall。点击Create Server/Companion App Server,点击Start开启服务。

3. iphone下载Unity Face Capture软件

????????打开软件(该软件在iphone 12 Pro Max 15.4.1上亲测稳定,在iphone X上会发热闪退),输入IP及Port,连接之后就可以驱动了~(如果连不上,可能unity版本不符合或者网络不符合,可参考官方文档:About Live Capture | Live Capture | 1.0.1 (unity3d.com)

二、通过算法数据来控制BlendShape数值。

1.相关函数

  • 获取BlendShape数量及对应名称。
public sealed class Mesh : Object
{
    public int blendShapeCount { get; }
    public string GetBlendShapeName(int shapeIndex);
}
  • 设置BlendShape权重
public class SkinnedMeshRenderer : Renderer{
    public void SetBlendShapeWeight(int index, float value);
}

2.实现

????????可能算法提供的数据值范围为0-1,所以在SetBlendShapeWeight时要*100。

Dictionary<string, int> bs_map;//模型上的bs名称-索引
skinnedMeshRenderer.SetBlendShapeWeight(bs_map["eyebrow_BS.Eyebrows_Sad_L"], 20);

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:42:25  更:2022-07-05 23:42:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:27:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码