当前位置:网站首页>Unity | 实现面部驱动的两种方式
Unity | 实现面部驱动的两种方式
2022-07-06 01:08:00 【烫青菜】
目录
一、运用unity Live Capture插件与iphone Unity Face Capture软件
(2)创建一个空物体(命名:Recorder),添加Take Recorder组件。
(3)将模型拖入场景,并添加ARKit Face Actor组件,将该模型制作成Prefab。
(4)设置模型ARKit Face Actor组件中的mapper。
(5)设置New FaceDevice的ARKit Face Device组件的Actor值。
3. iphone下载Unity Face Capture软件
一、运用unity Live Capture插件与iphone Unity Face Capture软件
1. 版本要求
- unity版本:Unity Editor 2020.3.16f1 or later version
- iphone版本:iOS 14.6 or higher
- 参考文档:About Live Capture | Live Capture | 1.0.1 (unity3d.com)
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);边栏推荐
- 看抖音直播Beyond演唱会有感
- How to extract MP3 audio from MP4 video files?
- golang mqtt/stomp/nats/amqp
- Cve-2017-11882 reappearance
- [simple implementation of file IO]
- Spark SQL null value, Nan judgment and processing
- Cannot resolve symbol error
- 2020.2.13
- [groovy] XML serialization (use markupbuilder to generate XML data | create sub tags under tag closures | use markupbuilderhelper to add XML comments)
- 基于DVWA的文件上传漏洞测试
猜你喜欢

servlet(1)

Leetcode study - day 35

Mlsys 2020 | fedprox: Federation optimization of heterogeneous networks

Introduction to robotics I. spatial transformation (1) posture, transformation

How to extract MP3 audio from MP4 video files?

After 95, the CV engineer posted the payroll and made up this. It's really fragrant

Recoverable fuse characteristic test

Daily practice - February 13, 2022

The growth path of test / development programmers, the problem of thinking about the overall situation

Starting from 1.5, build a micro Service Framework - call chain tracking traceid
随机推荐
Spark SQL UDF function
Live video source code, realize local storage of search history
2020.2.13
VMware Tools安装报错:无法自动安装VSock驱动程序
Leetcode 44 Wildcard matching (2022.02.13)
devkit入门
servlet(1)
在产业互联网时代,将会凭借大的产业范畴,实现足够多的发展
[groovy] JSON serialization (jsonbuilder builder | generates JSON string with root node name | generates JSON string without root node name)
有谁知道 达梦数据库表的列的数据类型 精度怎么修改呀
In the era of industrial Internet, we will achieve enough development by relying on large industrial categories
Novice entry depth learning | 3-6: optimizer optimizers
95后CV工程师晒出工资单,狠补了这个,真香...
Leetcode daily question solution: 1189 Maximum number of "balloons"
Ubantu check cudnn and CUDA versions
ubantu 查看cudnn和cuda的版本
Cf:d. insert a progression [about the insert in the array + the nature of absolute value + greedy top-down]
[simple implementation of file IO]
Who knows how to modify the data type accuracy of the columns in the database table of Damon
Interview must brush algorithm top101 backtracking article top34