当前位置:网站首页>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);
边栏推荐
- The third season of ape table school is about to launch, opening a new vision for developers under the wave of going to sea
- BiShe - College Student Association Management System Based on SSM
- Fibonacci number
- 关于#数据库#的问题:(5)查询库存表中每本书的条码、位置和借阅的读者编号
- 新手入门深度学习 | 3-6:优化器optimizers
- Cloud guide DNS, knowledge popularization and classroom notes
- 详细页返回列表保留原来滚动条所在位置
- synchronized 和 ReentrantLock
- [pat (basic level) practice] - [simple mathematics] 1062 simplest fraction
- CTF daily question day44 rot
猜你喜欢
esxi的安装和使用
Cve-2017-11882 reappearance
ubantu 查看cudnn和cuda的版本
JVM_ 15_ Concepts related to garbage collection
MYSQL GROUP_ The concat function realizes the content merging of the same ID
Who knows how to modify the data type accuracy of the columns in the database table of Damon
Cannot resolve symbol error
Mobilenet series (5): use pytorch to build mobilenetv3 and learn and train based on migration
What is the most suitable book for programmers to engage in open source?
激动人心,2022开放原子全球开源峰会报名火热开启
随机推荐
MCU通过UART实现OTA在线升级流程
golang mqtt/stomp/nats/amqp
Exciting, 2022 open atom global open source summit registration is hot
The detailed page returns to the list and retains the original position of the scroll bar
Synchronized and reentrantlock
synchronized 和 ReentrantLock
Distributed base theory
View class diagram in idea
几百行代码实现一个 JSON 解析器
After 95, the CV engineer posted the payroll and made up this. It's really fragrant
CTF daily question day44 rot
MYSQL GROUP_ The concat function realizes the content merging of the same ID
Finding the nearest common ancestor of binary search tree by recursion
RAID disk redundancy queue
IP storage and query in MySQL
Arduino hexapod robot
Xunrui CMS plug-in automatically collects fake original free plug-ins
Introduction to robotics I. spatial transformation (1) posture, transformation
Leetcode 44 Wildcard matching (2022.02.13)
Ubantu check cudnn and CUDA versions