当前位置: 首页 > article >正文

UE5学习笔记18-使用FABRIK确定骨骼的左手位置

一、在武器的骨骼资产中创建一个新的插槽

二、在动画类中添加代码

        xxx.h

UPROPERTY(BlueprintReadOnly, Category = Character, meta = (AllowPrivateAccess = "true"))/** 蓝图只读 类型是Character 允许私有访问 */
FTransform LeftHandTransform;//拿武器时知道左手在什么位置 当前是右手拿武器

         xxx.cpp 在NativeUpdateAnimation函数中添加

	if (bWeaponEquipped && EquippedWeapon && EquippedWeapon->GetWeaponMesh() && BlasterCharacter->GetMesh())
	{
		/* 获得在世界空间中的骨骼的插槽 */
		LeftHandTransform = EquippedWeapon->GetWeaponMesh()->GetSocketTransform(FName("LeftHandSocket"),ERelativeTransformSpace::RTS_World);
		/* 转换成骨骼空间,	第一个参数是相对与哪个hand_r是右手骨骼的名字,
							第二个参数是新插槽的位置,LeftHandSocket是新添加的插槽
							第三个参数是旋转的度数,FRotator::ZeroRotator零旋转
							第四个参数输入变换的位置
							第五个参数输出变换的旋转
		*/
		FVector OutPosition;
		FRotator OutRotation;
		BlasterCharacter->GetMesh()->TransformToBoneSpace(FName("hand_r"), LeftHandTransform.GetLocation(), FRotator::ZeroRotator, OutPosition, OutRotation);
		LeftHandTransform.SetLocation(OutPosition);
		LeftHandTransform.SetRotation(FQuat(OutRotation));
	}

三、在动画蓝图中创建新的状态机,在将当前动画放在缓存中

 

 四、在三中的新的状态机中添加一个状态

五、在FABRIK状态中

注:在当前动画中直接将Use cached pose Aim offsets 和FABRIK直接连接后 中间的Local To Component 节点会自动出来 另一边的节点一样,直接连接就行 

六、运行调试如果对当前另一只手的位置不满意可以改变在添加的骨骼网格体中的插槽的位置

可以点击结束旁边的按钮移动武器的插槽查看是否满意当前位置 


http://www.kler.cn/a/284434.html

相关文章:

  • 【LeetCode】【算法】581. 最短无序连续子数组
  • 大厂的 404 页面都长啥样?看看你都见过吗~~~
  • 06.VSCODE:备战大项目,CMake专项配置
  • WebGIS三维地图框架--Cesium
  • 基于混合配准策略的多模态医学图像配准方法研究
  • ABC334
  • 《C++与新兴数据库技术的完美交互:开启高效数据处理新时代》
  • sort,uniq,wc,awk命令 (数据整理
  • 【软件测试专栏】认识软件测试、测试与开发的区别
  • Linux——命令行文件的管理(创建,复制,删除,移动文件,硬链接与软链接)
  • 纷享销客CRM渠道分销之多维度数据分析介绍
  • STM32 - 笔记3
  • mysql启动失败问题汇总
  • 黑马点评——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装
  • ES(Elasticsearch)可视化界面-浏览器插件
  • python-春游
  • 【Qt窗口】—— 对话框
  • 操作系统面试真题总结(二)
  • Mac下的压缩包和Win看到的不一样怎么办 Mac压缩后Win电脑看文件名会乱码
  • 利用Leaflet.js创建交互式地图:多种形状单个区域绘制
  • 揭秘!糖尿病:从绝望到希望的治愈之路
  • mysql实用系列:coalesce函数的使用
  • 【GIT】idea中实用的git操作,撤回commit,撤回push、暂存区使用
  • 一些好用的网站和api合集
  • 【Python机器学习】NLP词频背后的含义——隐性狄利克雷分布(LDiA)
  • JavaWeb - Maven