膝关节检测之1设计目标手势与物体交互的动画

原来只用unity自带的IK,发现背部不能动,且手和手指的移动和旋转试了好像没法通过animation实现(加入关键帧并修改最终状态的数值后播放没有变化,确定最终关键帧的数值已经改了的)。看资料,发现final IK(官方资料网址http://root-motion.com/)可以实现我想要的,具体的例子为FINAL IK Full Body Biped IK - Linking Effectors to Objects。

UNITY官方商店要90美金,

连接如下Final IK | Animation Tools | Unity Asset Store

值得去看的是它把技术细节分的很细,都有对应的youtube视频,这好像比官网更上心呀。

于是通过CSDN的资料下载,花了1块钱RMB搞定,且买回来一个最新的版本好像是2.2吧。找了一下final IK官方的资料(http://www.root-motion.com/finalikdox/html/pages.html),很少且没有例子代码。于是通过youtube找到了别人的例子讲解(https://www.youtube.com/user/SnuffThePuppy),通过观看,确定了我想要的功能是可以通过final IK实现的。本篇实现了一个随动的功能即医生的手抓住病人的退随动。一开始的状态就是抓住病人的腿了(这个实际还需要改成一开始医生是独立的,然后再去抓住病人的退并推动腿使之弯曲,根据我观察的经验,这需要用到final IK的另一套办法Interaction System),不管怎么说,随动这个功能先实现了,准没错。本文仿照的youtube视频FINAL IK Full Body Biped IK - Linking Effectors to Objects(https://www.youtube.com/watch?v=-eFO8q-I6xI) 是9年前的视频,太老了,嘿嘿。

技术总结为:人身上配上Full Body Biped IK,左右手的positionrotationweight设置为1,其它的保持不动。

然后手动调整手和手指的位置到物体上(调整的时候要在运行状态,然后去scene场景,记得如果人身上加载了其它动画,调整的时候要去掉animator的勾选),在运行状态下,拷贝调整好的手,

并在停止运行后,粘贴到根目录下,

接着把这两个粘贴的手拖到正方形物体之下,成为其子物体。

写一段代码挂载到人身上

拖动三个量到新的代码组件需要的位置,其中IK是人自己,左右目标分别是正方形物体下的子物体手。

接着最重要的一步就是原来的两只手上添加Hand Poser组件

把正方形物体下边两个目标手分别拖动到人手上的Hand Poser组件种的Pose Root上:

左手:

右手:

很简单是不,大功告成。然后运行,测试一下效果

备解:正方形物体上没有挂载任何东西;人体挂在两样一是final IK的全身组件(此组件下的左右手权重要调成1),二是自己写的代码赋值人手的position和rotation;拷贝的终位手放到正方形物体之下,并在终位手上边添加Hand Poser组件(组件种的Pose Root为终位手本身)。

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

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

相关文章

3D调研-摄像头

参考资料: 来源1:https://leap2.ultraleap.com/leap-motion-controller-2 来源2: Gemini 2 _双目结构光相机_机器人感知-奥比中光官网 来源3: 国内外深度相机大盘点,仅用于学习科普!--机器视觉网 来源4&…

生产管理系统

车间的生产管理和控制的核心就是根据产品的制造工艺特点,考虑 到车 间内有限的资源,合理地调度生产,保证按时生产出质量合格的产 品。从面向 过程的观点来看,车间是产品的转换器,是制造过程组成的 集合。生产控制管 …

thinkphp6入门(9)-- 获取url路径中的应用名、控制器名、操作名

如果使用了多应用模式,可以通过下面的方法来获取当前应用 app(http)->getName(); 获取当前控制器 Request::controller(); 获取当前操作 Request::action(); 在中间件middleware中是无法获取控制器和操作的 需要将middleware的引入修改为 config 目录下的 ro…

token、cookie、session的对比以及Java实现

文章目录 token、cookie、session的实现原理、优缺点Java实现 token、cookie、session的实现原理、优缺点 Token、Cookie和Session是用于实现用户身份验证和状态管理的常见技术。它们各自有不同的实现原理、优点和缺点。 Token: 实现原理: Token是一种无状态的认证机制&#x…

乐器经营商城小程序的作用是什么

乐器产品覆盖的人群非常广,小学生、老年人都有不小需求,也因此市场中的从业商家相对较多,产品丰富可供消费者选购,然而在实际经营中,线上线下面临痛点不少。 通过【雨科】平台搭建乐器小程序商城,将所有产品…

CCF CSP认证 历年题目自练Day31

题目一 试题编号: 202206-1 试题名称: 归一化处理 时间限制: 500ms 内存限制: 512.0MB 题目背景 在机器学习中,对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0、方差为 1的标准分布&a…

Stm32_标准库_9_TIM

频率(HZ)是频率的基本单位1HZ是1s的倒数 STM32F103C8T6一般情况给定时器的内部时钟都是72MHz(系统主频率) TIM基本构成 计数器、预分频器、自动化重装 // 都是16位其中计数器、自动化重装,都是16位换算成10进制范围为[0, 655536] 时间 1 /…

【全网最细】谷歌小恐龙无敌代码它来了!

谷歌小恐龙是什么? 每次断网的时候,大家是不是都会玩一会,小恐龙快跑的游戏,或者在信息课上玩一玩,对不对? 还没玩过的小伙伴也不用担心,打开谷歌,输入这段网址:chrome…

C++智能指针(三)——unique_ptr初探

与共享指针shared_ptr用于共享对象的目的不同,unique_ptr是用于独享对象。 文章目录 1. unqiue_ptr的目的2. 使用 unique_ptr2.1 初始化 unique_ptr2.2 访问数据2.3 作为类的成员2.4 处理数组 3. 转移所有权3.1 简单语法3.2 函数间转移所有权3.2.1 转移至函数体内3.…

软件工程与计算总结(十一)人机交互设计

目录 ​编辑 一.引例 二.目标 三.人类因素 1.精神模型 2.差异性 四.计算机因素 1.可视化设计 2.常见界面类型 五.人机交互设计的交互性 1.导航 2.反馈 3.设计原则 六.设计过程 1.基本过程 2.界面原型化 一.引例 无论软件功能多么出色,亦或内部的构造…

LENOVO联想笔记本小新 Pro-14 2021AMD处理器ACH版(82MS)原厂Win10系统

下载链接:https://pan.baidu.com/s/1-KZ8Y9NmkS7nDXcMbhZLHw?pwdyrkx 系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、lenovo联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:ISO 文件大小&#xff1…

Spring中的任务调度:探索@Scheduled和@Schedules注解的威力

Spring中的任务调度:探索Scheduled和Schedules注解的威力 前言第一部分:什么是定时任务第二部分:Scheduled和Schedules注解详解Scheduled注解常用的Scheduled注解属性: Schedules注解cron表达式详解 第三部分:高级用法…

深入篇【C++】总结智能指针的使用与应用意义(auto_ptr/unique_ptr/shared_ptr/weak_ptr)底层原理剖析+模拟实现

深入篇【C】总结智能指针的使用与应用意义&&(auto_ptr/unique_ptr/shared_ptr/weak_ptr)底层原理剖析模拟实现 智能指针的出现智能指针的使用应用意义/存在问题智能指针原理剖析模拟实现auto_ptrunique_ptrshared_ptrweak_ptr 智能指针的出现 首先我们要理…

【个人记录】Ceph添加OSD

目标 1.已存在Ceph集群2.添加node1盘 /dev/nvme1n1 /dev/nvme2n1进入ceph集群 步骤 1.格式化磁盘 ceph-deploy disk zap node1 /dev/nvme1n1 /dev/nvme2n12.添加磁盘到osd ceph-deploy osd create --data /dev/nvme1n1 node1 ceph-deploy osd create --data /dev/nvme2n1 …

vscode ssh linux C++ 程序调试

vscode调试c++程序相比vs2022要复杂很多,vs2022可以"一键运行调试",vscode则需要自己配置。 ​vscode调试程序时,会在当前工作目录产生.vscode 目录, 该目录有两个重要文件launch.json和tasks.json, 下面介绍两种调试方法: 手动调试和自动调试。 手动调试 不管…

VUE树结构实现

实现效果: 数据库表结构如下: 要求:需要有parentId,id。parentId就是父记录的id 表数据要求:一定不要让一条记录的parentid和id相同 前端代码: 注意:el-table标签里面需要加上属性,才可以有下拉箭头的样式 <el-table v-loading="listLoading" :data

MySQL中死锁

数据库的死锁是指不同的事务在获取资源时相互等待&#xff0c;导致无法继续执行的一种情况。当发生死锁时&#xff0c;数据库会自动中断其中一个事务&#xff0c;以解除死锁。在数据库中&#xff0c;事务可以分为读事务和写事务。读事务只需要获取读锁&#xff0c;而写事务需要…

Spring Boot中的异步编程:解决的问题与应用场景

Spring Boot中的异步编程&#xff1a;解决的问题与应用场景 在现代Web应用程序中&#xff0c;高并发和性能是至关重要的。为了处理大量的请求和任务&#xff0c;异步编程成为了不可或缺的一部分。Spring Boot提供了强大的异步编程支持&#xff0c;可以显著提高应用程序的吞吐量…

java集合常用方法汇总

集合排序链接 集合排序链接 1.新建集合 List<String> result Lists.newArrayList();2.集合赋值 List<String> orderStatusList Lists.newArrayList("60", "70", "90");3.遍历集合 list.stream().map(CspTransferOrderInfo::ge…

【Java 进阶篇】JavaScript Math对象详解

在JavaScript编程中&#xff0c;Math对象是一个非常有用的工具&#xff0c;用于执行各种数学运算。它提供了许多数学函数和常数&#xff0c;可以用于处理数字、执行几何运算、生成随机数等。在本篇博客中&#xff0c;我们将深入探讨JavaScript中Math对象的各种功能和用法。 什…