当前位置:网站首页>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);边栏推荐
- Four commonly used techniques for anti aliasing
- Comment faire votre propre robot
- Keepalive component cache does not take effect
- 95后CV工程师晒出工资单,狠补了这个,真香...
- Recoverable fuse characteristic test
- [groovy] compile time meta programming (compile time method interception | method interception in myasttransformation visit method)
- Dynamic programming -- linear DP
- Differences between standard library functions and operators
- C language programming (Chapter 6 functions)
- 程序员搞开源,读什么书最合适?
猜你喜欢

Recommended areas - ways to explore users' future interests

Four dimensional matrix, flip (including mirror image), rotation, world coordinates and local coordinates
![[groovy] XML serialization (use markupbuilder to generate XML data | create sub tags under tag closures | use markupbuilderhelper to add XML comments)](/img/d4/4a33e7f077db4d135c8f38d4af57fa.jpg)
[groovy] XML serialization (use markupbuilder to generate XML data | create sub tags under tag closures | use markupbuilderhelper to add XML comments)

Beginner redis

1791. Find the central node of the star diagram / 1790 Can two strings be equal by performing string exchange only once

可恢复保险丝特性测试

For a deadline, the IT fellow graduated from Tsinghua suddenly died on the toilet

Building core knowledge points

vSphere实现虚拟机迁移

After Luke zettlemoyer, head of meta AI Seattle research | trillion parameters, will the large model continue to grow?
随机推荐
The value of applet containers
Redis' cache penetration, cache breakdown, cache avalanche
How spark gets columns in dataframe --column, $, column, apply
Idea remotely submits spark tasks to the yarn cluster
China Taiwan strategy - Chapter 8: digital marketing assisted by China Taiwan
VMware Tools安装报错:无法自动安装VSock驱动程序
Xunrui CMS plug-in automatically collects fake original free plug-ins
Cve-2017-11882 reappearance
程序员成长第九篇:真实项目中的注意事项
[groovy] compile time metaprogramming (compile time method injection | method injection using buildfromspec, buildfromstring, buildfromcode)
Novice entry depth learning | 3-6: optimizer optimizers
Recursive method to realize the insertion operation in binary search tree
I'm interested in watching Tiktok live beyond concert
Distributed base theory
[groovy] JSON string deserialization (use jsonslurper to deserialize JSON strings | construct related classes according to the map set)
Mobilenet series (5): use pytorch to build mobilenetv3 and learn and train based on migration
cf:D. Insert a Progression【关于数组中的插入 + 绝对值的性质 + 贪心一头一尾最值】
Zhuhai's waste gas treatment scheme was exposed
测试/开发程序员的成长路线,全局思考问题的问题......
Finding the nearest common ancestor of binary tree by recursion