用 UE 虚幻引擎做个捏脸小功能~~

最近在学习 UE 相关的使用,正好看到一篇文章讲解用 Control Rig 实现简单捏脸功能,这种小而美的完整案例挺适合来练手的,涉及到了 UI、蓝图、动画、骨骼等方面,值得推荐一下。

从这个小功能出发,在学习其他内容时如果有个简单案例可以将一系列功能点都串起来,那么往往会起到事半功倍的效果。

正好我也实现了一个简单捏脸效果,视频号里分享一下:

欢迎大家关注我的视频号,后续考虑更多地以视频形式来展示内容。

接下来就是这个捏脸功能的实现逻辑了。底层的实现很复杂,很多都是由 UE 虚幻引擎来提供的,但是理论上的实现很简单,体现在个人上更多的是操作经验。

UE 在导入人物模型时会带有一个骨架,如下图所示。人物的行动就是由一根根骨骼的变化来实现的,而面部的捏脸调节也是基于这一点。通过改变脸部相关骨骼的位置从而实现面部的变形,间接达到一个类似捏脸的效果

8b54e96cbedd5ea5dd1ecd24de8d5cd1.png


由于不会 3D 建模,使用了 UE 提供的免费模型。图上这个就是 "虚幻争霸:心菲" 模型了。

45578ddd6a56f9c6fc95327fa8d6436c.png


想要调节人物的骨骼,就要用到 Control Rig 插件功能了。它是一套骨骼绑定系统,可以对人物的骨骼建立相关的控制点,然后通过调节控制点的变换,就实现对骨骼的变换啦。

如下图所示,针对眉毛、眼睛、鼻子、脸颊、嘴唇这五个部位建立了相应的控制点。

27d4c177280158a615b6eb7330d4d99e.png


控 制点的性质、颜色以及位置都是可以调节的,建立的时候要选择好相应的骨骼位置 。
这个地方其实挺考验审美的,因为我只是写个小功能,就没有用到很复杂的骨骼,但是很逼真的调节效果就需要反复打磨骨骼模型以及控制点了。

然后就是在蓝图中把骨骼和控制点的变换进行关联,并且暴露相关的调整参数让外部进行调整。

由于 UE 的很多功能都是由蓝图来实现的,也不太好贴代码,就只能贴个蓝图的连接了,比拼一下谁的蓝图连线方式更优雅~~

f9753008d17d3a24137df57144b5d042.png


完成了骨骼和控制点的绑定之后,就可以在动画蓝图中设置人物的姿势是由 Control Rig 调整后的姿势(哪怕就是调整了个脸部)。

2e0a751852e44b8860bb5a57aac9d7f9.png

在动画蓝图中增加了几个变量去调节 Control Rig 中控制点的范围,这几个变量的值是由 UI 界面中的滑竿来调节的,并且在动画每次更新时都会更新这些值。

这里用代码来实现了 UE 中的一个子系统 FaceEditSubsystem ,主要功能就是用来存储数据的值,并且它可以在动画蓝图和 UI 蓝图中访问到,这一点很重要,否则这两个蓝图无法建立数据上的关联了。

6b68ee9eece700b4e303239d18ae288c.png


接下 来就是设置 UI 界面了,和用 Android Studio 操作界面差不多,拖一下控件绑定相关事件就好,具体效果就和上面视频展示的一样了。

af19e4e30620496fa9f2b67e70137da4.png


完成了 上面全部功能之后,再把相机位置调整一下对准人物的脸部,就可以看到运行效果啦。

总结一下整体的实现就如上面所说,UE 虚幻引擎提供的功能很强大,强大到只要熟练一点使用就可以实现一点小功能了,而这些功能的实现都可以不需要一行行代码的。

那么问题来了,在这种情况下,程序员学习 UE 怎样才能算是有自己的独特竞争力呢?莫非要比拼对 UE 软件的使用熟练度吗?那反而还失去了程序员的编码能力,恐怕还是要深入其源码,研究更多的底层功能实现。

最后欢迎大家加入 音视频开发进阶 知识星球 ,这里有知识干货、编程答疑、开发教程,还有很多精彩分享。

更多内容可以在星球菜单中找到,随着时间推移,干货也会越来越多!!!

0a5b49617c6529f4349cf053ff260abc.jpeg

给出 10元 优惠券,涨价在即,目前还是白菜价,基本上提几个问题就回本,投资自己就是最好的投资!!!

a971980f3b96f2dae0b91611822c5c7c.png

加我微信 ezglumes ,拉你进技术交流群

推荐阅读:

音视频开发工作经验分享 || 视频版

OpenGL ES 学习资源分享

开通专辑 | 细数那些年写过的技术文章专辑

Android NDK 免费视频在线学习!!!

你想要的音视频开发资料库来了

推荐几个堪称教科书级别的 Android 音视频入门项目

觉得不错,点个在看呗~

a8d58f19550205961095fd042f7d56e2.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/17325.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unreal Engine 虚幻引擎,性能分析,优化(一)

目录 一、Frame 帧 二、理想情况下,做性能分析时,当寻找游戏存在的瓶颈时,游戏的运行环境越接近目标硬件和目标平台,获得的数据越准确。 三、线程 四、Analysis of a frame ,“CPU”线程,“Game”线程 怎…

UE4 虚幻引擎 GitSourceControl源码解析

效果功能图 背景与目标 资产的工作量很大,并不是个人在短时间内可以独自完成的,需要大量美术人员长时间的进行团队合作完成的,并且完成一版之后,后续也还有更新维护的需求。所以UE的Editor也提供了对资产版本管理的功能&#xff…

虚幻4与Unity: 哪个游戏引擎是开发者的最爱?

转自: http://www.narkii.com/club/thread-335184-1.html 虚幻4与Unity: 哪个游戏引擎是开发者的最爱? 虚幻4 (UE4) 和Unity是目前市场上最热门的游戏引擎,也各自拥有为数众多的开发者,虽然一些大型的游戏公…

【UE4】虚幻引擎运行流程

前言 当前版本:4.26.2 本文原创 说明:有些名词保持英文可能更容易理解 目录 游戏流程总览 各个平台启动引擎的入口函数 引擎入口函数 GuardedMain() EnginePreInit 引擎预初始化 EngineInit 引擎初始化 EngineLoop 引擎主循环 EngineExit 引擎退…

【虚幻引擎】UE4/UE5插件

一、插件分类 插件分为七大类 Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数&…

虚幻引擎5 C++游戏开发教程

虚幻引擎5 C游戏开发教程 与 Epic Games 合作创建。从基础开始学习 C,同时在 Unreal 中制作您的前 5 个视频游戏 课程英文名:Unreal Engine 5 C Developer Learn C & Make Video Games 此视频教程共5.5小时,中英双语字幕,画…

【虚幻引擎】带你了解UE4

行业前景 越来越多的开发者,开发商投入到UE4中,简单来说就是使用UE4的人越来越多,许多独立游戏,大型的游戏,大公司例如“腾讯,网易”都在使用UE4来开发,加上UE4对开发者来说使用完全免费&#…

【虚幻引擎】UE4/UE5 后期处理盒子(PostProcessVolume)

B站教学链接:https://space.bilibili.com/449549424?spm_id_from333.1007.0.0 一、简介 PostProcessVolume(后期处理盒子):UE4非常强大的一个后期处理,可以调节画面的色彩,相机的景深,视频的输…

芒格-“永远不要有受害者心态”

我们应该以什么样的心态去对待我们的生活? 我不是受害者,我是幸存者。(ps :芒格深处利益之中,手握财富,应该见到过很多阴暗的人性。 他 可能也有魔鬼的一面)受害者的感觉:我认为这是一种反其道而行之的人类思考方式&…

巴菲特+查理芒格+投资理论+经典语录+给韭菜的启示

巴菲特查理芒格投资理论经典语录给韭菜的启示 巴菲特: 一个老年人在零售店里发现老婆丢了,恰好遇到一个年轻人也在找自己的另一半,老人问:你妻子长什么样?年轻人答:“她可真是个金发美人啊,身材…

git多账号切换

参考文档: https://blog.csdn.net/lqlqlq007/article/details/80613272 https://blog.csdn.net/qq_36602939/article/details/79794686 1.ssh-keygen -t rsa -C "你的邮箱" 回车,查看rsa目录,先进入该目录,将里面已…

git 用户的切换

需求场景: 某天已入职了 发现电脑上已经存在一个git的账号 这时候你需要登录你的 也就是账号切换 再比如 你的git换号了 养了个小的git号 或是从新建号了 但是电脑还存在老的号怎么办 就是需要账号的切换 目的就是登上我的账号 拉取我的私有仓库 第一步 准备 查看当前的git用配…

Git切换账号

用了新的电脑需要切换git到自己的账户 winR 输入 CMD 后运行以下命令 查看用户名: git config user.name查看用户邮箱: git config user.email修改用户名和邮箱,user.name/email后面千万记得加空格 git config --global user.name "…

拥抱生产力变革!GPT4接入Office,动嘴就能Excel到PPT!

梦晨 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 一觉醒来,工作的方式被彻底改变。 微软把AI神器GPT-4全面接入Office,这下ChatPPT、ChatWord、ChatExcel一家整整齐齐。 CEO纳德拉在发布会上直接放话:今天,进入人机交互的新时代…

零代码编程:用ChatGPT合并多个表格中的内容到一个excel中

电脑有几百个excel表格: 表格里面表头是一样的,但是数据不一样 现在,想把每个表格中的内容合并到一张表中,然后进行数据处理分析,该怎么办呢? 用ChatGPTPython,很快就可以搞定。在ChatGPT中选中…

巴比特 | 元宇宙每日必读:美版权局判定用AI工具生成的图片不受版权保护,官方解释:AI生成具有不可预测性,但并非一刀切...

摘要:据GameLook报道,一名图书作者Kristina Kashtanova此前为其创作的漫画书《Zarya of the Dawn》向美国版权局提起注册,书中使用了部分由Midjourney创作的插图。版权局此前曾接受了这一注册,但在近日却宣布撤销这项授权。该机构…

虚拟邮箱怎么设置方法_商务邮箱一般用什么邮箱正式?VIP邮箱名怎么设置好?...

不管你处在什么身份,邮件都是对外沟通的重要途径之一,虽然你可能很早就接触了电子邮件,用过QQ邮箱、TOM邮箱等,但学生时代用到的真的也不多,很多时候用的也不讲究。不过,你一旦转变角色到职场,邮…

PHPMailer 发送163网易企业邮箱和个人邮箱, 163邮箱可能无法发送gmail邮箱,可使用qq邮箱解决问题

第一步:注册邮箱,获取客户端授权码 (个人邮箱步骤类似) 企业邮箱设置:客户端设置->开启客户端授权密码->生成授权密码->保存授权密码 第二步: 上代码 composer require phpmailer/phpmailer /…

mysql开启邮件服务_邮件服务之实现基于虚拟用户的虚拟域邮件系统

postfixdovecotSASLmysqlapacheextmailextman实现基于虚拟用户的虚拟域邮件系统 声明:省略了前面的基础配置包括安装MYSQL,postfix等,这里用的Apache,MYSQL是rpm的,postfix,courier-authlib是编译安装的&am…

基于虚拟用户的邮件系统配置

基于虚拟用户的邮件系统配置 实验说明: 操作系统:redhat5.8_x64bit 由postfix sasl courier-authlib MySQL(实现了虚拟用户、虚拟域) dovecot Webmail {extmail(extmain)} 组成的虚拟用户。 需要准备以下软件包: postfix-2.9.6.tar.gz co…