效果(左侧模型动画,右侧模型IK控制)

模型动画下载及导入

推荐模型动画下载链接地址
https://actorcore.reallusion.com/
Unity导入教程参见以下链接地址(需要科学上网)
https://actorcore.reallusion.com/learn-and-support/my-software/unity/getting-started

导入完成后模型相关查看

配置模型动画控制器

  • 拖拽模型预设到视图中
  • 配置动画控制器(可自定义动画控制器)
    • 创建新的控制器状态,向Motion属性中添加模型中的动画
  • 通过修改Status属性来改变播放的动画

监听动画状态的脚本

using UnityEngine;public class DanceAnimStateMachine : StateMachineBehaviour
{// 进入当前状态时override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){Debug.Log($"进入当前状态时");}// 当前状态更新时,每帧都会被调用override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){Debug.Log($"当前状态更新时,每帧都会被调用");}// 离开当前状态时override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){Debug.Log($"离开当前状态时");}// 在Animator.OnAnimatorMove()之后调用,这里可以处理动画根节点的位移override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){Debug.Log($"在Animator.OnAnimatorMove()之后调用,这里可以处理动画根节点的位移");}// 在Animator.OnAnimatorIK()之后调用,这里可以处理IK(反向运动学)动画override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){Debug.Log($"在Animator.OnAnimatorIK()之后调用,这里可以处理IK(反向运动学)动画");}
}

脚本控制模型骨骼IK动画

创建自己的动画控制器
添加 T-Pose 动画到控制器
启用 IK Pass

模型骨骼IK控制脚本

using UnityEngine;namespace Example_01.Scripts
{public class ModelAnimByIK : MonoBehaviour{private Animator _animator;public Transform leftHandObj;public Transform leftFootObj;public Transform rightHandObj;public Transform rightFootObj;private void Awake(){_animator = GetComponent<Animator>();}private void OnAnimatorIK(int layerIndex){if (!_animator) return;// 设置动画权重_animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1f);_animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1f);_animator.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 1f);_animator.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1f);_animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1f);_animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1f);_animator.SetIKPositionWeight(AvatarIKGoal.RightFoot, 1f);_animator.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1f);if (leftHandObj != null){// 设置左手根据目标点而旋转移动父骨骼节点_animator.SetIKPosition(AvatarIKGoal.LeftHand, leftHandObj.position);_animator.SetIKRotation(AvatarIKGoal.LeftHand, leftHandObj.rotation);}if (leftFootObj != null){// 设置左脚根据目标点而旋转移动父骨骼节点_animator.SetIKPosition(AvatarIKGoal.LeftFoot, leftFootObj.position);_animator.SetIKRotation(AvatarIKGoal.LeftFoot, leftFootObj.rotation);}if (rightHandObj != null){// 设置右手根据目标点而旋转移动父骨骼节点_animator.SetIKPosition(AvatarIKGoal.RightHand, rightHandObj.position);_animator.SetIKRotation(AvatarIKGoal.RightHand, rightHandObj.rotation);}if (rightFootObj != null){// 设置右脚根据目标点而旋转移动父骨骼节点_animator.SetIKPosition(AvatarIKGoal.RightFoot, rightFootObj.position);_animator.SetIKRotation(AvatarIKGoal.RightFoot, rightFootObj.rotation);}}}
}

目录结构

Unity(三十七):3D模型动画、脚本控制模型骨骼IK动画相关推荐

  1. 实验三 lr分析器的设计与实现_三电平ZVS半桥的控制模型与仿真 基于PSPICE

    前言: 因为最近有研究一些三电平的东西,所以找出了15年写的TL移相桥的文章,也算是旧文新发.必须要说的,5年前水平有限哈(但是蛮认真的),如果有错误请见谅. 正文:3650字 22图  预计阅读时间 ...

  2. UnityDOTween动画脚本控制播放与暂停。

    Unity3D DOTween 动画播放与暂停的脚本控制 通过点击蝴蝶激活DOTweenPath使蝴蝶按照一定的轨迹运动后回到原来的位置,当蝴蝶回到原位置后,精灵动画激活,精灵从天而降. 蝴蝶点击事件 ...

  3. 17.Unity2D 横版 骨骼动画 之 动画中局部骨骼旋转+多层动画共同控制+局部骨骼索敌攻击

    主目录 承接上节课 16.Unity2D 横版 骨骼动画 之 单张PSB图+PS像素画软件_ζั͡ ั͡雾 ั͡狼 ั͡✾的博客-CSDN博客上一节课我们学习了单张的切片图,是最简单的一种骨骼动画,但 ...

  4. unity 平移图片_Unity3D研究院之脚本实现模型的平移与旋转(六)

    123 说: 雨松大大,有个问题想请教一下,我用UNET构建了个小场景,在电脑上可以客户端可以连接到服务器,Windows和Linux都可以,发布到安卓缺连不了,这是问什么呢 说: 求教一下,刚刚接触 ...

  5. 不同骨骼共享动画蓝图

    在实际项目中,开发者有时希望不同的骨架间共享同一套动画蓝图,尤其是状态机的重用,从而实现动画转换逻辑的统一的配置.实际运行时仍然使用骨架对应的动画资源.例如不同种类怪物的动画状态机共享. 引擎中的动画 ...

  6. 【转】浅析Android动画(二),属性动画高级实例探究

    2019独角兽企业重金招聘Python工程师标准>>> ObjectAnimator实现属性动画 为了写好Android动画这几篇博客,在动笔之前我是下过很大决心的,我对自己的要求是 ...

  7. Unity UI或3d模型的动画控制(Animation类)

    文章目录 Animation动画控制类 一.动画设置: 二.模型的动作选择: 三.关键方法: 四:实践展示: 五.控制模型移动: Animation动画控制类 在Unity中,我们可以使用2D的Spi ...

  8. 【Unity 工具,简单学习】DoTween,脚本控制动画工具

    DOTween:脚本控制动画工具 简单介绍 安装 简单使用 eg.1 简单移动,跳动 eg2. 缓动 Easing(动画插值) eg3. 循环 Looping eg4. 变换颜色,变换大小 eg5. ...

  9. 2022-07-06 Unity核心9——3D动画

    文章目录 一.3D 动画的使用 二.动画分层和遮罩 三.动画 1D 混合 四.动画 2D 混合 五.动画子状态机 六.动画 IK 控制 七.动画目标匹配 八.状态机行为脚本 九.状态机复用 十.角色控 ...

最新文章

  1. 云效(原RDC)如何构建一个基于Maven的Java项目
  2. TMG 2010 建立站对站***隧道
  3. Vue CLI 3.0脚手架如何在本地配置mock数据
  4. 中国二手房行业发展形势与“十四五”前景规划建议报告2022-2028年
  5. Oracle数据库,当DML操作时执行触发器记录日志
  6. react sql格式化_为SQL Server数据库损坏做准备; 初步React与分析
  7. Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
  8. 基于javaweb+springboot的企业员工绩效工资管理系统(java+SpringBoot+FreeMarker+Mysql)
  9. python程序员前景-一个6年Python程序员的工作感悟,送给还在迷茫的你
  10. 【包邮送书活动】20210928期-开奖通知
  11. python:输出10行的杨辉三角 - 二项式的n次方展开系数
  12. win10应用已被java安全阻止,win10系统不能运行java提示“应用程序已被安全设置被阻止”的图文方法...
  13. 【Python】python脚本实例
  14. 2022全网最全的持续集成基础【你知道的和不知道都在这里】
  15. 多元线性回归分析理论详解及SPSS结果分析
  16. php dateparse,PHP date_parse_from_format() 函数用法及示例
  17. 符号函数(sign function)性质及应用
  18. Cannot resolve module 'fs'
  19. 网站推广最实用不过的七种方法
  20. 假币问题 (java)居然有假币!!!

热门文章

  1. 统计一个数所有质因数的个数
  2. Linux下如何查看 CPU 信息, 包括位数和多核信息
  3. p2p android端口,[收藏] 常见p2p软件端口、IP
  4. 动力电池系统介绍(九)——驱动电路
  5. 发货100个人虚拟商品自动发货系统PHP源码
  6. dg和ogg的区别--oracle数据库
  7. Android 仿 iphone 自定义滚动选择器
  8. 【论文笔记】EPro-PnP == Tongji U Alibaba DAMO ==CVPR‘2022 Best Student Paper
  9. 存储器金字塔层次结构
  10. 历史-大秦帝国1-4