Unity头发飘动效果

news2024/11/14 17:24:39

Unity头发飘动

  • 介绍
    • 动作做头发飘动
    • 头发骨骼绑定模拟物理组件
  • UnityChan插件下载
  • UnityChan具体用法
    • 确定人物是否绑定好骨骼节点(要做的部位比如头发等)
    • 给人物添加SpringManager骨骼管理器
    • 给骨骼节点添加SpringBone
      • 这里给每个头发骨骼都添加上SpringBone。
      • 最后一个节点的处理
        • 这是我原本的最后一个节点
        • 这是我创建的最后一个节点![在这里插入图片描述](https://img-blog.csdnimg.cn/625e4599a9e94f58939b0adf567778b1.png)
      • 子节点设置
        • 参数含义
    • 碰撞设置
    • SpringManager设置
  • 最终效果

介绍

Unity中头发飘动其实有很多种方式,如果是想做的生动一点那么还是需要用到模拟物理这种方式,如果不要求的生动那其实可以在做动作的时候就把头发给做上飘动。这里不光可以做头发飘动部位的晃动,裙子的布料也是可以用这个插件来实现的。

动作做头发飘动

优点:是程序不需要写逻辑和操作,只需要播放对应的动作,将动作做好融合就可以做出效果;
缺点:是这种方法做出来的效果肯定是固定的不可能很飘逸和带有随机性的飘动;

头发骨骼绑定模拟物理组件

原理:这里原理就是将骨骼和子骨骼都绑定,然后人物产生位移的时候,父骨骼带动子骨骼位移,就是父级向下传导上层的力并且做对应的衰减或者增加;
优点:是比较飘逸生动,效果肯定是比纯做动作效果要好的多;
缺点:也很明显首先操作起来要复杂一些;

  1. 动作需要把头发骨骼也给绑定好;
  2. 程序需要把骨骼和子骨骼都绑定好对应的模拟物理组件;
  3. 碰撞也要做的话需要把碰撞也绑定一下;
  4. 性能开销必然会比直接播放动作要大很多;

UnityChan插件下载

这里我使用的UnityChan这个插件去做的头发飘动,这个插件在unitystore中直接搜索UnityChan就可以直接找到,添加到自己的账号资源,然后在unity中直
接导入即可。
我这里是已经添加到我的资源中了,所以我这里是直接显示在unity中打开
在这里插入图片描述
打开Unity的Package Manager,选中我下图上方的红框选择我的资源,找到我下方的Unity-Chan! Model这个文件点击DownLoad,我这里是显示的Re-Download是因为我这里已经下载过了,我直接导入Import了。下载完记得导入。
在这里插入图片描述
这里主要用到的几个脚本
SpringManager:这个是全局控制的脚本,控制所有子骨骼;
SpringBone:这个是放在人物的头发或者其他部位骨骼上;
SpringCollider:这个是用于做部位碰撞使用的;
RandomWind:这个就是做个随机的风向的处理,辅助模拟风;

UnityChan具体用法

确定人物是否绑定好骨骼节点(要做的部位比如头发等)

这里我举个例子查看你人物头发的帮没绑定骨骼,找到你的人物模型下面头的骨骼在往下找看我下图红框的位置,如果有子节点尝试拖动子节点看看头发的蒙皮是否有变化,有的话就是头发绑定骨骼了,就可以正常的做飘动,我们人物的胸部其实也有骨骼,这里就不多展示了,原理都是一样的胸部还更加容易左才几个骨骼节点,这头发就非常多。
.在这里插入图片描述
在这里插入图片描述

给人物添加SpringManager骨骼管理器

在人物的最外层挂载SpringManager这个管理脚本用来统一管理其他挂载SpringBone的骨骼节点
在这里插入图片描述

给骨骼节点添加SpringBone

这里给每个头发骨骼都添加上SpringBone。

这里仔细看为什么为什么最下面的骨骼是没有给添加这个SpringBone,这里是因为最下面的骨骼实际不参与这个头发的运动,也就是说最下面的骨骼节点你可以尝试拖拽一下,你会发现他不会影响任何头发的蒙皮。

在这里插入图片描述

最后一个节点的处理

那这里还有一个问题就是,如果你最下面的骨骼如果是可以操作头发的,那么你需要在这个骨骼上面在创建一个空物体,顺着头发向后延伸一下。下图给举个例子怎么创建

这是我原本的最后一个节点

在这里插入图片描述

这是我创建的最后一个节点在这里插入图片描述

应该是可以看出来变化的是吧,最后面创建的其实就是顺着头发向后走了一段位移,这个位移大小可以参考该节点的父节点的位移来定,也可以根据效果去调整,其实最后一个节点不会太影响效果,所以做不做都可以。

子节点设置

这里使我们添加的SpringBone骨骼,我们需要将下图的Child的这个子节点选择一下
在这里插入图片描述
这里看我拖拽的子节点,每一个挂载SpringBone都要拖拽一下子节点,这里也就好理解为什么最后一个骨骼如果没有实际影响头发的话就不需要挂载,如果最后一根骨骼影响那么就创建一个子节点在后移一下的这两个点了。因为只要挂载SpringBone的骨骼都需要拖拽子骨骼节点,因为他这里其实是前骨骼向后传导给子骨骼的。
在这里插入图片描述
后面的头发我就不截图了以此类推直接拖拽子骨骼节点就好了。

参数含义

Child:这里我就不多说了上面也说了过了就是当前骨骼的子骨骼;
Bone Axis:骨骼的轴向;
Radius:这个是当前骨骼的大小(后面做碰撞使用);
在这里插入图片描述
Is Use Each Bone Force Settings:是否使用每个骨骼的设置
Stilffness Force:每个骨骼的任性相当于,越小会越软,越大会越硬
Drag Force:拖拽受力,这个就是拖拽人物的时候,值越小骨骼越不受影响,值越大骨骼受到影响越大
Spring Force:这个是骨骼受力的方向,x y z轴方向受力
Colliders:这个就是可碰撞的对象列表(需要挂载SpringCollider)
Debug:这个就是Scene试图是否绘制这个骨骼节点
在这里插入图片描述
ThreShold:这个值我一直使用默认的0.01,没测试出来有什么用,翻译过来是门槛的意思,这里如果我用1的话是就是没法起作用
在这里插入图片描述

碰撞设置

这里比较简单我举个例子
在头发同级这里我创建了一个Collider并且挂载上SpringCollider设置一下对应的头部绿色圆形大小即可
在这里插入图片描述
然后这里给需要做碰撞的骨骼添加一个刚才创建的碰撞器即可
在这里插入图片描述

SpringManager设置

跟着我上面操作如果你运行你会发现压根没有作用,还差一步就是需要把刚才挂载SpringBone脚本的对象拖拽到SpringManager上激活,现在挂载SpringBone脚本的骨骼实际上是还没有激活的。

如下图所示这个就是我之前挂载的SpringBone的骨骼对象,全部拖拽到这里然后在运行就有还不错的效果了,当然不同部位要求都不太一样,根据我上面的参数详细调节就能做出来不错的效果。
在这里插入图片描述
Dynamic Ratio:这个就是动画起作用还是物理起作用的一个比率,下面的Force和Drag这两个我一般保持默认,用字骨骼自己的设置。
在这里插入图片描述

最终效果

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LCD12864驱动开发

目录 一、概述 二、方框图 三、模块接口说明 1、串口接口管脚信号 2、并行接口 四、模块主要硬件构成说明 1、RS,R/W配4种模式: 2、E信号 五、指令说明 六、读写时序图 6.1 数据传输过程 6.2、时序图 6.3、串口读写时序 七、交流参数 八、软件…

CrossOver2024中文免费版虚拟机软件

苹果笔记本不能用windows吗,让苹果电脑支持win系统,是很多苹果用户关心的问题。苹果笔记本是指使用macOS操作系统的苹果公司生产的笔记本电脑,而windows是微软公司开发的另一种操作系统。两者有什么区别,如何在苹果笔记本上安装和…

技术分享 | Web测试方法与技术之CSS讲解

CSS 就是层叠样式表(Cascading Style Sheets),定义如何显示 HTML 元素。HTML 元素的样式通常存储在层叠样式表中。 为什么要使用CSS 使用 CSS 可以定义 HTML 元素显示的样式,其实是为了解决内容与表现分离的问题。通过 CSS 可以…

Spring Boot中的Redis自动配置与使用

Spring Boot中的Redis自动配置与使用 Redis是一种高性能的开源内存数据库,常用于缓存、会话管理和消息队列等场景。Spring Boot提供了自动配置来简化在Spring应用程序中使用Redis的过程。本文将介绍Spring Boot中的Redis自动配置是什么以及如何使用它来轻松集成Red…

【漏洞复现】Nacos系列多漏洞复现

漏洞描述 nacos是阿里巴巴的一个开源项目,旨在帮助构建云原生应用程序和微服务平台 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任…

vue自定义防抖指令

main.js中 Vue.directive(throttle, {bind: (el, binding) > {let throttleTime binding.value; // 防抖时间if (!throttleTime) { // 用户若不设置防抖时间,则默认2sthrottleTime 2000;}let cbFun;el.addEventListener(click, event > {if (!cbFun) { // …

Unity基础课程之物理引擎4-用于射击或者点击消除的射线检测方法

业务逻辑 这段代码实现了一个功能,当玩家按下鼠标左键或按下Q键时,从游戏主角的位置沿着主角的前方方向发射一条射线。如果射线碰撞到了具有Collider触发或碰撞器的游戏物体,则销毁该游戏物体。 程序逻辑 程序的逻辑如下: 1. 在…

Vue中对路由的进阶学习

路由进阶 文章目录 路由进阶1、路由的封装抽离2、声明式导航2.1、导航链接2.2、高亮类名2.3、跳转传参2.4、动态路由参数可选符 3、Vue路由--重定向4、Vue路由--4045、Vue路由–模式设置6、编程式导航6.1、基本跳转6.2、跳转传参 路由基础入门 1、路由的封装抽离 问题&#x…

智慧办公数据可视化大屏设计(数据可视化)、大数据、数据大屏、办公数据大屏、办公数据

本次分享的作品是用软件Axure8.0(兼容9和10)制作的智慧办公数据进行的可视化大屏设计,主要是针对办公的综合数据、工位数据、会议室数据、访客数据、能耗数据以及设备智控数据进行可视化数据分析。 1、综合分析:对办公室的整体数据、空气质量…

Python数据分析实战-实现Mann-Whitney U检验(附源码和实现效果)

实现功能 使用scipy.stats模块中的mannwhitneyu函数来实现Mann-Whitney U检验,该检验用于比较两个独立样本的分布是否有显著差异。 实现代码 from scipy.stats import mannwhitneyu# 两个独立样本的数据 group1 [1, 2, 3, 4, 5] group2 [6, 7, 8, 9, 10]# 执行…

如何压缩视频?视频压缩变小方法汇总

视频是我们日常生活中不可或缺的一部分,但视频文件往往会占用大量存储空间,这在传输和分享过程中可能成为一个瓶颈。 为了解决这一问题,我们可以通过压缩的方式减小视频大小,视频压缩是指在保证视频质量的前提下,通过…

2023年中国胆道镜市场规模及行业现状,一次性胆道镜市场初具规模[图]

胆道镜是为胰胆管的内窥镜检查和内窥镜手术设计的医用光学内窥镜。肝胆管结石是我国常见的一种胆道疾病,病情较为复杂,且复发率较高,手术质量续期较高,胆道镜已由硬质胆道镜、纤维胆道镜,发展到目前的电子胆道镜。 胆…

SettingsView/设置页 的实现

1. 创建设置视图 SettingsView.swift import SwiftUI/// 设置页面 struct SettingsView: View {/// 环境变量,呈现方式:显示或者关闭Environment(\.presentationMode) var presentationMode/// 默认网址let defaultURL URL(string: "https://www.…

TensorFlow入门(十九、softmax算法处理分类问题)

softmax是什么? Sigmoid、Tanh、ReLU等激活函数,输出值只有两种(0、1,或-1、1或0、x),而实际现实生活中往往需要对某一问题进行多种分类。例如之前识别图片中模糊手写数字的例子,这个时候就需要使用softmax算法。 softmax的算法逻辑 如果判断输入属于某一个类的概率大于属于其…

NginxWebUI runCmd 远程命令执行漏洞复现 [附POC]

文章目录 NginxWebUI runCmd 远程命令执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 NginxWebUI runCmd 远程命令执行漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相…

web入门---tomcat请求响应

Tomcat 介绍 Web 服务器是一个软件程序,对 HTTP协议的操作进行封装,使得不必直接对协议进行操作,让 web 开发更加便捷。主要功能是“提供网上信息浏览服务”。 下载 tomcat 演示说明 这里有一个示例直接双击打开 index.html但是这个“打开…

ai智能写作MAX:一款强大的AI写作工具

在数字时代的今天,人们对高质量内容的需求越来越迫切。无论是企业宣传、网站推广还是个人创作,优质的文案都能为你带来更多的曝光和转化率。然而,写作并非每个人的强项,许多人遇到了创作瓶颈和写作困境。这时候,AI智能…

Web自动化测试工具哪家强? Selenium与Cypress的比较

随着互联网技术在全球范围内的迅速发展,各种基于浏览器的Web应用程序也已成为当今软件开发的主流。围绕如何更好、更有效的测试Web应用的技术也是层出不穷。Cypress和Selenium是目前广泛使用,且很有代表性的两种Web自动化测试工具。互联网上对Cypress和S…

知识增强语言模型提示 零样本知识图谱问答10.8+10.11

知识增强语言模型提示 零样本知识图谱问答 摘要介绍相关工作方法零样本QA的LM提示知识增强的LM提示与知识问题相关的知识检索 实验设置数据集大型语言模型基线模型和KAPIN评估指标实现细节 实验结果和分析结论 摘要 大型语言模型(LLM)能够执行 零样本cl…

网络安全概述——常见网络攻击与网络病毒、密码体制、安全协议等

目录 1、信息安全五大要素 2、常见的网络攻击类型 2-1)网络攻击的分类: 2-2)常见网络攻击: DOS 攻击的分类: 2-3)常见网络攻击的防范措施 3、计算机病毒 3-1)常见病毒的前缀及其简要描述…