手部IK,自制动画,蒙太奇——开门手臂自动弯曲、靠墙手自动扶墙
开门手臂自动弯曲
实现效果:人物做出抬手的开门动画时,若手臂碰到静态网格物体,拳头不会穿过物体,而是会产生手臂IK弯曲动画效果。
重要参考资料:
学习UE4动画蓝图:配置手部IK_YakSue的博客-CSDN博客_ue4手部ik
[UE4蓝图]虚幻4中完整实现脚部IK(一) - 知乎
Unreal Engine 4 Tutorial - IK Part 5 - Hands IK_哔哩哔哩_bilibili
https://docs.unrealengine.com/5.1/zh-CN/ik-rig-in-unreal-engine/
原理:
逆向运动学(Inverse Kinematics)简称IK是相对于 “正向运动学” 的。
“正向运动学” 即从骨骼的上级到下级进行旋转来达到自己想要的姿势,这是一个正向的思维。与此相对的,“逆向运动学” 是已知最后想要达成的姿势,然后反求出骨骼们的旋转。
一、前期准备工作
1、自制开门动画
这里我们不用网络上的动画资源,自己利用小白人现有的Idel动画资源,调整右手臂姿态,打上关键帧,这里不用删除时间轴上的帧,让它时间长度和默认Idel保持同步就好。不建议时间太短
2、蒙太奇
这里混入混出都不要,改为0。不需要过渡
3、实现抬手开门动画
可以直接在人物蓝图里调用播放蒙太奇节点,我这里放到动画图表中去实现了,同样的效果。
旋转混合打钩,防止播放蒙太奇动画时,人物不朝前。
通过以上几张图片,实现了按E播放开门蒙太奇动画,松开E就停止播放蒙太奇动画。这里有个小bug,即蒙太奇本身也是有时间的,所以就算长按E,开门动画也只能保持一定时间后就停止。所以可以进去蒙太奇中将动画资源循环播放。
二、手部IK
1、创建“双骨骼IK节点”
UE4里,IK的主要是由双骨骼IK节点实现的。先创建一个:
这个是添加在右手上的IK。
这个节点重点注意Effector Location,这个就是Maya骨骼内容中IK控制柄的末关节上的末端效应器。
蓝色十字即是末端效应器Effector Location,它控制着末关节的位置,父关节的形态位置则会通过IK解算器自动解算。
Joint Target Location 则对应着极向量控制器,决定了IK弯曲的方向。
这里重点就在获取到Effector Location的位置。
思路:通过手臂射线,获取到物体和手臂碰撞的位置点,将这个位置点赋予Effector Location,通过“双骨骼IK节点”的解算,实现IK效果。
2、添加插槽
3、射线函数的创建
4、动画蓝图
数据传递
动画图表
解决IK抖动问题:(不能完全解决,特殊角度还是会出现这个问题)
原因可能是手部插槽决定了射线的终点位置,当IK触发时,插槽位置刚好和射线碰撞点位置重叠了,此时射线是Hit还是没Hit?检测不稳定,导致动画蓝图的布尔姿势混合出现两种姿态的来回跳动,导致抖动。
所以插槽设置在了靠前的位置,会改善这个情况。
此时再碰撞,手部正好在碰撞点,但是插槽位置更靠前,因此射线检测一般会检测到碰撞 。但是特殊情况,比如侧身位,还是可能出现插槽位置和碰撞位置重叠的情况。
还有一个没发现原因的bug:
射线生成函数,插槽位置要在函数内部直接使用,使用接口外部调用会出错。错在我按上面往前移动了手部插槽位置后,这里获取到的插槽位置还是原来的位置,导致绘制出的射线还是原来的射线长度,没有变长。
用这个:
靠墙手自动扶墙
这种效果相对简单点,射线也改由肩膀直接向前(get actor forward vector)发出射线即可,不需要事先做抬手动作,需要加一个骨骼变换,调整扶墙手掌的姿态。
具体看
Unreal Engine 4 Tutorial - IK Part 5 - Hands IK_哔哩哔哩_bilibili
手部IK,自制动画,蒙太奇——开门手臂自动弯曲、靠墙手自动扶墙相关推荐
- 学习UE4动画蓝图:配置手部IK
目标 逆向运动学(Inverse Kinematics)简称IK是相对于 "正向运动学" 的. "正向运动学" 即从骨骼的上级到下级进行旋转来达到自己想要的姿势 ...
- UE4动画重定向与动画蒙太奇(播放动画)
1.首先选择动画重定向 2/选择要重定向得骨骼,然后选择保存文件夹. 3.在创建好的动画里创建动画蒙太奇 3.点击K播放动画 打开人物蓝图,把创建好的动画蒙太奇添加过去,这样只能添加一个动画. 4.如 ...
- UE4 C++入门——动画蒙太奇 学习笔记
UE4 C++入门--动画蒙太奇_哔哩哔哩_bilibili 1.创建动画蒙太奇 2.选择角色的骨架 SK_Mannequin(模型)_Skeleton(骨骼) 3.蒙太奇组 视频中可以看出ExoG ...
- 随机攻击动作(动画蒙太奇,动画蒙太奇插槽,蒙太奇数组)
实现效果: 本案例实现攻击动作的随机播放. 原理: 动画蒙太奇保证在同一个插槽下,利用随机访问蒙太奇数组中的蒙太奇对象,实现随机播放. 一:动画蒙太奇 选择动画资源,创建动画蒙太奇.注意:本案例是实现 ...
- 使用UE4动画蒙太奇实现分层动画
目标 在之前的博客<学习UE4官方第三人称模板中的内容>中,角色已经可以移动和跳跃了.这一篇将会在之前的基础上,增加一个"拳击"动作,而且想要在移动与跳跃的同时做&qu ...
- 虚幻引擎图文笔记:用Two Bone IK实现手扶墙
效果 文章目录 效果 原理 步骤 角色蓝图 动画蓝图 Event Graph Amin Graph 运行一下 原理 在<虚幻引擎插件:使用Power IK轻松愉快地实现脚底板位置矫正>一文 ...
- 的采样方式_DR803M4水质自动采样器(岸边站自动排空型)
应用概述 该水质自动采样器适用于岸边式水质自动监测站,该采样器可与地表水水质自动监测系统对接,实现定时采样.时间等比采样.同步采样.外控采样.超标采样.立即采样功能.采样瓶具有密封功能.自动排空功能以 ...
- PPT放映时无法自动播放视频,同时自动播放两个视频
PPT放映时无法自动播放视频,同时自动播放两个视频 选中视频,设置为自动播放模式 如果放映时仍不能自动播放 文件→选项→高级→显示 将"禁用幻灯片放映硬件图形加速"勾选 同时播放两 ...
- 自动驾驶系统关系与自动泊车原理
自动驾驶系统关系与自动泊车原理 自动驾驶系统关系 图1. 自动驾驶系统关系 2.关键算法解析--自动泊车 图2. 关键算法解析--自动泊车 外侧转角α和内侧转角β如下关系式 后轮内侧转弯半径R1,后轮 ...
最新文章
- python slice是共享内存吗_在共享内存中使用numpy数组进行多处理
- 人脸识别未来发展如何更有“面子”?
- python下载不下来_Python不能下载zip文件,而Browser/Selenium可以下载,这是为什么?...
- python获取文件的大小_python获取文件大小
- Java网络编程笔记4
- xcode_6.1正式版下载xcode_6.1.dmg 下载分享
- MyBatisPlus条件构造器排序方法orderByDesc参数怎样构造
- BSP for good 3d engine
- SpringMVC请求处理流程、springMVC工作流程
- 专业课程设计之客户与服务器程序的同步与通信机制的设计(二)TCP通信
- [教程]微信官方开源UI库-WeUI使用方法【申明:来源于网络】
- 火狐浏览器插件大全,火狐插件大全,firefox插件使用方法
- CS131-Lecture1 课程介绍
- 智能音箱全国产化电子元件推荐方案
- LightningChart数据可视化工具图形控件教程47-SurfaceGridSeries3D(曲线网格系列3D)
- unity3d-学习笔记19-卡牌游戏制作(战斗胜利界面,点击菜单栏出现其他选项以及对应功能,实现能量卡消耗蓝条)
- android调起浏览器设置头部,Android开发:调起手机浏览器
- 线程池为啥要用阻塞队列
- pix2pixHD:High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
- 华为服务器 自动安装 黑屏,华为服务器显示器黑屏如何解决