UE4-(IK)实现人物脚贴合地面解决自身胶囊体影响效果问题
单纯的缩小胶囊体半径来解决办法会存在问题,如果整个将胶囊碰撞器的半径缩小到0,人体会识别为在半空,会自动播放下落状态,所以不可行。
解决方法:1.上下楼梯时,将整个人身体的骨骼自动提升或者降低脚到地面的距离高度。2.上下楼梯时,将整个Mesh自动提升或者降低。
大致的实现方法相似,先使用骨骼提升或者降低。
实现方案:
在人物动画蓝图中使用 Transform Bone 变换(修改) 骨骼 节点,对骨骼进行偏移调整。
1.该节点,可以控制指定骨骼的位置、旋转、缩放的更改。我们需要对权限较高的骨骼节点进行操作,可以移动整体骨骼,但是不影响IK骨骼。
2.选择pelvis (盆骨),在该节点中因为我们当前只使用平移功能,所以可以将旋转缩放后面的对勾去掉,将节点简洁化。
3.在平移选项中,平移模式选择为添加到添加至现有。
替换现有项:将原值直接覆盖,替换为当前传入的值。
添加至现有:将传入值加到原值上。
平移空间:针对哪个空间进行变化。此值保持默认即可。
4.将节点进行连接,我们当前只需要更改Z轴方向的值,所以将Translation 分割结构体引脚。
5.将TranslationZ提升变量命名为HipOffset,操作完成后,进行编译。
6.返回至第三人称控制器蓝图面板。
分析:初始状态 胶囊体碰撞器最低点与脚底的位置是相平的,人物无论是在上楼梯还是下楼梯,我们需要将整个人身体向下进行移动高度差值最大的那个脚的那个高度,之前我们计算两只脚需要移动的高度时,使用的是
脚移动高度差 = 胶囊体半高 - 从膝盖向下发射射线击中物体的距离值
所以结果本身就带有正负值,上楼下楼时高度差最大的,得到的值都是负数,所以使用Min节点进行最小取值,也就意味着高度差是最大的。
增加Min节点,判断IKFootOffsetL与IKFootOffsetR值得大小,得出的最小值进行提升变量命名为IKHipOffset。为了避免后面连线太乱,所以将此操作封装为函数,名称为GetIKHipOffset
7.将获取到的IKHipOffset值传递到动画蓝图中骨骼需要的HipOffset进行骨骼偏移。
8.由于我们在骨骼的Z轴方向上进行了整体偏移,会影响两个脚应该要更改的高度值。所以我们需要在之前得到的两只脚需要变化偏移量的基础上减去骨骼在Z轴方向上的偏移量。
注意:因为左右脚的轴向不同,所以在操作右脚的时候需要再乘以一个-1。
9.增加序列节点的输出项引脚,连接逻辑
10.运行后,发现脚陷入地面,因为我们获取的是脚底部的骨骼,这个骨骼距离脚的底部还有一定的距离,才会导致脚陷入到模型中。
解决方法:在IKTrace函数中计算脚偏移高度的过程中,加入脚骨骼到脚底的距离高度,由于人物包括胶囊碰撞器都可能存在一定的缩放值,所以将Scale的Z值进行保存,在Construction Scrip 中进行操作
再IKTrace函数中计算脚偏移量加入
可以进行简化,使用添加数学表达式
11.编译,保存运行。
12.人物模型的降低高度,导致碰撞器太高,会导致如果上方有障碍物,高度距离较高的时候就会有影响。所以要进行将胶囊体高度降低。只需要将胶囊体碰撞器的大小高度更改为 = 胶囊体碰撞器原有值-人物高度偏移量 即可。但是人物的偏移量是负值所以需要使用 +法。
因为胶囊体高度更改会两端向中间缩放相同的高度,所以我们需要将人物下降高度/2.在使用原值去相加。
注意:如果缩放的值太小会导致人物一直在抖动。
方法与序列节点连接。
方法二:设置Mesh的高度
提前在脚本初始化的时候获取到Mesh 的当前的位置Z轴的值(相对位置),将上面蓝图中的设置高度偏移量方法,更改为设置Mesh相对位置 = 初始化时获取Mesh的高度 + 需要偏移的高度值
存在问题:上楼时抖动剧烈,在斜坡时人物模型脚陷入模型中。
UE4-(IK)实现人物脚贴合地面解决自身胶囊体影响效果问题相关推荐
- 抽象人物主题绘画合集|设计配色高级讲究
抽象主义表现形式中的构成意味的构图形式 及在创作中科学.理性化的思想都对现代设计产 生了影响. 抽象人物主题插画合集 在集设网 www.ijishe.com 帮助我们重现那些风格怪异的画作中的人物如果 ...
- ue4 改变枢轴位置_UE4-构建更好的静态网格体
在本文中,我们会讨论包括系统单位.三角面数量.材质ID.枢轴点,我们会学习什么是光照贴图,然后介绍如何创建光照贴图.我们将学习碰撞网格体的创建和使用,细节层级或 LOD,最后介绍如何限制过度绘制. 1 ...
- 临近年底企业利润高、所得税税负重,如何合规解决?
临近年底企业利润高.所得税税负重,如何合规解决? 本文作者:财税小喇叭 <财税小喇叭>专注于园区招商,利用地方性税收优惠政策助力企业减税降费! 税收相信大家都不陌生.企业要交所得税,个人要 ...
- 合规解决Unity游戏模型素材、UI和音频素材的5种方法
在开发游戏的过程会用大量的游戏素材,比如UI.音频等资源,如果开发的是3D游戏还需要大量的3D模型素材.本文介绍5种合规解决这些问题的方法. 1:Asset Store 如果你使用的是Unity引擎, ...
- UE4 第三人称人物 目标偏移(Aim offset)学习笔记
今天撸UE4教程时,学到了状态机,其中在学目标偏移时出现了挺多的BP结点,感觉逻辑上对于欧拉角的一些计算上的一些理解需要记一下. 欧拉角 关于欧拉角个人的理解呢,其实和三维坐标系差不了太多,只要根据 ...
- 怎么让人物脚贴地 模型_造型姿势复制_新手请教怎么把摆好的姿势复制到另一个人物模型上_彩妆阁...
1.好看的pose 侧身歪头,丁字步: 脚尖绷直,重心后: 挺胸收腹,线条露:) 呵呵,一点POSE也不懂的MM可以马上学到一招,接下来具体介绍: 1.头--尽量不要和身子同一个方向,否则显得比较呆板 ...
- UE4 SceneCapture2D显示人物模型时过滤背景颜色或天空盒
游戏有时候需要把人物显示到UI上,会需要用到RT.这里不是具体教程,具体教程可以找其他的资料.是因为我自己在做的时候遇到需要去除天空盒的问题,然后又没搜索到解决方法.这里把我解决的方法分享出来. ES ...
- 【UE4】导入FBX格式文件后呈现人物躺着情况的解决方法
问题描述 在Maya中,将fbx文件添加根节点之后导入UE4中,发现动画蓝图呈现躺着情况. 原因是因为Maya中的数轴设置和UE4中有区别,所以会出现下图情况 本篇文章将会介绍如何不通过Maya直接在 ...
- 一.《UE4奥丁》人物最大属性
寻找突破口 1.续上节课,此时看到标题,有基础的同学第一反应就是,老师用CE搜索血量,通过改变就能找到! 2.额,有这么简单吗! 3.既然写了这个帖子,肯定是有原因的 4.为了方便学习,我们就先按照 ...
最新文章
- sklearn构建stacking模型进行堆叠多模型分层级回归分析
- Stream Processing: Apache Kafka的Exactly-once的定义 原理和实现
- e1载波把32个信道按_E1载波把32个信道按(11)方式复用在一条2.048Mb/s的高速信道上,每条话音信道的数据速率是(12)。...
- 判断三角形与射线相交的完整代码。。。
- 用户描述 和 组描述 和 远程连接
- Trie树:应用于统计和排序
- 第五十一期:AIOps落地关键点指南
- python Exception(异常处理)
- 对过去css+div的总结
- odoo website_15专家使用的Website Builder软件
- php中foreach()的用法
- OleDb与Access数据访问中日期时间参数类型错误和命名参数的用法
- 西威变频器avo下载调试资料_步骤详解|西门子PLCS7-1200通过周期性通讯PZD通道时组态和下载...
- 使用Android Studio开发/调试Android源码
- php 二维数组变一维数组,php中怎么将二维数组转为一维数组
- spring cloud alibaba全家桶之nacos
- 怎么看xray发了那些数据包
- 分享到微信,qq空间,微博
- 智能语音计算器(四)
- 用 Jupyter Notebook 爬取微博图片保存本地!