Unity地面交互效果——5、角色足迹的制作

  大家好,我是阿赵。
  之前几篇文章,已经介绍了地面交互的轨迹做法。包括了法线、曲面细分还有顶点偏移。Shader方面的内容已经说完了,不过之前都是用一个球来模拟轨迹,这次来介绍一下,怎样和角色动作结合,做出足迹(FootPrint)的效果。
在这里插入图片描述

一、足迹贴图的准备

  之前用球做效果的时候,是用RGB作为法线,然后A通道作为高度图的,所以这里准备一张脚印的贴图,也是同样的道理:

在这里插入图片描述
在这里插入图片描述

  由于我这张法线贴图是直接在Photoshop里面用灰度图转的,所以不是特别的准确。

二、和角色动作结合

  在角色的脚部骨骼上,建2个面片,然后把刚才的脚印贴图赋上去
在这里插入图片描述

  这个时候,脚印就会跟随这角色的脚步动作而已动。给这个脚印设置一个专门的Layer,这个Layer在主摄像机是看不到的,只有顶部拍摄的摄像机看得到。
  做完这一步之后,我们要修改角色的动画,因为脚印不可能一直看得到,只有角色踩在地上的时候,才会看到。
在这里插入图片描述

  可以看到,只有踩下去的2-3帧,才会看到脚印,抬起来的脚,要把脚印隐藏掉。
  由于我这张法线图比较浅,所以有点难看得清,我用红框框起来。
在这里插入图片描述
在这里插入图片描述

  在角色动起来的时候,顶部摄像机就会拍摄到连续的法线和高度图,形成了脚印。

Unity引擎制作沙地实时凹陷网格的脚印效果

三、在雪地里面的特殊处理

  刚才的做法,是在平地或者沙地这张不会凹陷很深的地方,所以只需要一个脚印范围就行了,不过如果是凹陷比较深的雪地,只有2个脚掌来渲染脚印是不够的,会出现这样的情况:
在这里插入图片描述

  这是因为,不止是脚底会碰到雪地,大腿腰部臀部其实也会对雪地造成影响。
  这时候需要做一下处理,把角色脚底的脚印放大一些,这样在雪地里面踩出来的脚印范围,大概和大腿的范围差不多,然后再在腰部加一圈,作为补充。
在这里插入图片描述
在这里插入图片描述

Unity引擎制作雪地效果

  这样做完之后,就可以做出比刚才合理的效果了。如果角色细节还是不够,可以继续调整脚部和腰部的图,或者两者的深度图做成不一样,比如腰部的alpha浅一点,脚底的alpha深一点。这样也可以做出脚底的脚印踩得明显一点,腰部挤开的深度会没那么深的效果。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出理解ResNet网络模型+PyTorch实现

温故而知新,可以为师矣! 一、参考资料 论文:Identity Mappings in Deep Residual Networks 论文:Deep Residual Learning for Image Recognition ResNet详解PyTorch实现 PyTorch官方实现ResNet 【pytorch】ResNet18、ResNet20、…

文件夹重命名:解决文件夹名称难题,批量将中文翻译成英文

在日常生活和工作中,我们经常需要处理各种各样的文件和文件夹。然而,有时候我们会遇到文件夹名称混乱或者无法识别的问题,这给我们的文件管理和查找带来了很大的不便。为了解决这些问题,我们可以使用文件夹批量重命名技巧&#xf…

strtok函数详解:字符串【分割】的利器

目录 一,strtok函数简介 二,strtok函数的用法 三,strtok函数的注意事项 一,strtok函数简介 strtok函数可以帮助我们将一个字符串按照指定的分隔符进行分割,从而得到我们想要的子字符串。 🍂函数头文件&am…

前端工程化(vue脚手架安装)

用命令行安装,先安装NodeJs,配置环境变量 1.npm config set prefix "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Node.js" //引号内路径是NodeJs安装所在路径 2.npm config get prefix 查看其是否成功 3.npm install -g vue/cli 4…

MySQL数据库入门到大牛_05_排序ORDER BY与分页LIMIT

文章目录 1. 排序数据1.1 排序规则1.2 单列排序1.3 多列排序 2. 分页2.1 背景2.2 实现规则2.3 拓展 3. 第五章练习 1. 排序数据 1.1 排序规则 如果没有使用排序操作,默认情况下,查询返回的数据是按照添加数据的顺序显示。例如:在淘宝中可以…

【Vue】组件封装小技巧 — 利用$attrs和v-bind接收传递未定义的属性

使用介绍 在Vue.js中,$attrs 和v-bind可以用于组件的二次封装,以在封装的组件中传递父组件的属性和事件。这对于创建高度可定制的通用组件非常有用。 下面是一些示例代码: 假设你有一个名为MyButton的自定义按钮组件,它接受一些…

14.序列化和文件的输入/输出 保存对象

14.1 保存对象状态 你已经奏出完美的乐章,现在会想把它储存起来。你可以抓个文房四宝把它记下来,但也可以按下储存按钮(或按下File菜单上的Save)。然后你帮文件命名,并希望这个文件不会让屏幕变成蓝色的画面。 储存状态的选择有很多种&…

域名解析DNS:如何查询txt类型的解析记录

前言 略 查询txt类型的解析记录 使用 nslookup 命令查询。 示例: cmd> nslookup -qttxt _acme-challenge.mydomain.com 服务器: UnKnown Address: fe80::1非权威应答: _acme-challenge.mydomain.com text "_unitrust-dcv2311071423492fmnwb1w…

07 # 手写 find 方法

find 的使用 find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 ele&#xff1a;表示数组中的每一个元素index&#xff1a;表示数据中元素的索引array&#xff1a;表示数组 <script>var arr [1, 3, 5, 7, 9];var result arr.find(fun…

第七讲:利用类事件改变对象的属性(上)

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。 类&#xff0c;是非常抽象的&#xff0c;更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

矿泉水除溴酸盐、矿泉水除溴化物的技术

我们常饮用的各品牌的矿泉水&#xff0c;实际在生产过程当中也涉及到了相当复杂的处理工艺的&#xff0c;今天为大家分享的是关于矿泉水中溴酸盐、溴化物的知识点&#xff0c;以及矿泉水中为什么要除溴酸盐&#xff1f;原理是什么&#xff0c;那么又是什么样的技术能真正从根本…

基于情感分析+聚类分析+LDA主题分析对服装产品类的消费者评论分析(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

华为防火墙基本原理工作方法总结

防火墙只会对tcp首包syn建立会话表&#xff0c;其它丢掉&#xff0c;如synack&#xff0c;ack udp直接建立会话表 icmp只对首包请求包建立会话表&#xff0c;其它包&#xff0c;如应答的不会建立直接丢掉 防火墙状态查看&#xff1a; rule name trust_untrust source-zone tru…

Qlik Sense : Fetching data with Qlik Web Connectors

目录 Connecting to data sources Opening a connector Connecting to a data source Authenticating the connector Defining table parameters Using standard mode or legacy mode Standard mode Connector overview Using multi-line input parameters to fetch da…

解析虚拟文件系统的调用

Linux 可以支持多达数十种不同的文件系统。它们的实现各不相同&#xff0c;因此 Linux 内核向用户空间提供了虚拟文件系统这个统一的接口&#xff0c;来对文件系统进行操作。它提供了常见的文件系统对象模型&#xff0c;例如 inode、directory entry、mount 等&#xff0c;以及…

【Linux】 reboot 命令使用

reboot 命令用于用来重新启动计算机。 语法 reboot [参数] 命令选项及作用 执行令 man --reboot 执行命令结果 参数 -n : 在重开机前不做将记忆体资料写回硬盘的动作-w : 并不会真的重开机&#xff0c;只是把记录写到 /var/log/wtmp 档案里-d : 不把记录写到 /var/log…

全志A40i应用笔记 | 3种常见的网卡软件问题以及排查思路

在飞凌嵌入式OKA40i-C开发板上虽然只有一个网口&#xff0c;但全志A40i-H处理器本身是有两个网络控制器的&#xff0c;因此在飞凌嵌入式提供的产品资料中提供了双网口解决方案。有的工程师小伙伴在开发过程中会遇见一些网卡的设计问题&#xff0c;今天小编为大家分享3种在使用O…

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 失物招领小程序 设计与实现

一.项目介绍 失物招领小程序 用户登录、忘记密码、退出系统 发布失物 和 发布招领 查看我发布的失物和招领信息 失捡物品模块可以查看和搜索所有用户发布的信息。 二.环境需要 1.运行环境&#xff1a;java jdk1.8 2.ide环境&#xff1a;IDEA、Eclipse、Myeclipse都可以&#…

【紫光同创国产FPGA教程】【PGC1/2KG第七章】7.数字钟实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGC1/2KG开发平台&#xff08;盘古1K/2K&#xff09; 一&#xff1a;盘古1K/2K开发板&#xff08;紫光同创PGC…