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

Unity 人物模型学习笔记

一、关于模型的检查

拿到人物模型时,检查人物:

  1. 位置信息是否在0点
  2. 布线/UV是否正常
  3. 身体各部分是否分开
  4. 各部分命名是否清晰
  5. 骨骼需要绑定

二、Unity人物动画

https://www.bilibili.com/video/BV1cc41197mF?spm_id_from=333.788.recommend_more_video.-1&vd_source=707ec8983cc32e6e065d5496a7f79ee6

1. 人物下载
  • mixamo.com,可以下载人物模型和动画
2. 导入unity

https://www.bilibili.com/video/BV1Wu411F7Ca?spm_id_from=333.788.recommend_more_video.-1&vd_source=707ec8983cc32e6e065d5496a7f79ee6

  • 通过使用外部材质,导入模型的贴图
    在这里插入图片描述
3. 人物动画

https://www.bilibili.com/video/BV1RH4y1i7px/?spm_id_from=333.337.search-card.all.click&vd_source=707ec8983cc32e6e065d5496a7f79ee6

  • 导入模型后,建立Animator,并关联骨骼(Avatar)阿凡达
  • 可以查看Avatar文件,有骨骼等设置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 建立一个Animator Control,加一个状态节点,绑定一个动画
    在这里插入图片描述
  • 这里先绑定了一个抠帧动画
    在这里插入图片描述
  • 先去掉Avatar骨骼,发现可以运行(这是因为这个案例的模型不符合T-Pose或Humanoid规则)
  • 只要符合T-Pose与Humanoid规则,相互的人物动画,就可以互通使用
4. 人物动画素材下载
  • https://www.mixamo.com

  • https://assetstore.unity.com/3d/animations

  • 一些动画组件:

  • https://assetstore.unity.com/packages/3d/animations/human-basic-motions-free-154271

  • https://assetstore.unity.com/packages/3d/animations/human-basic-motions-157744
    在这里插入图片描述

  • https://assetstore.unity.com/packages/3d/characters/humanoids/humans/anime-girls-pack-263442
    在这里插入图片描述

  • https://assetstore.unity.com/packages/3d/animations/frank-platformer-basic-222129
    在这里插入图片描述

  • https://assetstore.unity.com/packages/3d/animations/basic-standing-animation-package-219976
    在这里插入图片描述

  • https://assetstore.unity.com/packages/3d/animations/synty-animation-idles-299700
    在这里插入图片描述

  • https://assetstore.unity.com/packages/3d/animations/dialogue-anims-222285
    在这里插入图片描述


三、Animation Rigging

Unity 的 Animation Rigging 是一个强大的动画系统扩展包,主要用于在运行时(Runtime)或编辑器(Editor)中对角色骨骼进行程序化控制,增强传统动画的表现力。它的核心作用是在保持原有动画的基础上,添加动态的、可编程的骨骼控制

网址:https://www.bilibili.com/video/BV1Vf421D7YY/?spm_id_from=333.1387.favlist.content.click&vd_source=707ec8983cc32e6e065d5496a7f79ee6

1. 安装

在这里插入图片描述

  • 下载一个免费的人物UnityChan
    在这里插入图片描述
2、Bone Renderer Setup
  • 菜单 -> Animation Rigging -> Bone Renderer Setup
  • 添加Bone Renderer组件
    在这里插入图片描述
    在这里插入图片描述
  • 能显示骨骼,选择骨骼,调整骨骼显示等
3、Rig Setup,望向目标
  • 菜单 -> Animation Rigging -> Rig Setup
    在这里插入图片描述
  • 在Rig 1里,可以增加骨骼约束
    在这里插入图片描述
  • 在Rig下建立HeadAim,并添加组件Multi-Aim Constraint 多目标约束
    在这里插入图片描述
  • 找到头部的节点,拖入
  • 加入Target
    在这里插入图片描述
  • 通过AnimationRigging小窗口改变Target的样式
    在这里插入图片描述
  • 加入HeadAim的Source Objects,调整Axis
    在这里插入图片描述
  • 限制旋转,更加自然
    在这里插入图片描述
  • 使用权重,来减轻在某种情况下的影响
    在这里插入图片描述
  • 或者
    在这里插入图片描述
  • 碰到需要多个跟随目标的情况,可以如下设置
    在这里插入图片描述
  • HeadAim是头部,ChestAim是身体,都绑定Target,就可以实现
    在这里插入图片描述
4、IK骨骼约束
  • 可以再添加一个约束层
    在这里插入图片描述
  • 建立Rig 2,并有手臂移动约束器
    在这里插入图片描述
  • 使用Two Bone IK Constraint,双骨IK约束器
    在这里插入图片描述
  • 这里有3个骨骼,把手、手肘和手臂分配给它
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 建立一个target
    在这里插入图片描述
  • 选择Target,在选择LeftHand节点,选择菜单Animation Rigging -> Align Transform,对齐到手上
  • 通过右下方的Animation Rigging小窗口,改动下形状
    在这里插入图片描述
  • 把目标绑定在Target关联
    在这里插入图片描述
  • 这样手的位置被约束到了一个位置
    在这里插入图片描述
5、更多案例

通过Animation Rigging的Samples,导入更多的案例进行学
在这里插入图片描述

核心约束脚本
  1. BoneRenderer

功能:在Scene视图中可视化骨骼层级结构
用途:调试和查看骨骼位置关系

  1. RigBuilder

功能:管理所有Rig层的核心组件
用途:必须添加到角色根对象上,协调所有Rig约束

  1. Rig

功能:定义约束层容器
用途:组织和管理一组相关约束

常用约束类型
  1. TwoBoneIKConstraint

功能:实现经典的两段骨骼IK解算
用途:手臂/腿部控制,末端受目标位置和旋转控制

  1. MultiParentConstraint

功能:多父级约束
用途:允许一个骨骼受多个变换源影响,可设置权重混合

  1. MultiPositionConstraint

功能:多位置约束
用途:混合多个位置源的影响

  1. MultiRotationConstraint

功能:多旋转约束
用途:混合多个旋转源的影响

  1. MultiAimConstraint

功能:多目标注视约束
用途:控制骨骼朝向多个目标点

  1. ChainIKConstraint

功能:链式IK约束
用途:处理多骨骼链的IK解算,比TwoBoneIK更灵活

高级约束
  1. BlendConstraint

功能:约束混合
用途:在不同约束设置之间平滑过渡

  1. OverrideTransform

功能:变换覆盖
用途:临时覆盖骨骼的变换值

  1. TwistChainConstraint

功能:扭曲链约束
用途:实现脊柱等部位的扭曲效果

  1. DampedTransform

功能:阻尼变换
用途:为变换添加延迟/阻尼效果

实用工具脚本
  1. RigTransform

功能:装备变换代理
用途:在装备系统中创建虚拟控制点

  1. WeightedTransformArray

功能:加权变换数组
用途:存储带权重的变换数据

  1. RiggingMenu

功能:快速创建装备的菜单工具
用途:加速装备创建流程

典型应用场景
  • 角色装备:组合使用TwoBoneIK和MultiParent创建完整角色装备

  • 面部动画:使用MultiPosition和MultiRotation控制面部混合形状

  • 动态道具:通过OverrideTransform实现武器拾取/放置

  • 注视系统:MultiAimConstraint创建头部/眼睛注视控制

  • 程序动画:结合ChainIK和脚本创建动态运动效果

测试源码地址:https://download.csdn.net/download/qq_17523181/90855595

http://www.xdnf.cn/news/501715.html

相关文章:

  • MATLAB2025新功能
  • 开源项目实战学习之YOLO11:12.3 ultralytics-models-sam-encoders.py源码分析
  • gcc/g++常用参数
  • Go 语言的 GMP 模型
  • DeepSeek 赋能量子计算:突破与未来图景
  • Python时间处理全攻略:标准库与第三方库的实战应用
  • 如何 naive UI n-data-table 改变行移动光标背景色
  • Linux——shell编程
  • 线对板连接器的兼容性问题:为何老旧设计难以满足现代需求?
  • 前端-HTML元素
  • 匿名函数与闭包(Anonymous Functions and Closures)-《Go语言实战指南》原创
  • Java IO流进阶实战详解(含文件读写、拷贝、加密、字符集)
  • 【springcloud学习(dalston.sr1)】Config配置中心-ConfigServer端与Git通信(含源代码)(十三)
  • 5月17日
  • LLM-Based Agent综述及其框架学习(五)
  • 【网络编程】十一、四万字详解 TCP 协议
  • 虚拟主播肖像权保护,数字时代的法律博弈
  • nt!MiRemovePageByColor函数分析之脱链和刷新颜色表
  • MySQL刷题相关简单语法集合
  • 向量数据库Qdrant的Collection参数配置说明
  • uniapp-商城-61-后台 新增商品(添加商品到数据库)
  • [STM32] 5-1 时钟树(上)
  • 解决 Three.js Raycaster 点击位置与实际交点偏差问题
  • 【双指针】供暖器
  • 【Qt】Qt常见控件的相关知识点
  • 深入浅出理解JavaScript中的setProperty方法
  • 第三章 流程控制
  • Netty的简单使用
  • 在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程
  • PHP8.0版本导出excel失败