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

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 节点会自动出来 另一边的节点一样,直接连接就行 

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 安装vue-cli2.0并创建项目
  • 实习项目|苍穹外卖|day2
  • jenkins安装k8s插件发布服务
  • rsync搭建全网备份
  • 实训第三十一天(playbook)
  • vue绑定事件
  • 全局页面数据渲染--SAAS本地化及未来之窗行业应用跨平台架构
  • ssm基于微信小程序的高校课堂教学管理系统论文源码调试讲解
  • 【WiFi主要技术学习2】
  • C++和OpenGL实现3D游戏编程【连载5】——纹理坐标、纹理贴图
  • leecode 31.下一个排列(Golang)
  • 数学基础 -- 线性代数之矩阵因式分解
  • 2024 年的 Web3 游戏:演变、趋势和市场动态
  • 卷积神经网络(CNN):算法、原理与应用
  • Java 如何实现一个简单 RabbitMQ 示例
  • avalon2.2的VM生成过程
  • C++11: atomic 头文件
  • Docker下部署自己的LNMP工作环境
  • Javascript编码规范
  • JavaScript服务器推送技术之 WebSocket
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • mockjs让前端开发独立于后端
  • PHP 7 修改了什么呢 -- 2
  • Phpstorm怎样批量删除空行?
  • rc-form之最单纯情况
  • SpringCloud集成分布式事务LCN (一)
  • WebSocket使用
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从零搭建Koa2 Server
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 分类模型——Logistics Regression
  • 蓝海存储开关机注意事项总结
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • # 数仓建模:如何构建主题宽表模型?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #预处理和函数的对比以及条件编译
  • (js)循环条件满足时终止循环
  • (二) 初入MySQL 【数据库管理】
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三)Honghu Cloud云架构一定时调度平台
  • (算法)硬币问题
  • (五)网络优化与超参数选择--九五小庞
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • *上位机的定义
  • .env.development、.env.production、.env.staging
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?